<?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>142933</bug_id>
          
          <creation_ts>2015-03-21 00:03:30 -0700</creation_ts>
          <short_desc>Redefining a property should not change its insertion index (Object.keys order)</short_desc>
          <delta_ts>2020-11-05 09:23:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213133</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=214342</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=214890</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>214089</dependson>
          <blocked>163446</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>dmnsgn</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1079039</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-21 00:03:30 -0700</bug_when>
    <thetext>* SUMMARY
Redefining a property should not change its index in Object.keys.

* TEST:
var o = {};
o.x = 1;
o.y = 2;
o.__defineGetter__(&quot;x&quot;, function() {});
Object.keys(o);

* EXPECTED
[&quot;x&quot;, &quot;y&quot;]

* ACTUAL
[&quot;y&quot;, &quot;x&quot;]

* NOTES
- Firefox outputs expected
- Chrome outputs expected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079040</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-21 00:04:37 -0700</bug_when>
    <thetext>My guess would be the deleteProperty called from JSObject::defineOwnNonIndexProperty, removes the &quot;x&quot; and then re-adds &quot;x&quot; to the end. We should have a replace here, that avoids the deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079131</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-22 00:01:58 -0700</bug_when>
    <thetext>Relevant parts of the spec are:

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-validateandapplypropertydescriptor
- [[DefineOwnProperty]] -&gt; ValidateAndApplyPropertyDescriptor -&gt; &quot;Convert the property ... from a data property to an accessor property&quot;

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
- [[OwnPropertyKeys]] -&gt; enumerates indexes, properties &quot;in property creation order&quot;, and Symbols in proprty creation order

Though __defineGetter__ and __defineSetter__ are not specced, this should be no different then a Object.defineProperty changing a data descriptor to an accessor (and vice versa).

Now lets see if there is a JSC internal reason for the property deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079132</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-22 00:11:34 -0700</bug_when>
    <thetext>Doesn&apos;t appear to be any particular reason. The implementation has always had a delete since Object.defineProperty was first added for ES5 support years ago. ES5 has the update wording here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079133</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-22 00:13:16 -0700</bug_when>
    <thetext>Hah, the ChangeLog had:

&gt; Currently defineOwnProperty uses a delete followed by a put to redefine
&gt; attributes of a property, clearly this is less efficient than it could be
&gt; but we can improve this if it needs to be possible in future.

I guess now is that time! But necessarily for efficiency =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079332</commentid>
    <comment_count>5</comment_count>
      <attachid>249247</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-23 12:10:10 -0700</bug_when>
    <thetext>Created attachment 249247
[PATCH] Work In Progress - Needs Cleanup

Work in progress, not for review. Just saving my progress. I&apos;ll likely not pick this up again for a few weeks.

  - passes all tests as written
  - need to write many new tests to test this
  - needs some cleanup, as noted by FIXMEs
  - we may be able to remove DefineOwnPropertyScope and its uses throughout JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648557</commentid>
    <comment_count>6</comment_count>
      <attachid>398372</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-04 08:53:50 -0700</bug_when>
    <thetext>Created attachment 398372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648562</commentid>
    <comment_count>7</comment_count>
      <attachid>398372</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-04 09:08:01 -0700</bug_when>
    <thetext>Comment on attachment 398372
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4325
&gt; +            push(@implContent, &quot;        JSCell::deleteProperty(this, globalObject(), propertyName);\n&quot;);

I will make sure to ASSERT delete success here and below, just making sure tests pass for now.

&gt; JSTests/test262/expectations.yaml:1012
&gt; +  default: &apos;Test262Error: Expected [a, name] and [name, a] to have the same contents. &apos;

We are dealing with JSFunction&apos;s non-reified &quot;name&quot; property, hence the failure here and below (for &quot;length&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648741</commentid>
    <comment_count>8</comment_count>
      <attachid>398417</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-04 14:27:43 -0700</bug_when>
    <thetext>Created attachment 398417
Patch

Set hasReadOnlyOrGetterSetterPropertiesExcludingProto(), unset PropertyAttribute::ReadOnly for accessors, adjust tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650316</commentid>
    <comment_count>9</comment_count>
      <attachid>398787</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-07 13:08:14 -0700</bug_when>
    <thetext>Created attachment 398787
Patch

Bring back DeletePropertyMode, always call attributeChangeTransition(), add tests and microbenchmarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650443</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-07 18:15:03 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #9)
&gt; Bring back DeletePropertyMode, always call attributeChangeTransition(), add
&gt; tests and microbenchmarks.

While this patch enables complete removal of DeletePropertyMode, I&apos;d rather do it in a follow-up, along with implementing CanDeclareGlobalFunction for JSGlobalObject::addFunction().


Cold runs, --inner 4:

                                                r261263                    patch                                       

redefine-property-accessor-dictionary       64.1904+-0.5412     ^     39.7252+-2.3096        ^ definitely 1.6159x faster
redefine-property-accessor                  22.1282+-0.3532     ^     21.0878+-0.5099        ^ definitely 1.0493x faster
redefine-property-data-dictionary           60.6094+-0.4155     ^     32.5806+-1.2206        ^ definitely 1.8603x faster
redefine-property-data                      18.8928+-1.0337     ^     16.7405+-0.7271        ^ definitely 1.1286x faster

&lt;geometric&gt;                                 35.7080+-0.3323     ^     25.9930+-0.4242        ^ definitely 1.3738x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650450</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-07 18:35:01 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #10)
&gt; (In reply to Alexey Shvayka from comment #9)
&gt; &gt; Bring back DeletePropertyMode, always call attributeChangeTransition(), add
&gt; &gt; tests and microbenchmarks.
&gt; 
&gt; While this patch enables complete removal of DeletePropertyMode, I&apos;d rather
&gt; do it in a follow-up, along with implementing CanDeclareGlobalFunction for
&gt; JSGlobalObject::addFunction().
&gt; 
&gt; 
&gt; Cold runs, --inner 4:
&gt; 
&gt;                                                 r261263                   
&gt; patch                                       
&gt; 
&gt; redefine-property-accessor-dictionary       64.1904+-0.5412     ^    
&gt; 39.7252+-2.3096        ^ definitely 1.6159x faster
&gt; redefine-property-accessor                  22.1282+-0.3532     ^    
&gt; 21.0878+-0.5099        ^ definitely 1.0493x faster
&gt; redefine-property-data-dictionary           60.6094+-0.4155     ^    
&gt; 32.5806+-1.2206        ^ definitely 1.8603x faster
&gt; redefine-property-data                      18.8928+-1.0337     ^    
&gt; 16.7405+-0.7271        ^ definitely 1.1286x faster
&gt; 
&gt; &lt;geometric&gt;                                 35.7080+-0.3323     ^    
&gt; 25.9930+-0.4242        ^ definitely 1.3738x faster

Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653068</commentid>
    <comment_count>12</comment_count>
      <attachid>398787</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-15 08:39:31 -0700</bug_when>
    <thetext>Comment on attachment 398787
Patch

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

Looks nice. But I think some of Structures&apos; flags are missing.

&gt; Source/JavaScriptCore/runtime/Structure.cpp:676
&gt; +    if (attributes &amp; (PropertyAttribute::ReadOnly | PropertyAttribute::Accessor))
&gt; +        structure-&gt;setHasReadOnlyOrGetterSetterPropertiesExcludingProto(true);

Do we ensure that propertyName is not __proto__?

&gt; Source/JavaScriptCore/runtime/Structure.cpp:677
&gt; +

Is it OK not to set setHasGetterSetterProperties / setHasCustomGetterSetterProperties etc. Can you review all the flags of Structure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653696</commentid>
    <comment_count>13</comment_count>
      <attachid>399662</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-18 11:57:06 -0700</bug_when>
    <thetext>Created attachment 399662
Patch

Use setContainsReadOnlyProperties(), improve tests, and tweak ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653697</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-18 11:57:30 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #12)
&gt; Is it OK not to set setHasGetterSetterProperties /
&gt; setHasCustomGetterSetterProperties etc. Can you review all the flags of
&gt; Structure?

Thank you for review, Yusuke.

I&apos;ve vetted all the flags and seems like we are safe here: all call sites of putDirectInternal&lt;PutModeDefineOwnProperty&gt;
perform setHasGetterSetterPropertiesWithProtoCheck(), including custom accessors. __proto__ property creation is also
handled earlier in Structure::add().

Tests are updated to cover __proto__ and indexed properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663707</commentid>
    <comment_count>15</comment_count>
      <attachid>402168</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 16:42:59 -0700</bug_when>
    <thetext>Created attachment 402168
Patch

Rebase test262/expectations.yaml and simplify test added in r263070.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663806</commentid>
    <comment_count>16</comment_count>
      <attachid>402168</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-17 22:59:29 -0700</bug_when>
    <thetext>Comment on attachment 402168
Patch

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

&gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:108
&gt; +    exception-&gt;putDirect(vm, vm.propertyNames-&gt;message, jsString(vm, message), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));

should this be its own patch?

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:3583
&gt; +                object-&gt;putDirect(vm, propertyName, value, descriptor.attributes() &amp; ~PropertyAttribute::Accessor);

why are you masking out accessor? Why is that not an assert?

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:3654
&gt; +        object-&gt;putDirect(vm, propertyName, value, attributes &amp; ~PropertyAttribute::Accessor);

why is masking needed?

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:317
&gt; +            if (mode == PutModeDefineOwnProperty &amp;&amp; (attributes != currentAttributes || (attributes &amp; PropertyAttribute::AccessorOrCustomAccessorOrValue)))

so we always transition for defining a new accessor? Is this to maintain the invariant before that we did delete?

I think semantically we only care about doing this for customs and custom values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663807</commentid>
    <comment_count>17</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2020-06-17 23:21:31 -0700</bug_when>
    <thetext>Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663900</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-18 09:51:13 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #16)

I appreciate you taking a look, Saam.

&gt; &gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:108
&gt; &gt; +    exception-&gt;putDirect(vm, vm.propertyNames-&gt;message, jsString(vm, message), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; 
&gt; should this be its own patch?

We can land ErrorInstance.cpp change before the main patch, but we can&apos;t make it a follow-up since JSTests/stress/native-error-properties.js fails w/o it.
Because of the changes in JSObjectInlines.h, we need to explicitly set attributes to avoid Structure::attributeChangeTransition() branch.
With this patch, putDirectWithoutTransition() will fail loudly if data property already exists with different attributes.

&gt; &gt; Source/JavaScriptCore/runtime/JSObject.cpp:3583
&gt; &gt; +                object-&gt;putDirect(vm, propertyName, value, descriptor.attributes() &amp; ~PropertyAttribute::Accessor);
&gt; 
&gt; why are you masking out accessor? Why is that not an assert?
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSObject.cpp:3654
&gt; &gt; +        object-&gt;putDirect(vm, propertyName, value, attributes &amp; ~PropertyAttribute::Accessor);
&gt; 
&gt; why is masking needed?

Masking doesn&apos;t feel right to me either; please note that I am not adding new instances, but merely preserving ones we had in putDescriptor().
Since there are similar masking outs in putIndexedDescriptor(), we can make a follow-up that moves them to PropertyDescriptor::attributesOverridingCurrent().

&gt; &gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:317
&gt; &gt; +            if (mode == PutModeDefineOwnProperty &amp;&amp; (attributes != currentAttributes || (attributes &amp; PropertyAttribute::AccessorOrCustomAccessorOrValue)))
&gt; 
&gt; so we always transition for defining a new accessor? Is this to maintain the
&gt; invariant before that we did delete?

JSTests/stress/intrinsic-getter-with-poly-proto-getter-change.js fails if we don&apos;t preserve this invariant.
Please also note `current.equalTo(globalObject, descriptor)` check that avoids putDirect* route if accessor descriptor&apos;s [[Get]] and [[Set]] are the same.



(In reply to Joseph Pecoraro from comment #17)
&gt; Awesome!

Thank you for sharing WIP patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669403</commentid>
    <comment_count>19</comment_count>
      <attachid>403690</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-07 08:21:05 -0700</bug_when>
    <thetext>Created attachment 403690
Patch

Rebase test262 expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669478</commentid>
    <comment_count>20</comment_count>
      <attachid>403690</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2020-07-07 12:00:49 -0700</bug_when>
    <thetext>Comment on attachment 403690
Patch

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

&gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:108
&gt; -    exception-&gt;putDirect(vm, vm.propertyNames-&gt;message, jsString(vm, message));
&gt; +    exception-&gt;putDirect(vm, vm.propertyNames-&gt;message, jsString(vm, message), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));

Should this be separate? At the least it should be called out in the ChangeLog.

&gt; LayoutTests/js/script-tests/object-literal-duplicate-properties.js:-57
&gt; -// FIXME: &lt;https://webkit.org/b/142933&gt; Redefining a property should not change its insertion index (Object.keys order)

Awesome! And since we are here can we drive-by update the comment on line 12 to say &quot;... eliminated by basic properties.&quot;. This typo of mine has annoyed me for a while!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669951</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-08 16:56:40 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #20)
&gt; Should this be separate? At the least it should be called out in the
&gt; ChangeLog.

Due to a reason mentioned in comment #16, we can&apos;t make it a follow-up, so let&apos;s land it first: https://webkit.org/b/214089.

&gt; Awesome! And since we are here can we drive-by update the comment on line 12
&gt; to say &quot;... eliminated by basic properties.&quot;. This typo of mine has annoyed
&gt; me for a while!

Thank you, I will fix it during next rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670336</commentid>
    <comment_count>22</comment_count>
      <attachid>403934</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-09 17:10:53 -0700</bug_when>
    <thetext>Created attachment 403934
Patch

Rebase patch to drop ErrorInstance.cpp change and fix typos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671093</commentid>
    <comment_count>23</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-07-13 11:12:34 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #18)
&gt; (In reply to Saam Barati from comment #16)
&gt; 
&gt; I appreciate you taking a look, Saam.
&gt; 
&gt; &gt; &gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:108
&gt; &gt; &gt; +    exception-&gt;putDirect(vm, vm.propertyNames-&gt;message, jsString(vm, message), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; &gt; 
&gt; &gt; should this be its own patch?
&gt; 
&gt; We can land ErrorInstance.cpp change before the main patch, but we can&apos;t
&gt; make it a follow-up since JSTests/stress/native-error-properties.js fails
&gt; w/o it.
&gt; Because of the changes in JSObjectInlines.h, we need to explicitly set
&gt; attributes to avoid Structure::attributeChangeTransition() branch.
&gt; With this patch, putDirectWithoutTransition() will fail loudly if data
&gt; property already exists with different attributes.
&gt; 
&gt; &gt; &gt; Source/JavaScriptCore/runtime/JSObject.cpp:3583
&gt; &gt; &gt; +                object-&gt;putDirect(vm, propertyName, value, descriptor.attributes() &amp; ~PropertyAttribute::Accessor);
&gt; &gt; 
&gt; &gt; why are you masking out accessor? Why is that not an assert?
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/runtime/JSObject.cpp:3654
&gt; &gt; &gt; +        object-&gt;putDirect(vm, propertyName, value, attributes &amp; ~PropertyAttribute::Accessor);
&gt; &gt; 
&gt; &gt; why is masking needed?
&gt; 
&gt; Masking doesn&apos;t feel right to me either; please note that I am not adding
&gt; new instances, but merely preserving ones we had in putDescriptor().
&gt; Since there are similar masking outs in putIndexedDescriptor(), we can make
&gt; a follow-up that moves them to
&gt; PropertyDescriptor::attributesOverridingCurrent().
&gt; 
&gt; &gt; &gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:317
&gt; &gt; &gt; +            if (mode == PutModeDefineOwnProperty &amp;&amp; (attributes != currentAttributes || (attributes &amp; PropertyAttribute::AccessorOrCustomAccessorOrValue)))
&gt; &gt; 
&gt; &gt; so we always transition for defining a new accessor? Is this to maintain the
&gt; &gt; invariant before that we did delete?
&gt; 
&gt; JSTests/stress/intrinsic-getter-with-poly-proto-getter-change.js fails if we
&gt; don&apos;t preserve this invariant.
&gt; Please also note `current.equalTo(globalObject, descriptor)` check that
&gt; avoids putDirect* route if accessor descriptor&apos;s [[Get]] and [[Set]] are the
&gt; same.

I think we need to transition when changing custom value/custom accessor. But changing GetterSetter without transitioning should work, since all of our ICs are dynamic over this value.

&gt; 
&gt; 
&gt; 
&gt; (In reply to Joseph Pecoraro from comment #17)
&gt; &gt; Awesome!
&gt; 
&gt; Thank you for sharing WIP patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671095</commentid>
    <comment_count>24</comment_count>
      <attachid>403934</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-07-13 11:22:52 -0700</bug_when>
    <thetext>Comment on attachment 403934
Patch

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

r=me with one comment/question

&gt; Source/JavaScriptCore/ChangeLog:61
&gt; -        beind redefined with PropertyAttribute::None.
&gt; +        being redefined with PropertyAttribute::None.

no need to fix this now IMO. We usually don&apos;t go back and fix ChangeLog typos afaik.

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:317
&gt; +            if (mode == PutModeDefineOwnProperty &amp;&amp; (attributes != currentAttributes || (attributes &amp; PropertyAttribute::AccessorOrCustomAccessorOrValue)))

same comment here. I think we should be ok with just CustomAccessorOrValue. Do tests failing just using CustomAccessorOrValue? If so, we should find out why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671673</commentid>
    <comment_count>25</comment_count>
      <attachid>404321</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-14 23:35:02 -0700</bug_when>
    <thetext>Created attachment 404321
Patch

Fix flaky microbenchmarks, add FIXMEs, undo ChangeLog typo fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671674</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-14 23:45:23 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #24)
&gt; r=me with one comment/question

Thank you for review!

&gt; same comment here. I think we should be ok with just CustomAccessorOrValue.
&gt; Do tests failing just using CustomAccessorOrValue? If so, we should find out
&gt; why.

Only poly prototype __proto__ test (JSTests/stress/intrinsic-getter-with-poly-proto-getter-change.js) fails.
Changing non-intrinsic GetterSetter w/o transition works and is tested by JSTests/stress/redefine-property-{get,set}.js.
I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=214342 and added FIXMEs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672837</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-18 16:10:00 -0700</bug_when>
    <thetext>Committed r264574: &lt;https://trac.webkit.org/changeset/264574&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404321.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672838</commentid>
    <comment_count>28</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-18 16:10:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65776081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674676</commentid>
    <comment_count>29</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-24 09:19:00 -0700</bug_when>
    <thetext>This change causes 10% regression in Speedometer2/Ember-Debug. Can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684012</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-30 04:27:42 -0700</bug_when>
    <thetext>*** Bug 202139 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704895</commentid>
    <comment_count>31</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2020-11-05 09:18:52 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #29)
&gt; This change causes 10% regression in Speedometer2/Ember-Debug. Can you take a look?

Did this ever get looked at?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704897</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-11-05 09:23:33 -0800</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #31)
&gt; (In reply to Yusuke Suzuki from comment #29)
&gt; &gt; This change causes 10% regression in Speedometer2/Ember-Debug. Can you take a look?
&gt; 
&gt; Did this ever get looked at?

Yes, this regression was fixed in r265642.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249247</attachid>
            <date>2015-03-23 12:10:10 -0700</date>
            <delta_ts>2020-05-04 08:53:43 -0700</delta_ts>
            <desc>[PATCH] Work In Progress - Needs Cleanup</desc>
            <filename>the-progress.patch</filename>
            <type>text/plain</type>
            <size>11338</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBkYjJhNzIy
Li5kZGYzNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CkBAIC0xMjkyLDYgKzEyOTIsMjEgQEAgYm9vbCBKU09iamVjdDo6aGFzUHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8SlNPYmplY3QqPih0aGlzKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKK3ZvaWQgSlNPYmplY3Q6OndpbGxSZXBsYWNlUHJvcGVydHkoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMpCit7CisgICAgLy8gT25seSB1c2VkIGJ5IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSB3aGljaCBlbmZvcmNlcyBwcm9wZXJ0eSBrZXlzLCBuZXZlciBhbiBpbmRleC4KKyAgICBB
U1NFUlQocHJvcGVydHlOYW1lLmFzSW5kZXgoKSA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgp
OworCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU09iamVjdCo+KGNlbGwpOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0
aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pOworICAgIGlmICghaXNWYWxpZE9mZnNldChzdHJ1Y3R1
cmUtPmdldCh2bSwgcHJvcGVydHlOYW1lKSkpCisgICAgICAgIHJldHVybjsKKworICAgIHRoaXNP
YmplY3QtPnNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjpyZXBsYWNlUHJvcGVydHlUcmFuc2l0
aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpOworfQorCiAvLyBF
Q01BIDguNi4yLjUKIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewpAQCAtMjUxMSw3
ICsyNTI2LDkgQEAgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmEKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgcHV0RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0
YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgdW5zaWduZWQgYXR0cmlidXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlw
dG9yJiBvbGREZXNjcmlwdG9yKQorZW51bSBQdXREZXNjcmlwdG9yVHlwZSB7IERlc2NyaXB0b3JD
cmVhdGUsIERlc2NyaXB0b3JVcGRhdGUgfTsKKworc3RhdGljIGJvb2wgcHV0RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdW5zaWduZWQgYXR0cmli
dXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBvbGREZXNjcmlwdG9yLCBQdXREZXNjcmlw
dG9yVHlwZSBtb2RlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKGRlc2Ny
aXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRv
cigpKSB7CkBAIC0yNTIxLDcgKzI1MzgsMTAgQEAgc3RhdGljIGJvb2wgcHV0RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXIKICAg
ICAgICAgICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCksIG9sZERlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkpOwogICAgICAgICAgICAgaWYg
KG9sZERlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpKQogICAgICAgICAgICAgICAgIGFjY2Vzc29y
LT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgb2xkRGVzY3JpcHRv
ci5zZXR0ZXJPYmplY3QoKSk7Ci0gICAgICAgICAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29y
KGV4ZWMsIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMgfCBBY2Nlc3Nvcik7Cisg
ICAgICAgICAgICBhdHRyaWJ1dGVzID0gYXR0cmlidXRlcyB8IEFjY2Vzc29yOworICAgICAgICAg
ICAgaWYgKG1vZGUgPT0gRGVzY3JpcHRvclVwZGF0ZSkKKyAgICAgICAgICAgICAgICBKU09iamVj
dDo6d2lsbFJlcGxhY2VQcm9wZXJ0eSh0YXJnZXQsIGV4ZWMsIHByb3BlcnR5TmFtZSwgYXR0cmli
dXRlcyk7CisgICAgICAgICAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICAgICAgSlNWYWx1ZSBuZXdWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CkBA
IC0yNTI5LDcgKzI1NDksMTAgQEAgc3RhdGljIGJvb2wgcHV0RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXIKICAgICAgICAgICAg
IG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpOwogICAgICAgICBlbHNlIGlmIChvbGREZXNj
cmlwdG9yLnZhbHVlKCkpCiAgICAgICAgICAgICBuZXdWYWx1ZSA9IG9sZERlc2NyaXB0b3IudmFs
dWUoKTsKLSAgICAgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgbmV3VmFs
dWUsIGF0dHJpYnV0ZXMgJiB+QWNjZXNzb3IpOworICAgICAgICBhdHRyaWJ1dGVzID0gYXR0cmli
dXRlcyAmIH5BY2Nlc3NvcjsKKyAgICAgICAgaWYgKG1vZGUgPT0gRGVzY3JpcHRvclVwZGF0ZSkK
KyAgICAgICAgICAgIEpTT2JqZWN0Ojp3aWxsUmVwbGFjZVByb3BlcnR5KHRhcmdldCwgZXhlYywg
cHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0s
IHByb3BlcnR5TmFtZSwgbmV3VmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgICAgICBpZiAoYXR0cmli
dXRlcyAmIFJlYWRPbmx5KQogICAgICAgICAgICAgdGFyZ2V0LT5zdHJ1Y3R1cmUodm0pLT5zZXRD
b250YWluc1JlYWRPbmx5UHJvcGVydGllcygpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1
NDYsNyArMjU2OSwxMCBAQCBzdGF0aWMgYm9vbCBwdXREZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRhcmdldCwgUHJvcGVydHlOYW1lIHByb3BlcgogICAgIGVsc2UgaWYgKG9s
ZERlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpKQogICAgICAgICBhY2Nlc3Nvci0+c2V0U2V0dGVy
KHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIG9sZERlc2NyaXB0b3Iuc2V0dGVyT2Jq
ZWN0KCkpOwogCi0gICAgdGFyZ2V0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5h
bWUsIGFjY2Vzc29yLCBhdHRyaWJ1dGVzIHwgQWNjZXNzb3IpOworICAgIGF0dHJpYnV0ZXMgPSBh
dHRyaWJ1dGVzIHwgQWNjZXNzb3I7CisgICAgaWYgKG1vZGUgPT0gRGVzY3JpcHRvclVwZGF0ZSkK
KyAgICAgICAgSlNPYmplY3Q6OndpbGxSZXBsYWNlUHJvcGVydHkodGFyZ2V0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpOworICAgIHRhcmdldC0+cHV0RGlyZWN0QWNjZXNzb3IoZXhl
YywgcHJvcGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlcyk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI1NzgsMTAgKzI2MDQsOCBAQCBwcml2YXRlOgogCiBib29sIEpTT2JqZWN0Ojpk
ZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIHRo
cm93RXhjZXB0aW9uKQogewotICAgIC8vIFRyYWNrIG9uIHRoZSBnbG9iYWxkYXRhIHRoYXQgd2Un
cmUgaW4gZGVmaW5lIHByb3BlcnR5LgotICAgIC8vIEN1cnJlbnRseSBEZWZpbmVPd25Qcm9wZXJ0
eSB1c2VzIGRlbGV0ZSB0byByZW1vdmUgcHJvcGVydGllcyB3aGVuIHRoZXkgYXJlIGJlaW5nIHJl
cGxhY2VkCi0gICAgLy8gKHBhcnRpY3VsYXJseSB3aGVuIGNoYW5naW5nIGF0dHJpYnV0ZXMpLCBo
b3dldmVyIGRlbGV0ZSB3b24ndCBhbGxvdyBub24tY29uZmlndXJhYmxlIChpLmUuCi0gICAgLy8g
RG9udERlbGV0ZSkgcHJvcGVydGllcyB0byBiZSBkZWxldGVkLiBGb3Igbm93LCB3ZSBjYW4gdXNl
IHRoaXMgZmxhZyB0byBtYWtlIHRoaXMgd29yay4KKyAgICAvLyBGSVhNRTogV2UgY2FuIGVudGly
ZWx5IHJlbW92ZSBEZWZpbmVPd25Qcm9wZXJ0eVNjb3BlIGFuZCBpdHMgdGVudGFjbGVzLAorICAg
IC8vIHNpbmNlIHdlIG5vIGxvbmdlciB1c2UgZGVsZXRlUHJvcGVydHkuCiAgICAgRGVmaW5lT3du
UHJvcGVydHlTY29wZSBzY29wZShleGVjKTsKICAgICAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3
IHByb3BlcnR5IHdlIGNhbiBqdXN0IHB1dCBpdCBvbiBub3JtYWxseQpAQCAtMjU5NSw3ICsyNjE5
LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duTm9uSW5kZXhQcm9wZXJ0eShFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU4KICAgICAgICAgfQogICAgICAgICBQcm9wZXJ0
eURlc2NyaXB0b3Igb2xkRGVzY3JpcHRvcjsKICAgICAgICAgb2xkRGVzY3JpcHRvci5zZXRWYWx1
ZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhp
cywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSwgb2xk
RGVzY3JpcHRvcik7CisgICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGV4ZWMsIHRoaXMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCksIG9sZERlc2Ny
aXB0b3IsIERlc2NyaXB0b3JDcmVhdGUpOwogICAgIH0KIAogICAgIGlmIChkZXNjcmlwdG9yLmlz
RW1wdHkoKSkKQEAgLTI2MjAsMTAgKzI2NDQsOCBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25O
b25JbmRleFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5Tgog
CiAgICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMgc2ltcGx5IGNoYW5naW5nIHRoZSBhdHRy
aWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CiAgICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5l
cmljRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC5hdHRyaWJ1dGVzRXF1YWwo
ZGVzY3JpcHRvcikpIHsKLSAgICAgICAgICAgIG1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5kZWxl
dGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICAgICAgcmV0dXJu
IHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNj
cmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KSwgY3VycmVudCk7Ci0g
ICAgICAgIH0KKyAgICAgICAgaWYgKCFjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9y
KSkKKyAgICAgICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGV4ZWMsIHRoaXMsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQo
Y3VycmVudCksIGN1cnJlbnQsIERlc2NyaXB0b3JVcGRhdGUpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTI2MzQsOCArMjY1Niw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93
bk5vbkluZGV4UHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
CiAgICAgICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVU
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJBdHRlbXB0aW5nIHRvIGNoYW5nZSBhY2Nlc3Mg
bWVjaGFuaXNtIGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKSkpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIG1ldGhvZFRhYmxlKGV4ZWMtPnZt
KCkpLT5kZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBy
ZXR1cm4gcHV0RGVzY3JpcHRvcihleGVjLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Is
IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpLCBjdXJyZW50
KTsKKyAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJy
ZW50KSwgY3VycmVudCwgRGVzY3JpcHRvclVwZGF0ZSk7CiAgICAgfQogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIHZhbHVlIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CkBAIC0y
NjU2LDggKzI2NzcsNyBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Ob25JbmRleFByb3BlcnR5
KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TgogICAgICAgICB9CiAgICAg
ICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZGVzY3JpcHRv
ci52YWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIG1ldGhvZFRhYmxl
KGV4ZWMtPnZtKCkpLT5kZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwot
ICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihleGVjLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQp
LCBjdXJyZW50KTsKKyAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3Vy
cmVudChjdXJyZW50KSwgY3VycmVudCwgRGVzY3JpcHRvclVwZGF0ZSk7CiAgICAgfQogCiAgICAg
Ly8gQ2hhbmdpbmcgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBvZiBhbiBleGlzdGluZyBhY2Nlc3Nv
ciBwcm9wZXJ0eQpAQCAtMjcwMCw5ICsyNzIwLDkgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3du
Tm9uSW5kZXhQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU4K
ICAgICB9CiAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmICFn
ZXR0ZXJTZXR0ZXJDaGFuZ2VkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBtZXRob2RUYWJs
ZShleGVjLT52bSgpKS0+ZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsK
LSAgICB1bnNpZ25lZCBhdHRycyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJy
ZW50KGN1cnJlbnQpOwotICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3BlcnR5TmFtZSwg
Z2V0dGVyU2V0dGVyLCBhdHRycyB8IEFjY2Vzc29yKTsKKyAgICB1bnNpZ25lZCBuZXdBdHRyaWJ1
dGVzID0gZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCkgfCBB
Y2Nlc3NvcjsKKyAgICBKU09iamVjdDo6d2lsbFJlcGxhY2VQcm9wZXJ0eSh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIG5ld0F0dHJpYnV0ZXMpOworICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBuZXdBdHRyaWJ1dGVzKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXgg
M2Y1ZTI1ZC4uNWM4YzdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCkBAIC00NjcsNiArNDY3LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzT3duUHJvcGVydHko
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBjb25zdDsKICAgICBib29sIGhhc093blByb3BlcnR5
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkKSBjb25zdDsKIAorICAgIHN0YXRpYyB2b2lkIHdpbGxSZXBs
YWNlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKKwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRlbGV0ZVBy
b3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IGQzYjYxZTUuLjdkMDRlZjU0MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC00NDQsNiArNDQ0LDI3
IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24oVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJvCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAK
K1N0cnVjdHVyZSogU3RydWN0dXJlOjpyZXBsYWNlUHJvcGVydHlUcmFuc2l0aW9uKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpCit7CisgICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25h
cnkoKSkgeworICAgICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBhdHRyaWJ1dGVDaGFuZ2VU
cmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7CisKKyAg
ICAgICAgLy8gRklYTUU6IElzIHRoaXMgbmVlZGVkPyBUaGUgcmVtb3ZlUHJvcGV0eVdpdGhvdXRU
cmFuc2l0aW9uIGRvZXMgaXQKKyAgICAgICAgLy8gYnV0IGF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRp
b24gZG9lc24ndC4KKyAgICAgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgICAgICB0
cmFuc2l0aW9uLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnlGb3JQaW5uaW5nKHZt
LCBkZWZlckdDKTsKKyAgICAgICAgdHJhbnNpdGlvbi0+cGluKCk7CisKKyAgICAgICAgcmV0dXJu
IHRyYW5zaXRpb247CisgICAgfQorCisgICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gdG9VbmNh
Y2hlYWJsZURpY3Rpb25hcnlUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUpOworICAgIHRyYW5zaXRp
b24gPSBhdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKHZtLCB0cmFuc2l0aW9uLCBwcm9wZXJ0eU5h
bWUsIGF0dHJpYnV0ZXMpOworCisgICAgdHJhbnNpdGlvbi0+Y2hlY2tPZmZzZXRDb25zaXN0ZW5j
eSgpOworICAgIHJldHVybiB0cmFuc2l0aW9uOworfQorCiBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6
Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U1ZhbHVlIHByb3RvdHlwZSkKIHsKICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUo
dm0sIHN0cnVjdHVyZSk7CkBAIC00NzksNyArNTAwLDEwIEBAIFN0cnVjdHVyZSogU3RydWN0dXJl
OjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IFByCiAgICAgQVNTRVJUKGVudHJ5KTsKICAgICBlbnRyeS0+YXR0cmlidXRlcyA9IGF0dHJpYnV0
ZXM7CiAKLSAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koKTsKKyAgICBpZiAo
YXR0cmlidXRlcyAmIERvbnRFbnVtKQorICAgICAgICBzdHJ1Y3R1cmUtPnNldEhhc05vbkVudW1l
cmFibGVQcm9wZXJ0aWVzKHRydWUpOworCisgICAgc3RydWN0dXJlLT5jaGVja0NvbnNpc3RlbmN5
KCk7CiAgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaAppbmRleCA0ZDdlNWMxLi43MzkyMTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMTM1LDYgKzEzNSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBhZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3Ry
dWN0dXJlQ29uY3VycmVudGx5KFN0cnVjdHVyZSosIEF0b21pY1N0cmluZ0ltcGwqIHVpZCwgdW5z
aWduZWQgYXR0cmlidXRlcywgUHJvcGVydHlPZmZzZXQmKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgU3RydWN0dXJlKiBhZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0
dXJlKFN0cnVjdHVyZSosIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgUHJvcGVy
dHlPZmZzZXQmKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiByZW1vdmVQcm9wZXJ0eVRyYW5zaXRp
b24oVk0mLCBTdHJ1Y3R1cmUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5T2Zmc2V0Jik7CisgICAg
c3RhdGljIFN0cnVjdHVyZSogcmVwbGFjZVByb3BlcnR5VHJhbnNpdGlvbihWTSYsIFN0cnVjdHVy
ZSosIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFN0cnVjdHVyZSogY2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbihWTSYsIFN0
cnVjdHVyZSosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBhdHRy
aWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKFZNJiwgU3RydWN0dXJlKiwgUHJvcGVydHlOYW1lLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RydWN0dXJl
KiB0b0NhY2hlYWJsZURpY3Rpb25hcnlUcmFuc2l0aW9uKFZNJiwgU3RydWN0dXJlKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398372</attachid>
            <date>2020-05-04 08:53:50 -0700</date>
            <delta_ts>2020-05-04 14:27:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200504185348.patch</filename>
            <type>text/plain</type>
            <size>52275</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ODNhMDZmOGUzZjQ5YzVjMGQ2ZjM3ZDcyNzAxMzJkMTIyMTFjYjdhLi5mYjJlZGMxZTNjZWRhNGZl
ZjZkY2Q0MmVhMjhiNjI3NjVlNTdhMDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wNS0wNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgKyBwdXQgdG8gcmVkZWZpbmUgYXR0cmlidXRlcyBvZiBhCisgICAgICAg
IG5vbi1pbmRleGVkIHByb3BlcnR5LiBUaGlzIGlzIGxlc3MgZWZmaWNpZW50IGFuZCBjb3JydXB0
cyBwcm9wZXJ0eSBvcmRlci4KKworICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAxLiBSZW1v
dmVzIHByb3BlcnR5IGRlbGV0aW9ucyBhbmQgdXNlcyBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5n
ZVRyYW5zaXRpb24oKQorICAgICAgICAgICBmb3IgcmVkZWZpbmluZyBhdHRyaWJ1dGVzLgorICAg
ICAgICAyLiBSZXdyaXRlcyB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKCkgdG8g
Y2xvc2VyIG1hdGNoIHRoZSBzcGVjIFsxXS4gIAorICAgICAgICAzLiBSZW1vdmVzIGdldERpcmVj
dCgpIGluIGZhdm9yIG9mIHVzaW5nIGN1cnJlbnQgZGVzY3JpcHRvciB0byBvYnRhaW4gZ2V0dGVy
cworICAgICAgICAgICBhbmQgc2V0dGVycyBpbiB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNj
cmlwdG9yKCkuCisgICAgICAgIDQuIFJlbW92ZXMgRGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgYXMg
aXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsaWduZXMgb2Jz
ZXJ2YWJsZSBwcm9wZXJ0eSBvcmRlciB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisKKyAgICAg
ICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9w
ZXJ0eWRlc2NyaXB0b3IKKworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFkZEZ1
bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBs
eVByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25O
b25JbmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVz
Y3JpcHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRl
clNldHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dl
dHRlclNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9W
TS5oOgorICAgICAgICAoSlNDOjpWTTo6ZGVsZXRlUHJvcGVydHlNb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZTo6fkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlKTogRGVsZXRlZC4KKwogMjAyMC0wNS0wMSAg
U2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIGEgdGhyZWFk
IGxvY2FsIGNhY2hlIGZvciB0aGUgV2FzbSBMTEludCBieXRlY29kZSBidWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3MDc0YzE0YTJmNjg5OWYxOTM4MmU3NDVjM2E4MzEzNjcwYTBmNjljLi4yN2MyYzM2NDk5
NzEyZTMwMGRjM2IyMDljODMwZDFkZmMwY2UzNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMjAtMDUtMDQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgor
CisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5z
ZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgIFJlbW92ZXMgdXNhZ2VzIG9mIERlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNp
bmNlIHByb3BlcnRpZXMgd2UgYXJlIHJlbW92aW5nIGFyZQorICAgICAgICBub24tY29uZmlndXJh
YmxlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvKjog
VXBkYXRlZC4KKwogMjAyMC0wNS0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ3Jlc3Npb24ocjI1OTAzNikgVW5hYmxlIHRvIHBvc3QgY29tbWVudHMgb24g
SmlyYQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRl
eCA5ZTM0OTFmOWQ3YTEzOTM1NmQ5N2Y0MGJhNGM1ZjhkM2ExYWE1M2IzLi40OWEwMDVlNzkxZDZi
ZGVmMWZlMDQ5NTQ1NTUxNjJhYTcwMmUwZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjA4LDcgKzYwOCw3IEBAIGJvb2wgSlNGdW5jdGlv
bjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQcm9wCiAgICAgaWYgKHRoaXNPYmplY3QtPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkp
IHsKICAgICAgICAgdGhpc09iamVjdC0+cmVpZnlMYXp5UHJvcGVydHlGb3JIb3N0T3JCdWlsdGlu
SWZOZWVkZWQodm0sIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodm0uZGVsZXRlUHJv
cGVydHlNb2RlKCkgIT0gVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KSB7CisgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRm9yIG5vbi1ob3N0IGZ1bmN0aW9ucywgZG9u
J3QgbGV0IHRoZXNlIHByb3BlcnRpZXMgYnkgZGVsZXRlZCAtIGV4Y2VwdCBieSBEZWZpbmVPd25Q
cm9wZXJ0eS4KICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gdGhpc09i
amVjdC0+anNFeGVjdXRhYmxlKCk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg0NDY3ODNiZTU5ODRiZGZlOTgw
NDI2MmU5NTlkMThkYzc0NjU3YzkuLmJhYmY2MDdmZWIwZTg2ZTg3Mjg3ZWUyNDZiODU0MjhmNmQy
MjRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKQEAgLTEzNTIsOCArMTM1Miw2IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZEds
b2JhbFZhcihjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKIAogdm9pZCBKU0dsb2JhbE9iamVjdDo6
YWRkRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiAgICAgYWRkR2xvYmFsVmFyKHByb3Bl
cnR5TmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
aW5kZXggMWJmMjJjNzQ2OWNiMDc0MWE3MjMxYmQyMjg0ODY3OWRmNWRlYjdmOS4uOTI3MTNmYTUy
NGRjYTVmYzJhNDQ4ZGUyMTNlNTFlNjMzODEzMjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMTk5NCw3ICsxOTk0LDcgQEAgYm9vbCBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQcm9wZXIKICAgICAgICAgICAgIC8vIElmIHRoZSBzdGF0aWMgdGFibGUgY29udGFpbnMg
YSBub24tY29uZmlndXJhYmxlIChEb250RGVsZXRlKSBwcm9wZXJ0eSB0aGVuIHdlIGNhbiByZXR1
cm4gZWFybHk7CiAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHByb3BlcnR5IGluIHRoZSBz
dG9yYWdlIGFycmF5IGl0IHRvbyBtdXN0IGJlIG5vbi1jb25maWd1cmFibGUgKHRoZSBsYW5ndWFn
ZSBkb2VzCiAgICAgICAgICAgICAvLyBub3QgYWxsb3cgcmVwYWNlbWVudCBvZiBhIG5vbi1jb25m
aWd1cmFibGUgcHJvcGVydHkgd2l0aCBhIGNvbmZpZ3VyYWJsZSBvbmUpLgotICAgICAgICAgICAg
aWYgKGVudHJ5LT52YWx1ZS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgJiYgdm0uZGVsZXRlUHJvcGVydHlNb2RlKCkgIT0gVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKSB7CisgICAgICAgICAgICBpZiAoZW50cnktPnZhbHVlLT5h
dHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSkgewogICAgICAgICAg
ICAgICAgIEFTU0VSVCghaXNWYWxpZE9mZnNldCh0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5n
ZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpIHx8IGF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQpAQCAtMjAwNiw3ICsyMDA2LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9w
ZXIKIAogICAgIGJvb2wgcHJvcGVydHlJc1ByZXNlbnQgPSBpc1ZhbGlkT2Zmc2V0KHN0cnVjdHVy
ZS0+Z2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKTsKICAgICBpZiAocHJvcGVydHlJ
c1ByZXNlbnQpIHsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSAmJiB2bS5kZWxldGVQcm9wZXJ0eU1vZGUoKSAhPSBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSkgewogICAgICAgICAgICAgc2xvdC5zZXROb25j
b25maWd1cmFibGUoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAt
MzUyOCw0MSArMzUyOCw2IEBAIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXN0YXRpYyBib29sIHB1dERlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIHRhcmdldCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29u
c3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBj
b25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIG9sZERlc2NyaXB0b3IpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmIChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0
b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoZGVz
Y3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgJiYgb2xkRGVzY3JpcHRvci5pc0FjY2Vzc29y
RGVzY3JpcHRvcigpKSB7Ci0gICAgICAgICAgICBKU09iamVjdCogZ2V0dGVyID0gb2xkRGVzY3Jp
cHRvci5nZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogbnVs
bHB0cjsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBvbGREZXNjcmlwdG9yLnNldHRl
clByZXNlbnQoKSA/IG9sZERlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBudWxscHRyOwotICAg
ICAgICAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVyKTsKLSAgICAgICAgICAgIHRhcmdldC0+cHV0
RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCBhdHRy
aWJ1dGVzIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIEpTVmFsdWUgbmV3VmFsdWUgPSBqc1VuZGVmaW5l
ZCgpOwotICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpKQotICAgICAgICAgICAgbmV3VmFs
dWUgPSBkZXNjcmlwdG9yLnZhbHVlKCk7Ci0gICAgICAgIGVsc2UgaWYgKG9sZERlc2NyaXB0b3Iu
dmFsdWUoKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gb2xkRGVzY3JpcHRvci52YWx1ZSgpOwot
ICAgICAgICB0YXJnZXQtPnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSwgYXR0
cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgICAgICBpZiAoYXR0
cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkKLSAgICAgICAgICAgIHRhcmdl
dC0+c3RydWN0dXJlKHZtKS0+c2V0Q29udGFpbnNSZWFkT25seVByb3BlcnRpZXMoKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGF0dHJpYnV0ZXMgJj0gflByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seTsKLQotICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBkZXNjcmlwdG9yLmdldHRl
clByZXNlbnQoKQotICAgICAgICA/IGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiBvbGREZXNj
cmlwdG9yLmdldHRlclByZXNlbnQoKQotICAgICAgICA/IG9sZERlc2NyaXB0b3IuZ2V0dGVyT2Jq
ZWN0KCkgOiBudWxscHRyOwotICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRl
clByZXNlbnQoKQotICAgICAgICA/IGRlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBvbGREZXNj
cmlwdG9yLnNldHRlclByZXNlbnQoKQotICAgICAgICA/IG9sZERlc2NyaXB0b3Iuc2V0dGVyT2Jq
ZWN0KCkgOiBudWxscHRyOwotICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7Ci0KLSAgICB0YXJn
ZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBhY2Nlc3Nv
ciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChw
cm9wZXJ0eU5hbWUpKQpAQCAtMzU3MCw4ICszNTM1LDcgQEAgYm9vbCBKU09iamVjdDo6cHV0RGly
ZWN0TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUg
cHIKICAgICByZXR1cm4gcHV0RGlyZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSk7CiB9CiAKLS8vIDkuMS42LjMgb2YgdGhlIHNwZWMKLS8vIGh0dHA6Ly93d3cuZWNt
YS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvaW5kZXguaHRtbCNzZWMtdmFsaWRhdGVh
bmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgorLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3Nl
Yy12YWxpZGF0ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCiBib29sIHZhbGlkYXRlQW5kQXBw
bHlQcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIG9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgYm9vbCBpc0V4dGVuc2libGUs
CiAgICAgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIGlzQ3VycmVu
dERlZmluZWQsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgY3VycmVudCwgYm9vbCB0aHJvd0V4
Y2VwdGlvbikKIHsKQEAgLTM1ODUsMTMgKzM1NDksMTggQEAgYm9vbCB2YWxpZGF0ZUFuZEFwcGx5
UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KgogICAgICAgICAvLyBTdGVwIDIuYQogICAgICAgICBpZiAoIWlzRXh0ZW5zaWJsZSkKICAgICAg
ICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRp
b24sIE5vbkV4dGVuc2libGVPYmplY3RQcm9wZXJ0eURlZmluZUVycm9yKTsKLSAgICAgICAgaWYg
KCFvYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgLy8gU3RlcCAyLmMv
ZAotICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3Igb2xkRGVzY3JpcHRvcjsKLSAgICAgICAgb2xk
RGVzY3JpcHRvci5zZXRWYWx1ZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgLy8gRklYTUU6IHNw
ZWMgc2F5cyB0byBhbHdheXMgcmV0dXJuIHRydWUgaGVyZS4KLSAgICAgICAgcmV0dXJuIHB1dERl
c2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwg
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCksIG9sZERlc2NyaXB0b3IpOworCisgICAgICAgIGlmIChv
YmplY3QpIHsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9y
KCkpCisgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci5zbG93R2V0dGVyU2V0dGVyKGdsb2JhbE9iamVj
dCksIGRlc2NyaXB0b3IuYXR0cmlidXRlcygpIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdG9y
LmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSk7
CisgICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUoKSA/IGRl
c2NyaXB0b3IudmFsdWUoKSA6IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICAgICAgb2JqZWN0
LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIGRlc2NyaXB0b3IuYXR0cmlidXRl
cygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAvLyBTdGVwIDMuCiAgICAgaWYgKGRlc2NyaXB0b3IuaXNFbXB0eSgpKQpAQCAt
MzYwMiwxMTYgKzM1NzEsNjQgQEAgYm9vbCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlw
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KgogICAgIGlmIChpc0Vx
dWFsKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIFN0ZXAgNS4KLSAgICAvLyBGaWx0
ZXIgb3V0IGludmFsaWQgY2hhbmdlcworICAgIC8vIFN0ZXAgNC4KICAgICBpZiAoIWN1cnJlbnQu
Y29uZmlndXJhYmxlKCkpIHsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93
RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQ29uZmlndXJhYmlsaXR5RXJy
b3IpOwogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGRlc2Ny
aXB0b3IuZW51bWVyYWJsZSgpICE9IGN1cnJlbnQuZW51bWVyYWJsZSgpKQogICAgICAgICAgICAg
cmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5j
b25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUVudW1lcmFiaWxpdHlFcnJvcik7CiAgICAgfQotICAg
IAotICAgIC8vIFN0ZXAgNi4KLSAgICAvLyBBIGdlbmVyaWMgZGVzY3JpcHRvciBpcyBzaW1wbHkg
Y2hhbmdpbmcgdGhlIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKKwogICAgIGlm
IChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoIWN1cnJl
bnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmIG9iamVjdCkgewotICAgICAgICAgICAg
SlNDZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
KTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAg
ICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50
KGN1cnJlbnQpLCBjdXJyZW50KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9Ci0gICAgCi0gICAgLy8gU3RlcCA3LgotICAgIC8vIENoYW5naW5nIGJldHdlZW4gYSBub3Jt
YWwgcHJvcGVydHkgb3IgYW4gYWNjZXNzb3IgcHJvcGVydHkKLSAgICBpZiAoZGVzY3JpcHRvci5p
c0RhdGFEZXNjcmlwdG9yKCkgIT0gY3VycmVudC5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAg
ICAgLy8gU3RlcCA1LgorICAgICAgICAvLyBDaGFuZ2luZyBbW0VudW1lcmFibGVdXSBhbmQgW1tD
b25maWd1cmFibGVdXSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CisgICAgfSBl
bHNlIGlmIChjdXJyZW50LmlzRGF0YURlc2NyaXB0b3IoKSAhPSBkZXNjcmlwdG9yLmlzRGF0YURl
c2NyaXB0b3IoKSkgeworICAgICAgICAvLyBTdGVwIDYuCisgICAgICAgIC8vIENoYW5naW5nIGJl
dHdlZW4gYSBkYXRhIHByb3BlcnR5IGFuZCBhY2Nlc3NvciBwcm9wZXJ0eQogICAgICAgICBpZiAo
IWN1cnJlbnQuY29uZmlndXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5
Q2hhbmdlQWNjZXNzTWVjaGFuaXNtRXJyb3IpOworICAgIH0gZWxzZSBpZiAoY3VycmVudC5pc0Rh
dGFEZXNjcmlwdG9yKCkgJiYgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAg
ICAgLy8gU3RlcCA3LgorICAgICAgICAvLyBDaGFuZ2luZyB0aGUgdmFsdWUgYW5kIGF0dHJpYnV0
ZXMgb2YgYW4gZXhpc3RpbmcgZGF0YSBwcm9wZXJ0eQorICAgICAgICBpZiAoIWN1cnJlbnQuY29u
ZmlndXJhYmxlKCkgJiYgIWN1cnJlbnQud3JpdGFibGUoKSkgeworICAgICAgICAgICAgaWYgKGRl
c2NyaXB0b3Iud3JpdGFibGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5
Q2hhbmdlV3JpdGFiaWxpdHlFcnJvcik7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1
ZSgpICYmICFzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LnZhbHVlKCksIGRlc2NyaXB0
b3IudmFsdWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgUmVhZG9ubHlQcm9wZXJ0eUNoYW5nZUVycm9yKTsK
IAotICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
ICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAg
ICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3Vy
cmVudCksIGN1cnJlbnQpOwotICAgIH0KLQotICAgIC8vIFN0ZXAgOC4KLSAgICAvLyBDaGFuZ2lu
ZyB0aGUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKLSAgICBp
ZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYgKCFjdXJyZW50
LmNvbmZpZ3VyYWJsZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnQud3JpdGFibGUoKSAm
JiBkZXNjcmlwdG9yLndyaXRhYmxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9w
ZXJ0eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOwotICAgICAgICAgICAgaWYgKCFjdXJyZW50Lndy
aXRhYmxlKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTYW1lID0gc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwg
Y3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghaXNTYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgUmVhZG9ubHlQcm9wZXJ0eUNoYW5n
ZUVycm9yKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KLSAg
ICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmICFkZXNjcmlw
dG9yLnZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKCFvYmpl
Y3QpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9w
ZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRv
cihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlw
dG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KSwgY3VycmVudCk7Ci0gICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFN0ZXAgOC4KKyAgICAgICAgLy8gQ2hhbmdpbmcg
dGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhbmQgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBhY2Nl
c3NvciBwcm9wZXJ0eQorICAgICAgICBBU1NFUlQoY3VycmVudC5pc0FjY2Vzc29yRGVzY3JpcHRv
cigpICYmIGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSk7CisgICAgICAgIGlmICgh
Y3VycmVudC5jb25maWd1cmFibGUoKSkgeworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0
dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iuc2V0dGVyKCkgIT0gY3VycmVudC5zZXR0ZXIoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRo
cm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIHNldHRlciBvZiBhbiB1bmNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZ2V0
dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkgIT0gY3VycmVudC5nZXR0ZXIoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRo
cm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIGdldHRlciBvZiBhbiB1bmNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmli
dXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24s
IFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VBY2Nlc3NNZWNoYW5pc21FcnJvcik7CiAKLSAg
ICAvLyBTdGVwIDkuCi0gICAgLy8gQ2hhbmdpbmcgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBvZiBh
biBleGlzdGluZyBhY2Nlc3NvciBwcm9wZXJ0eQotICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzQWNj
ZXNzb3JEZXNjcmlwdG9yKCkpOwotICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkgewot
ICAgICAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgJiYgIShjdXJyZW50LnNldHRl
clByZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxPYmplY3QsIGN1cnJlbnQu
c2V0dGVyKCksIGRlc2NyaXB0b3Iuc2V0dGVyKCkpKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRv
IGNoYW5nZSB0aGUgc2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7Ci0g
ICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSAmJiAhKGN1cnJlbnQuZ2V0dGVy
UHJlc2VudCgpICYmIEpTVmFsdWU6OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwgY3VycmVudC5n
ZXR0ZXIoKSwgZGVzY3JpcHRvci5nZXR0ZXIoKSkpKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8g
Y2hhbmdlIHRoZSBnZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKLSAg
ICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUFjY2Vzc01l
Y2hhbmlzbUVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAg
fQogCi0gICAgLy8gU3RlcCAxMC8xMS4KICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgSlNWYWx1ZSBhY2Nlc3NvciA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBwcm9w
ZXJ0eU5hbWUpOwotICAgIGlmICghYWNjZXNzb3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBKU09iamVjdCogZ2V0dGVyID0gbnVsbHB0cjsKLSAgICBKU09iamVjdCogc2V0dGVyID0gbnVs
bHB0cjsKLSAgICBib29sIGdldHRlclNldHRlckNoYW5nZWQgPSBmYWxzZTsKLQotICAgIGlmIChh
Y2Nlc3Nvci5pc0N1c3RvbUdldHRlclNldHRlcigpKSB7Ci0gICAgICAgIGF1dG8qIGN1c3RvbUdl
dHRlclNldHRlciA9IGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihhY2Nlc3Nvcik7Ci0gICAg
ICAgIGlmIChjdXN0b21HZXR0ZXJTZXR0ZXItPnNldHRlcigpKQotICAgICAgICAgICAgc2V0dGVy
ID0gZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgSlNDdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbjo6VHlwZTo6U2V0dGVyKTsKLSAgICAgICAgaWYgKGN1c3RvbUdldHRlclNldHRl
ci0+Z2V0dGVyKCkpCi0gICAgICAgICAgICBnZXR0ZXIgPSBnZXRDdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbkZvckdldHRlclNldHRlcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgY3VzdG9t
R2V0dGVyU2V0dGVyLCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOjpUeXBlOjpHZXR0ZXIp
OworCisgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSB8fCAoY3VycmVu
dC5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3Io
KSkpIHsKKyAgICAgICAgSlNPYmplY3QqIGdldHRlciA9IGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2Vu
dCgpID8gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKSA6IChjdXJyZW50LmdldHRlclByZXNlbnQo
KSA/IGN1cnJlbnQuZ2V0dGVyT2JqZWN0KCkgOiBudWxscHRyKTsKKyAgICAgICAgSlNPYmplY3Qq
IHNldHRlciA9IGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpID8gZGVzY3JpcHRvci5zZXR0ZXJP
YmplY3QoKSA6IChjdXJyZW50LnNldHRlclByZXNlbnQoKSA/IGN1cnJlbnQuc2V0dGVyT2JqZWN0
KCkgOiBudWxscHRyKTsKKyAgICAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0
ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7CisgICAg
ICAgIG9iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGdldHRlclNldHRlciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3Vy
cmVudCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChhY2Nlc3Nvci5pc0dldHRlclNl
dHRlcigpKTsKLSAgICAgICAgYXV0byogZ2V0dGVyU2V0dGVyID0ganNDYXN0PEdldHRlclNldHRl
cio+KGFjY2Vzc29yKTsKLSAgICAgICAgZ2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKTsK
LSAgICAgICAgc2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5zZXR0ZXIoKTsKLSAgICB9Ci0gICAgaWYg
KGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpKSB7Ci0gICAgICAgIHNldHRlciA9IGRlc2NyaXB0
b3Iuc2V0dGVyT2JqZWN0KCk7Ci0gICAgICAgIGdldHRlclNldHRlckNoYW5nZWQgPSB0cnVlOwot
ICAgIH0KLSAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpIHsKLSAgICAgICAgZ2V0
dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKTsKLSAgICAgICAgZ2V0dGVyU2V0dGVyQ2hh
bmdlZCA9IHRydWU7CisgICAgICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0
b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSk7CisgICAgICAgIEpTVmFsdWUg
dmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlKCkgPyBkZXNjcmlwdG9yLnZhbHVlKCkgOiAoY3VycmVu
dC52YWx1ZSgpID8gY3VycmVudC52YWx1ZSgpIDoganNVbmRlZmluZWQoKSk7CisgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChjdXJyZW50KSAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3I7CisgICAgICAgIG9iamVj
dC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKICAgICB9
CiAKLSAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgIWdldHRl
clNldHRlckNoYW5nZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgR2V0dGVyU2V0dGVy
KiBnZXR0ZXJTZXR0ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBn
ZXR0ZXIsIHNldHRlcik7Ci0KLSAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGZhbHNlKTsKLSAgICB1bnNpZ25lZCBhdHRycyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJy
aWRpbmdDdXJyZW50KGN1cnJlbnQpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwgYXR0cnMgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zNzIwLDExICsz
NjM3LDYgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duTm9uSW5kZXhQcm9wZXJ0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU4KICAgICBWTSYgdm0gID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCi0gICAgLy8gVHJhY2sgb24gdGhlIGdsb2JhbGRhdGEgdGhhdCB3ZSdyZSBpbiBkZWZpbmUg
cHJvcGVydHkuCi0gICAgLy8gQ3VycmVudGx5IERlZmluZU93blByb3BlcnR5IHVzZXMgZGVsZXRl
IHRvIHJlbW92ZSBwcm9wZXJ0aWVzIHdoZW4gdGhleSBhcmUgYmVpbmcgcmVwbGFjZWQKLSAgICAv
LyAocGFydGljdWxhcmx5IHdoZW4gY2hhbmdpbmcgYXR0cmlidXRlcyksIGhvd2V2ZXIgZGVsZXRl
IHdvbid0IGFsbG93IG5vbi1jb25maWd1cmFibGUgKGkuZS4KLSAgICAvLyBEb250RGVsZXRlKSBw
cm9wZXJ0aWVzIHRvIGJlIGRlbGV0ZWQuIEZvciBub3csIHdlIGNhbiB1c2UgdGhpcyBmbGFnIHRv
IG1ha2UgdGhpcyB3b3JrLgotICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICBQcm9w
ZXJ0eURlc2NyaXB0b3IgY3VycmVudDsKICAgICBib29sIGlzQ3VycmVudERlZmluZWQgPSBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1cnJlbnQp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRleCAyMGYxZDg1
NjAzOTI1YTY4ZjU0YTYzODhmNWY2Y2EwMTRmY2I4YTk4Li43YWIwNDE0NmFkYzZjNjY1ZTdhN2Y3
NWMxNDJkOWM3ZWM5Y2QzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdElubGluZXMuaApAQCAtMzE2LDEwICszMTYsOSBAQCBBTFdBWVNfSU5MSU5FIGJv
b2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZQogICAgICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZzZXQsIHZhbHVlKTsKICAgICAg
ICAgICAgIHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3BlcnR5KG9mZnNldCk7CiAKLSAgICAgICAg
ICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgIT0gKGN1
cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSB8fCAoYXR0cmli
dXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpICE9IChjdXJy
ZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUp
KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSkpOworICAgICAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURlZmluZU93
blByb3BlcnR5ICYmIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykgIT0gYXR0cmli
dXRlc0ZvclN0cnVjdHVyZShjdXJyZW50QXR0cmlidXRlcykpCiAgICAgICAgICAgICAgICAgc2V0
U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHN0
cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVy
dHkodGhpcywgb2Zmc2V0KTsKIAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNzAsMTAg
KzM2OSw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwo
Vk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgICAgIHN0cnVjdHVyZS0+ZGlk
UmVwbGFjZVByb3BlcnR5KG9mZnNldCk7CiAgICAgICAgIHB1dERpcmVjdCh2bSwgb2Zmc2V0LCB2
YWx1ZSk7CiAKLSAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFj
Y2Vzc29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JW
YWx1ZSkgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yT3JWYWx1ZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURl
ZmluZU93blByb3BlcnR5ICYmIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykgIT0g
YXR0cmlidXRlc0ZvclN0cnVjdHVyZShjdXJyZW50QXR0cmlidXRlcykpCiAgICAgICAgICAgICBz
ZXRTdHJ1Y3R1cmUodm0sIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbih2bSwg
c3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKTsKLSAgICAgICAgfSBlbHNlCisg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBv
ZmZzZXQpOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKaW5kZXggNDQwNmU4MGJjYzAw
OTBhZTY5OGE3OWNmYzQyN2YwODdhNzM2ZGY3MS4uY2FmZGQ2ODMzMDQwMDUxMzgwMTIwNjIyMjJl
MzQ3YjZhNmM2ZGYxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgUHJvcGVydHlE
ZXNjcmlwdG9yOjpzZXRVbmRlZmluZWQoKQogICAgIG1fYXR0cmlidXRlcyA9IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtOwogfQogCi1HZXR0ZXJTZXR0ZXIqIFByb3BlcnR5RGVzY3Jp
cHRvcjo6c2xvd0dldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorR2V0
dGVyU2V0dGVyKiBQcm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgSlNWYWx1ZSBnZXR0ZXIgPSBtX2dldHRlciAmJiAhbV9nZXR0ZXIuaXNVbmRl
ZmluZWQoKSA/IGpzQ2FzdDxKU09iamVjdCo+KG1fZ2V0dGVyKSA6IGpzVW5kZWZpbmVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5o
CmluZGV4IDRkZmYxMGY2MzM2NGViOWUxYTA1MDhhODI0NzQ5YzYyMDZiNzA2YzYuLmE1MjFhNDIy
ODZlZDFmZTZjMDc3OGFjNjRkYWRjNjllMjFmMDE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCkBAIC01Niw3ICs1Niw3IEBA
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzQWNjZXNzb3JEZXNjcmlwdG9y
KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0
cmlidXRlczsgfQogICAgIEpTVmFsdWUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
Ci0gICAgR2V0dGVyU2V0dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0Kik7IC8v
IEJlIGF3YXJlIHRoYXQgdGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBhIEdldHRlclNldHRlciBv
YmplY3QuIEl0J3MgbXVjaCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFuZCBzZXR0ZXIoKSBpbmRp
dmlkdWFsbHkgaWYgcG9zc2libGUuCisgICAgR2V0dGVyU2V0dGVyKiBzbG93R2V0dGVyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7IC8vIEJlIGF3YXJlIHRoYXQgdGhpcyB3aWxsIGxhemls
eSBhbGxvY2F0ZSBhIEdldHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVjaCBiZXR0ZXIgdG8gdXNl
IGdldHRlcigpIGFuZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9zc2libGUuCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBnZXR0ZXIoKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBKU1ZhbHVlIHNldHRlcigpIGNvbnN0OwogICAgIEpTT2JqZWN0KiBnZXR0ZXJPYmplY3Qo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmlu
ZGV4IDljMmNlN2FmYWU2ZTM4ZTdhNjA4MDI2ZjUxNzcxMTBlM2M4NTU2MmUuLjk4YTAzODVhYTc3
NDczM2NmYTY1OGYxZWNhODg1MDk3NTUzOWIzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtNjY5LDYgKzY2OSw5IEBAIFN0cnVjdHVyZSogU3Ry
dWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFByCiAgICAgQVNTRVJUKGVudHJ5KTsKICAgICBlbnRyeS0+YXR0cmlidXRlcyA9IGF0
dHJpYnV0ZXM7CiAKKyAgICBpZiAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkKKyAgICAgICAgc3RydWN0dXJlLT5zZXRJc1F1aWNrUHJvcGVydHlBY2Nlc3NBbGxvd2Vk
Rm9yRW51bWVyYXRpb24oZmFsc2UpOworCiAgICAgc3RydWN0dXJlLT5jaGVja09mZnNldENvbnNp
c3RlbmN5KCk7CiAgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCmluZGV4IDUyOTI5MzNjMTNkYWZhYzdlNjFhYjhjNTc4NGFlYzUwMTZiMzBiMjcuLmMw
NWJkYTY2MjkwMDQxYzFlN2ZkMTg1NmZmNDRjY2QzZDMzYzg0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaApAQCAtNzU0LDM4ICs3NTQsNiBAQCBwdWJsaWM6CiAKICAgICBXZWFrR0NN
YXA8U3ltYm9sSW1wbCosIFN5bWJvbCwgUHRySGFzaDxTeW1ib2xJbXBsKj4+IHN5bWJvbEltcGxU
b1N5bWJvbE1hcDsKIAotICAgIGVudW0gY2xhc3MgRGVsZXRlUHJvcGVydHlNb2RlIHsKLSAgICAg
ICAgLy8gRGVmYXVsdCBiZWhhdmlvdXIgb2YgZGVsZXRlUHJvcGVydHksIG1hdGNoaW5nIHRoZSBz
cGVjLgotICAgICAgICBEZWZhdWx0LAotICAgICAgICAvLyBUaGlzIHNldHRpbmcgY2F1c2VzIGRl
bGV0ZVByb3BlcnR5IHRvIGZvcmNlIGRlbGV0aW9uIG9mIGFsbAotICAgICAgICAvLyBwcm9wZXJ0
aWVzIGluY2x1ZGluZyB0aG9zZSB0aGF0IGFyZSBub24tY29uZmlndXJhYmxlIChEb250RGVsZXRl
KS4KLSAgICAgICAgSWdub3JlQ29uZmlndXJhYmxlCi0gICAgfTsKLQotICAgIERlbGV0ZVByb3Bl
cnR5TW9kZSBkZWxldGVQcm9wZXJ0eU1vZGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGVs
ZXRlUHJvcGVydHlNb2RlOwotICAgIH0KLQotICAgIGNsYXNzIERlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5TW9kZVNjb3BlKFZNJiB2
bSwgRGVsZXRlUHJvcGVydHlNb2RlIG1vZGUpCi0gICAgICAgICAgICA6IG1fdm0odm0pCi0gICAg
ICAgICAgICAsIG1fcHJldmlvdXNNb2RlKHZtLm1fZGVsZXRlUHJvcGVydHlNb2RlKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBtX3ZtLm1fZGVsZXRlUHJvcGVydHlNb2RlID0gbW9kZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIH5EZWxldGVQcm9wZXJ0eU1vZGVTY29wZSgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIG1fdm0ubV9kZWxldGVQcm9wZXJ0eU1vZGUgPSBtX3ByZXZpb3VzTW9kZTsKLSAg
ICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgVk0mIG1fdm07Ci0gICAgICAgIERlbGV0
ZVByb3BlcnR5TW9kZSBtX3ByZXZpb3VzTW9kZTsKLSAgICB9OwotCiAgICAgc3RhdGljIEpTX0VY
UE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlQXNzZW1ibGVyKCk7CiAgICAgc3RhdGljIGJvb2wgaXNJ
bk1pbmlNb2RlKCkKICAgICB7CkBAIC0xMTkwLDcgKzExNTgsNiBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICBib29sIG1fZmFpbE5leHROZXdDb2RlQmxvY2sgeyBmYWxzZSB9OwotICAgIERlbGV0
ZVByb3BlcnR5TW9kZSBtX2RlbGV0ZVByb3BlcnR5TW9kZSB7IERlbGV0ZVByb3BlcnR5TW9kZTo6
RGVmYXVsdCB9OwogICAgIGJvb2wgbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcg
eyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCAyMTY1YzEzODZiY2Q3YTg3N2VmODEyZWYxZTJhNWVjMGRkODA0YjNjLi5mNTdiNTNi
MmU2ZmYxZDBjYzQwMTlmYzYxZTEwOWRkOWUwZDhlYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDMyMiw5ICs0MzIy
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRu
YW1lXCIpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICB9CkBAIC03NjM2LDkgKzc2
MzQsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICAgICAgbXkg
JG5hbWUgPSAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUtPm5hbWU7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBpZiAoISR7cnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nfSkge1xu
Iik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7Ci0g
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNs
b3Q7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIEpTQ2VsbDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVk
QnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCA2MmIwMzI5NTgwODYyMmJhZTI5Mjk0ZGFi
NTIyMjJjZjc2Y2NlOWU5Li5lNDNhOTRhM2MwYmNmYjRjYWE2MTllMWNmMGJlNTI1MGNkZWJjNWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCkBAIC0xNDUsMTggKzE0NSwx
NCBAQCB2b2lkIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSkKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRp
bmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVk
QnlTZXR0aW5nT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIp
KTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBEZWxldGVQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGds
b2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNl
bmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVu
dD4oanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpLT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKSB7CiAgICAg
ICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAjZW5kaWYKICAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJv
cGVydGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggMDVjODdhNWNmMWQ1YTk2YmQ3NWUwMWYzMGFk
YzU3NDdjMjczZGE0OC4uZjQyZWE0NmYzYTc0MzI5NmQ3ZTY5YmI1NjhmNTE0NjY3Y2E0YzgwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtMTE3LDkgKzEx
Nyw3IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7
CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBh
dXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiYVNlY3JldEF0dHJpYnV0ZSIpLCBzdHJsZW4oImFTZWNyZXRB
dHRyaWJ1dGUiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAg
RGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlND
ZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICB9CiAgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJl
KCktPmlzRGljdGlvbmFyeSgpKQogICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAKaW5kZXggOTI1ODJjMTQ0YzJiZDYxN2QwMjMyOGU0YmQyYWI3YjAzZWNlMWEw
Yi4uODhiZjE4YTVjOWNhODQ0YjEwYTBkNjNlNDI3Yjc4YzI1MWFkMjY0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cApAQCAtMTY2LDUzICsxNjYsMzkgQEAgdm9pZCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkp
IHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSwgc3RybGVuKCJj
YWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0
KCkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAg
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0
U2VjcmV0Qm9vbGVhbiIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAg
ICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUpOwogICAgIH0KICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghKGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRl
c3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0
Qm9vbGVhbiIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZt
LCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBE
ZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0Nl
bGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICNlbmRpZgogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVudHJp
ZXMiKSwgc3RybGVuKCJlbnRyaWVzIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHBy
b3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImtleXMiKSwgc3RybGVuKCJrZXlzIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHBy
b3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
InZhbHVlcyIpLCBzdHJsZW4oInZhbHVlcyIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgp
LCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKICAgICAgICAgaGFzRGlz
YWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJmb3JFYWNoIiksIHN0cmxlbigiZm9yRWFjaCIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVD
b25maWd1cmFibGUpOwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgIGZsYXR0
ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOTEzMzJkYzIxNDA2NGI0ZjA3
OTM1OTBhZDI1MDY2YTVkOGVkYjI3OC4uOWRlMTJiZWM1MzdmZWNjMzdmY2YyZjAxZDFmMmI2MTc4
YzI4ZjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE5OTQsMTcgKzE5OTQsMTMgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpT
RE9NR2xvYmFsT2IKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkgewog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0
YXRpYyIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKSk7Ci0gICAg
ICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3Bl
cnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90
IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpIHsKICAgICAgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiKSwgc3RybGVuKCJl
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNv
bmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogfQpAQCAtMjM1OSwxMDUgKzIzNTUs
NzcgQEAgdm9pZCBKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAg
ICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1
cmVFbmFibGVkKCkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRy
dWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpKTsKLSAgICAgICAgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
OjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsK
LSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlmICgh
KHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zb21lV29ybGQoKSAmJiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgewogICAgICAg
ICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFi
bGVkIiksIHN0cmxlbigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVu
YWJsZWQiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVs
ZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxs
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAgICAgaWYgKCF3b3JsZEZvckRPTU9iamVjdCgqdGhpcykuc29tZVdvcmxkKCkpIHsKICAg
ICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJ3b3JsZFNwZWNpZmljTWV0aG9kIiksIHN0cmxlbigid29ybGRTcGVj
aWZpY01ldGhvZCIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBK
U0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUp
OwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVj
dCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgewogICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0
ZVNlY3JldFJlc3VsdCIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAg
ICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgewog
ICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRTZWNyZXRC
b29sZWFuIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0s
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2Vs
bDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAg
ICAgfQogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoanNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlz
U2VjdXJlQ29udGV4dCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVBy
b3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidGVzdEZlYXR1
cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFu
IikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVBy
b3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQog
I2VuZGlmCiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qo
KSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIGhh
c0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uIiksIHN0cmxlbigi
Y29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uIikpOwotICAgICAgICBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAg
ICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghanNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9w
ZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9Xb3JrZXJGdW5jdGlvbiIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3Bl
IHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwot
ICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
ICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0
eU5hbWUpOwogICAgIH0KICAgICBpZiAoIShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCl8
fCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+YWxsb3dzTWVkaWFEZXZpY2VzKCkpKSB7CiAgICAgICAgIGhhc0Rpc2Fi
bGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigibWVkaWFEZXZpY2VzIiksIHN0cmxlbigibWVkaWFEZXZpY2VzIikpOwotICAgICAgICBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6
Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90Owot
ICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghKGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc1NlY3VyZUNvbnRleHQoKXx8IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5oYXNTZXJ2aWNlV29ya2VyU2No
ZW1lKCkpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigic2VydmljZVdvcmtlcnMiKSwgc3RybGVuKCJz
ZXJ2aWNlV29ya2VycyIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAg
ICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUpOwogICAgIH0KICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkgJiYg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZTFFbmFi
bGVkKCkpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwog
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIp
LCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKSk7Ci0gICAgICAgIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdu
b3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAg
ICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjZW5kaWYKICAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
IHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSIpLCBzdHJsZW4oInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIikp
OwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAg
IGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKSwgc3RybGVuKCJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZp
Z3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0
KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzV29ya2Vy
R2xvYmFsU2NvcGUoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0g
dHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9Xb3JrZXJBdHRyaWJ1dGUiKSwgc3RybGVuKCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2Vy
QXR0cmlidXRlIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAg
IERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7
CiAgICAgfQogICAgIC8vIEFkZGluZyBiYWNrIGF0dHJpYnV0ZSwgYnV0IGFzIHJlYWRvbmx5LCBh
ZnRlciByZW1vdmluZyB0aGUgcmVhZC13cml0ZSB2YXJpYW50IGFib3ZlLiAKICAgICBpZiAoIVJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVk
KCkpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGFlOTgwYWFhYTU3NjFkMzVmNDFmNGU2ZjA5ZDBkNjk5NzZmMTI3ZjguLjg1MTU5MzdiNGMy
NDUyZGZlYmUzNjk5YWMyNjkyMDhkYmU3MTI0M2EgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDUtMDQg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZGVm
aW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChP
YmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayAxMiB0ZXN0IGNhc2Vz
IGFzIHBhc3NpbmcuCisKIDIwMjAtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggc3RyZXNzL2JpZy1pbnQtbmVnYXRlLWppdC5qcwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDJjMWFjYWFmODAwMWEzNTJlODJhMDcwMjY1NzVkMTYy
NTMyNThkNTYuLjVjYTNiOWZjOWJiMmY2NmQ1M2MyYTQ4NjY4ZDgwZmMwNTY1NmMyZTMgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTEwMDksMTcgKzEwMDksOCBAQCB0ZXN0L2J1aWx0
LWlucy9KU09OL3BhcnNlL3Jldml2ZXItb2JqZWN0LW5vbi1jb25maWd1cmFibGUtcHJvcC1jcmVh
dGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzIy
wrssIMKrMsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrMjLCuywgwqsywrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlu
cy9PYmplY3QvZW50cmllcy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVp
bHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL29yZGVyLWFmdGVyLWRlZmlu
ZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJv
bChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0
eU5hbWVzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFu
ZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvT2Jq
ZWN0L2dldE93blByb3BlcnR5U3ltYm9scy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChh
KV0gYW5kIFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4g
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3lt
Ym9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBuYW1lXSBhbmQg
W25hbWUsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBuYW1lXSBhbmQgW25hbWUsIGFdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5l
T3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1hcmd1bWVudHMuanM6CiAgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq251bGzCuywgwqtbb2Jq
ZWN0IEFyZ3VtZW50c13CuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRl
cm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1jYWxsZXIu
anM6CkBAIC0xMDI4LDggKzEwMTksOCBAQCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxz
L0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFsdWUtcmVnZXhwLWRvbGxhcgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJl
IHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqvCuywgwqt4wrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9vcmRl
ci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMuICcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhd
IGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvcHJvdG90eXBlL3RvU3RyaW5nL3Byb3h5LWZ1bmN0aW9uLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBmdW5jdGlvbiBwcm94eSBFeHBlY3RlZCBTYW1lVmFsdWUowqtb
b2JqZWN0IE9iamVjdF3Cuywgwqtbb2JqZWN0IEZ1bmN0aW9uXcK7KSB0byBiZSB0cnVlJwogICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogZnVuY3Rpb24gcHJveHkgRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrW29iamVjdCBPYmplY3RdwrssIMKrW29iamVjdCBGdW5jdGlvbl3CuykgdG8gYmUgdHJ1
ZScKQEAgLTEwMzksOSArMTAzMCw2IEBAIHRlc3QvYnVpbHQtaW5zL09iamVjdC9wcm90b3R5cGUv
dG9TdHJpbmcvc3ltYm9sLXRhZy1ub24tc3RyLWJ1aWx0aW4uanM6CiB0ZXN0L2J1aWx0LWlucy9P
YmplY3QvcHJvdG90eXBlL3RvU3RyaW5nL3N5bWJvbC10YWctbm9uLXN0ci1wcm94eS1mdW5jdGlv
bi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogZ2VuZXJhdG9yIGZ1bmN0aW9uIHByb3h5
IHdpdGhvdXQgU3ltYm9sLnRvU3RyaW5nVGFnIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3Qg
T2JqZWN0XcK7LCDCq1tvYmplY3QgRnVuY3Rpb25dwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBnZW5lcmF0b3IgZnVuY3Rpb24gcHJveHkgd2l0aG91dCBTeW1i
b2wudG9TdHJpbmdUYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBPYmplY3RdwrssIMKr
W29iamVjdCBGdW5jdGlvbl3CuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL09iamVjdC92
YWx1ZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5k
IFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItY2xvc2UuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrss
IMKrMcK7KSB0byBiZSB0cnVlJwpAQCAtMTExNCw5ICsxMTAyLDYgQEAgdGVzdC9idWlsdC1pbnMv
UHJveHkvY29uc3RydWN0L3RyYXAtaXMtbm90LWNhbGxhYmxlLXJlYWxtLmpzOgogdGVzdC9idWls
dC1pbnMvUHJveHkvb3duS2V5cy90cmFwLWlzLXVuZGVmaW5lZC10YXJnZXQtaXMtcHJveHkuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtsZW5ndGgsIGZvbywgMCwgU3lt
Ym9sKCldIGFuZCBbU3ltYm9sKCksIGxlbmd0aCwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbGVuZ3Ro
LCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvUmVmbGVjdC9vd25LZXlzL29y
ZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIp
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1i
b2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4
cC9wcm9wZXJ0eS1lc2NhcGVzL2dlbmVyYXRlZC9BbHBoYWJldGljLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBgXHB7QWxwaGFiZXRpY31gIHNob3VsZCBtYXRjaCBVKzAwMUNGQSAoYOGz
umApJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFxwe0FscGhhYmV0aWN9YCBzaG91
bGQgbWF0Y2ggVSswMDFDRkEgKGDhs7pgKScKQEAgLTMzNDMsOSArMzMyOCw2IEBAIHRlc3QvbGFu
Z3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vaWRlbnRpZmllci1sZXQtYWxsb3dlZC1hcy1sZWZ0aGFu
ZHNpZGUtZXhwcmVzc2lvCiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogQ2Fubm90IHVzZSB0aGUg
a2V5d29yZCAnaW4nIGFzIGEgbGV4aWNhbCB2YXJpYWJsZSBuYW1lLiIKIHRlc3QvbGFuZ3VhZ2Uv
c3RhdGVtZW50cy9mb3ItaW4vbGV0LWFycmF5LXdpdGgtbmV3bGluZS5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3Qv
bGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5Lmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAn
CiB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWluL29yZGVyLWVudW1lcmFibGUtc2hhZG93
ZWQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBb
cDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMuICcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398417</attachid>
            <date>2020-05-04 14:27:43 -0700</date>
            <delta_ts>2020-05-07 13:08:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200505002741.patch</filename>
            <type>text/plain</type>
            <size>62515</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ODNhMDZmOGUzZjQ5YzVjMGQ2ZjM3ZDcyNzAxMzJkMTIyMTFjYjdhLi44ZGExODY0YTlhNWEyNmJl
YzhjMDE5OGVmNmZlOGMxZDg5NjhiMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wNS0wNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgKyBwdXQgdG8gcmVkZWZpbmUgYXR0cmlidXRlcyBvZiBhCisgICAgICAg
IG5vbi1pbmRleGVkIHByb3BlcnR5LiBUaGlzIGlzIGxlc3MgZWZmaWNpZW50IGFuZCBjb3JydXB0
cyBwcm9wZXJ0eSBvcmRlci4KKworICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAxLiBSZW1v
dmVzIHByb3BlcnR5IGRlbGV0aW9ucyBhbmQgdXNlcyBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5n
ZVRyYW5zaXRpb24oKQorICAgICAgICAgICBmb3IgcmVkZWZpbmluZyBhdHRyaWJ1dGVzLgorICAg
ICAgICAyLiBSZXdyaXRlcyB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKCkgdG8g
Y2xvc2VyIG1hdGNoIHRoZSBzcGVjIFsxXS4gIAorICAgICAgICAzLiBSZW1vdmVzIGdldERpcmVj
dCgpIGluIGZhdm9yIG9mIHVzaW5nIGN1cnJlbnQgZGVzY3JpcHRvciB0byBvYnRhaW4gZ2V0dGVy
cworICAgICAgICAgICBhbmQgc2V0dGVycyBpbiB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNj
cmlwdG9yKCkuCisgICAgICAgIDQuIFJlbW92ZXMgRGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgYXMg
aXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICBUaGlzIGNoYW5nZSBhbGlnbnMgb2Jz
ZXJ2YWJsZSBwcm9wZXJ0eSBvcmRlciB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisKKyAgICAg
ICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9w
ZXJ0eWRlc2NyaXB0b3IKKworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFkZEZ1
bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBs
eVByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25O
b25JbmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVz
Y3JpcHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRl
clNldHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dl
dHRlclNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9W
TS5oOgorICAgICAgICAoSlNDOjpWTTo6ZGVsZXRlUHJvcGVydHlNb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZTo6fkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlKTogRGVsZXRlZC4KKwogMjAyMC0wNS0wMSAg
U2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIGEgdGhyZWFk
IGxvY2FsIGNhY2hlIGZvciB0aGUgV2FzbSBMTEludCBieXRlY29kZSBidWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3MDc0YzE0YTJmNjg5OWYxOTM4MmU3NDVjM2E4MzEzNjcwYTBmNjljLi4yN2MyYzM2NDk5
NzEyZTMwMGRjM2IyMDljODMwZDFkZmMwY2UzNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMjAtMDUtMDQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgor
CisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5z
ZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgIFJlbW92ZXMgdXNhZ2VzIG9mIERlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNp
bmNlIHByb3BlcnRpZXMgd2UgYXJlIHJlbW92aW5nIGFyZQorICAgICAgICBub24tY29uZmlndXJh
YmxlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvKjog
VXBkYXRlZC4KKwogMjAyMC0wNS0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ3Jlc3Npb24ocjI1OTAzNikgVW5hYmxlIHRvIHBvc3QgY29tbWVudHMgb24g
SmlyYQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0
YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNw
cAppbmRleCBjMjE4ODRmZjE5M2E4ZGUyZjZlMGI3NWJjZDU2MjE3NGZmN2EzYjI5Li43Zjg3YWVi
NzUwN2I3NTgyNTNkMjEyNzZmNDliMWUwZTAyNTdhN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0
YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhCiAgICAgICAgICAgICBzdG9wLS07CiAgICAgICAgIG1lc3Nh
Z2UgPSBhcHBlbmRlcihtZXNzYWdlLCBjb2RlQmxvY2stPnNvdXJjZSgpLnByb3ZpZGVyKCktPmdl
dFJhbmdlKHN0YXJ0LCBzdG9wKS50b1N0cmluZygpLCB0eXBlLCBFcnJvckluc3RhbmNlOjpGb3Vu
ZEFwcHJveGltYXRlU291cmNlKTsKICAgICB9Ci0gICAgZXhjZXB0aW9uLT5wdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKHZtLCBtZXNzYWdlKSk7CisgICAg
ZXhjZXB0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3Ry
aW5nKHZtLCBtZXNzYWdlKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSkpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAKaW5kZXggOWUzNDkxZjlkN2ExMzkzNTZkOTdmNDBiYTRjNWY4ZDNhMWFhNTNi
My4uNDlhMDA1ZTc5MWQ2YmRlZjFmZTA0OTU0NTU1MTYyYWE3MDJlMGU2YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYwOCw3ICs2MDgsNyBA
QCBib29sIEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcAogICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RPckJ1
aWx0aW5GdW5jdGlvbigpKSB7CiAgICAgICAgIHRoaXNPYmplY3QtPnJlaWZ5TGF6eVByb3BlcnR5
Rm9ySG9zdE9yQnVpbHRpbklmTmVlZGVkKHZtLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICB9IGVsc2Ug
aWYgKHZtLmRlbGV0ZVByb3BlcnR5TW9kZSgpICE9IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSkgeworICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZvciBub24taG9z
dCBmdW5jdGlvbnMsIGRvbid0IGxldCB0aGVzZSBwcm9wZXJ0aWVzIGJ5IGRlbGV0ZWQgLSBleGNl
cHQgYnkgRGVmaW5lT3duUHJvcGVydHkuCiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZSA9IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpOwogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4NDQ2
NzgzYmU1OTg0YmRmZTk4MDQyNjJlOTU5ZDE4ZGM3NDY1N2M5Li5iYWJmNjA3ZmViMGU4NmU4NzI4
N2VlMjQ2Yjg1NDI4ZjZkMjI0YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzUyLDggKzEzNTIsNiBAQCB2b2lkIEpTR2xv
YmFsT2JqZWN0OjphZGRHbG9iYWxWYXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCiAKIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmFkZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7Ci0gICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgIEpTQ2VsbDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwogICAgIGFk
ZEdsb2JhbFZhcihwcm9wZXJ0eU5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCmluZGV4IDFiZjIyYzc0NjljYjA3NDFhNzIzMWJkMjI4NDg2NzlkZjVk
ZWI3ZjkuLmUwMThkNWY1OWI4ZTk1ZmE0MWJkMTNkOTNjMGNlMDc1NzRmNzE2NTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTE5OTQsNyArMTk5NCw3
IEBAIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVyCiAgICAgICAgICAgICAvLyBJZiB0aGUgc3RhdGlj
IHRhYmxlIGNvbnRhaW5zIGEgbm9uLWNvbmZpZ3VyYWJsZSAoRG9udERlbGV0ZSkgcHJvcGVydHkg
dGhlbiB3ZSBjYW4gcmV0dXJuIGVhcmx5OwogICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBw
cm9wZXJ0eSBpbiB0aGUgc3RvcmFnZSBhcnJheSBpdCB0b28gbXVzdCBiZSBub24tY29uZmlndXJh
YmxlICh0aGUgbGFuZ3VhZ2UgZG9lcwogICAgICAgICAgICAgLy8gbm90IGFsbG93IHJlcGFjZW1l
bnQgb2YgYSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IHdpdGggYSBjb25maWd1cmFibGUgb25l
KS4KLSAgICAgICAgICAgIGlmIChlbnRyeS0+dmFsdWUtPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlICYmIHZtLmRlbGV0ZVByb3BlcnR5TW9kZSgpICE9IFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSkgeworICAgICAgICAgICAgaWYg
KGVudHJ5LT52YWx1ZS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIWlzVmFsaWRPZmZzZXQodGhpc09iamVjdC0+
c3RydWN0dXJlKHZtKS0+Z2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKSB8fCBhdHRy
aWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpOwogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KQEAgLTIwMDYsNyArMjAwNiw3IEBAIGJvb2wg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUHJvcGVyCiAKICAgICBib29sIHByb3BlcnR5SXNQcmVzZW50ID0gaXNWYWxp
ZE9mZnNldChzdHJ1Y3R1cmUtPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7CiAg
ICAgaWYgKHByb3BlcnR5SXNQcmVzZW50KSB7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVzICYgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgJiYgdm0uZGVsZXRlUHJvcGVydHlNb2RlKCkgIT0g
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKSB7CisgICAgICAgIGlm
IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpIHsKICAgICAgICAg
ICAgIHNsb3Quc2V0Tm9uY29uZmlndXJhYmxlKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KQEAgLTM1MjgsNDEgKzM1MjgsNiBAQCBib29sIEpTT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlO
YQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBwdXREZXNjcmlwdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdW5zaWdu
ZWQgYXR0cmlidXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBvbGREZXNjcmlwdG9yKQot
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoZGVzY3JpcHRvci5p
c0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsK
LSAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpICYmIG9sZERlc2Ny
aXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewotICAgICAgICAgICAgSlNPYmplY3QqIGdl
dHRlciA9IG9sZERlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpID8gb2xkRGVzY3JpcHRvci5nZXR0
ZXJPYmplY3QoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICBKU09iamVjdCogc2V0dGVyID0gb2xk
RGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNjcmlwdG9yLnNldHRlck9iamVjdCgp
IDogbnVsbHB0cjsKLSAgICAgICAgICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7Ci0gICAgICAg
ICAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBhY2Nlc3NvciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBKU1ZhbHVlIG5ld1Zh
bHVlID0ganNVbmRlZmluZWQoKTsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSkKLSAg
ICAgICAgICAgIG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpOwotICAgICAgICBlbHNlIGlm
IChvbGREZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAgICBuZXdWYWx1ZSA9IG9sZERlc2Ny
aXB0b3IudmFsdWUoKTsKLSAgICAgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFt
ZSwgbmV3VmFsdWUsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsK
LSAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCi0g
ICAgICAgICAgICB0YXJnZXQtPnN0cnVjdHVyZSh2bSktPnNldENvbnRhaW5zUmVhZE9ubHlQcm9w
ZXJ0aWVzKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBhdHRyaWJ1dGVzICY9
IH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7Ci0KLSAgICBKU09iamVjdCogZ2V0dGVyID0g
ZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9yLmdldHRlck9i
amVjdCgpIDogb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBvbGREZXNj
cmlwdG9yLmdldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBKU09iamVjdCogc2V0dGVyID0g
ZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9yLnNldHRlck9i
amVjdCgpIDogb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBvbGREZXNj
cmlwdG9yLnNldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vz
c29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0
ZXIpOwotCi0gICAgdGFyZ2V0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RNYXlC
ZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRl
eCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKQEAgLTM1NzAsOCArMzUzNSw3IEBAIGJvb2wg
SlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUHJvcGVydHlOYW1lIHByCiAgICAgcmV0dXJuIHB1dERpcmVjdChnbG9iYWxPYmplY3QtPnZt
KCksIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCi0vLyA5LjEuNi4zIG9mIHRoZSBzcGVjCi0v
LyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wL2luZGV4Lmh0
bWwjc2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9wZXJ0eWRlc2NyaXB0b3IKKy8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgogYm9v
bCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGJv
b2wgaXNFeHRlbnNpYmxlLAogICAgIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgYm9vbCBpc0N1cnJlbnREZWZpbmVkLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJl
bnQsIGJvb2wgdGhyb3dFeGNlcHRpb24pCiB7CkBAIC0zNTg1LDEzMyArMzU0OSw4NiBAQCBib29s
IHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqCiAgICAgICAgIC8vIFN0ZXAgMi5hCiAgICAgICAgIGlmICghaXNF
eHRlbnNpYmxlKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0aHJvd0V4Y2VwdGlvbiwgTm9uRXh0ZW5zaWJsZU9iamVjdFByb3BlcnR5RGVmaW5lRXJy
b3IpOwotICAgICAgICBpZiAoIW9iamVjdCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICAvLyBTdGVwIDIuYy9kCi0gICAgICAgIFByb3BlcnR5RGVzY3JpcHRvciBvbGREZXNjcmlw
dG9yOwotICAgICAgICBvbGREZXNjcmlwdG9yLnNldFZhbHVlKGpzVW5kZWZpbmVkKCkpOwotICAg
ICAgICAvLyBGSVhNRTogc3BlYyBzYXlzIHRvIGFsd2F5cyByZXR1cm4gdHJ1ZSBoZXJlLgotICAg
ICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSwgb2xkRGVzY3JpcHRvcik7
CisKKyAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNB
Y2Nlc3NvckRlc2NyaXB0b3IoKSkKKyAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdEFj
Y2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnNsb3dHZXR0ZXJT
ZXR0ZXIoZ2xvYmFsT2JqZWN0KSwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
QVNTRVJUKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0b3IuaXNE
YXRhRGVzY3JpcHRvcigpKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGVzY3Jp
cHRvci52YWx1ZSgpID8gZGVzY3JpcHRvci52YWx1ZSgpIDoganNVbmRlZmluZWQoKTsKKyAgICAg
ICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgZGVz
Y3JpcHRvci5hdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIC8vIFN0ZXAgMy4KICAgICBpZiAoZGVzY3JpcHRv
ci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIC8vIFN0ZXAgNC4KKwogICAg
IGJvb2wgaXNFcXVhbCA9IGN1cnJlbnQuZXF1YWxUbyhnbG9iYWxPYmplY3QsIGRlc2NyaXB0b3Ip
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICBpZiAoaXNFcXVh
bCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBTdGVwIDUuCi0gICAgLy8gRmlsdGVy
IG91dCBpbnZhbGlkIGNoYW5nZXMKKyAgICAvLyBTdGVwIDQuCiAgICAgaWYgKCFjdXJyZW50LmNv
bmZpZ3VyYWJsZSgpKSB7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKQog
ICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4
Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNvbmZpZ3VyYWJpbGl0eUVycm9y
KTsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlw
dG9yLmVudW1lcmFibGUoKSAhPSBjdXJyZW50LmVudW1lcmFibGUoKSkKICAgICAgICAgICAgIHJl
dHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29u
ZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VFbnVtZXJhYmlsaXR5RXJyb3IpOwogICAgIH0KLSAgICAK
LSAgICAvLyBTdGVwIDYuCi0gICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMgc2ltcGx5IGNo
YW5naW5nIHRoZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CisKICAgICBpZiAo
ZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYgKCFjdXJyZW50
LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiBvYmplY3QpIHsKLSAgICAgICAgICAgIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7
Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAg
ICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChj
dXJyZW50KSwgY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIAotICAgIC8vIFN0ZXAgNy4KLSAgICAvLyBDaGFuZ2luZyBiZXR3ZWVuIGEgbm9ybWFs
IHByb3BlcnR5IG9yIGFuIGFjY2Vzc29yIHByb3BlcnR5Ci0gICAgaWYgKGRlc2NyaXB0b3IuaXNE
YXRhRGVzY3JpcHRvcigpICE9IGN1cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAg
IC8vIFN0ZXAgNS4KKyAgICAgICAgLy8gQ2hhbmdpbmcgW1tFbnVtZXJhYmxlXV0gYW5kIFtbQ29u
ZmlndXJhYmxlXV0gYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorICAgIH0gZWxz
ZSBpZiAoY3VycmVudC5pc0RhdGFEZXNjcmlwdG9yKCkgIT0gZGVzY3JpcHRvci5pc0RhdGFEZXNj
cmlwdG9yKCkpIHsKKyAgICAgICAgLy8gU3RlcCA2LgorICAgICAgICAvLyBDaGFuZ2luZyBiZXR3
ZWVuIGEgZGF0YSBwcm9wZXJ0eSBhbmQgYWNjZXNzb3IgcHJvcGVydHkKICAgICAgICAgaWYgKCFj
dXJyZW50LmNvbmZpZ3VyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNo
YW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKKyAgICB9IGVsc2UgaWYgKGN1cnJlbnQuaXNEYXRh
RGVzY3JpcHRvcigpICYmIGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAg
IC8vIFN0ZXAgNy4KKyAgICAgICAgLy8gQ2hhbmdpbmcgdGhlIHZhbHVlIGFuZCBhdHRyaWJ1dGVz
IG9mIGFuIGV4aXN0aW5nIGRhdGEgcHJvcGVydHkKKyAgICAgICAgaWYgKCFjdXJyZW50LmNvbmZp
Z3VyYWJsZSgpICYmICFjdXJyZW50LndyaXRhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmIChkZXNj
cmlwdG9yLndyaXRhYmxlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNo
YW5nZVdyaXRhYmlsaXR5RXJyb3IpOworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUo
KSAmJiAhc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgY3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9y
LnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVydHlDaGFuZ2VFcnJvcik7CiAK
LSAgICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAg
ICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAg
IHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJl
bnQpLCBjdXJyZW50KTsKLSAgICB9Ci0KLSAgICAvLyBTdGVwIDguCi0gICAgLy8gQ2hhbmdpbmcg
dGhlIHZhbHVlIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5Ci0gICAgaWYg
KGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC5j
b25maWd1cmFibGUoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyZW50LndyaXRhYmxlKCkgJiYg
ZGVzY3JpcHRvci53cml0YWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVy
dHlDaGFuZ2VXcml0YWJpbGl0eUVycm9yKTsKLSAgICAgICAgICAgIGlmICghY3VycmVudC53cml0
YWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSkgewotICAg
ICAgICAgICAgICAgICAgICBib29sIGlzU2FtZSA9IHNhbWVWYWx1ZShnbG9iYWxPYmplY3QsIGN1
cnJlbnQudmFsdWUoKSwgZGVzY3JpcHRvci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICBp
ZiAoIWlzU2FtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVydHlDaGFuZ2VF
cnJvcik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAg
ICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZGVzY3JpcHRv
ci52YWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICghb2JqZWN0
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVy
dHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3Io
Z2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRv
ci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCksIGN1cnJlbnQpOwotICAgIH0K
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBTdGVwIDguCisgICAgICAgIC8vIENoYW5naW5nIHRo
ZSBhY2Nlc3NvciBmdW5jdGlvbnMgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgYWNjZXNz
b3IgcHJvcGVydHkKKyAgICAgICAgQVNTRVJUKGN1cnJlbnQuaXNBY2Nlc3NvckRlc2NyaXB0b3Io
KSAmJiBkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpOworICAgICAgICBpZiAoIWN1
cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLnNldHRl
clByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLnNldHRlcigpICE9IGN1cnJlbnQuc2V0dGVyKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJv
d0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBzZXR0ZXIgb2YgYW4gdW5jb25m
aWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRl
clByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmdldHRlcigpICE9IGN1cnJlbnQuZ2V0dGVyKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJv
d0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBnZXR0ZXIgb2YgYW4gdW5jb25m
aWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0
ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBV
bmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQWNjZXNzTWVjaGFuaXNtRXJyb3IpOwogCi0gICAg
Ly8gU3RlcCA5LgotICAgIC8vIENoYW5naW5nIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgb2YgYW4g
ZXhpc3RpbmcgYWNjZXNzb3IgcHJvcGVydHkKLSAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0FjY2Vz
c29yRGVzY3JpcHRvcigpKTsKLSAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKLSAg
ICAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpICYmICEoY3VycmVudC5zZXR0ZXJQ
cmVzZW50KCkgJiYgSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LnNl
dHRlcigpLCBkZXNjcmlwdG9yLnNldHRlcigpKSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBj
aGFuZ2UgdGhlIHNldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOwotICAg
ICAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkgJiYgIShjdXJyZW50LmdldHRlclBy
ZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxPYmplY3QsIGN1cnJlbnQuZ2V0
dGVyKCksIGRlc2NyaXB0b3IuZ2V0dGVyKCkpKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNo
YW5nZSB0aGUgZ2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7Ci0gICAg
ICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvcikKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VBY2Nlc3NNZWNo
YW5pc21FcnJvcik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0K
IAotICAgIC8vIFN0ZXAgMTAvMTEuCiAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIEpTVmFsdWUgYWNjZXNzb3IgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgcHJvcGVy
dHlOYW1lKTsKLSAgICBpZiAoIWFjY2Vzc29yKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
SlNPYmplY3QqIGdldHRlciA9IG51bGxwdHI7Ci0gICAgSlNPYmplY3QqIHNldHRlciA9IG51bGxw
dHI7Ci0gICAgYm9vbCBnZXR0ZXJTZXR0ZXJDaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICBpZiAoYWNj
ZXNzb3IuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSkgewotICAgICAgICBhdXRvKiBjdXN0b21HZXR0
ZXJTZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oYWNjZXNzb3IpOwotICAgICAg
ICBpZiAoY3VzdG9tR2V0dGVyU2V0dGVyLT5zZXR0ZXIoKSkKLSAgICAgICAgICAgIHNldHRlciA9
IGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVy
RnVuY3Rpb246OlR5cGU6OlNldHRlcik7Ci0gICAgICAgIGlmIChjdXN0b21HZXR0ZXJTZXR0ZXIt
PmdldHRlcigpKQotICAgICAgICAgICAgZ2V0dGVyID0gZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdl
dHRlclNldHRlciwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6VHlwZTo6R2V0dGVyKTsK
KworICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlk
aW5nQ3VycmVudChjdXJyZW50KTsKKyAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3Jp
cHRvcigpIHx8IChjdXJyZW50LmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgIWRlc2NyaXB0b3Iu
aXNEYXRhRGVzY3JpcHRvcigpKSkgeworICAgICAgICBKU09iamVjdCogZ2V0dGVyID0gZGVzY3Jp
cHRvci5nZXR0ZXJQcmVzZW50KCkgPyBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogKGN1cnJl
bnQuZ2V0dGVyUHJlc2VudCgpID8gY3VycmVudC5nZXR0ZXJPYmplY3QoKSA6IG51bGxwdHIpOwor
ICAgICAgICBKU09iamVjdCogc2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBk
ZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDogKGN1cnJlbnQuc2V0dGVyUHJlc2VudCgpID8gY3Vy
cmVudC5zZXR0ZXJPYmplY3QoKSA6IG51bGxwdHIpOworICAgICAgICBHZXR0ZXJTZXR0ZXIqIGdl
dHRlclNldHRlciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRl
ciwgc2V0dGVyKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzICYgflByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGFjY2Vzc29y
LmlzR2V0dGVyU2V0dGVyKCkpOwotICAgICAgICBhdXRvKiBnZXR0ZXJTZXR0ZXIgPSBqc0Nhc3Q8
R2V0dGVyU2V0dGVyKj4oYWNjZXNzb3IpOwotICAgICAgICBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXIt
PmdldHRlcigpOwotICAgICAgICBzZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPnNldHRlcigpOwotICAg
IH0KLSAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkpIHsKLSAgICAgICAgc2V0dGVy
ID0gZGVzY3JpcHRvci5zZXR0ZXJPYmplY3QoKTsKLSAgICAgICAgZ2V0dGVyU2V0dGVyQ2hhbmdl
ZCA9IHRydWU7Ci0gICAgfQotICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSkgewot
ICAgICAgICBnZXR0ZXIgPSBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgpOwotICAgICAgICBnZXR0
ZXJTZXR0ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNHZW5l
cmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKTsKKyAgICAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUoKSA/IGRlc2NyaXB0b3IudmFsdWUo
KSA6IChjdXJyZW50LnZhbHVlKCkgPyBjdXJyZW50LnZhbHVlKCkgOiBqc1VuZGVmaW5lZCgpKTsK
KyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHJp
YnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKICAgICB9CiAKLSAgICBpZiAo
Y3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgIWdldHRlclNldHRlckNoYW5n
ZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0
ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRl
cik7Ci0KLSAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAg
ICB1bnNpZ25lZCBhdHRycyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50
KGN1cnJlbnQpOwotICAgIG9iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwgYXR0cnMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNj
ZXNzb3IpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zNzIwLDExICszNjM3LDYgQEAgYm9v
bCBKU09iamVjdDo6ZGVmaW5lT3duTm9uSW5kZXhQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQcm9wZXJ0eU4KICAgICBWTSYgdm0gID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgLy8g
VHJhY2sgb24gdGhlIGdsb2JhbGRhdGEgdGhhdCB3ZSdyZSBpbiBkZWZpbmUgcHJvcGVydHkuCi0g
ICAgLy8gQ3VycmVudGx5IERlZmluZU93blByb3BlcnR5IHVzZXMgZGVsZXRlIHRvIHJlbW92ZSBw
cm9wZXJ0aWVzIHdoZW4gdGhleSBhcmUgYmVpbmcgcmVwbGFjZWQKLSAgICAvLyAocGFydGljdWxh
cmx5IHdoZW4gY2hhbmdpbmcgYXR0cmlidXRlcyksIGhvd2V2ZXIgZGVsZXRlIHdvbid0IGFsbG93
IG5vbi1jb25maWd1cmFibGUgKGkuZS4KLSAgICAvLyBEb250RGVsZXRlKSBwcm9wZXJ0aWVzIHRv
IGJlIGRlbGV0ZWQuIEZvciBub3csIHdlIGNhbiB1c2UgdGhpcyBmbGFnIHRvIG1ha2UgdGhpcyB3
b3JrLgotICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICBQcm9wZXJ0eURlc2NyaXB0
b3IgY3VycmVudDsKICAgICBib29sIGlzQ3VycmVudERlZmluZWQgPSBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1cnJlbnQpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRleCAyMGYxZDg1NjAzOTI1YTY4ZjU0
YTYzODhmNWY2Y2EwMTRmY2I4YTk4Li43YWIwNDE0NmFkYzZjNjY1ZTdhN2Y3NWMxNDJkOWM3ZWM5
Y2QzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElu
bGluZXMuaApAQCAtMzE2LDEwICszMTYsOSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6
OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQogICAg
ICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZzZXQsIHZhbHVlKTsKICAgICAgICAgICAgIHN0cnVj
dHVyZS0+ZGlkUmVwbGFjZVByb3BlcnR5KG9mZnNldCk7CiAKLSAgICAgICAgICAgIGlmICgoYXR0
cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1
dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSB8fCAoYXR0cmlidXRlcyAmIFByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpICE9IChjdXJyZW50QXR0cmlidXRl
cyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpKSB7Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSkpOworICAgICAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURlZmluZU93blByb3BlcnR5ICYm
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykgIT0gYXR0cmlidXRlc0ZvclN0cnVj
dHVyZShjdXJyZW50QXR0cmlidXRlcykpCiAgICAgICAgICAgICAgICAgc2V0U3RydWN0dXJlKHZt
LCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSwgcHJv
cGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHkodGhpcywgb2Zm
c2V0KTsKIAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNzAsMTAgKzM2OSw5IEBAIEFM
V0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZtLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgICAgIHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3Bl
cnR5KG9mZnNldCk7CiAgICAgICAgIHB1dERpcmVjdCh2bSwgb2Zmc2V0LCB2YWx1ZSk7CiAKLSAg
ICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSAhPSAo
Y3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpIHx8IChhdHRy
aWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkgIT0gKGN1
cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1
ZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURlZmluZU93blByb3Bl
cnR5ICYmIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykgIT0gYXR0cmlidXRlc0Zv
clN0cnVjdHVyZShjdXJyZW50QXR0cmlidXRlcykpCiAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUo
dm0sIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogCiAg
ICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKaW5kZXggNDQwNmU4MGJjYzAwOTBhZTY5OGE3OWNm
YzQyN2YwODdhNzM2ZGY3MS4uY2FmZGQ2ODMzMDQwMDUxMzgwMTIwNjIyMjJlMzQ3YjZhNmM2ZGYx
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNj
cmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURl
c2NyaXB0b3IuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpz
ZXRVbmRlZmluZWQoKQogICAgIG1fYXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtOwogfQogCi1HZXR0ZXJTZXR0ZXIqIFByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dl
dHRlclNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorR2V0dGVyU2V0dGVyKiBQ
cm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
SlNWYWx1ZSBnZXR0ZXIgPSBtX2dldHRlciAmJiAhbV9nZXR0ZXIuaXNVbmRlZmluZWQoKSA/IGpz
Q2FzdDxKU09iamVjdCo+KG1fZ2V0dGVyKSA6IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCmluZGV4IDRkZmYx
MGY2MzM2NGViOWUxYTA1MDhhODI0NzQ5YzYyMDZiNzA2YzYuLmE1MjFhNDIyODZlZDFmZTZjMDc3
OGFjNjRkYWRjNjllMjFmMDE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgY29uc3Q7CiAg
ICAgdW5zaWduZWQgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQog
ICAgIEpTVmFsdWUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgR2V0dGVy
U2V0dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0Kik7IC8vIEJlIGF3YXJlIHRo
YXQgdGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBhIEdldHRlclNldHRlciBvYmplY3QuIEl0J3Mg
bXVjaCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFuZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYg
cG9zc2libGUuCisgICAgR2V0dGVyU2V0dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KikgY29uc3Q7IC8vIEJlIGF3YXJlIHRoYXQgdGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBh
IEdldHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVjaCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFu
ZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9zc2libGUuCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgSlNWYWx1ZSBnZXR0ZXIoKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVl
IHNldHRlcigpIGNvbnN0OwogICAgIEpTT2JqZWN0KiBnZXR0ZXJPYmplY3QoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDljMmNlN2Fm
YWU2ZTM4ZTdhNjA4MDI2ZjUxNzcxMTBlM2M4NTU2MmUuLjhhYjY5MTI2NzMwZjJjMzliZTMzMGJj
OWUyMmZmOGFmN2JmNjE4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmNwcApAQCAtNjY5LDYgKzY2OSwxMiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0
cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcgog
ICAgIEFTU0VSVChlbnRyeSk7CiAgICAgZW50cnktPmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwog
CisgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAg
ICAgIHN0cnVjdHVyZS0+c2V0SXNRdWlja1Byb3BlcnR5QWNjZXNzQWxsb3dlZEZvckVudW1lcmF0
aW9uKGZhbHNlKTsKKworICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSkgfHwgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpKQor
ICAgICAgICBzdHJ1Y3R1cmUtPnNldEhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVz
RXhjbHVkaW5nUHJvdG8odHJ1ZSk7CisKICAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zmc2V0Q29uc2lz
dGVuY3koKTsKICAgICByZXR1cm4gc3RydWN0dXJlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggNTI5MjkzM2MxM2RhZmFjN2U2MWFiOGM1Nzg0YWVjNTAxNmIzMGIyNy4uYzA1
YmRhNjYyOTAwNDFjMWU3ZmQxODU2ZmY0NGNjZDNkMzNjODQ3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC03NTQsMzggKzc1NCw2IEBAIHB1YmxpYzoKIAogICAgIFdlYWtHQ01h
cDxTeW1ib2xJbXBsKiwgU3ltYm9sLCBQdHJIYXNoPFN5bWJvbEltcGwqPj4gc3ltYm9sSW1wbFRv
U3ltYm9sTWFwOwogCi0gICAgZW51bSBjbGFzcyBEZWxldGVQcm9wZXJ0eU1vZGUgewotICAgICAg
ICAvLyBEZWZhdWx0IGJlaGF2aW91ciBvZiBkZWxldGVQcm9wZXJ0eSwgbWF0Y2hpbmcgdGhlIHNw
ZWMuCi0gICAgICAgIERlZmF1bHQsCi0gICAgICAgIC8vIFRoaXMgc2V0dGluZyBjYXVzZXMgZGVs
ZXRlUHJvcGVydHkgdG8gZm9yY2UgZGVsZXRpb24gb2YgYWxsCi0gICAgICAgIC8vIHByb3BlcnRp
ZXMgaW5jbHVkaW5nIHRob3NlIHRoYXQgYXJlIG5vbi1jb25maWd1cmFibGUgKERvbnREZWxldGUp
LgotICAgICAgICBJZ25vcmVDb25maWd1cmFibGUKLSAgICB9OwotCi0gICAgRGVsZXRlUHJvcGVy
dHlNb2RlIGRlbGV0ZVByb3BlcnR5TW9kZSgpCi0gICAgewotICAgICAgICByZXR1cm4gbV9kZWxl
dGVQcm9wZXJ0eU1vZGU7Ci0gICAgfQotCi0gICAgY2xhc3MgRGVsZXRlUHJvcGVydHlNb2RlU2Nv
cGUgewotICAgIHB1YmxpYzoKLSAgICAgICAgRGVsZXRlUHJvcGVydHlNb2RlU2NvcGUoVk0mIHZt
LCBEZWxldGVQcm9wZXJ0eU1vZGUgbW9kZSkKLSAgICAgICAgICAgIDogbV92bSh2bSkKLSAgICAg
ICAgICAgICwgbV9wcmV2aW91c01vZGUodm0ubV9kZWxldGVQcm9wZXJ0eU1vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIG1fdm0ubV9kZWxldGVQcm9wZXJ0eU1vZGUgPSBtb2RlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgfkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgbV92bS5tX2RlbGV0ZVByb3BlcnR5TW9kZSA9IG1fcHJldmlvdXNNb2RlOwotICAg
ICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBWTSYgbV92bTsKLSAgICAgICAgRGVsZXRl
UHJvcGVydHlNb2RlIG1fcHJldmlvdXNNb2RlOwotICAgIH07Ci0KICAgICBzdGF0aWMgSlNfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VBc3NlbWJsZXIoKTsKICAgICBzdGF0aWMgYm9vbCBpc0lu
TWluaU1vZGUoKQogICAgIHsKQEAgLTExOTAsNyArMTE1OCw2IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogICAgIGJvb2wgbV9mYWlsTmV4dE5ld0NvZGVCbG9jayB7IGZhbHNlIH07Ci0gICAgRGVsZXRl
UHJvcGVydHlNb2RlIG1fZGVsZXRlUHJvcGVydHlNb2RlIHsgRGVsZXRlUHJvcGVydHlNb2RlOjpE
ZWZhdWx0IH07CiAgICAgYm9vbCBtX2dsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRCdWlsZFBDVG9Db2RlT3JpZ2luTWFwcGluZyB7
IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvZGVDYWNoZT4gbV9jb2RlQ2FjaGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CmluZGV4IDIxNjVjMTM4NmJjZDdhODc3ZWY4MTJlZjFlMmE1ZWMwZGQ4MDRiM2MuLmY1N2I1M2Iy
ZTZmZjFkMGNjNDAxOWZjNjFlMTA5ZGQ5ZTBkOGVjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzIyLDkgKzQzMjIs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30pIHtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGhhc0Rpc2FibGVkUnVu
dGltZVByb3BlcnRpZXMgPSB0cnVlO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5h
bWVcIikpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
OjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7XG4iKTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGds
b2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2Vu
ZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KQEAgLTc2MzYsOSArNzYz
NCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgICAgICBteSAk
bmFtZSA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+bmFtZTsKICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7XG4iKTsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xv
dDtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgSlNDZWxsOjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRC
eVNldHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCmluZGV4IDYyYjAzMjk1ODA4NjIyYmFlMjkyOTRkYWI1
MjIyMmNmNzZjY2U5ZTkuLmU0M2E5NGEzYzBiY2ZiNGNhYTYxOWUxY2YwYmU1MjUwY2RlYmM1YTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKQEAgLTE0NSwxOCArMTQ1LDE0
IEBAIHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtKQogICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGlu
Z3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQ
cm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRC
eVNldHRpbmdPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIikp
OwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50
Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKICAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxl
ZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
OwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9w
ZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCAwNWM4N2E1Y2YxZDVhOTZiZDc1ZTAxZjMwYWRj
NTc0N2MyNzNkYTQ4Li5mNDJlYTQ2ZjNhNzQzMjk2ZDdlNjliYjU2OGY1MTQ2NjdjYTRjODAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0xMTcsOSArMTE3
LDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxP
YmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpIHsK
ICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJhU2VjcmV0QXR0cmlidXRlIiksIHN0cmxlbigiYVNlY3JldEF0
dHJpYnV0ZSIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZt
LCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBE
ZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0Nl
bGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiBzdHJ1Y3R1cmUo
KS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcAppbmRleCA5MjU4MmMxNDRjMmJkNjE3ZDAyMzI4ZTRiZDJhYjdiMDNlY2UxYTBi
Li44OGJmMThhNWM5Y2E4NDRiMTBhMGQ2M2U0MjdiNzhjMjUxYWQyNjRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
CkBAIC0xNjYsNTMgKzE2NiwzOSBAQCB2b2lkIEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkg
ewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNh
bGN1bGF0ZVNlY3JldFJlc3VsdCIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
OwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQo
KSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRT
ZWNyZXRCb29sZWFuIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAg
ICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAg
IEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzU2VjdXJlQ29udGV4dCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVu
dGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0s
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2Vs
bDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAg
ICAgfQogI2VuZGlmCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGlt
ZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW50cmll
cyIpLCBzdHJsZW4oImVudHJpZXMiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
a2V5cyIpLCBzdHJsZW4oImtleXMiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
dmFsdWVzIiksIHN0cmxlbigidmFsdWVzIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCks
IHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNh
YmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImZvckVhY2giKSwgc3RybGVuKCJmb3JFYWNoIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNv
bmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2Jq
ZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQ
cm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgZmxhdHRl
bkRpY3Rpb25hcnlPYmplY3Qodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA5MTMzMmRjMjE0MDY0YjRmMDc5
MzU5MGFkMjUwNjZhNWQ4ZWRiMjc4Li45ZGUxMmJlYzUzN2ZlY2MzN2ZjZjJmMDFkMWYyYjYxNzhj
MjhmNDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTk5NCwxNyArMTk5NCwxMyBAQCB0ZW1wbGF0ZTw+IHZv
aWQgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwgSlNE
T01HbG9iYWxPYgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSB7CiAg
ICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3Rh
dGljIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIpKTsKLSAgICAg
ICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qg
c2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjZW5kaWYKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkgewogICAgICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIpLCBzdHJsZW4oImVu
YWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9w
ZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29u
ZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpT
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiB9CkBAIC0yMzU5LDEwNSArMjM1NSw3
NyBAQCB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAg
IGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVy
ZUVuYWJsZWQoKSkgewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1
ZTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRp
b24iKSwgc3RybGVuKCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIikpOwotICAgICAgICBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6
Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90Owot
ICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCEo
d29ybGRGb3JET01PYmplY3QoKnRoaXMpLnNvbWVXb3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7CiAgICAgICAg
IGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJs
ZWQiKSwgc3RybGVuKCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5h
YmxlZCIpKTsKLSAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwotICAgICAgICBEZWxl
dGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRo
aXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6
OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwogICAg
IH0KICAgICBpZiAoIXdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zb21lV29ybGQoKSkgewogICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3b3JsZFNwZWNp
ZmljTWV0aG9kIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAgICAg
IERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSk7
CiAgICAgfQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CiAgICAg
ICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2FsY3VsYXRl
U2VjcmV0UmVzdWx0IikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAg
ICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAg
IEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CiAg
ICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oImdldFNlY3JldEJv
b2xlYW4iKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVs
ZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxs
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIShqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNT
ZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJv
cGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ0ZXN0RmVhdHVy
ZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4i
KSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxl
dGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAj
ZW5kaWYKICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgp
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpIHsKICAgICAgICAgaGFz
RGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iKSwgc3RybGVuKCJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iKSk7Ci0gICAgICAgIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdu
b3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAg
ICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNXb3JrZXJHbG9iYWxTY29wZSgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3Bl
cnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uIiksIHN0cmxlbigiY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckZ1bmN0aW9uIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUg
c2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0g
ICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAg
ICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5
TmFtZSk7CiAgICAgfQogICAgIGlmICghKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKXx8
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5hbGxvd3NNZWRpYURldmljZXMoKSkpIHsKICAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJtZWRpYURldmljZXMiKSwgc3RybGVuKCJtZWRpYURldmljZXMiKSk7Ci0gICAgICAgIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6
SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0g
ICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCEoanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzU2VjdXJlQ29udGV4dCgpfHwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmhhc1NlcnZpY2VXb3JrZXJTY2hl
bWUoKSkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAg
ICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJzZXJ2aWNlV29ya2VycyIpLCBzdHJsZW4oInNl
cnZpY2VXb3JrZXJzIikpOwotICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Ci0gICAg
ICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAg
IEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSAmJiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlMUVuYWJs
ZWQoKSkpIHsKICAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CiAg
ICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiks
IHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKLSAgICAgICAgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25v
cmVDb25maWd1cmFibGUpOwotICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAg
ICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2Jh
bE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlmICghUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkg
ewogICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKICAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlIiksIHN0cmxlbigicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKSk7
Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVy
dHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAg
aWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVu
dGltZVByb3BlcnRpZXMgPSB0cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIpLCBzdHJsZW4oImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKSB7CiAgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0
cnVlOwogICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckF0dHJpYnV0ZSIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJB
dHRyaWJ1dGUiKSk7Ci0gICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKLSAgICAgICAg
RGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgSlND
ZWxsOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICB9CiAgICAgLy8gQWRkaW5nIGJhY2sgYXR0cmlidXRlLCBidXQgYXMgcmVhZG9ubHksIGFm
dGVyIHJlbW92aW5nIHRoZSByZWFkLXdyaXRlIHZhcmlhbnQgYWJvdmUuIAogICAgIGlmICghUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQo
KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1
cGxpY2F0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCAxMTEwODQ3ZDczYTA1NmZhNWE4
MDk5MmI4NjI1Yzk5YjhiNjM4ZWJlLi4zODFhN2U2ODVkYjhmZDYwMmJiNGQ2ZDQzMjk2MzZlNDFk
N2ZlNmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNh
dGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxp
dGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0xNCw3ICsxNCw3IEBA
IFBBU1Mgby5mb28gaXMgMAogUEFTUyB4IGlzIDQKIFBBU1Mgby5mb28gaXMgMwogUEFTUyBvLmJh
ciBpcyB1bmRlZmluZWQKLUZBSUwgT2JqZWN0LmtleXMobykuam9pbigpIHNob3VsZCBiZSBmb28s
dGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3QuIFdhcyB0ZXN0MSx0ZXN0Mix0ZXN0Myxmb28sYmFy
LG5lc3QuCitQQVNTIE9iamVjdC5rZXlzKG8pLmpvaW4oKSBpcyAnZm9vLHRlc3QxLGJhcix0ZXN0
Mix0ZXN0MyxuZXN0JwogCiBCYXNpYwogUEFTUyBvID0ge2ZvbzoxfTsgZGVzY3JpcHRpb25TdHJp
bmcobywgJ2ZvbycpOyBpcyAndmFsdWU6MSBrZXlzOjEgW0VDV11bRXh0ZW5zaWJsZV0nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGlj
YXRlLXByb3BlcnRpZXMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxp
dGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMKaW5kZXggMTJkNDAzMmEyMDUwOGVhZTBhMDc4
ZWZlMjk1YWZkZGE5ZTZjMjViYy4uZTE3YTJjODA5YmRmZDA2ODIzOTQ4ZjY4MDE4N2QyMjMyZTlm
ZTA5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRl
cmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qcwpAQCAtNTQsNyArNTQs
NiBAQCBvID0gewogc2hvdWxkQmUoIngiLCAiNCIpOwogc2hvdWxkQmUoIm8uZm9vIiwgIjMiKTsK
IHNob3VsZEJlKCJvLmJhciIsICJ1bmRlZmluZWQiKTsKLS8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTQyOTMzPiBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2Ug
aXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCiBzaG91bGRCZSgiT2JqZWN0
LmtleXMobykuam9pbigpIiwgIidmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3QnIik7CiAK
IApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFrcmFDb3JlLnlhbWwgYi9KU1Rlc3RzL0NoYWtyYUNv
cmUueWFtbAppbmRleCBmODM4ZDFhYWI0NmIwZDRkNmQ1ZDRlYjllNGFiYmM3NWZiYjIzNGEwLi5j
YTgxNDI0N2VkOTliMTdjYmU5NDY0NGI4N2M0N2U1YmU1NDQzNWQ0IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYWtyYUNvcmUueWFtbAorKysgYi9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbApAQCAtMTQ3
Myw3ICsxNDczLDcgQEAKIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9yZWdleFNwYWNlLmpz
CiAgIGNtZDogcnVuQ2hha3JhIDpiYXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgInJlZ2V4U3BhY2Uu
YmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0
aEVTNS5qcwotICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJFbnVt
ZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUtanNjIiwgW10KKyAgY21kOiBydW5DaGFrcmEgOmJhc2Vs
aW5lLCAiTm9FeGNlcHRpb24iLCAiRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lIiwgW10KIC0g
cGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9JbnN1ZmZpY2llbnRBcmd1bWVudHMuanMKICAgY21k
OiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAiSW5zdWZmaWNpZW50QXJndW1l
bnRzLmJhc2VsaW5lIiwgW10KIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9yZWN1cnNpdmVz
ZXR0ZXIuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2VzNS9FbnVtZXJh
dGluZ1dpdGhFUzUuYmFzZWxpbmUtanNjIGIvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0Vu
dW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk0YzI4YTk0MTg0ZWUzYjZlYTRmMTNmOWMxMGM3YzQ1MTM4NGI5ZjIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9DaGFrcmFDb3JlL3Rl
c3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2MKKysrIC9kZXYvbnVsbApAQCAt
MSwzODIgKzAsMCBAQAotVGVzdCAxOiBOb24td3JpdGFibGUsIHNpbXBsZSB0eXBlIGhhbmRsZXIK
LVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8g
MQotZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1T
ZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxz
ZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwot
ZDogMgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0
aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1
Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcg
dmFsdWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9u
Li4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBk
IHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3du
UHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZh
bHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1l
cmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2
YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24K
LVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRv
IDEwCi1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgot
ZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5
TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1U
ZXN0IDI6IE5vbi13cml0YWJsZSwgc2ltcGxlIGRpY3Rpb25hcnkgdHlwZSBoYW5kbGVyCi1UZXN0
aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogZHZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWQ6
IDEKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMQotU2V0dGlu
ZyB2YWx1ZSB0byAyCi1kOiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLVRl
c3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDIK
LVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2
YWx1ZSB0byA0Ci1kOiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotVGVzdGlu
ZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gNQotZDogNQotVGVz
dGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiA1Ci1TZXR0aW5nIHZhbHVl
IHRvIDYKLWQ6IDYKLUNoYW5naW5nIHdyaXRhYmlsaXR5IGR1cmluZyBlbnVtZXJhdGlvbi4uLgot
VGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBm
YWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA3Ci1kOiA2Ci1UZXN0aW5nIGdldE93blByb3Bl
cnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQot
ZDogNgotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA2Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDYKLVNldHRpbmcgdmFsdWUg
dG8gOQotZDogOQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0
aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogOQotU2V0dGluZyB2YWx1ZSB0byAxMAot
ZDogMTAKLUZyZWV6aW5nIG9iamVjdAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDEw
Ci1TZXR0aW5nIHZhbHVlIHRvIDExCi1kOiAxMAotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVz
IGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGluZyB2YWx1ZSB0byAxMgotZDogMTAKLQotVGVzdCAz
OiBOb24td3JpdGFibGUsIGRpY3Rpb25hcnkgdHlwZSBoYW5kbGVyCi1UZXN0aW5nIGZvci1pbiBl
bnVtZXJhdGlvbgotZDogZHZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWQ6IDEKLVRlc3Rpbmcg
Z2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMQotU2V0dGluZyB2YWx1ZSB0byAy
Ci1kOiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLVRlc3RpbmcgZm9yLWlu
IGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDIKLVRlc3RpbmcgZ2V0
T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA0Ci1k
OiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotVGVzdGluZyBmb3ItaW4gZW51
bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gNQotZDogNQotVGVzdGluZyBnZXRPd25Q
cm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiA1Ci1TZXR0aW5nIHZhbHVlIHRvIDYKLWQ6IDYK
LUNoYW5naW5nIHdyaXRhYmlsaXR5IGR1cmluZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3It
aW4gZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgot
U2V0dGluZyB2YWx1ZSB0byA3Ci1kOiA2Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51
bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGlu
ZyB2YWx1ZSB0byA4Ci1kOiA2Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3
cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gOQotZDogOQot
VGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmls
aXR5IG9mIGQgdG8gdHJ1ZQotZDogOQotU2V0dGluZyB2YWx1ZSB0byAxMAotZDogMTAKLUZyZWV6
aW5nIG9iamVjdAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZh
bHVlIHRvIDExCi1kOiAxMAotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9u
Ci1kOiAxMAotU2V0dGluZyB2YWx1ZSB0byAxMgotZDogMTAKLQotVGVzdCA0OiBBY2Nlc3NvcnMK
LURlZmluaW5nIGFjY2Vzc29ycyBmb3IgYgotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBmCi1UZXN0
aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTogYVZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWE6
IDEKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAyCi1TRVRURVIgRk9SIGIKLWI6
IEdFVFRFUiBGT1IgYgotZDogZFZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDMKLWY6IEdF
VFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA0Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBG
T1IgZgotZzogZ1ZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDUKLWc6IDUKLVRlc3RpbmcgZ2V0T3du
UHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogMQotU2V0dGluZyB2YWx1ZSB0byA2Ci1hOiA2
Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNwotU0VUVEVSIEZPUiBiCi1iOiBH
RVRURVIgRk9SIGIKLWQ6IDMKLVNldHRpbmcgdmFsdWUgdG8gOAotZDogOAotZTogZVZhbHVlCi1T
ZXR0aW5nIHZhbHVlIHRvIDkKLWU6IDkKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0
byAxMAotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDUKLVNldHRpbmcgdmFsdWUg
dG8gMTEKLWc6IDExCi1EZWZpbmluZyBhY2Nlc3NvcnMgZm9yIGQKLVRlc3RpbmcgZm9yLWluIGVu
dW1lcmF0aW9uCi1hOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDEyCi1hOiAxMgotYjogR0VUVEVSIEZP
UiBiCi1TZXR0aW5nIHZhbHVlIHRvIDEzCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgot
ZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDE0Ci1TRVRURVIgRk9SIGYKLWY6IEdF
VFRFUiBGT1IgZgotZzogMTEKLVNldHRpbmcgdmFsdWUgdG8gMTUKLWc6IDE1Ci1kOiBHRVRURVIK
LVNldHRpbmcgdmFsdWUgdG8gMTYKLVNFVFRFUgotZDogR0VUVEVSCi1UZXN0aW5nIGdldE93blBy
b3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDEyCi1TZXR0aW5nIHZhbHVlIHRvIDE3Ci1hOiAx
NwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDE4Ci1TRVRURVIgRk9SIGIKLWI6
IEdFVFRFUiBGT1IgYgotZTogOQotU2V0dGluZyB2YWx1ZSB0byAxOQotZTogMTkKLWY6IEdFVFRF
UiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAyMAotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9S
IGYKLWc6IDE1Ci1TZXR0aW5nIHZhbHVlIHRvIDIxCi1nOiAyMQotZDogR0VUVEVSCi1TZXR0aW5n
IHZhbHVlIHRvIDIyCi1TRVRURVIKLWQ6IEdFVFRFUgotRGVmaW5pbmcgZGF0YSBwcm9wZXJ0eSBk
IHdpdGggdmFsdWUgMjMKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiAxNwotU2V0dGlu
ZyB2YWx1ZSB0byAyNAotYTogMjQKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAy
NQotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGlu
ZyB2YWx1ZSB0byAyNgotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDIxCi1TZXR0
aW5nIHZhbHVlIHRvIDI3Ci1nOiAyNwotZDogMjMKLVNldHRpbmcgdmFsdWUgdG8gMjgKLWQ6IDI4
Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDI0Ci1TZXR0aW5n
IHZhbHVlIHRvIDI5Ci1hOiAyOQotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDMw
Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogMTkKLVNldHRpbmcgdmFsdWUgdG8g
MzEKLWU6IDMxCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMzIKLVNFVFRFUiBG
T1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAyNwotU2V0dGluZyB2YWx1ZSB0byAzMwotZzogMzMK
LWQ6IDI4Ci1TZXR0aW5nIHZhbHVlIHRvIDM0Ci1kOiAzNAotRGVmaW5pbmcgYWNjZXNzb3IgcHJv
cGVydHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgot
YTogMjkKLVNldHRpbmcgdmFsdWUgdG8gMzUKLWE6IDM1Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRp
bmcgdmFsdWUgdG8gMzYKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIg
Rk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMzcKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBm
Ci1nOiAzMwotU2V0dGluZyB2YWx1ZSB0byAzOAotZzogMzgKLURlZmluaW5nIGFjY2Vzc29ycyBm
b3IgZAotZDogR0VUVEVSCi1TZXR0aW5nIHZhbHVlIHRvIDM5Ci1TRVRURVIKLWQ6IEdFVFRFUgot
VGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1hOiAzNQotU2V0dGluZyB2
YWx1ZSB0byA0MAotYTogNDAKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byA0MQot
U0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWU6IDMxCi1TZXR0aW5nIHZhbHVlIHRvIDQy
Ci1lOiA0MgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDQzCi1TRVRURVIgRk9S
IGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMzgKLVNldHRpbmcgdmFsdWUgdG8gNDQKLWc6IDQ0Ci1k
OiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gNDUKLVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmlu
ZyBkYXRhIHByb3BlcnR5IGR1cmluZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51
bWVyYXRpb24KLWE6IDQwCi1TZXR0aW5nIHZhbHVlIHRvIDQ3Ci1hOiA0NwotYjogR0VUVEVSIEZP
UiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQ5Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgot
ZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDUxCi1TRVRURVIgRk9SIGYKLWY6IEdF
VFRFUiBGT1IgZgotZzogNDQKLVNldHRpbmcgdmFsdWUgdG8gNTMKLWc6IDUzCi1EZWZpbmluZyBk
YXRhIHByb3BlcnR5IGQgd2l0aCB2YWx1ZSA1NAotZDogNTQKLVNldHRpbmcgdmFsdWUgdG8gNTUK
LWQ6IDU1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDQ3Ci1T
ZXR0aW5nIHZhbHVlIHRvIDU3Ci1hOiA1NwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVl
IHRvIDU5Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogNDIKLVNldHRpbmcgdmFs
dWUgdG8gNjEKLWU6IDYxCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNjMKLVNF
VFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiA1MwotU2V0dGluZyB2YWx1ZSB0byA2NQot
ZzogNjUKLWQ6IDU1Ci1TZXR0aW5nIHZhbHVlIHRvIDY3Ci1kOiA2NwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhZTk4MGFhYWE1NzYxZDM1
ZjQxZjRlNmYwOWQwZDY5OTc2ZjEyN2Y4Li44NTE1OTM3YjRjMjQ1MmRmZWJlMzY5OWFjMjY5MjA4
ZGJlNzEyNDNhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA1LTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNo
dmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hv
dWxkIG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MzMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgMTIgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIw
LTA1LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHN0cmVzcy9iaWctaW50LW5lZ2F0ZS1qaXQuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApp
bmRleCAyYzFhY2FhZjgwMDFhMzUyZTgyYTA3MDI2NTc1ZDE2MjUzMjU4ZDU2Li41Y2EzYjlmYzli
YjJmNjZkNTNjMmE0ODY2OGQ4MGZjMDU2NTZjMmUzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCkBAIC0xMDA5LDE3ICsxMDA5LDggQEAgdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZp
dmVyLW9iamVjdC1ub24tY29uZmlndXJhYmxlLXByb3AtY3JlYXRlLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsyMsK7LCDCqzLCuykgdG8gYmUgdHJ1
ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzIy
wrssIMKrMsK7KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2VudHJpZXMvb3Jk
ZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9ycy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5k
IFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEp
XSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAn
Ci10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy9vcmRlci1hZnRlci1k
ZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFti
LCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eVN5
bWJvbHMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBT
eW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5kIFtTeW1ib2wo
YSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJworICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzLiAnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBbYSwgbmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0
ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3Rl
bnQtdmFsdWUtZnVuY3Rpb24tYXJndW1lbnRzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqtudWxswrssIMKrW29iamVjdCBBcmd1bWVudHNdwrspIHRv
IGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3Bl
cnR5L2NvbnNpc3RlbnQtdmFsdWUtZnVuY3Rpb24tY2FsbGVyLmpzOgpAQCAtMTAyOCw4ICsxMDE5
LDggQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9j
b25zaXN0ZW50LXZhbHVlLXJlZ2V4cC1kb2xsYXIKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKreMK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKreMK7KSB0byBiZSB0
cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3Bl
cnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFth
LCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFu
ZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCisgIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xlbmd0aCwgYV0gdG8g
aGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlw
ZS90b1N0cmluZy9wcm94eS1mdW5jdGlvbi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
ZnVuY3Rpb24gcHJveHkgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBPYmplY3RdwrssIMKr
W29iamVjdCBGdW5jdGlvbl3CuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IGZ1bmN0aW9uIHByb3h5IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgT2JqZWN0
XcK7LCDCq1tvYmplY3QgRnVuY3Rpb25dwrspIHRvIGJlIHRydWUnCkBAIC0xMDM5LDkgKzEwMzAs
NiBAQCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvcHJvdG90eXBlL3RvU3RyaW5nL3N5bWJvbC10YWct
bm9uLXN0ci1idWlsdGluLmpzOgogdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvdHlwZS90b1N0
cmluZy9zeW1ib2wtdGFnLW5vbi1zdHItcHJveHktZnVuY3Rpb24uanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IGdlbmVyYXRvciBmdW5jdGlvbiBwcm94eSB3aXRob3V0IFN5bWJvbC50b1N0
cmluZ1RhZyBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IE9iamVjdF3Cuywgwqtbb2JqZWN0
IEZ1bmN0aW9uXcK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
Z2VuZXJhdG9yIGZ1bmN0aW9uIHByb3h5IHdpdGhvdXQgU3ltYm9sLnRvU3RyaW5nVGFnIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgT2JqZWN0XcK7LCDCq1tvYmplY3QgRnVuY3Rpb25dwrsp
IHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvdmFsdWVzL29yZGVyLWFmdGVyLWRl
ZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2Is
IGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUg
c2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvaW52b2tlLXJlc29s
dmUtZ2V0LWVycm9yLWNsb3NlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScK
QEAgLTExMTQsOSArMTEwMiw2IEBAIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2NvbnN0cnVjdC90cmFw
LWlzLW5vdC1jYWxsYWJsZS1yZWFsbS5qczoKIHRlc3QvYnVpbHQtaW5zL1Byb3h5L293bktleXMv
dHJhcC1pcy11bmRlZmluZWQtdGFyZ2V0LWlzLXByb3h5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbbGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgp
LCBsZW5ndGgsIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2xlbmd0aCwgZm9vLCAwLCBTeW1ib2woKV0g
YW5kIFtTeW1ib2woKSwgbGVuZ3RoLCBmb28sIDBdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMu
ICcKLXRlc3QvYnVpbHQtaW5zL1JlZmxlY3Qvb3duS2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJv
cGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiks
IFN5bWJvbChhKV0gYW5kIFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBj
b250ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJv
bChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvcGVydHktZXNjYXBlcy9n
ZW5lcmF0ZWQvQWxwaGFiZXRpYy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYFxwe0Fs
cGhhYmV0aWN9YCBzaG91bGQgbWF0Y2ggVSswMDFDRkEgKGDhs7pgKScKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IGBccHtBbHBoYWJldGljfWAgc2hvdWxkIG1hdGNoIFUrMDAxQ0ZBIChg
4bO6YCknCkBAIC0zMzQzLDkgKzMzMjgsNiBAQCB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9y
LWluL2lkZW50aWZpZXItbGV0LWFsbG93ZWQtYXMtbGVmdGhhbmRzaWRlLWV4cHJlc3NpbwogICBk
ZWZhdWx0OiAiU3ludGF4RXJyb3I6IENhbm5vdCB1c2UgdGhlIGtleXdvcmQgJ2luJyBhcyBhIGxl
eGljYWwgdmFyaWFibGUgbmFtZS4iCiB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWluL2xl
dC1hcnJheS13aXRoLW5ld2xpbmUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRl
bWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMv
Zm9yLWluL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFu
ZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9sYW5ndWFnZS9zdGF0
ZW1lbnRzL2Zvci1pbi9vcmRlci1lbnVtZXJhYmxlLXNoYWRvd2VkLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbcDEsIHAyXSBhbmQgW3AxXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbcDEs
IHAyXSBhbmQgW3AxXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398787</attachid>
            <date>2020-05-07 13:08:14 -0700</date>
            <delta_ts>2020-05-18 11:57:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200507230812.patch</filename>
            <type>text/plain</type>
            <size>51665</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODEwYWU4NmMzYTFlYTYwNjQxZDQ5YjNkZTE4ODUxZDI5MGQ2MmVlLi4wZDFlNWE2ZWRhMDNmMTAy
NTgzNDgxMTYwMjdmYjliZDczMzg0MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wNS0wNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgJiBwdXQgYmFjayBhIG5vbi1pbmRleGVkIHByb3BlcnR5IGp1c3QgdG8K
KyAgICAgICAgdXBkYXRlIGF0dHJpYnV0ZXMsIHdoaWNoIHdhcyBsZXNzIGVmZmljaWVudCBhbmQg
Y29ycnVwdGVkIG9ic2VydmFibGUgcHJvcGVydHkgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRj
aDoKKyAgICAgICAgMS4gUmV3cml0ZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRv
cigpIHRvIGNsb3NlbHkgcmVzZW1ibGUgdGhlIHNwZWMgWzFdLgorICAgICAgICAyLiBEcm9wcyBw
cm9wZXJ0eSBkZWxldGlvbiwgaW5saW5lcyBwdXREZXNjcmlwdG9yKCksIGFuZCBzZXRzIGFwcHJv
cHJpYXRlIFN0cnVjdHVyZQorICAgICAgICAgICBmbGFncyBpbiBhdHRyaWJ1dGVDaGFuZ2VUcmFu
c2l0aW9uKCkuCisgICAgICAgIDMuIFNpbXBsaWZpZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5
RGVzY3JpcHRvcigpIGEgbGl0dGxlIGJ5IG9idGFpbmluZyBHZXR0ZXJTZXR0ZXIKKyAgICAgICAg
ICAgaW5zdGFuY2UgZnJvbSBjdXJyZW50IGRlc2NyaXB0b3IgaW5zdGVhZCBvZiBjYWxsaW5nIGdl
dERpcmVjdCgpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsaWducyBwcm9wZXJ0eSBvcmRlciB3
aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisgICAgICAgIFRob3JvdWdobHkgYmVuY2htYXJrZWQ6
IFNpeFNwZWVkLCBTdW5TcGlkZXIsIGFuZCBBUkVTLTYgYXJlIGFsbCBuZXV0cmFsLgorICAgICAg
ICBQcm92aWRlZCBtaWNyb2JlbmNobWFya3MgYWR2YW5jZWQgYnkgNS04NSUsIGVzcGVjaWFsbHkg
Zm9yIG9iamVjdHMgaW4gZGljdGlvbmFyeSBtb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisK
KyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjphcHBl
bmRTb3VyY2VUb0Vycm9yKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6
cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlv
bik6CisKIDIwMjAtMDUtMDYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CiAKICAgICAgICAgREZHIEJ5VmFsIG5vZGVzIHdpdGggQXJyYXlNb2RlcyBzaG91bGQgY2xvYmJl
clRvcCB1bnRpbCBGaXh1cCBwaGFzZSBydW5zLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCBkOGFjZTlkNTEzYzhhMzNiZWZjYmM1NmQy
Mzc2NmQ2Mjg2MzIwNjAzLi41NDU4ZjQ4ZjY4NzEzNGM0YmRmZTI3MmRhOGU0NTk1YmFlZDNmMjRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNw
cApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhCiAgICAgICAgICAg
ICBzdG9wLS07CiAgICAgICAgIG1lc3NhZ2UgPSBhcHBlbmRlcihtZXNzYWdlLCBjb2RlQmxvY2st
PnNvdXJjZSgpLnByb3ZpZGVyKCktPmdldFJhbmdlKHN0YXJ0LCBzdG9wKS50b1N0cmluZygpLCB0
eXBlLCBFcnJvckluc3RhbmNlOjpGb3VuZEFwcHJveGltYXRlU291cmNlKTsKICAgICB9Ci0gICAg
ZXhjZXB0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3Ry
aW5nKHZtLCBtZXNzYWdlKSk7CisgICAgZXhjZXB0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKHZtLCBtZXNzYWdlKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCAzYjgxZTZhYzhlZjNhYWU4MGY4
MzM1NWE0MWVhZWQ0MTNkMTEwMjJkLi5iNTY5ZDA1YjY0ZDZmOGUwNGYwODRlYWVkZmU0MDE2OTc2
MzVlYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBA
IC0zNTM2LDQxICszNTM2LDYgQEAgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmEKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgcHV0RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVuc2lnbmVkIGF0dHJpYnV0ZXMs
IGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgb2xkRGVzY3JpcHRvcikKLXsKLSAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3Jp
cHRvcigpIHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmIChk
ZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSAmJiBvbGREZXNjcmlwdG9yLmlzQWNjZXNz
b3JEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBvbGREZXNj
cmlwdG9yLmdldHRlclByZXNlbnQoKSA/IG9sZERlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiBu
dWxscHRyOwotICAgICAgICAgICAgSlNPYmplY3QqIHNldHRlciA9IG9sZERlc2NyaXB0b3Iuc2V0
dGVyUHJlc2VudCgpID8gb2xkRGVzY3JpcHRvci5zZXR0ZXJPYmplY3QoKSA6IG51bGxwdHI7Ci0g
ICAgICAgICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwotICAgICAgICAgICAgdGFyZ2V0LT5w
dXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0
dHJpYnV0ZXMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgSlNWYWx1ZSBuZXdWYWx1ZSA9IGpzVW5kZWZp
bmVkKCk7Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAgICBuZXdW
YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUoKTsKLSAgICAgICAgZWxzZSBpZiAob2xkRGVzY3JpcHRv
ci52YWx1ZSgpKQotICAgICAgICAgICAgbmV3VmFsdWUgPSBvbGREZXNjcmlwdG9yLnZhbHVlKCk7
Ci0gICAgICAgIHRhcmdldC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIG5ld1ZhbHVlLCBh
dHRyaWJ1dGVzICYgflByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgICAgIGlmIChh
dHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KQotICAgICAgICAgICAgdGFy
Z2V0LT5zdHJ1Y3R1cmUodm0pLT5zZXRDb250YWluc1JlYWRPbmx5UHJvcGVydGllcygpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgYXR0cmlidXRlcyAmPSB+UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5OwotCi0gICAgSlNPYmplY3QqIGdldHRlciA9IGRlc2NyaXB0b3IuZ2V0
dGVyUHJlc2VudCgpCi0gICAgICAgID8gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKSA6IG9sZERl
c2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpCi0gICAgICAgID8gb2xkRGVzY3JpcHRvci5nZXR0ZXJP
YmplY3QoKSA6IG51bGxwdHI7Ci0gICAgSlNPYmplY3QqIHNldHRlciA9IGRlc2NyaXB0b3Iuc2V0
dGVyUHJlc2VudCgpCi0gICAgICAgID8gZGVzY3JpcHRvci5zZXR0ZXJPYmplY3QoKSA6IG9sZERl
c2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpCi0gICAgICAgID8gb2xkRGVzY3JpcHRvci5zZXR0ZXJP
YmplY3QoKSA6IG51bGxwdHI7Ci0gICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNl
dHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVyKTsKLQotICAgIHRh
cmdldC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFjY2Vz
c29yLCBhdHRyaWJ1dGVzIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpCkBAIC0zNTc4LDggKzM1NDMsNyBAQCBib29sIEpTT2JqZWN0OjpwdXRE
aXJlY3RNYXlCZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFt
ZSBwcgogICAgIHJldHVybiBwdXREaXJlY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKIH0KIAotLy8gOS4xLjYuMyBvZiB0aGUgc3BlYwotLy8gaHR0cDovL3d3dy5l
Y21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC9pbmRleC5odG1sI3NlYy12YWxpZGF0
ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9wZXJ0eWRlc2NyaXB0b3IKIGJvb2wgdmFsaWRhdGVBbmRB
cHBseVByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBib29sIGlzRXh0ZW5zaWJs
ZSwKICAgICBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgaXNDdXJy
ZW50RGVmaW5lZCwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBjdXJyZW50LCBib29sIHRocm93
RXhjZXB0aW9uKQogewpAQCAtMzU5MywxMzMgKzM1NTcsODggQEAgYm9vbCB2YWxpZGF0ZUFuZEFw
cGx5UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KgogICAgICAgICAvLyBTdGVwIDIuYQogICAgICAgICBpZiAoIWlzRXh0ZW5zaWJsZSkKICAg
ICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNl
cHRpb24sIE5vbkV4dGVuc2libGVPYmplY3RQcm9wZXJ0eURlZmluZUVycm9yKTsKLSAgICAgICAg
aWYgKCFvYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgLy8gU3RlcCAy
LmMvZAotICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3Igb2xkRGVzY3JpcHRvcjsKLSAgICAgICAg
b2xkRGVzY3JpcHRvci5zZXRWYWx1ZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgLy8gRklYTUU6
IHNwZWMgc2F5cyB0byBhbHdheXMgcmV0dXJuIHRydWUgaGVyZS4KLSAgICAgICAgcmV0dXJuIHB1
dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
ciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCksIG9sZERlc2NyaXB0b3IpOworCisgICAgICAgIGlm
IChvYmplY3QpIHsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlw
dG9yKCkpIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gKGRlc2NyaXB0
b3IuYXR0cmlidXRlcygpIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSAmIH5Qcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHk7CisgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RB
Y2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci5zbG93R2V0dGVy
U2V0dGVyKGdsb2JhbE9iamVjdCksIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkg
fHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpOworICAgICAgICAgICAgICAgIEpTVmFs
dWUgdmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlKCkgPyBkZXNjcmlwdG9yLnZhbHVlKCkgOiBqc1Vu
ZGVmaW5lZCgpOworICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSAmIH5Qcm9wZXJ0eUF0dHJpYnV0
ZTo6QWNjZXNzb3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIC8vIFN0ZXAgMy4KICAgICBpZiAoZGVzY3JpcHRvci5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIC8vIFN0ZXAgNC4KKwogICAgIGJvb2wgaXNF
cXVhbCA9IGN1cnJlbnQuZXF1YWxUbyhnbG9iYWxPYmplY3QsIGRlc2NyaXB0b3IpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICBpZiAoaXNFcXVhbCkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBTdGVwIDUuCi0gICAgLy8gRmlsdGVyIG91dCBpbnZh
bGlkIGNoYW5nZXMKKyAgICAvLyBTdGVwIDQuCiAgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJs
ZSgpKSB7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKQogICAgICAgICAg
ICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwg
VW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNvbmZpZ3VyYWJpbGl0eUVycm9yKTsKICAgICAg
ICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmVudW1l
cmFibGUoKSAhPSBjdXJyZW50LmVudW1lcmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxl
UHJvcGVydHlDaGFuZ2VFbnVtZXJhYmlsaXR5RXJyb3IpOwogICAgIH0KLSAgICAKLSAgICAvLyBT
dGVwIDYuCi0gICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMgc2ltcGx5IGNoYW5naW5nIHRo
ZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CisKICAgICBpZiAoZGVzY3JpcHRv
ci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYgKCFjdXJyZW50LmF0dHJpYnV0
ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiBvYmplY3QpIHsKLSAgICAgICAgICAgIEpTQ2VsbDo6ZGVs
ZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1
cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KSwg
Y3VycmVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAot
ICAgIC8vIFN0ZXAgNy4KLSAgICAvLyBDaGFuZ2luZyBiZXR3ZWVuIGEgbm9ybWFsIHByb3BlcnR5
IG9yIGFuIGFjY2Vzc29yIHByb3BlcnR5Ci0gICAgaWYgKGRlc2NyaXB0b3IuaXNEYXRhRGVzY3Jp
cHRvcigpICE9IGN1cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAgIC8vIFN0ZXAg
NS4KKyAgICAgICAgLy8gQ2hhbmdpbmcgW1tFbnVtZXJhYmxlXV0gYW5kIFtbQ29uZmlndXJhYmxl
XV0gYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorICAgIH0gZWxzZSBpZiAoY3Vy
cmVudC5pc0RhdGFEZXNjcmlwdG9yKCkgIT0gZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkp
IHsKKyAgICAgICAgLy8gU3RlcCA2LgorICAgICAgICAvLyBDaGFuZ2luZyBiZXR3ZWVuIGEgZGF0
YSBwcm9wZXJ0eSBhbmQgYWNjZXNzb3IgcHJvcGVydHkKICAgICAgICAgaWYgKCFjdXJyZW50LmNv
bmZpZ3VyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUFjY2Vz
c01lY2hhbmlzbUVycm9yKTsKKyAgICB9IGVsc2UgaWYgKGN1cnJlbnQuaXNEYXRhRGVzY3JpcHRv
cigpICYmIGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAgIC8vIFN0ZXAg
Ny4KKyAgICAgICAgLy8gQ2hhbmdpbmcgdGhlIHZhbHVlIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4
aXN0aW5nIGRhdGEgcHJvcGVydHkKKyAgICAgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgp
ICYmICFjdXJyZW50LndyaXRhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLndy
aXRhYmxlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZVdyaXRh
YmlsaXR5RXJyb3IpOworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSAmJiAhc2Ft
ZVZhbHVlKGdsb2JhbE9iamVjdCwgY3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVlKCkp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
dGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVydHlDaGFuZ2VFcnJvcik7CiAKLSAgICAgICAg
aWYgKCFvYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBKU0NlbGw6
OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgIHJldHVybiBw
dXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpLCBjdXJy
ZW50KTsKLSAgICB9Ci0KLSAgICAvLyBTdGVwIDguCi0gICAgLy8gQ2hhbmdpbmcgdGhlIHZhbHVl
IGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5Ci0gICAgaWYgKGRlc2NyaXB0
b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC5jb25maWd1cmFi
bGUoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyZW50LndyaXRhYmxlKCkgJiYgZGVzY3JpcHRv
ci53cml0YWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VX
cml0YWJpbGl0eUVycm9yKTsKLSAgICAgICAgICAgIGlmICghY3VycmVudC53cml0YWJsZSgpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSkgewotICAgICAgICAgICAg
ICAgICAgICBib29sIGlzU2FtZSA9IHNhbWVWYWx1ZShnbG9iYWxPYmplY3QsIGN1cnJlbnQudmFs
dWUoKSwgZGVzY3JpcHRvci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU2Ft
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVydHlDaGFuZ2VFcnJvcik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmIChj
dXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZGVzY3JpcHRvci52YWx1ZSgp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICghb2JqZWN0KQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0
LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1
dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCksIGN1cnJlbnQpOwotICAgIH0KKyAgICB9IGVs
c2UgeworICAgICAgICAvLyBTdGVwIDguCisgICAgICAgIC8vIENoYW5naW5nIHRoZSBhY2Nlc3Nv
ciBmdW5jdGlvbnMgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgYWNjZXNzb3IgcHJvcGVy
dHkKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSk7Cisg
ICAgICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkgeworICAgICAgICAgICAgaWYgKGRl
c2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iuc2V0dGVyKCkgIT0gY3VycmVu
dC5zZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIHNldHRl
ciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOworICAgICAgICAgICAgaWYgKGRl
c2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkgIT0gY3VycmVu
dC5nZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIGdldHRl
ciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOworICAgICAgICAgICAgaWYgKGN1
cnJlbnQuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhy
b3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VBY2Nlc3NNZWNoYW5pc21F
cnJvcik7CiAKLSAgICAvLyBTdGVwIDkuCi0gICAgLy8gQ2hhbmdpbmcgdGhlIGFjY2Vzc29yIGZ1
bmN0aW9ucyBvZiBhbiBleGlzdGluZyBhY2Nlc3NvciBwcm9wZXJ0eQotICAgIEFTU0VSVChkZXNj
cmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpOwotICAgIGlmICghY3VycmVudC5jb25maWd1
cmFibGUoKSkgewotICAgICAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgJiYgIShj
dXJyZW50LnNldHRlclByZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxPYmpl
Y3QsIGN1cnJlbnQuc2V0dGVyKCksIGRlc2NyaXB0b3Iuc2V0dGVyKCkpKSkKLSAgICAgICAgICAg
IHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJB
dHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgc2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3Bl
cnR5LiJfcyk7Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSAmJiAhKGN1
cnJlbnQuZ2V0dGVyUHJlc2VudCgpICYmIEpTVmFsdWU6OnN0cmljdEVxdWFsKGdsb2JhbE9iamVj
dCwgY3VycmVudC5nZXR0ZXIoKSwgZGVzY3JpcHRvci5nZXR0ZXIoKSkpKQotICAgICAgICAgICAg
cmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0
dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBnZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVy
dHkuIl9zKTsKLSAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNo
YW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CiAgICAgfQogCi0gICAgLy8gU3RlcCAxMC8xMS4KICAgICBpZiAoIW9iamVjdCkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBhY2Nlc3NvciA9IG9iamVjdC0+Z2V0RGly
ZWN0KHZtLCBwcm9wZXJ0eU5hbWUpOwotICAgIGlmICghYWNjZXNzb3IpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBKU09iamVjdCogZ2V0dGVyID0gbnVsbHB0cjsKLSAgICBKU09iamVjdCog
c2V0dGVyID0gbnVsbHB0cjsKLSAgICBib29sIGdldHRlclNldHRlckNoYW5nZWQgPSBmYWxzZTsK
LQotICAgIGlmIChhY2Nlc3Nvci5pc0N1c3RvbUdldHRlclNldHRlcigpKSB7Ci0gICAgICAgIGF1
dG8qIGN1c3RvbUdldHRlclNldHRlciA9IGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihhY2Nl
c3Nvcik7Ci0gICAgICAgIGlmIChjdXN0b21HZXR0ZXJTZXR0ZXItPnNldHRlcigpKQotICAgICAg
ICAgICAgc2V0dGVyID0gZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0
ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgSlNDdXN0
b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6VHlwZTo6U2V0dGVyKTsKLSAgICAgICAgaWYgKGN1c3Rv
bUdldHRlclNldHRlci0+Z2V0dGVyKCkpCi0gICAgICAgICAgICBnZXR0ZXIgPSBnZXRDdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlcihnbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOjpU
eXBlOjpHZXR0ZXIpOworICAgIC8vIFN0ZXAgOS4KKyAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0g
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCk7CisgICAgaWYg
KGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSB8fCAoY3VycmVudC5pc0FjY2Vzc29y
RGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkpIHsKKyAgICAg
ICAgQVNTRVJUKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAg
ICAgICBKU09iamVjdCogZ2V0dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkgPyBkZXNj
cmlwdG9yLmdldHRlck9iamVjdCgpIDogKGN1cnJlbnQuZ2V0dGVyUHJlc2VudCgpID8gY3VycmVu
dC5nZXR0ZXJPYmplY3QoKSA6IG51bGxwdHIpOworICAgICAgICBKU09iamVjdCogc2V0dGVyID0g
ZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBkZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDog
KGN1cnJlbnQuc2V0dGVyUHJlc2VudCgpID8gY3VycmVudC5zZXR0ZXJPYmplY3QoKSA6IG51bGxw
dHIpOworICAgICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IEdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVyKTsKKyAgICAgICAgb2JqZWN0
LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0
dGVyLCBhdHRyaWJ1dGVzICYgflByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgQVNTRVJUKGFjY2Vzc29yLmlzR2V0dGVyU2V0dGVyKCkpOwotICAgICAg
ICBhdXRvKiBnZXR0ZXJTZXR0ZXIgPSBqc0Nhc3Q8R2V0dGVyU2V0dGVyKj4oYWNjZXNzb3IpOwot
ICAgICAgICBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRlcigpOwotICAgICAgICBzZXR0ZXIg
PSBnZXR0ZXJTZXR0ZXItPnNldHRlcigpOwotICAgIH0KLSAgICBpZiAoZGVzY3JpcHRvci5zZXR0
ZXJQcmVzZW50KCkpIHsKLSAgICAgICAgc2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJPYmplY3Qo
KTsKLSAgICAgICAgZ2V0dGVyU2V0dGVyQ2hhbmdlZCA9IHRydWU7Ci0gICAgfQotICAgIGlmIChk
ZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSkgewotICAgICAgICBnZXR0ZXIgPSBkZXNjcmlwdG9y
LmdldHRlck9iamVjdCgpOwotICAgICAgICBnZXR0ZXJTZXR0ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAg
ICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0
b3IuaXNEYXRhRGVzY3JpcHRvcigpKTsKKyAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0
b3IudmFsdWUoKSA/IGRlc2NyaXB0b3IudmFsdWUoKSA6IChjdXJyZW50LnZhbHVlKCkgPyBjdXJy
ZW50LnZhbHVlKCkgOiBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qo
dm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6
OkFjY2Vzc29yKTsKICAgICB9CiAKLSAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVz
Y3JpcHRvcikgJiYgIWdldHRlclNldHRlckNoYW5nZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7Ci0KLSAgICBKU0NlbGw6OmRlbGV0ZVBy
b3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICB1bnNpZ25lZCBhdHRycyA9IGRlc2NyaXB0
b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpOwotICAgIG9iamVjdC0+cHV0
RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwg
YXR0cnMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0zNzI4LDExICszNjQ3LDYgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duTm9uSW5k
ZXhQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU4KICAgICBW
TSYgdm0gID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgLy8gVHJhY2sgb24gdGhlIGdsb2JhbGRhdGEgdGhh
dCB3ZSdyZSBpbiBkZWZpbmUgcHJvcGVydHkuCi0gICAgLy8gQ3VycmVudGx5IERlZmluZU93blBy
b3BlcnR5IHVzZXMgZGVsZXRlIHRvIHJlbW92ZSBwcm9wZXJ0aWVzIHdoZW4gdGhleSBhcmUgYmVp
bmcgcmVwbGFjZWQKLSAgICAvLyAocGFydGljdWxhcmx5IHdoZW4gY2hhbmdpbmcgYXR0cmlidXRl
cyksIGhvd2V2ZXIgZGVsZXRlIHdvbid0IGFsbG93IG5vbi1jb25maWd1cmFibGUgKGkuZS4KLSAg
ICAvLyBEb250RGVsZXRlKSBwcm9wZXJ0aWVzIHRvIGJlIGRlbGV0ZWQuIEZvciBub3csIHdlIGNh
biB1c2UgdGhpcyBmbGFnIHRvIG1ha2UgdGhpcyB3b3JrLgotICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgY3VycmVudDsKICAgICBib29sIGlzQ3Vy
cmVudERlZmluZWQgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGN1cnJlbnQpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGlu
ZXMuaAppbmRleCAyMGYxZDg1NjAzOTI1YTY4ZjU0YTYzODhmNWY2Y2EwMTRmY2I4YTk4Li44MWNi
OTc1MTliMWEyOTk2ZmNkMWM2MjFmZDA0NTMwNzExMTdjNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtMzE2LDEwICszMTYsOSBA
QCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQogICAgICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZz
ZXQsIHZhbHVlKTsKICAgICAgICAgICAgIHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3BlcnR5KG9m
ZnNldCk7CiAKLSAgICAgICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRl
OjpBY2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFj
Y2Vzc29yKSB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ck9yVmFsdWUpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3Nvck9yVmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRl
cyAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgICAgICAgICAgaWYgKG1vZGUg
PT0gUHV0TW9kZURlZmluZU93blByb3BlcnR5ICYmIChhdHRyaWJ1dGVzICE9IGN1cnJlbnRBdHRy
aWJ1dGVzIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yT3JDdXN0
b21BY2Nlc3Nvck9yVmFsdWUpKSkKICAgICAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUodm0sIFN0
cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBwcm9wZXJ0
eU5hbWUsIGF0dHJpYnV0ZXMpKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQp
OwogCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM3MCwxMCArMzY5LDkgQEAgQUxXQVlT
X0lOTElORSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbChWTSYgdm0sIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUKICAgICAgICAgc3RydWN0dXJlLT5kaWRSZXBsYWNlUHJvcGVydHko
b2Zmc2V0KTsKICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZzZXQsIHZhbHVlKTsKIAotICAgICAg
ICBpZiAoKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICE9IChjdXJy
ZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgfHwgKGF0dHJpYnV0
ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKSAhPSAoY3VycmVu
dEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKSkg
ewotICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSkpOworICAgICAgICBpZiAobW9kZSA9PSBQdXRNb2RlRGVmaW5lT3duUHJvcGVydHkg
JiYgKGF0dHJpYnV0ZXMgIT0gY3VycmVudEF0dHJpYnV0ZXMgfHwgKGF0dHJpYnV0ZXMgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3JPckN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpKQogICAgICAg
ICAgICAgc2V0U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRp
b24odm0sIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgIH0g
ZWxzZQorICAgICAgICBlbHNlCiAgICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHko
dGhpcywgb2Zmc2V0KTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCmluZGV4IDQ0MDZl
ODBiY2MwMDkwYWU2OThhNzljZmM0MjdmMDg3YTczNmRmNzEuLmNhZmRkNjgzMzA0MDA1MTM4MDEy
MDYyMjIyZTM0N2I2YTZjNmRmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFBy
b3BlcnR5RGVzY3JpcHRvcjo6c2V0VW5kZWZpbmVkKCkKICAgICBtX2F0dHJpYnV0ZXMgPSBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bTsKIH0KIAotR2V0dGVyU2V0dGVyKiBQcm9wZXJ0
eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK0dldHRlclNldHRlciogUHJvcGVydHlEZXNjcmlwdG9yOjpzbG93R2V0dGVyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIEpTVmFsdWUgZ2V0dGVyID0gbV9nZXR0ZXIgJiYgIW1fZ2V0dGVy
LmlzVW5kZWZpbmVkKCkgPyBqc0Nhc3Q8SlNPYmplY3QqPihtX2dldHRlcikgOiBqc1VuZGVmaW5l
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuaAppbmRleCA0ZGZmMTBmNjMzNjRlYjllMWEwNTA4YTgyNDc0OWM2MjA2YjcwNmM2Li5h
NTIxYTQyMjg2ZWQxZmU2YzA3NzhhYzY0ZGFkYzY5ZTIxZjAxNDExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaApAQCAtNTYsNyAr
NTYsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjY2Vzc29yRGVz
Y3JpcHRvcigpIGNvbnN0OwogICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVy
biBtX2F0dHJpYnV0ZXM7IH0KICAgICBKU1ZhbHVlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZTsgfQotICAgIEdldHRlclNldHRlciogc2xvd0dldHRlclNldHRlcihKU0dsb2JhbE9iamVj
dCopOyAvLyBCZSBhd2FyZSB0aGF0IHRoaXMgd2lsbCBsYXppbHkgYWxsb2NhdGUgYSBHZXR0ZXJT
ZXR0ZXIgb2JqZWN0LiBJdCdzIG11Y2ggYmV0dGVyIHRvIHVzZSBnZXR0ZXIoKSBhbmQgc2V0dGVy
KCkgaW5kaXZpZHVhbGx5IGlmIHBvc3NpYmxlLgorICAgIEdldHRlclNldHRlciogc2xvd0dldHRl
clNldHRlcihKU0dsb2JhbE9iamVjdCopIGNvbnN0OyAvLyBCZSBhd2FyZSB0aGF0IHRoaXMgd2ls
bCBsYXppbHkgYWxsb2NhdGUgYSBHZXR0ZXJTZXR0ZXIgb2JqZWN0LiBJdCdzIG11Y2ggYmV0dGVy
IHRvIHVzZSBnZXR0ZXIoKSBhbmQgc2V0dGVyKCkgaW5kaXZpZHVhbGx5IGlmIHBvc3NpYmxlLgog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZ2V0dGVyKCkgY29uc3Q7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgSlNWYWx1ZSBzZXR0ZXIoKSBjb25zdDsKICAgICBKU09iamVjdCogZ2V0dGVy
T2JqZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcAppbmRleCA5YzJjZTdhZmFlNmUzOGU3YTYwODAyNmY1MTc3MTEwZTNjODU1NjJlLi5iOTg2
ZjBmZGZjMTFjYThkZWE4OTRhYTM1ZmM1NTU4Yzc0MjE1NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTY2OSw2ICs2NjksMTIgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24oVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUHIKICAgICBBU1NFUlQoZW50cnkpOwogICAgIGVudHJ5LT5hdHRyaWJ1
dGVzID0gYXR0cmlidXRlczsKIAorICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKQorICAgICAgICBzdHJ1Y3R1cmUtPnNldElzUXVpY2tQcm9wZXJ0eUFjY2Vz
c0FsbG93ZWRGb3JFbnVtZXJhdGlvbihmYWxzZSk7CisKKyAgICBpZiAoYXR0cmlidXRlcyAmIChQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
KQorICAgICAgICBzdHJ1Y3R1cmUtPnNldEhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0
aWVzRXhjbHVkaW5nUHJvdG8odHJ1ZSk7CisKICAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zmc2V0Q29u
c2lzdGVuY3koKTsKICAgICByZXR1cm4gc3RydWN0dXJlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5M2MzZGNjNzM3
NGY1YjQ0ZTMwODkwZTFhODI3ZmQ0Y2Q0YzgyMGQuLmNmMTg2MGYxZDUxZGY0OTI3ZjU3ZTk1OGIy
NGY2MWFkYTRmNTdkMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNS0wNyAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBh
IHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdlIGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5r
ZXlzIG9yZGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9w
ZXJ0aWVzLmpzOgorCiAyMDIwLTA1LTA2ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUu
Y29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gaW5kZW50T3V0ZGVudENvbW1hbmQ6OmZv
cm1hdFJhbmdlIHdpdGggYXN5bmNocm9ub3VzIGNvbW1hbmRzOiBpbmRlbnQgYW5kIGluc2VydCBs
aXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRl
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwt
ZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDExMTA4NDdkNzNhMDU2ZmE1
YTgwOTkyYjg2MjVjOTliOGI2MzhlYmUuLjM4MWE3ZTY4NWRiOGZkNjAyYmI0ZDZkNDMyOTYzNmU0
MWQ3ZmU2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxp
Y2F0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3Qt
bGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTE0LDcgKzE0LDcg
QEAgUEFTUyBvLmZvbyBpcyAwCiBQQVNTIHggaXMgNAogUEFTUyBvLmZvbyBpcyAzCiBQQVNTIG8u
YmFyIGlzIHVuZGVmaW5lZAotRkFJTCBPYmplY3Qua2V5cyhvKS5qb2luKCkgc2hvdWxkIGJlIGZv
byx0ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdC4gV2FzIHRlc3QxLHRlc3QyLHRlc3QzLGZvbyxi
YXIsbmVzdC4KK1BBU1MgT2JqZWN0LmtleXMobykuam9pbigpIGlzICdmb28sdGVzdDEsYmFyLHRl
c3QyLHRlc3QzLG5lc3QnCiAKIEJhc2ljCiBQQVNTIG8gPSB7Zm9vOjF9OyBkZXNjcmlwdGlvblN0
cmluZyhvLCAnZm9vJyk7IGlzICd2YWx1ZToxIGtleXM6MSBbRUNXXVtFeHRlbnNpYmxlXScKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1kdXBs
aWNhdGUtcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3Qt
bGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qcwppbmRleCAxMmQ0MDMyYTIwNTA4ZWFlMGEw
NzhlZmUyOTVhZmRkYTllNmMyNWJjLi5lMTdhMmM4MDliZGZkMDY4MjM5NDhmNjgwMTg3ZDIyMzJl
OWZlMDkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxp
dGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLmpzCkBAIC01NCw3ICs1
NCw2IEBAIG8gPSB7CiBzaG91bGRCZSgieCIsICI0Iik7CiBzaG91bGRCZSgiby5mb28iLCAiMyIp
Owogc2hvdWxkQmUoIm8uYmFyIiwgInVuZGVmaW5lZCIpOwotLy8gRklYTUU6IDxodHRwczovL3dl
YmtpdC5vcmcvYi8xNDI5MzM+IFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5n
ZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKIHNob3VsZEJlKCJPYmpl
Y3Qua2V5cyhvKS5qb2luKCkiLCAiJ2Zvbyx0ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdCciKTsK
IAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbCBiL0pTVGVzdHMvQ2hha3Jh
Q29yZS55YW1sCmluZGV4IDdmMWFlYTYxYzNmNzcxMTBlNTRmM2IyN2NiYjk3N2E0MDU4MDYzMWMu
LjViYzkwOTk1ZGNmMWIxOGU5NGYwNWIyMzgxMWNiYjViOTBmODcwZjcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hha3JhQ29yZS55YW1sCisrKyBiL0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCkBAIC0x
NDc0LDcgKzE0NzQsNyBAQAogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L3JlZ2V4U3BhY2Uu
anMKICAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAicmVnZXhTcGFj
ZS5iYXNlbGluZSIsIFtdCiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdX
aXRoRVM1LmpzCi0gIGNtZDogcnVuQ2hha3JhIDpiYXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgIkVu
dW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2MiLCBbXQorICBjbWQ6IHJ1bkNoYWtyYSA6YmFz
ZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJFbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUiLCBbXQog
LSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L0luc3VmZmljaWVudEFyZ3VtZW50cy5qcwogICBj
bWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJJbnN1ZmZpY2llbnRBcmd1
bWVudHMuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L3JlY3Vyc2l2
ZXNldHRlci5qcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1l
cmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2MgYi9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUv
RW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTRjMjhhOTQxODRlZTNiNmVhNGYxM2Y5YzEwYzdjNDUxMzg0YjlmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL0NoYWtyYUNvcmUv
dGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYworKysgL2Rldi9udWxsCkBA
IC0xLDM4MiArMCwwIEBACi1UZXN0IDE6IE5vbi13cml0YWJsZSwgc2ltcGxlIHR5cGUgaGFuZGxl
cgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IGR2YWx1ZQotU2V0dGluZyB2YWx1ZSB0
byAxCi1kOiAxCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEK
LVNldHRpbmcgdmFsdWUgdG8gMgotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZh
bHNlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byAz
Ci1kOiAyCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDIKLVNl
dHRpbmcgdmFsdWUgdG8gNAotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUK
LVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDUKLWQ6
IDUKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogNQotU2V0dGlu
ZyB2YWx1ZSB0byA2Ci1kOiA2Ci1DaGFuZ2luZyB3cml0YWJpbGl0eSBkdXJpbmcgZW51bWVyYXRp
b24uLi4KLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9m
IGQgdG8gZmFsc2UKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gNwotZDogNgotVGVzdGluZyBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8g
ZmFsc2UKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gOAotZDogNgotVGVzdGluZyBmb3ItaW4gZW51
bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA2Ci1TZXR0aW5n
IHZhbHVlIHRvIDkKLWQ6IDkKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDkKLVNldHRpbmcgdmFsdWUg
dG8gMTAKLWQ6IDEwCi1GcmVlemluZyBvYmplY3QKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9u
Ci1kOiAxMAotU2V0dGluZyB2YWx1ZSB0byAxMQotZDogMTAKLVRlc3RpbmcgZ2V0T3duUHJvcGVy
dHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWQ6IDEwCi0K
LVRlc3QgMjogTm9uLXdyaXRhYmxlLCBzaW1wbGUgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRl
c3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQot
ZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0
aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQot
VGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDog
MgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5n
IHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0
aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1U
ZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFs
dWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4u
Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRv
IGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJv
cGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNl
Ci1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0
aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1
ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNl
dHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEw
Ci1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDog
MTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFt
ZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0
IDM6IE5vbi13cml0YWJsZSwgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWlu
IGVudW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGlu
ZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRv
IDIKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3It
aW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBn
ZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQK
LWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBl
bnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDog
NgotQ2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZv
ci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2
Ci1TZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBl
bnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0
aW5nIHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5n
IHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5
Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFi
aWxpdHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJl
ZXppbmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcg
dmFsdWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRp
b24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDQ6IEFjY2Vzc29y
cwotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBiCi1EZWZpbmluZyBhY2Nlc3NvcnMgZm9yIGYKLVRl
c3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiBhVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQot
YTogMQotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDIKLVNFVFRFUiBGT1IgYgot
YjogR0VUVEVSIEZPUiBiCi1kOiBkVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMwotZjog
R0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVS
IEZPUiBmCi1nOiBnVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gNQotZzogNQotVGVzdGluZyBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1hOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDYKLWE6
IDYKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byA3Ci1TRVRURVIgRk9SIGIKLWI6
IEdFVFRFUiBGT1IgYgotZDogMwotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA4Ci1lOiBlVmFsdWUK
LVNldHRpbmcgdmFsdWUgdG8gOQotZTogOQotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVl
IHRvIDEwCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogNQotU2V0dGluZyB2YWx1
ZSB0byAxMQotZzogMTEKLURlZmluaW5nIGFjY2Vzc29ycyBmb3IgZAotVGVzdGluZyBmb3ItaW4g
ZW51bWVyYXRpb24KLWE6IDYKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWE6IDEyCi1iOiBHRVRURVIg
Rk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMTMKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBi
Ci1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMTQKLVNFVFRFUiBGT1IgZgotZjog
R0VUVEVSIEZPUiBmCi1nOiAxMQotU2V0dGluZyB2YWx1ZSB0byAxNQotZzogMTUKLWQ6IEdFVFRF
UgotU2V0dGluZyB2YWx1ZSB0byAxNgotU0VUVEVSCi1kOiBHRVRURVIKLVRlc3RpbmcgZ2V0T3du
UHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogMTIKLVNldHRpbmcgdmFsdWUgdG8gMTcKLWE6
IDE3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMTgKLVNFVFRFUiBGT1IgYgot
YjogR0VUVEVSIEZPUiBiCi1lOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDE5Ci1lOiAxOQotZjogR0VU
VEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDIwCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBG
T1IgZgotZzogMTUKLVNldHRpbmcgdmFsdWUgdG8gMjEKLWc6IDIxCi1kOiBHRVRURVIKLVNldHRp
bmcgdmFsdWUgdG8gMjIKLVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5
IGQgd2l0aCB2YWx1ZSAyMwotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDE3Ci1TZXR0
aW5nIHZhbHVlIHRvIDI0Ci1hOiAyNAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRv
IDI1Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0
aW5nIHZhbHVlIHRvIDI2Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMjEKLVNl
dHRpbmcgdmFsdWUgdG8gMjcKLWc6IDI3Ci1kOiAyMwotU2V0dGluZyB2YWx1ZSB0byAyOAotZDog
MjgKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogMjQKLVNldHRp
bmcgdmFsdWUgdG8gMjkKLWE6IDI5Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8g
MzAKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiAxOQotU2V0dGluZyB2YWx1ZSB0
byAzMQotZTogMzEKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAzMgotU0VUVEVS
IEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDI3Ci1TZXR0aW5nIHZhbHVlIHRvIDMzCi1nOiAz
MwotZDogMjgKLVNldHRpbmcgdmFsdWUgdG8gMzQKLWQ6IDM0Ci1EZWZpbmluZyBhY2Nlc3NvciBw
cm9wZXJ0eSBkdXJpbmcgZW51bWVyYXRpb24uLi4KLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9u
Ci1hOiAyOQotU2V0dGluZyB2YWx1ZSB0byAzNQotYTogMzUKLWI6IEdFVFRFUiBGT1IgYgotU2V0
dGluZyB2YWx1ZSB0byAzNgotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWY6IEdFVFRF
UiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAzNwotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9S
IGYKLWc6IDMzCi1TZXR0aW5nIHZhbHVlIHRvIDM4Ci1nOiAzOAotRGVmaW5pbmcgYWNjZXNzb3Jz
IGZvciBkCi1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMzkKLVNFVFRFUgotZDogR0VUVEVS
Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDM1Ci1TZXR0aW5n
IHZhbHVlIHRvIDQwCi1hOiA0MAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQx
Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogMzEKLVNldHRpbmcgdmFsdWUgdG8g
NDIKLWU6IDQyCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNDMKLVNFVFRFUiBG
T1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAzOAotU2V0dGluZyB2YWx1ZSB0byA0NAotZzogNDQK
LWQ6IEdFVFRFUgotU2V0dGluZyB2YWx1ZSB0byA0NQotU0VUVEVSCi1kOiBHRVRURVIKLURlZmlu
aW5nIGRhdGEgcHJvcGVydHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBl
bnVtZXJhdGlvbgotYTogNDAKLVNldHRpbmcgdmFsdWUgdG8gNDcKLWE6IDQ3Ci1iOiBHRVRURVIg
Rk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNDkKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBi
Ci1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNTEKLVNFVFRFUiBGT1IgZgotZjog
R0VUVEVSIEZPUiBmCi1nOiA0NAotU2V0dGluZyB2YWx1ZSB0byA1MwotZzogNTMKLURlZmluaW5n
IGRhdGEgcHJvcGVydHkgZCB3aXRoIHZhbHVlIDU0Ci1kOiA1NAotU2V0dGluZyB2YWx1ZSB0byA1
NQotZDogNTUKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogNDcK
LVNldHRpbmcgdmFsdWUgdG8gNTcKLWE6IDU3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFs
dWUgdG8gNTkKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiA0MgotU2V0dGluZyB2
YWx1ZSB0byA2MQotZTogNjEKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA2Mwot
U0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDUzCi1TZXR0aW5nIHZhbHVlIHRvIDY1
Ci1nOiA2NQotZDogNTUKLVNldHRpbmcgdmFsdWUgdG8gNjcKLWQ6IDY3CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMwN2UzODZjZmY0MTgx
YjRkOGFjNWJlMjBjMzc2MzZkYzhkYTgwYTUuLjIwZTE4MjE0YzEzODczMGIxNjg2Y2E2YzA3NDJj
Y2VmZTc2YTVjMWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDUtMDcgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBz
aG91bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3Jh
Q29yZS55YW1sOgorICAgICAgICAqIENoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRo
RVM1LmJhc2VsaW5lLWpzYzogUmVtb3ZlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVk
ZWZpbmUtcHJvcGVydHktYWNjZXNzb3ItZGljdGlvbmFyeS5qczogQWRkZWQuCisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHkt
ZGF0YS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1l
cmFibGUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQu
anM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1zZXQuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDEyIHRlc3QgY2FzZXMg
YXMgcGFzc2luZy4KKwogMjAyMC0wNS0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBERkcgQnlWYWwgbm9kZXMgd2l0aCBBcnJheU1vZGVzIHNob3Vs
ZCBjbG9iYmVyVG9wIHVudGlsIEZpeHVwIHBoYXNlIHJ1bnMuCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5Lmpz
IGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktYWNjZXNzb3ItZGlj
dGlvbmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjk3MTJlZjIyMjJmY2JjMDYwNmNlN2NhYTk5MTg2NmU3
ZjM3OWM3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZp
bmUtcHJvcGVydHktYWNjZXNzb3ItZGljdGlvbmFyeS5qcwpAQCAtMCwwICsxLDIzIEBACitjb25z
dCBvYmogPSB7fTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgb2JqWyJrIiAr
IGldID0gaTsKKworZnVuY3Rpb24gZ2V0dGVyMSgpIHt9CitmdW5jdGlvbiBnZXR0ZXIyKCkge30K
K2Z1bmN0aW9uIHNldHRlcjEodikge30KK2Z1bmN0aW9uIHNldHRlcjIodikge30KKworY29uc3Qg
ZGVzY0dldDEgPSB7Z2V0OiBnZXR0ZXIxLCBjb25maWd1cmFibGU6IHRydWV9OworY29uc3QgZGVz
Y0dldDFTZXQxID0ge2dldDogZ2V0dGVyMSwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQy
U2V0MSA9IHtnZXQ6IGdldHRlcjIsIHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MVNldDIg
PSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRlcjJ9OworY29uc3QgZGVzY0dldDJTZXQyID0ge2dl
dDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIyfTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIGNvbnN0IGtleSA9ICJrIiArIChpICUgMTAwKTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkob2JqLCBrZXksIGRlc2NHZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
b2JqLCBrZXksIGRlc2NHZXQxU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwg
a2V5LCBkZXNjR2V0MlNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwg
ZGVzY0dldDFTZXQyKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NH
ZXQyU2V0Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmlu
ZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5l
LXByb3BlcnR5LWFjY2Vzc29yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZjE1OTE2NmQ3NGY4ODlmYjBmNmI5
NjI4Y2U1OThjYmZiZTQyZmEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5j
dGlvbiBnZXR0ZXIxKCkge30KK2Z1bmN0aW9uIGdldHRlcjIoKSB7fQorZnVuY3Rpb24gc2V0dGVy
MSh2KSB7fQorZnVuY3Rpb24gc2V0dGVyMih2KSB7fQorCitjb25zdCBvYmogPSB7YTogMCwgYjog
MSwgZ2V0IGZvbygpIHt9LCBjOiAzLCBkOiA0fTsKK2NvbnN0IGRlc2NHZXQxID0ge2dldDogZ2V0
dGVyMSwgY29uZmlndXJhYmxlOiB0cnVlfTsKK2NvbnN0IGRlc2NHZXQxU2V0MSA9IHtnZXQ6IGdl
dHRlcjEsIHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MlNldDEgPSB7Z2V0OiBnZXR0ZXIy
LCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dldDFTZXQyID0ge2dldDogZ2V0dGVyMSwgc2V0
OiBzZXR0ZXIyfTsKK2NvbnN0IGRlc2NHZXQyU2V0MiA9IHtnZXQ6IGdldHRlcjIsIHNldDogc2V0
dGVyMn07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvYmosICJmb28iLCBkZXNjR2V0MVNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShvYmosICJmb28iLCBkZXNjR2V0MlNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosICJmb28iLCBkZXNjR2V0MVNldDIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmos
ICJmb28iLCBkZXNjR2V0MlNldDIpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzIGIvSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0OWMwMThlZWE3NTA5MzllNWE0ZDY1YmY5YWFlOTY4YjZmM2IxODYKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLWRp
Y3Rpb25hcnkuanMKQEAgLTAsMCArMSwxNyBAQAorY29uc3Qgb2JqID0ge307Citmb3IgKGxldCBp
ID0gMDsgaSA8IDEwMDsgKytpKQorICAgIG9ialsiayIgKyBpXSA9IGk7CisKK2NvbnN0IGRlc2NO
b25Xcml0YWJsZSA9IHt3cml0YWJsZTogZmFsc2V9OworY29uc3QgZGVzY05vbkVudW1lcmFibGUg
PSB7ZW51bWVyYWJsZTogZmFsc2V9OworY29uc3QgZGVzY1dyaXRhYmxlID0ge3dyaXRhYmxlOiB0
cnVlfTsKK2NvbnN0IGRlc2NFbnVtZXJhYmxlID0ge2VudW1lcmFibGU6IHRydWV9OworCitmb3Ig
KGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgY29uc3Qga2V5ID0gImsiICsgKGkgJSAx
MDApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY05vbldyaXRhYmxl
KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NOb25FbnVtZXJhYmxl
KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NXcml0YWJsZSk7Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjRW51bWVyYWJsZSk7CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7dmFsdWU6IGl9KTsKK30KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJkNjM2MDRlMmM3N2JlMGQyNTc1MzBkN2ZlZDg1OGI3ZDUwYmVjMTgKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLmpz
CkBAIC0wLDAgKzEsMTMgQEAKK2NvbnN0IG9iaiA9IHthOiAwLCBiOiAxLCBmb286IDIsIGM6IDMs
IGQ6IDR9OworY29uc3QgZGVzY05vbldyaXRhYmxlID0ge3dyaXRhYmxlOiBmYWxzZX07Citjb25z
dCBkZXNjTm9uRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiBmYWxzZX07Citjb25zdCBkZXNjV3Jp
dGFibGUgPSB7d3JpdGFibGU6IHRydWV9OworY29uc3QgZGVzY0VudW1lcmFibGUgPSB7ZW51bWVy
YWJsZTogdHJ1ZX07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY05vbldyaXRhYmxlKTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY05vbkVudW1lcmFibGUpOworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjV3JpdGFibGUpOworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjRW51bWVyYWJsZSk7CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIHt2YWx1ZTogaX0pOworfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcyBiL0pTVGVzdHMv
c3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1lcmFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhmOWY4
MTcyMGMxY2JjZmJhZTAyMzllZjJmZDViMDI5MmEwYmFmYQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1lcmFibGUuanMKQEAgLTAsMCArMSw2
OSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KCkgeworICAgIGxldCBvID0g
e307CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIG9bImsiICsg
aV0gPSBpOworICAgIHJldHVybiBvOworfQorCitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0
KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAg
ICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyArK2kpCisgICAgICAgIGZvbygpOworICAgIHJldHVy
biBmb28oKTsKK30KKworZnVuY3Rpb24gdGVzdChwcm90bykgeworICAgIHByb3RvLmZvbyA9IDE7
CisgICAgcHJvdG8uYmFyID0gMjsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJi
YXIiLCB7ZW51bWVyYWJsZTogZmFsc2V9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNy
ZWF0ZShwcm90byk7CisKKyAgICBmdW5jdGlvbiBpc0Zvb0VudW1lcmFibGUob2JqKSB7CisgICAg
ICAgIGZvciAobGV0IGtleSBpbiBvYmopIHsKKyAgICAgICAgICAgIGlmIChrZXkgPT09ICJmb28i
KSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgZnVuY3Rpb24gaXNCYXJFbnVtZXJhYmxlKG9iaikgeworICAgICAgICBmb3IgKGxldCBr
ZXkgaW4gb2JqKSB7CisgICAgICAgICAgICBpZiAoa2V5ID09PSAiYmFyIikgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG5vSW5saW5l
KGlzRm9vRW51bWVyYWJsZSk7CisgICAgbm9JbmxpbmUoaXNCYXJFbnVtZXJhYmxlKTsKKworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoaXNGb29F
bnVtZXJhYmxlKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzRm9vRW51bWVyYWJs
ZShwcm90byksIHRydWUpOworICAgICAgICBzaG91bGRCZShpc0JhckVudW1lcmFibGUoY2hpbGQp
LCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKGlzQmFyRW51bWVyYWJsZShwcm90byksIGZhbHNl
KTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJmb28iLCB7ZW51
bWVyYWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRCZShpc0Zvb0VudW1lcmFibGUoY2hpbGQpLCBm
YWxzZSk7CisgICAgc2hvdWxkQmUoaXNGb29FbnVtZXJhYmxlKHByb3RvKSwgZmFsc2UpOworCisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiYmFyIiwge2VudW1lcmFibGU6IHRydWV9
KTsKKyAgICBzaG91bGRCZShpc0JhckVudW1lcmFibGUoY2hpbGQpLCB0cnVlKTsKKyAgICBzaG91
bGRCZShpc0JhckVudW1lcmFibGUocHJvdG8pLCB0cnVlKTsKK30KKwordGVzdCh7fSk7Cit0ZXN0
KG1ha2VEaWN0aW9uYXJ5KCkpOwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCkpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZWM1YWI3YmQ4MGQx
YzM3OTkyZDE1MTNjOGEyNWU2NGNlODZkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanMKQEAgLTAsMCArMSw3MCBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KCkgeworICAgIGxldCBvID0ge307CisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIG9bImsiICsgaV0gPSBpOworICAgIHJl
dHVybiBvOworfQorCitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0
aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvcigp
IHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDE1OyArK2kpCisgICAgICAgIGZvbygpOworICAgIHJldHVybiBmb28oKTsKK30KKwor
ZnVuY3Rpb24gdGVzdChwcm90bykgeworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHByb3Rv
LCB7CisgICAgICAgIGZvbzogeworICAgICAgICAgICAgZ2V0OiAoKSA9PiAxLAorICAgICAgICAg
ICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgICAgICB9LAorICAgICAgICBiYXI6IHsKKyAgICAg
ICAgICAgIGdldDogKCkgPT4gMiwKKyAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAg
ICAgICAgfSwKKyAgICB9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90
byk7CisKKyAgICBmdW5jdGlvbiBnZXRGb28ob2JqKSB7CisgICAgICAgIHJldHVybiBvYmouZm9v
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldEJhcihvYmopIHsKKyAgICAgICAgcmV0dXJuIG9i
ai5iYXI7CisgICAgfQorCisgICAgbm9JbmxpbmUoZ2V0Rm9vKTsKKyAgICBub0lubGluZShnZXRC
YXIpOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBzaG91
bGRCZShnZXRGb28oY2hpbGQpLCAxKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0Rm9vKHByb3RvKSwg
MSk7CisgICAgICAgIHNob3VsZEJlKGdldEJhcihjaGlsZCksIDIpOworICAgICAgICBzaG91bGRC
ZShnZXRCYXIocHJvdG8pLCAyKTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
cHJvdG8sICJmb28iLCB7Z2V0KCkge319KTsKKyAgICBzaG91bGRCZShnZXRGb28oY2hpbGQpLCB1
bmRlZmluZWQpOworICAgIHNob3VsZEJlKGdldEZvbyhwcm90byksIHVuZGVmaW5lZCk7CisKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJiYXIiLCB7Z2V0OiB1bmRlZmluZWR9KTsK
KyAgICBzaG91bGRCZShnZXRCYXIoY2hpbGQpLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJlKGdl
dEJhcihwcm90byksIHVuZGVmaW5lZCk7Cit9CisKK3Rlc3Qoe30pOwordGVzdChtYWtlRGljdGlv
bmFyeSgpKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXNldC5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVm
aW5lLXByb3BlcnR5LXNldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWZjNWU4YzBiZTc3ZGQyN2E4M2ViOTE3
ZThiMWIzMTg4Zjk3NzFmCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZp
bmUtcHJvcGVydHktc2V0LmpzCkBAIC0wLDAgKzEsNzYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBt
YWtlRGljdGlvbmFyeSgpIHsKKyAgICBsZXQgbyA9IHt9OworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwMDsgKytpKQorICAgICAgICBvWyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gbzsKK30K
KworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7
CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsg
KytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QocHJvdG8pIHsKKyAgICBsZXQgZm9vOworICAgIGxldCBiYXI7CisgICAgbGV0IG5leHRWYWx1
ZSA9IDEwOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJvdG8sIHsKKyAgICAgICAg
Zm9vOiB7CisgICAgICAgICAgICBzZXQodmFsdWUpIHsgZm9vID0gdmFsdWU7IH0sCisgICAgICAg
ICAgICBjb25maWd1cmFibGU6IHRydWUsCisgICAgICAgIH0sCisgICAgICAgIGJhcjogeworICAg
ICAgICAgICAgc2V0KHZhbHVlKSB7IGJhciA9IHZhbHVlOyB9LAorICAgICAgICAgICAgY29uZmln
dXJhYmxlOiB0cnVlLAorICAgICAgICB9LAorICAgIH0pOworCisgICAgY29uc3QgY2hpbGQgPSBP
YmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIHNldEZvbyhvYmopIHsKKyAgICAg
ICAgb2JqLmZvbyA9ICsrbmV4dFZhbHVlOworICAgICAgICByZXR1cm4gZm9vID09PSBuZXh0VmFs
dWU7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0QmFyKG9iaikgeworICAgICAgICBvYmouYmFy
ID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiBiYXIgPT09IG5leHRWYWx1ZTsKKyAgICB9
CisKKyAgICBub0lubGluZShzZXRGb28pOworICAgIG5vSW5saW5lKHNldEJhcik7CisKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKHNldEZvbyhj
aGlsZCksIHRydWUpOworICAgICAgICBzaG91bGRCZShzZXRGb28ocHJvdG8pLCB0cnVlKTsKKyAg
ICAgICAgc2hvdWxkQmUoc2V0QmFyKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKHNl
dEJhcihwcm90byksIHRydWUpOworICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShw
cm90bywgImZvbyIsIHtzZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKHNldEZvbyhjaGls
ZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzZXRGb28ocHJvdG8pLCBmYWxzZSk7CisKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJiYXIiLCB7c2V0KCkge319KTsKKyAgICBzaG91
bGRCZShzZXRCYXIoY2hpbGQpLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2V0QmFyKHByb3RvKSwg
ZmFsc2UpOworfQorCit0ZXN0KHt9KTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoKSk7Cit0ZXN0KG1h
a2VQb2x5UHJvdG9PYmplY3QoKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRlZmlu
ZS1wcm9wZXJ0eS12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXZh
bHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDY3YjFjNTdiOWFkMDkwNWE4N2Y0ZWI0MzY4YTZkN2NhZDY2
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS12
YWx1ZS5qcwpAQCAtMCwwICsxLDYyIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25h
cnkoKSB7CisgICAgbGV0IG8gPSB7fTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsr
aSkKKyAgICAgICAgb1siayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIG87Cit9CisKK2Z1bmN0aW9u
IG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBj
bGFzcyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgIHRo
aXMuX2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IG5ldyBDKCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAg
ICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlvbiB0ZXN0KHByb3RvKSB7
CisgICAgcHJvdG8uZm9vID0gMTsKKyAgICBwcm90by5iYXIgPSAyOworCisgICAgY29uc3QgY2hp
bGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIGdldEZvbyhvYmopIHsK
KyAgICAgICAgcmV0dXJuIG9iai5mb287CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0QmFyKG9i
aikgeworICAgICAgICByZXR1cm4gb2JqLmJhcjsKKyAgICB9CisKKyAgICBub0lubGluZShnZXRG
b28pOworICAgIG5vSW5saW5lKGdldEJhcik7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
NDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGdldEZvbyhjaGlsZCksIDEpOworICAgICAgICBz
aG91bGRCZShnZXRGb28ocHJvdG8pLCAxKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0QmFyKGNoaWxk
KSwgMik7CisgICAgICAgIHNob3VsZEJlKGdldEJhcihwcm90byksIDIpOworICAgIH0KKworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHt2YWx1ZTogM30pOworICAgIHNo
b3VsZEJlKGdldEZvbyhjaGlsZCksIDMpOworICAgIHNob3VsZEJlKGdldEZvbyhwcm90byksIDMp
OworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiYmFyIiwge3NldCgpIHt9fSk7
CisgICAgc2hvdWxkQmUoZ2V0QmFyKGNoaWxkKSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShn
ZXRCYXIocHJvdG8pLCB1bmRlZmluZWQpOworfQorCit0ZXN0KHt9KTsKK3Rlc3QobWFrZURpY3Rp
b25hcnkoKSk7Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS13cml0YWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNz
L3JlZGVmaW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNjRmZThhYWM2NjBh
YjdmYjViNTcxZjhjMDhmZWQzNjc2MzZmOWQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS13cml0YWJsZS5qcwpAQCAtMCwwICsxLDkxIEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoKSB7CisgICAgbGV0IG8gPSB7fTsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgb1siayIgKyBpXSA9IGk7Cisg
ICAgcmV0dXJuIG87Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAg
ZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBjbGFzcyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVj
dG9yKCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBDKCk7CisgICAgfQorICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOwor
fQorCitmdW5jdGlvbiB0ZXN0KHByb3RvKSB7CisgICAgcHJvdG8uZm9vID0gMTsKKyAgICBwcm90
by5iYXIgPSAyOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImJhciIsIHt3cml0
YWJsZTogZmFsc2V9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90byk7
CisgICAgbGV0IG5leHRWYWx1ZSA9IDEwOworCisgICAgZnVuY3Rpb24gaXNGb29Xcml0YWJsZVN0
cmljdChvYmopIHsKKyAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICB0cnkgeworICAgICAg
ICAgICAgb2JqLmZvbyA9ICsrbmV4dFZhbHVlOworICAgICAgICB9IGNhdGNoIHsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBpc0Zvb1dyaXRhYmxlKG9iaikgeworICAgICAgICBvYmouZm9vID0g
KytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiBvYmouZm9vID09PSBuZXh0VmFsdWU7CisgICAg
fQorCisgICAgZnVuY3Rpb24gaXNCYXJXcml0YWJsZVN0cmljdChvYmopIHsKKyAgICAgICAgInVz
ZSBzdHJpY3QiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgb2JqLmJhciA9ICsrbmV4dFZh
bHVlOworICAgICAgICB9IGNhdGNoIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpc0Jhcldy
aXRhYmxlKG9iaikgeworICAgICAgICBvYmouYmFyID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJl
dHVybiBvYmouYmFyID09PSBuZXh0VmFsdWU7CisgICAgfQorCisgICAgbm9JbmxpbmUoaXNGb29X
cml0YWJsZVN0cmljdCk7CisgICAgbm9JbmxpbmUoaXNGb29Xcml0YWJsZSk7CisgICAgbm9Jbmxp
bmUoaXNCYXJXcml0YWJsZVN0cmljdCk7CisgICAgbm9JbmxpbmUoaXNCYXJXcml0YWJsZSk7CisK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGlz
Rm9vV3JpdGFibGVTdHJpY3QoY2hpbGQpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoaXNGb29X
cml0YWJsZShwcm90byksIHRydWUpOworICAgICAgICBzaG91bGRCZShpc0JhcldyaXRhYmxlU3Ry
aWN0KGNoaWxkKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShpc0JhcldyaXRhYmxlKHByb3Rv
KSwgZmFsc2UpOworCisgICAgICAgIGRlbGV0ZSBjaGlsZC5mb287CisgICAgICAgIGRlbGV0ZSBj
aGlsZC5iYXI7CisgICAgfQorCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiZm9v
Iiwge3dyaXRhYmxlOiBmYWxzZX0pOworICAgIHNob3VsZEJlKGlzRm9vV3JpdGFibGVTdHJpY3Qo
Y2hpbGQpLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoaXNGb29Xcml0YWJsZShwcm90byksIGZhbHNl
KTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImJhciIsIHt3cml0YWJsZTog
dHJ1ZX0pOworICAgIHNob3VsZEJlKGlzQmFyV3JpdGFibGVTdHJpY3QoY2hpbGQpLCB0cnVlKTsK
KyAgICBzaG91bGRCZShpc0JhcldyaXRhYmxlKHByb3RvKSwgdHJ1ZSk7Cit9CisKK3Rlc3Qoe30p
OwordGVzdChtYWtlRGljdGlvbmFyeSgpKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCAyNjM1OTQxMTM3Nzc4MThhYWNmZGNiNWY3
MzRkZGZiYjRhOTllMzdiLi5jODExYWZjNmVkMzliNGRmMjIwNzVlMTZmZTZhOGIxYTkwZmM0ZDU1
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC05NDksMTcgKzk0OSw4IEBAIHRlc3Qv
YnVpbHQtaW5zL0pTT04vcGFyc2UvcmV2aXZlci1vYmplY3Qtbm9uLWNvbmZpZ3VyYWJsZS1wcm9w
LWNyZWF0ZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrMjLCuywgwqsywrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqsyMsK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVp
bHQtaW5zL09iamVjdC9lbnRyaWVzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVz
dC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5RGVzY3JpcHRvcnMvb3JkZXItYWZ0ZXIt
ZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5kIFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8g
aGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blBy
b3BlcnR5TmFtZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwg
YV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlu
cy9PYmplY3QvZ2V0T3duUHJvcGVydHlTeW1ib2xzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0
eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3lt
Ym9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIp
LCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVd
IGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJworICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9E
ZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLWZ1bmN0aW9uLWFyZ3VtZW50cy5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrbnVsbMK7LCDC
q1tvYmplY3QgQXJndW1lbnRzXcK7KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0
L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLWZ1bmN0aW9uLWNh
bGxlci5qczoKQEAgLTk2OCwxMSArOTU5LDggQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVy
bmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLXJlZ2V4cC1kb2xsYXIKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKreMK7KSB0
byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrwrssIMKreMK7KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMv
b3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBi
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvdmFs
dWVzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50
cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBb
YSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJworICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xlbmd0aCwgYV0gdG8gaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cy4gJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2Es
IGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL2ludm9rZS1yZXNvbHZlLWdldC1lcnJvci1jbG9zZS5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDC
qzHCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCkBAIC0xMDQ1LDkgKzEwMzMsNiBA
QCB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jb25zdHJ1Y3QvdHJhcC1pcy1ub3QtY2FsbGFibGUtcmVh
bG0uanM6CiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9vd25LZXlzL3RyYXAtaXMtdW5kZWZpbmVkLXRh
cmdldC1pcy1wcm94eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2xl
bmd0aCwgZm9vLCAwLCBTeW1ib2woKV0gYW5kIFtTeW1ib2woKSwgbGVuZ3RoLCBmb28sIDBdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFtsZW5ndGgsIGZvbywgMCwgU3ltYm9sKCldIGFuZCBbU3ltYm9sKCksIGxlbmd0
aCwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9S
ZWZsZWN0L293bktleXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3lt
Ym9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5k
IFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVz
dC9idWlsdC1pbnMvUmVnRXhwL3Byb3BlcnR5LWVzY2FwZXMvZ2VuZXJhdGVkL0FscGhhYmV0aWMu
anM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBccHtBbHBoYWJldGljfWAgc2hvdWxkIG1h
dGNoIFUrMDAxQ0ZBIChg4bO6YCknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgXHB7
QWxwaGFiZXRpY31gIHNob3VsZCBtYXRjaCBVKzAwMUNGQSAoYOGzumApJwpAQCAtMzMyNSw5ICsz
MzEwLDYgQEAgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1pbi9pZGVudGlmaWVyLWxldC1h
bGxvd2VkLWFzLWxlZnRoYW5kc2lkZS1leHByZXNzaW8KICAgZGVmYXVsdDogIlN5bnRheEVycm9y
OiBDYW5ub3QgdXNlIHRoZSBrZXl3b3JkICdpbicgYXMgYSBsZXhpY2FsIHZhcmlhYmxlIG5hbWUu
IgogdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1pbi9sZXQtYXJyYXktd2l0aC1uZXdsaW5l
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1pbi9vcmRlci1hZnRlci1k
ZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFti
LCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vb3JkZXIt
ZW51bWVyYWJsZS1zaGFkb3dlZC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgW3AxLCBwMl0gYW5kIFtwMV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW3AxLCBwMl0gYW5kIFtwMV0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399662</attachid>
            <date>2020-05-18 11:57:06 -0700</date>
            <delta_ts>2020-06-17 16:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200518215704.patch</filename>
            <type>text/plain</type>
            <size>52112</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjE4MjMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBj
aGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENoYWtyYUNvcmUueWFtbDoK
KyAgICAgICAgKiBDaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGlu
ZS1qc2M6IFJlbW92ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3Bl
cnR5LWFjY2Vzc29yLWRpY3Rpb25hcnkuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2ht
YXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qczogQWRkZWQuCisgICAgICAgICogbWlj
cm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5qczogQWRkZWQu
CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJhYmxlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktc2V0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAq
IHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS13cml0YWJsZS5qczogQWRkZWQuCisgICAgICAgICog
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayAxMiB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKIDIwMjAtMDUtMTggIFBhdWxvIE1hdG9zICA8cG1hdG9zQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgU2tpcCBzdHJlc3MgdGVzdCBhcnJheS1idWZmZXItdmlldy13YXRjaHBvaW50LWNhbi1iZS1m
aXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcyBvbiBNSVBTCkluZGV4OiBKU1Rlc3RzL0NoYWty
YUNvcmUueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL0NoYWtyYUNvcmUueWFtbAkocmV2aXNp
b24gMjYxODIzKQorKysgSlNUZXN0cy9DaGFrcmFDb3JlLnlhbWwJKHdvcmtpbmcgY29weSkKQEAg
LTE0NzQsNyArMTQ3NCw3IEBACiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9lczUvcmVnZXhTcGFj
ZS5qcwogICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJyZWdleFNw
YWNlLmJhc2VsaW5lIiwgW10KIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9FbnVtZXJhdGlu
Z1dpdGhFUzUuanMKLSAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAi
RW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYyIsIFtdCisgIGNtZDogcnVuQ2hha3JhIDpi
YXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgIkVudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZSIsIFtd
CiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9lczUvSW5zdWZmaWNpZW50QXJndW1lbnRzLmpzCiAg
IGNtZDogcnVuQ2hha3JhIDpiYXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgIkluc3VmZmljaWVudEFy
Z3VtZW50cy5iYXNlbGluZSIsIFtdCiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9lczUvcmVjdXJz
aXZlc2V0dGVyLmpzCkluZGV4OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRp
bmdXaXRoRVM1LmJhc2VsaW5lLWpzYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL0NoYWtyYUNvcmUv
dGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYwkocmV2aXNpb24gMjYxODIz
KQorKysgSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNl
bGluZS1qc2MJKG5vbmV4aXN0ZW50KQpAQCAtMSwzODIgKzAsMCBAQAotVGVzdCAxOiBOb24td3Jp
dGFibGUsIHNpbXBsZSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1k
OiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRp
bmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24K
LWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5h
bWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcg
d3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDog
MgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMg
ZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3Jp
dGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVl
IHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0
dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgK
LWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9m
IGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0
cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6
IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0
aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDI6IE5vbi13cml0YWJsZSwgc2ltcGxlIGRp
Y3Rpb25hcnkgdHlwZSBoYW5kbGVyCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogZHZh
bHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWQ6IDEKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1l
cyBlbnVtZXJhdGlvbgotZDogMQotU2V0dGluZyB2YWx1ZSB0byAyCi1kOiAyCi1TZXR0aW5nIHdy
aXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAy
Ci1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBl
bnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA0Ci1kOiAyCi1TZXR0aW5nIHdyaXRh
YmlsaXR5IG9mIGQgdG8gdHJ1ZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNl
dHRpbmcgdmFsdWUgdG8gNQotZDogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1l
cmF0aW9uCi1kOiA1Ci1TZXR0aW5nIHZhbHVlIHRvIDYKLWQ6IDYKLUNoYW5naW5nIHdyaXRhYmls
aXR5IGR1cmluZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNl
dHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA3
Ci1kOiA2Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcg
d3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA2
Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRv
IHRydWUKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gOQotZDogOQotVGVzdGluZyBnZXRPd25Qcm9w
ZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQot
ZDogOQotU2V0dGluZyB2YWx1ZSB0byAxMAotZDogMTAKLUZyZWV6aW5nIG9iamVjdAotVGVzdGlu
ZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDExCi1kOiAxMAot
VGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGluZyB2
YWx1ZSB0byAxMgotZDogMTAKLQotVGVzdCAzOiBOb24td3JpdGFibGUsIGRpY3Rpb25hcnkgdHlw
ZSBoYW5kbGVyCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogZHZhbHVlCi1TZXR0aW5n
IHZhbHVlIHRvIDEKLWQ6IDEKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlv
bgotZDogMQotU2V0dGluZyB2YWx1ZSB0byAyCi1kOiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9m
IGQgdG8gZmFsc2UKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZh
bHVlIHRvIDMKLWQ6IDIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgot
ZDogMgotU2V0dGluZyB2YWx1ZSB0byA0Ci1kOiAyCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQg
dG8gdHJ1ZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUg
dG8gNQotZDogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiA1
Ci1TZXR0aW5nIHZhbHVlIHRvIDYKLWQ6IDYKLUNoYW5naW5nIHdyaXRhYmlsaXR5IGR1cmluZyBl
bnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFi
aWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA3Ci1kOiA2Ci1UZXN0
aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkg
b2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA2Ci1UZXN0aW5nIGZv
ci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDYK
LVNldHRpbmcgdmFsdWUgdG8gOQotZDogOQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVu
dW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogOQotU2V0dGlu
ZyB2YWx1ZSB0byAxMAotZDogMTAKLUZyZWV6aW5nIG9iamVjdAotVGVzdGluZyBmb3ItaW4gZW51
bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDExCi1kOiAxMAotVGVzdGluZyBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGluZyB2YWx1ZSB0byAxMgot
ZDogMTAKLQotVGVzdCA0OiBBY2Nlc3NvcnMKLURlZmluaW5nIGFjY2Vzc29ycyBmb3IgYgotRGVm
aW5pbmcgYWNjZXNzb3JzIGZvciBmCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTogYVZh
bHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWE6IDEKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2
YWx1ZSB0byAyCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZDogZFZhbHVlCi1TZXR0
aW5nIHZhbHVlIHRvIDMKLWQ6IDMKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA0
Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogZ1ZhbHVlCi1TZXR0aW5nIHZhbHVl
IHRvIDUKLWc6IDUKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTog
MQotU2V0dGluZyB2YWx1ZSB0byA2Ci1hOiA2Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFs
dWUgdG8gNwotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWQ6IDMKLVNldHRpbmcgdmFs
dWUgdG8gOAotZDogOAotZTogZVZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDkKLWU6IDkKLWY6IEdF
VFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAxMAotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIg
Rk9SIGYKLWc6IDUKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWc6IDExCi1EZWZpbmluZyBhY2Nlc3Nv
cnMgZm9yIGQKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiA2Ci1TZXR0aW5nIHZhbHVl
IHRvIDEyCi1hOiAxMgotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDEzCi1TRVRU
RVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVl
IHRvIDE0Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMTEKLVNldHRpbmcgdmFs
dWUgdG8gMTUKLWc6IDE1Ci1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMTYKLVNFVFRFUgot
ZDogR0VUVEVSCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDEy
Ci1TZXR0aW5nIHZhbHVlIHRvIDE3Ci1hOiAxNwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZh
bHVlIHRvIDE4Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogOQotU2V0dGluZyB2
YWx1ZSB0byAxOQotZTogMTkKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAyMAot
U0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDE1Ci1TZXR0aW5nIHZhbHVlIHRvIDIx
Ci1nOiAyMQotZDogR0VUVEVSCi1TZXR0aW5nIHZhbHVlIHRvIDIyCi1TRVRURVIKLWQ6IEdFVFRF
UgotRGVmaW5pbmcgZGF0YSBwcm9wZXJ0eSBkIHdpdGggdmFsdWUgMjMKLVRlc3RpbmcgZm9yLWlu
IGVudW1lcmF0aW9uCi1hOiAxNwotU2V0dGluZyB2YWx1ZSB0byAyNAotYTogMjQKLWI6IEdFVFRF
UiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAyNQotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9S
IGIKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAyNgotU0VUVEVSIEZPUiBmCi1m
OiBHRVRURVIgRk9SIGYKLWc6IDIxCi1TZXR0aW5nIHZhbHVlIHRvIDI3Ci1nOiAyNwotZDogMjMK
LVNldHRpbmcgdmFsdWUgdG8gMjgKLWQ6IDI4Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMg
ZW51bWVyYXRpb24KLWE6IDI0Ci1TZXR0aW5nIHZhbHVlIHRvIDI5Ci1hOiAyOQotYjogR0VUVEVS
IEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDMwCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1Ig
YgotZTogMTkKLVNldHRpbmcgdmFsdWUgdG8gMzEKLWU6IDMxCi1mOiBHRVRURVIgRk9SIGYKLVNl
dHRpbmcgdmFsdWUgdG8gMzIKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAyNwot
U2V0dGluZyB2YWx1ZSB0byAzMwotZzogMzMKLWQ6IDI4Ci1TZXR0aW5nIHZhbHVlIHRvIDM0Ci1k
OiAzNAotRGVmaW5pbmcgYWNjZXNzb3IgcHJvcGVydHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTogMjkKLVNldHRpbmcgdmFsdWUgdG8gMzUKLWE6
IDM1Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMzYKLVNFVFRFUiBGT1IgYgot
YjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMzcKLVNF
VFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAzMwotU2V0dGluZyB2YWx1ZSB0byAzOAot
ZzogMzgKLURlZmluaW5nIGFjY2Vzc29ycyBmb3IgZAotZDogR0VUVEVSCi1TZXR0aW5nIHZhbHVl
IHRvIDM5Ci1TRVRURVIKLWQ6IEdFVFRFUgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVu
dW1lcmF0aW9uCi1hOiAzNQotU2V0dGluZyB2YWx1ZSB0byA0MAotYTogNDAKLWI6IEdFVFRFUiBG
T1IgYgotU2V0dGluZyB2YWx1ZSB0byA0MQotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIK
LWU6IDMxCi1TZXR0aW5nIHZhbHVlIHRvIDQyCi1lOiA0MgotZjogR0VUVEVSIEZPUiBmCi1TZXR0
aW5nIHZhbHVlIHRvIDQzCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMzgKLVNl
dHRpbmcgdmFsdWUgdG8gNDQKLWc6IDQ0Ci1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gNDUK
LVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGR1cmluZyBlbnVtZXJh
dGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDQwCi1TZXR0aW5nIHZhbHVl
IHRvIDQ3Ci1hOiA0NwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQ5Ci1TRVRU
RVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVl
IHRvIDUxCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogNDQKLVNldHRpbmcgdmFs
dWUgdG8gNTMKLWc6IDUzCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGQgd2l0aCB2YWx1ZSA1NAot
ZDogNTQKLVNldHRpbmcgdmFsdWUgdG8gNTUKLWQ6IDU1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5
TmFtZXMgZW51bWVyYXRpb24KLWE6IDQ3Ci1TZXR0aW5nIHZhbHVlIHRvIDU3Ci1hOiA1NwotYjog
R0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDU5Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRF
UiBGT1IgYgotZTogNDIKLVNldHRpbmcgdmFsdWUgdG8gNjEKLWU6IDYxCi1mOiBHRVRURVIgRk9S
IGYKLVNldHRpbmcgdmFsdWUgdG8gNjMKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1n
OiA1MwotU2V0dGluZyB2YWx1ZSB0byA2NQotZzogNjUKLWQ6IDU1Ci1TZXR0aW5nIHZhbHVlIHRv
IDY3Ci1kOiA2NwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVy
dHktYWNjZXNzb3ItZGljdGlvbmFyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5LmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vz
c29yLWRpY3Rpb25hcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorY29uc3Qg
b2JqID0ge307Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIG9ialsiayIgKyBp
XSA9IGk7CisKK2Z1bmN0aW9uIGdldHRlcjEoKSB7fQorZnVuY3Rpb24gZ2V0dGVyMigpIHt9Citm
dW5jdGlvbiBzZXR0ZXIxKHYpIHt9CitmdW5jdGlvbiBzZXR0ZXIyKHYpIHt9CisKK2NvbnN0IGRl
c2NHZXQxID0ge2dldDogZ2V0dGVyMSwgY29uZmlndXJhYmxlOiB0cnVlfTsKK2NvbnN0IGRlc2NH
ZXQxU2V0MSA9IHtnZXQ6IGdldHRlcjEsIHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MlNl
dDEgPSB7Z2V0OiBnZXR0ZXIyLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dldDFTZXQyID0g
e2dldDogZ2V0dGVyMSwgc2V0OiBzZXR0ZXIyfTsKK2NvbnN0IGRlc2NHZXQyU2V0MiA9IHtnZXQ6
IGdldHRlcjIsIHNldDogc2V0dGVyMn07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKKyAgICBjb25zdCBrZXkgPSAiayIgKyAoaSAlIDEwMCk7CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iaiwga2V5LCBkZXNjR2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
aiwga2V5LCBkZXNjR2V0MVNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtl
eSwgZGVzY0dldDJTZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRl
c2NHZXQxU2V0Mik7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjR2V0
MlNldDIpOworfQpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVy
dHktYWNjZXNzb3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVk
ZWZpbmUtcHJvcGVydHktYWNjZXNzb3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktYWNjZXNzb3IuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gZ2V0dGVyMSgpIHt9CitmdW5jdGlvbiBnZXR0ZXIy
KCkge30KK2Z1bmN0aW9uIHNldHRlcjEodikge30KK2Z1bmN0aW9uIHNldHRlcjIodikge30KKwor
Y29uc3Qgb2JqID0ge2E6IDAsIGI6IDEsIGdldCBmb28oKSB7fSwgYzogMywgZDogNH07Citjb25z
dCBkZXNjR2V0MSA9IHtnZXQ6IGdldHRlcjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX07Citjb25zdCBk
ZXNjR2V0MVNldDEgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dl
dDJTZXQxID0ge2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQxU2V0
MiA9IHtnZXQ6IGdldHRlcjEsIHNldDogc2V0dGVyMn07Citjb25zdCBkZXNjR2V0MlNldDIgPSB7
Z2V0OiBnZXR0ZXIyLCBzZXQ6IHNldHRlcjJ9OworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsg
KytpKSB7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NHZXQxKTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDFTZXQxKTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDJTZXQxKTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDFTZXQyKTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDJTZXQyKTsKK30KSW5kZXg6IEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0
eS1kYXRhLWRpY3Rpb25hcnkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTcgQEAKK2NvbnN0IG9iaiA9IHt9OworZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDA7ICsraSkKKyAgICBvYmpbImsiICsgaV0gPSBpOworCitjb25zdCBkZXNjTm9uV3JpdGFibGUg
PSB7d3JpdGFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NOb25FbnVtZXJhYmxlID0ge2VudW1lcmFi
bGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NXcml0YWJsZSA9IHt3cml0YWJsZTogdHJ1ZX07Citjb25z
dCBkZXNjRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiB0cnVlfTsKKworZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIGNvbnN0IGtleSA9ICJrIiArIChpICUgMTAwKTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NOb25Xcml0YWJsZSk7CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjTm9uRW51bWVyYWJsZSk7CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjV3JpdGFibGUpOworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0VudW1lcmFibGUpOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosIGtleSwge3ZhbHVlOiBpfSk7Cit9CkluZGV4OiBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMJKG5vbmV4aXN0ZW50
KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitjb25zdCBvYmogPSB7YTogMCwgYjogMSwg
Zm9vOiAyLCBjOiAzLCBkOiA0fTsKK2NvbnN0IGRlc2NOb25Xcml0YWJsZSA9IHt3cml0YWJsZTog
ZmFsc2V9OworY29uc3QgZGVzY05vbkVudW1lcmFibGUgPSB7ZW51bWVyYWJsZTogZmFsc2V9Owor
Y29uc3QgZGVzY1dyaXRhYmxlID0ge3dyaXRhYmxlOiB0cnVlfTsKK2NvbnN0IGRlc2NFbnVtZXJh
YmxlID0ge2VudW1lcmFibGU6IHRydWV9OworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytp
KSB7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NOb25Xcml0YWJs
ZSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NOb25FbnVtZXJh
YmxlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY1dyaXRhYmxl
KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0VudW1lcmFibGUp
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7dmFsdWU6IGl9KTsKK30K
SW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1lcmFibGUuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5q
cwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVt
ZXJhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzMgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiBtYWtlRGljdGlvbmFyeShkaWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAw
OyArK2kpCisgICAgICAgIGRpY3RbImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQor
CitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsK
KyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyAr
K2kpCisgICAgICAgIGZvbygpOworICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVz
dChwcm90bywga2V5MSwga2V5MikgeworICAgIHByb3RvW2tleTFdID0gMTsKKyAgICBwcm90b1tr
ZXkyXSA9IDI7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7ZW51bWVy
YWJsZTogZmFsc2V9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90byk7
CisKKyAgICBmdW5jdGlvbiBpc0tleTFFbnVtZXJhYmxlKG9iaikgeworICAgICAgICBmb3IgKGxl
dCBrZXkgaW4gb2JqKSB7CisgICAgICAgICAgICBpZiAoa2V5ID09IGtleTEpIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBpc0tleTJFbnVtZXJhYmxlKG9iaikgeworICAgICAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7
CisgICAgICAgICAgICBpZiAoa2V5ID09IGtleTIpIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBub0lubGluZShpc0tleTFFbnVtZXJh
YmxlKTsKKyAgICBub0lubGluZShpc0tleTJFbnVtZXJhYmxlKTsKKworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMjA7ICsraSkgeworICAgICAgICBzaG91bGRCZShpc0tleTFFbnVtZXJhYmxlKGNo
aWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MUVudW1lcmFibGUocHJvdG8pLCB0
cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoaXNLZXkyRW51bWVyYWJsZShjaGlsZCksIGZhbHNlKTsK
KyAgICAgICAgc2hvdWxkQmUoaXNLZXkyRW51bWVyYWJsZShwcm90byksIGZhbHNlKTsKKyAgICB9
CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHtlbnVtZXJhYmxlOiBm
YWxzZX0pOworICAgIHNob3VsZEJlKGlzS2V5MUVudW1lcmFibGUoY2hpbGQpLCBmYWxzZSk7Cisg
ICAgc2hvdWxkQmUoaXNLZXkxRW51bWVyYWJsZShwcm90byksIGZhbHNlKTsKKworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge2VudW1lcmFibGU6IHRydWV9KTsKKyAgICBz
aG91bGRCZShpc0tleTJFbnVtZXJhYmxlKGNoaWxkKSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoaXNL
ZXkyRW51bWVyYWJsZShwcm90byksIHRydWUpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0
ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGlj
dGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0
ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCks
ICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CkluZGV4
OiBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzCShub25leGlzdGVudCkKKysr
IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWdldC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDczIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFk
IHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkg
eworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0WyJrIiAr
IGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09i
amVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgeworICAgICAg
ICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9
CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsKKyAgICBy
ZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHsKKyAgICAgICAgZ2V0OiAoKSA9
PiAxLAorICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCisgICAgfSk7CisKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHsKKyAgICAgICAgZ2V0OiAoKSA9PiAyLAorICAg
ICAgICBjb25maWd1cmFibGU6IHRydWUsCisgICAgfSk7CisKKyAgICBjb25zdCBjaGlsZCA9IE9i
amVjdC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gZ2V0S2V5MShvYmopIHsKKyAgICAg
ICAgcmV0dXJuIG9ialtrZXkxXTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRLZXkyKG9iaikg
eworICAgICAgICByZXR1cm4gb2JqW2tleTJdOworICAgIH0KKworICAgIG5vSW5saW5lKGdldEtl
eTEpOworICAgIG5vSW5saW5lKGdldEtleTIpOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkgeworICAgICAgICBzaG91bGRCZShnZXRLZXkxKGNoaWxkKSwgMSk7CisgICAgICAg
IHNob3VsZEJlKGdldEtleTEocHJvdG8pLCAxKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5Mihj
aGlsZCksIDIpOworICAgICAgICBzaG91bGRCZShnZXRLZXkyKHByb3RvKSwgMik7CisgICAgfQor
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7Z2V0KCkge319KTsKKyAg
ICBzaG91bGRCZShnZXRLZXkxKGNoaWxkKSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShnZXRL
ZXkxKHByb3RvKSwgdW5kZWZpbmVkKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90
bywga2V5Miwge2dldDogdW5kZWZpbmVkfSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MihjaGlsZCks
IHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIHVuZGVmaW5lZCk7Cit9
CisKK3Rlc3Qoe30sIDAsICJiYXIiKTsKK3Rlc3QoT2JqZWN0LmNyZWF0ZShudWxsKSwgIl9fcHJv
dG9fXyIsIDEpOworCit0ZXN0KG1ha2VEaWN0aW9uYXJ5KHt9KSwgImZvbyIsIDIpOwordGVzdCht
YWtlRGljdGlvbmFyeShPYmplY3QuY3JlYXRlKG51bGwpKSwgMywgIl9fcHJvdG9fXyIpOworCit0
ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgImZvbyIsICJiYXIiKTsKK3Rlc3QobWFrZVBvbHlQ
cm90b09iamVjdCgpLCA0LCA1KTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3Bl
cnR5LXNldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0
eS1zZXQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVy
dHktc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiBtYWtlRGljdGlvbmFyeShkaWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAw
OyArK2kpCisgICAgICAgIGRpY3RbImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQor
CitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsK
KyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyAr
K2kpCisgICAgICAgIGZvbygpOworICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVz
dChwcm90bywga2V5MSwga2V5MikgeworICAgIGxldCBuZXh0VmFsdWUgPSAxMDsKKworICAgIGxl
dCB2YWx1ZTE7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7CisgICAg
ICAgIHNldCh2YWwpIHsgdmFsdWUxID0gdmFsOyB9LAorICAgICAgICBjb25maWd1cmFibGU6IHRy
dWUsCisgICAgfSk7CisKKyAgICBsZXQgdmFsdWUyOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShwcm90bywga2V5MiwgeworICAgICAgICBzZXQodmFsKSB7IHZhbHVlMiA9IHZhbDsgfSwKKyAg
ICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgY29uc3QgY2hpbGQgPSBP
YmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIHNldEtleTEob2JqKSB7CisgICAg
ICAgIG9ialtrZXkxXSA9ICsrbmV4dFZhbHVlOworICAgICAgICByZXR1cm4gdmFsdWUxID09PSBu
ZXh0VmFsdWU7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0S2V5MihvYmopIHsKKyAgICAgICAg
b2JqW2tleTJdID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiB2YWx1ZTIgPT09IG5leHRW
YWx1ZTsKKyAgICB9CisKKyAgICBub0lubGluZShzZXRLZXkxKTsKKyAgICBub0lubGluZShzZXRL
ZXkyKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hv
dWxkQmUoc2V0S2V5MShjaGlsZCksIHRydWUpOworICAgICAgICBzaG91bGRCZShzZXRLZXkxKHBy
b3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKHNldEtleTIoY2hpbGQpLCB0cnVlKTsKKyAg
ICAgICAgc2hvdWxkQmUoc2V0S2V5Mihwcm90byksIHRydWUpOworICAgIH0KKworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge3NldDogdW5kZWZpbmVkfSk7CisgICAgc2hv
dWxkQmUoc2V0S2V5MShjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzZXRLZXkxKHByb3Rv
KSwgZmFsc2UpOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7c2V0
KCkge319KTsKKyAgICBzaG91bGRCZShzZXRLZXkyKGNoaWxkKSwgZmFsc2UpOworICAgIHNob3Vs
ZEJlKHNldEtleTIocHJvdG8pLCBmYWxzZSk7Cit9CisKK3Rlc3Qoe30sIDAsICJiYXIiKTsKK3Rl
c3QoT2JqZWN0LmNyZWF0ZShudWxsKSwgIl9fcHJvdG9fXyIsIDEpOworCit0ZXN0KG1ha2VEaWN0
aW9uYXJ5KHt9KSwgImZvbyIsIDIpOwordGVzdChtYWtlRGljdGlvbmFyeShPYmplY3QuY3JlYXRl
KG51bGwpKSwgMywgIl9fcHJvdG9fXyIpOworCit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwg
ImZvbyIsICJiYXIiKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCA0LCA1KTsKSW5kZXg6
IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXZhbHVlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXZhbHVlLmpzCShub25leGlzdGVudCkK
KysrIEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXZhbHVlLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBtYWtlRGljdGlvbmFyeShk
aWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIGRpY3Rb
ImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQorCitmdW5jdGlvbiBtYWtlUG9seVBy
b3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7Cisg
ICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVsZCA9
IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygpOwor
ICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyArK2kpCisgICAgICAgIGZvbygpOwor
ICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVzdChwcm90bywga2V5MSwga2V5Mikg
eworICAgIHByb3RvW2tleTFdID0gMTsKKyAgICBwcm90b1trZXkyXSA9IDI7CisKKyAgICBjb25z
dCBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gZ2V0S2V5MShv
YmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkxXTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBn
ZXRLZXkyKG9iaikgeworICAgICAgICByZXR1cm4gb2JqW2tleTJdOworICAgIH0KKworICAgIG5v
SW5saW5lKGdldEtleTEpOworICAgIG5vSW5saW5lKGdldEtleTIpOworCisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBzaG91bGRCZShnZXRLZXkxKGNoaWxkKSwg
MSk7CisgICAgICAgIHNob3VsZEJlKGdldEtleTEocHJvdG8pLCAxKTsKKyAgICAgICAgc2hvdWxk
QmUoZ2V0S2V5MihjaGlsZCksIDIpOworICAgICAgICBzaG91bGRCZShnZXRLZXkyKHByb3RvKSwg
Mik7CisgICAgfQorCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7dmFs
dWU6IDN9KTsKKyAgICBzaG91bGRCZShnZXRLZXkxKGNoaWxkKSwgMyk7CisgICAgc2hvdWxkQmUo
Z2V0S2V5MShwcm90byksIDMpOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBr
ZXkyLCB7c2V0KCkge319KTsKKyAgICBzaG91bGRCZShnZXRLZXkyKGNoaWxkKSwgdW5kZWZpbmVk
KTsKKyAgICBzaG91bGRCZShnZXRLZXkyKHByb3RvKSwgdW5kZWZpbmVkKTsKK30KKwordGVzdCh7
fSwgMCwgImJhciIpOwordGVzdChPYmplY3QuY3JlYXRlKG51bGwpLCAiX19wcm90b19fIiwgMSk7
CisKK3Rlc3QobWFrZURpY3Rpb25hcnkoe30pLCAiZm9vIiwgMik7Cit0ZXN0KG1ha2VEaWN0aW9u
YXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpLCAzLCAiX19wcm90b19fIik7CisKK3Rlc3QobWFrZVBv
bHlQcm90b09iamVjdCgpLCAiZm9vIiwgImJhciIpOwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0
KCksIDQsIDUpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktd3JpdGFi
bGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktd3Jp
dGFibGUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVy
dHktd3JpdGFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NSBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KGRpY3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDA7ICsraSkKKyAgICAgICAgZGljdFsiayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7
Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9v
KCkgeworICAgICAgICBjbGFzcyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAg
ICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG5ldyBDKCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
MTU7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlv
biB0ZXN0KHByb3RvLCBrZXkxLCBrZXkyKSB7CisgICAgcHJvdG9ba2V5MV0gPSAxOworICAgIHBy
b3RvW2tleTJdID0gMjsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHt3
cml0YWJsZTogZmFsc2V9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90
byk7CisgICAgbGV0IG5leHRWYWx1ZSA9IDEwOworCisgICAgZnVuY3Rpb24gaXNLZXkxV3JpdGFi
bGVTdHJpY3Qob2JqKSB7CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIG9ialtrZXkxXSA9ICsrbmV4dFZhbHVlOworICAgICAgICB9IGNhdGNoIHsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpc0tleTFXcml0YWJsZShvYmopIHsKKyAgICAgICAgb2Jq
W2tleTFdID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiBvYmpba2V5MV0gPT09IG5leHRW
YWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpc0tleTJXcml0YWJsZVN0cmljdChvYmopIHsK
KyAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgb2JqW2tl
eTJdID0gKytuZXh0VmFsdWU7CisgICAgICAgIH0gY2F0Y2ggeworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGlzS2V5MldyaXRhYmxlKG9iaikgeworICAgICAgICBvYmpba2V5Ml0gPSArK25leHRW
YWx1ZTsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkyXSA9PT0gbmV4dFZhbHVlOworICAgIH0KKwor
ICAgIG5vSW5saW5lKGlzS2V5MVdyaXRhYmxlU3RyaWN0KTsKKyAgICBub0lubGluZShpc0tleTFX
cml0YWJsZSk7CisgICAgbm9JbmxpbmUoaXNLZXkyV3JpdGFibGVTdHJpY3QpOworICAgIG5vSW5s
aW5lKGlzS2V5MldyaXRhYmxlKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKKyAgICAgICAgc2hvdWxkQmUoaXNLZXkxV3JpdGFibGVTdHJpY3QoY2hpbGQpLCB0cnVlKTsK
KyAgICAgICAgc2hvdWxkQmUoaXNLZXkxV3JpdGFibGUocHJvdG8pLCB0cnVlKTsKKyAgICAgICAg
c2hvdWxkQmUoaXNLZXkyV3JpdGFibGVTdHJpY3QoY2hpbGQpLCBmYWxzZSk7CisgICAgICAgIHNo
b3VsZEJlKGlzS2V5MldyaXRhYmxlKHByb3RvKSwgZmFsc2UpOworCisgICAgICAgIGRlbGV0ZSBj
aGlsZFtrZXkxXTsKKyAgICAgICAgZGVsZXRlIGNoaWxkW2tleTJdOworICAgIH0KKworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge3dyaXRhYmxlOiBmYWxzZX0pOworICAg
IHNob3VsZEJlKGlzS2V5MVdyaXRhYmxlU3RyaWN0KGNoaWxkKSwgZmFsc2UpOworICAgIHNob3Vs
ZEJlKGlzS2V5MVdyaXRhYmxlKHByb3RvKSwgZmFsc2UpOworCisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHByb3RvLCBrZXkyLCB7d3JpdGFibGU6IHRydWV9KTsKKyAgICBzaG91bGRCZShpc0tl
eTJXcml0YWJsZVN0cmljdChjaGlsZCksIHRydWUpOworICAgIHNob3VsZEJlKGlzS2V5MldyaXRh
YmxlKHByb3RvKSwgdHJ1ZSk7Cit9CisKK3Rlc3Qoe30sIDAsICJiYXIiKTsKK3Rlc3QoT2JqZWN0
LmNyZWF0ZShudWxsKSwgIl9fcHJvdG9fXyIsIDEpOworCit0ZXN0KG1ha2VEaWN0aW9uYXJ5KHt9
KSwgImZvbyIsIDIpOwordGVzdChtYWtlRGljdGlvbmFyeShPYmplY3QuY3JlYXRlKG51bGwpKSwg
MywgIl9fcHJvdG9fXyIpOworCit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgImZvbyIsICJi
YXIiKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCA0LCA1KTsKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI2MTgyMykKKysrIEpTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtOTczLDIzICs5NzMsMTQgQEAgdGVz
dC9idWlsdC1pbnMvT2JqZWN0L2RlZmluZVByb3BlcnRpZXMvcAogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgp
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvZW50cmll
cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMu
ICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2Es
IGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVd
IGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1p
bnMvT2JqZWN0L2ZyZWV6ZS9wcm94eS1uby1vd25rZXlzLXJldHVybmVkLWtleXMtb3JkZXIuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBh
bmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQg
WzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVp
bHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL29yZGVyLWFmdGVyLWRlZmlu
ZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJv
bChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JzL3Byb3h5LW5vLW93bmtleXMtcmV0dXJuZWQta2V5cy1vcmRlci5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBb
MCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBbMCwg
Zm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1p
bnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBi
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
LiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlTeW1ib2xzL29yZGVyLWFm
dGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYild
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRl
cm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1hcmd1bWVu
dHMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq251
bGzCuywgwqtbb2JqZWN0IEFyZ3VtZW50c13CuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5j
dGlvbi1jYWxsZXIuanM6CkBAIC0xMDA0LDE0ICs5OTUsMTEgQEAgdGVzdC9idWlsdC1pbnMvT2Jq
ZWN0L2lzU2VhbGVkL3Byb3h5LW5vLQogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
MCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZp
bmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBh
XSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxl
bmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3Ro
LCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qv
c2VhbC9wcm94eS1uby1vd25rZXlzLXJldHVybmVkLWtleXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywg
U3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3lt
Ym9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVj
dC92YWx1ZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0g
YW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItY2xvc2UuanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRy
dWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsw
wrssIMKrMcK7KSB0byBiZSB0cnVlJwpAQCAtMTA5Niw5ICsxMDg0LDYgQEAgdGVzdC9idWlsdC1p
bnMvUHJveHkvY29uc3RydWN0L3RyYXAtaXMtbgogdGVzdC9idWlsdC1pbnMvUHJveHkvb3duS2V5
cy90cmFwLWlzLXVuZGVmaW5lZC10YXJnZXQtaXMtcHJveHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFtsZW5ndGgsIGZvbywgMCwgU3ltYm9sKCldIGFuZCBbU3ltYm9s
KCksIGxlbmd0aCwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgp
XSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50
cy4gJwotdGVzdC9idWlsdC1pbnMvUmVmbGVjdC9vd25LZXlzL29yZGVyLWFmdGVyLWRlZmluZS1w
cm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChi
KSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3lt
Ym9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm9wZXJ0eS1lc2NhcGVz
L2dlbmVyYXRlZC9BbHBoYWJldGljLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgXHB7
QWxwaGFiZXRpY31gIHNob3VsZCBtYXRjaCBVKzAwMUNGQSAoYOGzumApJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogYFxwe0FscGhhYmV0aWN9YCBzaG91bGQgbWF0Y2ggVSswMDFDRkEg
KGDhs7pgKScKQEAgLTMzNjMsOSArMzM0OCw2IEBAIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9m
b3ItaW4vaWRlbnRpZmkKICAgZGVmYXVsdDogIlN5bnRheEVycm9yOiBDYW5ub3QgdXNlIHRoZSBr
ZXl3b3JkICdpbicgYXMgYSBsZXhpY2FsIHZhcmlhYmxlIG5hbWUuIgogdGVzdC9sYW5ndWFnZS9z
dGF0ZW1lbnRzL2Zvci1pbi9sZXQtYXJyYXktd2l0aC1uZXdsaW5lLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9s
YW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1pbi9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
IHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vb3JkZXItZW51bWVyYWJsZS1zaGFkb3dl
ZC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW3AxLCBwMl0gYW5kIFtw
MV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgW3AxLCBwMl0gYW5kIFtwMV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50
cy4gJwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjE4MjMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMDUtMTggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgorCisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMg
aW5zZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgSlNDIHVzZWQg
dG8gZGVsZXRlICYgcHV0IGJhY2sgYSBub24taW5kZXhlZCBwcm9wZXJ0eSBqdXN0IHRvCisgICAg
ICAgIHVwZGF0ZSBhdHRyaWJ1dGVzLCB3aGljaCB3YXMgbGVzcyBlZmZpY2llbnQgYW5kIGNvcnJ1
cHRlZCBvYnNlcnZhYmxlIHByb3BlcnR5IG9yZGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2g6Cisg
ICAgICAgIDEuIFJld3JpdGVzIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IoKSB0
byBjbG9zZWx5IHJlc2VtYmxlIHRoZSBzcGVjIFsxXS4KKyAgICAgICAgMi4gRHJvcHMgcHJvcGVy
dHkgZGVsZXRpb24sIGlubGluZXMgcHV0RGVzY3JpcHRvcigpLCBhbmQgc2V0cyBuZWNlc3Nhcnkg
U3RydWN0dXJlCisgICAgICAgICAgIGZsYWdzIGluIGF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24o
KS4KKyAgICAgICAgMy4gU2ltcGxpZmllcyB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlw
dG9yKCkgYSBiaXQgYnkgb2J0YWluaW5nIEdldHRlclNldHRlcgorICAgICAgICAgICBpbnN0YW5j
ZSBmcm9tIGN1cnJlbnQgZGVzY3JpcHRvciByYXRoZXIgdGhlbiBjYWxsaW5nIGdldERpcmVjdCgp
LgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsaWducyBwcm9wZXJ0eSBvcmRlciB3aXRoIFY4IGFu
ZCBTcGlkZXJNb25rZXksIGFkdmFuY2luZyBwcm92aWRlZAorICAgICAgICBtaWNyb2JlbmNobWFy
a3MgYnkgNS04NSUsIGVzcGVjaWFsbHkgZm9yIG9iamVjdHMgaW4gZGljdGlvbmFyeSBtb2RlLiBT
aXhTcGVlZCwKKyAgICAgICAgU3VuU3BpZGVyLCBhbmQgQVJFUy02IGFyZSBhbGwgbmV1dHJhbC4K
KworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdmFsaWRhdGVhbmRh
cHBseXByb3BlcnR5ZGVzY3JpcHRvcgorCisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcDoKKyAgICAgICAgKEpTQzo6YXBwZW5kU291cmNlVG9FcnJvcik6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0
eURlc2NyaXB0b3IpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6ZGVmaW5lT3duTm9uSW5kZXhQ
cm9wZXJ0eSk6CisgICAgICAgIChKU0M6OnB1dERlc2NyaXB0b3IpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpw
dXREaXJlY3RJbnRlcm5hbCk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0ZXIg
Y29uc3QpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmg6Cisg
ICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24pOgorCiAyMDIwLTA1LTE3ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbGluayBmaXggZm9y
IG91ciBpbnRlcm5hbCBEZWJ1ZyBidWlsZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAJKHJldmlzaW9uIDI2MTgyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU291cmNlVG9FcnJvcihKU0ds
b2JhbAogICAgICAgICAgICAgc3RvcC0tOwogICAgICAgICBtZXNzYWdlID0gYXBwZW5kZXIobWVz
c2FnZSwgY29kZUJsb2NrLT5zb3VyY2UoKS5wcm92aWRlcigpLT5nZXRSYW5nZShzdGFydCwgc3Rv
cCkudG9TdHJpbmcoKSwgdHlwZSwgRXJyb3JJbnN0YW5jZTo6Rm91bmRBcHByb3hpbWF0ZVNvdXJj
ZSk7CiAgICAgfQotICAgIGV4Y2VwdGlvbi0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5tZXNzYWdlLCBqc1N0cmluZyh2bSwgbWVzc2FnZSkpOworICAgIGV4Y2VwdGlvbi0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBqc1N0cmluZyh2bSwgbWVzc2FnZSks
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShy
ZXZpc2lvbiAyNjE4MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MjgsNDEgKzM1MjgsNiBAQCBib29sIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp
YyBib29sIHB1dERlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIHRhcmdldCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBjb25zdCBQcm9wZXJ0eURl
c2NyaXB0b3ImIG9sZERlc2NyaXB0b3IpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwotICAgIGlmIChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSB8fCBkZXNjcmlw
dG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVy
aWNEZXNjcmlwdG9yKCkgJiYgb2xkRGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7
Ci0gICAgICAgICAgICBKU09iamVjdCogZ2V0dGVyID0gb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVz
ZW50KCkgPyBvbGREZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICAgICAg
ICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBvbGREZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSA/IG9s
ZERlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBudWxscHRyOwotICAgICAgICAgICAgR2V0dGVy
U2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IGdldHRlciwgc2V0dGVyKTsKLSAgICAgICAgICAgIHRhcmdldC0+cHV0RGlyZWN0QWNjZXNzb3Io
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFjY2Vzc29yLCBhdHRyaWJ1dGVzIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9Ci0gICAgICAgIEpTVmFsdWUgbmV3VmFsdWUgPSBqc1VuZGVmaW5lZCgpOwotICAgICAgICBp
ZiAoZGVzY3JpcHRvci52YWx1ZSgpKQotICAgICAgICAgICAgbmV3VmFsdWUgPSBkZXNjcmlwdG9y
LnZhbHVlKCk7Ci0gICAgICAgIGVsc2UgaWYgKG9sZERlc2NyaXB0b3IudmFsdWUoKSkKLSAgICAg
ICAgICAgIG5ld1ZhbHVlID0gb2xkRGVzY3JpcHRvci52YWx1ZSgpOwotICAgICAgICB0YXJnZXQt
PnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSwgYXR0cmlidXRlcyAmIH5Qcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgICAgICBpZiAoYXR0cmlidXRlcyAmIFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSkKLSAgICAgICAgICAgIHRhcmdldC0+c3RydWN0dXJlKHZt
KS0+c2V0Q29udGFpbnNSZWFkT25seVByb3BlcnRpZXMoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIGF0dHJpYnV0ZXMgJj0gflByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsK
LQotICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKQotICAg
ICAgICA/IGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiBvbGREZXNjcmlwdG9yLmdldHRlclBy
ZXNlbnQoKQotICAgICAgICA/IG9sZERlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiBudWxscHRy
OwotICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKQotICAg
ICAgICA/IGRlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBvbGREZXNjcmlwdG9yLnNldHRlclBy
ZXNlbnQoKQotICAgICAgICA/IG9sZERlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBudWxscHRy
OwotICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7Ci0KLSAgICB0YXJnZXQtPnB1dERpcmVjdEFj
Y2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlcyB8
IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJv
b2wgSlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBp
ZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQpA
QCAtMzU3MCw4ICszNTM1LDcgQEAgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChK
U0dsbwogICAgIHJldHVybiBwdXREaXJlY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKIH0KIAotLy8gOS4xLjYuMyBvZiB0aGUgc3BlYwotLy8gaHR0cDovL3d3dy5l
Y21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC9pbmRleC5odG1sI3NlYy12YWxpZGF0
ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9wZXJ0eWRlc2NyaXB0b3IKIGJvb2wgdmFsaWRhdGVBbmRB
cHBseVByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBib29sIGlzRXh0ZW5zaWJs
ZSwKICAgICBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgaXNDdXJy
ZW50RGVmaW5lZCwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBjdXJyZW50LCBib29sIHRocm93
RXhjZXB0aW9uKQogewpAQCAtMzU4NSwxMzMgKzM1NDksODggQEAgYm9vbCB2YWxpZGF0ZUFuZEFw
cGx5UHJvcGVydHlEZXNjcmlwdG9yKAogICAgICAgICAvLyBTdGVwIDIuYQogICAgICAgICBpZiAo
IWlzRXh0ZW5zaWJsZSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIE5vbkV4dGVuc2libGVPYmplY3RQcm9wZXJ0eURlZmlu
ZUVycm9yKTsKLSAgICAgICAgaWYgKCFvYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgLy8gU3RlcCAyLmMvZAotICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3Igb2xkRGVz
Y3JpcHRvcjsKLSAgICAgICAgb2xkRGVzY3JpcHRvci5zZXRWYWx1ZShqc1VuZGVmaW5lZCgpKTsK
LSAgICAgICAgLy8gRklYTUU6IHNwZWMgc2F5cyB0byBhbHdheXMgcmV0dXJuIHRydWUgaGVyZS4K
LSAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCksIG9sZERlc2NyaXB0
b3IpOworCisgICAgICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9y
LmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBhdHRy
aWJ1dGVzID0gKGRlc2NyaXB0b3IuYXR0cmlidXRlcygpIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFj
Y2Vzc29yKSAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7CisgICAgICAgICAgICAgICAg
b2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvci5zbG93R2V0dGVyU2V0dGVyKGdsb2JhbE9iamVjdCksIGF0dHJpYnV0ZXMpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0dl
bmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpOworICAg
ICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlKCkgPyBkZXNjcmlw
dG9yLnZhbHVlKCkgOiBqc1VuZGVmaW5lZCgpOworICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0
RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSAm
IH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIC8vIFN0ZXAgMy4KICAgICBpZiAo
ZGVzY3JpcHRvci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIC8vIFN0ZXAg
NC4KKwogICAgIGJvb2wgaXNFcXVhbCA9IGN1cnJlbnQuZXF1YWxUbyhnbG9iYWxPYmplY3QsIGRl
c2NyaXB0b3IpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICBp
ZiAoaXNFcXVhbCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBTdGVwIDUuCi0gICAg
Ly8gRmlsdGVyIG91dCBpbnZhbGlkIGNoYW5nZXMKKyAgICAvLyBTdGVwIDQuCiAgICAgaWYgKCFj
dXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3Vy
YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNvbmZpZ3VyYWJp
bGl0eUVycm9yKTsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAm
JiBkZXNjcmlwdG9yLmVudW1lcmFibGUoKSAhPSBjdXJyZW50LmVudW1lcmFibGUoKSkKICAgICAg
ICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRp
b24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VFbnVtZXJhYmlsaXR5RXJyb3IpOwogICAg
IH0KLSAgICAKLSAgICAvLyBTdGVwIDYuCi0gICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMg
c2ltcGx5IGNoYW5naW5nIHRoZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CisK
ICAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYg
KCFjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiBvYmplY3QpIHsKLSAgICAg
ICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
Ci0gICAgICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5n
Q3VycmVudChjdXJyZW50KSwgY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgfQotICAgIAotICAgIC8vIFN0ZXAgNy4KLSAgICAvLyBDaGFuZ2luZyBiZXR3ZWVu
IGEgbm9ybWFsIHByb3BlcnR5IG9yIGFuIGFjY2Vzc29yIHByb3BlcnR5Ci0gICAgaWYgKGRlc2Ny
aXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpICE9IGN1cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpKSB7
CisgICAgICAgIC8vIFN0ZXAgNS4KKyAgICAgICAgLy8gQ2hhbmdpbmcgW1tFbnVtZXJhYmxlXV0g
YW5kIFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQor
ICAgIH0gZWxzZSBpZiAoY3VycmVudC5pc0RhdGFEZXNjcmlwdG9yKCkgIT0gZGVzY3JpcHRvci5p
c0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAgLy8gU3RlcCA2LgorICAgICAgICAvLyBDaGFu
Z2luZyBiZXR3ZWVuIGEgZGF0YSBwcm9wZXJ0eSBhbmQgYWNjZXNzb3IgcHJvcGVydHkKICAgICAg
ICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQ
cm9wZXJ0eUNoYW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKKyAgICB9IGVsc2UgaWYgKGN1cnJl
bnQuaXNEYXRhRGVzY3JpcHRvcigpICYmIGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7
CisgICAgICAgIC8vIFN0ZXAgNy4KKyAgICAgICAgLy8gQ2hhbmdpbmcgdGhlIHZhbHVlIGFuZCBh
dHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIGRhdGEgcHJvcGVydHkKKyAgICAgICAgaWYgKCFjdXJy
ZW50LmNvbmZpZ3VyYWJsZSgpICYmICFjdXJyZW50LndyaXRhYmxlKCkpIHsKKyAgICAgICAgICAg
IGlmIChkZXNjcmlwdG9yLndyaXRhYmxlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQ
cm9wZXJ0eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOworICAgICAgICAgICAgaWYgKGRlc2NyaXB0
b3IudmFsdWUoKSAmJiAhc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgY3VycmVudC52YWx1ZSgpLCBk
ZXNjcmlwdG9yLnZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVydHlDaGFuZ2VF
cnJvcik7CiAKLSAgICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
Ci0gICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJy
ZW50KGN1cnJlbnQpLCBjdXJyZW50KTsKLSAgICB9Ci0KLSAgICAvLyBTdGVwIDguCi0gICAgLy8g
Q2hhbmdpbmcgdGhlIHZhbHVlIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5
Ci0gICAgaWYgKGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICgh
Y3VycmVudC5jb25maWd1cmFibGUoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyZW50LndyaXRh
YmxlKCkgJiYgZGVzY3JpcHRvci53cml0YWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJh
YmxlUHJvcGVydHlDaGFuZ2VXcml0YWJpbGl0eUVycm9yKTsKLSAgICAgICAgICAgIGlmICghY3Vy
cmVudC53cml0YWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUo
KSkgewotICAgICAgICAgICAgICAgICAgICBib29sIGlzU2FtZSA9IHNhbWVWYWx1ZShnbG9iYWxP
YmplY3QsIGN1cnJlbnQudmFsdWUoKSwgZGVzY3JpcHRvci52YWx1ZSgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoIWlzU2FtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFJlYWRvbmx5UHJvcGVy
dHlDaGFuZ2VFcnJvcik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAh
ZGVzY3JpcHRvci52YWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlm
ICghb2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIEpTQ2VsbDo6ZGVs
ZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHB1dERl
c2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwg
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCksIGN1cnJlbnQp
OwotICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTdGVwIDguCisgICAgICAgIC8vIENo
YW5naW5nIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3Rp
bmcgYWNjZXNzb3IgcHJvcGVydHkKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNBY2Nlc3Nv
ckRlc2NyaXB0b3IoKSk7CisgICAgICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkgewor
ICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iu
c2V0dGVyKCkgIT0gY3VycmVudC5zZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0
byBjaGFuZ2UgdGhlIHNldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOwor
ICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iu
Z2V0dGVyKCkgIT0gY3VycmVudC5nZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0
byBjaGFuZ2UgdGhlIGdldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOwor
ICAgICAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFu
Z2VBY2Nlc3NNZWNoYW5pc21FcnJvcik7CiAKLSAgICAvLyBTdGVwIDkuCi0gICAgLy8gQ2hhbmdp
bmcgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBvZiBhbiBleGlzdGluZyBhY2Nlc3NvciBwcm9wZXJ0
eQotICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpOwotICAgIGlm
ICghY3VycmVudC5jb25maWd1cmFibGUoKSkgewotICAgICAgICBpZiAoZGVzY3JpcHRvci5zZXR0
ZXJQcmVzZW50KCkgJiYgIShjdXJyZW50LnNldHRlclByZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJp
Y3RFcXVhbChnbG9iYWxPYmplY3QsIGN1cnJlbnQuc2V0dGVyKCksIGRlc2NyaXB0b3Iuc2V0dGVy
KCkpKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
dGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgc2V0dGVyIG9mIGFuIHVu
Y29uZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRl
clByZXNlbnQoKSAmJiAhKGN1cnJlbnQuZ2V0dGVyUHJlc2VudCgpICYmIEpTVmFsdWU6OnN0cmlj
dEVxdWFsKGdsb2JhbE9iamVjdCwgY3VycmVudC5nZXR0ZXIoKSwgZGVzY3JpcHRvci5nZXR0ZXIo
KSkpKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0
aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBnZXR0ZXIgb2YgYW4gdW5j
b25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKLSAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRl
cygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKQotICAgICAgICAgICAgcmV0
dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25m
aWd1cmFibGVQcm9wZXJ0eUNoYW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gU3RlcCAxMC8xMS4KICAg
ICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBhY2Nlc3Nv
ciA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUpOwotICAgIGlmICghYWNjZXNz
b3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBKU09iamVjdCogZ2V0dGVyID0gbnVsbHB0
cjsKLSAgICBKU09iamVjdCogc2V0dGVyID0gbnVsbHB0cjsKLSAgICBib29sIGdldHRlclNldHRl
ckNoYW5nZWQgPSBmYWxzZTsKLQotICAgIGlmIChhY2Nlc3Nvci5pc0N1c3RvbUdldHRlclNldHRl
cigpKSB7Ci0gICAgICAgIGF1dG8qIGN1c3RvbUdldHRlclNldHRlciA9IGpzQ2FzdDxDdXN0b21H
ZXR0ZXJTZXR0ZXIqPihhY2Nlc3Nvcik7Ci0gICAgICAgIGlmIChjdXN0b21HZXR0ZXJTZXR0ZXIt
PnNldHRlcigpKQotICAgICAgICAgICAgc2V0dGVyID0gZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdl
dHRlclNldHRlciwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6VHlwZTo6U2V0dGVyKTsK
LSAgICAgICAgaWYgKGN1c3RvbUdldHRlclNldHRlci0+Z2V0dGVyKCkpCi0gICAgICAgICAgICBn
ZXR0ZXIgPSBnZXRDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlcihnbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBKU0N1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uOjpUeXBlOjpHZXR0ZXIpOworICAgIC8vIFN0ZXAgOS4KKyAgICB1bnNp
Z25lZCBhdHRyaWJ1dGVzID0gZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQo
Y3VycmVudCk7CisgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSB8fCAo
Y3VycmVudC5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9yLmlzRGF0YURlc2Ny
aXB0b3IoKSkpIHsKKyAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0
ZTo6QWNjZXNzb3IpOworICAgICAgICBKU09iamVjdCogZ2V0dGVyID0gZGVzY3JpcHRvci5nZXR0
ZXJQcmVzZW50KCkgPyBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogKGN1cnJlbnQuZ2V0dGVy
UHJlc2VudCgpID8gY3VycmVudC5nZXR0ZXJPYmplY3QoKSA6IG51bGxwdHIpOworICAgICAgICBK
U09iamVjdCogc2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBkZXNjcmlwdG9y
LnNldHRlck9iamVjdCgpIDogKGN1cnJlbnQuc2V0dGVyUHJlc2VudCgpID8gY3VycmVudC5zZXR0
ZXJPYmplY3QoKSA6IG51bGxwdHIpOworICAgICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRl
ciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVy
KTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzICYgflByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGFjY2Vzc29yLmlzR2V0dGVy
U2V0dGVyKCkpOwotICAgICAgICBhdXRvKiBnZXR0ZXJTZXR0ZXIgPSBqc0Nhc3Q8R2V0dGVyU2V0
dGVyKj4oYWNjZXNzb3IpOwotICAgICAgICBnZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRlcigp
OwotICAgICAgICBzZXR0ZXIgPSBnZXR0ZXJTZXR0ZXItPnNldHRlcigpOworICAgICAgICBBU1NF
UlQoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFE
ZXNjcmlwdG9yKCkpOworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgp
ID8gZGVzY3JpcHRvci52YWx1ZSgpIDogKGN1cnJlbnQudmFsdWUoKSA/IGN1cnJlbnQudmFsdWUo
KSA6IGpzVW5kZWZpbmVkKCkpOworICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OwogICAgIH0KLSAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkpIHsKLSAgICAgICAg
c2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJPYmplY3QoKTsKLSAgICAgICAgZ2V0dGVyU2V0dGVy
Q2hhbmdlZCA9IHRydWU7Ci0gICAgfQotICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQo
KSkgewotICAgICAgICBnZXR0ZXIgPSBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgpOwotICAgICAg
ICBnZXR0ZXJTZXR0ZXJDaGFuZ2VkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoY3VycmVudC5h
dHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgIWdldHRlclNldHRlckNoYW5nZWQpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0
ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7CiAKLSAg
ICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICB1bnNpZ25l
ZCBhdHRycyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQp
OwotICAgIG9iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGdldHRlclNldHRlciwgYXR0cnMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zNzIwLDExICszNjM5LDYgQEAgYm9vbCBKU09iamVj
dDo6ZGVmaW5lT3duTm9uSW5kZXhQcm9wZXJ0eQogICAgIFZNJiB2bSAgPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICAvLyBUcmFjayBvbiB0aGUgZ2xvYmFsZGF0YSB0aGF0IHdlJ3JlIGluIGRlZmluZSBwcm9w
ZXJ0eS4KLSAgICAvLyBDdXJyZW50bHkgRGVmaW5lT3duUHJvcGVydHkgdXNlcyBkZWxldGUgdG8g
cmVtb3ZlIHByb3BlcnRpZXMgd2hlbiB0aGV5IGFyZSBiZWluZyByZXBsYWNlZAotICAgIC8vIChw
YXJ0aWN1bGFybHkgd2hlbiBjaGFuZ2luZyBhdHRyaWJ1dGVzKSwgaG93ZXZlciBkZWxldGUgd29u
J3QgYWxsb3cgbm9uLWNvbmZpZ3VyYWJsZSAoaS5lLgotICAgIC8vIERvbnREZWxldGUpIHByb3Bl
cnRpZXMgdG8gYmUgZGVsZXRlZC4gRm9yIG5vdywgd2UgY2FuIHVzZSB0aGlzIGZsYWcgdG8gbWFr
ZSB0aGlzIHdvcmsuCi0gICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgIFByb3BlcnR5
RGVzY3JpcHRvciBjdXJyZW50OwogICAgIGJvb2wgaXNDdXJyZW50RGVmaW5lZCA9IGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgY3VycmVudCk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAkocmV2aXNpb24g
MjYxODIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxNiwxMCArMzE2LDkgQEAgQUxXQVlTX0lOTElORSBib29s
IEpTT2JqZWN0OjpwdXREaXJlY3RJbgogICAgICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZzZXQs
IHZhbHVlKTsKICAgICAgICAgICAgIHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3BlcnR5KG9mZnNl
dCk7CiAKLSAgICAgICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKSB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9y
VmFsdWUpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3Nvck9yVmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAm
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgICAgICAgICAgaWYgKG1vZGUgPT0g
UHV0TW9kZURlZmluZU93blByb3BlcnR5ICYmIChhdHRyaWJ1dGVzICE9IGN1cnJlbnRBdHRyaWJ1
dGVzIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yT3JDdXN0b21B
Y2Nlc3Nvck9yVmFsdWUpKSkKICAgICAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUodm0sIFN0cnVj
dHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5h
bWUsIGF0dHJpYnV0ZXMpKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwog
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM3MCwxMCArMzY5LDkgQEAgQUxXQVlTX0lO
TElORSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RJbgogICAgICAgICBzdHJ1Y3R1cmUtPmRpZFJl
cGxhY2VQcm9wZXJ0eShvZmZzZXQpOwogICAgICAgICBwdXREaXJlY3Qodm0sIG9mZnNldCwgdmFs
dWUpOwogCi0gICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29y
KSB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFs
dWUpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3Nvck9yVmFsdWUpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgIGlmIChtb2RlID09IFB1dE1vZGVEZWZp
bmVPd25Qcm9wZXJ0eSAmJiAoYXR0cmlidXRlcyAhPSBjdXJyZW50QXR0cmlidXRlcyB8fCAoYXR0
cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvck9yQ3VzdG9tQWNjZXNzb3JPclZh
bHVlKSkpCiAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUodm0sIFN0cnVjdHVyZTo6YXR0cmlidXRl
Q2hhbmdlVHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMp
KTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNsb3Quc2V0RXhp
c3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuY3BwCShyZXZpc2lvbiAyNjE4MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3
IEBAIHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRVbmRlZmluZWQoKQogICAgIG1fYXR0cmli
dXRlcyA9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtOwogfQogCi1HZXR0ZXJTZXR0
ZXIqIFByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQorR2V0dGVyU2V0dGVyKiBQcm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0
ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNWYWx1ZSBnZXR0ZXIgPSBtX2dldHRlciAm
JiAhbV9nZXR0ZXIuaXNVbmRlZmluZWQoKSA/IGpzQ2FzdDxKU09iamVjdCo+KG1fZ2V0dGVyKSA6
IGpzVW5kZWZpbmVkKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaAkocmV2aXNpb24gMjYxODIzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNB
Y2Nlc3NvckRlc2NyaXB0b3IoKSBjb25zdDsKICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzKCkgY29u
c3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzOyB9CiAgICAgSlNWYWx1ZSB2YWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWU7IH0KLSAgICBHZXR0ZXJTZXR0ZXIqIHNsb3dHZXR0ZXJTZXR0ZXIoSlNH
bG9iYWxPYmplY3QqKTsgLy8gQmUgYXdhcmUgdGhhdCB0aGlzIHdpbGwgbGF6aWx5IGFsbG9jYXRl
IGEgR2V0dGVyU2V0dGVyIG9iamVjdC4gSXQncyBtdWNoIGJldHRlciB0byB1c2UgZ2V0dGVyKCkg
YW5kIHNldHRlcigpIGluZGl2aWR1YWxseSBpZiBwb3NzaWJsZS4KKyAgICBHZXR0ZXJTZXR0ZXIq
IHNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsgLy8gQmUgYXdhcmUgdGhh
dCB0aGlzIHdpbGwgbGF6aWx5IGFsbG9jYXRlIGEgR2V0dGVyU2V0dGVyIG9iamVjdC4gSXQncyBt
dWNoIGJldHRlciB0byB1c2UgZ2V0dGVyKCkgYW5kIHNldHRlcigpIGluZGl2aWR1YWxseSBpZiBw
b3NzaWJsZS4KICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGdldHRlcigpIGNvbnN0Owog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgc2V0dGVyKCkgY29uc3Q7CiAgICAgSlNPYmpl
Y3QqIGdldHRlck9iamVjdCgpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAyNjE4MjMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjMsNiAr
NjYzLDEyIEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmEKICAgICBB
U1NFUlQoZW50cnkpOwogICAgIGVudHJ5LT5hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKIAorICAg
IGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KQorICAgICAgICBz
dHJ1Y3R1cmUtPnNldENvbnRhaW5zUmVhZE9ubHlQcm9wZXJ0aWVzKCk7CisKKyAgICBpZiAoYXR0
cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkKKyAgICAgICAgc3RydWN0dXJl
LT5zZXRJc1F1aWNrUHJvcGVydHlBY2Nlc3NBbGxvd2VkRm9yRW51bWVyYXRpb24oZmFsc2UpOwor
CiAgICAgc3RydWN0dXJlLT5jaGVja09mZnNldENvbnNpc3RlbmN5KCk7CiAgICAgcmV0dXJuIHN0
cnVjdHVyZTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTgyMykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTE4ICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBSZWRlZmluaW5n
IGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0
LmtleXMgb3JkZXIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDI5MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGpzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXBy
b3BlcnRpZXMuanM6CisKIDIwMjAtMDUtMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjYxNDkzPyk6IG1lZGlhL3ZpZGVvLWlzcGxheWlu
Z3RvYXV0b21vdGl2ZWhlYWR1bml0Lmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRl
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjE4MjMpCisrKyBMYXlvdXRUZXN0
cy9qcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAgUEFTUyBvLmZvbyBpcyAwCiBQQVNTIHggaXMg
NAogUEFTUyBvLmZvbyBpcyAzCiBQQVNTIG8uYmFyIGlzIHVuZGVmaW5lZAotRkFJTCBPYmplY3Qu
a2V5cyhvKS5qb2luKCkgc2hvdWxkIGJlIGZvbyx0ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdC4g
V2FzIHRlc3QxLHRlc3QyLHRlc3QzLGZvbyxiYXIsbmVzdC4KK1BBU1MgT2JqZWN0LmtleXMobyku
am9pbigpIGlzICdmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3QnCiAKIEJhc2ljCiBQQVNT
IG8gPSB7Zm9vOjF9OyBkZXNjcmlwdGlvblN0cmluZyhvLCAnZm9vJyk7IGlzICd2YWx1ZToxIGtl
eXM6MSBbRUNXXVtFeHRlbnNpYmxlXScKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3Bl
cnRpZXMuanMJKHJldmlzaW9uIDI2MTgyMykKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qcwkod29ya2luZyBjb3B5KQpA
QCAtNTQsNyArNTQsNiBAQCBvID0gewogc2hvdWxkQmUoIngiLCAiNCIpOwogc2hvdWxkQmUoIm8u
Zm9vIiwgIjMiKTsKIHNob3VsZEJlKCJvLmJhciIsICJ1bmRlZmluZWQiKTsKLS8vIEZJWE1FOiA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyOTMzPiBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxk
IG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCiBzaG91
bGRCZSgiT2JqZWN0LmtleXMobykuam9pbigpIiwgIidmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3Qz
LG5lc3QnIik7CiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402168</attachid>
            <date>2020-06-17 16:42:59 -0700</date>
            <delta_ts>2020-07-07 08:21:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200618024257.patch</filename>
            <type>text/plain</type>
            <size>54654</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Y2YyYjE4OTg0NWI2MTcxNmViYTQ2NjMzNjViYjVmY2UwZmZmNDhmLi4zOGNlNzMxZDI3ZDE4NDhh
ZmIyNTJiZGVkMDc1MzcwNTEwMzA5NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wNi0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgJiBwdXQgYmFjayBhIG5vbi1pbmRleGVkIHByb3BlcnR5IGp1c3QgdG8K
KyAgICAgICAgdXBkYXRlIGF0dHJpYnV0ZXMsIHdoaWNoIHdhcyBsZXNzIGVmZmljaWVudCBhbmQg
Y29ycnVwdGVkIG9ic2VydmFibGUgcHJvcGVydHkgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRj
aDoKKyAgICAgICAgMS4gUmV3cml0ZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRv
cigpIHRvIGNsb3NlbHkgcmVzZW1ibGUgdGhlIHNwZWMgWzFdLgorICAgICAgICAyLiBEcm9wcyBw
cm9wZXJ0eSBkZWxldGlvbiwgaW5saW5lcyBwdXREZXNjcmlwdG9yKCksIGFuZCBzZXRzIG5lY2Vz
c2FyeSBTdHJ1Y3R1cmUKKyAgICAgICAgICAgZmxhZ3MgaW4gYXR0cmlidXRlQ2hhbmdlVHJhbnNp
dGlvbigpLgorICAgICAgICAzLiBTaW1wbGlmaWVzIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURl
c2NyaXB0b3IoKSBhIGJpdCBieSBvYnRhaW5pbmcgR2V0dGVyU2V0dGVyCisgICAgICAgICAgIGlu
c3RhbmNlIGZyb20gY3VycmVudCBkZXNjcmlwdG9yIHJhdGhlciB0aGVuIGNhbGxpbmcgZ2V0RGly
ZWN0KCkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIHByb3BlcnR5IG9yZGVyIHdpdGgg
VjggYW5kIFNwaWRlck1vbmtleSwgYWR2YW5jaW5nIHByb3ZpZGVkCisgICAgICAgIG1pY3JvYmVu
Y2htYXJrcyBieSA1LTg1JSwgZXNwZWNpYWxseSBmb3Igb2JqZWN0cyBpbiBkaWN0aW9uYXJ5IG1v
ZGUuIFNpeFNwZWVkLAorICAgICAgICBTdW5TcGlkZXIsIGFuZCBBUkVTLTYgYXJlIGFsbCBuZXV0
cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0
ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5z
dGFuY2UuY3BwOgorICAgICAgICAoSlNDOjphcHBlbmRTb3VyY2VUb0Vycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBseVBy
b3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Ob25J
bmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3Jp
cHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNl
dHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRl
clNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisKIDIwMjAtMDYtMTcgIEtlaXRoIE1p
bGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgJHZtLmhhdmVBQmFkVGlt
ZS9pc0hhdmluZ0FCYWRUaW1lIHNob3VsZCB3b3JrIHdpdGggbm9uLWdsb2JhbE9iamVjdCBwYXJh
bWV0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCmluZGV4IGUxMDk2ZjFjNzY4MTYyM2I0NWFlOTI5Mzc5OTZkYWFiMTljMjgxYmYuLjQwNWUz
YThkNzI5N2M4OWQ0NGE0OWNiMzI5NWExYWMzMWIwNDFkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAg
c3RhdGljIHZvaWQgYXBwZW5kU291cmNlVG9FcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmEKICAgICAgICAgICAgIHN0b3AtLTsKICAgICAgICAgbWVz
c2FnZSA9IGFwcGVuZGVyKG1lc3NhZ2UsIGNvZGVCbG9jay0+c291cmNlKCkucHJvdmlkZXIoKS0+
Z2V0UmFuZ2Uoc3RhcnQsIHN0b3ApLnRvU3RyaW5nKCksIHR5cGUsIEVycm9ySW5zdGFuY2U6OkZv
dW5kQXBwcm94aW1hdGVTb3VyY2UpOwogICAgIH0KLSAgICBleGNlcHRpb24tPnB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJpbmcodm0sIG1lc3NhZ2UpKTsKKyAg
ICBleGNlcHRpb24tPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNT
dHJpbmcodm0sIG1lc3NhZ2UpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCmluZGV4IGZhYzM4OGZjZmM1OWFjZTliOTFiZGZiY2ZlYjU4MmNmM2UzNzA1YTUu
Ljg0N2NjNjZjMTE0NGJjYzViNjFiMzQ2NjI0YjYyMTc5MTFkYzJkNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTM1NTEsNDEgKzM1NTEsNiBAQCBi
b29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUHJvcGVydHlOYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBwdXREZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0
YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvciwgdW5zaWduZWQgYXR0cmlidXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlw
dG9yJiBvbGREZXNjcmlwdG9yKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5p
c0RhdGFEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVz
Y3JpcHRvcigpICYmIG9sZERlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewotICAg
ICAgICAgICAgSlNPYmplY3QqIGdldHRlciA9IG9sZERlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgp
ID8gb2xkRGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICBK
U09iamVjdCogc2V0dGVyID0gb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNj
cmlwdG9yLnNldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICAgICAgICAgIEdldHRlclNldHRl
ciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0
ZXIsIHNldHRlcik7Ci0gICAgICAgICAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0
cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQot
ICAgICAgICBKU1ZhbHVlIG5ld1ZhbHVlID0ganNVbmRlZmluZWQoKTsKLSAgICAgICAgaWYgKGRl
c2NyaXB0b3IudmFsdWUoKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1
ZSgpOwotICAgICAgICBlbHNlIGlmIChvbGREZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAg
ICBuZXdWYWx1ZSA9IG9sZERlc2NyaXB0b3IudmFsdWUoKTsKLSAgICAgICAgdGFyZ2V0LT5wdXRE
aXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgbmV3VmFsdWUsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlB
dHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpCi0gICAgICAgICAgICB0YXJnZXQtPnN0cnVjdHVyZSh2bSktPnNl
dENvbnRhaW5zUmVhZE9ubHlQcm9wZXJ0aWVzKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICBhdHRyaWJ1dGVzICY9IH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7Ci0KLSAg
ICBKU09iamVjdCogZ2V0dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAg
PyBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50
KCkKLSAgICAgICAgPyBvbGREZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAg
ICBKU09iamVjdCogc2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAg
PyBkZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDogb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50
KCkKLSAgICAgICAgPyBvbGREZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAg
ICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwotCi0gICAgdGFyZ2V0LT5wdXREaXJlY3RBY2Nlc3Nv
cihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEpT
T2JqZWN0OjpwdXREaXJlY3RNYXlCZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKE9w
dGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKQEAgLTM1
OTMsOCArMzU1OCw3IEBAIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByCiAgICAgcmV0dXJuIHB1dERp
cmVjdChnbG9iYWxPYmplY3QtPnZtKCksIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCi0vLyA5
LjEuNi4zIG9mIHRoZSBzcGVjCi0vLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcv
ZWNtYS0yNjIvNi4wL2luZGV4Lmh0bWwjc2VjLXZhbGlkYXRlYW5kYXBwbHlwcm9wZXJ0eWRlc2Ny
aXB0b3IKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdmFsaWRhdGVhbmRhcHBseXBy
b3BlcnR5ZGVzY3JpcHRvcgogYm9vbCB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIGJvb2wgaXNFeHRlbnNpYmxlLAogICAgIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCBpc0N1cnJlbnREZWZpbmVkLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGN1cnJlbnQsIGJvb2wgdGhyb3dFeGNlcHRpb24pCiB7CkBAIC0zNjA4
LDEzMyArMzU3Miw4OCBAQCBib29sIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqCiAgICAgICAgIC8vIFN0ZXAg
Mi5hCiAgICAgICAgIGlmICghaXNFeHRlbnNpYmxlKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgTm9uRXh0ZW5zaWJsZU9i
amVjdFByb3BlcnR5RGVmaW5lRXJyb3IpOwotICAgICAgICBpZiAoIW9iamVjdCkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAvLyBTdGVwIDIuYy9kCi0gICAgICAgIFByb3BlcnR5
RGVzY3JpcHRvciBvbGREZXNjcmlwdG9yOwotICAgICAgICBvbGREZXNjcmlwdG9yLnNldFZhbHVl
KGpzVW5kZWZpbmVkKCkpOwotICAgICAgICAvLyBGSVhNRTogc3BlYyBzYXlzIHRvIGFsd2F5cyBy
ZXR1cm4gdHJ1ZSBoZXJlLgotICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmpl
Y3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0
ZXMoKSwgb2xkRGVzY3JpcHRvcik7CisKKyAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAg
ICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgeworICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAoZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICYgflByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsK
KyAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnNsb3dHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0KSwg
YXR0cmlidXRlcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VS
VChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURl
c2NyaXB0b3IoKSk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0b3Iu
dmFsdWUoKSA/IGRlc2NyaXB0b3IudmFsdWUoKSA6IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAg
ICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIGRlc2NyaXB0
b3IuYXR0cmlidXRlcygpICYgflByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgLy8g
U3RlcCAzLgogICAgIGlmIChkZXNjcmlwdG9yLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgLy8gU3RlcCA0LgorCiAgICAgYm9vbCBpc0VxdWFsID0gY3VycmVudC5lcXVhbFRv
KGdsb2JhbE9iamVjdCwgZGVzY3JpcHRvcik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZmFsc2UpOwogICAgIGlmIChpc0VxdWFsKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IC8vIFN0ZXAgNS4KLSAgICAvLyBGaWx0ZXIgb3V0IGludmFsaWQgY2hhbmdlcworICAgIC8vIFN0
ZXAgNC4KICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAgaWYgKGRl
c2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5
Q2hhbmdlQ29uZmlndXJhYmlsaXR5RXJyb3IpOwogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVt
ZXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpICE9IGN1cnJlbnQuZW51
bWVyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUVudW1lcmFi
aWxpdHlFcnJvcik7CiAgICAgfQotICAgIAotICAgIC8vIFN0ZXAgNi4KLSAgICAvLyBBIGdlbmVy
aWMgZGVzY3JpcHRvciBpcyBzaW1wbHkgY2hhbmdpbmcgdGhlIGF0dHJpYnV0ZXMgb2YgYW4gZXhp
c3RpbmcgcHJvcGVydHkKKwogICAgIGlmIChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3Io
KSkgewotICAgICAgICBpZiAoIWN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYm
IG9iamVjdCkgewotICAgICAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2Jh
bE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0
cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpLCBjdXJyZW50KTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgLy8gU3RlcCA3LgotICAgIC8v
IENoYW5naW5nIGJldHdlZW4gYSBub3JtYWwgcHJvcGVydHkgb3IgYW4gYWNjZXNzb3IgcHJvcGVy
dHkKLSAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkgIT0gY3VycmVudC5pc0Rh
dGFEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAgLy8gU3RlcCA1LgorICAgICAgICAvLyBDaGFuZ2lu
ZyBbW0VudW1lcmFibGVdXSBhbmQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGVzIG9mIGFuIGV4
aXN0aW5nIHByb3BlcnR5CisgICAgfSBlbHNlIGlmIChjdXJyZW50LmlzRGF0YURlc2NyaXB0b3Io
KSAhPSBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgeworICAgICAgICAvLyBTdGVwIDYu
CisgICAgICAgIC8vIENoYW5naW5nIGJldHdlZW4gYSBkYXRhIHByb3BlcnR5IGFuZCBhY2Nlc3Nv
ciBwcm9wZXJ0eQogICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9u
LCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQWNjZXNzTWVjaGFuaXNtRXJyb3IpOworICAg
IH0gZWxzZSBpZiAoY3VycmVudC5pc0RhdGFEZXNjcmlwdG9yKCkgJiYgZGVzY3JpcHRvci5pc0Rh
dGFEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAgLy8gU3RlcCA3LgorICAgICAgICAvLyBDaGFuZ2lu
ZyB0aGUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgZGF0YSBwcm9wZXJ0eQor
ICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkgJiYgIWN1cnJlbnQud3JpdGFibGUo
KSkgeworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3Iud3JpdGFibGUoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9u
LCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlV3JpdGFiaWxpdHlFcnJvcik7CisgICAgICAg
ICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpICYmICFzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBj
dXJyZW50LnZhbHVlKCksIGRlc2NyaXB0b3IudmFsdWUoKSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgUmVhZG9u
bHlQcm9wZXJ0eUNoYW5nZUVycm9yKTsKIAotICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0
LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1
dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCksIGN1cnJlbnQpOwotICAgIH0KLQotICAgIC8v
IFN0ZXAgOC4KLSAgICAvLyBDaGFuZ2luZyB0aGUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMgb2YgYW4g
ZXhpc3RpbmcgcHJvcGVydHkKLSAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkp
IHsKLSAgICAgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7Ci0gICAgICAgICAgICBp
ZiAoIWN1cnJlbnQud3JpdGFibGUoKSAmJiBkZXNjcmlwdG9yLndyaXRhYmxlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2Vw
dGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOwotICAg
ICAgICAgICAgaWYgKCFjdXJyZW50LndyaXRhYmxlKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
ZGVzY3JpcHRvci52YWx1ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTYW1lID0g
c2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgY3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVl
KCkpOwotICAgICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxz
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaXNTYW1lKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlv
biwgUmVhZG9ubHlQcm9wZXJ0eUNoYW5nZUVycm9yKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFs
KGRlc2NyaXB0b3IpICYmICFkZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgaWYgKCFvYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAg
ICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChj
dXJyZW50KSwgY3VycmVudCk7Ci0gICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFN0ZXAg
OC4KKyAgICAgICAgLy8gQ2hhbmdpbmcgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhbmQgYXR0cmli
dXRlcyBvZiBhbiBleGlzdGluZyBhY2Nlc3NvciBwcm9wZXJ0eQorICAgICAgICBBU1NFUlQoZGVz
Y3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKTsKKyAgICAgICAgaWYgKCFjdXJyZW50LmNv
bmZpZ3VyYWJsZSgpKSB7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50
KCkgJiYgZGVzY3JpcHRvci5zZXR0ZXIoKSAhPSBjdXJyZW50LnNldHRlcigpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRp
b24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgc2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxl
IHByb3BlcnR5LiJfcyk7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50
KCkgJiYgZGVzY3JpcHRvci5nZXR0ZXIoKSAhPSBjdXJyZW50LmdldHRlcigpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRp
b24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgZ2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxl
IHByb3BlcnR5LiJfcyk7CisgICAgICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzKCkgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1
cmFibGVQcm9wZXJ0eUNoYW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKIAotICAgIC8vIFN0ZXAg
OS4KLSAgICAvLyBDaGFuZ2luZyB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIG9mIGFuIGV4aXN0aW5n
IGFjY2Vzc29yIHByb3BlcnR5Ci0gICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2Ny
aXB0b3IoKSk7Ci0gICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7Ci0gICAgICAgIGlm
IChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSAmJiAhKGN1cnJlbnQuc2V0dGVyUHJlc2VudCgp
ICYmIEpTVmFsdWU6OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwgY3VycmVudC5zZXR0ZXIoKSwg
ZGVzY3JpcHRvci5zZXR0ZXIoKSkpKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRo
ZSBzZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKLSAgICAgICAgaWYg
KGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpICYmICEoY3VycmVudC5nZXR0ZXJQcmVzZW50KCkg
JiYgSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LmdldHRlcigpLCBk
ZXNjcmlwdG9yLmdldHRlcigpKSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhl
IGdldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOwotICAgICAgICBpZiAo
Y3VycmVudC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ip
Ci0gICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93
RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQWNjZXNzTWVjaGFuaXNtRXJy
b3IpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9CiAKLSAgICAv
LyBTdGVwIDEwLzExLgogICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBKU1ZhbHVlIGFjY2Vzc29yID0gb2JqZWN0LT5nZXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7
Ci0gICAgaWYgKCFhY2Nlc3NvcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEpTT2JqZWN0
KiBnZXR0ZXIgPSBudWxscHRyOwotICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBudWxscHRyOwotICAg
IGJvb2wgZ2V0dGVyU2V0dGVyQ2hhbmdlZCA9IGZhbHNlOwotCi0gICAgaWYgKGFjY2Vzc29yLmlz
Q3VzdG9tR2V0dGVyU2V0dGVyKCkpIHsKLSAgICAgICAgYXV0byogY3VzdG9tR2V0dGVyU2V0dGVy
ID0ganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGFjY2Vzc29yKTsKLSAgICAgICAgaWYgKGN1
c3RvbUdldHRlclNldHRlci0+c2V0dGVyKCkpCi0gICAgICAgICAgICBzZXR0ZXIgPSBnZXRDdXN0
b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdldHRlclNldHRlcihnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9u
OjpUeXBlOjpTZXR0ZXIpOwotICAgICAgICBpZiAoY3VzdG9tR2V0dGVyU2V0dGVyLT5nZXR0ZXIo
KSkKLSAgICAgICAgICAgIGdldHRlciA9IGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9y
R2V0dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0
ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OkdldHRlcik7CisgICAgLy8g
U3RlcCA5LgorICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNP
dmVycmlkaW5nQ3VycmVudChjdXJyZW50KTsKKyAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29y
RGVzY3JpcHRvcigpIHx8IChjdXJyZW50LmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgIWRlc2Ny
aXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSkgeworICAgICAgICBBU1NFUlQoYXR0cmlidXRlcyAm
IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIg
PSBkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSA/IGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkg
OiAoY3VycmVudC5nZXR0ZXJQcmVzZW50KCkgPyBjdXJyZW50LmdldHRlck9iamVjdCgpIDogbnVs
bHB0cik7CisgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRlclByZXNl
bnQoKSA/IGRlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiAoY3VycmVudC5zZXR0ZXJQcmVzZW50
KCkgPyBjdXJyZW50LnNldHRlck9iamVjdCgpIDogbnVsbHB0cik7CisgICAgICAgIEdldHRlclNl
dHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgZ2V0dGVyLCBzZXR0ZXIpOworICAgICAgICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXMgJiB+UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKICAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQo
YWNjZXNzb3IuaXNHZXR0ZXJTZXR0ZXIoKSk7Ci0gICAgICAgIGF1dG8qIGdldHRlclNldHRlciA9
IGpzQ2FzdDxHZXR0ZXJTZXR0ZXIqPihhY2Nlc3Nvcik7Ci0gICAgICAgIGdldHRlciA9IGdldHRl
clNldHRlci0+Z2V0dGVyKCk7Ci0gICAgICAgIHNldHRlciA9IGdldHRlclNldHRlci0+c2V0dGVy
KCk7Ci0gICAgfQotICAgIGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSkgewotICAgICAg
ICBzZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRlck9iamVjdCgpOwotICAgICAgICBnZXR0ZXJTZXR0
ZXJDaGFuZ2VkID0gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2Vu
dCgpKSB7Ci0gICAgICAgIGdldHRlciA9IGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCk7Ci0gICAg
ICAgIGdldHRlclNldHRlckNoYW5nZWQgPSB0cnVlOworICAgICAgICBBU1NFUlQoZGVzY3JpcHRv
ci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkp
OworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpID8gZGVzY3JpcHRv
ci52YWx1ZSgpIDogKGN1cnJlbnQudmFsdWUoKSA/IGN1cnJlbnQudmFsdWUoKSA6IGpzVW5kZWZp
bmVkKCkpOworICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogICAgIH0KIAot
ICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZ2V0dGVyU2V0
dGVyQ2hhbmdlZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGdl
dHRlclNldHRlciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRl
ciwgc2V0dGVyKTsKLQotICAgIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFs
c2UpOwotICAgIHVuc2lnbmVkIGF0dHJzID0gZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGlu
Z0N1cnJlbnQoY3VycmVudCk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBhdHRycyB8IFByb3BlcnR5QXR0cmli
dXRlOjpBY2Nlc3Nvcik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTM3NDMsMTEgKzM2NjIs
NiBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TgogICAgIFZNJiB2bSAgPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICAvLyBUcmFjayBvbiB0aGUgZ2xvYmFsZGF0YSB0aGF0IHdlJ3JlIGluIGRlZmluZSBwcm9w
ZXJ0eS4KLSAgICAvLyBDdXJyZW50bHkgRGVmaW5lT3duUHJvcGVydHkgdXNlcyBkZWxldGUgdG8g
cmVtb3ZlIHByb3BlcnRpZXMgd2hlbiB0aGV5IGFyZSBiZWluZyByZXBsYWNlZAotICAgIC8vIChw
YXJ0aWN1bGFybHkgd2hlbiBjaGFuZ2luZyBhdHRyaWJ1dGVzKSwgaG93ZXZlciBkZWxldGUgd29u
J3QgYWxsb3cgbm9uLWNvbmZpZ3VyYWJsZSAoaS5lLgotICAgIC8vIERvbnREZWxldGUpIHByb3Bl
cnRpZXMgdG8gYmUgZGVsZXRlZC4gRm9yIG5vdywgd2UgY2FuIHVzZSB0aGlzIGZsYWcgdG8gbWFr
ZSB0aGlzIHdvcmsuCi0gICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgIFByb3BlcnR5
RGVzY3JpcHRvciBjdXJyZW50OwogICAgIGJvb2wgaXNDdXJyZW50RGVmaW5lZCA9IGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgY3VycmVudCk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCmluZGV4IDZiMmVmMjI0N2Yz
MmQwNjUxNWYyN2RmNTk1MTQ0ZGMwNjBiOTUyODYuLjE2YTRmNjkzNmRkNTZlOTA4YjczNWI2YWZi
YzFmMDI5Mzg4OWMxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0SW5saW5lcy5oCkBAIC0zMTQsMTAgKzMxNCw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBK
U09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lCiAgICAgICAgICAgICBwdXREaXJlY3Qodm0sIG9mZnNldCwgdmFsdWUpOwogICAgICAgICAg
ICAgc3RydWN0dXJlLT5kaWRSZXBsYWNlUHJvcGVydHkob2Zmc2V0KTsKIAotICAgICAgICAgICAg
aWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSAhPSAoY3VycmVu
dEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpIHx8IChhdHRyaWJ1dGVz
ICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkgIT0gKGN1cnJlbnRB
dHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KSk7CisgICAgICAgICAgICBpZiAobW9kZSA9PSBQdXRNb2RlRGVmaW5lT3duUHJv
cGVydHkgJiYgKGF0dHJpYnV0ZXMgIT0gY3VycmVudEF0dHJpYnV0ZXMgfHwgKGF0dHJpYnV0ZXMg
JiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3JPckN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpKQog
ICAgICAgICAgICAgICAgIHNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFu
Z2VUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpOwot
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2xv
dC5zZXRFeGlzdGluZ1Byb3BlcnR5KHRoaXMsIG9mZnNldCk7CiAKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMzY4LDEwICszNjcsOSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6
OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQogICAg
ICAgICBzdHJ1Y3R1cmUtPmRpZFJlcGxhY2VQcm9wZXJ0eShvZmZzZXQpOwogICAgICAgICBwdXRE
aXJlY3Qodm0sIG9mZnNldCwgdmFsdWUpOwogCi0gICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFBy
b3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
IShhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgIGlm
IChtb2RlID09IFB1dE1vZGVEZWZpbmVPd25Qcm9wZXJ0eSAmJiAoYXR0cmlidXRlcyAhPSBjdXJy
ZW50QXR0cmlidXRlcyB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nv
ck9yQ3VzdG9tQWNjZXNzb3JPclZhbHVlKSkpCiAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUodm0s
IFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBwcm9w
ZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogCiAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKaW5kZXggOGNmODA0ZjdhMTg0YjIyNjg1N2QzZWFhZDFm
MGU3YWYwNjZhZDUxNy4uNGFmMDcwMzZjZGEyNmU5ZDRhODJlYTU4YTdhYmY0NGVkOTY5MzI3YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlw
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRV
bmRlZmluZWQoKQogICAgIG1fYXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtOwogfQogCi1HZXR0ZXJTZXR0ZXIqIFByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRl
clNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorR2V0dGVyU2V0dGVyKiBQcm9w
ZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNW
YWx1ZSBnZXR0ZXIgPSBtX2dldHRlciAmJiAhbV9nZXR0ZXIuaXNVbmRlZmluZWQoKSA/IGpzQ2Fz
dDxKU09iamVjdCo+KG1fZ2V0dGVyKSA6IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCmluZGV4IDg0MWI2YjBi
NGUwMDE1MDQ5YWZlZDc0ZjMyNmMwY2UwZjUxYzI5MTQuLmJlZWYyNTFmNjNjOTFlODZlZTMxN2U4
ODI0NjY2M2RkMDAyNWY0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBK
U19FWFBPUlRfUFJJVkFURSBib29sIGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQogICAg
IEpTVmFsdWUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgR2V0dGVyU2V0
dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0Kik7IC8vIEJlIGF3YXJlIHRoYXQg
dGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBhIEdldHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVj
aCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFuZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9z
c2libGUuCisgICAgR2V0dGVyU2V0dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
KikgY29uc3Q7IC8vIEJlIGF3YXJlIHRoYXQgdGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBhIEdl
dHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVjaCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFuZCBz
ZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9zc2libGUuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
SlNWYWx1ZSBnZXR0ZXIoKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHNl
dHRlcigpIGNvbnN0OwogICAgIEpTT2JqZWN0KiBnZXR0ZXJPYmplY3QoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDIyMzQyOTFhNDkz
OGZiNTVjYTFjMzA5NjNhNWFkNGJmMTUzYjYxMjguLjhhYTZhOGE4YWExNmUzNDI5OTNjNzZmYmJh
ZWM2NTA4NDEyNmIyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcApAQCAtNzIzLDYgKzcyMywxMiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0cmli
dXRlQ2hhbmdlVHJhbnNpdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcgogICAg
IEFTU0VSVChlbnRyeSk7CiAgICAgZW50cnktPmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwogCisg
ICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCisgICAgICAg
IHN0cnVjdHVyZS0+c2V0Q29udGFpbnNSZWFkT25seVByb3BlcnRpZXMoKTsKKworICAgIGlmIChh
dHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKQorICAgICAgICBzdHJ1Y3R1
cmUtPnNldElzUXVpY2tQcm9wZXJ0eUFjY2Vzc0FsbG93ZWRGb3JFbnVtZXJhdGlvbihmYWxzZSk7
CisKICAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koKTsKICAgICByZXR1cm4g
c3RydWN0dXJlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlNWZiMWQ3Yjk4Zjg5MGQyZjZjMGQ0ZDA2ZmE2MGExZDg1
MDg4YTMuLjM3ZWU2M2FjMTdjYTMxZDE4M2JlMTdjNmY0ZDI1MTUwOGFiNmFiYmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMC0wNi0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hh
bmdlIGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1k
dXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRl
c3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLmpzOgorCiAyMDIwLTA2LTE2
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIHF1aWtyLmNv
bTogdW5hYmxlIHRvIHNlbGVjdCBpdGVtIGZyb20gZHJvcGRvd24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAppbmRleCAxMTEwODQ3ZDczYTA1NmZhNWE4MDk5MmI4NjI1Yzk5YjhiNjM4ZWJl
Li4zODFhN2U2ODVkYjhmZDYwMmJiNGQ2ZDQzMjk2MzZlNDFkN2ZlNmZiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0xNCw3ICsxNCw3IEBAIFBBU1Mgby5mb28gaXMgMAogUEFT
UyB4IGlzIDQKIFBBU1Mgby5mb28gaXMgMwogUEFTUyBvLmJhciBpcyB1bmRlZmluZWQKLUZBSUwg
T2JqZWN0LmtleXMobykuam9pbigpIHNob3VsZCBiZSBmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3Qz
LG5lc3QuIFdhcyB0ZXN0MSx0ZXN0Mix0ZXN0Myxmb28sYmFyLG5lc3QuCitQQVNTIE9iamVjdC5r
ZXlzKG8pLmpvaW4oKSBpcyAnZm9vLHRlc3QxLGJhcix0ZXN0Mix0ZXN0MyxuZXN0JwogCiBCYXNp
YwogUEFTUyBvID0ge2ZvbzoxfTsgZGVzY3JpcHRpb25TdHJpbmcobywgJ2ZvbycpOyBpcyAndmFs
dWU6MSBrZXlzOjEgW0VDV11bRXh0ZW5zaWJsZV0nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3Bl
cnRpZXMuanMKaW5kZXggMTJkNDAzMmEyMDUwOGVhZTBhMDc4ZWZlMjk1YWZkZGE5ZTZjMjViYy4u
ZTE3YTJjODA5YmRmZDA2ODIzOTQ4ZjY4MDE4N2QyMjMyZTlmZTA5MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0
aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1k
dXBsaWNhdGUtcHJvcGVydGllcy5qcwpAQCAtNTQsNyArNTQsNiBAQCBvID0gewogc2hvdWxkQmUo
IngiLCAiNCIpOwogc2hvdWxkQmUoIm8uZm9vIiwgIjMiKTsKIHNob3VsZEJlKCJvLmJhciIsICJ1
bmRlZmluZWQiKTsKLS8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyOTMzPiBSZWRl
ZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAo
T2JqZWN0LmtleXMgb3JkZXIpCiBzaG91bGRCZSgiT2JqZWN0LmtleXMobykuam9pbigpIiwgIidm
b28sdGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3QnIik7CiAKIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFrcmFDb3JlLnlhbWwgYi9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbAppbmRleCA3ZjFhZWE2
MWMzZjc3MTEwZTU0ZjNiMjdjYmI5NzdhNDA1ODA2MzFjLi41YmM5MDk5NWRjZjFiMThlOTRmMDVi
MjM4MTFjYmI1YjkwZjg3MGY3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbAor
KysgYi9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbApAQCAtMTQ3NCw3ICsxNDc0LDcgQEAKIC0gcGF0
aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9yZWdleFNwYWNlLmpzCiAgIGNtZDogcnVuQ2hha3JhIDpi
YXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgInJlZ2V4U3BhY2UuYmFzZWxpbmUiLCBbXQogLSBwYXRo
OiBDaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5qcwotICBjbWQ6IHJ1bkNo
YWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJFbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxp
bmUtanNjIiwgW10KKyAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAi
RW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lIiwgW10KIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0
L2VzNS9JbnN1ZmZpY2llbnRBcmd1bWVudHMuanMKICAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5l
LCAiTm9FeGNlcHRpb24iLCAiSW5zdWZmaWNpZW50QXJndW1lbnRzLmJhc2VsaW5lIiwgW10KIC0g
cGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9yZWN1cnNpdmVzZXR0ZXIuanMKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2VzNS9FbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUt
anNjIGIvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNl
bGluZS1qc2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YzI4YTk0MTg0ZWUzYjZl
YTRmMTNmOWMxMGM3YzQ1MTM4NGI5ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0
aEVTNS5iYXNlbGluZS1qc2MKKysrIC9kZXYvbnVsbApAQCAtMSwzODIgKzAsMCBAQAotVGVzdCAx
OiBOb24td3JpdGFibGUsIHNpbXBsZSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1l
cmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6
IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51
bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Q
cm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIK
LVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJh
dGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3Bl
cnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hh
bmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBl
bnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0
aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJh
dGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZh
bHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRh
YmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0
aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkg
b2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcg
b2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUg
dG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6
IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDI6IE5vbi13cml0YWJsZSwg
c2ltcGxlIGRpY3Rpb25hcnkgdHlwZSBoYW5kbGVyCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotZDogZHZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWQ6IDEKLVRlc3RpbmcgZ2V0T3duUHJv
cGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMQotU2V0dGluZyB2YWx1ZSB0byAyCi1kOiAyCi1T
ZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0
aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDIKLVRlc3RpbmcgZ2V0T3duUHJvcGVy
dHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA0Ci1kOiAyCi1TZXR0
aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24K
LWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gNQotZDogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5h
bWVzIGVudW1lcmF0aW9uCi1kOiA1Ci1TZXR0aW5nIHZhbHVlIHRvIDYKLWQ6IDYKLUNoYW5naW5n
IHdyaXRhYmlsaXR5IGR1cmluZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVy
YXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2
YWx1ZSB0byA3Ci1kOiA2Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24K
LVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0
byA4Ci1kOiA2Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0
eSBvZiBkIHRvIHRydWUKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gOQotZDogOQotVGVzdGluZyBn
ZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQg
dG8gdHJ1ZQotZDogOQotU2V0dGluZyB2YWx1ZSB0byAxMAotZDogMTAKLUZyZWV6aW5nIG9iamVj
dAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEx
Ci1kOiAxMAotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxMAot
U2V0dGluZyB2YWx1ZSB0byAxMgotZDogMTAKLQotVGVzdCAzOiBOb24td3JpdGFibGUsIGRpY3Rp
b25hcnkgdHlwZSBoYW5kbGVyCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogZHZhbHVl
Ci1TZXR0aW5nIHZhbHVlIHRvIDEKLWQ6IDEKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBl
bnVtZXJhdGlvbgotZDogMQotU2V0dGluZyB2YWx1ZSB0byAyCi1kOiAyCi1TZXR0aW5nIHdyaXRh
YmlsaXR5IG9mIGQgdG8gZmFsc2UKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAyCi1T
ZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVt
ZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA0Ci1kOiAyCi1TZXR0aW5nIHdyaXRhYmls
aXR5IG9mIGQgdG8gdHJ1ZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRp
bmcgdmFsdWUgdG8gNQotZDogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0
aW9uCi1kOiA1Ci1TZXR0aW5nIHZhbHVlIHRvIDYKLWQ6IDYKLUNoYW5naW5nIHdyaXRhYmlsaXR5
IGR1cmluZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNldHRp
bmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA3Ci1k
OiA2Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3Jp
dGFiaWxpdHkgb2YgZCB0byBmYWxzZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA2Ci1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRy
dWUKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gOQotZDogOQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDog
OQotU2V0dGluZyB2YWx1ZSB0byAxMAotZDogMTAKLUZyZWV6aW5nIG9iamVjdAotVGVzdGluZyBm
b3ItaW4gZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDExCi1kOiAxMAotVGVz
dGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGluZyB2YWx1
ZSB0byAxMgotZDogMTAKLQotVGVzdCA0OiBBY2Nlc3NvcnMKLURlZmluaW5nIGFjY2Vzc29ycyBm
b3IgYgotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBmCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotYTogYVZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDEKLWE6IDEKLWI6IEdFVFRFUiBGT1IgYgot
U2V0dGluZyB2YWx1ZSB0byAyCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZDogZFZh
bHVlCi1TZXR0aW5nIHZhbHVlIHRvIDMKLWQ6IDMKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2
YWx1ZSB0byA0Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogZ1ZhbHVlCi1TZXR0
aW5nIHZhbHVlIHRvIDUKLWc6IDUKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJh
dGlvbgotYTogMQotU2V0dGluZyB2YWx1ZSB0byA2Ci1hOiA2Ci1iOiBHRVRURVIgRk9SIGIKLVNl
dHRpbmcgdmFsdWUgdG8gNwotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWQ6IDMKLVNl
dHRpbmcgdmFsdWUgdG8gOAotZDogOAotZTogZVZhbHVlCi1TZXR0aW5nIHZhbHVlIHRvIDkKLWU6
IDkKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAxMAotU0VUVEVSIEZPUiBmCi1m
OiBHRVRURVIgRk9SIGYKLWc6IDUKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWc6IDExCi1EZWZpbmlu
ZyBhY2Nlc3NvcnMgZm9yIGQKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiA2Ci1TZXR0
aW5nIHZhbHVlIHRvIDEyCi1hOiAxMgotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRv
IDEzCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0
aW5nIHZhbHVlIHRvIDE0Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMTEKLVNl
dHRpbmcgdmFsdWUgdG8gMTUKLWc6IDE1Ci1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMTYK
LVNFVFRFUgotZDogR0VUVEVSCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRp
b24KLWE6IDEyCi1TZXR0aW5nIHZhbHVlIHRvIDE3Ci1hOiAxNwotYjogR0VUVEVSIEZPUiBiCi1T
ZXR0aW5nIHZhbHVlIHRvIDE4Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogOQot
U2V0dGluZyB2YWx1ZSB0byAxOQotZTogMTkKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1
ZSB0byAyMAotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDE1Ci1TZXR0aW5nIHZh
bHVlIHRvIDIxCi1nOiAyMQotZDogR0VUVEVSCi1TZXR0aW5nIHZhbHVlIHRvIDIyCi1TRVRURVIK
LWQ6IEdFVFRFUgotRGVmaW5pbmcgZGF0YSBwcm9wZXJ0eSBkIHdpdGggdmFsdWUgMjMKLVRlc3Rp
bmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiAxNwotU2V0dGluZyB2YWx1ZSB0byAyNAotYTogMjQK
LWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAyNQotU0VUVEVSIEZPUiBiCi1iOiBH
RVRURVIgRk9SIGIKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAyNgotU0VUVEVS
IEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDIxCi1TZXR0aW5nIHZhbHVlIHRvIDI3Ci1nOiAy
NwotZDogMjMKLVNldHRpbmcgdmFsdWUgdG8gMjgKLWQ6IDI4Ci1UZXN0aW5nIGdldE93blByb3Bl
cnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDI0Ci1TZXR0aW5nIHZhbHVlIHRvIDI5Ci1hOiAyOQot
YjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDMwCi1TRVRURVIgRk9SIGIKLWI6IEdF
VFRFUiBGT1IgYgotZTogMTkKLVNldHRpbmcgdmFsdWUgdG8gMzEKLWU6IDMxCi1mOiBHRVRURVIg
Rk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMzIKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBm
Ci1nOiAyNwotU2V0dGluZyB2YWx1ZSB0byAzMwotZzogMzMKLWQ6IDI4Ci1TZXR0aW5nIHZhbHVl
IHRvIDM0Ci1kOiAzNAotRGVmaW5pbmcgYWNjZXNzb3IgcHJvcGVydHkgZHVyaW5nIGVudW1lcmF0
aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTogMjkKLVNldHRpbmcgdmFsdWUg
dG8gMzUKLWE6IDM1Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMzYKLVNFVFRF
UiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUg
dG8gMzcKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAzMwotU2V0dGluZyB2YWx1
ZSB0byAzOAotZzogMzgKLURlZmluaW5nIGFjY2Vzc29ycyBmb3IgZAotZDogR0VUVEVSCi1TZXR0
aW5nIHZhbHVlIHRvIDM5Ci1TRVRURVIKLWQ6IEdFVFRFUgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1hOiAzNQotU2V0dGluZyB2YWx1ZSB0byA0MAotYTogNDAKLWI6
IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byA0MQotU0VUVEVSIEZPUiBiCi1iOiBHRVRU
RVIgRk9SIGIKLWU6IDMxCi1TZXR0aW5nIHZhbHVlIHRvIDQyCi1lOiA0MgotZjogR0VUVEVSIEZP
UiBmCi1TZXR0aW5nIHZhbHVlIHRvIDQzCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgot
ZzogMzgKLVNldHRpbmcgdmFsdWUgdG8gNDQKLWc6IDQ0Ci1kOiBHRVRURVIKLVNldHRpbmcgdmFs
dWUgdG8gNDUKLVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGR1cmlu
ZyBlbnVtZXJhdGlvbi4uLgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDQwCi1TZXR0
aW5nIHZhbHVlIHRvIDQ3Ci1hOiA0NwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRv
IDQ5Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0
aW5nIHZhbHVlIHRvIDUxCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogNDQKLVNl
dHRpbmcgdmFsdWUgdG8gNTMKLWc6IDUzCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGQgd2l0aCB2
YWx1ZSA1NAotZDogNTQKLVNldHRpbmcgdmFsdWUgdG8gNTUKLWQ6IDU1Ci1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDQ3Ci1TZXR0aW5nIHZhbHVlIHRvIDU3Ci1h
OiA1NwotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDU5Ci1TRVRURVIgRk9SIGIK
LWI6IEdFVFRFUiBGT1IgYgotZTogNDIKLVNldHRpbmcgdmFsdWUgdG8gNjEKLWU6IDYxCi1mOiBH
RVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNjMKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVS
IEZPUiBmCi1nOiA1MwotU2V0dGluZyB2YWx1ZSB0byA2NQotZzogNjUKLWQ6IDU1Ci1TZXR0aW5n
IHZhbHVlIHRvIDY3Ci1kOiA2NwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rl
c3RzL0NoYW5nZUxvZwppbmRleCBlNWFhNWIxM2NkNzBjNjg1NmRmNDc5YjUyNzA5MTU4YWY5OTk2
NzVhLi44NTBiZDY2NjM2MTU3MDg3MmMzOTM5M2ZhNDg1NzIyZTNhMGUyYTQwIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDIwLTA2LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4K
KworICAgICAgICBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2UgaXRzIGlu
c2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENoYWtyYUNvcmUueWFtbDoKKyAgICAgICAgKiBD
aGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2M6IFJlbW92
ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29y
LWRpY3Rpb25hcnkuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9yZWRlZmlu
ZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtz
L3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5qczogQWRkZWQuCisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzOgorICAg
ICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJhYmxlLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzOiBBZGRlZC4KKyAgICAgICAg
KiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktc2V0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJl
c3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9y
ZWRlZmluZS1wcm9wZXJ0eS13cml0YWJsZS5qczogQWRkZWQuCisgICAgICAgICogdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbDogTWFyayAxMiB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAt
MDYtMTcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAg
IFVwZGF0ZSB0ZXN0MjYyIHRvIGNvbW1pdCA4ZDNkZDJkMWEwYTUKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLWRpY3Rpb25hcnku
anMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1k
aWN0aW9uYXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOTcxMmVmMjIyMmZjYmMwNjA2Y2U3Y2FhOTkxODY2
ZTdmMzc5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRl
ZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5LmpzCkBAIC0wLDAgKzEsMjMgQEAKK2Nv
bnN0IG9iaiA9IHt9OworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBvYmpbImsi
ICsgaV0gPSBpOworCitmdW5jdGlvbiBnZXR0ZXIxKCkge30KK2Z1bmN0aW9uIGdldHRlcjIoKSB7
fQorZnVuY3Rpb24gc2V0dGVyMSh2KSB7fQorZnVuY3Rpb24gc2V0dGVyMih2KSB7fQorCitjb25z
dCBkZXNjR2V0MSA9IHtnZXQ6IGdldHRlcjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX07Citjb25zdCBk
ZXNjR2V0MVNldDEgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dl
dDJTZXQxID0ge2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQxU2V0
MiA9IHtnZXQ6IGdldHRlcjEsIHNldDogc2V0dGVyMn07Citjb25zdCBkZXNjR2V0MlNldDIgPSB7
Z2V0OiBnZXR0ZXIyLCBzZXQ6IHNldHRlcjJ9OworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsg
KytpKSB7CisgICAgY29uc3Qga2V5ID0gImsiICsgKGkgJSAxMDApOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0dldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShvYmosIGtleSwgZGVzY0dldDFTZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2Jq
LCBrZXksIGRlc2NHZXQyU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5
LCBkZXNjR2V0MVNldDIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVz
Y0dldDJTZXQyKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVm
aW5lLXByb3BlcnR5LWFjY2Vzc29yLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZp
bmUtcHJvcGVydHktYWNjZXNzb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJmMTU5MTY2ZDc0Zjg4OWZiMGY2
Yjk2MjhjZTU5OGNiZmJlNDJmYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1
bmN0aW9uIGdldHRlcjEoKSB7fQorZnVuY3Rpb24gZ2V0dGVyMigpIHt9CitmdW5jdGlvbiBzZXR0
ZXIxKHYpIHt9CitmdW5jdGlvbiBzZXR0ZXIyKHYpIHt9CisKK2NvbnN0IG9iaiA9IHthOiAwLCBi
OiAxLCBnZXQgZm9vKCkge30sIGM6IDMsIGQ6IDR9OworY29uc3QgZGVzY0dldDEgPSB7Z2V0OiBn
ZXR0ZXIxLCBjb25maWd1cmFibGU6IHRydWV9OworY29uc3QgZGVzY0dldDFTZXQxID0ge2dldDog
Z2V0dGVyMSwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQyU2V0MSA9IHtnZXQ6IGdldHRl
cjIsIHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MVNldDIgPSB7Z2V0OiBnZXR0ZXIxLCBz
ZXQ6IHNldHRlcjJ9OworY29uc3QgZGVzY0dldDJTZXQyID0ge2dldDogZ2V0dGVyMiwgc2V0OiBz
ZXR0ZXIyfTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjR2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iaiwgImZvbyIsIGRlc2NHZXQxU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KG9iaiwgImZvbyIsIGRlc2NHZXQyU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KG9iaiwgImZvbyIsIGRlc2NHZXQxU2V0Mik7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
aiwgImZvbyIsIGRlc2NHZXQyU2V0Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMgYi9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDQ5YzAxOGVlYTc1MDkzOWU1YTRkNjViZjlhYWU5NjhiNmYzYjE4NgotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEt
ZGljdGlvbmFyeS5qcwpAQCAtMCwwICsxLDE3IEBACitjb25zdCBvYmogPSB7fTsKK2ZvciAobGV0
IGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgb2JqWyJrIiArIGldID0gaTsKKworY29uc3QgZGVz
Y05vbldyaXRhYmxlID0ge3dyaXRhYmxlOiBmYWxzZX07Citjb25zdCBkZXNjTm9uRW51bWVyYWJs
ZSA9IHtlbnVtZXJhYmxlOiBmYWxzZX07Citjb25zdCBkZXNjV3JpdGFibGUgPSB7d3JpdGFibGU6
IHRydWV9OworY29uc3QgZGVzY0VudW1lcmFibGUgPSB7ZW51bWVyYWJsZTogdHJ1ZX07CisKK2Zv
ciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBjb25zdCBrZXkgPSAiayIgKyAoaSAl
IDEwMCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjTm9uV3JpdGFi
bGUpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY05vbkVudW1lcmFi
bGUpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY1dyaXRhYmxlKTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NFbnVtZXJhYmxlKTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHt2YWx1ZTogaX0pOworfQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qcyBi
L0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmQ2MzYwNGUyYzc3YmUwZDI1NzUzMGQ3ZmVkODU4YjdkNTBiZWMxOAotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEu
anMKQEAgLTAsMCArMSwxMyBAQAorY29uc3Qgb2JqID0ge2E6IDAsIGI6IDEsIGZvbzogMiwgYzog
MywgZDogNH07Citjb25zdCBkZXNjTm9uV3JpdGFibGUgPSB7d3JpdGFibGU6IGZhbHNlfTsKK2Nv
bnN0IGRlc2NOb25FbnVtZXJhYmxlID0ge2VudW1lcmFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NX
cml0YWJsZSA9IHt3cml0YWJsZTogdHJ1ZX07Citjb25zdCBkZXNjRW51bWVyYWJsZSA9IHtlbnVt
ZXJhYmxlOiB0cnVlfTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjTm9uV3JpdGFibGUpOworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjTm9uRW51bWVyYWJsZSk7CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NXcml0YWJsZSk7CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NFbnVtZXJhYmxlKTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwge3ZhbHVlOiBpfSk7Cit9CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpz
IGIvSlNUZXN0cy9zdHJlc3MvZGVmaW5lLW93bi1pbmRleGVkLXByb3BlcnR5LWZhc3QtcGF0aC5q
cwppbmRleCBhYzk1ZTFkMWU0ZjBmNjNhYjEwMjdhYTA1MTdjMzlmMDM3M2I0ODFmLi45ZTE3MjNh
ZGQ2ODI5YWQxNDUwNTJkMzYyYmE3ZmNiZGJhZGI2ZTY3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2RlZmluZS1vd24taW5kZXhlZC1wcm9wZXJ0eS1mYXN0LXBhdGguanMKQEAgLTEs
MTkgKzEsMTEgQEAKIGZ1bmN0aW9uIGFzc2VydFNhbWVEZXNjcmlwdG9yKGEsIGIpIHsKLSAgY29u
c3QgYVN0cmluZyA9IHN0cmluZ2lmeURlc2NyaXB0b3IoYSk7Ci0gIGNvbnN0IGJTdHJpbmcgPSBz
dHJpbmdpZnlEZXNjcmlwdG9yKGIpOworICBjb25zdCBhU3RyaW5nID0gSlNPTi5zdHJpbmdpZnko
YSwgbnVsbCwgMik7CisgIGNvbnN0IGJTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShiLCBudWxsLCAy
KTsKIAogICBpZiAoYVN0cmluZyAhPT0gYlN0cmluZykKICAgICB0aHJvdyBuZXcgRXJyb3IoYEJh
ZCBkZXNjcmlwdG9yIVxuQWN0dWFsOiAke2FTdHJpbmd9XG5FeHBlY3RlZDogJHtiU3RyaW5nfWAp
OwogfQogCi1mdW5jdGlvbiBzdHJpbmdpZnlEZXNjcmlwdG9yKGRlc2NyaXB0b3IpIHsKLSAgY29u
c3Qgc29ydGVkRGVzY3JpcHRvciA9IHt9OwotICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5
cyhkZXNjcmlwdG9yKS5zb3J0KCkpCi0gICAgc29ydGVkRGVzY3JpcHRvcltrZXldID0gZGVzY3Jp
cHRvcltrZXldOwotCi0gIHJldHVybiBKU09OLnN0cmluZ2lmeShzb3J0ZWREZXNjcmlwdG9yLCBu
dWxsLCAyKTsKLX0KLQogZnVuY3Rpb24gZ2V0Q29tYmluYXRpb25zKG9wdGlvbnMpIHsKICAgY29u
c3Qgb3B0aW9uS2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpOwogICBjb25zdCByZXN1bHRzID0g
W107CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJh
YmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZGVmZjA1MTcyMmQ1ZDIyZmYxMDdkOGUzY2I4YWFjZGFkYTRkYzdmCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJs
ZS5qcwpAQCAtMCwwICsxLDczIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnko
ZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0
WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQ
cm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgewor
ICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQg
PSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsK
KyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsK
KyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIp
IHsKKyAgICBwcm90b1trZXkxXSA9IDE7CisgICAgcHJvdG9ba2V5Ml0gPSAyOworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge2VudW1lcmFibGU6IGZhbHNlfSk7CisKKyAg
ICBjb25zdCBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gaXNL
ZXkxRW51bWVyYWJsZShvYmopIHsKKyAgICAgICAgZm9yIChsZXQga2V5IGluIG9iaikgeworICAg
ICAgICAgICAgaWYgKGtleSA9PSBrZXkxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZnVuY3Rpb24gaXNLZXkyRW51bWVyYWJsZShv
YmopIHsKKyAgICAgICAgZm9yIChsZXQga2V5IGluIG9iaikgeworICAgICAgICAgICAgaWYgKGtl
eSA9PSBrZXkyKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgbm9JbmxpbmUoaXNLZXkxRW51bWVyYWJsZSk7CisgICAgbm9JbmxpbmUo
aXNLZXkyRW51bWVyYWJsZSk7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsK
KyAgICAgICAgc2hvdWxkQmUoaXNLZXkxRW51bWVyYWJsZShjaGlsZCksIHRydWUpOworICAgICAg
ICBzaG91bGRCZShpc0tleTFFbnVtZXJhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3Vs
ZEJlKGlzS2V5MkVudW1lcmFibGUoY2hpbGQpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKGlz
S2V5MkVudW1lcmFibGUocHJvdG8pLCBmYWxzZSk7CisgICAgfQorCisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7ZW51bWVyYWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRC
ZShpc0tleTFFbnVtZXJhYmxlKGNoaWxkKSwgZmFsc2UpOworICAgIHNob3VsZEJlKGlzS2V5MUVu
dW1lcmFibGUocHJvdG8pLCBmYWxzZSk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJv
dG8sIGtleTIsIHtlbnVtZXJhYmxlOiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkyRW51bWVy
YWJsZShjaGlsZCksIHRydWUpOworICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUocHJvdG8p
LCB0cnVlKTsKK30KKwordGVzdCh7fSwgMCwgImJhciIpOwordGVzdChPYmplY3QuY3JlYXRlKG51
bGwpLCAiX19wcm90b19fIiwgMSk7CisKK3Rlc3QobWFrZURpY3Rpb25hcnkoe30pLCAiZm9vIiwg
Mik7Cit0ZXN0KG1ha2VEaWN0aW9uYXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpLCAzLCAiX19wcm90
b19fIik7CisKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCAiZm9vIiwgImJhciIpOwordGVz
dChtYWtlUG9seVByb3RvT2JqZWN0KCksIDQsIDUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJv
cGVydHktZ2V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NjJlNDljYjI0MTAzZTA5MTA1YzUxMDViODA3MGU2
NGE2OGUxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9w
ZXJ0eS1nZXQuanMKQEAgLTAsMCArMSw3MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEaWN0
aW9uYXJ5KGRpY3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAg
ICAgZGljdFsiayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK2Z1bmN0aW9uIG1h
a2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBjbGFz
cyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgIHRoaXMu
X2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5l
dyBDKCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAgICAg
Zm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlvbiB0ZXN0KHByb3RvLCBrZXkx
LCBrZXkyKSB7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7CisgICAg
ICAgIGdldDogKCkgPT4gMSwKKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOwor
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7CisgICAgICAgIGdldDog
KCkgPT4gMiwKKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgY29u
c3QgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIGdldEtleTEo
b2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5MV07CisgICAgfQorCisgICAgZnVuY3Rpb24g
Z2V0S2V5MihvYmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkyXTsKKyAgICB9CisKKyAgICBu
b0lubGluZShnZXRLZXkxKTsKKyAgICBub0lubGluZShnZXRLZXkyKTsKKworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCks
IDEpOworICAgICAgICBzaG91bGRCZShnZXRLZXkxKHByb3RvKSwgMSk7CisgICAgICAgIHNob3Vs
ZEJlKGdldEtleTIoY2hpbGQpLCAyKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byks
IDIpOworICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge2dl
dCgpIHt9fSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIHVuZGVmaW5lZCk7CisgICAg
c2hvdWxkQmUoZ2V0S2V5MShwcm90byksIHVuZGVmaW5lZCk7CisKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkocHJvdG8sIGtleTIsIHtnZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKGdl
dEtleTIoY2hpbGQpLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJlKGdldEtleTIocHJvdG8pLCB1
bmRlZmluZWQpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUo
bnVsbCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28i
LCAyKTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3By
b3RvX18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0
ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1zZXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1w
cm9wZXJ0eS1zZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAxNzZiNzhiMzVlZGQ3NTQ0Y2QyMTg0MDY3MzVk
MTNlNTVhZjc1MQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXBy
b3BlcnR5LXNldC5qcwpAQCAtMCwwICsxLDc5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURp
Y3Rpb25hcnkoZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAg
ICAgICBkaWN0WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24g
bWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNs
YXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhp
cy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
bmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAg
ICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtl
eTEsIGtleTIpIHsKKyAgICBsZXQgbmV4dFZhbHVlID0gMTA7CisKKyAgICBsZXQgdmFsdWUxOwor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwgeworICAgICAgICBzZXQodmFs
KSB7IHZhbHVlMSA9IHZhbDsgfSwKKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0p
OworCisgICAgbGV0IHZhbHVlMjsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtl
eTIsIHsKKyAgICAgICAgc2V0KHZhbCkgeyB2YWx1ZTIgPSB2YWw7IH0sCisgICAgICAgIGNvbmZp
Z3VyYWJsZTogdHJ1ZSwKKyAgICB9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0
ZShwcm90byk7CisKKyAgICBmdW5jdGlvbiBzZXRLZXkxKG9iaikgeworICAgICAgICBvYmpba2V5
MV0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gbmV4dFZhbHVlOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEtleTIob2JqKSB7CisgICAgICAgIG9ialtrZXkyXSA9
ICsrbmV4dFZhbHVlOworICAgICAgICByZXR1cm4gdmFsdWUyID09PSBuZXh0VmFsdWU7CisgICAg
fQorCisgICAgbm9JbmxpbmUoc2V0S2V5MSk7CisgICAgbm9JbmxpbmUoc2V0S2V5Mik7CisKKyAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKHNldEtl
eTEoY2hpbGQpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIHRydWUp
OworICAgICAgICBzaG91bGRCZShzZXRLZXkyKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3Vs
ZEJlKHNldEtleTIocHJvdG8pLCB0cnVlKTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkocHJvdG8sIGtleTEsIHtzZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKHNldEtl
eTEoY2hpbGQpLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIGZhbHNlKTsK
KworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge3NldCgpIHt9fSk7Cisg
ICAgc2hvdWxkQmUoc2V0S2V5MihjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzZXRLZXky
KHByb3RvKSwgZmFsc2UpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5j
cmVhdGUobnVsbCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSks
ICJmb28iLCAyKTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMs
ICJfX3Byb3RvX18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFy
Iik7Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jl
ZGVmaW5lLXByb3BlcnR5LXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyODczMDExYjRlMjcyYzg4ZGJl
MWNkOTQ1ZGY0ZjU4ZGRiYTRmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9y
ZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qcwpAQCAtMCwwICsxLDY2IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAw
MDsgKytpKQorICAgICAgICBkaWN0WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30K
KworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7
CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsg
KytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAgICBwcm90b1trZXkxXSA9IDE7CisgICAgcHJvdG9b
a2V5Ml0gPSAyOworCisgICAgY29uc3QgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKwor
ICAgIGZ1bmN0aW9uIGdldEtleTEob2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5MV07Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gZ2V0S2V5MihvYmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtr
ZXkyXTsKKyAgICB9CisKKyAgICBub0lubGluZShnZXRLZXkxKTsKKyAgICBub0lubGluZShnZXRL
ZXkyKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hv
dWxkQmUoZ2V0S2V5MShjaGlsZCksIDEpOworICAgICAgICBzaG91bGRCZShnZXRLZXkxKHByb3Rv
KSwgMSk7CisgICAgICAgIHNob3VsZEJlKGdldEtleTIoY2hpbGQpLCAyKTsKKyAgICAgICAgc2hv
dWxkQmUoZ2V0S2V5Mihwcm90byksIDIpOworICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShwcm90bywga2V5MSwge3ZhbHVlOiAzfSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGls
ZCksIDMpOworICAgIHNob3VsZEJlKGdldEtleTEocHJvdG8pLCAzKTsKKworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge3NldCgpIHt9fSk7CisgICAgc2hvdWxkQmUoZ2V0
S2V5MihjaGlsZCksIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIHVu
ZGVmaW5lZCk7Cit9CisKK3Rlc3Qoe30sIDAsICJiYXIiKTsKK3Rlc3QoT2JqZWN0LmNyZWF0ZShu
dWxsKSwgIl9fcHJvdG9fXyIsIDEpOworCit0ZXN0KG1ha2VEaWN0aW9uYXJ5KHt9KSwgImZvbyIs
IDIpOwordGVzdChtYWtlRGljdGlvbmFyeShPYmplY3QuY3JlYXRlKG51bGwpKSwgMywgIl9fcHJv
dG9fXyIpOworCit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgImZvbyIsICJiYXIiKTsKK3Rl
c3QobWFrZVBvbHlQcm90b09iamVjdCgpLCA0LCA1KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3JlZGVmaW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZp
bmUtcHJvcGVydHktd3JpdGFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ2MDU1YTg0ZmFiNjBlM2E0MGY4
MjdlM2E4ZWMwNDg0NTZkMjlkMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Jl
ZGVmaW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiBtYWtlRGljdGlvbmFyeShkaWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDAwOyArK2kpCisgICAgICAgIGRpY3RbImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0Owor
fQorCitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygp
IHsKKyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1
OyArK2kpCisgICAgICAgIGZvbygpOworICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24g
dGVzdChwcm90bywga2V5MSwga2V5MikgeworICAgIHByb3RvW2tleTFdID0gMTsKKyAgICBwcm90
b1trZXkyXSA9IDI7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7d3Jp
dGFibGU6IGZhbHNlfSk7CisKKyAgICBjb25zdCBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8p
OworICAgIGxldCBuZXh0VmFsdWUgPSAxMDsKKworICAgIGZ1bmN0aW9uIGlzS2V5MVdyaXRhYmxl
U3RyaWN0KG9iaikgeworICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICBvYmpba2V5MV0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgfSBjYXRjaCB7CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gaXNLZXkxV3JpdGFibGUob2JqKSB7CisgICAgICAgIG9ialtr
ZXkxXSA9ICsrbmV4dFZhbHVlOworICAgICAgICByZXR1cm4gb2JqW2tleTFdID09PSBuZXh0VmFs
dWU7CisgICAgfQorCisgICAgZnVuY3Rpb24gaXNLZXkyV3JpdGFibGVTdHJpY3Qob2JqKSB7Cisg
ICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9ialtrZXky
XSA9ICsrbmV4dFZhbHVlOworICAgICAgICB9IGNhdGNoIHsKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBpc0tleTJXcml0YWJsZShvYmopIHsKKyAgICAgICAgb2JqW2tleTJdID0gKytuZXh0VmFs
dWU7CisgICAgICAgIHJldHVybiBvYmpba2V5Ml0gPT09IG5leHRWYWx1ZTsKKyAgICB9CisKKyAg
ICBub0lubGluZShpc0tleTFXcml0YWJsZVN0cmljdCk7CisgICAgbm9JbmxpbmUoaXNLZXkxV3Jp
dGFibGUpOworICAgIG5vSW5saW5lKGlzS2V5MldyaXRhYmxlU3RyaWN0KTsKKyAgICBub0lubGlu
ZShpc0tleTJXcml0YWJsZSk7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7
CisgICAgICAgIHNob3VsZEJlKGlzS2V5MVdyaXRhYmxlU3RyaWN0KGNoaWxkKSwgdHJ1ZSk7Cisg
ICAgICAgIHNob3VsZEJlKGlzS2V5MVdyaXRhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNo
b3VsZEJlKGlzS2V5MldyaXRhYmxlU3RyaWN0KGNoaWxkKSwgZmFsc2UpOworICAgICAgICBzaG91
bGRCZShpc0tleTJXcml0YWJsZShwcm90byksIGZhbHNlKTsKKworICAgICAgICBkZWxldGUgY2hp
bGRba2V5MV07CisgICAgICAgIGRlbGV0ZSBjaGlsZFtrZXkyXTsKKyAgICB9CisKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHt3cml0YWJsZTogZmFsc2V9KTsKKyAgICBz
aG91bGRCZShpc0tleTFXcml0YWJsZVN0cmljdChjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRC
ZShpc0tleTFXcml0YWJsZShwcm90byksIGZhbHNlKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShwcm90bywga2V5Miwge3dyaXRhYmxlOiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXky
V3JpdGFibGVTdHJpY3QoY2hpbGQpLCB0cnVlKTsKKyAgICBzaG91bGRCZShpc0tleTJXcml0YWJs
ZShwcm90byksIHRydWUpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5j
cmVhdGUobnVsbCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSks
ICJmb28iLCAyKTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMs
ICJfX3Byb3RvX18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFy
Iik7Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRp
b25zLnlhbWwKaW5kZXggMDA4MDMxOWJjYmU3ZmNkODM1ZDNjMTBhMzJmZmY3ZjAwNzllYjY4ZS4u
OWM1NmIyODc1NTJjMDIxM2NiMTY5ZDBhZDIwMmM3ZTRjNjIxM2NkMiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbApAQCAtOTU1LDIzICs5NTUsMTQgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0
L2RlZmluZVByb3BlcnRpZXMvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10g
YW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5k
IFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvZW50cmllcy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0g
dG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ZyZWV6ZS9wcm94eS1uby1vd25rZXlzLXJl
dHVybmVkLWtleXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFsw
LCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3lt
Ym9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEp
LCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL3Byb3h5LW5vLW93bmtleXMtcmV0dXJu
ZWQta2V5cy1vcmRlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAs
IFN5bWJvbCgpLCBmb29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBj
b250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5
bWJvbCgpLCBmb29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvb3JkZXIt
YWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJv
cGVydHlTeW1ib2xzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJv
bChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBb
U3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3Qv
YnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12
YWx1ZS1mdW5jdGlvbi1hcmd1bWVudHMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq251bGzCuywgwqtbb2JqZWN0IEFyZ3VtZW50c13CuykgdG8gYmUg
dHJ1ZScKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkv
Y29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1jYWxsZXIuanM6CkBAIC05ODYsMTQgKzk3NywxMSBA
QCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaXNTZWFsZWQvcHJveHktbm8tb3dua2V5cy1yZXR1cm5l
ZC1rZXlzLW9yZGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwg
U3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3lt
Ym9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJv
cGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQg
W2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0g
YW5kIFtsZW5ndGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qvc2VhbC9w
cm94eS1uby1vd25rZXlzLXJldHVybmVkLWtleXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9s
KCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCld
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC92YWx1
ZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
LiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFth
LCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2NyZWF0ZS1yZXNvbHZpbmctZnVuY3Rpb25zLXJlamVjdC5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
dHJ1ZSBidXQgZ290IGZhbHNlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6QXN5bmNUZXN0RmFp
bHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZh
bHNlJwpAQCAtMTA1Nyw5ICsxMDQ1LDYgQEAgdGVzdC9idWlsdC1pbnMvUHJveHkvY29uc3RydWN0
L3RyYXAtaXMtbm90LWNhbGxhYmxlLXJlYWxtLmpzOgogdGVzdC9idWlsdC1pbnMvUHJveHkvb3du
S2V5cy90cmFwLWlzLXVuZGVmaW5lZC10YXJnZXQtaXMtcHJveHkuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtsZW5ndGgsIGZvbywgMCwgU3ltYm9sKCldIGFuZCBbU3lt
Ym9sKCksIGxlbmd0aCwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbGVuZ3RoLCBmb28sIDAsIFN5bWJv
bCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvUmVmbGVjdC9vd25LZXlzL29yZGVyLWFmdGVyLWRlZmlu
ZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJv
bChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm9wZXJ0eS1lc2Nh
cGVzL2dlbmVyYXRlZC9BbHBoYWJldGljLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBg
XHB7QWxwaGFiZXRpY31gIHNob3VsZCBtYXRjaCBVKzAwMUNGQSAoYOGzumApJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogYFxwe0FscGhhYmV0aWN9YCBzaG91bGQgbWF0Y2ggVSswMDFD
RkEgKGDhs7pgKScKQEAgLTMyOTcsOSArMzI4Miw2IEBAIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50
cy9mb3ItaW4vaWRlbnRpZmllci1sZXQtYWxsb3dlZC1hcy1sZWZ0aGFuZHNpZGUtZXhwcmVzc2lv
CiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogQ2Fubm90IHVzZSB0aGUga2V5d29yZCAnaW4nIGFz
IGEgbGV4aWNhbCB2YXJpYWJsZSBuYW1lLiIKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3It
aW4vbGV0LWFycmF5LXdpdGgtbmV3bGluZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uvc3RhdGVt
ZW50cy9mb3ItaW4vb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwg
YV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2xhbmd1YWdl
L3N0YXRlbWVudHMvZm9yLWluL29yZGVyLWVudW1lcmFibGUtc2hhZG93ZWQuanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403690</attachid>
            <date>2020-07-07 08:21:05 -0700</date>
            <delta_ts>2020-07-09 17:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200707182103.patch</filename>
            <type>text/plain</type>
            <size>54621</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YTU0ZjdkNmIyMTZiNWYyNTFlZDAxOWY0MzM0OGVmZWNhNjk5ZmNjLi5jMDg1YjhjODlhNjk4MzEz
MTA0MmM3MThjMzFhNmE3OGRiZjhkODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wNy0wNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgJiBwdXQgYmFjayBhIG5vbi1pbmRleGVkIHByb3BlcnR5IGp1c3QgdG8K
KyAgICAgICAgdXBkYXRlIGF0dHJpYnV0ZXMsIHdoaWNoIHdhcyBsZXNzIGVmZmljaWVudCBhbmQg
Y29ycnVwdGVkIG9ic2VydmFibGUgcHJvcGVydHkgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRj
aDoKKyAgICAgICAgMS4gUmV3cml0ZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRv
cigpIHRvIGNsb3NlbHkgcmVzZW1ibGUgdGhlIHNwZWMgWzFdLgorICAgICAgICAyLiBEcm9wcyBw
cm9wZXJ0eSBkZWxldGlvbiwgaW5saW5lcyBwdXREZXNjcmlwdG9yKCksIGFuZCBzZXRzIG5lY2Vz
c2FyeSBTdHJ1Y3R1cmUKKyAgICAgICAgICAgZmxhZ3MgaW4gYXR0cmlidXRlQ2hhbmdlVHJhbnNp
dGlvbigpLgorICAgICAgICAzLiBTaW1wbGlmaWVzIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURl
c2NyaXB0b3IoKSBhIGJpdCBieSBvYnRhaW5pbmcgR2V0dGVyU2V0dGVyCisgICAgICAgICAgIGlu
c3RhbmNlIGZyb20gY3VycmVudCBkZXNjcmlwdG9yIHJhdGhlciB0aGVuIGNhbGxpbmcgZ2V0RGly
ZWN0KCkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIHByb3BlcnR5IG9yZGVyIHdpdGgg
VjggYW5kIFNwaWRlck1vbmtleSwgYWR2YW5jaW5nIHByb3ZpZGVkCisgICAgICAgIG1pY3JvYmVu
Y2htYXJrcyBieSA1LTg1JSwgZXNwZWNpYWxseSBmb3Igb2JqZWN0cyBpbiBkaWN0aW9uYXJ5IG1v
ZGUuIFNpeFNwZWVkLAorICAgICAgICBTdW5TcGlkZXIsIGFuZCBBUkVTLTYgYXJlIGFsbCBuZXV0
cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0
ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5z
dGFuY2UuY3BwOgorICAgICAgICAoSlNDOjphcHBlbmRTb3VyY2VUb0Vycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBseVBy
b3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Ob25J
bmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3Jp
cHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNl
dHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRl
clNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisKIDIwMjAtMDctMDYgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBjYWxsT25NYWluVGhyZWFkIHNo
b3VsZCB1c2UgdGhlIHNhbWUgcXVldWUgYXMgUnVuTG9vcDo6ZGlzcGF0Y2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggZTEwOTZmMWM3
NjgxNjIzYjQ1YWU5MjkzNzk5NmRhYWIxOWMyODFiZi4uNDA1ZTNhOGQ3Mjk3Yzg5ZDQ0YTQ5Y2Iz
Mjk1YTFhYzMxYjA0MWQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JJbnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRT
b3VyY2VUb0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYQogICAgICAgICAgICAgc3RvcC0tOwogICAgICAgICBtZXNzYWdlID0gYXBwZW5kZXIobWVz
c2FnZSwgY29kZUJsb2NrLT5zb3VyY2UoKS5wcm92aWRlcigpLT5nZXRSYW5nZShzdGFydCwgc3Rv
cCkudG9TdHJpbmcoKSwgdHlwZSwgRXJyb3JJbnN0YW5jZTo6Rm91bmRBcHByb3hpbWF0ZVNvdXJj
ZSk7CiAgICAgfQotICAgIGV4Y2VwdGlvbi0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5tZXNzYWdlLCBqc1N0cmluZyh2bSwgbWVzc2FnZSkpOworICAgIGV4Y2VwdGlvbi0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBqc1N0cmluZyh2bSwgbWVzc2FnZSks
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggZmFj
Mzg4ZmNmYzU5YWNlOWI5MWJkZmJjZmViNTgyY2YzZTM3MDVhNS4uODQ3Y2M2NmMxMTQ0YmNjNWI2
MWIzNDY2MjRiNjIxNzkxMWRjMmQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtMzU1MSw0MSArMzU1MSw2IEBAIGJvb2wgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eU5hCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIHB1dERlc2NyaXB0b3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRhcmdldCwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIG9sZERlc2NyaXB0b3Ip
Ci17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmIChkZXNjcmlwdG9y
LmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkg
ewotICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgJiYgb2xkRGVz
Y3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgICAgICBKU09iamVjdCog
Z2V0dGVyID0gb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNjcmlwdG9yLmdl
dHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBv
bGREZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSA/IG9sZERlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0
KCkgOiBudWxscHRyOwotICAgICAgICAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVyKTsKLSAgICAg
ICAgICAgIHRhcmdldC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGFjY2Vzc29yLCBhdHRyaWJ1dGVzIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIEpTVmFsdWUgbmV3
VmFsdWUgPSBqc1VuZGVmaW5lZCgpOwotICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpKQot
ICAgICAgICAgICAgbmV3VmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlKCk7Ci0gICAgICAgIGVsc2Ug
aWYgKG9sZERlc2NyaXB0b3IudmFsdWUoKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gb2xkRGVz
Y3JpcHRvci52YWx1ZSgpOwotICAgICAgICB0YXJnZXQtPnB1dERpcmVjdCh2bSwgcHJvcGVydHlO
YW1lLCBuZXdWYWx1ZSwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OwotICAgICAgICBpZiAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkK
LSAgICAgICAgICAgIHRhcmdldC0+c3RydWN0dXJlKHZtKS0+c2V0Q29udGFpbnNSZWFkT25seVBy
b3BlcnRpZXMoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGF0dHJpYnV0ZXMg
Jj0gflByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKLQotICAgIEpTT2JqZWN0KiBnZXR0ZXIg
PSBkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKQotICAgICAgICA/IGRlc2NyaXB0b3IuZ2V0dGVy
T2JqZWN0KCkgOiBvbGREZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKQotICAgICAgICA/IG9sZERl
c2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiBudWxscHRyOwotICAgIEpTT2JqZWN0KiBzZXR0ZXIg
PSBkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKQotICAgICAgICA/IGRlc2NyaXB0b3Iuc2V0dGVy
T2JqZWN0KCkgOiBvbGREZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKQotICAgICAgICA/IG9sZERl
c2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkgOiBudWxscHRyOwotICAgIEdldHRlclNldHRlciogYWNj
ZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNl
dHRlcik7Ci0KLSAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3Nvcik7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdE1h
eUJlSW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQpAQCAtMzU5Myw4ICszNTU4LDcgQEAgYm9v
bCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQcm9wZXJ0eU5hbWUgcHIKICAgICByZXR1cm4gcHV0RGlyZWN0KGdsb2JhbE9iamVjdC0+
dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CiAKLS8vIDkuMS42LjMgb2YgdGhlIHNwZWMK
LS8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvaW5kZXgu
aHRtbCNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgorLy8gaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCiBi
b29sIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
Ym9vbCBpc0V4dGVuc2libGUsCiAgICAgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBib29sIGlzQ3VycmVudERlZmluZWQsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgY3Vy
cmVudCwgYm9vbCB0aHJvd0V4Y2VwdGlvbikKIHsKQEAgLTM2MDgsMTMzICszNTcyLDg4IEBAIGJv
b2wgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCoKICAgICAgICAgLy8gU3RlcCAyLmEKICAgICAgICAgaWYgKCFp
c0V4dGVuc2libGUpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsIHRocm93RXhjZXB0aW9uLCBOb25FeHRlbnNpYmxlT2JqZWN0UHJvcGVydHlEZWZpbmVF
cnJvcik7Ci0gICAgICAgIGlmICghb2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIC8vIFN0ZXAgMi5jL2QKLSAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG9sZERlc2Ny
aXB0b3I7Ci0gICAgICAgIG9sZERlc2NyaXB0b3Iuc2V0VmFsdWUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgICAgIC8vIEZJWE1FOiBzcGVjIHNheXMgdG8gYWx3YXlzIHJldHVybiB0cnVlIGhlcmUuCi0g
ICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlcygpLCBvbGREZXNjcmlwdG9y
KTsKKworICAgICAgICBpZiAob2JqZWN0KSB7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5p
c0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgYXR0cmli
dXRlcyA9IChkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3NvcikgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OworICAgICAgICAgICAgICAgIG9i
amVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3Iuc2xvd0dldHRlclNldHRlcihnbG9iYWxPYmplY3QpLCBhdHRyaWJ1dGVzKTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNHZW5l
cmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKTsKKyAgICAg
ICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpID8gZGVzY3JpcHRv
ci52YWx1ZSgpIDoganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERp
cmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgJiB+
UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAvLyBTdGVwIDMuCiAgICAgaWYgKGRl
c2NyaXB0b3IuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAvLyBTdGVwIDQu
CisKICAgICBib29sIGlzRXF1YWwgPSBjdXJyZW50LmVxdWFsVG8oZ2xvYmFsT2JqZWN0LCBkZXNj
cmlwdG9yKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgaWYg
KGlzRXF1YWwpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gU3RlcCA1LgotICAgIC8v
IEZpbHRlciBvdXQgaW52YWxpZCBjaGFuZ2VzCisgICAgLy8gU3RlcCA0LgogICAgIGlmICghY3Vy
cmVudC5jb25maWd1cmFibGUoKSkgewogICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFi
bGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
dGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VDb25maWd1cmFiaWxp
dHlFcnJvcik7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVzZW50KCkgJiYg
ZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkgIT0gY3VycmVudC5lbnVtZXJhYmxlKCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9u
LCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlRW51bWVyYWJpbGl0eUVycm9yKTsKICAgICB9
Ci0gICAgCi0gICAgLy8gU3RlcCA2LgotICAgIC8vIEEgZ2VuZXJpYyBkZXNjcmlwdG9yIGlzIHNp
bXBseSBjaGFuZ2luZyB0aGUgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorCiAg
ICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICgh
Y3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgb2JqZWN0KSB7Ci0gICAgICAg
ICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUpOwotICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwot
ICAgICAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1
cnJlbnQoY3VycmVudCksIGN1cnJlbnQpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICAKLSAgICAvLyBTdGVwIDcuCi0gICAgLy8gQ2hhbmdpbmcgYmV0d2VlbiBh
IG5vcm1hbCBwcm9wZXJ0eSBvciBhbiBhY2Nlc3NvciBwcm9wZXJ0eQotICAgIGlmIChkZXNjcmlw
dG9yLmlzRGF0YURlc2NyaXB0b3IoKSAhPSBjdXJyZW50LmlzRGF0YURlc2NyaXB0b3IoKSkgewor
ICAgICAgICAvLyBTdGVwIDUuCisgICAgICAgIC8vIENoYW5naW5nIFtbRW51bWVyYWJsZV1dIGFu
ZCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKKyAg
ICB9IGVsc2UgaWYgKGN1cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpICE9IGRlc2NyaXB0b3IuaXNE
YXRhRGVzY3JpcHRvcigpKSB7CisgICAgICAgIC8vIFN0ZXAgNi4KKyAgICAgICAgLy8gQ2hhbmdp
bmcgYmV0d2VlbiBhIGRhdGEgcHJvcGVydHkgYW5kIGFjY2Vzc29yIHByb3BlcnR5CiAgICAgICAg
IGlmICghY3VycmVudC5jb25maWd1cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJv
cGVydHlDaGFuZ2VBY2Nlc3NNZWNoYW5pc21FcnJvcik7CisgICAgfSBlbHNlIGlmIChjdXJyZW50
LmlzRGF0YURlc2NyaXB0b3IoKSAmJiBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgewor
ICAgICAgICAvLyBTdGVwIDcuCisgICAgICAgIC8vIENoYW5naW5nIHRoZSB2YWx1ZSBhbmQgYXR0
cmlidXRlcyBvZiBhbiBleGlzdGluZyBkYXRhIHByb3BlcnR5CisgICAgICAgIGlmICghY3VycmVu
dC5jb25maWd1cmFibGUoKSAmJiAhY3VycmVudC53cml0YWJsZSgpKSB7CisgICAgICAgICAgICBp
ZiAoZGVzY3JpcHRvci53cml0YWJsZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJv
cGVydHlDaGFuZ2VXcml0YWJpbGl0eUVycm9yKTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9y
LnZhbHVlKCkgJiYgIXNhbWVWYWx1ZShnbG9iYWxPYmplY3QsIGN1cnJlbnQudmFsdWUoKSwgZGVz
Y3JpcHRvci52YWx1ZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBSZWFkb25seVByb3BlcnR5Q2hhbmdlRXJy
b3IpOwogCi0gICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwot
ICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChjdXJyZW50KSwgY3VycmVudCk7Ci0gICAgfQotCi0gICAgLy8gU3RlcCA4LgotICAgIC8vIENo
YW5naW5nIHRoZSB2YWx1ZSBhbmQgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQot
ICAgIGlmIChkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoIWN1
cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKLSAgICAgICAgICAgIGlmICghY3VycmVudC53cml0YWJs
ZSgpICYmIGRlc2NyaXB0b3Iud3JpdGFibGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJs
ZVByb3BlcnR5Q2hhbmdlV3JpdGFiaWxpdHlFcnJvcik7Ci0gICAgICAgICAgICBpZiAoIWN1cnJl
bnQud3JpdGFibGUoKSkgewotICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1NhbWUgPSBzYW1lVmFsdWUoZ2xvYmFsT2Jq
ZWN0LCBjdXJyZW50LnZhbHVlKCksIGRlc2NyaXB0b3IudmFsdWUoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKCFpc1NhbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBSZWFkb25seVByb3BlcnR5
Q2hhbmdlRXJyb3IpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgIWRl
c2NyaXB0b3IudmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAo
IW9iamVjdCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBKU0NlbGw6OmRlbGV0
ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgIHJldHVybiBwdXREZXNj
cmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGRl
c2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpLCBjdXJyZW50KTsK
LSAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU3RlcCA4LgorICAgICAgICAvLyBDaGFu
Z2luZyB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5n
IGFjY2Vzc29yIHByb3BlcnR5CisgICAgICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzQWNjZXNzb3JE
ZXNjcmlwdG9yKCkpOworICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKKyAg
ICAgICAgICAgIGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLnNl
dHRlcigpICE9IGN1cnJlbnQuc2V0dGVyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8g
Y2hhbmdlIHRoZSBzZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAg
ICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmdl
dHRlcigpICE9IGN1cnJlbnQuZ2V0dGVyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8g
Y2hhbmdlIHRoZSBnZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAg
ICAgICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdl
QWNjZXNzTWVjaGFuaXNtRXJyb3IpOwogCi0gICAgLy8gU3RlcCA5LgotICAgIC8vIENoYW5naW5n
IHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgb2YgYW4gZXhpc3RpbmcgYWNjZXNzb3IgcHJvcGVydHkK
LSAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKTsKLSAgICBpZiAo
IWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVy
UHJlc2VudCgpICYmICEoY3VycmVudC5zZXR0ZXJQcmVzZW50KCkgJiYgSlNWYWx1ZTo6c3RyaWN0
RXF1YWwoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LnNldHRlcigpLCBkZXNjcmlwdG9yLnNldHRlcigp
KSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRo
cm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIHNldHRlciBvZiBhbiB1bmNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eS4iX3MpOwotICAgICAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQ
cmVzZW50KCkgJiYgIShjdXJyZW50LmdldHRlclByZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJpY3RF
cXVhbChnbG9iYWxPYmplY3QsIGN1cnJlbnQuZ2V0dGVyKCksIGRlc2NyaXB0b3IuZ2V0dGVyKCkp
KSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhy
b3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgZ2V0dGVyIG9mIGFuIHVuY29u
ZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7Ci0gICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXMo
KSAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikKLSAgICAgICAgICAgIHJldHVy
biB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmln
dXJhYmxlUHJvcGVydHlDaGFuZ2VBY2Nlc3NNZWNoYW5pc21FcnJvcik7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFN0ZXAgMTAvMTEuCiAgICAg
aWYgKCFvYmplY3QpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgYWNjZXNzb3Ig
PSBvYmplY3QtPmdldERpcmVjdCh2bSwgcHJvcGVydHlOYW1lKTsKLSAgICBpZiAoIWFjY2Vzc29y
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IG51bGxwdHI7
Ci0gICAgSlNPYmplY3QqIHNldHRlciA9IG51bGxwdHI7Ci0gICAgYm9vbCBnZXR0ZXJTZXR0ZXJD
aGFuZ2VkID0gZmFsc2U7Ci0KLSAgICBpZiAoYWNjZXNzb3IuaXNDdXN0b21HZXR0ZXJTZXR0ZXIo
KSkgewotICAgICAgICBhdXRvKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0
dGVyU2V0dGVyKj4oYWNjZXNzb3IpOwotICAgICAgICBpZiAoY3VzdG9tR2V0dGVyU2V0dGVyLT5z
ZXR0ZXIoKSkKLSAgICAgICAgICAgIHNldHRlciA9IGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0
aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0
ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OlNldHRlcik7Ci0g
ICAgICAgIGlmIChjdXN0b21HZXR0ZXJTZXR0ZXItPmdldHRlcigpKQotICAgICAgICAgICAgZ2V0
dGVyID0gZ2V0Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgSlNDdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbjo6VHlwZTo6R2V0dGVyKTsKKyAgICAvLyBTdGVwIDkuCisgICAgdW5zaWdu
ZWQgYXR0cmlidXRlcyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1
cnJlbnQpOworICAgIGlmIChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgfHwgKGN1
cnJlbnQuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSAmJiAhZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlw
dG9yKCkpKSB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6
OkFjY2Vzc29yKTsKKyAgICAgICAgSlNPYmplY3QqIGdldHRlciA9IGRlc2NyaXB0b3IuZ2V0dGVy
UHJlc2VudCgpID8gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKSA6IChjdXJyZW50LmdldHRlclBy
ZXNlbnQoKSA/IGN1cnJlbnQuZ2V0dGVyT2JqZWN0KCkgOiBudWxscHRyKTsKKyAgICAgICAgSlNP
YmplY3QqIHNldHRlciA9IGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpID8gZGVzY3JpcHRvci5z
ZXR0ZXJPYmplY3QoKSA6IChjdXJyZW50LnNldHRlclByZXNlbnQoKSA/IGN1cnJlbnQuc2V0dGVy
T2JqZWN0KCkgOiBudWxscHRyKTsKKyAgICAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIg
PSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7
CisgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGdldHRlclNldHRlciwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChhY2Nlc3Nvci5pc0dldHRlclNl
dHRlcigpKTsKLSAgICAgICAgYXV0byogZ2V0dGVyU2V0dGVyID0ganNDYXN0PEdldHRlclNldHRl
cio+KGFjY2Vzc29yKTsKLSAgICAgICAgZ2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKTsK
LSAgICAgICAgc2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5zZXR0ZXIoKTsKLSAgICB9Ci0gICAgaWYg
KGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpKSB7Ci0gICAgICAgIHNldHRlciA9IGRlc2NyaXB0
b3Iuc2V0dGVyT2JqZWN0KCk7Ci0gICAgICAgIGdldHRlclNldHRlckNoYW5nZWQgPSB0cnVlOwot
ICAgIH0KLSAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpIHsKLSAgICAgICAgZ2V0
dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKTsKLSAgICAgICAgZ2V0dGVyU2V0dGVyQ2hh
bmdlZCA9IHRydWU7CisgICAgICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0
b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSk7CisgICAgICAgIEpTVmFsdWUg
dmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlKCkgPyBkZXNjcmlwdG9yLnZhbHVlKCkgOiAoY3VycmVu
dC52YWx1ZSgpID8gY3VycmVudC52YWx1ZSgpIDoganNVbmRlZmluZWQoKSk7CisgICAgICAgIG9i
amVjdC0+cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzICYgflBy
b3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiAgICAgfQogCi0gICAgaWYgKGN1cnJlbnQuYXR0
cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmICFnZXR0ZXJTZXR0ZXJDaGFuZ2VkKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwotCi0gICAg
SlNDZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgdW5zaWduZWQg
YXR0cnMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KTsK
LSAgICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBnZXR0ZXJTZXR0ZXIsIGF0dHJzIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzc0MywxMSArMzY2Miw2IEBAIGJvb2wgSlNPYmplY3Q6
OmRlZmluZU93bk5vbkluZGV4UHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UHJvcGVydHlOCiAgICAgVk0mIHZtICA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIC8vIFRyYWNrIG9uIHRo
ZSBnbG9iYWxkYXRhIHRoYXQgd2UncmUgaW4gZGVmaW5lIHByb3BlcnR5LgotICAgIC8vIEN1cnJl
bnRseSBEZWZpbmVPd25Qcm9wZXJ0eSB1c2VzIGRlbGV0ZSB0byByZW1vdmUgcHJvcGVydGllcyB3
aGVuIHRoZXkgYXJlIGJlaW5nIHJlcGxhY2VkCi0gICAgLy8gKHBhcnRpY3VsYXJseSB3aGVuIGNo
YW5naW5nIGF0dHJpYnV0ZXMpLCBob3dldmVyIGRlbGV0ZSB3b24ndCBhbGxvdyBub24tY29uZmln
dXJhYmxlIChpLmUuCi0gICAgLy8gRG9udERlbGV0ZSkgcHJvcGVydGllcyB0byBiZSBkZWxldGVk
LiBGb3Igbm93LCB3ZSBjYW4gdXNlIHRoaXMgZmxhZyB0byBtYWtlIHRoaXMgd29yay4KLSAgICBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIGN1cnJlbnQ7
CiAgICAgYm9vbCBpc0N1cnJlbnREZWZpbmVkID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBjdXJyZW50KTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggNmIyZWYyMjQ3ZjMyZDA2NTE1ZjI3ZGY1OTUxNDRk
YzA2MGI5NTI4Ni4uMTZhNGY2OTM2ZGQ1NmU5MDhiNzM1YjZhZmJjMWYwMjkzODg5YzEzNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKQEAg
LTMxNCwxMCArMzE0LDkgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RJ
bnRlcm5hbChWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgIHB1
dERpcmVjdCh2bSwgb2Zmc2V0LCB2YWx1ZSk7CiAgICAgICAgICAgICBzdHJ1Y3R1cmUtPmRpZFJl
cGxhY2VQcm9wZXJ0eShvZmZzZXQpOwogCi0gICAgICAgICAgICBpZiAoKGF0dHJpYnV0ZXMgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgfHwgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKSkgewotICAgICAgICAgICAgICAgIEFT
U0VSVCghKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICAg
ICAgICAgIGlmIChtb2RlID09IFB1dE1vZGVEZWZpbmVPd25Qcm9wZXJ0eSAmJiAoYXR0cmlidXRl
cyAhPSBjdXJyZW50QXR0cmlidXRlcyB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRl
OjpBY2Nlc3Nvck9yQ3VzdG9tQWNjZXNzb3JPclZhbHVlKSkpCiAgICAgICAgICAgICAgICAgc2V0
U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHN0
cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVy
dHkodGhpcywgb2Zmc2V0KTsKIAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsMTAg
KzM2Nyw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwo
Vk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgICAgIHN0cnVjdHVyZS0+ZGlk
UmVwbGFjZVByb3BlcnR5KG9mZnNldCk7CiAgICAgICAgIHB1dERpcmVjdCh2bSwgb2Zmc2V0LCB2
YWx1ZSk7CiAKLSAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFj
Y2Vzc29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3IpIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JW
YWx1ZSkgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yT3JWYWx1ZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURl
ZmluZU93blByb3BlcnR5ICYmIChhdHRyaWJ1dGVzICE9IGN1cnJlbnRBdHRyaWJ1dGVzIHx8IChh
dHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yT3JDdXN0b21BY2Nlc3Nvck9y
VmFsdWUpKSkKICAgICAgICAgICAgIHNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjphdHRyaWJ1
dGVDaGFuZ2VUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRl
cykpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgc2xvdC5zZXRF
eGlzdGluZ1Byb3BlcnR5KHRoaXMsIG9mZnNldCk7CiAKICAgICAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9y
LmNwcAppbmRleCA4Y2Y4MDRmN2ExODRiMjI2ODU3ZDNlYWFkMWYwZTdhZjA2NmFkNTE3Li40YWYw
NzAzNmNkYTI2ZTlkNGE4MmVhNThhN2FiZjQ0ZWQ5NjkzMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKQEAgLTY5LDcg
KzY5LDcgQEAgdm9pZCBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldFVuZGVmaW5lZCgpCiAgICAgbV9h
dHRyaWJ1dGVzID0gUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW07CiB9CiAKLUdldHRl
clNldHRlciogUHJvcGVydHlEZXNjcmlwdG9yOjpzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCitHZXR0ZXJTZXR0ZXIqIFByb3BlcnR5RGVzY3JpcHRvcjo6c2xv
d0dldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU1ZhbHVlIGdldHRlciA9IG1fZ2V0
dGVyICYmICFtX2dldHRlci5pc1VuZGVmaW5lZCgpID8ganNDYXN0PEpTT2JqZWN0Kj4obV9nZXR0
ZXIpIDoganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKaW5kZXggODQxYjZiMGI0ZTAwMTUwNDlhZmVkNzRmMzI2
YzBjZTBmNTFjMjkxNC4uYmVlZjI1MWY2M2M5MWU4NmVlMzE3ZTg4MjQ2NjYzZGQwMDI1ZjRiNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlw
dG9yLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJv
b2wgaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSBjb25zdDsKICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzOyB9CiAgICAgSlNWYWx1ZSB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KLSAgICBHZXR0ZXJTZXR0ZXIqIHNsb3dHZXR0ZXJTZXR0
ZXIoSlNHbG9iYWxPYmplY3QqKTsgLy8gQmUgYXdhcmUgdGhhdCB0aGlzIHdpbGwgbGF6aWx5IGFs
bG9jYXRlIGEgR2V0dGVyU2V0dGVyIG9iamVjdC4gSXQncyBtdWNoIGJldHRlciB0byB1c2UgZ2V0
dGVyKCkgYW5kIHNldHRlcigpIGluZGl2aWR1YWxseSBpZiBwb3NzaWJsZS4KKyAgICBHZXR0ZXJT
ZXR0ZXIqIHNsb3dHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsgLy8gQmUgYXdh
cmUgdGhhdCB0aGlzIHdpbGwgbGF6aWx5IGFsbG9jYXRlIGEgR2V0dGVyU2V0dGVyIG9iamVjdC4g
SXQncyBtdWNoIGJldHRlciB0byB1c2UgZ2V0dGVyKCkgYW5kIHNldHRlcigpIGluZGl2aWR1YWxs
eSBpZiBwb3NzaWJsZS4KICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGdldHRlcigpIGNv
bnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgc2V0dGVyKCkgY29uc3Q7CiAgICAg
SlNPYmplY3QqIGdldHRlck9iamVjdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggMjIzNDI5MWE0OTM4ZmI1NWNhMWMzMDk2M2E1YWQ0
YmYxNTNiNjEyOC4uOGFhNmE4YThhYTE2ZTM0Mjk5M2M3NmZiYmFlYzY1MDg0MTI2YjIzNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC03MjMsNiAr
NzIzLDEyIEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9u
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFByCiAgICAgQVNTRVJUKGVudHJ5KTsKICAg
ICBlbnRyeS0+YXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAKKyAgICBpZiAoYXR0cmlidXRlcyAm
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkKKyAgICAgICAgc3RydWN0dXJlLT5zZXRDb250
YWluc1JlYWRPbmx5UHJvcGVydGllcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgIHN0cnVjdHVyZS0+c2V0SXNRdWlja1Byb3Bl
cnR5QWNjZXNzQWxsb3dlZEZvckVudW1lcmF0aW9uKGZhbHNlKTsKKwogICAgIHN0cnVjdHVyZS0+
Y2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpOwogICAgIHJldHVybiBzdHJ1Y3R1cmU7CiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYTY0NGJkOWU5YzdjNzY1NDk2MGFhYWE5MDdkNjk5YWFjOGEyNjJhOC4uZTg3MGM0YzFiZTBi
MmU1N2Y0M2RhYjYyMDYzZmFhOGY3NWUyMWZjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIw
LTA3LTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAg
ICBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBp
bmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDI5MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGpzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwt
ZHVwbGljYXRlLXByb3BlcnRpZXMuanM6CisKIDIwMjAtMDctMDcgIFRvbW9raSBJbWFpICA8VG9t
b2tpLkltYWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl0gSW1wbGVtZW50IFBhc3RlYm9hcmQ6
OndyaXRlQ3VzdG9tRGF0YSBmb3IgV2ViIEluc3BlY3RvciBDb25zb2xlIHRhYgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDExMTA4NDdkNzNhMDU2ZmE1YTgwOTkyYjg2MjVjOTli
OGI2MzhlYmUuLjM4MWE3ZTY4NWRiOGZkNjAyYmI0ZDZkNDMyOTYzNmU0MWQ3ZmU2ZmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNh
dGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTE0LDcgKzE0LDcgQEAgUEFTUyBvLmZvbyBp
cyAwCiBQQVNTIHggaXMgNAogUEFTUyBvLmZvbyBpcyAzCiBQQVNTIG8uYmFyIGlzIHVuZGVmaW5l
ZAotRkFJTCBPYmplY3Qua2V5cyhvKS5qb2luKCkgc2hvdWxkIGJlIGZvbyx0ZXN0MSxiYXIsdGVz
dDIsdGVzdDMsbmVzdC4gV2FzIHRlc3QxLHRlc3QyLHRlc3QzLGZvbyxiYXIsbmVzdC4KK1BBU1Mg
T2JqZWN0LmtleXMobykuam9pbigpIGlzICdmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3Qn
CiAKIEJhc2ljCiBQQVNTIG8gPSB7Zm9vOjF9OyBkZXNjcmlwdGlvblN0cmluZyhvLCAnZm9vJyk7
IGlzICd2YWx1ZToxIGtleXM6MSBbRUNXXVtFeHRlbnNpYmxlXScKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGll
cy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNh
dGUtcHJvcGVydGllcy5qcwppbmRleCAxMmQ0MDMyYTIwNTA4ZWFlMGEwNzhlZmUyOTVhZmRkYTll
NmMyNWJjLi5lMTdhMmM4MDliZGZkMDY4MjM5NDhmNjgwMTg3ZDIyMzJlOWZlMDkzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRl
LXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1s
aXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLmpzCkBAIC01NCw3ICs1NCw2IEBAIG8gPSB7CiBz
aG91bGRCZSgieCIsICI0Iik7CiBzaG91bGRCZSgiby5mb28iLCAiMyIpOwogc2hvdWxkQmUoIm8u
YmFyIiwgInVuZGVmaW5lZCIpOwotLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDI5
MzM+IFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0aW9u
IGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKIHNob3VsZEJlKCJPYmplY3Qua2V5cyhvKS5qb2lu
KCkiLCAiJ2Zvbyx0ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdCciKTsKIAogCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYWtyYUNvcmUueWFtbCBiL0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCmluZGV4
IDdmMWFlYTYxYzNmNzcxMTBlNTRmM2IyN2NiYjk3N2E0MDU4MDYzMWMuLjViYzkwOTk1ZGNmMWIx
OGU5NGYwNWIyMzgxMWNiYjViOTBmODcwZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hha3JhQ29y
ZS55YW1sCisrKyBiL0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCkBAIC0xNDc0LDcgKzE0NzQsNyBA
QAogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L3JlZ2V4U3BhY2UuanMKICAgY21kOiBydW5D
aGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAicmVnZXhTcGFjZS5iYXNlbGluZSIsIFtd
CiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmpzCi0gIGNt
ZDogcnVuQ2hha3JhIDpiYXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgIkVudW1lcmF0aW5nV2l0aEVT
NS5iYXNlbGluZS1qc2MiLCBbXQorICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2Vw
dGlvbiIsICJFbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFD
b3JlL3Rlc3QvZXM1L0luc3VmZmljaWVudEFyZ3VtZW50cy5qcwogICBjbWQ6IHJ1bkNoYWtyYSA6
YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJJbnN1ZmZpY2llbnRBcmd1bWVudHMuYmFzZWxpbmUi
LCBbXQogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1L3JlY3Vyc2l2ZXNldHRlci5qcwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5i
YXNlbGluZS1qc2MgYi9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRo
RVM1LmJhc2VsaW5lLWpzYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjMjhhOTQx
ODRlZTNiNmVhNGYxM2Y5YzEwYzdjNDUxMzg0YjlmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVy
YXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYworKysgL2Rldi9udWxsCkBAIC0xLDM4MiArMCwwIEBA
Ci1UZXN0IDE6IE5vbi13cml0YWJsZSwgc2ltcGxlIHR5cGUgaGFuZGxlcgotVGVzdGluZyBmb3It
aW4gZW51bWVyYXRpb24KLWQ6IGR2YWx1ZQotU2V0dGluZyB2YWx1ZSB0byAxCi1kOiAxCi1UZXN0
aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEKLVNldHRpbmcgdmFsdWUg
dG8gMgotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1UZXN0aW5nIGZv
ci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byAzCi1kOiAyCi1UZXN0aW5n
IGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8g
NAotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLVRlc3RpbmcgZm9yLWlu
IGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDUKLWQ6IDUKLVRlc3RpbmcgZ2V0
T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogNQotU2V0dGluZyB2YWx1ZSB0byA2Ci1k
OiA2Ci1DaGFuZ2luZyB3cml0YWJpbGl0eSBkdXJpbmcgZW51bWVyYXRpb24uLi4KLVRlc3Rpbmcg
Zm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLWQ6
IDYKLVNldHRpbmcgdmFsdWUgdG8gNwotZDogNgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVz
IGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLWQ6IDYKLVNl
dHRpbmcgdmFsdWUgdG8gOAotZDogNgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNldHRp
bmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDkKLWQ6
IDkKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0
YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDkKLVNldHRpbmcgdmFsdWUgdG8gMTAKLWQ6IDEwCi1G
cmVlemluZyBvYmplY3QKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGlu
ZyB2YWx1ZSB0byAxMQotZDogMTAKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJh
dGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWQ6IDEwCi0KLVRlc3QgMjogTm9uLXdy
aXRhYmxlLCBzaW1wbGUgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVu
dW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBn
ZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIK
LWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4g
ZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6
IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVt
ZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blBy
b3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgot
Q2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1p
biBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1T
ZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVt
ZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5n
IHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdy
aXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1U
ZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxp
dHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXpp
bmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFs
dWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24K
LWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDM6IE5vbi13cml0YWJs
ZSwgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1k
OiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRp
bmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24K
LWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5h
bWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcg
d3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDog
MgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMg
ZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3Jp
dGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVl
IHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0
dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgK
LWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9m
IGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0
cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6
IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0
aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDQ6IEFjY2Vzc29ycwotRGVmaW5pbmcgYWNj
ZXNzb3JzIGZvciBiCi1EZWZpbmluZyBhY2Nlc3NvcnMgZm9yIGYKLVRlc3RpbmcgZm9yLWluIGVu
dW1lcmF0aW9uCi1hOiBhVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotYTogMQotYjogR0VUVEVS
IEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDIKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBi
Ci1kOiBkVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMwotZjogR0VUVEVSIEZPUiBmCi1T
ZXR0aW5nIHZhbHVlIHRvIDQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiBnVmFs
dWUKLVNldHRpbmcgdmFsdWUgdG8gNQotZzogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVz
IGVudW1lcmF0aW9uCi1hOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDYKLWE6IDYKLWI6IEdFVFRFUiBG
T1IgYgotU2V0dGluZyB2YWx1ZSB0byA3Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgot
ZDogMwotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA4Ci1lOiBlVmFsdWUKLVNldHRpbmcgdmFsdWUg
dG8gOQotZTogOQotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDEwCi1TRVRURVIg
Rk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogNQotU2V0dGluZyB2YWx1ZSB0byAxMQotZzogMTEK
LURlZmluaW5nIGFjY2Vzc29ycyBmb3IgZAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6
IDYKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWE6IDEyCi1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcg
dmFsdWUgdG8gMTMKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9S
IGYKLVNldHRpbmcgdmFsdWUgdG8gMTQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1n
OiAxMQotU2V0dGluZyB2YWx1ZSB0byAxNQotZzogMTUKLWQ6IEdFVFRFUgotU2V0dGluZyB2YWx1
ZSB0byAxNgotU0VUVEVSCi1kOiBHRVRURVIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBl
bnVtZXJhdGlvbgotYTogMTIKLVNldHRpbmcgdmFsdWUgdG8gMTcKLWE6IDE3Ci1iOiBHRVRURVIg
Rk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMTgKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBi
Ci1lOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDE5Ci1lOiAxOQotZjogR0VUVEVSIEZPUiBmCi1TZXR0
aW5nIHZhbHVlIHRvIDIwCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMTUKLVNl
dHRpbmcgdmFsdWUgdG8gMjEKLWc6IDIxCi1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMjIK
LVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGQgd2l0aCB2YWx1ZSAy
MwotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDE3Ci1TZXR0aW5nIHZhbHVlIHRvIDI0
Ci1hOiAyNAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDI1Ci1TRVRURVIgRk9S
IGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDI2
Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMjEKLVNldHRpbmcgdmFsdWUgdG8g
MjcKLWc6IDI3Ci1kOiAyMwotU2V0dGluZyB2YWx1ZSB0byAyOAotZDogMjgKLVRlc3RpbmcgZ2V0
T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogMjQKLVNldHRpbmcgdmFsdWUgdG8gMjkK
LWE6IDI5Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMzAKLVNFVFRFUiBGT1Ig
YgotYjogR0VUVEVSIEZPUiBiCi1lOiAxOQotU2V0dGluZyB2YWx1ZSB0byAzMQotZTogMzEKLWY6
IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAzMgotU0VUVEVSIEZPUiBmCi1mOiBHRVRU
RVIgRk9SIGYKLWc6IDI3Ci1TZXR0aW5nIHZhbHVlIHRvIDMzCi1nOiAzMwotZDogMjgKLVNldHRp
bmcgdmFsdWUgdG8gMzQKLWQ6IDM0Ci1EZWZpbmluZyBhY2Nlc3NvciBwcm9wZXJ0eSBkdXJpbmcg
ZW51bWVyYXRpb24uLi4KLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiAyOQotU2V0dGlu
ZyB2YWx1ZSB0byAzNQotYTogMzUKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAz
NgotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGlu
ZyB2YWx1ZSB0byAzNwotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDMzCi1TZXR0
aW5nIHZhbHVlIHRvIDM4Ci1nOiAzOAotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBkCi1kOiBHRVRU
RVIKLVNldHRpbmcgdmFsdWUgdG8gMzkKLVNFVFRFUgotZDogR0VUVEVSCi1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDM1Ci1TZXR0aW5nIHZhbHVlIHRvIDQwCi1h
OiA0MAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQxCi1TRVRURVIgRk9SIGIK
LWI6IEdFVFRFUiBGT1IgYgotZTogMzEKLVNldHRpbmcgdmFsdWUgdG8gNDIKLWU6IDQyCi1mOiBH
RVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNDMKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVS
IEZPUiBmCi1nOiAzOAotU2V0dGluZyB2YWx1ZSB0byA0NAotZzogNDQKLWQ6IEdFVFRFUgotU2V0
dGluZyB2YWx1ZSB0byA0NQotU0VUVEVSCi1kOiBHRVRURVIKLURlZmluaW5nIGRhdGEgcHJvcGVy
dHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTog
NDAKLVNldHRpbmcgdmFsdWUgdG8gNDcKLWE6IDQ3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcg
dmFsdWUgdG8gNDkKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9S
IGYKLVNldHRpbmcgdmFsdWUgdG8gNTEKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1n
OiA0NAotU2V0dGluZyB2YWx1ZSB0byA1MwotZzogNTMKLURlZmluaW5nIGRhdGEgcHJvcGVydHkg
ZCB3aXRoIHZhbHVlIDU0Ci1kOiA1NAotU2V0dGluZyB2YWx1ZSB0byA1NQotZDogNTUKLVRlc3Rp
bmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogNDcKLVNldHRpbmcgdmFsdWUg
dG8gNTcKLWE6IDU3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNTkKLVNFVFRF
UiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiA0MgotU2V0dGluZyB2YWx1ZSB0byA2MQotZTog
NjEKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA2MwotU0VUVEVSIEZPUiBmCi1m
OiBHRVRURVIgRk9SIGYKLWc6IDUzCi1TZXR0aW5nIHZhbHVlIHRvIDY1Ci1nOiA2NQotZDogNTUK
LVNldHRpbmcgdmFsdWUgdG8gNjcKLWQ6IDY3CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZkZmY0MjRlYmQ2MjhiMzdlOGI2ZGM4MGVjOTIz
NTI3NDdjMmFkYTIuLjI2ODgzMGI1YjQzYmY3MDhjZGVkMmU4M2VkM2E2OTZjNjE0OGM4ODggMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMjAtMDctMDcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorCisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5n
ZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3JhQ29yZS55YW1sOgorICAg
ICAgICAqIENoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpz
YzogUmVtb3ZlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHkt
YWNjZXNzb3ItZGljdGlvbmFyeS5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtz
L3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2Jl
bmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2RlZmluZS1vd24taW5kZXhlZC1wcm9wZXJ0eS1mYXN0LXBhdGgu
anM6CisgICAgICAgICogc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1lcmFibGUuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanM6IEFkZGVkLgor
ICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1zZXQuanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qczogQWRkZWQuCisgICAgICAgICog
c3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDEyIHRlc3QgY2FzZXMgYXMgcGFzc2luZy4K
KwogMjAyMC0wNy0wNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAK
ICAgICAgICAgJVR5cGVkQXJyYXklLnByb3RvdHlwZS57aW5kZXhPZixsYXN0SW5kZXhPZn0gYXJl
IG5vdCBzcGVjLXBlcmZlY3QKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3Jl
ZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLWRpY3Rpb25hcnkuanMgYi9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRmOTcxMmVmMjIyMmZjYmMwNjA2Y2U3Y2FhOTkxODY2ZTdmMzc5YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nv
ci1kaWN0aW9uYXJ5LmpzCkBAIC0wLDAgKzEsMjMgQEAKK2NvbnN0IG9iaiA9IHt9OworZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBvYmpbImsiICsgaV0gPSBpOworCitmdW5jdGlv
biBnZXR0ZXIxKCkge30KK2Z1bmN0aW9uIGdldHRlcjIoKSB7fQorZnVuY3Rpb24gc2V0dGVyMSh2
KSB7fQorZnVuY3Rpb24gc2V0dGVyMih2KSB7fQorCitjb25zdCBkZXNjR2V0MSA9IHtnZXQ6IGdl
dHRlcjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX07Citjb25zdCBkZXNjR2V0MVNldDEgPSB7Z2V0OiBn
ZXR0ZXIxLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dldDJTZXQxID0ge2dldDogZ2V0dGVy
Miwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQxU2V0MiA9IHtnZXQ6IGdldHRlcjEsIHNl
dDogc2V0dGVyMn07Citjb25zdCBkZXNjR2V0MlNldDIgPSB7Z2V0OiBnZXR0ZXIyLCBzZXQ6IHNl
dHRlcjJ9OworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgY29uc3Qga2V5
ID0gImsiICsgKGkgJSAxMDApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwg
ZGVzY0dldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0dldDFT
ZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NHZXQyU2V0MSk7
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjR2V0MVNldDIpOworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0dldDJTZXQyKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29y
LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktYWNjZXNzb3Iu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGJmMTU5MTY2ZDc0Zjg4OWZiMGY2Yjk2MjhjZTU5OGNiZmJlNDJmYQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3Bl
cnR5LWFjY2Vzc29yLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGdldHRlcjEoKSB7fQor
ZnVuY3Rpb24gZ2V0dGVyMigpIHt9CitmdW5jdGlvbiBzZXR0ZXIxKHYpIHt9CitmdW5jdGlvbiBz
ZXR0ZXIyKHYpIHt9CisKK2NvbnN0IG9iaiA9IHthOiAwLCBiOiAxLCBnZXQgZm9vKCkge30sIGM6
IDMsIGQ6IDR9OworY29uc3QgZGVzY0dldDEgPSB7Z2V0OiBnZXR0ZXIxLCBjb25maWd1cmFibGU6
IHRydWV9OworY29uc3QgZGVzY0dldDFTZXQxID0ge2dldDogZ2V0dGVyMSwgc2V0OiBzZXR0ZXIx
fTsKK2NvbnN0IGRlc2NHZXQyU2V0MSA9IHtnZXQ6IGdldHRlcjIsIHNldDogc2V0dGVyMX07Citj
b25zdCBkZXNjR2V0MVNldDIgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRlcjJ9OworY29uc3Qg
ZGVzY0dldDJTZXQyID0ge2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIyfTsKKworZm9yIChsZXQg
aSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJm
b28iLCBkZXNjR2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRl
c2NHZXQxU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NH
ZXQyU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NHZXQx
U2V0Mik7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NHZXQyU2V0
Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9w
ZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmlu
ZS1wcm9wZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ5YzAxOGVlYTc1MDkz
OWU1YTRkNjViZjlhYWU5NjhiNmYzYjE4NgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5qcwpAQCAtMCww
ICsxLDE3IEBACitjb25zdCBvYmogPSB7fTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kp
CisgICAgb2JqWyJrIiArIGldID0gaTsKKworY29uc3QgZGVzY05vbldyaXRhYmxlID0ge3dyaXRh
YmxlOiBmYWxzZX07Citjb25zdCBkZXNjTm9uRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiBmYWxz
ZX07Citjb25zdCBkZXNjV3JpdGFibGUgPSB7d3JpdGFibGU6IHRydWV9OworY29uc3QgZGVzY0Vu
dW1lcmFibGUgPSB7ZW51bWVyYWJsZTogdHJ1ZX07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICBjb25zdCBrZXkgPSAiayIgKyAoaSAlIDEwMCk7CisgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjTm9uV3JpdGFibGUpOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY05vbkVudW1lcmFibGUpOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY1dyaXRhYmxlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkob2JqLCBrZXksIGRlc2NFbnVtZXJhYmxlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkob2JqLCBrZXksIHt2YWx1ZTogaX0pOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ2MzYwNGUyYzc3YmUw
ZDI1NzUzMGQ3ZmVkODU4YjdkNTBiZWMxOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKQEAgLTAsMCArMSwxMyBAQAor
Y29uc3Qgb2JqID0ge2E6IDAsIGI6IDEsIGZvbzogMiwgYzogMywgZDogNH07Citjb25zdCBkZXNj
Tm9uV3JpdGFibGUgPSB7d3JpdGFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NOb25FbnVtZXJhYmxl
ID0ge2VudW1lcmFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NXcml0YWJsZSA9IHt3cml0YWJsZTog
dHJ1ZX07Citjb25zdCBkZXNjRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiB0cnVlfTsKKworZm9y
IChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosICJmb28iLCBkZXNjTm9uV3JpdGFibGUpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosICJmb28iLCBkZXNjTm9uRW51bWVyYWJsZSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KG9iaiwgImZvbyIsIGRlc2NXcml0YWJsZSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
aiwgImZvbyIsIGRlc2NFbnVtZXJhYmxlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2Jq
LCAiZm9vIiwge3ZhbHVlOiBpfSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZWZp
bmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzIGIvSlNUZXN0cy9zdHJlc3MvZGVm
aW5lLW93bi1pbmRleGVkLXByb3BlcnR5LWZhc3QtcGF0aC5qcwppbmRleCBhYzk1ZTFkMWU0ZjBm
NjNhYjEwMjdhYTA1MTdjMzlmMDM3M2I0ODFmLi45ZTE3MjNhZGQ2ODI5YWQxNDUwNTJkMzYyYmE3
ZmNiZGJhZGI2ZTY3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9kZWZpbmUtb3duLWluZGV4
ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RlZmluZS1vd24t
aW5kZXhlZC1wcm9wZXJ0eS1mYXN0LXBhdGguanMKQEAgLTEsMTkgKzEsMTEgQEAKIGZ1bmN0aW9u
IGFzc2VydFNhbWVEZXNjcmlwdG9yKGEsIGIpIHsKLSAgY29uc3QgYVN0cmluZyA9IHN0cmluZ2lm
eURlc2NyaXB0b3IoYSk7Ci0gIGNvbnN0IGJTdHJpbmcgPSBzdHJpbmdpZnlEZXNjcmlwdG9yKGIp
OworICBjb25zdCBhU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYSwgbnVsbCwgMik7CisgIGNvbnN0
IGJTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShiLCBudWxsLCAyKTsKIAogICBpZiAoYVN0cmluZyAh
PT0gYlN0cmluZykKICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBkZXNjcmlwdG9yIVxuQWN0dWFs
OiAke2FTdHJpbmd9XG5FeHBlY3RlZDogJHtiU3RyaW5nfWApOwogfQogCi1mdW5jdGlvbiBzdHJp
bmdpZnlEZXNjcmlwdG9yKGRlc2NyaXB0b3IpIHsKLSAgY29uc3Qgc29ydGVkRGVzY3JpcHRvciA9
IHt9OwotICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkZXNjcmlwdG9yKS5zb3J0KCkp
Ci0gICAgc29ydGVkRGVzY3JpcHRvcltrZXldID0gZGVzY3JpcHRvcltrZXldOwotCi0gIHJldHVy
biBKU09OLnN0cmluZ2lmeShzb3J0ZWREZXNjcmlwdG9yLCBudWxsLCAyKTsKLX0KLQogZnVuY3Rp
b24gZ2V0Q29tYmluYXRpb25zKG9wdGlvbnMpIHsKICAgY29uc3Qgb3B0aW9uS2V5cyA9IE9iamVj
dC5rZXlzKG9wdGlvbnMpOwogICBjb25zdCByZXN1bHRzID0gW107CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJhYmxlLmpzIGIvSlNUZXN0cy9zdHJl
c3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGVmZjA1MTcy
MmQ1ZDIyZmYxMDdkOGUzY2I4YWFjZGFkYTRkYzdmCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcwpAQCAtMCwwICsxLDczIEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0
dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkgeworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0WyJrIiArIGldID0gaTsKKyAgICBy
ZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBm
dW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0
b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAgICBwcm90b1trZXkxXSA9
IDE7CisgICAgcHJvdG9ba2V5Ml0gPSAyOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90
bywga2V5Miwge2VudW1lcmFibGU6IGZhbHNlfSk7CisKKyAgICBjb25zdCBjaGlsZCA9IE9iamVj
dC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gaXNLZXkxRW51bWVyYWJsZShvYmopIHsK
KyAgICAgICAgZm9yIChsZXQga2V5IGluIG9iaikgeworICAgICAgICAgICAgaWYgKGtleSA9PSBr
ZXkxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgZnVuY3Rpb24gaXNLZXkyRW51bWVyYWJsZShvYmopIHsKKyAgICAgICAgZm9yIChs
ZXQga2V5IGluIG9iaikgeworICAgICAgICAgICAgaWYgKGtleSA9PSBrZXkyKSByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbm9Jbmxp
bmUoaXNLZXkxRW51bWVyYWJsZSk7CisgICAgbm9JbmxpbmUoaXNLZXkyRW51bWVyYWJsZSk7CisK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoaXNL
ZXkxRW51bWVyYWJsZShjaGlsZCksIHRydWUpOworICAgICAgICBzaG91bGRCZShpc0tleTFFbnVt
ZXJhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUo
Y2hpbGQpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUocHJvdG8p
LCBmYWxzZSk7CisgICAgfQorCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkx
LCB7ZW51bWVyYWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRCZShpc0tleTFFbnVtZXJhYmxlKGNo
aWxkKSwgZmFsc2UpOworICAgIHNob3VsZEJlKGlzS2V5MUVudW1lcmFibGUocHJvdG8pLCBmYWxz
ZSk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHtlbnVtZXJhYmxl
OiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkyRW51bWVyYWJsZShjaGlsZCksIHRydWUpOwor
ICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUocHJvdG8pLCB0cnVlKTsKK30KKwordGVzdCh7
fSwgMCwgImJhciIpOwordGVzdChPYmplY3QuY3JlYXRlKG51bGwpLCAiX19wcm90b19fIiwgMSk7
CisKK3Rlc3QobWFrZURpY3Rpb25hcnkoe30pLCAiZm9vIiwgMik7Cit0ZXN0KG1ha2VEaWN0aW9u
YXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpLCAzLCAiX19wcm90b19fIik7CisKK3Rlc3QobWFrZVBv
bHlQcm90b09iamVjdCgpLCAiZm9vIiwgImJhciIpOwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0
KCksIDQsIDUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHkt
Z2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI4NjJlNDljYjI0MTAzZTA5MTA1YzUxMDViODA3MGU2NGE2OGUxM2YKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanMKQEAgLTAsMCAr
MSw3MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTog
IiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KGRpY3QpIHsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgZGljdFsiayIgKyBpXSA9IGk7
CisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7
CisgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBjbGFzcyBDIHsKKyAgICAgICAgICAgIGNv
bnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0gNDI7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBDKCk7CisgICAgfQorICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZv
bygpOworfQorCitmdW5jdGlvbiB0ZXN0KHByb3RvLCBrZXkxLCBrZXkyKSB7CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7CisgICAgICAgIGdldDogKCkgPT4gMSwKKyAg
ICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHByb3RvLCBrZXkyLCB7CisgICAgICAgIGdldDogKCkgPT4gMiwKKyAgICAgICAgY29u
ZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgY29uc3QgY2hpbGQgPSBPYmplY3QuY3Jl
YXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIGdldEtleTEob2JqKSB7CisgICAgICAgIHJldHVy
biBvYmpba2V5MV07CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0S2V5MihvYmopIHsKKyAgICAg
ICAgcmV0dXJuIG9ialtrZXkyXTsKKyAgICB9CisKKyAgICBub0lubGluZShnZXRLZXkxKTsKKyAg
ICBub0lubGluZShnZXRLZXkyKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIDEpOworICAgICAgICBzaG91bGRC
ZShnZXRLZXkxKHByb3RvKSwgMSk7CisgICAgICAgIHNob3VsZEJlKGdldEtleTIoY2hpbGQpLCAy
KTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIDIpOworICAgIH0KKworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge2dldCgpIHt9fSk7CisgICAgc2hvdWxk
QmUoZ2V0S2V5MShjaGlsZCksIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MShwcm90
byksIHVuZGVmaW5lZCk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIs
IHtnZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKGdldEtleTIoY2hpbGQpLCB1bmRlZmlu
ZWQpOworICAgIHNob3VsZEJlKGdldEtleTIocHJvdG8pLCB1bmRlZmluZWQpOworfQorCit0ZXN0
KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJfX3Byb3RvX18iLCAx
KTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rlc3QobWFrZURpY3Rp
b25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsKKwordGVzdChtYWtl
UG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmpl
Y3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0
eS1zZXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1zZXQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDAxNzZiNzhiMzVlZGQ3NTQ0Y2QyMTg0MDY3MzVkMTNlNTVhZjc1MQotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXNldC5qcwpAQCAtMCww
ICsxLDc5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVl
OiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkgeworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0WyJrIiArIGldID0g
aTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVjdCgp
IHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAg
Y29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1cm4g
Zm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAgICBsZXQg
bmV4dFZhbHVlID0gMTA7CisKKyAgICBsZXQgdmFsdWUxOworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShwcm90bywga2V5MSwgeworICAgICAgICBzZXQodmFsKSB7IHZhbHVlMSA9IHZhbDsgfSwK
KyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgbGV0IHZhbHVlMjsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHsKKyAgICAgICAgc2V0KHZh
bCkgeyB2YWx1ZTIgPSB2YWw7IH0sCisgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgICB9
KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisKKyAgICBmdW5j
dGlvbiBzZXRLZXkxKG9iaikgeworICAgICAgICBvYmpba2V5MV0gPSArK25leHRWYWx1ZTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gbmV4dFZhbHVlOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNldEtleTIob2JqKSB7CisgICAgICAgIG9ialtrZXkyXSA9ICsrbmV4dFZhbHVlOworICAgICAg
ICByZXR1cm4gdmFsdWUyID09PSBuZXh0VmFsdWU7CisgICAgfQorCisgICAgbm9JbmxpbmUoc2V0
S2V5MSk7CisgICAgbm9JbmxpbmUoc2V0S2V5Mik7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKHNldEtleTEoY2hpbGQpLCB0cnVlKTsKKyAg
ICAgICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIHRydWUpOworICAgICAgICBzaG91bGRCZShz
ZXRLZXkyKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKHNldEtleTIocHJvdG8pLCB0
cnVlKTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHtz
ZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKHNldEtleTEoY2hpbGQpLCBmYWxzZSk7Cisg
ICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIGZhbHNlKTsKKworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShwcm90bywga2V5Miwge3NldCgpIHt9fSk7CisgICAgc2hvdWxkQmUoc2V0S2V5Mihj
aGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzZXRLZXkyKHByb3RvKSwgZmFsc2UpOworfQor
Cit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJfX3Byb3Rv
X18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rlc3QobWFr
ZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsKKwordGVz
dChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQb2x5UHJv
dG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1w
cm9wZXJ0eS12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXZhbHVl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUyODczMDExYjRlMjcyYzg4ZGJlMWNkOTQ1ZGY0ZjU4ZGRiYTRmNGUK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS12YWx1
ZS5qcwpAQCAtMCwwICsxLDY2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnko
ZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0
WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQ
cm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgewor
ICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQg
PSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsK
KyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsK
KyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIp
IHsKKyAgICBwcm90b1trZXkxXSA9IDE7CisgICAgcHJvdG9ba2V5Ml0gPSAyOworCisgICAgY29u
c3QgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIGdldEtleTEo
b2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5MV07CisgICAgfQorCisgICAgZnVuY3Rpb24g
Z2V0S2V5MihvYmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkyXTsKKyAgICB9CisKKyAgICBu
b0lubGluZShnZXRLZXkxKTsKKyAgICBub0lubGluZShnZXRLZXkyKTsKKworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCks
IDEpOworICAgICAgICBzaG91bGRCZShnZXRLZXkxKHByb3RvKSwgMSk7CisgICAgICAgIHNob3Vs
ZEJlKGdldEtleTIoY2hpbGQpLCAyKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byks
IDIpOworICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge3Zh
bHVlOiAzfSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIDMpOworICAgIHNob3VsZEJl
KGdldEtleTEocHJvdG8pLCAzKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywg
a2V5Miwge3NldCgpIHt9fSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MihjaGlsZCksIHVuZGVmaW5l
ZCk7CisgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIHVuZGVmaW5lZCk7Cit9CisKK3Rlc3Qo
e30sIDAsICJiYXIiKTsKK3Rlc3QoT2JqZWN0LmNyZWF0ZShudWxsKSwgIl9fcHJvdG9fXyIsIDEp
OworCit0ZXN0KG1ha2VEaWN0aW9uYXJ5KHt9KSwgImZvbyIsIDIpOwordGVzdChtYWtlRGljdGlv
bmFyeShPYmplY3QuY3JlYXRlKG51bGwpKSwgMywgIl9fcHJvdG9fXyIpOworCit0ZXN0KG1ha2VQ
b2x5UHJvdG9PYmplY3QoKSwgImZvbyIsICJiYXIiKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVj
dCgpLCA0LCA1KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5
LXdyaXRhYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktd3JpdGFibGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDQ2MDU1YTg0ZmFiNjBlM2E0MGY4MjdlM2E4ZWMwNDg0NTZkMjlkMwot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXdyaXRh
YmxlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBtYWtlRGljdGlvbmFy
eShkaWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIGRp
Y3RbImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQorCitmdW5jdGlvbiBtYWtlUG9s
eVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7
CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVs
ZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygp
OworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyArK2kpCisgICAgICAgIGZvbygp
OworICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVzdChwcm90bywga2V5MSwga2V5
MikgeworICAgIHByb3RvW2tleTFdID0gMTsKKyAgICBwcm90b1trZXkyXSA9IDI7CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7d3JpdGFibGU6IGZhbHNlfSk7CisKKyAg
ICBjb25zdCBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworICAgIGxldCBuZXh0VmFsdWUg
PSAxMDsKKworICAgIGZ1bmN0aW9uIGlzS2V5MVdyaXRhYmxlU3RyaWN0KG9iaikgeworICAgICAg
ICAidXNlIHN0cmljdCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvYmpba2V5MV0gPSAr
K25leHRWYWx1ZTsKKyAgICAgICAgfSBjYXRjaCB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZnVuY3Rpb24g
aXNLZXkxV3JpdGFibGUob2JqKSB7CisgICAgICAgIG9ialtrZXkxXSA9ICsrbmV4dFZhbHVlOwor
ICAgICAgICByZXR1cm4gb2JqW2tleTFdID09PSBuZXh0VmFsdWU7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gaXNLZXkyV3JpdGFibGVTdHJpY3Qob2JqKSB7CisgICAgICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9ialtrZXkyXSA9ICsrbmV4dFZhbHVlOworICAg
ICAgICB9IGNhdGNoIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpc0tleTJXcml0YWJsZShv
YmopIHsKKyAgICAgICAgb2JqW2tleTJdID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiBv
Ympba2V5Ml0gPT09IG5leHRWYWx1ZTsKKyAgICB9CisKKyAgICBub0lubGluZShpc0tleTFXcml0
YWJsZVN0cmljdCk7CisgICAgbm9JbmxpbmUoaXNLZXkxV3JpdGFibGUpOworICAgIG5vSW5saW5l
KGlzS2V5MldyaXRhYmxlU3RyaWN0KTsKKyAgICBub0lubGluZShpc0tleTJXcml0YWJsZSk7CisK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGlz
S2V5MVdyaXRhYmxlU3RyaWN0KGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5
MVdyaXRhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MldyaXRhYmxl
U3RyaWN0KGNoaWxkKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShpc0tleTJXcml0YWJsZShw
cm90byksIGZhbHNlKTsKKworICAgICAgICBkZWxldGUgY2hpbGRba2V5MV07CisgICAgICAgIGRl
bGV0ZSBjaGlsZFtrZXkyXTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJv
dG8sIGtleTEsIHt3cml0YWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRCZShpc0tleTFXcml0YWJs
ZVN0cmljdChjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShpc0tleTFXcml0YWJsZShwcm90
byksIGZhbHNlKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge3dy
aXRhYmxlOiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkyV3JpdGFibGVTdHJpY3QoY2hpbGQp
LCB0cnVlKTsKKyAgICBzaG91bGRCZShpc0tleTJXcml0YWJsZShwcm90byksIHRydWUpOworfQor
Cit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJfX3Byb3Rv
X18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rlc3QobWFr
ZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsKKwordGVz
dChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQb2x5UHJv
dG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRp
b25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggMzQwODU5
NzRiM2UzYmQyOGFhMWMwOWFlMWUzN2VjYjYwNDZhOTg4Mi4uMTM5OGI3NDkyYjRkYjVmZWU3MWYy
MDYyZDEzMmNiOWMxYTlhZTMwMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtOTI1
LDIzICs5MjUsMTQgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2RlZmluZVByb3BlcnRpZXMvcHJv
eHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgp
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvZW50cmll
cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMu
ICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2Es
IGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVd
IGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1p
bnMvT2JqZWN0L2ZyZWV6ZS9wcm94eS1uby1vd25rZXlzLXJldHVybmVkLWtleXMtb3JkZXIuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBh
bmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQg
WzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVp
bHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL29yZGVyLWFmdGVyLWRlZmlu
ZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJv
bChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JzL3Byb3h5LW5vLW93bmtleXMtcmV0dXJuZWQta2V5cy1vcmRlci5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBb
MCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBbMCwg
Zm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1p
bnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBi
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
LiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlTeW1ib2xzL29yZGVyLWFm
dGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYild
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRl
cm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5jdGlvbi1hcmd1bWVu
dHMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq251
bGzCuywgwqtbb2JqZWN0IEFyZ3VtZW50c13CuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5j
dGlvbi1jYWxsZXIuanM6CkBAIC05NTYsMTQgKzk0NywxMSBAQCB0ZXN0L2J1aWx0LWlucy9PYmpl
Y3QvaXNTZWFsZWQvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFsw
LCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBm
b28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlu
cy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFti
LCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5ndGgsIGFdIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qvc2VhbC9wcm94eS1uby1vd25rZXlzLXJldHVy
bmVkLWtleXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFsw
LCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBT
eW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC92YWx1ZXMvb3JkZXItYWZ0ZXItZGVmaW5l
LXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0g
YW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9hcHBseS9hcmd1bWVudHMtcmVhbG0u
anM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Z1bmN0
aW9uIEFycmF5KCkgeycKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq2Z1bmN0aW9uIEFycmF5KCkgeycKQEAgLTEwMDMsOSArOTkxLDYgQEAgdGVzdC9i
dWlsdC1pbnMvUHJveHkvY29uc3RydWN0L3RyYXAtaXMtbm90LWNhbGxhYmxlLXJlYWxtLmpzOgog
dGVzdC9idWlsdC1pbnMvUHJveHkvb3duS2V5cy90cmFwLWlzLXVuZGVmaW5lZC10YXJnZXQtaXMt
cHJveHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtsZW5ndGgsIGZv
bywgMCwgU3ltYm9sKCldIGFuZCBbU3ltYm9sKCksIGxlbmd0aCwgZm9vLCAwXSB0byBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBbbGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywg
MF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvUmVmbGVjdC9v
d25LZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwg
U3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9s
KGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQt
aW5zL1JlZ0V4cC9wcm9wZXJ0eS1lc2NhcGVzL2dlbmVyYXRlZC9BbHBoYWJldGljLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgXHB7QWxwaGFiZXRpY31gIHNob3VsZCBtYXRjaCBVKzAw
MUNGQSAoYOGzumApJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYFxwe0FscGhhYmV0
aWN9YCBzaG91bGQgbWF0Y2ggVSswMDFDRkEgKGDhs7pgKScKQEAgLTMyMTksOSArMzIwNCw2IEBA
IHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vaWRlbnRpZmllci1sZXQtYWxsb3dlZC1h
cy1sZWZ0aGFuZHNpZGUtZXhwcmVzc2lvCiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogQ2Fubm90
IHVzZSB0aGUga2V5d29yZCAnaW4nIGFzIGEgbGV4aWNhbCB2YXJpYWJsZSBuYW1lLiIKIHRlc3Qv
bGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vbGV0LWFycmF5LXdpdGgtbmV3bGluZS5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LicKLXRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vb3JkZXItYWZ0ZXItZGVmaW5lLXBy
b3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5k
IFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCiB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWluL29yZGVyLWVudW1lcmFi
bGUtc2hhZG93ZWQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwg
cDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403934</attachid>
            <date>2020-07-09 17:10:53 -0700</date>
            <delta_ts>2020-07-14 23:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200710031051.patch</filename>
            <type>text/plain</type>
            <size>54348</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li41ZDhmMjJkZjU3ZWFiOGRi
MmQxNTVjZjAwZjkyMDk1M2MxNDM1N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wNy0wOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVkZWZpbmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdl
IGl0cyBpbnNlcnRpb24gaW5kZXggKE9iamVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBKU0Mg
dXNlZCB0byBkZWxldGUgJiBwdXQgYmFjayBhIG5vbi1pbmRleGVkIHByb3BlcnR5IGp1c3QgdG8K
KyAgICAgICAgdXBkYXRlIGF0dHJpYnV0ZXMsIHdoaWNoIHdhcyBsZXNzIGVmZmljaWVudCBhbmQg
Y29ycnVwdGVkIG9ic2VydmFibGUgcHJvcGVydHkgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRj
aDoKKyAgICAgICAgMS4gUmV3cml0ZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRv
cigpIHRvIGNsb3NlbHkgcmVzZW1ibGUgdGhlIHNwZWMgWzFdLgorICAgICAgICAyLiBEcm9wcyBw
cm9wZXJ0eSBkZWxldGlvbiwgaW5saW5lcyBwdXREZXNjcmlwdG9yKCksIGFuZCBzZXRzIG5lY2Vz
c2FyeSBTdHJ1Y3R1cmUKKyAgICAgICAgICAgZmxhZ3MgaW4gYXR0cmlidXRlQ2hhbmdlVHJhbnNp
dGlvbigpLgorICAgICAgICAzLiBTaW1wbGlmaWVzIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURl
c2NyaXB0b3IoKSBhIGJpdCBieSBvYnRhaW5pbmcgR2V0dGVyU2V0dGVyCisgICAgICAgICAgIGlu
c3RhbmNlIGZyb20gY3VycmVudCBkZXNjcmlwdG9yIHJhdGhlciB0aGVuIGNhbGxpbmcgZ2V0RGly
ZWN0KCkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIHByb3BlcnR5IG9yZGVyIHdpdGgg
VjggYW5kIFNwaWRlck1vbmtleSwgYWR2YW5jaW5nIHByb3ZpZGVkCisgICAgICAgIG1pY3JvYmVu
Y2htYXJrcyBieSA1LTg1JSwgZXNwZWNpYWxseSBmb3Igb2JqZWN0cyBpbiBkaWN0aW9uYXJ5IG1v
ZGUuIFNpeFNwZWVkLAorICAgICAgICBTdW5TcGlkZXIsIGFuZCBBUkVTLTYgYXJlIGFsbCBuZXV0
cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0
ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcik6
CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KToKKyAg
ICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9K
U09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdEludGVy
bmFsKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHA6CisgICAgICAg
IChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlciBjb25zdCk6CisgICAg
ICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YXR0cmlidXRlQ2hh
bmdlVHJhbnNpdGlvbik6CisKIDIwMjAtMDctMDkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjYyMzAyKTogSVRNTEtpdCBkZWJ1Z2dhYmxlcyBp
biBsaXN0aW5ncyBhcmUgbWlzc2luZyBhIHRpdGxlLCB1c2UgVVVJRCBpbnN0ZWFkCkBAIC0yMiw3
ICs1OCw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBwdXREaXJlY3QoKSBjYWxsIGRpZG4ndCBwYXNz
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bS4gQW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLAog
ICAgICAgICB0aGF0IGlzIGFib3V0IHRvIGNoYW5nZSBpbiBodHRwczovL3dlYmtpdC5vcmcvYi8x
NDI5MzMsIHByZXZlbnRlZCAibWVzc2FnZSIgcHJvcGVydHkgZnJvbQotICAgICAgICBiZWluZCBy
ZWRlZmluZWQgd2l0aCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZS4KKyAgICAgICAgYmVpbmcgcmVk
ZWZpbmVkIHdpdGggUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUuCiAKICAgICAgICAgTm8gYmVoYXZp
b3IgY2hhbmdlLiBBZHZhbmNlcyBwcm92aWRlZCBtaWNyb2JlbmNobWFyayBieSA1JS4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGZhYzM4OGZjZmM1
OWFjZTliOTFiZGZiY2ZlYjU4MmNmM2UzNzA1YTUuLjg0N2NjNjZjMTE0NGJjYzViNjFiMzQ2NjI0
YjYyMTc5MTFkYzJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKQEAgLTM1NTEsNDEgKzM1NTEsNiBAQCBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYQogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBwdXREZXNjcmlwdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdW5zaWduZWQgYXR0
cmlidXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBvbGREZXNjcmlwdG9yKQotewotICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVy
aWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKLSAgICAg
ICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpICYmIG9sZERlc2NyaXB0b3Iu
aXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewotICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlciA9
IG9sZERlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpID8gb2xkRGVzY3JpcHRvci5nZXR0ZXJPYmpl
Y3QoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICBKU09iamVjdCogc2V0dGVyID0gb2xkRGVzY3Jp
cHRvci5zZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDogbnVs
bHB0cjsKLSAgICAgICAgICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7Ci0gICAgICAgICAgICB0
YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBhY2Nl
c3NvciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBKU1ZhbHVlIG5ld1ZhbHVlID0g
anNVbmRlZmluZWQoKTsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSkKLSAgICAgICAg
ICAgIG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpOwotICAgICAgICBlbHNlIGlmIChvbGRE
ZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAgICBuZXdWYWx1ZSA9IG9sZERlc2NyaXB0b3Iu
dmFsdWUoKTsKLSAgICAgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgbmV3
VmFsdWUsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLSAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCi0gICAgICAg
ICAgICB0YXJnZXQtPnN0cnVjdHVyZSh2bSktPnNldENvbnRhaW5zUmVhZE9ubHlQcm9wZXJ0aWVz
KCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBhdHRyaWJ1dGVzICY9IH5Qcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7Ci0KLSAgICBKU09iamVjdCogZ2V0dGVyID0gZGVzY3Jp
cHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9yLmdldHRlck9iamVjdCgp
IDogb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBvbGREZXNjcmlwdG9y
LmdldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBKU09iamVjdCogc2V0dGVyID0gZGVzY3Jp
cHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9yLnNldHRlck9iamVjdCgp
IDogb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBvbGREZXNjcmlwdG9y
LnNldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0g
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwot
Ci0gICAgdGFyZ2V0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwot
ICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RNYXlCZUluZGV4
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSkKQEAgLTM1OTMsOCArMzU1OCw3IEBAIGJvb2wgSlNPYmpl
Y3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJv
cGVydHlOYW1lIHByCiAgICAgcmV0dXJuIHB1dERpcmVjdChnbG9iYWxPYmplY3QtPnZtKCksIHBy
b3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCi0vLyA5LjEuNi4zIG9mIHRoZSBzcGVjCi0vLyBodHRw
Oi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wL2luZGV4Lmh0bWwjc2Vj
LXZhbGlkYXRlYW5kYXBwbHlwcm9wZXJ0eWRlc2NyaXB0b3IKKy8vIGh0dHBzOi8vdGMzOS5lcy9l
Y21hMjYyLyNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvcgogYm9vbCB2YWxp
ZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGJvb2wgaXNF
eHRlbnNpYmxlLAogICAgIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9v
bCBpc0N1cnJlbnREZWZpbmVkLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJlbnQsIGJv
b2wgdGhyb3dFeGNlcHRpb24pCiB7CkBAIC0zNjA4LDEzMyArMzU3Miw4OCBAQCBib29sIHZhbGlk
YXRlQW5kQXBwbHlQcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqCiAgICAgICAgIC8vIFN0ZXAgMi5hCiAgICAgICAgIGlmICghaXNFeHRlbnNp
YmxlKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0
aHJvd0V4Y2VwdGlvbiwgTm9uRXh0ZW5zaWJsZU9iamVjdFByb3BlcnR5RGVmaW5lRXJyb3IpOwot
ICAgICAgICBpZiAoIW9iamVjdCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAv
LyBTdGVwIDIuYy9kCi0gICAgICAgIFByb3BlcnR5RGVzY3JpcHRvciBvbGREZXNjcmlwdG9yOwot
ICAgICAgICBvbGREZXNjcmlwdG9yLnNldFZhbHVlKGpzVW5kZWZpbmVkKCkpOwotICAgICAgICAv
LyBGSVhNRTogc3BlYyBzYXlzIHRvIGFsd2F5cyByZXR1cm4gdHJ1ZSBoZXJlLgotICAgICAgICBy
ZXR1cm4gcHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXMoKSwgb2xkRGVzY3JpcHRvcik7CisKKyAg
ICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3Nv
ckRlc2NyaXB0b3IoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAo
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICYg
flByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICBvYmplY3QtPnB1
dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnNs
b3dHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0KSwgYXR0cmlidXRlcyk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2Ny
aXB0b3IoKSB8fCBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSk7CisgICAgICAgICAgICAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUoKSA/IGRlc2NyaXB0b3IudmFsdWUo
KSA6IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0s
IHByb3BlcnR5TmFtZSwgdmFsdWUsIGRlc2NyaXB0b3IuYXR0cmlidXRlcygpICYgflByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3Nvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgLy8gU3RlcCAzLgogICAgIGlmIChkZXNjcmlwdG9y
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgLy8gU3RlcCA0LgorCiAgICAg
Ym9vbCBpc0VxdWFsID0gY3VycmVudC5lcXVhbFRvKGdsb2JhbE9iamVjdCwgZGVzY3JpcHRvcik7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgIGlmIChpc0VxdWFs
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIFN0ZXAgNS4KLSAgICAvLyBGaWx0ZXIg
b3V0IGludmFsaWQgY2hhbmdlcworICAgIC8vIFN0ZXAgNC4KICAgICBpZiAoIWN1cnJlbnQuY29u
ZmlndXJhYmxlKCkpIHsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhj
ZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQ29uZmlndXJhYmlsaXR5RXJyb3Ip
OwogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0
b3IuZW51bWVyYWJsZSgpICE9IGN1cnJlbnQuZW51bWVyYWJsZSgpKQogICAgICAgICAgICAgcmV0
dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25m
aWd1cmFibGVQcm9wZXJ0eUNoYW5nZUVudW1lcmFiaWxpdHlFcnJvcik7CiAgICAgfQotICAgIAot
ICAgIC8vIFN0ZXAgNi4KLSAgICAvLyBBIGdlbmVyaWMgZGVzY3JpcHRvciBpcyBzaW1wbHkgY2hh
bmdpbmcgdGhlIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKKwogICAgIGlmIChk
ZXNjcmlwdG9yLmlzR2VuZXJpY0Rlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoIWN1cnJlbnQu
YXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmIG9iamVjdCkgewotICAgICAgICAgICAgSlND
ZWxsOjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsK
LSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAg
ICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1
cnJlbnQpLCBjdXJyZW50KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0gICAgCi0gICAgLy8gU3RlcCA3LgotICAgIC8vIENoYW5naW5nIGJldHdlZW4gYSBub3JtYWwg
cHJvcGVydHkgb3IgYW4gYWNjZXNzb3IgcHJvcGVydHkKLSAgICBpZiAoZGVzY3JpcHRvci5pc0Rh
dGFEZXNjcmlwdG9yKCkgIT0gY3VycmVudC5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAg
Ly8gU3RlcCA1LgorICAgICAgICAvLyBDaGFuZ2luZyBbW0VudW1lcmFibGVdXSBhbmQgW1tDb25m
aWd1cmFibGVdXSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CisgICAgfSBlbHNl
IGlmIChjdXJyZW50LmlzRGF0YURlc2NyaXB0b3IoKSAhPSBkZXNjcmlwdG9yLmlzRGF0YURlc2Ny
aXB0b3IoKSkgeworICAgICAgICAvLyBTdGVwIDYuCisgICAgICAgIC8vIENoYW5naW5nIGJldHdl
ZW4gYSBkYXRhIHByb3BlcnR5IGFuZCBhY2Nlc3NvciBwcm9wZXJ0eQogICAgICAgICBpZiAoIWN1
cnJlbnQuY29uZmlndXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hh
bmdlQWNjZXNzTWVjaGFuaXNtRXJyb3IpOworICAgIH0gZWxzZSBpZiAoY3VycmVudC5pc0RhdGFE
ZXNjcmlwdG9yKCkgJiYgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKKyAgICAgICAg
Ly8gU3RlcCA3LgorICAgICAgICAvLyBDaGFuZ2luZyB0aGUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMg
b2YgYW4gZXhpc3RpbmcgZGF0YSBwcm9wZXJ0eQorICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmln
dXJhYmxlKCkgJiYgIWN1cnJlbnQud3JpdGFibGUoKSkgeworICAgICAgICAgICAgaWYgKGRlc2Ny
aXB0b3Iud3JpdGFibGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hh
bmdlV3JpdGFiaWxpdHlFcnJvcik7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgp
ICYmICFzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LnZhbHVlKCksIGRlc2NyaXB0b3Iu
dmFsdWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgUmVhZG9ubHlQcm9wZXJ0eUNoYW5nZUVycm9yKTsKIAot
ICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAg
IEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAg
cmV0dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVu
dCksIGN1cnJlbnQpOwotICAgIH0KLQotICAgIC8vIFN0ZXAgOC4KLSAgICAvLyBDaGFuZ2luZyB0
aGUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKLSAgICBpZiAo
ZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpIHsKLSAgICAgICAgaWYgKCFjdXJyZW50LmNv
bmZpZ3VyYWJsZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnQud3JpdGFibGUoKSAmJiBk
ZXNjcmlwdG9yLndyaXRhYmxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0
eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOwotICAgICAgICAgICAgaWYgKCFjdXJyZW50LndyaXRh
YmxlKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGJvb2wgaXNTYW1lID0gc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgY3Vy
cmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICghaXNTYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgUmVhZG9ubHlQcm9wZXJ0eUNoYW5nZUVy
cm9yKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3IpICYmICFkZXNjcmlwdG9y
LnZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKCFvYmplY3Qp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgSlNDZWxsOjpkZWxldGVQcm9wZXJ0
eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICByZXR1cm4gcHV0RGVzY3JpcHRvcihn
bG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBkZXNjcmlwdG9y
LmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KSwgY3VycmVudCk7Ci0gICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFN0ZXAgOC4KKyAgICAgICAgLy8gQ2hhbmdpbmcgdGhl
IGFjY2Vzc29yIGZ1bmN0aW9ucyBhbmQgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBhY2Nlc3Nv
ciBwcm9wZXJ0eQorICAgICAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRv
cigpKTsKKyAgICAgICAgaWYgKCFjdXJyZW50LmNvbmZpZ3VyYWJsZSgpKSB7CisgICAgICAgICAg
ICBpZiAoZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5zZXR0ZXIoKSAh
PSBjdXJyZW50LnNldHRlcigpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0
aGUgc2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7CisgICAgICAgICAg
ICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5nZXR0ZXIoKSAh
PSBjdXJyZW50LmdldHRlcigpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5nZSB0
aGUgZ2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiJfcyk7CisgICAgICAgICAg
ICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUFjY2Vzc01l
Y2hhbmlzbUVycm9yKTsKIAotICAgIC8vIFN0ZXAgOS4KLSAgICAvLyBDaGFuZ2luZyB0aGUgYWNj
ZXNzb3IgZnVuY3Rpb25zIG9mIGFuIGV4aXN0aW5nIGFjY2Vzc29yIHByb3BlcnR5Ci0gICAgQVNT
RVJUKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSk7Ci0gICAgaWYgKCFjdXJyZW50
LmNvbmZpZ3VyYWJsZSgpKSB7Ci0gICAgICAgIGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQo
KSAmJiAhKGN1cnJlbnQuc2V0dGVyUHJlc2VudCgpICYmIEpTVmFsdWU6OnN0cmljdEVxdWFsKGds
b2JhbE9iamVjdCwgY3VycmVudC5zZXR0ZXIoKSwgZGVzY3JpcHRvci5zZXR0ZXIoKSkpKQotICAg
ICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2Vw
dGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBzZXR0ZXIgb2YgYW4gdW5jb25maWd1cmFi
bGUgcHJvcGVydHkuIl9zKTsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgp
ICYmICEoY3VycmVudC5nZXR0ZXJQcmVzZW50KCkgJiYgSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xv
YmFsT2JqZWN0LCBjdXJyZW50LmdldHRlcigpLCBkZXNjcmlwdG9yLmdldHRlcigpKSkpCi0gICAg
ICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0
aW9uLCAiQXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIGdldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJs
ZSBwcm9wZXJ0eS4iX3MpOwotICAgICAgICBpZiAoY3VycmVudC5hdHRyaWJ1dGVzKCkgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpCi0gICAgICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVBy
b3BlcnR5Q2hhbmdlQWNjZXNzTWVjaGFuaXNtRXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBTdGVwIDEwLzExLgogICAgIGlmICghb2Jq
ZWN0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIGFjY2Vzc29yID0gb2JqZWN0
LT5nZXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKCFhY2Nlc3NvcikKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBudWxscHRyOwotICAgIEpT
T2JqZWN0KiBzZXR0ZXIgPSBudWxscHRyOwotICAgIGJvb2wgZ2V0dGVyU2V0dGVyQ2hhbmdlZCA9
IGZhbHNlOwotCi0gICAgaWYgKGFjY2Vzc29yLmlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkpIHsKLSAg
ICAgICAgYXV0byogY3VzdG9tR2V0dGVyU2V0dGVyID0ganNDYXN0PEN1c3RvbUdldHRlclNldHRl
cio+KGFjY2Vzc29yKTsKLSAgICAgICAgaWYgKGN1c3RvbUdldHRlclNldHRlci0+c2V0dGVyKCkp
Ci0gICAgICAgICAgICBzZXR0ZXIgPSBnZXRDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkZvckdl
dHRlclNldHRlcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVy
LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOjpUeXBlOjpTZXR0ZXIpOwotICAgICAgICBp
ZiAoY3VzdG9tR2V0dGVyU2V0dGVyLT5nZXR0ZXIoKSkKLSAgICAgICAgICAgIGdldHRlciA9IGdl
dEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0dGVyKGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb246OlR5cGU6OkdldHRlcik7CisgICAgLy8gU3RlcCA5LgorICAgIHVuc2lnbmVkIGF0dHJp
YnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KTsK
KyAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpIHx8IChjdXJyZW50Lmlz
QWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgIWRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKSkg
eworICAgICAgICBBU1NFUlQoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nv
cik7CisgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBkZXNjcmlwdG9yLmdldHRlclByZXNlbnQo
KSA/IGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCkgOiAoY3VycmVudC5nZXR0ZXJQcmVzZW50KCkg
PyBjdXJyZW50LmdldHRlck9iamVjdCgpIDogbnVsbHB0cik7CisgICAgICAgIEpTT2JqZWN0KiBz
ZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSA/IGRlc2NyaXB0b3Iuc2V0dGVyT2Jq
ZWN0KCkgOiAoY3VycmVudC5zZXR0ZXJQcmVzZW50KCkgPyBjdXJyZW50LnNldHRlck9iamVjdCgp
IDogbnVsbHB0cik7CisgICAgICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOworICAgICAg
ICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBn
ZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsK
ICAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQoYWNjZXNzb3IuaXNHZXR0ZXJTZXR0ZXIoKSk7
Ci0gICAgICAgIGF1dG8qIGdldHRlclNldHRlciA9IGpzQ2FzdDxHZXR0ZXJTZXR0ZXIqPihhY2Nl
c3Nvcik7Ci0gICAgICAgIGdldHRlciA9IGdldHRlclNldHRlci0+Z2V0dGVyKCk7Ci0gICAgICAg
IHNldHRlciA9IGdldHRlclNldHRlci0+c2V0dGVyKCk7Ci0gICAgfQotICAgIGlmIChkZXNjcmlw
dG9yLnNldHRlclByZXNlbnQoKSkgewotICAgICAgICBzZXR0ZXIgPSBkZXNjcmlwdG9yLnNldHRl
ck9iamVjdCgpOwotICAgICAgICBnZXR0ZXJTZXR0ZXJDaGFuZ2VkID0gdHJ1ZTsKLSAgICB9Ci0g
ICAgaWYgKGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpKSB7Ci0gICAgICAgIGdldHRlciA9IGRl
c2NyaXB0b3IuZ2V0dGVyT2JqZWN0KCk7Ci0gICAgICAgIGdldHRlclNldHRlckNoYW5nZWQgPSB0
cnVlOworICAgICAgICBBU1NFUlQoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwg
ZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpOworICAgICAgICBKU1ZhbHVlIHZhbHVlID0g
ZGVzY3JpcHRvci52YWx1ZSgpID8gZGVzY3JpcHRvci52YWx1ZSgpIDogKGN1cnJlbnQudmFsdWUo
KSA/IGN1cnJlbnQudmFsdWUoKSA6IGpzVW5kZWZpbmVkKCkpOworICAgICAgICBvYmplY3QtPnB1
dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IpOwogICAgIH0KIAotICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNF
cXVhbChkZXNjcmlwdG9yKSAmJiAhZ2V0dGVyU2V0dGVyQ2hhbmdlZCkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IEdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdldHRlciwgc2V0dGVyKTsKLQotICAgIEpTQ2VsbDo6
ZGVsZXRlUHJvcGVydHkob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgIHVuc2lnbmVkIGF0dHJzID0g
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCk7Ci0gICAgb2Jq
ZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVy
U2V0dGVyLCBhdHRycyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTM3NDMsMTEgKzM2NjIsNiBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVP
d25Ob25JbmRleFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
TgogICAgIFZNJiB2bSAgPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAvLyBUcmFjayBvbiB0aGUgZ2xvYmFs
ZGF0YSB0aGF0IHdlJ3JlIGluIGRlZmluZSBwcm9wZXJ0eS4KLSAgICAvLyBDdXJyZW50bHkgRGVm
aW5lT3duUHJvcGVydHkgdXNlcyBkZWxldGUgdG8gcmVtb3ZlIHByb3BlcnRpZXMgd2hlbiB0aGV5
IGFyZSBiZWluZyByZXBsYWNlZAotICAgIC8vIChwYXJ0aWN1bGFybHkgd2hlbiBjaGFuZ2luZyBh
dHRyaWJ1dGVzKSwgaG93ZXZlciBkZWxldGUgd29uJ3QgYWxsb3cgbm9uLWNvbmZpZ3VyYWJsZSAo
aS5lLgotICAgIC8vIERvbnREZWxldGUpIHByb3BlcnRpZXMgdG8gYmUgZGVsZXRlZC4gRm9yIG5v
dywgd2UgY2FuIHVzZSB0aGlzIGZsYWcgdG8gbWFrZSB0aGlzIHdvcmsuCi0gICAgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25v
cmVDb25maWd1cmFibGUpOwogICAgIFByb3BlcnR5RGVzY3JpcHRvciBjdXJyZW50OwogICAgIGJv
b2wgaXNDdXJyZW50RGVmaW5lZCA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgY3VycmVudCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJv
d1Njb3BlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0SW5saW5lcy5oCmluZGV4IDZiMmVmMjI0N2YzMmQwNjUxNWYyN2RmNTk1MTQ0ZGMwNjBiOTUy
ODYuLjE2YTRmNjkzNmRkNTZlOTA4YjczNWI2YWZiYzFmMDI5Mzg4OWMxMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCkBAIC0zMTQsMTAg
KzMxNCw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwo
Vk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICBwdXREaXJlY3Qo
dm0sIG9mZnNldCwgdmFsdWUpOwogICAgICAgICAgICAgc3RydWN0dXJlLT5kaWRSZXBsYWNlUHJv
cGVydHkob2Zmc2V0KTsKIAotICAgICAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlB
dHRyaWJ1dGU6OkFjY2Vzc29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJp
YnV0ZTo6QWNjZXNzb3IpIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yT3JWYWx1ZSkgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIShh
dHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgICAgICBp
ZiAobW9kZSA9PSBQdXRNb2RlRGVmaW5lT3duUHJvcGVydHkgJiYgKGF0dHJpYnV0ZXMgIT0gY3Vy
cmVudEF0dHJpYnV0ZXMgfHwgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNz
b3JPckN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpKQogICAgICAgICAgICAgICAgIHNldFN0cnVjdHVy
ZSh2bSwgU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUs
IHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2xvdC5zZXRFeGlzdGluZ1Byb3BlcnR5KHRoaXMs
IG9mZnNldCk7CiAKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzY4LDEwICszNjcsOSBA
QCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQogICAgICAgICBzdHJ1Y3R1cmUtPmRpZFJlcGxhY2VQ
cm9wZXJ0eShvZmZzZXQpOwogICAgICAgICBwdXREaXJlY3Qodm0sIG9mZnNldCwgdmFsdWUpOwog
Ci0gICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcikg
IT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSB8fCAo
YXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpICE9
IChjdXJyZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9y
VmFsdWUpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgIGlmIChtb2RlID09IFB1dE1vZGVEZWZpbmVPd25Q
cm9wZXJ0eSAmJiAoYXR0cmlidXRlcyAhPSBjdXJyZW50QXR0cmlidXRlcyB8fCAoYXR0cmlidXRl
cyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvck9yQ3VzdG9tQWNjZXNzb3JPclZhbHVlKSkp
CiAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUodm0sIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdl
VHJhbnNpdGlvbih2bSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMpKTsKLSAg
ICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNsb3Quc2V0RXhpc3RpbmdQ
cm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKaW5k
ZXggOGNmODA0ZjdhMTg0YjIyNjg1N2QzZWFhZDFmMGU3YWYwNjZhZDUxNy4uNGFmMDcwMzZjZGEy
NmU5ZDRhODJlYTU4YTdhYmY0NGVkOTY5MzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCkBAIC02OSw3ICs2OSw3IEBA
IHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRVbmRlZmluZWQoKQogICAgIG1fYXR0cmlidXRl
cyA9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtOwogfQogCi1HZXR0ZXJTZXR0ZXIq
IFByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorR2V0dGVyU2V0dGVyKiBQcm9wZXJ0eURlc2NyaXB0b3I6OnNsb3dHZXR0ZXJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNWYWx1ZSBnZXR0ZXIgPSBtX2dldHRlciAmJiAh
bV9nZXR0ZXIuaXNVbmRlZmluZWQoKSA/IGpzQ2FzdDxKU09iamVjdCo+KG1fZ2V0dGVyKSA6IGpz
VW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eURlc2NyaXB0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5RGVzY3JpcHRvci5oCmluZGV4IDg0MWI2YjBiNGUwMDE1MDQ5YWZlZDc0ZjMyNmMwY2UwZjUx
YzI5MTQuLmJlZWYyNTFmNjNjOTFlODZlZTMxN2U4ODI0NjY2M2RkMDAyNWY0YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzQWNj
ZXNzb3JEZXNjcmlwdG9yKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYXR0cmlidXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQogICAgIEpTVmFsdWUgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlOyB9Ci0gICAgR2V0dGVyU2V0dGVyKiBzbG93R2V0dGVyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0Kik7IC8vIEJlIGF3YXJlIHRoYXQgdGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBh
IEdldHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVjaCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFu
ZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9zc2libGUuCisgICAgR2V0dGVyU2V0dGVyKiBz
bG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7IC8vIEJlIGF3YXJlIHRoYXQg
dGhpcyB3aWxsIGxhemlseSBhbGxvY2F0ZSBhIEdldHRlclNldHRlciBvYmplY3QuIEl0J3MgbXVj
aCBiZXR0ZXIgdG8gdXNlIGdldHRlcigpIGFuZCBzZXR0ZXIoKSBpbmRpdmlkdWFsbHkgaWYgcG9z
c2libGUuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBnZXR0ZXIoKSBjb25zdDsKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHNldHRlcigpIGNvbnN0OwogICAgIEpTT2JqZWN0
KiBnZXR0ZXJPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCmluZGV4IDIyMzQyOTFhNDkzOGZiNTVjYTFjMzA5NjNhNWFkNGJmMTUzYjYx
MjguLjhhYTZhOGE4YWExNmUzNDI5OTNjNzZmYmJhZWM2NTA4NDEyNmIyMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtNzIzLDYgKzcyMywxMiBA
QCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcgogICAgIEFTU0VSVChlbnRyeSk7CiAgICAgZW50cnkt
PmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwogCisgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCisgICAgICAgIHN0cnVjdHVyZS0+c2V0Q29udGFpbnNSZWFk
T25seVByb3BlcnRpZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKQorICAgICAgICBzdHJ1Y3R1cmUtPnNldElzUXVpY2tQcm9wZXJ0eUFjY2Vz
c0FsbG93ZWRGb3JFbnVtZXJhdGlvbihmYWxzZSk7CisKICAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zm
c2V0Q29uc2lzdGVuY3koKTsKICAgICByZXR1cm4gc3RydWN0dXJlOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhMTY5
MzI5YjM1NjZhZDljMDg2MDVhM2MwMmU2MzA3N2ZmMjEwNTYuLmZhYTg2MjVlNjViYjA3MmNlNTg1
MmE1OWJlYTNkNGI1NjBmYzk5ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNy0wOSAg
QWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUmVkZWZp
bmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdlIGl0cyBpbnNlcnRpb24gaW5kZXggKE9i
amVjdC5rZXlzIG9yZGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyOTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0
ZS1wcm9wZXJ0aWVzLmpzOgorCiAyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgZnJvbSB1
cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGlj
YXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVy
YWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDExMTA4NDdkNzNhMDU2
ZmE1YTgwOTkyYjg2MjVjOTliOGI2MzhlYmUuLjM4MWE3ZTY4NWRiOGZkNjAyYmI0ZDZkNDMyOTYz
NmU0MWQ3ZmU2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1
cGxpY2F0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9vYmpl
Y3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTE0LDcgKzE0
LDcgQEAgUEFTUyBvLmZvbyBpcyAwCiBQQVNTIHggaXMgNAogUEFTUyBvLmZvbyBpcyAzCiBQQVNT
IG8uYmFyIGlzIHVuZGVmaW5lZAotRkFJTCBPYmplY3Qua2V5cyhvKS5qb2luKCkgc2hvdWxkIGJl
IGZvbyx0ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdC4gV2FzIHRlc3QxLHRlc3QyLHRlc3QzLGZv
byxiYXIsbmVzdC4KK1BBU1MgT2JqZWN0LmtleXMobykuam9pbigpIGlzICdmb28sdGVzdDEsYmFy
LHRlc3QyLHRlc3QzLG5lc3QnCiAKIEJhc2ljCiBQQVNTIG8gPSB7Zm9vOjF9OyBkZXNjcmlwdGlv
blN0cmluZyhvLCAnZm9vJyk7IGlzICd2YWx1ZToxIGtleXM6MSBbRUNXXVtFeHRlbnNpYmxlXScK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1k
dXBsaWNhdGUtcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmpl
Y3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qcwppbmRleCAxMmQ0MDMyYTIwNTA4ZWFl
MGEwNzhlZmUyOTVhZmRkYTllNmMyNWJjLi4wYjAxZmMwNDc0NDc2NDNkNGVkMTVhYjE3NTVlZWJm
ZDBkNGFmZWQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0
LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzLmpzCkBAIC05LDcg
KzksNyBAQCBvID0gewogc2hvdWxkQmUoIngiLCAiMSIpOwogc2hvdWxkQmUoIm8uZm9vIiwgIidn
ZXR0ZXInIik7CiAKLS8vIEVuc3VyZSBnZXR0ZXJzL3NldHRlcnMgZ2V0IGVsaW1pbmF0ZWQgYnkg
Y29tcHV0ZWQgcHJvcGVydGllcy4KKy8vIEVuc3VyZSBnZXR0ZXJzL3NldHRlcnMgZ2V0IGVsaW1p
bmF0ZWQgYnkgYmFzaWMgcHJvcGVydGllcy4KIHggPSAwOwogbyA9IHsKICAgICBnZXQgZm9vKCkg
e3JldHVybiAiZ2V0dGVyIn0sCkBAIC01NCw3ICs1NCw2IEBAIG8gPSB7CiBzaG91bGRCZSgieCIs
ICI0Iik7CiBzaG91bGRCZSgiby5mb28iLCAiMyIpOwogc2hvdWxkQmUoIm8uYmFyIiwgInVuZGVm
aW5lZCIpOwotLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDI5MzM+IFJlZGVmaW5p
bmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChPYmpl
Y3Qua2V5cyBvcmRlcikKIHNob3VsZEJlKCJPYmplY3Qua2V5cyhvKS5qb2luKCkiLCAiJ2Zvbyx0
ZXN0MSxiYXIsdGVzdDIsdGVzdDMsbmVzdCciKTsKIAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YWtyYUNvcmUueWFtbCBiL0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCmluZGV4IDdmMWFlYTYxYzNm
NzcxMTBlNTRmM2IyN2NiYjk3N2E0MDU4MDYzMWMuLjViYzkwOTk1ZGNmMWIxOGU5NGYwNWIyMzgx
MWNiYjViOTBmODcwZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCisrKyBi
L0pTVGVzdHMvQ2hha3JhQ29yZS55YW1sCkBAIC0xNDc0LDcgKzE0NzQsNyBAQAogLSBwYXRoOiBD
aGFrcmFDb3JlL3Rlc3QvZXM1L3JlZ2V4U3BhY2UuanMKICAgY21kOiBydW5DaGFrcmEgOmJhc2Vs
aW5lLCAiTm9FeGNlcHRpb24iLCAicmVnZXhTcGFjZS5iYXNlbGluZSIsIFtdCiAtIHBhdGg6IENo
YWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmpzCi0gIGNtZDogcnVuQ2hha3Jh
IDpiYXNlbGluZSwgIk5vRXhjZXB0aW9uIiwgIkVudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1q
c2MiLCBbXQorICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJFbnVt
ZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFDb3JlL3Rlc3QvZXM1
L0luc3VmZmljaWVudEFyZ3VtZW50cy5qcwogICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJO
b0V4Y2VwdGlvbiIsICJJbnN1ZmZpY2llbnRBcmd1bWVudHMuYmFzZWxpbmUiLCBbXQogLSBwYXRo
OiBDaGFrcmFDb3JlL3Rlc3QvZXM1L3JlY3Vyc2l2ZXNldHRlci5qcwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1qc2Mg
Yi9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5l
LWpzYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjMjhhOTQxODRlZTNiNmVhNGYx
M2Y5YzEwYzdjNDUxMzg0YjlmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9KU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1
LmJhc2VsaW5lLWpzYworKysgL2Rldi9udWxsCkBAIC0xLDM4MiArMCwwIEBACi1UZXN0IDE6IE5v
bi13cml0YWJsZSwgc2ltcGxlIHR5cGUgaGFuZGxlcgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRp
b24KLWQ6IGR2YWx1ZQotU2V0dGluZyB2YWx1ZSB0byAxCi1kOiAxCi1UZXN0aW5nIGdldE93blBy
b3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEKLVNldHRpbmcgdmFsdWUgdG8gMgotZDogMgot
U2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJh
dGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byAzCi1kOiAyCi1UZXN0aW5nIGdldE93blByb3Bl
cnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gNAotZDogMgotU2V0
dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9u
Ci1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDUKLWQ6IDUKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlO
YW1lcyBlbnVtZXJhdGlvbgotZDogNQotU2V0dGluZyB2YWx1ZSB0byA2Ci1kOiA2Ci1DaGFuZ2lu
ZyB3cml0YWJpbGl0eSBkdXJpbmcgZW51bWVyYXRpb24uLi4KLVRlc3RpbmcgZm9yLWluIGVudW1l
cmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLWQ6IDYKLVNldHRpbmcg
dmFsdWUgdG8gNwotZDogNgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9u
Ci1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLWQ6IDYKLVNldHRpbmcgdmFsdWUg
dG8gOAotZDogNgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxp
dHkgb2YgZCB0byB0cnVlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDkKLWQ6IDkKLVRlc3Rpbmcg
Z2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBk
IHRvIHRydWUKLWQ6IDkKLVNldHRpbmcgdmFsdWUgdG8gMTAKLWQ6IDEwCi1GcmVlemluZyBvYmpl
Y3QKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAxMAotU2V0dGluZyB2YWx1ZSB0byAx
MQotZDogMTAKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogMTAK
LVNldHRpbmcgdmFsdWUgdG8gMTIKLWQ6IDEwCi0KLVRlc3QgMjogTm9uLXdyaXRhYmxlLCBzaW1w
bGUgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1k
OiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRp
bmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24K
LWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5h
bWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcg
d3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDog
MgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMg
ZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3Jp
dGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVl
IHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0
dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgK
LWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9m
IGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93
blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0
cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1U
ZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6
IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0
aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDM6IE5vbi13cml0YWJsZSwgZGljdGlvbmFy
eSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNl
dHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1l
cmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxp
dHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRp
bmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0
aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkg
b2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2
YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24K
LWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVy
aW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3
cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYK
LVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJp
bGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3Rp
bmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQot
ZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFt
ZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1T
ZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1p
biBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5n
IGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRv
IDEyCi1kOiAxMAotCi1UZXN0IDQ6IEFjY2Vzc29ycwotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBi
Ci1EZWZpbmluZyBhY2Nlc3NvcnMgZm9yIGYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1h
OiBhVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotYTogMQotYjogR0VUVEVSIEZPUiBiCi1TZXR0
aW5nIHZhbHVlIHRvIDIKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1kOiBkVmFsdWUK
LVNldHRpbmcgdmFsdWUgdG8gMwotZDogMwotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVl
IHRvIDQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiBnVmFsdWUKLVNldHRpbmcg
dmFsdWUgdG8gNQotZzogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9u
Ci1hOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDYKLWE6IDYKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGlu
ZyB2YWx1ZSB0byA3Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZDogMwotU2V0dGlu
ZyB2YWx1ZSB0byA4Ci1kOiA4Ci1lOiBlVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gOQotZTogOQot
ZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDEwCi1TRVRURVIgRk9SIGYKLWY6IEdF
VFRFUiBGT1IgZgotZzogNQotU2V0dGluZyB2YWx1ZSB0byAxMQotZzogMTEKLURlZmluaW5nIGFj
Y2Vzc29ycyBmb3IgZAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDYKLVNldHRpbmcg
dmFsdWUgdG8gMTIKLWE6IDEyCi1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMTMK
LVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcg
dmFsdWUgdG8gMTQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAxMQotU2V0dGlu
ZyB2YWx1ZSB0byAxNQotZzogMTUKLWQ6IEdFVFRFUgotU2V0dGluZyB2YWx1ZSB0byAxNgotU0VU
VEVSCi1kOiBHRVRURVIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgot
YTogMTIKLVNldHRpbmcgdmFsdWUgdG8gMTcKLWE6IDE3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRp
bmcgdmFsdWUgdG8gMTgKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiA5Ci1TZXR0
aW5nIHZhbHVlIHRvIDE5Ci1lOiAxOQotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRv
IDIwCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMTUKLVNldHRpbmcgdmFsdWUg
dG8gMjEKLWc6IDIxCi1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMjIKLVNFVFRFUgotZDog
R0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGQgd2l0aCB2YWx1ZSAyMwotVGVzdGluZyBm
b3ItaW4gZW51bWVyYXRpb24KLWE6IDE3Ci1TZXR0aW5nIHZhbHVlIHRvIDI0Ci1hOiAyNAotYjog
R0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDI1Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRF
UiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDI2Ci1TRVRURVIgRk9S
IGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMjEKLVNldHRpbmcgdmFsdWUgdG8gMjcKLWc6IDI3Ci1k
OiAyMwotU2V0dGluZyB2YWx1ZSB0byAyOAotZDogMjgKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlO
YW1lcyBlbnVtZXJhdGlvbgotYTogMjQKLVNldHRpbmcgdmFsdWUgdG8gMjkKLWE6IDI5Ci1iOiBH
RVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMzAKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVS
IEZPUiBiCi1lOiAxOQotU2V0dGluZyB2YWx1ZSB0byAzMQotZTogMzEKLWY6IEdFVFRFUiBGT1Ig
ZgotU2V0dGluZyB2YWx1ZSB0byAzMgotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6
IDI3Ci1TZXR0aW5nIHZhbHVlIHRvIDMzCi1nOiAzMwotZDogMjgKLVNldHRpbmcgdmFsdWUgdG8g
MzQKLWQ6IDM0Ci1EZWZpbmluZyBhY2Nlc3NvciBwcm9wZXJ0eSBkdXJpbmcgZW51bWVyYXRpb24u
Li4KLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiAyOQotU2V0dGluZyB2YWx1ZSB0byAz
NQotYTogMzUKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byAzNgotU0VUVEVSIEZP
UiBiCi1iOiBHRVRURVIgRk9SIGIKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAz
NwotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDMzCi1TZXR0aW5nIHZhbHVlIHRv
IDM4Ci1nOiAzOAotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBkCi1kOiBHRVRURVIKLVNldHRpbmcg
dmFsdWUgdG8gMzkKLVNFVFRFUgotZDogR0VUVEVSCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFt
ZXMgZW51bWVyYXRpb24KLWE6IDM1Ci1TZXR0aW5nIHZhbHVlIHRvIDQwCi1hOiA0MAotYjogR0VU
VEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQxCi1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBG
T1IgYgotZTogMzEKLVNldHRpbmcgdmFsdWUgdG8gNDIKLWU6IDQyCi1mOiBHRVRURVIgRk9SIGYK
LVNldHRpbmcgdmFsdWUgdG8gNDMKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiAz
OAotU2V0dGluZyB2YWx1ZSB0byA0NAotZzogNDQKLWQ6IEdFVFRFUgotU2V0dGluZyB2YWx1ZSB0
byA0NQotU0VUVEVSCi1kOiBHRVRURVIKLURlZmluaW5nIGRhdGEgcHJvcGVydHkgZHVyaW5nIGVu
dW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotYTogNDAKLVNldHRpbmcg
dmFsdWUgdG8gNDcKLWE6IDQ3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNDkK
LVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcg
dmFsdWUgdG8gNTEKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1nOiA0NAotU2V0dGlu
ZyB2YWx1ZSB0byA1MwotZzogNTMKLURlZmluaW5nIGRhdGEgcHJvcGVydHkgZCB3aXRoIHZhbHVl
IDU0Ci1kOiA1NAotU2V0dGluZyB2YWx1ZSB0byA1NQotZDogNTUKLVRlc3RpbmcgZ2V0T3duUHJv
cGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogNDcKLVNldHRpbmcgdmFsdWUgdG8gNTcKLWE6IDU3
Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNTkKLVNFVFRFUiBGT1IgYgotYjog
R0VUVEVSIEZPUiBiCi1lOiA0MgotU2V0dGluZyB2YWx1ZSB0byA2MQotZTogNjEKLWY6IEdFVFRF
UiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA2MwotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9S
IGYKLWc6IDUzCi1TZXR0aW5nIHZhbHVlIHRvIDY1Ci1nOiA2NQotZDogNTUKLVNldHRpbmcgdmFs
dWUgdG8gNjcKLWQ6IDY3CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDgwZWYzNTIwOGE0YzVmMjlmNDgzYzgwODU2ODRmYTVkZjAzYTQ2MjQu
LmI4YTczZDY0YjQ2YjZjOTkwMDU4MzVkYjM5MmI4OWFlNTYzYzEzZGYgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMjAtMDctMDkgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisg
ICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0
aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3JhQ29yZS55YW1sOgorICAgICAgICAqIENoYWty
YUNvcmUvdGVzdC9lczUvRW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYzogUmVtb3ZlZC4K
KyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktYWNjZXNzb3ItZGlj
dGlvbmFyeS5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXBy
b3BlcnR5LWFjY2Vzc29yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmVk
ZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNy
b2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qczogQWRkZWQuCisgICAgICAgICog
c3RyZXNzL2RlZmluZS1vd24taW5kZXhlZC1wcm9wZXJ0eS1mYXN0LXBhdGguanM6CisgICAgICAg
ICogc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWVudW1lcmFibGUuanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0
cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1zZXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9y
ZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL3JlZGVm
aW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVj
dGF0aW9ucy55YW1sOiBNYXJrIDEyIHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wNy0w
OSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ11bMzIt
Yml0c10gVGVzdCBnYXJkZW5pbmcgSnVseSA5dGgKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLWRpY3Rpb25hcnkuanMgYi9KU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRmOTcxMmVmMjIyMmZjYmMwNjA2Y2U3Y2FhOTkxODY2ZTdmMzc5YzcK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9w
ZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5LmpzCkBAIC0wLDAgKzEsMjMgQEAKK2NvbnN0IG9iaiA9
IHt9OworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBvYmpbImsiICsgaV0gPSBp
OworCitmdW5jdGlvbiBnZXR0ZXIxKCkge30KK2Z1bmN0aW9uIGdldHRlcjIoKSB7fQorZnVuY3Rp
b24gc2V0dGVyMSh2KSB7fQorZnVuY3Rpb24gc2V0dGVyMih2KSB7fQorCitjb25zdCBkZXNjR2V0
MSA9IHtnZXQ6IGdldHRlcjEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX07Citjb25zdCBkZXNjR2V0MVNl
dDEgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dldDJTZXQxID0g
e2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQxU2V0MiA9IHtnZXQ6
IGdldHRlcjEsIHNldDogc2V0dGVyMn07Citjb25zdCBkZXNjR2V0MlNldDIgPSB7Z2V0OiBnZXR0
ZXIyLCBzZXQ6IHNldHRlcjJ9OworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7Cisg
ICAgY29uc3Qga2V5ID0gImsiICsgKGkgJSAxMDApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShvYmosIGtleSwgZGVzY0dldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtl
eSwgZGVzY0dldDFTZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRl
c2NHZXQyU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjR2V0
MVNldDIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0dldDJTZXQy
KTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3Bl
cnR5LWFjY2Vzc29yLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVy
dHktYWNjZXNzb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJmMTU5MTY2ZDc0Zjg4OWZiMGY2Yjk2MjhjZTU5
OGNiZmJlNDJmYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3Jl
ZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29yLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGdl
dHRlcjEoKSB7fQorZnVuY3Rpb24gZ2V0dGVyMigpIHt9CitmdW5jdGlvbiBzZXR0ZXIxKHYpIHt9
CitmdW5jdGlvbiBzZXR0ZXIyKHYpIHt9CisKK2NvbnN0IG9iaiA9IHthOiAwLCBiOiAxLCBnZXQg
Zm9vKCkge30sIGM6IDMsIGQ6IDR9OworY29uc3QgZGVzY0dldDEgPSB7Z2V0OiBnZXR0ZXIxLCBj
b25maWd1cmFibGU6IHRydWV9OworY29uc3QgZGVzY0dldDFTZXQxID0ge2dldDogZ2V0dGVyMSwg
c2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQyU2V0MSA9IHtnZXQ6IGdldHRlcjIsIHNldDog
c2V0dGVyMX07Citjb25zdCBkZXNjR2V0MVNldDIgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6IHNldHRl
cjJ9OworY29uc3QgZGVzY0dldDJTZXQyID0ge2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0ZXIyfTsK
KworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvYmosICJmb28iLCBkZXNjR2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
aiwgImZvbyIsIGRlc2NHZXQxU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwg
ImZvbyIsIGRlc2NHZXQyU2V0MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZv
byIsIGRlc2NHZXQxU2V0Mik7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIs
IGRlc2NHZXQyU2V0Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9y
ZWRlZmluZS1wcm9wZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ5
YzAxOGVlYTc1MDkzOWU1YTRkNjViZjlhYWU5NjhiNmYzYjE4NgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFy
eS5qcwpAQCAtMCwwICsxLDE3IEBACitjb25zdCBvYmogPSB7fTsKK2ZvciAobGV0IGkgPSAwOyBp
IDwgMTAwOyArK2kpCisgICAgb2JqWyJrIiArIGldID0gaTsKKworY29uc3QgZGVzY05vbldyaXRh
YmxlID0ge3dyaXRhYmxlOiBmYWxzZX07Citjb25zdCBkZXNjTm9uRW51bWVyYWJsZSA9IHtlbnVt
ZXJhYmxlOiBmYWxzZX07Citjb25zdCBkZXNjV3JpdGFibGUgPSB7d3JpdGFibGU6IHRydWV9Owor
Y29uc3QgZGVzY0VudW1lcmFibGUgPSB7ZW51bWVyYWJsZTogdHJ1ZX07CisKK2ZvciAobGV0IGkg
PSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBjb25zdCBrZXkgPSAiayIgKyAoaSAlIDEwMCk7Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjTm9uV3JpdGFibGUpOworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY05vbkVudW1lcmFibGUpOworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY1dyaXRhYmxlKTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NFbnVtZXJhYmxlKTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHt2YWx1ZTogaX0pOworfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qcyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ2
MzYwNGUyYzc3YmUwZDI1NzUzMGQ3ZmVkODU4YjdkNTBiZWMxOAotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKQEAgLTAs
MCArMSwxMyBAQAorY29uc3Qgb2JqID0ge2E6IDAsIGI6IDEsIGZvbzogMiwgYzogMywgZDogNH07
Citjb25zdCBkZXNjTm9uV3JpdGFibGUgPSB7d3JpdGFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NO
b25FbnVtZXJhYmxlID0ge2VudW1lcmFibGU6IGZhbHNlfTsKK2NvbnN0IGRlc2NXcml0YWJsZSA9
IHt3cml0YWJsZTogdHJ1ZX07Citjb25zdCBkZXNjRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiB0
cnVlfTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjTm9uV3JpdGFibGUpOworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjTm9uRW51bWVyYWJsZSk7CisgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NXcml0YWJsZSk7CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KG9iaiwgImZvbyIsIGRlc2NFbnVtZXJhYmxlKTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkob2JqLCAiZm9vIiwge3ZhbHVlOiBpfSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzIGIvSlNUZXN0
cy9zdHJlc3MvZGVmaW5lLW93bi1pbmRleGVkLXByb3BlcnR5LWZhc3QtcGF0aC5qcwppbmRleCBh
Yzk1ZTFkMWU0ZjBmNjNhYjEwMjdhYTA1MTdjMzlmMDM3M2I0ODFmLi45ZTE3MjNhZGQ2ODI5YWQx
NDUwNTJkMzYyYmE3ZmNiZGJhZGI2ZTY3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9kZWZp
bmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2RlZmluZS1vd24taW5kZXhlZC1wcm9wZXJ0eS1mYXN0LXBhdGguanMKQEAgLTEsMTkgKzEsMTEg
QEAKIGZ1bmN0aW9uIGFzc2VydFNhbWVEZXNjcmlwdG9yKGEsIGIpIHsKLSAgY29uc3QgYVN0cmlu
ZyA9IHN0cmluZ2lmeURlc2NyaXB0b3IoYSk7Ci0gIGNvbnN0IGJTdHJpbmcgPSBzdHJpbmdpZnlE
ZXNjcmlwdG9yKGIpOworICBjb25zdCBhU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYSwgbnVsbCwg
Mik7CisgIGNvbnN0IGJTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShiLCBudWxsLCAyKTsKIAogICBp
ZiAoYVN0cmluZyAhPT0gYlN0cmluZykKICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBkZXNjcmlw
dG9yIVxuQWN0dWFsOiAke2FTdHJpbmd9XG5FeHBlY3RlZDogJHtiU3RyaW5nfWApOwogfQogCi1m
dW5jdGlvbiBzdHJpbmdpZnlEZXNjcmlwdG9yKGRlc2NyaXB0b3IpIHsKLSAgY29uc3Qgc29ydGVk
RGVzY3JpcHRvciA9IHt9OwotICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkZXNjcmlw
dG9yKS5zb3J0KCkpCi0gICAgc29ydGVkRGVzY3JpcHRvcltrZXldID0gZGVzY3JpcHRvcltrZXld
OwotCi0gIHJldHVybiBKU09OLnN0cmluZ2lmeShzb3J0ZWREZXNjcmlwdG9yLCBudWxsLCAyKTsK
LX0KLQogZnVuY3Rpb24gZ2V0Q29tYmluYXRpb25zKG9wdGlvbnMpIHsKICAgY29uc3Qgb3B0aW9u
S2V5cyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpOwogICBjb25zdCByZXN1bHRzID0gW107CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJhYmxlLmpzIGIv
SlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZGVmZjA1MTcyMmQ1ZDIyZmYxMDdkOGUzY2I4YWFjZGFkYTRkYzdmCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5qcwpAQCAt
MCwwICsxLDczIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZh
bHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkgewor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0WyJrIiArIGld
ID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVj
dCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAg
ICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9Cisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1
cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAgICBw
cm90b1trZXkxXSA9IDE7CisgICAgcHJvdG9ba2V5Ml0gPSAyOworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShwcm90bywga2V5Miwge2VudW1lcmFibGU6IGZhbHNlfSk7CisKKyAgICBjb25zdCBj
aGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gaXNLZXkxRW51bWVy
YWJsZShvYmopIHsKKyAgICAgICAgZm9yIChsZXQga2V5IGluIG9iaikgeworICAgICAgICAgICAg
aWYgKGtleSA9PSBrZXkxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgZnVuY3Rpb24gaXNLZXkyRW51bWVyYWJsZShvYmopIHsKKyAg
ICAgICAgZm9yIChsZXQga2V5IGluIG9iaikgeworICAgICAgICAgICAgaWYgKGtleSA9PSBrZXky
KSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgbm9JbmxpbmUoaXNLZXkxRW51bWVyYWJsZSk7CisgICAgbm9JbmxpbmUoaXNLZXkyRW51
bWVyYWJsZSk7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAg
c2hvdWxkQmUoaXNLZXkxRW51bWVyYWJsZShjaGlsZCksIHRydWUpOworICAgICAgICBzaG91bGRC
ZShpc0tleTFFbnVtZXJhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5
MkVudW1lcmFibGUoY2hpbGQpLCBmYWxzZSk7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MkVudW1l
cmFibGUocHJvdG8pLCBmYWxzZSk7CisgICAgfQorCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHByb3RvLCBrZXkxLCB7ZW51bWVyYWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRCZShpc0tleTFF
bnVtZXJhYmxlKGNoaWxkKSwgZmFsc2UpOworICAgIHNob3VsZEJlKGlzS2V5MUVudW1lcmFibGUo
cHJvdG8pLCBmYWxzZSk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIs
IHtlbnVtZXJhYmxlOiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkyRW51bWVyYWJsZShjaGls
ZCksIHRydWUpOworICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUocHJvdG8pLCB0cnVlKTsK
K30KKwordGVzdCh7fSwgMCwgImJhciIpOwordGVzdChPYmplY3QuY3JlYXRlKG51bGwpLCAiX19w
cm90b19fIiwgMSk7CisKK3Rlc3QobWFrZURpY3Rpb25hcnkoe30pLCAiZm9vIiwgMik7Cit0ZXN0
KG1ha2VEaWN0aW9uYXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpLCAzLCAiX19wcm90b19fIik7CisK
K3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCAiZm9vIiwgImJhciIpOwordGVzdChtYWtlUG9s
eVByb3RvT2JqZWN0KCksIDQsIDUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVkZWZp
bmUtcHJvcGVydHktZ2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI4NjJlNDljYjI0MTAzZTA5MTA1YzUxMDViODA3MGU2NGE2OGUxM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQu
anMKQEAgLTAsMCArMSw3MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkg
eworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KGRp
Y3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgZGljdFsi
ayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJv
dG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBjbGFzcyBDIHsKKyAg
ICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0g
NDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBDKCk7Cisg
ICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAgICAgZm9vKCk7Cisg
ICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlvbiB0ZXN0KHByb3RvLCBrZXkxLCBrZXkyKSB7
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7CisgICAgICAgIGdldDog
KCkgPT4gMSwKKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7CisgICAgICAgIGdldDogKCkgPT4gMiwK
KyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAgY29uc3QgY2hpbGQg
PSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0aW9uIGdldEtleTEob2JqKSB7Cisg
ICAgICAgIHJldHVybiBvYmpba2V5MV07CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0S2V5Mihv
YmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkyXTsKKyAgICB9CisKKyAgICBub0lubGluZShn
ZXRLZXkxKTsKKyAgICBub0lubGluZShnZXRLZXkyKTsKKworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIDEpOworICAg
ICAgICBzaG91bGRCZShnZXRLZXkxKHByb3RvKSwgMSk7CisgICAgICAgIHNob3VsZEJlKGdldEtl
eTIoY2hpbGQpLCAyKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIDIpOworICAg
IH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge2dldCgpIHt9fSk7
CisgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUo
Z2V0S2V5MShwcm90byksIHVuZGVmaW5lZCk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
cHJvdG8sIGtleTIsIHtnZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKGdldEtleTIoY2hp
bGQpLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJlKGdldEtleTIocHJvdG8pLCB1bmRlZmluZWQp
OworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJf
X3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rl
c3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsK
KwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQ
b2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWRl
ZmluZS1wcm9wZXJ0eS1zZXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1z
ZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDAxNzZiNzhiMzVlZGQ3NTQ0Y2QyMTg0MDY3MzVkMTNlNTVhZjc1
MQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LXNl
dC5qcwpAQCAtMCwwICsxLDc5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnko
ZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0
WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQ
cm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgewor
ICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQg
PSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsK
KyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsK
KyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIp
IHsKKyAgICBsZXQgbmV4dFZhbHVlID0gMTA7CisKKyAgICBsZXQgdmFsdWUxOworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwgeworICAgICAgICBzZXQodmFsKSB7IHZhbHVl
MSA9IHZhbDsgfSwKKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgIH0pOworCisgICAg
bGV0IHZhbHVlMjsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHsKKyAg
ICAgICAgc2V0KHZhbCkgeyB2YWx1ZTIgPSB2YWw7IH0sCisgICAgICAgIGNvbmZpZ3VyYWJsZTog
dHJ1ZSwKKyAgICB9KTsKKworICAgIGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90byk7
CisKKyAgICBmdW5jdGlvbiBzZXRLZXkxKG9iaikgeworICAgICAgICBvYmpba2V5MV0gPSArK25l
eHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gbmV4dFZhbHVlOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNldEtleTIob2JqKSB7CisgICAgICAgIG9ialtrZXkyXSA9ICsrbmV4dFZh
bHVlOworICAgICAgICByZXR1cm4gdmFsdWUyID09PSBuZXh0VmFsdWU7CisgICAgfQorCisgICAg
bm9JbmxpbmUoc2V0S2V5MSk7CisgICAgbm9JbmxpbmUoc2V0S2V5Mik7CisKKyAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKHNldEtleTEoY2hpbGQp
LCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIHRydWUpOworICAgICAg
ICBzaG91bGRCZShzZXRLZXkyKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKHNldEtl
eTIocHJvdG8pLCB0cnVlKTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJv
dG8sIGtleTEsIHtzZXQ6IHVuZGVmaW5lZH0pOworICAgIHNob3VsZEJlKHNldEtleTEoY2hpbGQp
LCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2V0S2V5MShwcm90byksIGZhbHNlKTsKKworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5Miwge3NldCgpIHt9fSk7CisgICAgc2hvdWxk
QmUoc2V0S2V5MihjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzZXRLZXkyKHByb3RvKSwg
ZmFsc2UpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVs
bCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAy
KTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3Rv
X18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0
KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9yZWRlZmluZS1wcm9wZXJ0eS12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXBy
b3BlcnR5LXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyODczMDExYjRlMjcyYzg4ZGJlMWNkOTQ1ZGY0
ZjU4ZGRiYTRmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1w
cm9wZXJ0eS12YWx1ZS5qcwpAQCAtMCwwICsxLDY2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gbWFr
ZURpY3Rpb25hcnkoZGljdCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKQor
ICAgICAgICBkaWN0WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4gZGljdDsKK30KKworZnVuY3Rp
b24gbWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAg
IGNsYXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAg
dGhpcy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gbmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKQorICAg
ICAgICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QocHJvdG8s
IGtleTEsIGtleTIpIHsKKyAgICBwcm90b1trZXkxXSA9IDE7CisgICAgcHJvdG9ba2V5Ml0gPSAy
OworCisgICAgY29uc3QgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKKworICAgIGZ1bmN0
aW9uIGdldEtleTEob2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5MV07CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZ2V0S2V5MihvYmopIHsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkyXTsKKyAg
ICB9CisKKyAgICBub0lubGluZShnZXRLZXkxKTsKKyAgICBub0lubGluZShnZXRLZXkyKTsKKwor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgc2hvdWxkQmUoZ2V0
S2V5MShjaGlsZCksIDEpOworICAgICAgICBzaG91bGRCZShnZXRLZXkxKHByb3RvKSwgMSk7Cisg
ICAgICAgIHNob3VsZEJlKGdldEtleTIoY2hpbGQpLCAyKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0
S2V5Mihwcm90byksIDIpOworICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90
bywga2V5MSwge3ZhbHVlOiAzfSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MShjaGlsZCksIDMpOwor
ICAgIHNob3VsZEJlKGdldEtleTEocHJvdG8pLCAzKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShwcm90bywga2V5Miwge3NldCgpIHt9fSk7CisgICAgc2hvdWxkQmUoZ2V0S2V5MihjaGls
ZCksIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoZ2V0S2V5Mihwcm90byksIHVuZGVmaW5lZCk7
Cit9CisKK3Rlc3Qoe30sIDAsICJiYXIiKTsKK3Rlc3QoT2JqZWN0LmNyZWF0ZShudWxsKSwgIl9f
cHJvdG9fXyIsIDEpOworCit0ZXN0KG1ha2VEaWN0aW9uYXJ5KHt9KSwgImZvbyIsIDIpOwordGVz
dChtYWtlRGljdGlvbmFyeShPYmplY3QuY3JlYXRlKG51bGwpKSwgMywgIl9fcHJvdG9fXyIpOwor
Cit0ZXN0KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgImZvbyIsICJiYXIiKTsKK3Rlc3QobWFrZVBv
bHlQcm90b09iamVjdCgpLCA0LCA1KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZGVm
aW5lLXByb3BlcnR5LXdyaXRhYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVy
dHktd3JpdGFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ2MDU1YTg0ZmFiNjBlM2E0MGY4MjdlM2E4ZWMw
NDg0NTZkMjlkMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXBy
b3BlcnR5LXdyaXRhYmxlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBt
YWtlRGljdGlvbmFyeShkaWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kp
CisgICAgICAgIGRpY3RbImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQorCitmdW5j
dGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAg
ICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJl
dHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyArK2kpCisg
ICAgICAgIGZvbygpOworICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVzdChwcm90
bywga2V5MSwga2V5MikgeworICAgIHByb3RvW2tleTFdID0gMTsKKyAgICBwcm90b1trZXkyXSA9
IDI7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7d3JpdGFibGU6IGZh
bHNlfSk7CisKKyAgICBjb25zdCBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworICAgIGxl
dCBuZXh0VmFsdWUgPSAxMDsKKworICAgIGZ1bmN0aW9uIGlzS2V5MVdyaXRhYmxlU3RyaWN0KG9i
aikgeworICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBv
Ympba2V5MV0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgfSBjYXRjaCB7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gaXNLZXkxV3JpdGFibGUob2JqKSB7CisgICAgICAgIG9ialtrZXkxXSA9ICsr
bmV4dFZhbHVlOworICAgICAgICByZXR1cm4gb2JqW2tleTFdID09PSBuZXh0VmFsdWU7CisgICAg
fQorCisgICAgZnVuY3Rpb24gaXNLZXkyV3JpdGFibGVTdHJpY3Qob2JqKSB7CisgICAgICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9ialtrZXkyXSA9ICsrbmV4
dFZhbHVlOworICAgICAgICB9IGNhdGNoIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpc0tl
eTJXcml0YWJsZShvYmopIHsKKyAgICAgICAgb2JqW2tleTJdID0gKytuZXh0VmFsdWU7CisgICAg
ICAgIHJldHVybiBvYmpba2V5Ml0gPT09IG5leHRWYWx1ZTsKKyAgICB9CisKKyAgICBub0lubGlu
ZShpc0tleTFXcml0YWJsZVN0cmljdCk7CisgICAgbm9JbmxpbmUoaXNLZXkxV3JpdGFibGUpOwor
ICAgIG5vSW5saW5lKGlzS2V5MldyaXRhYmxlU3RyaWN0KTsKKyAgICBub0lubGluZShpc0tleTJX
cml0YWJsZSk7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAg
IHNob3VsZEJlKGlzS2V5MVdyaXRhYmxlU3RyaWN0KGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNo
b3VsZEJlKGlzS2V5MVdyaXRhYmxlKHByb3RvKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKGlz
S2V5MldyaXRhYmxlU3RyaWN0KGNoaWxkKSwgZmFsc2UpOworICAgICAgICBzaG91bGRCZShpc0tl
eTJXcml0YWJsZShwcm90byksIGZhbHNlKTsKKworICAgICAgICBkZWxldGUgY2hpbGRba2V5MV07
CisgICAgICAgIGRlbGV0ZSBjaGlsZFtrZXkyXTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkocHJvdG8sIGtleTEsIHt3cml0YWJsZTogZmFsc2V9KTsKKyAgICBzaG91bGRCZShp
c0tleTFXcml0YWJsZVN0cmljdChjaGlsZCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShpc0tleTFX
cml0YWJsZShwcm90byksIGZhbHNlKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90
bywga2V5Miwge3dyaXRhYmxlOiB0cnVlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkyV3JpdGFibGVT
dHJpY3QoY2hpbGQpLCB0cnVlKTsKKyAgICBzaG91bGRCZShpc0tleTJXcml0YWJsZShwcm90byks
IHRydWUpOworfQorCit0ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVs
bCksICJfX3Byb3RvX18iLCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAy
KTsKK3Rlc3QobWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3Rv
X18iKTsKKwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0
KG1ha2VQb2x5UHJvdG9PYmplY3QoKSwgNCwgNSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
aW5kZXggMzQwODU5NzRiM2UzYmQyOGFhMWMwOWFlMWUzN2VjYjYwNDZhOTg4Mi4uMTM5OGI3NDky
YjRkYjVmZWU3MWYyMDYyZDEzMmNiOWMxYTlhZTMwMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbApAQCAtOTI1LDIzICs5MjUsMTQgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2RlZmluZVBy
b3BlcnRpZXMvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBm
b28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28s
IFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9P
YmplY3QvZW50cmllcy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFti
LCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0
aGUgc2FtZSBjb250ZW50cy4gJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgW2EsIG5hbWVdIGFuZCBbbmFtZSwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwog
dGVzdC9idWlsdC1pbnMvT2JqZWN0L2ZyZWV6ZS9wcm94eS1uby1vd25rZXlzLXJldHVybmVkLWtl
eXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1i
b2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2wo
KSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMu
ICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL29yZGVy
LWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2wo
YildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzL3Byb3h5LW5vLW93bmtleXMtcmV0dXJuZWQta2V5cy1v
cmRlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgp
LCBmb29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4g
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBm
b29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwot
dGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvb3JkZXItYWZ0ZXItZGVm
aW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwg
YV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlTeW1i
b2xzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQgW1N5bWJvbChhKSwgU3lt
Ym9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEp
LCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVudC12YWx1ZS1mdW5j
dGlvbi1hcmd1bWVudHMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq251bGzCuywgwqtbb2JqZWN0IEFyZ3VtZW50c13CuykgdG8gYmUgdHJ1ZScKIHRl
c3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVu
dC12YWx1ZS1mdW5jdGlvbi1jYWxsZXIuanM6CkBAIC05NTYsMTQgKzk0NywxMSBAQCB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvaXNTZWFsZWQvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9y
ZGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCks
IGZvb10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZv
b10gYW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0
ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
KyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2EsIGxlbmd0aF0gYW5kIFtsZW5n
dGgsIGFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFthLCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9PYmplY3Qvc2VhbC9wcm94eS1uby1v
d25rZXlzLXJldHVybmVkLWtleXMtb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9sKCldIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC92YWx1ZXMvb3JkZXIt
YWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9hcHBseS9hcmd1
bWVudHMtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq2Z1bmN0aW9uIEFycmF5KCkgeycKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Z1bmN0aW9uIEFycmF5KCkgeycKQEAgLTEwMDMsOSArOTkx
LDYgQEAgdGVzdC9idWlsdC1pbnMvUHJveHkvY29uc3RydWN0L3RyYXAtaXMtbm90LWNhbGxhYmxl
LXJlYWxtLmpzOgogdGVzdC9idWlsdC1pbnMvUHJveHkvb3duS2V5cy90cmFwLWlzLXVuZGVmaW5l
ZC10YXJnZXQtaXMtcHJveHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFtsZW5ndGgsIGZvbywgMCwgU3ltYm9sKCldIGFuZCBbU3ltYm9sKCksIGxlbmd0aCwgZm9vLCAw
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbbGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBs
ZW5ndGgsIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1p
bnMvUmVmbGVjdC9vd25LZXlzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBhbmQg
W1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSld
IGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
IHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm9wZXJ0eS1lc2NhcGVzL2dlbmVyYXRlZC9BbHBoYWJl
dGljLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgXHB7QWxwaGFiZXRpY31gIHNob3Vs
ZCBtYXRjaCBVKzAwMUNGQSAoYOGzumApJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
YFxwe0FscGhhYmV0aWN9YCBzaG91bGQgbWF0Y2ggVSswMDFDRkEgKGDhs7pgKScKQEAgLTMyMTks
OSArMzIwNCw2IEBAIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vaWRlbnRpZmllci1s
ZXQtYWxsb3dlZC1hcy1sZWZ0aGFuZHNpZGUtZXhwcmVzc2lvCiAgIGRlZmF1bHQ6ICJTeW50YXhF
cnJvcjogQ2Fubm90IHVzZSB0aGUga2V5d29yZCAnaW4nIGFzIGEgbGV4aWNhbCB2YXJpYWJsZSBu
YW1lLiIKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vbGV0LWFycmF5LXdpdGgtbmV3
bGluZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vb3JkZXItYWZ0
ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWluL29y
ZGVyLWVudW1lcmFibGUtc2hhZG93ZWQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRv
IGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404321</attachid>
            <date>2020-07-14 23:35:02 -0700</date>
            <delta_ts>2020-07-18 16:10:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142933-20200715093501.patch</filename>
            <type>text/plain</type>
            <size>53160</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQzNzYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI0IEBACisyMDIwLTA3LTE0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZWRlZmluaW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBj
aGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2JqZWN0LmtleXMgb3JkZXIpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIENoYWtyYUNvcmUueWFtbDoKKyAg
ICAgICAgKiBDaGFrcmFDb3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5iYXNlbGluZS1q
c2M6IFJlbW92ZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5
LWFjY2Vzc29yLWRpY3Rpb25hcnkuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qczogQWRkZWQuCisgICAgICAgICogbWljcm9i
ZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5qczogQWRkZWQuCisg
ICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanM6IEFkZGVk
LgorICAgICAgICAqIHN0cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRo
LmpzOgorICAgICAgICAqIHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJhYmxlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktc2V0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBzdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAq
IHN0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS13cml0YWJsZS5qczogQWRkZWQuCisgICAgICAgICog
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayAxMiB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKIDIwMjAtMDctMTQgIEFuZ2Vsb3MgT2lrb25vbW9wb3Vsb3MgIDxhbmdlbG9zQGlnYWxpYS5j
b20+CiAKICAgICAgICAgU2tpcCBpbnRlcm1pdHRlbnRseSBmYWlsaW5nIHR5cGUtY2hlY2staG9p
c3RpbmctcGhhc2UtaG9pc3QtY2hlY2stc3RydWN0dXJlLW9uLXRkei10aGlzLXZhbHVlIG9uIG1p
cHMKSW5kZXg6IEpTVGVzdHMvQ2hha3JhQ29yZS55YW1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
Q2hha3JhQ29yZS55YW1sCShyZXZpc2lvbiAyNjQzNzYpCisrKyBKU1Rlc3RzL0NoYWtyYUNvcmUu
eWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTQ3NCw3ICsxNDc0LDcgQEAKIC0gcGF0aDogQ2hha3Jh
Q29yZS90ZXN0L2VzNS9yZWdleFNwYWNlLmpzCiAgIGNtZDogcnVuQ2hha3JhIDpiYXNlbGluZSwg
Ik5vRXhjZXB0aW9uIiwgInJlZ2V4U3BhY2UuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFD
b3JlL3Rlc3QvZXM1L0VudW1lcmF0aW5nV2l0aEVTNS5qcwotICBjbWQ6IHJ1bkNoYWtyYSA6YmFz
ZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJFbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUtanNjIiwg
W10KKyAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNlcHRpb24iLCAiRW51bWVyYXRp
bmdXaXRoRVM1LmJhc2VsaW5lIiwgW10KIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0L2VzNS9JbnN1
ZmZpY2llbnRBcmd1bWVudHMuanMKICAgY21kOiBydW5DaGFrcmEgOmJhc2VsaW5lLCAiTm9FeGNl
cHRpb24iLCAiSW5zdWZmaWNpZW50QXJndW1lbnRzLmJhc2VsaW5lIiwgW10KIC0gcGF0aDogQ2hh
a3JhQ29yZS90ZXN0L2VzNS9yZWN1cnNpdmVzZXR0ZXIuanMKSW5kZXg6IEpTVGVzdHMvQ2hha3Jh
Q29yZS90ZXN0L2VzNS9FbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxpbmUtanNjCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2VzNS9FbnVtZXJhdGluZ1dpdGhFUzUuYmFzZWxp
bmUtanNjCShyZXZpc2lvbiAyNjQzNzYpCisrKyBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9lczUv
RW51bWVyYXRpbmdXaXRoRVM1LmJhc2VsaW5lLWpzYwkobm9uZXhpc3RlbnQpCkBAIC0xLDM4MiAr
MCwwIEBACi1UZXN0IDE6IE5vbi13cml0YWJsZSwgc2ltcGxlIHR5cGUgaGFuZGxlcgotVGVzdGlu
ZyBmb3ItaW4gZW51bWVyYXRpb24KLWQ6IGR2YWx1ZQotU2V0dGluZyB2YWx1ZSB0byAxCi1kOiAx
Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEKLVNldHRpbmcg
dmFsdWUgdG8gMgotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1UZXN0
aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byAzCi1kOiAyCi1U
ZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFs
dWUgdG8gNAotZDogMgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLVRlc3Rpbmcg
Zm9yLWluIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDUKLWQ6IDUKLVRlc3Rp
bmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotZDogNQotU2V0dGluZyB2YWx1ZSB0
byA2Ci1kOiA2Ci1DaGFuZ2luZyB3cml0YWJpbGl0eSBkdXJpbmcgZW51bWVyYXRpb24uLi4KLVRl
c3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFs
c2UKLWQ6IDYKLVNldHRpbmcgdmFsdWUgdG8gNwotZDogNgotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gZmFsc2UKLWQ6
IDYKLVNldHRpbmcgdmFsdWUgdG8gOAotZDogNgotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24K
LVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA2Ci1TZXR0aW5nIHZhbHVlIHRv
IDkKLWQ6IDkKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotU2V0dGlu
ZyB3cml0YWJpbGl0eSBvZiBkIHRvIHRydWUKLWQ6IDkKLVNldHRpbmcgdmFsdWUgdG8gMTAKLWQ6
IDEwCi1GcmVlemluZyBvYmplY3QKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1kOiAxMAot
U2V0dGluZyB2YWx1ZSB0byAxMQotZDogMTAKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBl
bnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWQ6IDEwCi0KLVRlc3QgMjog
Tm9uLXdyaXRhYmxlLCBzaW1wbGUgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9y
LWluIGVudW1lcmF0aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVz
dGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVl
IHRvIDIKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBm
b3ItaW4gZW51bWVyYXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGlu
ZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRv
IDQKLWQ6IDIKLVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1p
biBlbnVtZXJhdGlvbgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdl
dE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgot
ZDogNgotQ2hhbmdpbmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5n
IGZvci1pbiBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1k
OiA2Ci1TZXR0aW5nIHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1l
cyBlbnVtZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1T
ZXR0aW5nIHZhbHVlIHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0
aW5nIHdyaXRhYmlsaXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1k
OiA5Ci1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3Jp
dGFiaWxpdHkgb2YgZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAot
RnJlZXppbmcgb2JqZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRp
bmcgdmFsdWUgdG8gMTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVy
YXRpb24KLWQ6IDEwCi1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDM6IE5vbi13
cml0YWJsZSwgZGljdGlvbmFyeSB0eXBlIGhhbmRsZXIKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0
aW9uCi1kOiBkdmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotZDogMQotVGVzdGluZyBnZXRPd25Q
cm9wZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDIKLWQ6IDIK
LVNldHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byBmYWxzZQotVGVzdGluZyBmb3ItaW4gZW51bWVy
YXRpb24KLWQ6IDIKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMgotVGVzdGluZyBnZXRPd25Qcm9w
ZXJ0eU5hbWVzIGVudW1lcmF0aW9uCi1kOiAyCi1TZXR0aW5nIHZhbHVlIHRvIDQKLWQ6IDIKLVNl
dHRpbmcgd3JpdGFiaWxpdHkgb2YgZCB0byB0cnVlCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotZDogMgotU2V0dGluZyB2YWx1ZSB0byA1Ci1kOiA1Ci1UZXN0aW5nIGdldE93blByb3BlcnR5
TmFtZXMgZW51bWVyYXRpb24KLWQ6IDUKLVNldHRpbmcgdmFsdWUgdG8gNgotZDogNgotQ2hhbmdp
bmcgd3JpdGFiaWxpdHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVt
ZXJhdGlvbgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5n
IHZhbHVlIHRvIDcKLWQ6IDYKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlv
bgotU2V0dGluZyB3cml0YWJpbGl0eSBvZiBkIHRvIGZhbHNlCi1kOiA2Ci1TZXR0aW5nIHZhbHVl
IHRvIDgKLWQ6IDYKLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1TZXR0aW5nIHdyaXRhYmls
aXR5IG9mIGQgdG8gdHJ1ZQotZDogNgotU2V0dGluZyB2YWx1ZSB0byA5Ci1kOiA5Ci1UZXN0aW5n
IGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLVNldHRpbmcgd3JpdGFiaWxpdHkgb2Yg
ZCB0byB0cnVlCi1kOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDEwCi1kOiAxMAotRnJlZXppbmcgb2Jq
ZWN0Ci1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlvbgotZDogMTAKLVNldHRpbmcgdmFsdWUgdG8g
MTEKLWQ6IDEwCi1UZXN0aW5nIGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWQ6IDEw
Ci1TZXR0aW5nIHZhbHVlIHRvIDEyCi1kOiAxMAotCi1UZXN0IDQ6IEFjY2Vzc29ycwotRGVmaW5p
bmcgYWNjZXNzb3JzIGZvciBiCi1EZWZpbmluZyBhY2Nlc3NvcnMgZm9yIGYKLVRlc3RpbmcgZm9y
LWluIGVudW1lcmF0aW9uCi1hOiBhVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMQotYTogMQotYjog
R0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDIKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVS
IEZPUiBiCi1kOiBkVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gMwotZDogMwotZjogR0VUVEVSIEZP
UiBmCi1TZXR0aW5nIHZhbHVlIHRvIDQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZPUiBmCi1n
OiBnVmFsdWUKLVNldHRpbmcgdmFsdWUgdG8gNQotZzogNQotVGVzdGluZyBnZXRPd25Qcm9wZXJ0
eU5hbWVzIGVudW1lcmF0aW9uCi1hOiAxCi1TZXR0aW5nIHZhbHVlIHRvIDYKLWE6IDYKLWI6IEdF
VFRFUiBGT1IgYgotU2V0dGluZyB2YWx1ZSB0byA3Ci1TRVRURVIgRk9SIGIKLWI6IEdFVFRFUiBG
T1IgYgotZDogMwotU2V0dGluZyB2YWx1ZSB0byA4Ci1kOiA4Ci1lOiBlVmFsdWUKLVNldHRpbmcg
dmFsdWUgdG8gOQotZTogOQotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVlIHRvIDEwCi1T
RVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogNQotU2V0dGluZyB2YWx1ZSB0byAxMQot
ZzogMTEKLURlZmluaW5nIGFjY2Vzc29ycyBmb3IgZAotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRp
b24KLWE6IDYKLVNldHRpbmcgdmFsdWUgdG8gMTIKLWE6IDEyCi1iOiBHRVRURVIgRk9SIGIKLVNl
dHRpbmcgdmFsdWUgdG8gMTMKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRU
RVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gMTQKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZP
UiBmCi1nOiAxMQotU2V0dGluZyB2YWx1ZSB0byAxNQotZzogMTUKLWQ6IEdFVFRFUgotU2V0dGlu
ZyB2YWx1ZSB0byAxNgotU0VUVEVSCi1kOiBHRVRURVIKLVRlc3RpbmcgZ2V0T3duUHJvcGVydHlO
YW1lcyBlbnVtZXJhdGlvbgotYTogMTIKLVNldHRpbmcgdmFsdWUgdG8gMTcKLWE6IDE3Ci1iOiBH
RVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMTgKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVS
IEZPUiBiCi1lOiA5Ci1TZXR0aW5nIHZhbHVlIHRvIDE5Ci1lOiAxOQotZjogR0VUVEVSIEZPUiBm
Ci1TZXR0aW5nIHZhbHVlIHRvIDIwCi1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzog
MTUKLVNldHRpbmcgdmFsdWUgdG8gMjEKLWc6IDIxCi1kOiBHRVRURVIKLVNldHRpbmcgdmFsdWUg
dG8gMjIKLVNFVFRFUgotZDogR0VUVEVSCi1EZWZpbmluZyBkYXRhIHByb3BlcnR5IGQgd2l0aCB2
YWx1ZSAyMwotVGVzdGluZyBmb3ItaW4gZW51bWVyYXRpb24KLWE6IDE3Ci1TZXR0aW5nIHZhbHVl
IHRvIDI0Ci1hOiAyNAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDI1Ci1TRVRU
RVIgRk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZjogR0VUVEVSIEZPUiBmCi1TZXR0aW5nIHZhbHVl
IHRvIDI2Ci1TRVRURVIgRk9SIGYKLWY6IEdFVFRFUiBGT1IgZgotZzogMjEKLVNldHRpbmcgdmFs
dWUgdG8gMjcKLWc6IDI3Ci1kOiAyMwotU2V0dGluZyB2YWx1ZSB0byAyOAotZDogMjgKLVRlc3Rp
bmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogMjQKLVNldHRpbmcgdmFsdWUg
dG8gMjkKLWE6IDI5Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gMzAKLVNFVFRF
UiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiAxOQotU2V0dGluZyB2YWx1ZSB0byAzMQotZTog
MzEKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byAzMgotU0VUVEVSIEZPUiBmCi1m
OiBHRVRURVIgRk9SIGYKLWc6IDI3Ci1TZXR0aW5nIHZhbHVlIHRvIDMzCi1nOiAzMwotZDogMjgK
LVNldHRpbmcgdmFsdWUgdG8gMzQKLWQ6IDM0Ci1EZWZpbmluZyBhY2Nlc3NvciBwcm9wZXJ0eSBk
dXJpbmcgZW51bWVyYXRpb24uLi4KLVRlc3RpbmcgZm9yLWluIGVudW1lcmF0aW9uCi1hOiAyOQot
U2V0dGluZyB2YWx1ZSB0byAzNQotYTogMzUKLWI6IEdFVFRFUiBGT1IgYgotU2V0dGluZyB2YWx1
ZSB0byAzNgotU0VUVEVSIEZPUiBiCi1iOiBHRVRURVIgRk9SIGIKLWY6IEdFVFRFUiBGT1IgZgot
U2V0dGluZyB2YWx1ZSB0byAzNwotU0VUVEVSIEZPUiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDMz
Ci1TZXR0aW5nIHZhbHVlIHRvIDM4Ci1nOiAzOAotRGVmaW5pbmcgYWNjZXNzb3JzIGZvciBkCi1k
OiBHRVRURVIKLVNldHRpbmcgdmFsdWUgdG8gMzkKLVNFVFRFUgotZDogR0VUVEVSCi1UZXN0aW5n
IGdldE93blByb3BlcnR5TmFtZXMgZW51bWVyYXRpb24KLWE6IDM1Ci1TZXR0aW5nIHZhbHVlIHRv
IDQwCi1hOiA0MAotYjogR0VUVEVSIEZPUiBiCi1TZXR0aW5nIHZhbHVlIHRvIDQxCi1TRVRURVIg
Rk9SIGIKLWI6IEdFVFRFUiBGT1IgYgotZTogMzEKLVNldHRpbmcgdmFsdWUgdG8gNDIKLWU6IDQy
Ci1mOiBHRVRURVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNDMKLVNFVFRFUiBGT1IgZgotZjog
R0VUVEVSIEZPUiBmCi1nOiAzOAotU2V0dGluZyB2YWx1ZSB0byA0NAotZzogNDQKLWQ6IEdFVFRF
UgotU2V0dGluZyB2YWx1ZSB0byA0NQotU0VUVEVSCi1kOiBHRVRURVIKLURlZmluaW5nIGRhdGEg
cHJvcGVydHkgZHVyaW5nIGVudW1lcmF0aW9uLi4uCi1UZXN0aW5nIGZvci1pbiBlbnVtZXJhdGlv
bgotYTogNDAKLVNldHRpbmcgdmFsdWUgdG8gNDcKLWE6IDQ3Ci1iOiBHRVRURVIgRk9SIGIKLVNl
dHRpbmcgdmFsdWUgdG8gNDkKLVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1mOiBHRVRU
RVIgRk9SIGYKLVNldHRpbmcgdmFsdWUgdG8gNTEKLVNFVFRFUiBGT1IgZgotZjogR0VUVEVSIEZP
UiBmCi1nOiA0NAotU2V0dGluZyB2YWx1ZSB0byA1MwotZzogNTMKLURlZmluaW5nIGRhdGEgcHJv
cGVydHkgZCB3aXRoIHZhbHVlIDU0Ci1kOiA1NAotU2V0dGluZyB2YWx1ZSB0byA1NQotZDogNTUK
LVRlc3RpbmcgZ2V0T3duUHJvcGVydHlOYW1lcyBlbnVtZXJhdGlvbgotYTogNDcKLVNldHRpbmcg
dmFsdWUgdG8gNTcKLWE6IDU3Ci1iOiBHRVRURVIgRk9SIGIKLVNldHRpbmcgdmFsdWUgdG8gNTkK
LVNFVFRFUiBGT1IgYgotYjogR0VUVEVSIEZPUiBiCi1lOiA0MgotU2V0dGluZyB2YWx1ZSB0byA2
MQotZTogNjEKLWY6IEdFVFRFUiBGT1IgZgotU2V0dGluZyB2YWx1ZSB0byA2MwotU0VUVEVSIEZP
UiBmCi1mOiBHRVRURVIgRk9SIGYKLWc6IDUzCi1TZXR0aW5nIHZhbHVlIHRvIDY1Ci1nOiA2NQot
ZDogNTUKLVNldHRpbmcgdmFsdWUgdG8gNjcKLWQ6IDY3CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci1kaWN0aW9uYXJ5LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWFjY2Vzc29y
LWRpY3Rpb25hcnkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
cmVkZWZpbmUtcHJvcGVydHktYWNjZXNzb3ItZGljdGlvbmFyeS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI0IEBACisvL0Agc2tpcCBpZiAkbWVtb3J5TGltaXRlZCBhbmQgWyJhcm0iLCAi
bWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCitjb25zdCBvYmogPSB7fTsKK2ZvciAobGV0
IGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgb2JqWyJrIiArIGldID0gaTsKKworZnVuY3Rpb24g
Z2V0dGVyMSgpIHt9CitmdW5jdGlvbiBnZXR0ZXIyKCkge30KK2Z1bmN0aW9uIHNldHRlcjEodikg
e30KK2Z1bmN0aW9uIHNldHRlcjIodikge30KKworY29uc3QgZGVzY0dldDEgPSB7Z2V0OiBnZXR0
ZXIxLCBjb25maWd1cmFibGU6IHRydWV9OworY29uc3QgZGVzY0dldDFTZXQxID0ge2dldDogZ2V0
dGVyMSwgc2V0OiBzZXR0ZXIxfTsKK2NvbnN0IGRlc2NHZXQyU2V0MSA9IHtnZXQ6IGdldHRlcjIs
IHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MVNldDIgPSB7Z2V0OiBnZXR0ZXIxLCBzZXQ6
IHNldHRlcjJ9OworY29uc3QgZGVzY0dldDJTZXQyID0ge2dldDogZ2V0dGVyMiwgc2V0OiBzZXR0
ZXIyfTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGNvbnN0IGtleSA9
ICJrIiArIChpICUgMTAwKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRl
c2NHZXQxKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NHZXQxU2V0
MSk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjR2V0MlNldDEpOwor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY0dldDFTZXQyKTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NHZXQyU2V0Mik7Cit9CkluZGV4OiBK
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1hY2Nl
c3Nvci5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmlu
ZS1wcm9wZXJ0eS1hY2Nlc3Nvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiBnZXR0ZXIxKCkge30KK2Z1bmN0aW9uIGdldHRlcjIoKSB7fQorZnVuY3Rpb24gc2V0
dGVyMSh2KSB7fQorZnVuY3Rpb24gc2V0dGVyMih2KSB7fQorCitjb25zdCBvYmogPSB7YTogMCwg
YjogMSwgZ2V0IGZvbygpIHt9LCBjOiAzLCBkOiA0fTsKK2NvbnN0IGRlc2NHZXQxID0ge2dldDog
Z2V0dGVyMSwgY29uZmlndXJhYmxlOiB0cnVlfTsKK2NvbnN0IGRlc2NHZXQxU2V0MSA9IHtnZXQ6
IGdldHRlcjEsIHNldDogc2V0dGVyMX07Citjb25zdCBkZXNjR2V0MlNldDEgPSB7Z2V0OiBnZXR0
ZXIyLCBzZXQ6IHNldHRlcjF9OworY29uc3QgZGVzY0dldDFTZXQyID0ge2dldDogZ2V0dGVyMSwg
c2V0OiBzZXR0ZXIyfTsKK2NvbnN0IGRlc2NHZXQyU2V0MiA9IHtnZXQ6IGdldHRlcjIsIHNldDog
c2V0dGVyMn07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY0dldDEpOworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmosICJmb28iLCBkZXNjR2V0MVNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvYmosICJmb28iLCBkZXNjR2V0MlNldDEpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShvYmosICJmb28iLCBkZXNjR2V0MVNldDIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosICJmb28iLCBkZXNjR2V0MlNldDIpOworfQpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS1kaWN0aW9uYXJ5LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEtZGljdGlvbmFyeS5q
cwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9w
ZXJ0eS1kYXRhLWRpY3Rpb25hcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAor
Ly9AIHNraXAgaWYgJG1lbW9yeUxpbWl0ZWQgYW5kIFsiYXJtIiwgIm1pcHMiXS5pbmNsdWRlPygk
YXJjaGl0ZWN0dXJlKQorY29uc3Qgb2JqID0ge307Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsg
KytpKQorICAgIG9ialsiayIgKyBpXSA9IGk7CisKK2NvbnN0IGRlc2NOb25Xcml0YWJsZSA9IHt3
cml0YWJsZTogZmFsc2V9OworY29uc3QgZGVzY05vbkVudW1lcmFibGUgPSB7ZW51bWVyYWJsZTog
ZmFsc2V9OworY29uc3QgZGVzY1dyaXRhYmxlID0ge3dyaXRhYmxlOiB0cnVlfTsKK2NvbnN0IGRl
c2NFbnVtZXJhYmxlID0ge2VudW1lcmFibGU6IHRydWV9OworCitmb3IgKGxldCBpID0gMDsgaSA8
IDFlNDsgKytpKSB7CisgICAgY29uc3Qga2V5ID0gImsiICsgKGkgJSAxMDApOworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgZGVzY05vbldyaXRhYmxlKTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NOb25FbnVtZXJhYmxlKTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIGRlc2NXcml0YWJsZSk7CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KG9iaiwga2V5LCBkZXNjRW51bWVyYWJsZSk7CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iaiwga2V5LCB7dmFsdWU6IGl9KTsKK30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL3JlZGVmaW5lLXByb3BlcnR5LWRhdGEuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9t
aWNyb2JlbmNobWFya3MvcmVkZWZpbmUtcHJvcGVydHktZGF0YS5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yZWRlZmluZS1wcm9wZXJ0eS1kYXRhLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2NvbnN0IG9iaiA9IHthOiAwLCBiOiAxLCBmb286
IDIsIGM6IDMsIGQ6IDR9OworY29uc3QgZGVzY05vbldyaXRhYmxlID0ge3dyaXRhYmxlOiBmYWxz
ZX07Citjb25zdCBkZXNjTm9uRW51bWVyYWJsZSA9IHtlbnVtZXJhYmxlOiBmYWxzZX07Citjb25z
dCBkZXNjV3JpdGFibGUgPSB7d3JpdGFibGU6IHRydWV9OworY29uc3QgZGVzY0VudW1lcmFibGUg
PSB7ZW51bWVyYWJsZTogdHJ1ZX07CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY05vbldyaXRhYmxlKTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgZGVzY05vbkVudW1lcmFibGUp
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjV3JpdGFibGUpOwor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCBkZXNjRW51bWVyYWJsZSk7Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIHt2YWx1ZTogaX0pOworfQpJbmRl
eDogSlNUZXN0cy9zdHJlc3MvZGVmaW5lLW93bi1pbmRleGVkLXByb3BlcnR5LWZhc3QtcGF0aC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9kZWZpbmUtb3duLWluZGV4ZWQtcHJvcGVy
dHktZmFzdC1wYXRoLmpzCShyZXZpc2lvbiAyNjQzNzYpCisrKyBKU1Rlc3RzL3N0cmVzcy9kZWZp
bmUtb3duLWluZGV4ZWQtcHJvcGVydHktZmFzdC1wYXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE5ICsxLDExIEBACiBmdW5jdGlvbiBhc3NlcnRTYW1lRGVzY3JpcHRvcihhLCBiKSB7Ci0gIGNv
bnN0IGFTdHJpbmcgPSBzdHJpbmdpZnlEZXNjcmlwdG9yKGEpOwotICBjb25zdCBiU3RyaW5nID0g
c3RyaW5naWZ5RGVzY3JpcHRvcihiKTsKKyAgY29uc3QgYVN0cmluZyA9IEpTT04uc3RyaW5naWZ5
KGEsIG51bGwsIDIpOworICBjb25zdCBiU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYiwgbnVsbCwg
Mik7CiAKICAgaWYgKGFTdHJpbmcgIT09IGJTdHJpbmcpCiAgICAgdGhyb3cgbmV3IEVycm9yKGBC
YWQgZGVzY3JpcHRvciFcbkFjdHVhbDogJHthU3RyaW5nfVxuRXhwZWN0ZWQ6ICR7YlN0cmluZ31g
KTsKIH0KIAotZnVuY3Rpb24gc3RyaW5naWZ5RGVzY3JpcHRvcihkZXNjcmlwdG9yKSB7Ci0gIGNv
bnN0IHNvcnRlZERlc2NyaXB0b3IgPSB7fTsKLSAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0Lmtl
eXMoZGVzY3JpcHRvcikuc29ydCgpKQotICAgIHNvcnRlZERlc2NyaXB0b3Jba2V5XSA9IGRlc2Ny
aXB0b3Jba2V5XTsKLQotICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc29ydGVkRGVzY3JpcHRvciwg
bnVsbCwgMik7Ci19Ci0KIGZ1bmN0aW9uIGdldENvbWJpbmF0aW9ucyhvcHRpb25zKSB7CiAgIGNv
bnN0IG9wdGlvbktleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTsKICAgY29uc3QgcmVzdWx0cyA9
IFtdOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZW51bWVyYWJsZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1lbnVtZXJh
YmxlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5
LWVudW1lcmFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KGRpY3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDA7ICsraSkKKyAgICAgICAgZGljdFsiayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7
Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9v
KCkgeworICAgICAgICBjbGFzcyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAg
ICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG5ldyBDKCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
MTU7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlv
biB0ZXN0KHByb3RvLCBrZXkxLCBrZXkyKSB7CisgICAgcHJvdG9ba2V5MV0gPSAxOworICAgIHBy
b3RvW2tleTJdID0gMjsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHtl
bnVtZXJhYmxlOiBmYWxzZX0pOworCisgICAgY29uc3QgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHBy
b3RvKTsKKworICAgIGZ1bmN0aW9uIGlzS2V5MUVudW1lcmFibGUob2JqKSB7CisgICAgICAgIGZv
ciAobGV0IGtleSBpbiBvYmopIHsKKyAgICAgICAgICAgIGlmIChrZXkgPT0ga2V5MSkgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGlzS2V5MkVudW1lcmFibGUob2JqKSB7CisgICAgICAgIGZvciAobGV0IGtleSBpbiBv
YmopIHsKKyAgICAgICAgICAgIGlmIChrZXkgPT0ga2V5MikgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG5vSW5saW5lKGlzS2V5MUVu
dW1lcmFibGUpOworICAgIG5vSW5saW5lKGlzS2V5MkVudW1lcmFibGUpOworCisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAyMDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGlzS2V5MUVudW1lcmFi
bGUoY2hpbGQpLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoaXNLZXkxRW51bWVyYWJsZShwcm90
byksIHRydWUpOworICAgICAgICBzaG91bGRCZShpc0tleTJFbnVtZXJhYmxlKGNoaWxkKSwgZmFs
c2UpOworICAgICAgICBzaG91bGRCZShpc0tleTJFbnVtZXJhYmxlKHByb3RvKSwgZmFsc2UpOwor
ICAgIH0KKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwge2VudW1lcmFi
bGU6IGZhbHNlfSk7CisgICAgc2hvdWxkQmUoaXNLZXkxRW51bWVyYWJsZShjaGlsZCksIGZhbHNl
KTsKKyAgICBzaG91bGRCZShpc0tleTFFbnVtZXJhYmxlKHByb3RvKSwgZmFsc2UpOworCisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkyLCB7ZW51bWVyYWJsZTogdHJ1ZX0pOwor
ICAgIHNob3VsZEJlKGlzS2V5MkVudW1lcmFibGUoY2hpbGQpLCB0cnVlKTsKKyAgICBzaG91bGRC
ZShpc0tleTJFbnVtZXJhYmxlKHByb3RvKSwgdHJ1ZSk7Cit9CisKK3Rlc3Qoe30sIDAsICJiYXIi
KTsKK3Rlc3QoT2JqZWN0LmNyZWF0ZShudWxsKSwgIl9fcHJvdG9fXyIsIDEpOworCit0ZXN0KG1h
a2VEaWN0aW9uYXJ5KHt9KSwgImZvbyIsIDIpOwordGVzdChtYWtlRGljdGlvbmFyeShPYmplY3Qu
Y3JlYXRlKG51bGwpKSwgMywgIl9fcHJvdG9fXyIpOworCit0ZXN0KG1ha2VQb2x5UHJvdG9PYmpl
Y3QoKSwgImZvbyIsICJiYXIiKTsKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCA0LCA1KTsK
SW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXByb3BlcnR5LWdldC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS1nZXQuanMJKG5vbmV4aXN0ZW50
KQorKysgSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktZ2V0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBtYWtlRGljdGlvbmFyeShk
aWN0KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIGRpY3Rb
ImsiICsgaV0gPSBpOworICAgIHJldHVybiBkaWN0OworfQorCitmdW5jdGlvbiBtYWtlUG9seVBy
b3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7Cisg
ICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVsZCA9
IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygpOwor
ICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyArK2kpCisgICAgICAgIGZvbygpOwor
ICAgIHJldHVybiBmb28oKTsKK30KKworZnVuY3Rpb24gdGVzdChwcm90bywga2V5MSwga2V5Mikg
eworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MSwgeworICAgICAgICBnZXQ6
ICgpID0+IDEsCisgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgICB9KTsKKworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5MiwgeworICAgICAgICBnZXQ6ICgpID0+IDIs
CisgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgICB9KTsKKworICAgIGNvbnN0IGNoaWxk
ID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisKKyAgICBmdW5jdGlvbiBnZXRLZXkxKG9iaikgewor
ICAgICAgICByZXR1cm4gb2JqW2tleTFdOworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldEtleTIo
b2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5Ml07CisgICAgfQorCisgICAgbm9JbmxpbmUo
Z2V0S2V5MSk7CisgICAgbm9JbmxpbmUoZ2V0S2V5Mik7CisKKyAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGdldEtleTEoY2hpbGQpLCAxKTsKKyAg
ICAgICAgc2hvdWxkQmUoZ2V0S2V5MShwcm90byksIDEpOworICAgICAgICBzaG91bGRCZShnZXRL
ZXkyKGNoaWxkKSwgMik7CisgICAgICAgIHNob3VsZEJlKGdldEtleTIocHJvdG8pLCAyKTsKKyAg
ICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHtnZXQoKSB7fX0p
OworICAgIHNob3VsZEJlKGdldEtleTEoY2hpbGQpLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJl
KGdldEtleTEocHJvdG8pLCB1bmRlZmluZWQpOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHByb3RvLCBrZXkyLCB7Z2V0OiB1bmRlZmluZWR9KTsKKyAgICBzaG91bGRCZShnZXRLZXkyKGNo
aWxkKSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShnZXRLZXkyKHByb3RvKSwgdW5kZWZpbmVk
KTsKK30KKwordGVzdCh7fSwgMCwgImJhciIpOwordGVzdChPYmplY3QuY3JlYXRlKG51bGwpLCAi
X19wcm90b19fIiwgMSk7CisKK3Rlc3QobWFrZURpY3Rpb25hcnkoe30pLCAiZm9vIiwgMik7Cit0
ZXN0KG1ha2VEaWN0aW9uYXJ5KE9iamVjdC5jcmVhdGUobnVsbCkpLCAzLCAiX19wcm90b19fIik7
CisKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCAiZm9vIiwgImJhciIpOwordGVzdChtYWtl
UG9seVByb3RvT2JqZWN0KCksIDQsIDUpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUt
cHJvcGVydHktc2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3JlZGVmaW5lLXBy
b3BlcnR5LXNldC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1w
cm9wZXJ0eS1zZXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VEaWN0aW9uYXJ5KGRpY3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDEwMDA7ICsraSkKKyAgICAgICAgZGljdFsiayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7
Cit9CisKK2Z1bmN0aW9uIG1ha2VQb2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9v
KCkgeworICAgICAgICBjbGFzcyBDIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAg
ICAgICAgICAgICAgIHRoaXMuX2ZpZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG5ldyBDKCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
MTU7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlv
biB0ZXN0KHByb3RvLCBrZXkxLCBrZXkyKSB7CisgICAgbGV0IG5leHRWYWx1ZSA9IDEwOworCisg
ICAgbGV0IHZhbHVlMTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEsIHsK
KyAgICAgICAgc2V0KHZhbCkgeyB2YWx1ZTEgPSB2YWw7IH0sCisgICAgICAgIGNvbmZpZ3VyYWJs
ZTogdHJ1ZSwKKyAgICB9KTsKKworICAgIGxldCB2YWx1ZTI7CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHByb3RvLCBrZXkyLCB7CisgICAgICAgIHNldCh2YWwpIHsgdmFsdWUyID0gdmFsOyB9
LAorICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCisgICAgfSk7CisKKyAgICBjb25zdCBjaGls
ZCA9IE9iamVjdC5jcmVhdGUocHJvdG8pOworCisgICAgZnVuY3Rpb24gc2V0S2V5MShvYmopIHsK
KyAgICAgICAgb2JqW2tleTFdID0gKytuZXh0VmFsdWU7CisgICAgICAgIHJldHVybiB2YWx1ZTEg
PT09IG5leHRWYWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRLZXkyKG9iaikgeworICAg
ICAgICBvYmpba2V5Ml0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlMiA9PT0g
bmV4dFZhbHVlOworICAgIH0KKworICAgIG5vSW5saW5lKHNldEtleTEpOworICAgIG5vSW5saW5l
KHNldEtleTIpOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAg
ICBzaG91bGRCZShzZXRLZXkxKGNoaWxkKSwgdHJ1ZSk7CisgICAgICAgIHNob3VsZEJlKHNldEtl
eTEocHJvdG8pLCB0cnVlKTsKKyAgICAgICAgc2hvdWxkQmUoc2V0S2V5MihjaGlsZCksIHRydWUp
OworICAgICAgICBzaG91bGRCZShzZXRLZXkyKHByb3RvKSwgdHJ1ZSk7CisgICAgfQorCisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7c2V0OiB1bmRlZmluZWR9KTsKKyAg
ICBzaG91bGRCZShzZXRLZXkxKGNoaWxkKSwgZmFsc2UpOworICAgIHNob3VsZEJlKHNldEtleTEo
cHJvdG8pLCBmYWxzZSk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTIs
IHtzZXQoKSB7fX0pOworICAgIHNob3VsZEJlKHNldEtleTIoY2hpbGQpLCBmYWxzZSk7CisgICAg
c2hvdWxkQmUoc2V0S2V5Mihwcm90byksIGZhbHNlKTsKK30KKwordGVzdCh7fSwgMCwgImJhciIp
OwordGVzdChPYmplY3QuY3JlYXRlKG51bGwpLCAiX19wcm90b19fIiwgMSk7CisKK3Rlc3QobWFr
ZURpY3Rpb25hcnkoe30pLCAiZm9vIiwgMik7Cit0ZXN0KG1ha2VEaWN0aW9uYXJ5KE9iamVjdC5j
cmVhdGUobnVsbCkpLCAzLCAiX19wcm90b19fIik7CisKK3Rlc3QobWFrZVBvbHlQcm90b09iamVj
dCgpLCAiZm9vIiwgImJhciIpOwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksIDQsIDUpOwpJ
bmRleDogSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanMJKG5vbmV4aXN0
ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvcmVkZWZpbmUtcHJvcGVydHktdmFsdWUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2NiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEaWN0aW9u
YXJ5KGRpY3QpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAg
ZGljdFsiayIgKyBpXSA9IGk7CisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK2Z1bmN0aW9uIG1ha2VQ
b2x5UHJvdG9PYmplY3QoKSB7CisgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICBjbGFzcyBD
IHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2Zp
ZWxkID0gNDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBD
KCk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTU7ICsraSkKKyAgICAgICAgZm9v
KCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitmdW5jdGlvbiB0ZXN0KHByb3RvLCBrZXkxLCBr
ZXkyKSB7CisgICAgcHJvdG9ba2V5MV0gPSAxOworICAgIHByb3RvW2tleTJdID0gMjsKKworICAg
IGNvbnN0IGNoaWxkID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisKKyAgICBmdW5jdGlvbiBnZXRL
ZXkxKG9iaikgeworICAgICAgICByZXR1cm4gb2JqW2tleTFdOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGdldEtleTIob2JqKSB7CisgICAgICAgIHJldHVybiBvYmpba2V5Ml07CisgICAgfQorCisg
ICAgbm9JbmxpbmUoZ2V0S2V5MSk7CisgICAgbm9JbmxpbmUoZ2V0S2V5Mik7CisKKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHNob3VsZEJlKGdldEtleTEoY2hp
bGQpLCAxKTsKKyAgICAgICAgc2hvdWxkQmUoZ2V0S2V5MShwcm90byksIDEpOworICAgICAgICBz
aG91bGRCZShnZXRLZXkyKGNoaWxkKSwgMik7CisgICAgICAgIHNob3VsZEJlKGdldEtleTIocHJv
dG8pLCAyKTsKKyAgICB9CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIGtleTEs
IHt2YWx1ZTogM30pOworICAgIHNob3VsZEJlKGdldEtleTEoY2hpbGQpLCAzKTsKKyAgICBzaG91
bGRCZShnZXRLZXkxKHByb3RvKSwgMyk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJv
dG8sIGtleTIsIHtzZXQoKSB7fX0pOworICAgIHNob3VsZEJlKGdldEtleTIoY2hpbGQpLCB1bmRl
ZmluZWQpOworICAgIHNob3VsZEJlKGdldEtleTIocHJvdG8pLCB1bmRlZmluZWQpOworfQorCit0
ZXN0KHt9LCAwLCAiYmFyIik7Cit0ZXN0KE9iamVjdC5jcmVhdGUobnVsbCksICJfX3Byb3RvX18i
LCAxKTsKKwordGVzdChtYWtlRGljdGlvbmFyeSh7fSksICJmb28iLCAyKTsKK3Rlc3QobWFrZURp
Y3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSksIDMsICJfX3Byb3RvX18iKTsKKwordGVzdCht
YWtlUG9seVByb3RvT2JqZWN0KCksICJmb28iLCAiYmFyIik7Cit0ZXN0KG1ha2VQb2x5UHJvdG9P
YmplY3QoKSwgNCwgNSk7CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0eS13
cml0YWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1wcm9wZXJ0
eS13cml0YWJsZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS1w
cm9wZXJ0eS13cml0YWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gbWFrZURpY3Rpb25hcnkoZGljdCkgeworICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDsgKytpKQorICAgICAgICBkaWN0WyJrIiArIGldID0gaTsKKyAgICByZXR1cm4g
ZGljdDsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQcm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlv
biBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7
CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQgPSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxNTsgKytpKQorICAgICAgICBmb28oKTsKKyAgICByZXR1cm4gZm9vKCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QocHJvdG8sIGtleTEsIGtleTIpIHsKKyAgICBwcm90b1trZXkxXSA9IDE7Cisg
ICAgcHJvdG9ba2V5Ml0gPSAyOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywga2V5
Miwge3dyaXRhYmxlOiBmYWxzZX0pOworCisgICAgY29uc3QgY2hpbGQgPSBPYmplY3QuY3JlYXRl
KHByb3RvKTsKKyAgICBsZXQgbmV4dFZhbHVlID0gMTA7CisKKyAgICBmdW5jdGlvbiBpc0tleTFX
cml0YWJsZVN0cmljdChvYmopIHsKKyAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICB0cnkg
eworICAgICAgICAgICAgb2JqW2tleTFdID0gKytuZXh0VmFsdWU7CisgICAgICAgIH0gY2F0Y2gg
eworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlzS2V5MVdyaXRhYmxlKG9iaikgeworICAgICAg
ICBvYmpba2V5MV0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIG9ialtrZXkxXSA9PT0g
bmV4dFZhbHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlzS2V5MldyaXRhYmxlU3RyaWN0KG9i
aikgeworICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBv
Ympba2V5Ml0gPSArK25leHRWYWx1ZTsKKyAgICAgICAgfSBjYXRjaCB7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gaXNLZXkyV3JpdGFibGUob2JqKSB7CisgICAgICAgIG9ialtrZXkyXSA9ICsr
bmV4dFZhbHVlOworICAgICAgICByZXR1cm4gb2JqW2tleTJdID09PSBuZXh0VmFsdWU7CisgICAg
fQorCisgICAgbm9JbmxpbmUoaXNLZXkxV3JpdGFibGVTdHJpY3QpOworICAgIG5vSW5saW5lKGlz
S2V5MVdyaXRhYmxlKTsKKyAgICBub0lubGluZShpc0tleTJXcml0YWJsZVN0cmljdCk7CisgICAg
bm9JbmxpbmUoaXNLZXkyV3JpdGFibGUpOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgICAgICBzaG91bGRCZShpc0tleTFXcml0YWJsZVN0cmljdChjaGlsZCksIHRy
dWUpOworICAgICAgICBzaG91bGRCZShpc0tleTFXcml0YWJsZShwcm90byksIHRydWUpOworICAg
ICAgICBzaG91bGRCZShpc0tleTJXcml0YWJsZVN0cmljdChjaGlsZCksIGZhbHNlKTsKKyAgICAg
ICAgc2hvdWxkQmUoaXNLZXkyV3JpdGFibGUocHJvdG8pLCBmYWxzZSk7CisKKyAgICAgICAgZGVs
ZXRlIGNoaWxkW2tleTFdOworICAgICAgICBkZWxldGUgY2hpbGRba2V5Ml07CisgICAgfQorCisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBrZXkxLCB7d3JpdGFibGU6IGZhbHNlfSk7
CisgICAgc2hvdWxkQmUoaXNLZXkxV3JpdGFibGVTdHJpY3QoY2hpbGQpLCBmYWxzZSk7CisgICAg
c2hvdWxkQmUoaXNLZXkxV3JpdGFibGUocHJvdG8pLCBmYWxzZSk7CisKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkocHJvdG8sIGtleTIsIHt3cml0YWJsZTogdHJ1ZX0pOworICAgIHNob3VsZEJl
KGlzS2V5MldyaXRhYmxlU3RyaWN0KGNoaWxkKSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoaXNLZXky
V3JpdGFibGUocHJvdG8pLCB0cnVlKTsKK30KKwordGVzdCh7fSwgMCwgImJhciIpOwordGVzdChP
YmplY3QuY3JlYXRlKG51bGwpLCAiX19wcm90b19fIiwgMSk7CisKK3Rlc3QobWFrZURpY3Rpb25h
cnkoe30pLCAiZm9vIiwgMik7Cit0ZXN0KG1ha2VEaWN0aW9uYXJ5KE9iamVjdC5jcmVhdGUobnVs
bCkpLCAzLCAiX19wcm90b19fIik7CisKK3Rlc3QobWFrZVBvbHlQcm90b09iamVjdCgpLCAiZm9v
IiwgImJhciIpOwordGVzdChtYWtlUG9seVByb3RvT2JqZWN0KCksIDQsIDUpOwpJbmRleDogSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAkocmV2aXNpb24gMjY0Mzc2KQorKysgSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC05MjUsMjMgKzkyNSwxNCBA
QCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvZGVmaW5lUHJvcGVydGllcy9wCiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3lt
Ym9sKCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFswLCBTeW1ib2woKSwgZm9vXSBhbmQgWzAsIGZvbywgU3ltYm9s
KCldIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9l
bnRyaWVzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFu
ZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJworICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbYSwgbmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwg
bmFtZV0gYW5kIFtuYW1lLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvZnJlZXplL3Byb3h5LW5vLW93bmtleXMtcmV0dXJuZWQta2V5cy1vcmRl
ci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBm
b29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwog
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29d
IGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVz
dC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5RGVzY3JpcHRvcnMvb3JkZXItYWZ0ZXIt
ZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
U3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYildIHRvIGhhdmUg
dGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5kIFtTeW1ib2woYSksIFN5bWJvbChiKV0gdG8g
aGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blBy
b3BlcnR5RGVzY3JpcHRvcnMvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10g
YW5kIFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5k
IFswLCBmb28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1
aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy9vcmRlci1hZnRlci1kZWZpbmUtcHJv
cGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQg
W2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eVN5bWJvbHMvb3Jk
ZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbU3ltYm9sKGIpLCBTeW1ib2woYSldIGFuZCBbU3ltYm9sKGEpLCBTeW1ib2woYild
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5kIFtTeW1ib2woYSksIFN5bWJv
bChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0
L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVlLWZ1bmN0aW9uLWFy
Z3VtZW50cy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrbnVsbMK7LCDCq1tvYmplY3QgQXJndW1lbnRzXcK7KSB0byBiZSB0cnVlJwogdGVzdC9idWls
dC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25zaXN0ZW50LXZhbHVl
LWZ1bmN0aW9uLWNhbGxlci5qczoKQEAgLTk1NiwxNCArOTQ3LDExIEBAIHRlc3QvYnVpbHQtaW5z
L09iamVjdC9pc1NlYWxlZC9wcm94eS1uby0KICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0
aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgWzAsIFN5bWJvbCgpLCBmb29dIGFuZCBbMCwgZm9vLCBTeW1ib2woKV0gdG8gaGF2ZSB0aGUg
c2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMvb3JkZXItYWZ0ZXIt
ZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
YiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzLiAnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFth
LCBsZW5ndGhdIGFuZCBbbGVuZ3RoLCBhXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCisg
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYSwgbGVuZ3RoXSBhbmQgW2xl
bmd0aCwgYV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1pbnMvT2Jq
ZWN0L3NlYWwvcHJveHktbm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBm
b28sIFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbMCwgU3ltYm9sKCksIGZvb10gYW5kIFswLCBmb28s
IFN5bWJvbCgpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9P
YmplY3QvdmFsdWVzL29yZGVyLWFmdGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2Is
IGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogdGVzdC9idWlsdC1p
bnMvUHJveHkvYXBwbHkvYXJndW1lbnRzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmdW5jdGlvbiBBcnJheSgpIHsnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmdW5jdGlvbiBBcnJheSgp
IHsnCkBAIC0xMDAzLDkgKzk5MSw2IEBAIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2NvbnN0cnVjdC90
cmFwLWlzLW4KIHRlc3QvYnVpbHQtaW5zL1Byb3h5L293bktleXMvdHJhcC1pcy11bmRlZmluZWQt
dGFyZ2V0LWlzLXByb3h5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
bGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0g
dG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW2xlbmd0aCwgZm9vLCAwLCBTeW1ib2woKV0gYW5kIFtTeW1ib2woKSwgbGVu
Z3RoLCBmb28sIDBdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5z
L1JlZmxlY3Qvb3duS2V5cy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtTeW1ib2woYiksIFN5bWJvbChhKV0gYW5kIFtT
eW1ib2woYSksIFN5bWJvbChiKV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW1N5bWJvbChiKSwgU3ltYm9sKGEpXSBh
bmQgW1N5bWJvbChhKSwgU3ltYm9sKGIpXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0
ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvcGVydHktZXNjYXBlcy9nZW5lcmF0ZWQvQWxwaGFiZXRp
Yy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYFxwe0FscGhhYmV0aWN9YCBzaG91bGQg
bWF0Y2ggVSswMDFDRkEgKGDhs7pgKScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBc
cHtBbHBoYWJldGljfWAgc2hvdWxkIG1hdGNoIFUrMDAxQ0ZBIChg4bO6YCknCkBAIC0zMjE5LDkg
KzMyMDQsNiBAQCB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWluL2lkZW50aWZpCiAgIGRl
ZmF1bHQ6ICJTeW50YXhFcnJvcjogQ2Fubm90IHVzZSB0aGUga2V5d29yZCAnaW4nIGFzIGEgbGV4
aWNhbCB2YXJpYWJsZSBuYW1lLiIKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItaW4vbGV0
LWFycmF5LXdpdGgtbmV3bGluZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9m
b3ItaW4vb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5k
IFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiB0ZXN0L2xhbmd1YWdlL3N0YXRl
bWVudHMvZm9yLWluL29yZGVyLWVudW1lcmFibGUtc2hhZG93ZWQuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwgcDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtwMSwg
cDJdIGFuZCBbcDFdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY0Mzc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA3LTE0ICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBSZWRlZmlu
aW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCBjaGFuZ2UgaXRzIGluc2VydGlvbiBpbmRleCAoT2Jq
ZWN0LmtleXMgb3JkZXIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDI5MzMKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAg
ICAgICBCZWZvcmUgdGhpcyBjaGFuZ2UsIEpTQyB1c2VkIHRvIGRlbGV0ZSAmIHB1dCBiYWNrIGEg
bm9uLWluZGV4ZWQgcHJvcGVydHkganVzdCB0bworICAgICAgICB1cGRhdGUgYXR0cmlidXRlcywg
d2hpY2ggd2FzIGxlc3MgZWZmaWNpZW50IGFuZCBjb3JydXB0ZWQgb2JzZXJ2YWJsZSBwcm9wZXJ0
eSBvcmRlci4KKworICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAxLiBSZXdyaXRlcyB2YWxp
ZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKCkgdG8gY2xvc2VseSByZXNlbWJsZSB0aGUg
c3BlYyBbMV0uCisgICAgICAgIDIuIERyb3BzIHByb3BlcnR5IGRlbGV0aW9uLCBpbmxpbmVzIHB1
dERlc2NyaXB0b3IoKSwgYW5kIHNldHMgbmVjZXNzYXJ5IFN0cnVjdHVyZQorICAgICAgICAgICBm
bGFncyBpbiBhdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKCkuCisgICAgICAgIDMuIFNpbXBsaWZp
ZXMgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcigpIGEgYml0IGJ5IG9idGFpbmlu
ZyBHZXR0ZXJTZXR0ZXIKKyAgICAgICAgICAgaW5zdGFuY2UgZnJvbSBjdXJyZW50IGRlc2NyaXB0
b3IgcmF0aGVyIHRoZW4gY2FsbGluZyBnZXREaXJlY3QoKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSBhbGlnbnMgcHJvcGVydHkgb3JkZXIgd2l0aCBWOCBhbmQgU3BpZGVyTW9ua2V5LCBhZHZhbmNp
bmcgcHJvdmlkZWQKKyAgICAgICAgbWljcm9iZW5jaG1hcmtzIGJ5IDUtODUlIChlc3BlY2lhbGx5
IGZvciBvYmplY3RzIGluIGRpY3Rpb25hcnkgbW9kZSkuCisgICAgICAgIFNpeFNwZWVkLCBTdW5T
cGlkZXIsIGFuZCBBUkVTLTYgYXJlIGFsbCBuZXV0cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6
Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9y
CisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6dmFsaWRh
dGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpk
ZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cHV0RGVzY3JpcHRvcik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1By
b3BlcnR5RGVzY3JpcHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6
c2xvd0dldHRlclNldHRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRv
cjo6c2xvd0dldHRlclNldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0
eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisKIDIwMjAtMDct
MTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBm
aXh1cCBMTEludCBmYXN0IHBhdGggaW4gb3BfZ2V0X3ByaXZhdGVfbmFtZQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMjY0Mzc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNTUxLDQxICszNTUxLDYgQEAgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBwdXREZXNjcmlw
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgdW5zaWduZWQgYXR0cmlidXRlcywgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBvbGREZXNj
cmlwdG9yKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoZGVz
Y3JpcHRvci5pc0dlbmVyaWNEZXNjcmlwdG9yKCkgfHwgZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlw
dG9yKCkpIHsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpICYm
IG9sZERlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewotICAgICAgICAgICAgSlNP
YmplY3QqIGdldHRlciA9IG9sZERlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpID8gb2xkRGVzY3Jp
cHRvci5nZXR0ZXJPYmplY3QoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICBKU09iamVjdCogc2V0
dGVyID0gb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkgPyBvbGREZXNjcmlwdG9yLnNldHRl
ck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICAgICAgICAgIEdldHRlclNldHRlciogYWNjZXNzb3Ig
PSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7
Ci0gICAgICAgICAgICB0YXJnZXQtPnB1dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCBhY2Nlc3NvciwgYXR0cmlidXRlcyB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3Nvcik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBKU1Zh
bHVlIG5ld1ZhbHVlID0ganNVbmRlZmluZWQoKTsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFs
dWUoKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpOwotICAgICAg
ICBlbHNlIGlmIChvbGREZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAgICAgICBuZXdWYWx1ZSA9
IG9sZERlc2NyaXB0b3IudmFsdWUoKTsKLSAgICAgICAgdGFyZ2V0LT5wdXREaXJlY3Qodm0sIHBy
b3BlcnR5TmFtZSwgbmV3VmFsdWUsIGF0dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OkFj
Y2Vzc29yKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpCi0gICAgICAgICAgICB0YXJnZXQtPnN0cnVjdHVyZSh2bSktPnNldENvbnRhaW5zUmVh
ZE9ubHlQcm9wZXJ0aWVzKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBhdHRy
aWJ1dGVzICY9IH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7Ci0KLSAgICBKU09iamVjdCog
Z2V0dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9y
LmdldHRlck9iamVjdCgpIDogb2xkRGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkKLSAgICAgICAg
PyBvbGREZXNjcmlwdG9yLmdldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBKU09iamVjdCog
c2V0dGVyID0gZGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAgPyBkZXNjcmlwdG9y
LnNldHRlck9iamVjdCgpIDogb2xkRGVzY3JpcHRvci5zZXR0ZXJQcmVzZW50KCkKLSAgICAgICAg
PyBvbGREZXNjcmlwdG9yLnNldHRlck9iamVjdCgpIDogbnVsbHB0cjsKLSAgICBHZXR0ZXJTZXR0
ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2V0
dGVyLCBzZXR0ZXIpOwotCi0gICAgdGFyZ2V0LT5wdXREaXJlY3RBY2Nlc3NvcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXMgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6QWNjZXNzb3IpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEpTT2JqZWN0OjpwdXRE
aXJlY3RNYXlCZUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPHVpbnQz
Ml90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKQEAgLTM1OTMsOCArMzU1OCw3
IEBAIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoSlNHbG8KICAgICByZXR1cm4g
cHV0RGlyZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CiAK
LS8vIDkuMS42LjMgb2YgdGhlIHNwZWMKLS8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFs
Lm9yZy9lY21hLTI2Mi82LjAvaW5kZXguaHRtbCNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5
ZGVzY3JpcHRvcgorLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy12YWxpZGF0ZWFuZGFw
cGx5cHJvcGVydHlkZXNjcmlwdG9yCiBib29sIHZhbGlkYXRlQW5kQXBwbHlQcm9wZXJ0eURlc2Ny
aXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgYm9vbCBpc0V4dGVuc2libGUsCiAgICAgY29uc3QgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIGlzQ3VycmVudERlZmluZWQsIGNvbnN0
IFByb3BlcnR5RGVzY3JpcHRvciYgY3VycmVudCwgYm9vbCB0aHJvd0V4Y2VwdGlvbikKIHsKQEAg
LTM2MDgsMTMzICszNTcyLDg4IEBAIGJvb2wgdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3Jp
cHRvcigKICAgICAgICAgLy8gU3RlcCAyLmEKICAgICAgICAgaWYgKCFpc0V4dGVuc2libGUpCiAg
ICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhj
ZXB0aW9uLCBOb25FeHRlbnNpYmxlT2JqZWN0UHJvcGVydHlEZWZpbmVFcnJvcik7Ci0gICAgICAg
IGlmICghb2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIC8vIFN0ZXAg
Mi5jL2QKLSAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG9sZERlc2NyaXB0b3I7Ci0gICAgICAg
IG9sZERlc2NyaXB0b3Iuc2V0VmFsdWUoanNVbmRlZmluZWQoKSk7Ci0gICAgICAgIC8vIEZJWE1F
OiBzcGVjIHNheXMgdG8gYWx3YXlzIHJldHVybiB0cnVlIGhlcmUuCi0gICAgICAgIHJldHVybiBw
dXREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IsIGRlc2NyaXB0b3IuYXR0cmlidXRlcygpLCBvbGREZXNjcmlwdG9yKTsKKworICAgICAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3Jp
cHRvcigpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IChkZXNjcmlw
dG9yLmF0dHJpYnV0ZXMoKSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgJiB+UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5OworICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0
QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Iuc2xvd0dldHRl
clNldHRlcihnbG9iYWxPYmplY3QpLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigp
IHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKTsKKyAgICAgICAgICAgICAgICBKU1Zh
bHVlIHZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgpID8gZGVzY3JpcHRvci52YWx1ZSgpIDoganNV
bmRlZmluZWQoKTsKKyAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgJiB+UHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAvLyBTdGVwIDMuCiAgICAgaWYgKGRlc2NyaXB0b3IuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAvLyBTdGVwIDQuCisKICAgICBib29sIGlz
RXF1YWwgPSBjdXJyZW50LmVxdWFsVG8oZ2xvYmFsT2JqZWN0LCBkZXNjcmlwdG9yKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgaWYgKGlzRXF1YWwpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gU3RlcCA1LgotICAgIC8vIEZpbHRlciBvdXQgaW52
YWxpZCBjaGFuZ2VzCisgICAgLy8gU3RlcCA0LgogICAgIGlmICghY3VycmVudC5jb25maWd1cmFi
bGUoKSkgewogICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkKICAgICAgICAg
ICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24s
IFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VDb25maWd1cmFiaWxpdHlFcnJvcik7CiAgICAg
ICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5lbnVt
ZXJhYmxlKCkgIT0gY3VycmVudC5lbnVtZXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJs
ZVByb3BlcnR5Q2hhbmdlRW51bWVyYWJpbGl0eUVycm9yKTsKICAgICB9Ci0gICAgCi0gICAgLy8g
U3RlcCA2LgotICAgIC8vIEEgZ2VuZXJpYyBkZXNjcmlwdG9yIGlzIHNpbXBseSBjaGFuZ2luZyB0
aGUgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQorCiAgICAgaWYgKGRlc2NyaXB0
b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC5hdHRyaWJ1
dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgb2JqZWN0KSB7Ci0gICAgICAgICAgICBKU0NlbGw6OmRl
bGV0ZVByb3BlcnR5KG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICAgICAgcmV0
dXJuIHB1dERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvciwgZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQoY3VycmVudCks
IGN1cnJlbnQpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAK
LSAgICAvLyBTdGVwIDcuCi0gICAgLy8gQ2hhbmdpbmcgYmV0d2VlbiBhIG5vcm1hbCBwcm9wZXJ0
eSBvciBhbiBhY2Nlc3NvciBwcm9wZXJ0eQotICAgIGlmIChkZXNjcmlwdG9yLmlzRGF0YURlc2Ny
aXB0b3IoKSAhPSBjdXJyZW50LmlzRGF0YURlc2NyaXB0b3IoKSkgeworICAgICAgICAvLyBTdGVw
IDUuCisgICAgICAgIC8vIENoYW5naW5nIFtbRW51bWVyYWJsZV1dIGFuZCBbW0NvbmZpZ3VyYWJs
ZV1dIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkKKyAgICB9IGVsc2UgaWYgKGN1
cnJlbnQuaXNEYXRhRGVzY3JpcHRvcigpICE9IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigp
KSB7CisgICAgICAgIC8vIFN0ZXAgNi4KKyAgICAgICAgLy8gQ2hhbmdpbmcgYmV0d2VlbiBhIGRh
dGEgcHJvcGVydHkgYW5kIGFjY2Vzc29yIHByb3BlcnR5CiAgICAgICAgIGlmICghY3VycmVudC5j
b25maWd1cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VBY2Nl
c3NNZWNoYW5pc21FcnJvcik7CisgICAgfSBlbHNlIGlmIChjdXJyZW50LmlzRGF0YURlc2NyaXB0
b3IoKSAmJiBkZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgeworICAgICAgICAvLyBTdGVw
IDcuCisgICAgICAgIC8vIENoYW5naW5nIHRoZSB2YWx1ZSBhbmQgYXR0cmlidXRlcyBvZiBhbiBl
eGlzdGluZyBkYXRhIHByb3BlcnR5CisgICAgICAgIGlmICghY3VycmVudC5jb25maWd1cmFibGUo
KSAmJiAhY3VycmVudC53cml0YWJsZSgpKSB7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci53
cml0YWJsZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VXcml0
YWJpbGl0eUVycm9yKTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkgJiYgIXNh
bWVWYWx1ZShnbG9iYWxPYmplY3QsIGN1cnJlbnQudmFsdWUoKSwgZGVzY3JpcHRvci52YWx1ZSgp
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
IHRocm93RXhjZXB0aW9uLCBSZWFkb25seVByb3BlcnR5Q2hhbmdlRXJyb3IpOwogCi0gICAgICAg
IGlmICghb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgSlNDZWxs
OjpkZWxldGVQcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICByZXR1cm4g
cHV0RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yLCBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KSwgY3Vy
cmVudCk7Ci0gICAgfQotCi0gICAgLy8gU3RlcCA4LgotICAgIC8vIENoYW5naW5nIHRoZSB2YWx1
ZSBhbmQgYXR0cmlidXRlcyBvZiBhbiBleGlzdGluZyBwcm9wZXJ0eQotICAgIGlmIChkZXNjcmlw
dG9yLmlzRGF0YURlc2NyaXB0b3IoKSkgewotICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJh
YmxlKCkpIHsKLSAgICAgICAgICAgIGlmICghY3VycmVudC53cml0YWJsZSgpICYmIGRlc2NyaXB0
b3Iud3JpdGFibGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdl
V3JpdGFiaWxpdHlFcnJvcik7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnQud3JpdGFibGUoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYm9vbCBpc1NhbWUgPSBzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBjdXJyZW50LnZh
bHVlKCksIGRlc2NyaXB0b3IudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Nh
bWUpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBSZWFkb25seVByb3BlcnR5Q2hhbmdlRXJyb3IpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAo
Y3VycmVudC5hdHRyaWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikgJiYgIWRlc2NyaXB0b3IudmFsdWUo
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIW9iamVjdCkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KG9iamVj
dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGdsb2JhbE9i
amVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGRlc2NyaXB0b3IuYXR0cmli
dXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpLCBjdXJyZW50KTsKLSAgICB9CisgICAgfSBl
bHNlIHsKKyAgICAgICAgLy8gU3RlcCA4LgorICAgICAgICAvLyBDaGFuZ2luZyB0aGUgYWNjZXNz
b3IgZnVuY3Rpb25zIGFuZCBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIGFjY2Vzc29yIHByb3Bl
cnR5CisgICAgICAgIEFTU0VSVChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpOwor
ICAgICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmIChk
ZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLnNldHRlcigpICE9IGN1cnJl
bnQuc2V0dGVyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBzZXR0
ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAgICAgICAgICAgIGlmIChk
ZXNjcmlwdG9yLmdldHRlclByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmdldHRlcigpICE9IGN1cnJl
bnQuZ2V0dGVyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBnZXR0
ZXIgb2YgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIl9zKTsKKyAgICAgICAgICAgIGlmIChj
dXJyZW50LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRo
cm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQWNjZXNzTWVjaGFuaXNt
RXJyb3IpOwogCi0gICAgLy8gU3RlcCA5LgotICAgIC8vIENoYW5naW5nIHRoZSBhY2Nlc3NvciBm
dW5jdGlvbnMgb2YgYW4gZXhpc3RpbmcgYWNjZXNzb3IgcHJvcGVydHkKLSAgICBBU1NFUlQoZGVz
Y3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKTsKLSAgICBpZiAoIWN1cnJlbnQuY29uZmln
dXJhYmxlKCkpIHsKLSAgICAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpICYmICEo
Y3VycmVudC5zZXR0ZXJQcmVzZW50KCkgJiYgSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2Jq
ZWN0LCBjdXJyZW50LnNldHRlcigpLCBkZXNjcmlwdG9yLnNldHRlcigpKSkpCi0gICAgICAgICAg
ICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCAi
QXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhlIHNldHRlciBvZiBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9w
ZXJ0eS4iX3MpOwotICAgICAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkgJiYgIShj
dXJyZW50LmdldHRlclByZXNlbnQoKSAmJiBKU1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxPYmpl
Y3QsIGN1cnJlbnQuZ2V0dGVyKCksIGRlc2NyaXB0b3IuZ2V0dGVyKCkpKSkKLSAgICAgICAgICAg
IHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sICJB
dHRlbXB0aW5nIHRvIGNoYW5nZSB0aGUgZ2V0dGVyIG9mIGFuIHVuY29uZmlndXJhYmxlIHByb3Bl
cnR5LiJfcyk7Ci0gICAgICAgIGlmIChjdXJyZW50LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvcikKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVuY29uZmlndXJhYmxlUHJvcGVydHlD
aGFuZ2VBY2Nlc3NNZWNoYW5pc21FcnJvcik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQogICAgIH0KIAotICAgIC8vIFN0ZXAgMTAvMTEuCiAgICAgaWYgKCFvYmplY3QpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgYWNjZXNzb3IgPSBvYmplY3QtPmdldERp
cmVjdCh2bSwgcHJvcGVydHlOYW1lKTsKLSAgICBpZiAoIWFjY2Vzc29yKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IG51bGxwdHI7Ci0gICAgSlNPYmplY3Qq
IHNldHRlciA9IG51bGxwdHI7Ci0gICAgYm9vbCBnZXR0ZXJTZXR0ZXJDaGFuZ2VkID0gZmFsc2U7
Ci0KLSAgICBpZiAoYWNjZXNzb3IuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSkgewotICAgICAgICBh
dXRvKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oYWNj
ZXNzb3IpOwotICAgICAgICBpZiAoY3VzdG9tR2V0dGVyU2V0dGVyLT5zZXR0ZXIoKSkKLSAgICAg
ICAgICAgIHNldHRlciA9IGdldEN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uRm9yR2V0dGVyU2V0
dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIEpTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OlR5cGU6OlNldHRlcik7Ci0gICAgICAgIGlmIChjdXN0
b21HZXR0ZXJTZXR0ZXItPmdldHRlcigpKQotICAgICAgICAgICAgZ2V0dGVyID0gZ2V0Q3VzdG9t
R2V0dGVyU2V0dGVyRnVuY3Rpb25Gb3JHZXR0ZXJTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjo6
VHlwZTo6R2V0dGVyKTsKKyAgICAvLyBTdGVwIDkuCisgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9
IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJyaWRpbmdDdXJyZW50KGN1cnJlbnQpOworICAgIGlm
IChkZXNjcmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgfHwgKGN1cnJlbnQuaXNBY2Nlc3Nv
ckRlc2NyaXB0b3IoKSAmJiAhZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpKSB7CisgICAg
ICAgIEFTU0VSVChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKKyAg
ICAgICAgSlNPYmplY3QqIGdldHRlciA9IGRlc2NyaXB0b3IuZ2V0dGVyUHJlc2VudCgpID8gZGVz
Y3JpcHRvci5nZXR0ZXJPYmplY3QoKSA6IChjdXJyZW50LmdldHRlclByZXNlbnQoKSA/IGN1cnJl
bnQuZ2V0dGVyT2JqZWN0KCkgOiBudWxscHRyKTsKKyAgICAgICAgSlNPYmplY3QqIHNldHRlciA9
IGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpID8gZGVzY3JpcHRvci5zZXR0ZXJPYmplY3QoKSA6
IChjdXJyZW50LnNldHRlclByZXNlbnQoKSA/IGN1cnJlbnQuc2V0dGVyT2JqZWN0KCkgOiBudWxs
cHRyKTsKKyAgICAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnZXR0ZXIsIHNldHRlcik7CisgICAgICAgIG9iamVj
dC0+cHV0RGlyZWN0QWNjZXNzb3IoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlclNl
dHRlciwgYXR0cmlidXRlcyAmIH5Qcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVChhY2Nlc3Nvci5pc0dldHRlclNldHRlcigpKTsKLSAgICAg
ICAgYXV0byogZ2V0dGVyU2V0dGVyID0ganNDYXN0PEdldHRlclNldHRlcio+KGFjY2Vzc29yKTsK
LSAgICAgICAgZ2V0dGVyID0gZ2V0dGVyU2V0dGVyLT5nZXR0ZXIoKTsKLSAgICAgICAgc2V0dGVy
ID0gZ2V0dGVyU2V0dGVyLT5zZXR0ZXIoKTsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0b3IuaXNH
ZW5lcmljRGVzY3JpcHRvcigpIHx8IGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKTsKKyAg
ICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUoKSA/IGRlc2NyaXB0b3IudmFs
dWUoKSA6IChjdXJyZW50LnZhbHVlKCkgPyBjdXJyZW50LnZhbHVlKCkgOiBqc1VuZGVmaW5lZCgp
KTsKKyAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0
dHJpYnV0ZXMgJiB+UHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKICAgICB9Ci0gICAgaWYg
KGRlc2NyaXB0b3Iuc2V0dGVyUHJlc2VudCgpKSB7Ci0gICAgICAgIHNldHRlciA9IGRlc2NyaXB0
b3Iuc2V0dGVyT2JqZWN0KCk7Ci0gICAgICAgIGdldHRlclNldHRlckNoYW5nZWQgPSB0cnVlOwot
ICAgIH0KLSAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpIHsKLSAgICAgICAgZ2V0
dGVyID0gZGVzY3JpcHRvci5nZXR0ZXJPYmplY3QoKTsKLSAgICAgICAgZ2V0dGVyU2V0dGVyQ2hh
bmdlZCA9IHRydWU7Ci0gICAgfQotCi0gICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRl
c2NyaXB0b3IpICYmICFnZXR0ZXJTZXR0ZXJDaGFuZ2VkKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgZ2V0dGVyLCBzZXR0ZXIpOwogCi0gICAgSlNDZWxsOjpkZWxldGVQ
cm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgdW5zaWduZWQgYXR0cnMgPSBkZXNjcmlw
dG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChjdXJyZW50KTsKLSAgICBvYmplY3QtPnB1
dERpcmVjdEFjY2Vzc29yKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIs
IGF0dHJzIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtMzc0MywxMSArMzY2Miw2IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93bk5vbklu
ZGV4UHJvcGVydHkKICAgICBWTSYgdm0gID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgLy8gVHJhY2sgb24g
dGhlIGdsb2JhbGRhdGEgdGhhdCB3ZSdyZSBpbiBkZWZpbmUgcHJvcGVydHkuCi0gICAgLy8gQ3Vy
cmVudGx5IERlZmluZU93blByb3BlcnR5IHVzZXMgZGVsZXRlIHRvIHJlbW92ZSBwcm9wZXJ0aWVz
IHdoZW4gdGhleSBhcmUgYmVpbmcgcmVwbGFjZWQKLSAgICAvLyAocGFydGljdWxhcmx5IHdoZW4g
Y2hhbmdpbmcgYXR0cmlidXRlcyksIGhvd2V2ZXIgZGVsZXRlIHdvbid0IGFsbG93IG5vbi1jb25m
aWd1cmFibGUgKGkuZS4KLSAgICAvLyBEb250RGVsZXRlKSBwcm9wZXJ0aWVzIHRvIGJlIGRlbGV0
ZWQuIEZvciBub3csIHdlIGNhbiB1c2UgdGhpcyBmbGFnIHRvIG1ha2UgdGhpcyB3b3JrLgotICAg
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgY3VycmVu
dDsKICAgICBib29sIGlzQ3VycmVudERlZmluZWQgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGN1cnJlbnQpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgJKHJldmlzaW9uIDI2NDM3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTQsMTAgKzMxNCwxMSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dERp
cmVjdEluCiAgICAgICAgICAgICBwdXREaXJlY3Qodm0sIG9mZnNldCwgdmFsdWUpOwogICAgICAg
ICAgICAgc3RydWN0dXJlLT5kaWRSZXBsYWNlUHJvcGVydHkob2Zmc2V0KTsKIAotICAgICAgICAg
ICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSAhPSAoY3Vy
cmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpIHx8IChhdHRyaWJ1
dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkgIT0gKGN1cnJl
bnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkp
IHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIShhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KSk7CisgICAgICAgICAgICAvLyBGSVhNRTogQ2hlY2sgYXR0cmlidXRlcyBh
Z2FpbnN0IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUuIENoYW5naW5n
IEdldHRlclNldHRlciBzaG91bGQgd29yayB3L28gdHJhbnNpdGlvbi4KKyAgICAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzNDIKKyAgICAgICAg
ICAgIGlmIChtb2RlID09IFB1dE1vZGVEZWZpbmVPd25Qcm9wZXJ0eSAmJiAoYXR0cmlidXRlcyAh
PSBjdXJyZW50QXR0cmlidXRlcyB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3Nvck9yQ3VzdG9tQWNjZXNzb3JPclZhbHVlKSkpCiAgICAgICAgICAgICAgICAgc2V0U3Ry
dWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHN0cnVj
dHVyZSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHko
dGhpcywgb2Zmc2V0KTsKIAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsMTAgKzM2
OSwxMSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEluCiAgICAgICAg
IHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3BlcnR5KG9mZnNldCk7CiAgICAgICAgIHB1dERpcmVj
dCh2bSwgb2Zmc2V0LCB2YWx1ZSk7CiAKLSAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IpIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yT3JWYWx1ZSkgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVCghKGF0
dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICAgICAgLy8gRklY
TUU6IENoZWNrIGF0dHJpYnV0ZXMgYWdhaW5zdCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3JPclZhbHVlLiBDaGFuZ2luZyBHZXR0ZXJTZXR0ZXIgc2hvdWxkIHdvcmsgdy9vIHRyYW5z
aXRpb24uCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQzNDIKKyAgICAgICAgaWYgKG1vZGUgPT0gUHV0TW9kZURlZmluZU93blByb3BlcnR5ICYm
IChhdHRyaWJ1dGVzICE9IGN1cnJlbnRBdHRyaWJ1dGVzIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yT3JDdXN0b21BY2Nlc3Nvck9yVmFsdWUpKSkKICAgICAgICAg
ICAgIHNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9u
KHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpOwotICAgICAgICB9IGVs
c2UKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgc2xvdC5zZXRFeGlzdGluZ1Byb3BlcnR5KHRo
aXMsIG9mZnNldCk7CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAJKHJldmlz
aW9uIDI2NDM3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVz
Y3JpcHRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQcm9wZXJ0
eURlc2NyaXB0b3I6OnNldFVuZGVmaW5lZCgpCiAgICAgbV9hdHRyaWJ1dGVzID0gUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW07CiB9CiAKLUdldHRlclNldHRlciogUHJvcGVydHlEZXNj
cmlwdG9yOjpzbG93R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitH
ZXR0ZXJTZXR0ZXIqIFByb3BlcnR5RGVzY3JpcHRvcjo6c2xvd0dldHRlclNldHRlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBKU1ZhbHVlIGdldHRlciA9IG1fZ2V0dGVyICYmICFtX2dldHRlci5pc1Vu
ZGVmaW5lZCgpID8ganNDYXN0PEpTT2JqZWN0Kj4obV9nZXR0ZXIpIDoganNVbmRlZmluZWQoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVz
Y3JpcHRvci5oCShyZXZpc2lvbiAyNjQzNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjY2Vzc29yRGVzY3JpcHRv
cigpIGNvbnN0OwogICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0
dHJpYnV0ZXM7IH0KICAgICBKU1ZhbHVlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsg
fQotICAgIEdldHRlclNldHRlciogc2xvd0dldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCopOyAv
LyBCZSBhd2FyZSB0aGF0IHRoaXMgd2lsbCBsYXppbHkgYWxsb2NhdGUgYSBHZXR0ZXJTZXR0ZXIg
b2JqZWN0LiBJdCdzIG11Y2ggYmV0dGVyIHRvIHVzZSBnZXR0ZXIoKSBhbmQgc2V0dGVyKCkgaW5k
aXZpZHVhbGx5IGlmIHBvc3NpYmxlLgorICAgIEdldHRlclNldHRlciogc2xvd0dldHRlclNldHRl
cihKU0dsb2JhbE9iamVjdCopIGNvbnN0OyAvLyBCZSBhd2FyZSB0aGF0IHRoaXMgd2lsbCBsYXpp
bHkgYWxsb2NhdGUgYSBHZXR0ZXJTZXR0ZXIgb2JqZWN0LiBJdCdzIG11Y2ggYmV0dGVyIHRvIHVz
ZSBnZXR0ZXIoKSBhbmQgc2V0dGVyKCkgaW5kaXZpZHVhbGx5IGlmIHBvc3NpYmxlLgogICAgIEpT
X0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZ2V0dGVyKCkgY29uc3Q7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgSlNWYWx1ZSBzZXR0ZXIoKSBjb25zdDsKICAgICBKU09iamVjdCogZ2V0dGVyT2JqZWN0
KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAJKHJldmlzaW9uIDI2NDM3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyMyw2ICs3MjMsMTIgQEAgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYQogICAgIEFTU0VSVChlbnRyeSk7CiAg
ICAgZW50cnktPmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwogCisgICAgaWYgKGF0dHJpYnV0ZXMg
JiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCisgICAgICAgIHN0cnVjdHVyZS0+c2V0Q29u
dGFpbnNSZWFkT25seVByb3BlcnRpZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKQorICAgICAgICBzdHJ1Y3R1cmUtPnNldElzUXVpY2tQcm9w
ZXJ0eUFjY2Vzc0FsbG93ZWRGb3JFbnVtZXJhdGlvbihmYWxzZSk7CisKICAgICBzdHJ1Y3R1cmUt
PmNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koKTsKICAgICByZXR1cm4gc3RydWN0dXJlOwogfQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjY0Mzc2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMTQgIEFsZXhleSBTaHZheWthICA8c2h2
YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZGVmaW5pbmcgYSBwcm9wZXJ0eSBzaG91
bGQgbm90IGNoYW5nZSBpdHMgaW5zZXJ0aW9uIGluZGV4IChPYmplY3Qua2V5cyBvcmRlcikKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkzMworCisg
ICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICoganMvb2JqZWN0LWxp
dGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1kdXBsaWNhdGUtcHJvcGVydGllcy5qczoKKwogMjAy
MC0wNy0xNCAgSGVjdG9yIExvcGV6ICA8aGVjdG9yX2lfbG9wZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFsgaU9TIERlYnVnIF0gaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1pbXBvcnRTY3JpcHRz
LWJhbm5lZC1taW1ldHlwZS5odG1sIGlzIGZsYWtleSBjcmFzaGluZwpJbmRleDogTGF5b3V0VGVz
dHMvanMvb2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY0Mzc2KQorKysgTGF5b3V0VGVzdHMvanMv
b2JqZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIFBBU1Mgby5mb28gaXMgMAogUEFTUyB4IGlzIDQKIFBB
U1Mgby5mb28gaXMgMwogUEFTUyBvLmJhciBpcyB1bmRlZmluZWQKLUZBSUwgT2JqZWN0LmtleXMo
bykuam9pbigpIHNob3VsZCBiZSBmb28sdGVzdDEsYmFyLHRlc3QyLHRlc3QzLG5lc3QuIFdhcyB0
ZXN0MSx0ZXN0Mix0ZXN0Myxmb28sYmFyLG5lc3QuCitQQVNTIE9iamVjdC5rZXlzKG8pLmpvaW4o
KSBpcyAnZm9vLHRlc3QxLGJhcix0ZXN0Mix0ZXN0MyxuZXN0JwogCiBCYXNpYwogUEFTUyBvID0g
e2ZvbzoxfTsgZGVzY3JpcHRpb25TdHJpbmcobywgJ2ZvbycpOyBpcyAndmFsdWU6MSBrZXlzOjEg
W0VDV11bRXh0ZW5zaWJsZV0nCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2Jq
ZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWR1cGxpY2F0ZS1wcm9wZXJ0aWVz
LmpzCShyZXZpc2lvbiAyNjQzNzYpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2Jq
ZWN0LWxpdGVyYWwtZHVwbGljYXRlLXByb3BlcnRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTks
NyArOSw3IEBAIG8gPSB7CiBzaG91bGRCZSgieCIsICIxIik7CiBzaG91bGRCZSgiby5mb28iLCAi
J2dldHRlciciKTsKIAotLy8gRW5zdXJlIGdldHRlcnMvc2V0dGVycyBnZXQgZWxpbWluYXRlZCBi
eSBjb21wdXRlZCBwcm9wZXJ0aWVzLgorLy8gRW5zdXJlIGdldHRlcnMvc2V0dGVycyBnZXQgZWxp
bWluYXRlZCBieSBiYXNpYyBwcm9wZXJ0aWVzLgogeCA9IDA7CiBvID0gewogICAgIGdldCBmb28o
KSB7cmV0dXJuICJnZXR0ZXIifSwKQEAgLTU0LDcgKzU0LDYgQEAgbyA9IHsKIHNob3VsZEJlKCJ4
IiwgIjQiKTsKIHNob3VsZEJlKCJvLmZvbyIsICIzIik7CiBzaG91bGRCZSgiby5iYXIiLCAidW5k
ZWZpbmVkIik7Ci0vLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0MjkzMz4gUmVkZWZp
bmluZyBhIHByb3BlcnR5IHNob3VsZCBub3QgY2hhbmdlIGl0cyBpbnNlcnRpb24gaW5kZXggKE9i
amVjdC5rZXlzIG9yZGVyKQogc2hvdWxkQmUoIk9iamVjdC5rZXlzKG8pLmpvaW4oKSIsICInZm9v
LHRlc3QxLGJhcix0ZXN0Mix0ZXN0MyxuZXN0JyIpOwogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>