<?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>146515</bug_id>
          
          <creation_ts>2015-07-01 09:49:02 -0700</creation_ts>
          <short_desc>REGRESSION (r178097): JavaScript TypeError after clicking on compose button in Yahoo Mail</short_desc>
          <delta_ts>2015-07-03 13:55:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=146566</see_also>
          <bug_file_loc>http://mail.yahoo.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>139179</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>shiva.jm</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106083</commentid>
    <comment_count>0</comment_count>
      <attachid>255925</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 09:49:02 -0700</bug_when>
    <thetext>Created attachment 255925
Example - Call select.add() with more arguments than needed

Cannot compose a new email in Yahoo Mail when using an iPhone user agent string and WebKit r178097 or later. In particular, a JavaScript TypeError is thrown after clicking on the compose button.

On a Mac, you can reproduce this issue by performing the following:
1. Open Safari with WebKit r178097 or later.
2. Open a new window.
4. Ensure the Develop menu is enabled (*) and choose Develop &gt; User Agent &gt; Safari iOS 8.1 - iPhone.
5. Navigate to mail.yahoo.com and sign in.
5. Click the compose button.

A JavaScript TypeError is thrown and caught by Yahoo Mail&apos;s code as indicated by the presence of the following line in the Web Inspector console:

&quot;Error Reported (presentModalView): Type error&quot;

(*) You can enable the Develop menu by choosing Safari &gt; Preferences to open the Safari preferences window. In the preferences window, click Advanced in the toolbar. Then check the checkbox &quot;Show Develop menu in menu bar&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106087</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 09:52:27 -0700</bug_when>
    <thetext>We throw a JavaScript TypeError when passing more arguments than required to select.add() and hence break Yahoo&apos;s compose editor. In particular, Yahoo mail calls select.add() with the following form, where S is some HTML select element:

select.add(S, undefined, undefined, undefined, undefined)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106092</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 09:54:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/21348421&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106093</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 09:56:22 -0700</bug_when>
    <thetext>I also noticed that we prepend the (In reply to comment #1)
&gt; We throw a JavaScript TypeError when passing more arguments than required to
&gt; select.add() and hence break Yahoo&apos;s compose editor. In particular, Yahoo
&gt; mail calls select.add() with the following form, where S is some HTML select
&gt; element:
&gt; 
&gt; select.add(S, undefined, undefined, undefined, undefined)

*where S is some HTML option element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106094</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 09:58:46 -0700</bug_when>
    <thetext>I also noticed that calling select.add(O, undefined) where O is some HTML option element prepends O to the list of options in WebKit r178097 or later. But it appends it to the end of the list of options in Chrome for Mac 44.0.2403.61 beta (64-bit) and Firefox for Mac 34.0.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106295</commentid>
    <comment_count>5</comment_count>
      <attachid>255988</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-01 20:27:10 -0700</bug_when>
    <thetext>Created attachment 255988
[Patch] Work-in-progress

Work-in-progress patch. Needs change log entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106305</commentid>
    <comment_count>6</comment_count>
      <attachid>255988</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-01 21:26:38 -0700</bug_when>
    <thetext>Comment on attachment 255988
[Patch] Work-in-progress

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1456
&gt; +sub LengthOfLongestFunctionParameterList

Hmm. This will unfortunately not work when using variadic arguments:
void f(DOMString a);
void f(Node a, DOMString b, float... c);
void f();
void f(Event a, DOMString b, optional DOMString c, float... d);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106308</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-01 21:38:11 -0700</bug_when>
    <thetext>Would something like this work?

diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index e8cb245..e9e4788 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -1361,7 +1361,7 @@ sub GenerateParametersCheckExpression
     my $function = shift;
 
     my @andExpression = ();
-    push(@andExpression, &quot;argsCount == $numParameters&quot;);
+    push(@andExpression, &quot;argsCount &gt;= $numParameters&quot;);
     my $parameterIndex = 0;
     my %usedArguments = ();
     foreach my $parameter (@{$function-&gt;parameters}) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106312</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-01 21:51:12 -0700</bug_when>
    <thetext>We don’t want to allow extra arguments in every function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106313</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-01 22:03:25 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; We don’t want to allow extra arguments in every function.

Why not? My understanding was that this is the expected behavior in Web IDL and EcmaScript. As far as I know, we already allow extra arguments for regular methods.
I think we were only throwing for overloaded methods, which was inconsistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106314</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-01 22:08:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; We don’t want to allow extra arguments in every function.
&gt; 
&gt; Why not? My understanding was that this is the expected behavior in Web IDL
&gt; and EcmaScript. As far as I know, we already allow extra arguments for
&gt; regular methods.
&gt; I think we were only throwing for overloaded methods, which was inconsistent.

See for e.g. discussion at:
http://lists.w3.org/Archives/Public/public-script-coord/2014AprJun/0187.html

Also, doing document.createElement(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;) currently doesn&apos;t throw and creates an &lt;a&gt; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106315</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-01 22:16:54 -0700</bug_when>
    <thetext>Wow, I totally missed that change in 2014! I am so happy to hear it. I was pushing for this years ago, but others told me that this was OK for JavaScript itself, but not WebIDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106414</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-02 10:56:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Would something like this work?
&gt; 
&gt; diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
&gt; b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
&gt; index e8cb245..e9e4788 100644
&gt; --- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
&gt; +++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
&gt; @@ -1361,7 +1361,7 @@ sub GenerateParametersCheckExpression
&gt;      my $function = shift;
&gt;  
&gt;      my @andExpression = ();
&gt; -    push(@andExpression, &quot;argsCount == $numParameters&quot;);
&gt; +    push(@andExpression, &quot;argsCount &gt;= $numParameters&quot;);
&gt;      my $parameterIndex = 0;
&gt;      my %usedArguments = ();
&gt;      foreach my $parameter (@{$function-&gt;parameters}) {

This will not work as discussed in person today (07/22).

With this change, looking at the generated code for the overload function HTMLSelectElement.add(), we have:

EncodedJSValue JSC_HOST_CALL jsHTMLSelectElementPrototypeFunctionAdd(ExecState* exec)
{
    size_t argsCount = exec-&gt;argumentCount();
    JSValue arg0(exec-&gt;argument(0));
    JSValue arg1(exec-&gt;argument(1));
    if ((argsCount &gt;= 1 &amp;&amp; (arg0.isObject() &amp;&amp; asObject(arg0)-&gt;inherits(JSHTMLElement::info()))) || (argsCount &gt;= 2 &amp;&amp; (arg0.isObject() &amp;&amp; asObject(arg0)-&gt;inherits(JSHTMLElement::info())) &amp;&amp; (arg1.isNull() || (arg1.isObject() &amp;&amp; asObject(arg1)-&gt;inherits(JSHTMLElement::info())))))
        return jsHTMLSelectElementPrototypeFunctionAdd1(exec);
    if ((argsCount &gt;= 1 &amp;&amp; (arg0.isObject() &amp;&amp; asObject(arg0)-&gt;inherits(JSHTMLElement::info()))) || (argsCount &gt;= 2 &amp;&amp; (arg0.isObject() &amp;&amp; asObject(arg0)-&gt;inherits(JSHTMLElement::info()))))
        return jsHTMLSelectElementPrototypeFunctionAdd2(exec);
    if (argsCount &lt; 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    return throwVMTypeError(exec);
}

Notice jsHTMLSelectElementPrototypeFunctionAdd1(), jsHTMLSelectElementPrototypeFunctionAdd2() correspond to overloads HTMLSelectElement.add(HTMLElement, HTMLElement) and HTMLSelectElement.add(HTMLElement, long), respectively.

Without loss of generality, suppose a web page executes HTMLSelectElement.add(O, 2). Then we will call jsHTMLSelectElementPrototypeFunctionAdd1(). But we should call jsHTMLSelectElementPrototypeFunctionAdd2().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106415</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-02 10:57:40 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Without loss of generality, suppose a web page executes
&gt; HTMLSelectElement.add(O, 2). [...]

*where O is an HTML option element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106549</commentid>
    <comment_count>14</comment_count>
      <attachid>256053</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-02 17:36:39 -0700</bug_when>
    <thetext>Created attachment 256053
Patch and updated layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106557</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-02 17:47:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I also noticed that calling select.add(O, undefined) where O is some HTML
&gt; option element prepends O to the list of options in WebKit r178097 or later.
&gt; But it appends it to the end of the list of options in Chrome for Mac
&gt; 44.0.2403.61 beta (64-bit) and Firefox for Mac 34.0.5.

Filed bug #146566 for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106604</commentid>
    <comment_count>16</comment_count>
      <attachid>256053</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 20:08:46 -0700</bug_when>
    <thetext>Comment on attachment 256053
Patch and updated layout tests

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

r=me % nits.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4510
&gt; +    # FIXME: Implement support for overloaded functions with variadic arguments.

nit: overloaded *constructors*

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:3964
&gt; +    if ()

Oh god :) That&apos;s terrible but this is not caused by your patch and your change did not make the variadic argument support worse, so OK. Thanks for adding bindings test coverage (now we know how broken it is).

&gt; LayoutTests/fast/dom/HTMLSelectElement/add.html:26
&gt; +shouldThrow(&apos;testAdd(&quot;foo&quot;)&apos;);

I would specify the expected exception for cases like these:
shouldThrow(&apos;testAdd(&quot;foo&quot;)&apos;, &apos;&quot;TypeError: Type error&quot;&apos;);

The reasoning is that in those cases, it is clearly defined in Web IDL that a *TypeError* should be thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106771</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-03 13:55:15 -0700</bug_when>
    <thetext>Committed r186265: &lt;http://trac.webkit.org/changeset/186265&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>255925</attachid>
            <date>2015-07-01 09:49:02 -0700</date>
            <delta_ts>2015-07-01 09:49:02 -0700</delta_ts>
            <desc>Example - Call select.add() with more arguments than needed</desc>
            <filename>more-arguments-than-needed.html</filename>
            <type>text/html</type>
            <size>552</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPHA+VGhpcyB0ZXN0IFBBU1NFRCBpZiB0aGVy
ZSBhcmUgdGhyZWUgbGlzdCBvcHRpb25zIGJlbG93IChpbiBvcmRlcik6IEZpcnN0LCBTZWNvbmQs
IFRoaXJkLiBPdGhlcndpc2UsIGl0IEZBSUxFRC48L3A+CjxzZWxlY3QgaWQ9InNlbGVjdCI+CiAg
ICA8b3B0aW9uPkZpcnN0PC9vcHRpb24+CiAgICA8b3B0aW9uPlNlY29uZDwvb3B0aW9uPgo8L3Nl
bGVjdD4KPHNjcmlwdD4KZnVuY3Rpb24gY3JlYXRlT3B0aW9uKHRleHQpCnsKICAgIHZhciBvcHRp
b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKICAgIG9wdGlvbi50ZXh0Q29u
dGVudCA9IHRleHQ7CiAgICByZXR1cm4gb3B0aW9uOwp9Cgp2YXIgc2VsZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNlbGVjdCIpOwpzZWxlY3QuYWRkKGNyZWF0ZU9wdGlvbigiVGhpcmQi
KSwgMiwgdW5kZWZpbmVkIC8qIGR1bW15ICovKTsgLy8gUGFzcyB0aHJlZSBhcmd1bWVudHMgaW5z
dGVhZCBvZiB0d28uCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255988</attachid>
            <date>2015-07-01 20:27:10 -0700</date>
            <delta_ts>2015-07-02 17:36:34 -0700</delta_ts>
            <desc>[Patch] Work-in-progress</desc>
            <filename>Bug146515_WIP.patch</filename>
            <type>text/plain</type>
            <size>44533</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSBmOTQ1YWNlOTcwNzViYmQxNWViY2U5NDhiMjNjODk4YTlmMzBkZmI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRiYXRlc0B3ZWJraXQub3JnPgpEYXRl
OiBXZWQsIDEgSnVsIDIwMTUgMjA6MjQ6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBXb3JrLWlu
LXByb2dyZXNzIHBhdGNoCgotLS0KIC4uLi9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1kcmF3SW1h
Z2UtZXhwZWN0ZWQudHh0IHwgICA4ICstCiAuLi4vY2FudmFzLW92ZXJsb2Fkcy1zZXRGaWxsQ29s
b3ItZXhwZWN0ZWQudHh0ICAgICB8ICAgMiArLQogLi4uL2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRz
LXNldFNoYWRvdy1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4uLi9jYW52YXMtb3ZlcmxvYWRzLXNl
dFN0cm9rZUNvbG9yLWV4cGVjdGVkLnR4dCAgIHwgICAyICstCiAuLi4vc2NyaXB0LXRlc3RzL2Nh
bnZhcy1vdmVybG9hZHMtZHJhd0ltYWdlLmpzICAgICB8ICAgOCArLQogLi4uL3NjcmlwdC10ZXN0
cy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5qcyAgfCAgIDIgKy0KIC4uLi9zY3JpcHQt
dGVzdHMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTaGFkb3cuanMgICAgIHwgICAyICstCiAuLi4vY2Fu
dmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci5qcyAgICAgICAgICAgICB8ICAgMiArLQogLi4u
L2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQgICAgfCAgODEgKysr
KysrLS0tLS0KIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC5odG1s
ICAgIHwgMTIwICsrKysrKystLS0tLS0tLQogLi4uL29wdGlvbnMtY29sbGVjdGlvbi1hZGQtZXhw
ZWN0ZWQudHh0ICAgICAgICAgICAgfCAxMDYgKysrKysrKy0tLS0tLS0KIC4uLi9IVE1MU2VsZWN0
RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLmh0bWwgIHwgMTYxICsrKysrKysrKy0tLS0t
LS0tLS0tLQogLi4uaHRtbC1zZWxlY3QtYW5kLW9wdGlvbnMtY29sbGVjdGlvbi11dGlsaXRpZXMu
anMgfCAgMjUgKysrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gfCAgMTcgKystCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcCB8ICAgNCArLQogLi4uL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5jcHAgICAgICAgfCAgIDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDI3NCBpbnNlcnRp
b25zKCspLCAyNzAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvcmVzb3VyY2VzL2h0bWwtc2VsZWN0LWFuZC1vcHRp
b25zLWNvbGxlY3Rpb24tdXRpbGl0aWVzLmpzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1kcmF3SW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1kcmF3SW1hZ2UtZXhwZWN0ZWQudHh0
CmluZGV4IDZmYTQzZTkuLjQwMGRlYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1vdmVybG9hZHMtZHJhd0ltYWdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLWRyYXdJbWFnZS1leHBlY3RlZC50eHQK
QEAgLTEzLDggKzEzLDggQEAgUEFTUyBjdHguZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwg
MCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZQogUEFTUyBjdHguZHJhd0lt
YWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAs
IDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQ
QVNTIGN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSBp
cyB1bmRlZmluZWQKLVBBU1MgY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIGN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjdHguZHJh
d0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgaXMgdW5kZWZp
bmVkCitQQVNTIGN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKIFBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mg
Y3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50
LCAwLCAwKSBpcyB1bmRlZmluZWQKQEAgLTI0LDggKzI0LDggQEAgUEFTUyBjdHguZHJhd0ltYWdl
KGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUKIFBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAw
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjdHguZHJhd0lt
YWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbmRleFNpemVF
cnJvcjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyBjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEluZGV4U2l6ZUVycm9yOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbmRleFNpemVFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRz
LXNldEZpbGxDb2xvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci1leHBlY3RlZC50eHQKaW5kZXggNGJkNjlkNi4uNDU3
YTMwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fk
cy1zZXRGaWxsQ29sb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1vdmVybG9hZHMtc2V0RmlsbENvbG9yLWV4cGVjdGVkLnR4dApAQCAtMTAsNyArMTAs
NyBAQCBQQVNTIGN0eC5zZXRGaWxsQ29sb3IoMCwgMCkgaXMgdW5kZWZpbmVkCiBQQVNTIGN0eC5z
ZXRGaWxsQ29sb3IoMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIFBBU1MgY3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKIFBBU1Mg
Y3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKLVBBU1MgY3R4LnNl
dEZpbGxDb2xvcigwLCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBjdHguc2V0RmlsbENvbG9yKDAsIDAsIDAsIDAsIDAsIDApIGlzIHVu
ZGVmaW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNl
dFNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3Zl
cmxvYWRzLXNldFNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggMGVhYmU2Zi4uNTZhN2FjMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTaGFk
b3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVy
bG9hZHMtc2V0U2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsNyBAQCBQQVNTIGN0eC5z
ZXRTaGFkb3coMCwgMCwgMCwgMCwgJ3JlZCcsIDAsIDApIGlzIHVuZGVmaW5lZAogUEFTUyBjdHgu
c2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCiBQQVNTIGN0eC5zZXRTaGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCkgaXMgdW5k
ZWZpbmVkCiBQQVNTIGN0eC5zZXRTaGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgaXMgdW5k
ZWZpbmVkCi1QQVNTIGN0eC5zZXRTaGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3R4LnNldFNoYWRvdygw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9y
LWV4cGVjdGVkLnR4dAppbmRleCBkMDI1MTdiLi4yODhmYmE2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9yLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0
cm9rZUNvbG9yLWV4cGVjdGVkLnR4dApAQCAtMTAsNyArMTAsNyBAQCBQQVNTIGN0eC5zZXRTdHJv
a2VDb2xvcigwLCAwKSBpcyB1bmRlZmluZWQKIFBBU1MgY3R4LnNldFN0cm9rZUNvbG9yKDAsIDAs
IDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGN0eC5zZXRT
dHJva2VDb2xvcigwLCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKIFBBU1MgY3R4LnNldFN0cm9rZUNv
bG9yKDAsIDAsIDAsIDAsIDApIGlzIHVuZGVmaW5lZAotUEFTUyBjdHguc2V0U3Ryb2tlQ29sb3Io
MCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY3R4LnNldFN0cm9rZUNvbG9yKDAsIDAsIDAsIDAsIDAsIDApIGlzIHVuZGVmaW5lZAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW92ZXJsb2Fk
cy1kcmF3SW1hZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2Fu
dmFzLW92ZXJsb2Fkcy1kcmF3SW1hZ2UuanMKaW5kZXggZTA3NGQ2ZS4uNTgwZmM0YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9h
ZHMtZHJhd0ltYWdlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0
cy9jYW52YXMtb3ZlcmxvYWRzLWRyYXdJbWFnZS5qcwpAQCAtMTYsOCArMTYsOCBAQCBzaG91bGRU
aHJvdygiY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAsIDAsIDAsIDApIiwgIlR5cGVF
cnJvciIpOwogc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAw
LCAwLCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKIHNob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGlt
YWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91bGRC
ZSgiY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwg
InVuZGVmaW5lZCIpOwotc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKLXNob3VsZFRocm93KCJj
dHguZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCki
LCAiVHlwZUVycm9yIik7CitzaG91bGRCZSgiY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoImN0eC5k
cmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJ1
bmRlZmluZWQiKTsKIAogdmFyIGNhbnZhc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKTsKIHNob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQpIiwg
IlR5cGVFcnJvck5vdEVub3VnaEFyZ3VtZW50cyIpOwpAQCAtMjksNSArMjksNSBAQCBzaG91bGRU
aHJvdygiY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwKSIsICJUeXBl
RXJyb3IiKTsKIHNob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAs
IDAsIDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOwogc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2Uo
Y2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91
bGRUaHJvdygiY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSIsICInRXJyb3I6IEluZGV4U2l6ZUVycm9yOiBET00gRXhjZXB0aW9uIDEnIik7Ci1zaG91
bGRUaHJvdygiY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKLXNob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNhbnZh
c0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOwor
c2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCkiLCAiJ0Vycm9yOiBJbmRleFNpemVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxJyIp
Oworc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCkiLCAiJ0Vycm9yOiBJbmRleFNpemVFcnJvcjogRE9NIEV4Y2VwdGlv
biAxJyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3Rz
L2NhbnZhcy1vdmVybG9hZHMtc2V0RmlsbENvbG9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0RmlsbENvbG9yLmpzCmluZGV4IGRm
YTZkMGEuLmYyZjkzNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Njcmlw
dC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW92ZXJsb2Fkcy1zZXRGaWxsQ29sb3Iu
anMKQEAgLTEyLDQgKzEyLDQgQEAgc2hvdWxkQmUoImN0eC5zZXRGaWxsQ29sb3IoMCwgMCkiLCAi
dW5kZWZpbmVkIik7CiBzaG91bGRUaHJvdygiY3R4LnNldEZpbGxDb2xvcigwLCAwLCAwKSIsICJU
eXBlRXJyb3IiKTsKIHNob3VsZEJlKCJjdHguc2V0RmlsbENvbG9yKDAsIDAsIDAsIDApIiwgInVu
ZGVmaW5lZCIpOwogc2hvdWxkQmUoImN0eC5zZXRGaWxsQ29sb3IoMCwgMCwgMCwgMCwgMCkiLCAi
dW5kZWZpbmVkIik7Ci1zaG91bGRUaHJvdygiY3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwLCAw
LCAwKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZEJlKCJjdHguc2V0RmlsbENvbG9yKDAsIDAsIDAs
IDAsIDAsIDApIiwgInVuZGVmaW5lZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U2hhZG93LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U2hhZG93
LmpzCmluZGV4IDIxMWJmZTAuLmFmOTU2MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFNoYWRvdy5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW92ZXJsb2Fkcy1zZXRT
aGFkb3cuanMKQEAgLTE4LDQgKzE4LDQgQEAgc2hvdWxkQmUoImN0eC5zZXRTaGFkb3coMCwgMCwg
MCwgMCwgJ3JlZCcsIDAsIDApIiwgInVuZGVmaW5lZCIpOwogc2hvdWxkVGhyb3coImN0eC5zZXRT
aGFkb3coMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91bGRCZSgiY3R4LnNl
dFNoYWRvdygwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZEJlKCJj
dHguc2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgInVuZGVmaW5lZCIpOwotc2hv
dWxkVGhyb3coImN0eC5zZXRTaGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlw
ZUVycm9yIik7CitzaG91bGRCZSgiY3R4LnNldFNoYWRvdygwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSIsICJ1bmRlZmluZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9yLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U3Ryb2tl
Q29sb3IuanMKaW5kZXggY2QxYmMxNC4uNDRjNDEyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U3Ryb2tlQ29sb3Iu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVy
bG9hZHMtc2V0U3Ryb2tlQ29sb3IuanMKQEAgLTEyLDQgKzEyLDQgQEAgc2hvdWxkQmUoImN0eC5z
ZXRTdHJva2VDb2xvcigwLCAwKSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZFRocm93KCJjdHguc2V0
U3Ryb2tlQ29sb3IoMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91bGRCZSgiY3R4LnNldFN0
cm9rZUNvbG9yKDAsIDAsIDAsIDApIiwgInVuZGVmaW5lZCIpOwogc2hvdWxkQmUoImN0eC5zZXRT
dHJva2VDb2xvcigwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKLXNob3VsZFRocm93KCJj
dHguc2V0U3Ryb2tlQ29sb3IoMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CitzaG91
bGRCZSgiY3R4LnNldFN0cm9rZUNvbG9yKDAsIDAsIDAsIDAsIDAsIDApIiwgInVuZGVmaW5lZCIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2Fk
ZC1leHBlY3RlZC50eHQKaW5kZXggNjkwOTQ1Zi4uMTQ0OGEwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9hZGQtZXhwZWN0ZWQudHh0CkBA
IC0xLDQzICsxLDUyIEBACi1UZXN0IHNlbGVjdC5hZGQoKSB3aXRoIGluZGV4IHBhcmFtZXRlcgor
VGVzdCB0aGF0IEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIHdvcmtzIHdoZW4gcGFzc2luZyBhbiBp
bmRleCBvciBhbiBIVE1MIG9wdGlvbiBlbGVtZW50IGFzIGl0cyBzZWNvbmQgYXJndW1lbnQuCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1saXN0IGVsZW1lbnRzIGFyZSA9IDAsMSwy
Ci1QQVNTIHRlc3RBZGQxKGNyZWF0ZU9wdGlvbigiWTEiKSkgaXMgIjAsMSwyLFkxIgotUEFTUyB0
ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyIiksIG51bGwpIGlzICIwLDEsMixZMiIKLVBBU1MgdGVz
dEFkZDMoY3JlYXRlT3B0aW9uKCJZMyIpLCAwKSBpcyAiWTMsMCwxLDIiCi1QQVNTIHRlc3RBZGQz
KGNyZWF0ZU9wdGlvbigiWTQiKSwgMSkgaXMgIjAsWTQsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVh
dGVPcHRpb24oIlk1IiksIDIpIGlzICIwLDEsWTUsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0
aW9uKCJZNiIpLCAzKSBpcyAiMCwxLDIsWTYiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigi
WTciKSwgMTAwKSBpcyAiMCwxLDIsWTciCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTgi
KSwgLTEwMCkgaXMgIjAsMSwyLFk4IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk5Iiks
ICIwIikgaXMgIlk5LDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMCIpLCAi
MSIpIGlzICIwLFkxMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTExIiksICIy
IikgaXMgIjAsMSxZMTEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1
ZSkgaXMgIjAsWTEyLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFs
c2UpIGlzICJZMTMsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE0IiksIDIx
NDc0ODM2NDcpIGlzICIwLDEsMixZMTQiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE1
IiksIDIxNDc0ODM2NDgpIGlzICIwLDEsMixZMTUiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlv
bigiWTE2IiksIC0yMTQ3NDgzNjQ3KSBpcyAiMCwxLDIsWTE2IgotUEFTUyB0ZXN0QWRkMyhjcmVh
dGVPcHRpb24oIlkxNyIpLCAtMjE0NzQ4MzY0OCkgaXMgIjAsMSwyLFkxNyIKLVBBU1MgdGVzdEFk
ZDMoY3JlYXRlT3B0aW9uKCJZMTgiKSwgLTIxNDc0ODM2NDkpIGlzICIwLDEsMixZMTgiCi1QQVNT
IHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE5IiksIEluZmluaXR5KSBpcyAiWTE5LDAsMSwyIgot
UEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMCIpLCAtSW5maW5pdHkpIGlzICJZMjAsMCwx
LDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIxIiksICJmb28iKSBpcyAiWTIxLDAs
MSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMiIpLCBOYU4pIGlzICJZMjIsMCwx
LDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIzIiksIHVuZGVmaW5lZCkgaXMgIlky
MywwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEs
MixZMjQiCi1QQVNTIHRlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIDAsIDEpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRlc3RBZGQ0KGNyZWF0ZU9wdGlv
bigiWTI1IiksIG15U2VsZWN0Lm9wdGlvbnNbMF0sIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1saXN0IGVsZW1lbnRzIGFyZSA9IDAsMSwyCi1QQVNTIG15U2VsZWN0
LmFkZCgiZm9vIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
bXlTZWxlY3QuYWRkKCJmb28iLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgotUEFTUyBteVNlbGVjdC5hZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgotUEFTUyBteVNlbGVjdC5hZGQodW5kZWZpbmVkLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBteVNlbGVjdC5hZGQobnVsbCwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbXlTZWxlY3Qu
YWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG15
U2VsZWN0LmFkZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgorCitDYWxsIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIHdpdGggemVybyBhcmd1bWVudHM6
CitQQVNTIHRlc3RBZGQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KKworQ2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIG9uZSBhcmd1bWVu
dDoKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxIikpIGlzICIwLDEsMixZMSIKK1BBU1Mg
dGVzdEFkZCgiZm9vIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgdGVzdEFkZCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIHRlc3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KKworQ2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6
CitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTIiCitQ
QVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMyIpLCAwKSBpcyAiWTMsMCwxLDIiCitQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJZNCIpLCAxKSBpcyAiMCxZNCwxLDIiCitQQVNTIHRlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZNSIpLCAyKSBpcyAiMCwxLFk1LDIiCitQQVNTIHRlc3RBZGQoY3JlYXRl
T3B0aW9uKCJZNiIpLCAzKSBpcyAiMCwxLDIsWTYiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9u
KCJZNyIpLCAxMDApIGlzICIwLDEsMixZNyIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlk4
IiksIC0xMDApIGlzICIwLDEsMixZOCIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlk5Iiks
ICIwIikgaXMgIlk5LDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTEwIiksICIx
IikgaXMgIjAsWTEwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMSIpLCAiMiIp
IGlzICIwLDEsWTExLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSkg
aXMgIjAsWTEyLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMyIpLCBmYWxzZSkg
aXMgIlkxMywwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNCIpLCAyMTQ3NDgz
NjQ3KSBpcyAiMCwxLDIsWTE0IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE1IiksIDIx
NDc0ODM2NDgpIGlzICIwLDEsMixZMTUiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTYi
KSwgLTIxNDc0ODM2NDcpIGlzICIwLDEsMixZMTYiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9u
KCJZMTciKSwgLTIxNDc0ODM2NDgpIGlzICIwLDEsMixZMTciCitQQVNTIHRlc3RBZGQoY3JlYXRl
T3B0aW9uKCJZMTgiKSwgLTIxNDc0ODM2NDkpIGlzICIwLDEsMixZMTgiCitQQVNTIHRlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZMTkiKSwgSW5maW5pdHkpIGlzICJZMTksMCwxLDIiCitQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJZMjAiKSwgLUluZmluaXR5KSBpcyAiWTIwLDAsMSwyIgorUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIxIiksICJmb28iKSBpcyAiWTIxLDAsMSwyIgorUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIyIiksIE5hTikgaXMgIlkyMiwwLDEsMiIKK1BBU1MgdGVz
dEFkZChjcmVhdGVPcHRpb24oIlkyMyIpLCB1bmRlZmluZWQpIGlzICJZMjMsMCwxLDIiCitQQVNT
IHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEsMixZMjQiCitQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pIGlzICJYLDAsMSwy
IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBp
cyAiMCxYLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0
aW9uc1syXSkgaXMgIjAsMSxYLDIiCitQQVNTIHRlc3RBZGQoImZvbyIsIDApIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGws
IDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCisKK0NhbGwgSFRNTFNl
bGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0aHJlZSBhcmd1bWVudHMgKHdoZW4gaXQgb25seSB0YWtl
cyB0d28gYXJndW1lbnRzKToKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgMCwgInVu
bmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKSBpcyAiWCwwLDEs
MiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1sxXSwg
InVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKSBpcyAiMCxY
LDEsMiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9hZGQuaHRtbAppbmRl
eCAzZmIyN2E0Li4yYjQzNGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
U2VsZWN0RWxlbWVudC9hZGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Vs
ZWN0RWxlbWVudC9hZGQuaHRtbApAQCAtMiw4NyArMiw2NSBAQAogPGh0bWw+CiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2h0bWwtc2VsZWN0LWFuZC1vcHRpb25zLWNvbGxlY3Rpb24tdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCdUZXN0IHNlbGVjdC5hZGQoKSB3aXRoIGluZGV4IHBhcmFtZXRlcicpOwotCQotdmFyIG15
U2VsZWN0OworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3
b3JrcyB3aGVuIHBhc3NpbmcgYW4gaW5kZXggb3IgYW4gSFRNTCBvcHRpb24gZWxlbWVudCBhcyBp
dHMgc2Vjb25kIGFyZ3VtZW50LiIpOwogCi1mdW5jdGlvbiByZXNldFNlbGVjdGlvbigpIHsKLSAg
ICBteVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwotICAgIG15U2Vs
ZWN0LmFwcGVuZENoaWxkKG5ldyBPcHRpb24oIjAiLCAiMCIsIGZhbHNlLCBmYWxzZSkpOwotICAg
IG15U2VsZWN0LmFwcGVuZENoaWxkKG5ldyBPcHRpb24oIjEiLCAiMSIsIGZhbHNlLCBmYWxzZSkp
OwotICAgIG15U2VsZWN0LmFwcGVuZENoaWxkKG5ldyBPcHRpb24oIjIiLCAiMiIsIGZhbHNlLCBm
YWxzZSkpOwotfQordmFyIG15U2VsZWN0ID0gY3JlYXRlU2VsZWN0RWxlbWVudFdpdGhUZXN0RGF0
YSgpOwogCi1mdW5jdGlvbiBkZWVwQ29weSgpIHsKLSAgICB2YXIgY29weSA9IFtdOwotICAgIGZv
cih2YXIgaSA9IDA7IGkgPCBteVNlbGVjdC5vcHRpb25zLmxlbmd0aDsgKytpKQotICAgICAgICBj
b3B5LnB1c2gobXlTZWxlY3Qub3B0aW9uc1tpXS52YWx1ZSk7Ci0gICAgcmV0dXJuIGNvcHkuam9p
bigiLCIpOwotfQotCQotZnVuY3Rpb24gY3JlYXRlT3B0aW9uKHZhbHVlKSB7Ci0gICAgcmV0dXJu
IG5ldyBPcHRpb24odmFsdWUgKyAiWCIsIHZhbHVlLCBmYWxzZSwgZmFsc2UpOworZnVuY3Rpb24g
dGVzdEFkZCgpCit7CisgICAgSFRNTFNlbGVjdEVsZW1lbnQucHJvdG90eXBlLmFkZC5hcHBseSht
eVNlbGVjdCwgYXJndW1lbnRzKTsKKyAgICB2YXIgcmVzdWx0ID0gZGVlcENvcHkobXlTZWxlY3Qp
OworICAgIG15U2VsZWN0ID0gY3JlYXRlU2VsZWN0RWxlbWVudFdpdGhUZXN0RGF0YSgpOyAvLyBS
ZXNldAorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIHRlc3RBZGQxKGVsZW1lbnQp
IHsKLSAgICByZXNldFNlbGVjdGlvbigpOwotICAgIG15U2VsZWN0LmFkZChlbGVtZW50KTsKLSAg
ICByZXR1cm4gZGVlcENvcHkoKTsKLX0KK2RlYnVnKCI8YnI+Q2FsbCBIVE1MU2VsZWN0RWxlbWVu
dC5hZGQoKSB3aXRoIHplcm8gYXJndW1lbnRzOiIpOworc2hvdWxkVGhyb3coJ3Rlc3RBZGQoKScp
OwogCi1mdW5jdGlvbiB0ZXN0QWRkMyhuZXdlbGVtZW50LCBpbmRleCkgewotICAgIHJlc2V0U2Vs
ZWN0aW9uKCk7Ci0gICAgbXlTZWxlY3QuYWRkKG5ld2VsZW1lbnQsIGluZGV4KTsKLSAgICByZXR1
cm4gZGVlcENvcHkoKTsKLX0KK2RlYnVnKCI8YnI+Q2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQo
KSB3aXRoIG9uZSBhcmd1bWVudDoiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChj
cmVhdGVPcHRpb24oIlkxIikpJywgJzAsMSwyLFkxJyk7CitzaG91bGRUaHJvdygndGVzdEFkZCgi
Zm9vIiknKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKHVuZGVmaW5lZCknKTsKK3Nob3VsZFRocm93
KCd0ZXN0QWRkKG51bGwpJyk7CiAKLWZ1bmN0aW9uIHRlc3RBZGQ0KG5ld2VsZW1lbnQsIGVsZW1l
bnQsIGluZGV4KSB7Ci0gICAgcmVzZXRTZWxlY3Rpb24oKTsKLSAgICBteVNlbGVjdC5hZGQobmV3
ZWxlbWVudCwgZWxlbWVudCwgaW5kZXgpOwotICAgIHJldHVybiBkZWVwQ29weSgpOwotfQorZGVi
dWcoIjxicj5DYWxsIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIHdpdGggdHdvIGFyZ3VtZW50czoi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkyIiksIG51
bGwpJywgJzAsMSwyLFkyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRl
T3B0aW9uKCJZMyIpLCAwKScsICdZMywwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTQiKSwgMSknLCAnMCxZNCwxLDInKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlk1IiksIDIpJywgJzAsMSxZNSwyJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZNiIpLCAzKScs
ICcwLDEsMixZNicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTciKSwgMTAwKScsICcwLDEsMixZNycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTgiKSwgLTEwMCknLCAnMCwxLDIsWTgnKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlk5IiksICIwIiknLCAnWTksMCwxLDIn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMCIpLCAi
MSIpJywgJzAsWTEwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0
ZU9wdGlvbigiWTExIiksICIyIiknLCAnMCwxLFkxMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSknLCAnMCxZMTIsMSwyJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFsc2Up
JywgJ1kxMywwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWTE0IiksIDIxNDc0ODM2NDcpJywgJzAsMSwyLFkxNCcpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0ODM2NDgpJywgJzAsMSwy
LFkxNScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE2
IiksIC0yMTQ3NDgzNjQ3KScsICcwLDEsMixZMTYnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNyIpLCAtMjE0NzQ4MzY0OCknLCAnMCwxLDIsWTE3Jyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTgiKSwgLTIx
NDc0ODM2NDkpJywgJzAsMSwyLFkxOCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRk
KGNyZWF0ZU9wdGlvbigiWTE5IiksIEluZmluaXR5KScsICdZMTksMCwxLDInKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMCIpLCAtSW5maW5pdHkpJywg
J1kyMCwwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTIxIiksICJmb28iKScsICdZMjEsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMiIpLCBOYU4pJywgJ1kyMiwwLDEsMicpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIzIiksIHVuZGVmaW5lZCkn
LCAnWTIzLDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMjQiKSwgLTIpJywnMCwxLDIsWTI0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rl
c3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pJywgJ1gsMCwxLDIn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlT
ZWxlY3Qub3B0aW9uc1sxXSknLCAnMCxYLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzJdKScsICcwLDEsWCwy
Jyk7CitzaG91bGRUaHJvdygndGVzdEFkZCgiZm9vIiwgMCknKTsKK3Nob3VsZFRocm93KCd0ZXN0
QWRkKHVuZGVmaW5lZCwgMCknKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKG51bGwsIDApJyk7CiAK
LXJlc2V0U2VsZWN0aW9uKCk7Ci1kZWJ1ZygnbGlzdCBlbGVtZW50cyBhcmUgPSAnICsgZGVlcENv
cHkoKSk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQxKGNyZWF0ZU9wdGlvbigiWTEi
KSknLCAnMCwxLDIsWTEnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRl
T3B0aW9uKCJZMiIpLCBudWxsKScsICcwLDEsMixZMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkzIiksIDApJywgJ1kzLDAsMSwyJyk7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTQiKSwgMSknLCAnMCxZNCwx
LDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNSIp
LCAyKScsICcwLDEsWTUsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVh
dGVPcHRpb24oIlk2IiksIDMpJywgJzAsMSwyLFk2Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
J3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTciKSwgMTAwKScsICcwLDEsMixZNycpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk4IiksIC0xMDApJywgJzAs
MSwyLFk4Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigi
WTkiKSwgIjAiKScsICdZOSwwLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRk
MyhjcmVhdGVPcHRpb24oIlkxMCIpLCAiMSIpJywgJzAsWTEwLDEsMicpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMSIpLCAiMiIpJywgJzAsMSxZMTEs
MicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMiIp
LCB0cnVlKScsICcwLFkxMiwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFsc2UpJywgJ1kxMywwLDEsMicpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxNCIpLCAyMTQ3NDgzNjQ3KScsICcw
LDEsMixZMTQnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9u
KCJZMTUiKSwgMjE0NzQ4MzY0OCknLCAnMCwxLDIsWTE1Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE2IiksIC0yMTQ3NDgzNjQ3KScsICcwLDEsMixZ
MTYnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTci
KSwgLTIxNDc0ODM2NDgpJywgJzAsMSwyLFkxNycpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxOCIpLCAtMjE0NzQ4MzY0OSknLCAnMCwxLDIsWTE4Jyk7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE5IiksIElu
ZmluaXR5KScsICdZMTksMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMjAiKSwgLUluZmluaXR5KScsICdZMjAsMCwxLDInKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjEiKSwgImZvbyIpJywgJ1ky
MSwwLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24o
IlkyMiIpLCBOYU4pJywgJ1kyMiwwLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkMyhjcmVhdGVPcHRpb24oIlkyMyIpLCB1bmRlZmluZWQpJywgJ1kyMywwLDEsMicpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyNCIpLCAtMiknLCcw
LDEsMixZMjQnKTsKLXNob3VsZFRocm93KCd0ZXN0QWRkNChjcmVhdGVPcHRpb24oIlkyNSIpLCAw
LCAxKScpOwotc2hvdWxkVGhyb3coJ3Rlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIG15U2Vs
ZWN0Lm9wdGlvbnNbMF0sIDEpJyk7Ci1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3QgZWxl
bWVudHMgYXJlID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0LmFkZCgi
Zm9vIiknKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5hZGQoImZvbyIsIDApJyk7Ci1zaG91bGRU
aHJvdygnbXlTZWxlY3QuYWRkKHVuZGVmaW5lZCknKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5h
ZGQodW5kZWZpbmVkLCAwKScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0LmFkZChudWxsLCAwKScp
Owotc2hvdWxkVGhyb3coJ215U2VsZWN0LmFkZChudWxsKScpOwotc2hvdWxkVGhyb3coJ215U2Vs
ZWN0LmFkZCgpJyk7Ci0JCitkZWJ1ZygiPGJyPkNhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkg
d2l0aCB0aHJlZSBhcmd1bWVudHMgKHdoZW4gaXQgb25seSB0YWtlcyB0d28gYXJndW1lbnRzKToi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgMCwg
InVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKScsJ1gsMCwx
LDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwg
bXlTZWxlY3Qub3B0aW9uc1sxXSwgInVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxk
IGJlIGlnbm9yZWQiKScsJzAsWCwxLDInKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9u
cy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
U2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dAppbmRleCAw
NDYyNWM4Li45YzZiODQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Vs
ZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRk
LWV4cGVjdGVkLnR4dApAQCAtMyw1NSArMyw2MyBAQCBUZXN0IHNlbGVjdC5vcHRpb25zLmFkZCgp
IHdpdGggb3B0Z3JvdXAgYW5kIHdpdGggaW5kZXggcGFyYW1ldGVyCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAotbGlzdCBlbGVtZW50cyBhcmUgPSAwLDEsMgotUEFTUyB0ZXN0QWRkMyhj
cmVhdGVHcm91cCgiWTEiLCAiWTIiKSwgbnVsbCkgaXMgIjAsMSwyLFkxLFkyIgotUEFTUyB0ZXN0
QWRkMyhjcmVhdGVHcm91cCgiWTMiLCAiWTQiKSwgMCkgaXMgIlkzLFk0LDAsMSwyIgotUEFTUyB0
ZXN0QWRkMyhjcmVhdGVHcm91cCgiWTUiLCAiWTYiKSwgMikgaXMgIjAsMSxZNSxZNiwyIgotUEFT
UyB0ZXN0QWRkMShjcmVhdGVHcm91cCgiWTciLCAiWTgiKSkgaXMgIjAsMSwyLFk3LFk4IgotUEFT
UyB0ZXN0QWRkMShjcmVhdGVPcHRpb24oIlk5IikpIGlzICIwLDEsMixZOSIKLWxpc3QgZWxlbWVu
dHMgYXJlID0gMCwxLDIKLVBBU1MgdGVzdEFkZDIoY3JlYXRlT3B0aW9uKCJZMTAiKSwgbXlTZWxl
Y3Qub3B0aW9uc1syXSkgaXMgIjAsMSxZMTAsMiIKLVBBU1MgdGVzdEFkZDIoY3JlYXRlT3B0aW9u
KCJZMTEiKSwgbXlTZWxlY3Qub3B0aW9uc1sxXSkgaXMgIjAsWTExLDEsWTEwLDIiCi1saXN0IGVs
ZW1lbnRzIGFyZSA9IDAsMSwyCi1QQVNTIHRlc3RBZGQyKGNyZWF0ZUdyb3VwKCJZMTIiLCAiWTEz
IiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pIGlzICIwLFkxMixZMTMsMSwyIgotUEFTUyB0ZXN0QWRk
MihjcmVhdGVHcm91cCgiWTE0IiwgIlkxNSIpLCBteVNlbGVjdC5vcHRpb25zWzNdKSBpcyAiMCxZ
MTIsWTEzLFkxNCxZMTUsMSwyIgotbGlzdCBlbGVtZW50cyBhcmUgPSAwLDEsMgotUEFTUyB0ZXN0
QWRkMihjcmVhdGVPcHRpb24oIlkxNiIpLCBjcmVhdGVPcHRpb24oIlkxNyIpKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLWxpc3QgZWxlbWVu
dHMgYXJlID0gMCwxLDIKLVBBU1MgdGVzdEFkZDEoY3JlYXRlT3B0aW9uKCJZMSIpKSBpcyAiMCwx
LDIsWTEiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCkgaXMgIjAsMSwy
LFkyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkzIiksIDApIGlzICJZMywwLDEsMiIK
LVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNCIpLCAxKSBpcyAiMCxZNCwxLDIiCi1QQVNT
IHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTUiKSwgMikgaXMgIjAsMSxZNSwyIgotUEFTUyB0ZXN0
QWRkMyhjcmVhdGVPcHRpb24oIlk2IiksIDMpIGlzICIwLDEsMixZNiIKLVBBU1MgdGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZNyIpLCAxMDApIGlzICIwLDEsMixZNyIKLVBBU1MgdGVzdEFkZDMoY3Jl
YXRlT3B0aW9uKCJZOCIpLCAtMTAwKSBpcyAiMCwxLDIsWTgiCi1QQVNTIHRlc3RBZGQzKGNyZWF0
ZU9wdGlvbigiWTkiKSwgIjAiKSBpcyAiWTksMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9w
dGlvbigiWTEwIiksICIxIikgaXMgIjAsWTEwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0
aW9uKCJZMTEiKSwgIjIiKSBpcyAiMCwxLFkxMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRp
b24oIlkxMiIpLCB0cnVlKSBpcyAiMCxZMTIsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRp
b24oIlkxMyIpLCBmYWxzZSkgaXMgIlkxMywwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0
aW9uKCJZMTQiKSwgMjE0NzQ4MzY0NykgaXMgIjAsMSwyLFkxNCIKLVBBU1MgdGVzdEFkZDMoY3Jl
YXRlT3B0aW9uKCJZMTUiKSwgMjE0NzQ4MzY0OCkgaXMgIjAsMSwyLFkxNSIKLVBBU1MgdGVzdEFk
ZDMoY3JlYXRlT3B0aW9uKCJZMTYiKSwgLTIxNDc0ODM2NDcpIGlzICIwLDEsMixZMTYiCi1QQVNT
IHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE3
IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxOCIpLCAtMjE0NzQ4MzY0OSkgaXMgIjAs
MSwyLFkxOCIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTkiKSwgSW5maW5pdHkpIGlz
ICJZMTksMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIwIiksIC1JbmZpbml0
eSkgaXMgIlkyMCwwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjEiKSwgImZv
byIpIGlzICJZMjEsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIyIiksIE5h
TikgaXMgIlkyMiwwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjMiKSwgdW5k
ZWZpbmVkKSBpcyAiWTIzLDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyNCIp
LCAtMikgaXMgIjAsMSwyLFkyNCIKLVBBU1MgdGVzdEFkZDQoY3JlYXRlT3B0aW9uKCJZMjUiKSwg
MCwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGVzdEFk
ZDQoY3JlYXRlT3B0aW9uKCJZMjUiKSwgbXlTZWxlY3Qub3B0aW9uc1swXSwgMSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLWxpc3QgZWxlbWVudHMgYXJlID0gMCwxLDIK
LVBBU1MgbXlTZWxlY3Qub3B0aW9ucy5hZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1QQVNTIG15U2VsZWN0Lm9wdGlvbnMuYWRkKCJmb28iLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBteVNlbGVjdC5vcHRpb25z
LmFkZCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIG15U2VsZWN0Lm9wdGlvbnMuYWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbXlTZWxlY3Qub3B0aW9ucy5hZGQobnVsbCwgMCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbXlTZWxlY3Qub3B0
aW9ucy5hZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBB
U1MgbXlTZWxlY3Qub3B0aW9ucy5hZGQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KKworQ2FsbCBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkKCkgd2l0
aCB6ZXJvIGFyZ3VtZW50czoKK1BBU1MgdGVzdEFkZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorCitDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5h
ZGQoKSB3aXRoIG9ubHkgb25lIGFyZ3VtZW50OgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTkiKSkgaXMgIjAsMSwyLFk5IgorUEFTUyB0ZXN0QWRkKCJmb28iKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZChudWxsKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorCitDYWxsIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6CitQQVNTIHRlc3RBZGQoY3JlYXRlR3JvdXAo
IlkxIiwgIlkyIiksIG51bGwpIGlzICIwLDEsMixZMSxZMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVH
cm91cCgiWTMiLCAiWTQiKSwgMCkgaXMgIlkzLFk0LDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0
ZUdyb3VwKCJZNSIsICJZNiIpLCAyKSBpcyAiMCwxLFk1LFk2LDIiCitQQVNTIHRlc3RBZGQoY3Jl
YXRlR3JvdXAoIlk3IiwgIlk4IikpIGlzICIwLDEsMixZNyxZOCIKK1BBU1MgdGVzdEFkZFdpdGhv
dXRSZXNldHRpbmdMaXN0T3B0aW9ucyhjcmVhdGVPcHRpb24oIlkxMCIpLCBteVNlbGVjdC5vcHRp
b25zWzJdKSBpcyAiMCwxLFkxMCwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTExIiks
IG15U2VsZWN0Lm9wdGlvbnNbMV0pIGlzICIwLFkxMSwxLFkxMCwyIgorUEFTUyB0ZXN0QWRkV2l0
aG91dFJlc2V0dGluZ0xpc3RPcHRpb25zKGNyZWF0ZUdyb3VwKCJZMTIiLCAiWTEzIiksIG15U2Vs
ZWN0Lm9wdGlvbnNbMV0pIGlzICIwLFkxMixZMTMsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZUdy
b3VwKCJZMTQiLCAiWTE1IiksIG15U2VsZWN0Lm9wdGlvbnNbM10pIGlzICIwLFkxMixZMTMsWTE0
LFkxNSwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTYiKSwgY3JlYXRlT3B0aW9u
KCJZMTciKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDguCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKSBpcyAiMCwxLDIsWTEiCitQ
QVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTIiCitQQVNT
IHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMyIpLCAwKSBpcyAiWTMsMCwxLDIiCitQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJZNCIpLCAxKSBpcyAiMCxZNCwxLDIiCitQQVNTIHRlc3RBZGQoY3Jl
YXRlT3B0aW9uKCJZNSIpLCAyKSBpcyAiMCwxLFk1LDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZNiIpLCAzKSBpcyAiMCwxLDIsWTYiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZ
NyIpLCAxMDApIGlzICIwLDEsMixZNyIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlk4Iiks
IC0xMDApIGlzICIwLDEsMixZOCIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlk5IiksICIw
IikgaXMgIlk5LDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTEwIiksICIxIikg
aXMgIjAsWTEwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMSIpLCAiMiIpIGlz
ICIwLDEsWTExLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSkgaXMg
IjAsWTEyLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMyIpLCBmYWxzZSkgaXMg
IlkxMywwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNCIpLCAyMTQ3NDgzNjQ3
KSBpcyAiMCwxLDIsWTE0IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0
ODM2NDgpIGlzICIwLDEsMixZMTUiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTYiKSwg
LTIxNDc0ODM2NDcpIGlzICIwLDEsMixZMTYiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZ
MTciKSwgLTIxNDc0ODM2NDgpIGlzICIwLDEsMixZMTciCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMTgiKSwgLTIxNDc0ODM2NDkpIGlzICIwLDEsMixZMTgiCitQQVNTIHRlc3RBZGQoY3Jl
YXRlT3B0aW9uKCJZMTkiKSwgSW5maW5pdHkpIGlzICJZMTksMCwxLDIiCitQQVNTIHRlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZMjAiKSwgLUluZmluaXR5KSBpcyAiWTIwLDAsMSwyIgorUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTIxIiksICJmb28iKSBpcyAiWTIxLDAsMSwyIgorUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTIyIiksIE5hTikgaXMgIlkyMiwwLDEsMiIKK1BBU1MgdGVzdEFk
ZChjcmVhdGVPcHRpb24oIlkyMyIpLCB1bmRlZmluZWQpIGlzICJZMjMsMCwxLDIiCitQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEsMixZMjQiCitQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pIGlzICJYLDAsMSwyIgor
UEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAi
MCxYLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9u
c1syXSkgaXMgIjAsMSxYLDIiCitQQVNTIHRlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIDAs
IDEpIHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
dGVzdEFkZDQuCitQQVNTIHRlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIG15U2VsZWN0Lm9w
dGlvbnNbMF0sIDEpIHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogdGVzdEFkZDQuCitQQVNTIHRlc3RBZGQoImZvbyIsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGwsIDAp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCisKK0NhbGwgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggdGhyZWUgYXJndW1lbnRzICh3aGVuIGl0IG9ubHkgdGFr
ZXMgdHdvIGFyZ3VtZW50cyk6CitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIDAsICJ1
bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIikgaXMgIlgsMCwx
LDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0s
ICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIikgaXMgIjAs
WCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlR3JvdXAoIkcxIiwgIkcyIiksIDEsICJ1bm5lY2Vz
c2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIikgaXMgIjAsRzEsRzIsMSwy
IgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNv
bGxlY3Rpb24tYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVu
dC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLmh0bWwKaW5kZXggMWRjNDhlMS4uMzg3NGQxNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1j
b2xsZWN0aW9uLWFkZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RF
bGVtZW50L29wdGlvbnMtY29sbGVjdGlvbi1hZGQuaHRtbApAQCAtMiwxMTcgKzIsODggQEAKIDxo
dG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9odG1sLXNlbGVjdC1hbmQtb3B0aW9u
cy1jb2xsZWN0aW9uLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxz
Y3JpcHQ+CiBkZXNjcmlwdGlvbignVGVzdCBzZWxlY3Qub3B0aW9ucy5hZGQoKSB3aXRoIG9wdGdy
b3VwIGFuZCB3aXRoIGluZGV4IHBhcmFtZXRlcicpOwotCQotdmFyIG15U2VsZWN0OwogCi1mdW5j
dGlvbiByZXNldFNlbGVjdGlvbigpIHsKLSAgICBteVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NlbGVjdCcpOwotICAgIG15U2VsZWN0LmFwcGVuZENoaWxkKG5ldyBPcHRpb24oIjAi
LCAiMCIsIGZhbHNlLCBmYWxzZSkpOwotICAgIG15U2VsZWN0LmFwcGVuZENoaWxkKG5ldyBPcHRp
b24oIjEiLCAiMSIsIGZhbHNlLCBmYWxzZSkpOwotICAgIG15U2VsZWN0LmFwcGVuZENoaWxkKG5l
dyBPcHRpb24oIjIiLCAiMiIsIGZhbHNlLCBmYWxzZSkpOwotfQordmFyIG15U2VsZWN0ID0gY3Jl
YXRlU2VsZWN0RWxlbWVudFdpdGhUZXN0RGF0YSgpOwogCi1mdW5jdGlvbiBkZWVwQ29weSgpIHsK
LSAgICB2YXIgY29weSA9IFtdOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCBteVNlbGVjdC5vcHRp
b25zLmxlbmd0aDsgKytpKQotICAgICAgICBjb3B5LnB1c2gobXlTZWxlY3Qub3B0aW9uc1tpXS52
YWx1ZSk7Ci0gICAgcmV0dXJuIGNvcHkuam9pbigiLCIpOwotfQotCQotZnVuY3Rpb24gY3JlYXRl
T3B0aW9uKHZhbHVlKSB7Ci0gICAgcmV0dXJuIG5ldyBPcHRpb24odmFsdWUgKyAiWCIsIHZhbHVl
LCBmYWxzZSwgZmFsc2UpOworZnVuY3Rpb24gdGVzdEFkZCgpCit7CisgICAgSFRNTE9wdGlvbnND
b2xsZWN0aW9uLnByb3RvdHlwZS5hZGQuYXBwbHkobXlTZWxlY3Qub3B0aW9ucywgYXJndW1lbnRz
KTsKKyAgICB2YXIgcmVzdWx0ID0gZGVlcENvcHkobXlTZWxlY3QpOworICAgIG15U2VsZWN0ID0g
Y3JlYXRlU2VsZWN0RWxlbWVudFdpdGhUZXN0RGF0YSgpOyAvLyBSZXNldAorICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZUdyb3VwKHZhbHVlMSwgdmFsdWUyKSB7Ci0gICAg
dmFyIGdyb3VwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0Z3JvdXAnKTsKLSAgICBncm91
cC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKHZhbHVlMSArICJYIiwgdmFsdWUxLCBmYWxzZSwgZmFs
c2UpKTsKLSAgICBncm91cC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKHZhbHVlMiArICJZIiwgdmFs
dWUyLCBmYWxzZSwgZmFsc2UpKTsKLSAgICByZXR1cm4gZ3JvdXA7CitmdW5jdGlvbiB0ZXN0QWRk
V2l0aG91dFJlc2V0dGluZ0xpc3RPcHRpb25zKCkKK3sKKyAgICBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24ucHJvdG90eXBlLmFkZC5hcHBseShteVNlbGVjdC5vcHRpb25zLCBhcmd1bWVudHMpOworICAg
IHJldHVybiBkZWVwQ29weShteVNlbGVjdCk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RBZGQxKGVsZW1l
bnQpIHsKLSAgICByZXNldFNlbGVjdGlvbigpOwotICAgIG15U2VsZWN0Lm9wdGlvbnMuYWRkKGVs
ZW1lbnQpOwotICAgIHJldHVybiBkZWVwQ29weSgpOwotfQorZGVidWcoIjxicj5DYWxsIEhUTUxP
cHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIHplcm8gYXJndW1lbnRzOiIpOworc2hvdWxkVGhy
b3coJ3Rlc3RBZGQoKScpOwogCi1mdW5jdGlvbiB0ZXN0QWRkMihuZXdlbGVtZW50LCBlbGVtZW50
KSB7Ci0gICAgbXlTZWxlY3Qub3B0aW9ucy5hZGQobmV3ZWxlbWVudCwgZWxlbWVudCk7Ci0gICAg
cmV0dXJuIGRlZXBDb3B5KCk7Ci19CitkZWJ1ZygiPGJyPkNhbGwgSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmFkZCgpIHdpdGggb25seSBvbmUgYXJndW1lbnQ6Iik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZOSIpKScsICcwLDEsMixZOScpOworc2hvdWxkVGhy
b3coJ3Rlc3RBZGQoImZvbyIpJyk7CitzaG91bGRUaHJvdygndGVzdEFkZCh1bmRlZmluZWQpJyk7
CitzaG91bGRUaHJvdygndGVzdEFkZChudWxsKScpOwogCi1mdW5jdGlvbiB0ZXN0QWRkMyhuZXdl
bGVtZW50LCBpbmRleCkgewotICAgIHJlc2V0U2VsZWN0aW9uKCk7Ci0gICAgbXlTZWxlY3Qub3B0
aW9ucy5hZGQobmV3ZWxlbWVudCwgaW5kZXgpOwotICAgIHJldHVybiBkZWVwQ29weSgpOwotfQor
ZGVidWcoIjxicj5DYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIHR3byBhcmd1
bWVudHM6Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlR3JvdXAoIlkx
IiwgIlkyIiksIG51bGwpJywgJzAsMSwyLFkxLFkyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3Rlc3RBZGQoY3JlYXRlR3JvdXAoIlkzIiwgIlk0IiksIDApJywgJ1kzLFk0LDAsMSwyJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlR3JvdXAoIlk1IiwgIlk2IiksIDIp
JywgJzAsMSxZNSxZNiwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRl
R3JvdXAoIlk3IiwgIlk4IikpJywgJzAsMSwyLFk3LFk4Jyk7CiAKLWZ1bmN0aW9uIHRlc3RBZGQ0
KG5ld2VsZW1lbnQsIGVsZW1lbnQsIGluZGV4KSB7Ci0gICAgcmVzZXRTZWxlY3Rpb24oKTsKLSAg
ICBteVNlbGVjdC5vcHRpb25zLmFkZChuZXdlbGVtZW50LCBlbGVtZW50LCBpbmRleCk7Ci0gICAg
cmV0dXJuIGRlZXBDb3B5KCk7Ci19CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGRXaXRo
b3V0UmVzZXR0aW5nTGlzdE9wdGlvbnMoY3JlYXRlT3B0aW9uKCJZMTAiKSwgbXlTZWxlY3Qub3B0
aW9uc1syXSknLCAnMCwxLFkxMCwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZMTEiKSwgbXlTZWxlY3Qub3B0aW9uc1sxXSknLCAnMCxZMTEsMSxZMTAs
MicpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGRXaXRob3V0UmVzZXR0aW5nTGlz
dE9wdGlvbnMoY3JlYXRlR3JvdXAoIlkxMiIsICJZMTMiKSwgbXlTZWxlY3Qub3B0aW9uc1sxXSkn
LCAnMCxZMTIsWTEzLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0
ZUdyb3VwKCJZMTQiLCAiWTE1IiksIG15U2VsZWN0Lm9wdGlvbnNbM10pJywgJzAsWTEyLFkxMyxZ
MTQsWTE1LDEsMicpOwogCi1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3QgZWxlbWVudHMg
YXJlID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhj
cmVhdGVHcm91cCgiWTEiLCAiWTIiKSwgbnVsbCknLCAnMCwxLDIsWTEsWTInKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlR3JvdXAoIlkzIiwgIlk0IiksIDApJywgJ1kz
LFk0LDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZUdyb3Vw
KCJZNSIsICJZNiIpLCAyKScsICcwLDEsWTUsWTYsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkMShjcmVhdGVHcm91cCgiWTciLCAiWTgiKSknLCAnMCwxLDIsWTcsWTgnKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDEoY3JlYXRlT3B0aW9uKCJZOSIpKScsICcwLDEs
MixZOScpOwotcmVzZXRTZWxlY3Rpb24oKTsKLWRlYnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9ICcg
KyBkZWVwQ29weSgpKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDIoY3JlYXRlT3B0
aW9uKCJZMTAiKSwgbXlTZWxlY3Qub3B0aW9uc1syXSknLCAnMCwxLFkxMCwyJyk7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQyKGNyZWF0ZU9wdGlvbigiWTExIiksIG15U2VsZWN0Lm9w
dGlvbnNbMV0pJywgJzAsWTExLDEsWTEwLDInKTsKLXJlc2V0U2VsZWN0aW9uKCk7Ci1kZWJ1Zygn
bGlzdCBlbGVtZW50cyBhcmUgPSAnICsgZGVlcENvcHkoKSk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQyKGNyZWF0ZUdyb3VwKCJZMTIiLCAiWTEzIiksIG15U2VsZWN0Lm9wdGlvbnNb
MV0pJywgJzAsWTEyLFkxMywxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDIo
Y3JlYXRlR3JvdXAoIlkxNCIsICJZMTUiKSwgbXlTZWxlY3Qub3B0aW9uc1szXSknLCAnMCxZMTIs
WTEzLFkxNCxZMTUsMSwyJyk7Ci1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3QgZWxlbWVu
dHMgYXJlID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkVGhyb3coJ3Rlc3RBZGQyKGNyZWF0ZU9w
dGlvbigiWTE2IiksIGNyZWF0ZU9wdGlvbigiWTE3IikpJyk7Ci1yZXNldFNlbGVjdGlvbigpOwot
ZGVidWcoJ2xpc3QgZWxlbWVudHMgYXJlID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkMShjcmVhdGVPcHRpb24oIlkxIikpJywgJzAsMSwyLFkxJyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCkn
LCAnMCwxLDIsWTInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0
aW9uKCJZMyIpLCAwKScsICdZMywwLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkMyhjcmVhdGVPcHRpb24oIlk0IiksIDEpJywgJzAsWTQsMSwyJyk7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTUiKSwgMiknLCAnMCwxLFk1LDInKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNiIpLCAzKScs
ICcwLDEsMixZNicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRp
b24oIlk3IiksIDEwMCknLCAnMCwxLDIsWTcnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dEFkZDMoY3JlYXRlT3B0aW9uKCJZOCIpLCAtMTAwKScsICcwLDEsMixZOCcpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk5IiksICIwIiknLCAnWTksMCwx
LDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTAi
KSwgIjEiKScsICcwLFkxMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMTEiKSwgIjIiKScsICcwLDEsWTExLDInKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSknLCAnMCxZMTIsMSwy
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTEzIiks
IGZhbHNlKScsICdZMTMsMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMTQiKSwgMjE0NzQ4MzY0NyknLCAnMCwxLDIsWTE0Jyk7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0ODM2NDgp
JywgJzAsMSwyLFkxNScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVP
cHRpb24oIlkxNiIpLCAtMjE0NzQ4MzY0NyknLCAnMCwxLDIsWTE2Jyk7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KScsICcw
LDEsMixZMTcnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9u
KCJZMTgiKSwgLTIxNDc0ODM2NDkpJywgJzAsMSwyLFkxOCcpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxOSIpLCBJbmZpbml0eSknLCAnWTE5LDAsMSwy
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIwIiks
IC1JbmZpbml0eSknLCAnWTIwLDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RB
ZGQzKGNyZWF0ZU9wdGlvbigiWTIxIiksICJmb28iKScsICdZMjEsMCwxLDInKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjIiKSwgTmFOKScsICdZMjIs
MCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZ
MjMiKSwgdW5kZWZpbmVkKScsICdZMjMsMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpJywnMCwxLDIsWTI0Jyk7CitzaG91bGRU
aHJvdygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNiIpLCBjcmVhdGVPcHRpb24oIlkxNyIpKScp
OworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKScs
ICcwLDEsMixZMScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTIiKSwgbnVsbCknLCAnMCwxLDIsWTInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dEFkZChjcmVhdGVPcHRpb24oIlkzIiksIDApJywgJ1kzLDAsMSwyJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZNCIpLCAxKScsICcwLFk0LDEsMicpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTUiKSwgMiknLCAn
MCwxLFk1LDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24o
Ilk2IiksIDMpJywgJzAsMSwyLFk2Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZNyIpLCAxMDApJywgJzAsMSwyLFk3Jyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZOCIpLCAtMTAwKScsICcwLDEsMixZOCcpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTkiKSwgIjAiKScs
ICdZOSwwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTEwIiksICIxIiknLCAnMCxZMTAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rl
c3RBZGQoY3JlYXRlT3B0aW9uKCJZMTEiKSwgIjIiKScsICcwLDEsWTExLDInKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMiIpLCB0cnVlKScsICcwLFkx
MiwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkx
MyIpLCBmYWxzZSknLCAnWTEzLDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJZMTQiKSwgMjE0NzQ4MzY0NyknLCAnMCwxLDIsWTE0Jyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTUiKSwgMjE0NzQ4MzY0
OCknLCAnMCwxLDIsWTE1Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRl
T3B0aW9uKCJZMTYiKSwgLTIxNDc0ODM2NDcpJywgJzAsMSwyLFkxNicpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KScsICcw
LDEsMixZMTcnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24o
IlkxOCIpLCAtMjE0NzQ4MzY0OSknLCAnMCwxLDIsWTE4Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTkiKSwgSW5maW5pdHkpJywgJ1kxOSwwLDEsMicp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIwIiksIC1J
bmZpbml0eSknLCAnWTIwLDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZMjEiKSwgImZvbyIpJywgJ1kyMSwwLDEsMicpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIyIiksIE5hTiknLCAnWTIyLDAsMSwy
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjMiKSwg
dW5kZWZpbmVkKScsICdZMjMsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFk
ZChjcmVhdGVPcHRpb24oIlkyNCIpLCAtMiknLCcwLDEsMixZMjQnKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1swXSkn
LCAnWCwwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzFdKScsICcwLFgsMSwyJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMl0p
JywgJzAsMSxYLDInKTsKIHNob3VsZFRocm93KCd0ZXN0QWRkNChjcmVhdGVPcHRpb24oIlkyNSIp
LCAwLCAxKScpOwogc2hvdWxkVGhyb3coJ3Rlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIG15
U2VsZWN0Lm9wdGlvbnNbMF0sIDEpJyk7Ci1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3Qg
ZWxlbWVudHMgYXJlID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0Lm9w
dGlvbnMuYWRkKCJmb28iKScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0Lm9wdGlvbnMuYWRkKCJm
b28iLCAwKScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0Lm9wdGlvbnMuYWRkKHVuZGVmaW5lZCkn
KTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5vcHRpb25zLmFkZCh1bmRlZmluZWQsIDApJyk7Ci1z
aG91bGRUaHJvdygnbXlTZWxlY3Qub3B0aW9ucy5hZGQobnVsbCwgMCknKTsKLXNob3VsZFRocm93
KCdteVNlbGVjdC5vcHRpb25zLmFkZChudWxsKScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0Lm9w
dGlvbnMuYWRkKCknKTsKLQkKK3Nob3VsZFRocm93KCd0ZXN0QWRkKCJmb28iLCAwKScpOworc2hv
dWxkVGhyb3coJ3Rlc3RBZGQodW5kZWZpbmVkLCAwKScpOworc2hvdWxkVGhyb3coJ3Rlc3RBZGQo
bnVsbCwgMCknKTsKKworZGVidWcoIjxicj5DYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQo
KSB3aXRoIHRocmVlIGFyZ3VtZW50cyAod2hlbiBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMp
OiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCAw
LCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91bGQgYmUgaWdub3JlZCIpJywnWCww
LDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIp
LCBteVNlbGVjdC5vcHRpb25zWzFdLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91
bGQgYmUgaWdub3JlZCIpJywnMCxYLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkKGNyZWF0ZUdyb3VwKCJHMSIsICJHMiIpLCAxLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1l
bnQgLSBzaG91bGQgYmUgaWdub3JlZCIpJywnMCxHMSxHMiwxLDInKTsKIDwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVj
dEVsZW1lbnQvcmVzb3VyY2VzL2h0bWwtc2VsZWN0LWFuZC1vcHRpb25zLWNvbGxlY3Rpb24tdXRp
bGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvcmVzb3Vy
Y2VzL2h0bWwtc2VsZWN0LWFuZC1vcHRpb25zLWNvbGxlY3Rpb24tdXRpbGl0aWVzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MjdkMGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9yZXNvdXJjZXMvaHRtbC1z
ZWxlY3QtYW5kLW9wdGlvbnMtY29sbGVjdGlvbi11dGlsaXRpZXMuanMKQEAgLTAsMCArMSwyNSBA
QAorZnVuY3Rpb24gY3JlYXRlU2VsZWN0RWxlbWVudFdpdGhUZXN0RGF0YSgpIHsKKyAgICB2YXIg
ZXhhbXBsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworICAgIGV4YW1wbGUu
YXBwZW5kQ2hpbGQobmV3IE9wdGlvbigiMCIsICIwIiwgZmFsc2UsIGZhbHNlKSk7CisgICAgZXhh
bXBsZS5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIxIiwgIjEiLCBmYWxzZSwgZmFsc2UpKTsKKyAg
ICBleGFtcGxlLmFwcGVuZENoaWxkKG5ldyBPcHRpb24oIjIiLCAiMiIsIGZhbHNlLCBmYWxzZSkp
OworICAgIHJldHVybiBleGFtcGxlOworfQorCitmdW5jdGlvbiBkZWVwQ29weShzZWxlY3RFbGVt
ZW50KSB7CisgICAgdmFyIGNvcHkgPSBbXTsKKyAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0
RWxlbWVudC5vcHRpb25zLmxlbmd0aDsgKytpKQorICAgICAgICBjb3B5LnB1c2goc2VsZWN0RWxl
bWVudC5vcHRpb25zW2ldLnZhbHVlKTsKKyAgICByZXR1cm4gY29weS5qb2luKCIsIik7Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZU9wdGlvbih2YWx1ZSkgeworICAgIHJldHVybiBuZXcgT3B0aW9uKHZh
bHVlICsgIlgiLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKTsKK30KKworZnVuY3Rpb24gY3JlYXRlR3Jv
dXAodmFsdWUxLCB2YWx1ZTIpIHsKKyAgICB2YXIgZ3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJvcHRncm91cCIpOworICAgIGdyb3VwLmFwcGVuZENoaWxkKG5ldyBPcHRpb24odmFsdWUx
ICsgIlgiLCB2YWx1ZTEsIGZhbHNlLCBmYWxzZSkpOworICAgIGdyb3VwLmFwcGVuZENoaWxkKG5l
dyBPcHRpb24odmFsdWUyICsgIlkiLCB2YWx1ZTIsIGZhbHNlLCBmYWxzZSkpOworICAgIHJldHVy
biBncm91cDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggZThjYjI0NS4uMzljYWU1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE0NTMsNiAr
MTQ1MywxNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRlcnNDaGVjawogICAgIHJldHVy
biAoJG51bU1hbmRhdG9yeVBhcmFtcywgam9pbigiIHx8ICIsIEBvckV4cHJlc3Npb24pLCBAbmVl
ZGVkQXJndW1lbnRzKTsKIH0KIAorc3ViIExlbmd0aE9mTG9uZ2VzdEZ1bmN0aW9uUGFyYW1ldGVy
TGlzdAoreworICAgIG15ICgkb3ZlcmxvYWRzKSA9IEBfOworICAgIG15ICRyZXN1bHQgPSAwOwor
ICAgIGZvcmVhY2ggbXkgJG92ZXJsb2FkIChAeyRvdmVybG9hZHN9KSB7CisgICAgICAgIG15IEBw
YXJhbWV0ZXJzID0gQHskb3ZlcmxvYWQtPnBhcmFtZXRlcnN9OworICAgICAgICAkcmVzdWx0ID0g
QHBhcmFtZXRlcnMgaWYgJHJlc3VsdCA8IEBwYXJhbWV0ZXJzOworICAgIH0KKyAgICByZXR1cm4g
JHJlc3VsdDsKK30KKwogc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiB7CiAgICAgbXkg
JGZ1bmN0aW9uID0gc2hpZnQ7CkBAIC0xNDY3LDExICsxNDc4LDEyIEBAIHN1YiBHZW5lcmF0ZU92
ZXJsb2FkZWRGdW5jdGlvbgogCiAgICAgbXkgJGtpbmQgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8g
IkNvbnN0cnVjdG9yIiA6ICJQcm90b3R5cGUiOwogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAianMk
e2ludGVyZmFjZU5hbWV9JHtraW5kfUZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICBteSAkbGVuZ3RoT2ZMb25nZXN0
T3ZlcmxvYWRlZEZ1bmN0aW9uUGFyYW1ldGVyTGlzdCA9IExlbmd0aE9mTG9uZ2VzdEZ1bmN0aW9u
UGFyYW1ldGVyTGlzdCgkZnVuY3Rpb24tPntvdmVybG9hZHN9KTsKIAogICAgIHB1c2goQGltcGxD
b250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFtZX0oRXhl
Y1N0YXRlKiBleGVjKVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIHsKLSAg
ICBzaXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIHNpemVfdCBh
cmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KCRsZW5ndGhPZkxvbmdlc3RPdmVybG9hZGVkRnVu
Y3Rpb25QYXJhbWV0ZXJMaXN0LCBleGVjLT5hcmd1bWVudENvdW50KCkpOwogRU5ECiAKICAgICBt
eSAlZmV0Y2hlZEFyZ3VtZW50cyA9ICgpOwpAQCAtNDQ5MiwxMCArNDUwNCwxMSBAQCBzdWIgR2Vu
ZXJhdGVPdmVybG9hZGVkQ29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgbXkgJGludGVyZmFjZSA9
IHNoaWZ0OwogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICIke2NsYXNzTmFtZX1Db25zdHJ1Y3Rv
cjo6Y29uc3RydWN0JHtjbGFzc05hbWV9IjsKKyAgICBteSAkbGVuZ3RoT2ZMb25nZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yUGFyYW1ldGVyTGlzdCA9IExlbmd0aE9mTG9uZ2VzdEZ1bmN0aW9uUGFy
YW1ldGVyTGlzdCgkaW50ZXJmYWNlLT5jb25zdHJ1Y3RvcnMpOwogICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgPDxFTkQpOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFt
ZX0oRXhlY1N0YXRlKiBleGVjKQogewotICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1
bWVudENvdW50KCk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oJGxl
bmd0aE9mTG9uZ2VzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvclBhcmFtZXRlckxpc3QsIGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSk7CiBFTkQKIAogICAgIG15ICVmZXRjaGVkQXJndW1lbnRzID0gKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCmluZGV4IGE5NDYxOWMuLjA3N2EyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0zOTE4LDcgKzM5
MTgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQo
KTsKKyAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBleGVjLT5hcmd1
bWVudENvdW50KCkpOwogICAgIEpTVmFsdWUgYXJnMChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAg
SlNWYWx1ZSBhcmcxKGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBpZiAoKGFyZ3NDb3VudCA9PSAy
ICYmIChhcmcwLmlzTnVsbCgpIHx8IChhcmcwLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoYXJnMCkt
PmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkpICYmIChhcmcxLmlzVW5kZWZpbmVkT3JOdWxs
KCkgfHwgYXJnMS5pc1N0cmluZygpIHx8IGFyZzEuaXNPYmplY3QoKSkpKQpAQCAtNDAwNyw3ICs0
MDA3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENv
dW50KCk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMSwgZXhlYy0+
YXJndW1lbnRDb3VudCgpKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICBpZiAoYXJnc0Nv
dW50ID09IDEpCiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDExKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuY3BwCmluZGV4IDM2MDNmNWYuLjZiMzc2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0SgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgc2l6ZV90IGFyZ3NDb3VudCA9
IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48
c2l6ZV90PigxLCBleGVjLT5hcmd1bWVudENvdW50KCkpOwogICAgIEpTVmFsdWUgYXJnMChleGVj
LT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKChhcmdzQ291bnQgPT0gMSAmJiAoYXJnMC5pc09iamVj
dCgpICYmIGFzT2JqZWN0KGFyZzApLT5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjppbmZvKCkpKSkp
CiAgICAgICAgIHJldHVybiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMxKGV4ZWMpOwotLSAKMi4zLjcg
KEFwcGxlIEdpdC01NykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256053</attachid>
            <date>2015-07-02 17:36:39 -0700</date>
            <delta_ts>2015-07-02 20:08:46 -0700</delta_ts>
            <desc>Patch and updated layout tests</desc>
            <filename>bug-146515-20150702173545.patch</filename>
            <type>text/plain</type>
            <size>55741</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk3MzRjY2JjMzYyMzU0
NjdmOWIyOTMwM2M3ZTc1YWRiNzBlNzYwNy4uYTFjZjc3ZDAwYWY2NTY3MTBhYzRiMzQ0MjY1NmQz
ZGQ1MmZhNDc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA3LTAyICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTc4
MDk3KTogSmF2YVNjcmlwdCBUeXBlRXJyb3IgYWZ0ZXIgY2xpY2tpbmcgb24gY29tcG9zZSBidXR0
b24gaW4gWWFob28gTWFpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ2NTE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTM0ODQyMT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBhbiBpc3N1
ZSB3aGVyZSBleHRyYSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgV2ViIElETCBvdmVybG9hZGVkIGZ1
bmN0aW9uLCB3aG9zZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBpcyBnZW5lcmF0ZWQgYnkgdGhl
IGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHQsIGFyZSBub3QgaWdub3JlZCBhcyBwZXIgdGhlIG5v
dGUgaW4gc2VjdGlvbiAiSW50ZXJmYWNlIG9iamVjdCBbW0NhbGxdXSBtZXRob2QiCisgICAgICAg
IG9mIHRoZSBXZWIgSURMIHNwZWMsIDxodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEyL0NSLVdlYklE
TC0yMDEyMDQxOS8+ICgxOSBBcHJpbCAyMDEyKS4KKworICAgICAgICBDdXJyZW50bHkgZm9yIGFu
IG92ZXJsb2FkZWQgZnVuY3Rpb24gdGhlIEphdmFTY3JpcHQgYmluZGluZ3MgZ2VuZXJhdG9yIHNj
cmlwdCBlbWl0cyBjb2RlIHRvCisgICAgICAgIHRocm93IGEgVHlwZUVycm9yIHdoZW4gaXQgY2Fu
bm90IGZpbmQgYSBjYW5kaWRhdGUgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgc2FtZSBudW1iZXIg
b2YKKyAgICAgICAgYXJndW1lbnRzIGFzIHBhc3NlZCBieSBhIGNhbGxlci4gUHJpb3IgdG8gdGhl
IGNoYW5nZSBtYWRlIGluIGJ1ZyAjMTM5MTc5IChyMTc4MDk3KSwgdGhlCisgICAgICAgIGJpbmRp
bmdzIGNvZGUgZm9yIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIHdhcyB3cml0dGVuIGJ5IGhhbmQg
YW5kIGlnbm9yZWQgZXh0cmEgYXJndW1lbnRzCisgICAgICAgIHRoYXQgd2VyZSBwYXNzZWQgdG8g
aXQuIEZvbGxvd2luZyB0aGlzIGNoYW5nZSwgdGhlIGJpbmRpbmdzIGNvZGUgZm9yIEhUTUxTZWxl
Y3RFbGVtZW50LmFkZCgpCisgICAgICAgIGlzIGdlbmVyYXRlZCBieSB0aGUgYmluZGluZ3MgZ2Vu
ZXJhdG9yIHNjcmlwdC4gVGhlcmVmb3JlLCB3ZSB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIFlhaG9v
IE1haWwKKyAgICAgICAgY2FsbHMgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCBleHRyYSBh
cmd1bWVudHMgYmVjYXVzZSB0aGUgY29kZSBlbWl0dGVkIGJ5IHRoZSBiaW5kaW5ncworICAgICAg
ICBnZW5lcmF0b3Igc2NyaXB0IGRvZXMgbm90IGlnbm9yZSB0aGVtLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChMZW5ndGhPZkxvbmdl
c3RGdW5jdGlvblBhcmFtZXRlckxpc3QpOiBBZGRlZC4gQ29tcHV0ZXMgdGhlIGxlbmd0aCBvZiBs
b25nZXN0IG92ZXJsb2FkIHBhcmFtZXRlciBsaXN0LgorICAgICAgICAoR2VuZXJhdGVPdmVybG9h
ZGVkRnVuY3Rpb24pOiBFbWl0IGNvZGUgdGhhdCBpZ25vcmVzIG1vcmUgYXJndW1lbnRzIHRoYW4g
TGVuZ3RoT2ZMb25nZXN0RnVuY3Rpb25QYXJhbWV0ZXJMaXN0KCkuCisgICAgICAgIChHZW5lcmF0
ZU92ZXJsb2FkZWRDb25zdHJ1Y3RvckRlZmluaXRpb24pOiBEaXR0by4KKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEyKTogQWRkZWQ7IGV4cGVj
dGVkIHJlc3VsdCBmb3IgYW4gb3ZlcmxvYWRlZAorICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2Vz
IGEgdmFyaWFkaWMgbnVtYmVyIG9mIEJsb2IgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QpOiBVcGRhdGUgZXhwZWN0
ZWQgcmVzdWx0LiBUaGUgYWRkZWQKKyAgICAgICAgaWYtY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBm
b3IgdGhlIElETCBkZWNsYXJhdGlvbiBvdmVybG9hZGVkTWV0aG9kKEJsb2IuLi4gYmxvYkFyZ3Mp
IGlzIGVtcHR5CisgICAgICAgIGJlY2F1c2Ugd2UgZG8gbm90IHN1cHBvcnQgb3ZlcmxvYWRpbmcg
b2YgZnVuY3Rpb25zIHdpdGggdmFyaWFkaWMgYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3Ry
dWN0b3I6OmNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KTogQWRkZWQ7IGV4
cGVjdGVkCisgICAgICAgIHJlc3VsdCBmb3IgYW4gb3ZlcmxvYWRlZCBjb25zdHJ1Y3RvcnMgdGhh
dCB0YWtlcyBhIHZhcmlhZGljIG51bWJlciBvZiBsb25nIGFyZ3VtZW50cy4KKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyk6IFVwZGF0ZSBleHBlY3RlZAorICAgICAgICBy
ZXN1bHQuIFRoZSBhZGRlZCBpZi1jb25kaXRpb25hbCBleHByZXNzaW9uIGZvciB0aGUgSURMIGRl
Y2xhcmF0aW9uIENvbnN0cnVjdG9yKGxvbmcuLi4gbG9uZ0FyZ3MpIGlzIGVtcHR5CisgICAgICAg
IGJlY2F1c2Ugd2UgZG8gbm90IHN1cHBvcnQgb3ZlcmxvYWRpbmcgb2YgY29uc3RydWN0b3JzIHdp
dGggdmFyaWFkaWMgYXJndW1lbnRzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbDogQWRkZWQgZGVjbGFyYXRpb24gb3ZlcmxvYWRlZE1ldGhvZChCbG9iLi4uKS4g
QWxzbyBmaXhlZAorICAgICAgICB0eXBvIGluIGxpY2Vuc2UgYmxvY2sgdGV4dC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaWRsOiBB
ZGRlZCBkZWNsYXJhdGlvbiBDb25zdHJ1Y3Rvcihsb25nLi4uIGxvbmdBcmdzKS4KKyAgICAgICAg
QWxzbyBmaXhlZCB0eXBvIGluIGxpY2Vuc2UgYmxvY2sgdGV4dC4KKwogMjAxNS0wNi0zMCAgQW5k
eSBWYW5XYWdvbmVyICA8dGhldGFsZWNyYWZ0ZXJAZ21haWwuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBFQ01BU2NyaXB0IEludGVybmF0aW9uYWxpemF0aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBlOGNiMjQ1
MzJmMTk3MTQ0YzNiY2JjZjA0MjVmNGMzMTNjZGU4OTM4Li43YzY2NjNmMWFmODc1OWY3NDZlMDk3
ZGVkYTk0MTdiNTY5YmFhNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTQ1Myw2ICsxNDUzLDE3IEBAIHN1YiBHZW5l
cmF0ZUZ1bmN0aW9uUGFyYW1ldGVyc0NoZWNrCiAgICAgcmV0dXJuICgkbnVtTWFuZGF0b3J5UGFy
YW1zLCBqb2luKCIgfHwgIiwgQG9yRXhwcmVzc2lvbiksIEBuZWVkZWRBcmd1bWVudHMpOwogfQog
CitzdWIgTGVuZ3RoT2ZMb25nZXN0RnVuY3Rpb25QYXJhbWV0ZXJMaXN0Cit7CisgICAgbXkgKCRv
dmVybG9hZHMpID0gQF87CisgICAgbXkgJHJlc3VsdCA9IDA7CisgICAgZm9yZWFjaCBteSAkb3Zl
cmxvYWQgKEB7JG92ZXJsb2Fkc30pIHsKKyAgICAgICAgbXkgQHBhcmFtZXRlcnMgPSBAeyRvdmVy
bG9hZC0+cGFyYW1ldGVyc307CisgICAgICAgICRyZXN1bHQgPSBAcGFyYW1ldGVycyBpZiAkcmVz
dWx0IDwgQHBhcmFtZXRlcnM7CisgICAgfQorICAgIHJldHVybiAkcmVzdWx0OworfQorCiBzdWIg
R2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb24KIHsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsK
QEAgLTE0NjgsMTAgKzE0NzksMTMgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiAg
ICAgbXkgJGtpbmQgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8gIkNvbnN0cnVjdG9yIiA6ICJQcm90
b3R5cGUiOwogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAianMke2ludGVyZmFjZU5hbWV9JHtraW5k
fUZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lKTsKIAorICAgICMgRklYTUU6IEltcGxlbWVudCBzdXBwb3J0IGZvciBvdmVybG9h
ZGVkIGZ1bmN0aW9ucyB3aXRoIHZhcmlhZGljIGFyZ3VtZW50cy4KKyAgICBteSAkbGVuZ3RoT2ZM
b25nZXN0T3ZlcmxvYWRlZEZ1bmN0aW9uUGFyYW1ldGVyTGlzdCA9IExlbmd0aE9mTG9uZ2VzdEZ1
bmN0aW9uUGFyYW1ldGVyTGlzdCgkZnVuY3Rpb24tPntvdmVybG9hZHN9KTsKKwogICAgIHB1c2go
QGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFt
ZX0oRXhlY1N0YXRlKiBleGVjKVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsK
IHsKLSAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIHNp
emVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KCRsZW5ndGhPZkxvbmdlc3RPdmVybG9h
ZGVkRnVuY3Rpb25QYXJhbWV0ZXJMaXN0LCBleGVjLT5hcmd1bWVudENvdW50KCkpOwogRU5ECiAK
ICAgICBteSAlZmV0Y2hlZEFyZ3VtZW50cyA9ICgpOwpAQCAtNDQ5MiwxMCArNDUwNiwxNCBAQCBz
dWIgR2VuZXJhdGVPdmVybG9hZGVkQ29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OwogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICIke2NsYXNzTmFtZX1Db25z
dHJ1Y3Rvcjo6Y29uc3RydWN0JHtjbGFzc05hbWV9IjsKKworICAgICMgRklYTUU6IEltcGxlbWVu
dCBzdXBwb3J0IGZvciBvdmVybG9hZGVkIGZ1bmN0aW9ucyB3aXRoIHZhcmlhZGljIGFyZ3VtZW50
cy4KKyAgICBteSAkbGVuZ3RoT2ZMb25nZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yUGFyYW1ldGVy
TGlzdCA9IExlbmd0aE9mTG9uZ2VzdEZ1bmN0aW9uUGFyYW1ldGVyTGlzdCgkaW50ZXJmYWNlLT5j
b25zdHJ1Y3RvcnMpOworCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCA8PEVORCk7CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBzaXpl
X3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigkbGVuZ3RoT2ZMb25nZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yUGFyYW1ldGVyTGlzdCwgZXhlYy0+YXJndW1lbnRDb3VudCgpKTsKIEVORAog
CiAgICAgbXkgJWZldGNoZWRBcmd1bWVudHMgPSAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYTk0NjE5YzIz
MTM1OTJlZDBjZWYzMjRiNDQxMjcwMjE4ZTI1YTMzZi4uNGJmODY3NTZhYzZjMWZmMTA1NjA0ZTQ5
ZTBhMGZhZTFmZWZlMWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTM5MTYsOSArMzkxNiwyNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QxMQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEyKEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOworICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKKyAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlw
ZUVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJvdmVybG9hZGVkTWV0aG9kIik7CisgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CisgICAg
YXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKKyAgICBWZWN0b3I8QmxvYio+IGJsb2JB
cmdzOworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3Vu
dCgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KGkpLmluaGVyaXRzKEpTQmxvYjo6aW5mbygpKSkKKyAgICAgICAgICAgIHJldHVybiB0aHJv
d0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBpLCAiYmxvYkFyZ3MiLCAiVGVzdE9iaiIsICJvdmVy
bG9hZGVkTWV0aG9kIiwgIkJsb2IiKTsKKyAgICAgICAgYmxvYkFyZ3MuYXBwZW5kKEpTQmxvYjo6
dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7CisgICAgfQorICAgIGltcGwu
b3ZlcmxvYWRlZE1ldGhvZChibG9iQXJncyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7CisgICAgc2l6ZV90
IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgZXhlYy0+YXJndW1lbnRDb3VudCgpKTsK
ICAgICBKU1ZhbHVlIGFyZzAoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIEpTVmFsdWUgYXJnMShl
eGVjLT5hcmd1bWVudCgxKSk7CiAgICAgaWYgKChhcmdzQ291bnQgPT0gMiAmJiAoYXJnMC5pc051
bGwoKSB8fCAoYXJnMC5pc09iamVjdCgpICYmIGFzT2JqZWN0KGFyZzApLT5pbmhlcml0cyhKU1Rl
c3RPYmo6OmluZm8oKSkpKSAmJiAoYXJnMS5pc1VuZGVmaW5lZE9yTnVsbCgpIHx8IGFyZzEuaXNT
dHJpbmcoKSB8fCBhcmcxLmlzT2JqZWN0KCkpKSkKQEAgLTM5NDMsNiArMzk2MSw4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kKEV4ZWNTdGF0CiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QxMChleGVjKTsKICAgICBpZiAoYXJnc0NvdW50ID09IDEpCiAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
MShleGVjKTsKKyAgICBpZiAoKQorICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kMTIoZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpAQCAtNDAw
Nyw3ICs0MDI3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1
bWVudENvdW50KCk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMSwg
ZXhlYy0+YXJndW1lbnRDb3VudCgpKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICBpZiAo
YXJnc0NvdW50ID09IDEpCiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDExKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDM2MDNmNWY1MWFmNjQ2ZWViNTk5YWI4ZTYxZTkxNDg2
YWQ5YTIzZTEuLjI4YjliODMyMzU5OGE2OTAxYzY4OTIzZjUxZmE3YTE1ZTkwMzQwMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTg2LDYgKzg2
LDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIoSlNDOjpFeGVjU3Rh
dGUqKTsKICAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMzKEpTQzo6RXhlY1N0YXRlKik7CiAgICAg
c3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzNChKU0M6OkV4ZWNTdGF0ZSopOworICAgIHN0YXRpYyBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczUoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsK
IH07CiAKQEAgLTEzNyw5ICsxMzgsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdEoKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCksIG9iamVjdC5nZXQoKSkpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBh
dXRvKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25z
dHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBWZWN0b3I8aW50PiBsb25nQXJncyA9IHRv
TmF0aXZlQXJndW1lbnRzPGludD4oZXhlYywgMCk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICBSZWZQdHI8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+IG9iamVjdCA9IFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUobG9uZ0FyZ3MpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgb2JqZWN0LmdldCgpKSkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgc2l6ZV90IGFy
Z3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBzaXplX3QgYXJnc0NvdW50ID0g
c3RkOjptaW48c2l6ZV90PigxLCBleGVjLT5hcmd1bWVudENvdW50KCkpOwogICAgIEpTVmFsdWUg
YXJnMChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKChhcmdzQ291bnQgPT0gMSAmJiAoYXJn
MC5pc09iamVjdCgpICYmIGFzT2JqZWN0KGFyZzApLT5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjpp
bmZvKCkpKSkpCiAgICAgICAgIHJldHVybiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29u
c3RydWN0b3I6OmNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMxKGV4ZWMpOwpA
QCAtMTQ5LDYgKzE2MCw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKCiAgICAgICAgIHJldHVy
biBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMzKGV4ZWMpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMSkK
ICAgICAgICAgcmV0dXJuIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQoZXhlYyk7CisgICAgaWYgKCkK
KyAgICAgICAgcmV0dXJuIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUoZXhlYyk7CiAgICAgaWYgKGFy
Z3NDb3VudCA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCmluZGV4IDIyNmQwMDY1YmVmNTU5MWRjMmYzNzk0ZmEwNDk5MzI2YjlhODU2YjIuLjY1
ZDIzZTA3M2ZmZmM3ZTFlYzAyZmUxZThlN2FiNWE0NjBjZWEzNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTE2LDcgKzE2LDcg
QEAKICAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVzdHJBcmcsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAogICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQogICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQogICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKQEAgLTE4Nyw2ICsxODcsOSBAQCBlbnVt
IF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxWYWx1ZTIiLCAiT3B0
aW9uYWxWYWx1ZTMiIH07CiAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKERPTVN0cmluZ1td
IGFycmF5QXJnKTsKICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2Qoc2VxdWVuY2U8dW5zaWdu
ZWQgbG9uZz4gYXJyYXlBcmcpOwogICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChET01TdHJp
bmcgc3RyQXJnKTsKKworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Igb3Zlcmxv
YWRlZCBmdW5jdGlvbnMgd2l0aCB2YXJpYWRpYyBhcmd1bWVudHMuCisgICAgdm9pZCAgICBvdmVy
bG9hZGVkTWV0aG9kKEJsb2IuLi4gYmxvYkFyZ3MpOwogI2VuZGlmCiAKICAgICAvLyBDbGFzcyBt
ZXRob2RzIHdpdGhpbiBKYXZhU2NyaXB0IChsaWtlIHdoYXQncyB1c2VkIGZvciBJREJLZXlSYW5n
ZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmlkbAppbmRleCBmNzM5MWVjMzdk
NGY3NGU2YzljZGQzMjhkMDZkN2JhZmI0OWI1OWQ2Li5iZGRiMWI4NDAzMWYzNTMxNzA4MmYzYzNk
YzZmZjg2NTAyOGNiMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5pZGwK
QEAgLTE1LDcgKzE1LDcgQEAKICAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVzdHJBcmcsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAogICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQogICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQogICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKQEAgLTMwLDUg
KzMwLDYgQEAKICAgICBDb25zdHJ1Y3RvcihBcnJheUJ1ZmZlclZpZXcgYXJyYXlCdWZmZXJWaWV3
KSwKICAgICBDb25zdHJ1Y3RvcihCbG9iIGJsb2IpLAogICAgIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyBzdHJpbmcpLAorICAgIENvbnN0cnVjdG9yKGxvbmcuLi4gbG9uZ0FyZ3MpIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgc3VwcG9ydCBmb3Igb3ZlcmxvYWRlZCBjb25zdHJ1Y3RvcnMgd2l0aCB2YXJpYWRp
YyBhcmd1bWVudHMuCiBdIGludGVyZmFjZSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyB7CiB9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGMwMzc0YWVmZjc2OWRjYWM2NjQ4NTJkMzcxYmViZDZjNmU3MjRlNWUuLmJiNmRh
NTYwNGNkYmE1ZWZhNWQxYTQ4N2JmMjBlZTU2NDhmODAzNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBA
QAorMjAxNS0wNy0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTiAocjE3ODA5Nyk6IEphdmFTY3JpcHQgVHlwZUVycm9yIGFmdGVyIGNsaWNr
aW5nIG9uIGNvbXBvc2UgYnV0dG9uIGluIFlhaG9vIE1haWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjUxNQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjEzNDg0MjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIG5ldyBzdWItdGVzdHMgdG8gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVj
dEVsZW1lbnQve2FkZCwgb3B0aW9ucy1jb2xsZWN0aW9uLWFkZH0uaHRtbCwKKyAgICAgICAgc2lt
cGxpZnkgZXhpc3RpbmcgdGVzdCBjb2RlLCBzaGFyZSBjb21tb24gY29kZSwgYW5kIHVwZGF0ZSBl
eHBlY3RlZCByZXN1bHRzLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgdXBkYXRlIHJlc3VsdHMg
Zm9yIHRlc3RzIGluIExheW91dFRlc3RzL2Zhc3QvY2FudmFzIG5vdyB0aGF0IHdlIGlnbm9yZSBl
eHRyYQorICAgICAgICBhcmd1bWVudHMgcGFzc2VkIHRvIGEgV2ViIElETCBvdmVybG9hZGVkIGZ1
bmN0aW9uIHdob3NlIGltcGxlbWVudGF0aW9uIGlzIGdlbmVyYXRlZCBieSB0aGUKKyAgICAgICAg
YmluZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdC4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1vdmVybG9hZHMtZHJhd0ltYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTaGFkb3ctZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1vdmVybG9hZHMtc2V0U3Ryb2tlQ29sb3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3Zlcmxv
YWRzLWRyYXdJbWFnZS5qczoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2Fu
dmFzLW92ZXJsb2Fkcy1zZXRGaWxsQ29sb3IuanM6CisgICAgICAgICogZmFzdC9jYW52YXMvc2Ny
aXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U2hhZG93LmpzOgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9yLmpzOgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xs
ZWN0aW9uLWFkZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3Jl
c291cmNlcy9odG1sLXNlbGVjdC1hbmQtb3B0aW9ucy1jb2xsZWN0aW9uLXV0aWxpdGllcy5qczog
QWRkZWQuCisgICAgICAgIChjcmVhdGVTZWxlY3RFbGVtZW50V2l0aFRlc3REYXRhKToKKyAgICAg
ICAgKGRlZXBDb3B5KToKKyAgICAgICAgKGNyZWF0ZU9wdGlvbik6CisgICAgICAgIChjcmVhdGVH
cm91cCk6CisKIDIwMTUtMDYtMzAgIEFuZHkgVmFuV2Fnb25lciAgPHRoZXRhbGVjcmFmdGVyQGdt
YWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgRUNNQVNjcmlwdCBJbnRlcm5hdGlvbmFsaXph
dGlvbiBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVy
bG9hZHMtZHJhd0ltYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Nh
bnZhcy1vdmVybG9hZHMtZHJhd0ltYWdlLWV4cGVjdGVkLnR4dAppbmRleCA2ZmE0M2U5YmMwMzli
MmJhZTllYmM0MmIwNGExNGE2ZmQ1Mzc4ZmQ5Li40MDBkZWIyMzAxOGY2MjNkMDUxN2E0YTFkMTk0
NDk4YjBiNTFkOTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
b3ZlcmxvYWRzLWRyYXdJbWFnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvY2FudmFzLW92ZXJsb2Fkcy1kcmF3SW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0xMyw4ICsx
Myw4IEBAIFBBU1MgY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAsIDAsIDAsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUKIFBBU1MgY3R4LmRyYXdJbWFnZShpbWFnZUVs
ZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCiBQQVNTIGN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjdHguZHJh
d0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgaXMgdW5kZWZpbmVk
Ci1QQVNTIGN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjdHguZHJh
d0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3R4LmRyYXdJbWFnZShpbWFn
ZUVsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIGlzIHVuZGVmaW5lZAorUEFTUyBj
dHguZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkg
aXMgdW5kZWZpbmVkCiBQQVNTIGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIGN0eC5kcmF3SW1h
Z2UoY2FudmFzRWxlbWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCiBQQVNTIGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCkgaXMg
dW5kZWZpbmVkCkBAIC0yNCw4ICsyNCw4IEBAIFBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVt
ZW50LCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlCiBQQVNT
IGN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNF
bGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgogUEFTUyBjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW5kZXhTaXplRXJyb3I6IERPTSBF
eGNlcHRpb24gMS4KLVBBU1MgY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
UEFTUyBjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGN0eC5k
cmF3SW1hZ2UoY2FudmFzRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJbmRleFNpemVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBj
dHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW5kZXhTaXplRXJyb3I6IERPTSBFeGNlcHRpb24gMS4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRGaWxsQ29s
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fk
cy1zZXRGaWxsQ29sb3ItZXhwZWN0ZWQudHh0CmluZGV4IDRiZDY5ZDYzYTRiYTBjMzg1MGZmZmNm
OWJlNDhlYjA2NDZiNGRjMmQuLjQ1N2EzMDkyMGM5NzJmMjU0NTE1YjkyM2FiZGM5ZmU5NGI1YTlm
MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVybG9hZHMt
c2V0RmlsbENvbG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDcg
QEAgUEFTUyBjdHguc2V0RmlsbENvbG9yKDAsIDApIGlzIHVuZGVmaW5lZAogUEFTUyBjdHguc2V0
RmlsbENvbG9yKDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CiBQQVNTIGN0eC5zZXRGaWxsQ29sb3IoMCwgMCwgMCwgMCkgaXMgdW5kZWZpbmVkCiBQQVNTIGN0
eC5zZXRGaWxsQ29sb3IoMCwgMCwgMCwgMCwgMCkgaXMgdW5kZWZpbmVkCi1QQVNTIGN0eC5zZXRG
aWxsQ29sb3IoMCwgMCwgMCwgMCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwLCAwLCAwKSBpcyB1bmRl
ZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRT
aGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJs
b2Fkcy1zZXRTaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IDBlYWJlNmYyOTc3MjE4MTFiYTZlZjQy
NTlhYjFkMjg5NWI2MzkxZDkuLjU2YTdhYzMxNjI1ZThkYzI4MDk3NGJmZjcyZWY5YmFiYmFhZWI5
NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVybG9hZHMt
c2V0U2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtb3ZlcmxvYWRzLXNldFNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTE2LDcgKzE2LDcgQEAgUEFT
UyBjdHguc2V0U2hhZG93KDAsIDAsIDAsIDAsICdyZWQnLCAwLCAwKSBpcyB1bmRlZmluZWQKIFBB
U1MgY3R4LnNldFNoYWRvdygwLCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgogUEFTUyBjdHguc2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDAsIDAp
IGlzIHVuZGVmaW5lZAogUEFTUyBjdHguc2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAp
IGlzIHVuZGVmaW5lZAotUEFTUyBjdHguc2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGN0eC5zZXRT
aGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkgaXMgdW5kZWZpbmVkCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVybG9hZHMtc2V0U3Ryb2tlQ29sb3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJv
a2VDb2xvci1leHBlY3RlZC50eHQKaW5kZXggZDAyNTE3YjEwOTJiY2IyMjY4Yjc4MGNkODJlZTBm
ODlkNmVmNThmZC4uMjg4ZmJhNjIzNDYyNTMxZTM1MmZkYjJlZDQ0MDUwOTZhOTlmN2JiZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJv
a2VDb2xvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDcgQEAg
UEFTUyBjdHguc2V0U3Ryb2tlQ29sb3IoMCwgMCkgaXMgdW5kZWZpbmVkCiBQQVNTIGN0eC5zZXRT
dHJva2VDb2xvcigwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgogUEFTUyBjdHguc2V0U3Ryb2tlQ29sb3IoMCwgMCwgMCwgMCkgaXMgdW5kZWZpbmVkCiBQQVNT
IGN0eC5zZXRTdHJva2VDb2xvcigwLCAwLCAwLCAwLCAwKSBpcyB1bmRlZmluZWQKLVBBU1MgY3R4
LnNldFN0cm9rZUNvbG9yKDAsIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIGN0eC5zZXRTdHJva2VDb2xvcigwLCAwLCAwLCAwLCAwLCAw
KSBpcyB1bmRlZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3Rz
L2NhbnZhcy1vdmVybG9hZHMtZHJhd0ltYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
c2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtZHJhd0ltYWdlLmpzCmluZGV4IGUwNzRkNmUx
YzJlZmEzMDNlMGJmOWI0NGUyZGNhOGY4NmMzYTg5NDEuLjU4MGZjNGM2ZmU3OTNiYTFmOWYzZTcy
YzM0MjE0OThlMzM5OWQ3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Nj
cmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLWRyYXdJbWFnZS5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW92ZXJsb2Fkcy1kcmF3SW1hZ2UuanMK
QEAgLTE2LDggKzE2LDggQEAgc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50
LCAwLCAwLCAwLCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKIHNob3VsZFRocm93KCJjdHguZHJhd0lt
YWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91
bGRUaHJvdygiY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAp
IiwgIlR5cGVFcnJvciIpOwogc2hvdWxkQmUoImN0eC5kcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKLXNob3VsZFRocm93KCJjdHgu
ZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlw
ZUVycm9yIik7Ci1zaG91bGRUaHJvdygiY3R4LmRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOworc2hvdWxkQmUoImN0eC5k
cmF3SW1hZ2UoaW1hZ2VFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRl
ZmluZWQiKTsKK3Nob3VsZEJlKCJjdHguZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAidW5kZWZpbmVkIik7CiAKIHZhciBjYW52YXNFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CiBzaG91bGRUaHJvdygiY3R4LmRy
YXdJbWFnZShjYW52YXNFbGVtZW50KSIsICJUeXBlRXJyb3JOb3RFbm91Z2hBcmd1bWVudHMiKTsK
QEAgLTI5LDUgKzI5LDUgQEAgc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoY2FudmFzRWxlbWVu
dCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91bGRUaHJvdygiY3R4LmRyYXdJ
bWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKIHNo
b3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNhbnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAs
IDApIiwgIlR5cGVFcnJvciIpOwogc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoY2FudmFzRWxl
bWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiJ0Vycm9yOiBJbmRleFNpemVFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxJyIpOwotc2hvdWxkVGhyb3coImN0eC5kcmF3SW1hZ2UoY2FudmFzRWxl
bWVudCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7Ci1zaG91bGRU
aHJvdygiY3R4LmRyYXdJbWFnZShjYW52YXNFbGVtZW50LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNhbnZh
c0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgIidFcnJvcjogSW5kZXhTaXpl
RXJyb3I6IERPTSBFeGNlcHRpb24gMSciKTsKK3Nob3VsZFRocm93KCJjdHguZHJhd0ltYWdlKGNh
bnZhc0VsZW1lbnQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgIidFcnJvcjogSW5k
ZXhTaXplRXJyb3I6IERPTSBFeGNlcHRpb24gMSciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRz
LXNldEZpbGxDb2xvci5qcwppbmRleCBkZmE2ZDBhMWFmY2FhMWIzMWNiMTU5YzA1MmNkODEwYWZl
MWVmZjk3Li5mMmY5MzcwOGQwZWI4NmMwNWU5N2MwNDgyN2NhOWY2MjRmNjUyYjVlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLW92ZXJsb2Fk
cy1zZXRGaWxsQ29sb3IuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRl
c3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0RmlsbENvbG9yLmpzCkBAIC0xMiw0ICsxMiw0IEBAIHNo
b3VsZEJlKCJjdHguc2V0RmlsbENvbG9yKDAsIDApIiwgInVuZGVmaW5lZCIpOwogc2hvdWxkVGhy
b3coImN0eC5zZXRGaWxsQ29sb3IoMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7CiBzaG91bGRCZSgi
Y3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZEJlKCJj
dHguc2V0RmlsbENvbG9yKDAsIDAsIDAsIDAsIDApIiwgInVuZGVmaW5lZCIpOwotc2hvdWxkVGhy
b3coImN0eC5zZXRGaWxsQ29sb3IoMCwgMCwgMCwgMCwgMCwgMCkiLCAiVHlwZUVycm9yIik7Citz
aG91bGRCZSgiY3R4LnNldEZpbGxDb2xvcigwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52
YXMtb3ZlcmxvYWRzLXNldFNoYWRvdy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Njcmlw
dC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFNoYWRvdy5qcwppbmRleCAyMTFiZmUwZTk2MDk4
NzY2ZGNiNTNjYWM3M2UzODFlNzRhYzExYjZlLi5hZjk1NjMxZTU0M2IzNWY4ZmMzODFiM2ZkN2Iw
ZTE4NGUyMTRiMzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQt
dGVzdHMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTaGFkb3cuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1vdmVybG9hZHMtc2V0U2hhZG93LmpzCkBAIC0x
OCw0ICsxOCw0IEBAIHNob3VsZEJlKCJjdHguc2V0U2hhZG93KDAsIDAsIDAsIDAsICdyZWQnLCAw
LCAwKSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZFRocm93KCJjdHguc2V0U2hhZG93KDAsIDAsIDAs
IDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOwogc2hvdWxkQmUoImN0eC5zZXRTaGFkb3coMCwgMCwg
MCwgMCwgMCwgMCwgMCkiLCAidW5kZWZpbmVkIik7CiBzaG91bGRCZSgiY3R4LnNldFNoYWRvdygw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKLXNob3VsZFRocm93KCJjdHgu
c2V0U2hhZG93KDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOworc2hv
dWxkQmUoImN0eC5zZXRTaGFkb3coMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiLCAidW5kZWZp
bmVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMv
Y2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9yLmpzCmluZGV4
IGNkMWJjMTRmZDYxMTc5NDFkNDQ1YTE3ZDI2MTkwMTI1Yjc5YzBhMDUuLjQ0YzQxMjQ3ZmY5ODhh
Y2UxMjlkZDgyOWFjM2NjMGM4NjhiMTEzNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRzLXNldFN0cm9rZUNvbG9yLmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtb3ZlcmxvYWRz
LXNldFN0cm9rZUNvbG9yLmpzCkBAIC0xMiw0ICsxMiw0IEBAIHNob3VsZEJlKCJjdHguc2V0U3Ry
b2tlQ29sb3IoMCwgMCkiLCAidW5kZWZpbmVkIik7CiBzaG91bGRUaHJvdygiY3R4LnNldFN0cm9r
ZUNvbG9yKDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOwogc2hvdWxkQmUoImN0eC5zZXRTdHJva2VD
b2xvcigwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZEJlKCJjdHguc2V0U3Ryb2tl
Q29sb3IoMCwgMCwgMCwgMCwgMCkiLCAidW5kZWZpbmVkIik7Ci1zaG91bGRUaHJvdygiY3R4LnNl
dFN0cm9rZUNvbG9yKDAsIDAsIDAsIDAsIDAsIDApIiwgIlR5cGVFcnJvciIpOworc2hvdWxkQmUo
ImN0eC5zZXRTdHJva2VDb2xvcigwLCAwLCAwLCAwLCAwLCAwKSIsICJ1bmRlZmluZWQiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9hZGQtZXhw
ZWN0ZWQudHh0CmluZGV4IDY5MDk0NWZlODNiYzc3NjE4ZTQ2MmYzYTQ3NWE3Yjc0NjFkZmJjNzMu
LjE0NDhhMGVhMGMxZmM1YjZiMDQwYWQyODRmMjA1NzZmM2U5ODEyNTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4
dApAQCAtMSw0MyArMSw1MiBAQAotVGVzdCBzZWxlY3QuYWRkKCkgd2l0aCBpbmRleCBwYXJhbWV0
ZXIKK1Rlc3QgdGhhdCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3b3JrcyB3aGVuIHBhc3Npbmcg
YW4gaW5kZXggb3IgYW4gSFRNTCBvcHRpb24gZWxlbWVudCBhcyBpdHMgc2Vjb25kIGFyZ3VtZW50
LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotbGlzdCBlbGVtZW50cyBhcmUgPSAw
LDEsMgotUEFTUyB0ZXN0QWRkMShjcmVhdGVPcHRpb24oIlkxIikpIGlzICIwLDEsMixZMSIKLVBB
U1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTIiCi1QQVNT
IHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTMiKSwgMCkgaXMgIlkzLDAsMSwyIgotUEFTUyB0ZXN0
QWRkMyhjcmVhdGVPcHRpb24oIlk0IiksIDEpIGlzICIwLFk0LDEsMiIKLVBBU1MgdGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZNSIpLCAyKSBpcyAiMCwxLFk1LDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0
ZU9wdGlvbigiWTYiKSwgMykgaXMgIjAsMSwyLFk2IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRp
b24oIlk3IiksIDEwMCkgaXMgIjAsMSwyLFk3IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24o
Ilk4IiksIC0xMDApIGlzICIwLDEsMixZOCIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZ
OSIpLCAiMCIpIGlzICJZOSwwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTAi
KSwgIjEiKSBpcyAiMCxZMTAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMSIp
LCAiMiIpIGlzICIwLDEsWTExLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTEyIiks
IHRydWUpIGlzICIwLFkxMiwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTEzIiks
IGZhbHNlKSBpcyAiWTEzLDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxNCIp
LCAyMTQ3NDgzNjQ3KSBpcyAiMCwxLDIsWTE0IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24o
IlkxNSIpLCAyMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE1IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVP
cHRpb24oIlkxNiIpLCAtMjE0NzQ4MzY0NykgaXMgIjAsMSwyLFkxNiIKLVBBU1MgdGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMTciKSwgLTIxNDc0ODM2NDgpIGlzICIwLDEsMixZMTciCi1QQVNTIHRl
c3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE4IiksIC0yMTQ3NDgzNjQ5KSBpcyAiMCwxLDIsWTE4Igot
UEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxOSIpLCBJbmZpbml0eSkgaXMgIlkxOSwwLDEs
MiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjAiKSwgLUluZmluaXR5KSBpcyAiWTIw
LDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMSIpLCAiZm9vIikgaXMgIlky
MSwwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjIiKSwgTmFOKSBpcyAiWTIy
LDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMyIpLCB1bmRlZmluZWQpIGlz
ICJZMjMsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTI0IiksIC0yKSBpcyAi
MCwxLDIsWTI0IgotUEFTUyB0ZXN0QWRkNChjcmVhdGVPcHRpb24oIlkyNSIpLCAwLCAxKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXN0QWRkNChjcmVhdGVP
cHRpb24oIlkyNSIpLCBteVNlbGVjdC5vcHRpb25zWzBdLCAxKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotbGlzdCBlbGVtZW50cyBhcmUgPSAwLDEsMgotUEFTUyBteVNl
bGVjdC5hZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIG15U2VsZWN0LmFkZCgiZm9vIiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KLVBBU1MgbXlTZWxlY3QuYWRkKHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbXlTZWxlY3QuYWRkKHVuZGVmaW5lZCwgMCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbXlTZWxlY3QuYWRkKG51
bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG15U2Vs
ZWN0LmFkZChudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFT
UyBteVNlbGVjdC5hZGQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KKworQ2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHplcm8gYXJndW1l
bnRzOgorUEFTUyB0ZXN0QWRkKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCisKK0NhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCBvbmUgYXJn
dW1lbnQ6CitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKSBpcyAiMCwxLDIsWTEiCitQ
QVNTIHRlc3RBZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIHRlc3RBZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCisKK0NhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0d28gYXJndW1l
bnRzOgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCkgaXMgIjAsMSwyLFky
IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTMiKSwgMCkgaXMgIlkzLDAsMSwyIgorUEFT
UyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTQiKSwgMSkgaXMgIjAsWTQsMSwyIgorUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTUiKSwgMikgaXMgIjAsMSxZNSwyIgorUEFTUyB0ZXN0QWRkKGNy
ZWF0ZU9wdGlvbigiWTYiKSwgMykgaXMgIjAsMSwyLFk2IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWTciKSwgMTAwKSBpcyAiMCwxLDIsWTciCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9u
KCJZOCIpLCAtMTAwKSBpcyAiMCwxLDIsWTgiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZ
OSIpLCAiMCIpIGlzICJZOSwwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMCIp
LCAiMSIpIGlzICIwLFkxMCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTEiKSwg
IjIiKSBpcyAiMCwxLFkxMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTEyIiksIHRy
dWUpIGlzICIwLFkxMiwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFs
c2UpIGlzICJZMTMsMCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTQiKSwgMjE0
NzQ4MzY0NykgaXMgIjAsMSwyLFkxNCIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNSIp
LCAyMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE1IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTE2IiksIC0yMTQ3NDgzNjQ3KSBpcyAiMCwxLDIsWTE2IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE3IgorUEFTUyB0ZXN0QWRkKGNy
ZWF0ZU9wdGlvbigiWTE4IiksIC0yMTQ3NDgzNjQ5KSBpcyAiMCwxLDIsWTE4IgorUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTE5IiksIEluZmluaXR5KSBpcyAiWTE5LDAsMSwyIgorUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIwIiksIC1JbmZpbml0eSkgaXMgIlkyMCwwLDEsMiIKK1BB
U1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMSIpLCAiZm9vIikgaXMgIlkyMSwwLDEsMiIKK1BB
U1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMiIpLCBOYU4pIGlzICJZMjIsMCwxLDIiCitQQVNT
IHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjMiKSwgdW5kZWZpbmVkKSBpcyAiWTIzLDAsMSwyIgor
UEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTI0IiksIC0yKSBpcyAiMCwxLDIsWTI0IgorUEFT
UyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzBdKSBpcyAiWCww
LDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1sx
XSkgaXMgIjAsWCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0
Lm9wdGlvbnNbMl0pIGlzICIwLDEsWCwyIgorUEFTUyB0ZXN0QWRkKCJmb28iLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZChu
dWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorCitDYWxsIEhU
TUxTZWxlY3RFbGVtZW50LmFkZCgpIHdpdGggdGhyZWUgYXJndW1lbnRzICh3aGVuIGl0IG9ubHkg
dGFrZXMgdHdvIGFyZ3VtZW50cyk6CitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIDAs
ICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIikgaXMgIlgs
MCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNb
MV0sICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIikgaXMg
IjAsWCwxLDIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2Fk
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLmh0bWwK
aW5kZXggM2ZiMjdhNGE5NGQ1ODBlZWI5MjU5NGE5OTA5MjUzYTc3NGY1MjI0My4uMmI0MzRlYTlm
OWFhM2JhZTExMTY4MTU4Y2IzZDRjMTRhZWNjOWFmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLmh0bWwKQEAgLTIsODcgKzIsNjUgQEAKIDxodG1s
PgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9odG1sLXNlbGVjdC1hbmQtb3B0aW9ucy1j
b2xsZWN0aW9uLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbignVGVzdCBzZWxlY3QuYWRkKCkgd2l0aCBpbmRleCBwYXJhbWV0ZXIn
KTsKLQkKLXZhciBteVNlbGVjdDsKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgSFRNTFNlbGVjdEVs
ZW1lbnQuYWRkKCkgd29ya3Mgd2hlbiBwYXNzaW5nIGFuIGluZGV4IG9yIGFuIEhUTUwgb3B0aW9u
IGVsZW1lbnQgYXMgaXRzIHNlY29uZCBhcmd1bWVudC4iKTsKIAotZnVuY3Rpb24gcmVzZXRTZWxl
Y3Rpb24oKSB7Ci0gICAgbXlTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3Qn
KTsKLSAgICBteVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIwIiwgIjAiLCBmYWxzZSwg
ZmFsc2UpKTsKLSAgICBteVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIxIiwgIjEiLCBm
YWxzZSwgZmFsc2UpKTsKLSAgICBteVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIyIiwg
IjIiLCBmYWxzZSwgZmFsc2UpKTsKLX0KK3ZhciBteVNlbGVjdCA9IGNyZWF0ZVNlbGVjdEVsZW1l
bnRXaXRoVGVzdERhdGEoKTsKIAotZnVuY3Rpb24gZGVlcENvcHkoKSB7Ci0gICAgdmFyIGNvcHkg
PSBbXTsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgbXlTZWxlY3Qub3B0aW9ucy5sZW5ndGg7ICsr
aSkKLSAgICAgICAgY29weS5wdXNoKG15U2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUpOwotICAgIHJl
dHVybiBjb3B5LmpvaW4oIiwiKTsKLX0KLQkKLWZ1bmN0aW9uIGNyZWF0ZU9wdGlvbih2YWx1ZSkg
ewotICAgIHJldHVybiBuZXcgT3B0aW9uKHZhbHVlICsgIlgiLCB2YWx1ZSwgZmFsc2UsIGZhbHNl
KTsKK2Z1bmN0aW9uIHRlc3RBZGQoKQoreworICAgIEhUTUxTZWxlY3RFbGVtZW50LnByb3RvdHlw
ZS5hZGQuYXBwbHkobXlTZWxlY3QsIGFyZ3VtZW50cyk7CisgICAgdmFyIHJlc3VsdCA9IGRlZXBD
b3B5KG15U2VsZWN0KTsKKyAgICBteVNlbGVjdCA9IGNyZWF0ZVNlbGVjdEVsZW1lbnRXaXRoVGVz
dERhdGEoKTsgLy8gUmVzZXQKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1mdW5jdGlvbiB0ZXN0
QWRkMShlbGVtZW50KSB7Ci0gICAgcmVzZXRTZWxlY3Rpb24oKTsKLSAgICBteVNlbGVjdC5hZGQo
ZWxlbWVudCk7Ci0gICAgcmV0dXJuIGRlZXBDb3B5KCk7Ci19CitkZWJ1ZygiPGJyPkNhbGwgSFRN
TFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB6ZXJvIGFyZ3VtZW50czoiKTsKK3Nob3VsZFRocm93
KCd0ZXN0QWRkKCknKTsKIAotZnVuY3Rpb24gdGVzdEFkZDMobmV3ZWxlbWVudCwgaW5kZXgpIHsK
LSAgICByZXNldFNlbGVjdGlvbigpOwotICAgIG15U2VsZWN0LmFkZChuZXdlbGVtZW50LCBpbmRl
eCk7Ci0gICAgcmV0dXJuIGRlZXBDb3B5KCk7Ci19CitkZWJ1ZygiPGJyPkNhbGwgSFRNTFNlbGVj
dEVsZW1lbnQuYWRkKCkgd2l0aCBvbmUgYXJndW1lbnQ6Iik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKScsICcwLDEsMixZMScpOworc2hvdWxkVGhy
b3coJ3Rlc3RBZGQoImZvbyIpJyk7CitzaG91bGRUaHJvdygndGVzdEFkZCh1bmRlZmluZWQpJyk7
CitzaG91bGRUaHJvdygndGVzdEFkZChudWxsKScpOwogCi1mdW5jdGlvbiB0ZXN0QWRkNChuZXdl
bGVtZW50LCBlbGVtZW50LCBpbmRleCkgewotICAgIHJlc2V0U2VsZWN0aW9uKCk7Ci0gICAgbXlT
ZWxlY3QuYWRkKG5ld2VsZW1lbnQsIGVsZW1lbnQsIGluZGV4KTsKLSAgICByZXR1cm4gZGVlcENv
cHkoKTsKLX0KK2RlYnVnKCI8YnI+Q2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHR3
byBhcmd1bWVudHM6Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMiIpLCBudWxsKScsICcwLDEsMixZMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTMiKSwgMCknLCAnWTMsMCwxLDInKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlk0IiksIDEpJywgJzAsWTQsMSwyJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZNSIpLCAyKScs
ICcwLDEsWTUsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTYiKSwgMyknLCAnMCwxLDIsWTYnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFk
ZChjcmVhdGVPcHRpb24oIlk3IiksIDEwMCknLCAnMCwxLDIsWTcnKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlk4IiksIC0xMDApJywgJzAsMSwyLFk4Jyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZOSIpLCAiMCIp
JywgJ1k5LDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMTAiKSwgIjEiKScsICcwLFkxMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMSIpLCAiMiIpJywgJzAsMSxZMTEsMicpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTEyIiksIHRydWUpJywgJzAs
WTEyLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTEzIiksIGZhbHNlKScsICdZMTMsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dEFkZChjcmVhdGVPcHRpb24oIlkxNCIpLCAyMTQ3NDgzNjQ3KScsICcwLDEsMixZMTQnKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxNSIpLCAyMTQ3NDgz
NjQ4KScsICcwLDEsMixZMTUnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVh
dGVPcHRpb24oIlkxNiIpLCAtMjE0NzQ4MzY0NyknLCAnMCwxLDIsWTE2Jyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTciKSwgLTIxNDc0ODM2NDgpJywg
JzAsMSwyLFkxNycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTE4IiksIC0yMTQ3NDgzNjQ5KScsICcwLDEsMixZMTgnKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxOSIpLCBJbmZpbml0eSknLCAnWTE5LDAsMSwy
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjAiKSwg
LUluZmluaXR5KScsICdZMjAsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFk
ZChjcmVhdGVPcHRpb24oIlkyMSIpLCAiZm9vIiknLCAnWTIxLDAsMSwyJyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjIiKSwgTmFOKScsICdZMjIsMCwx
LDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMyIp
LCB1bmRlZmluZWQpJywgJ1kyMywwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTI0IiksIC0yKScsJzAsMSwyLFkyNCcpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzBd
KScsICdYLDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pJywgJzAsWCwxLDInKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1sy
XSknLCAnMCwxLFgsMicpOworc2hvdWxkVGhyb3coJ3Rlc3RBZGQoImZvbyIsIDApJyk7CitzaG91
bGRUaHJvdygndGVzdEFkZCh1bmRlZmluZWQsIDApJyk7CitzaG91bGRUaHJvdygndGVzdEFkZChu
dWxsLCAwKScpOwogCi1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3QgZWxlbWVudHMgYXJl
ID0gJyArIGRlZXBDb3B5KCkpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMShjcmVh
dGVPcHRpb24oIlkxIikpJywgJzAsMSwyLFkxJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rl
c3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCknLCAnMCwxLDIsWTInKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMyIpLCAwKScsICdZMywwLDEs
MicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk0Iiks
IDEpJywgJzAsWTQsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0
ZU9wdGlvbigiWTUiKSwgMiknLCAnMCwxLFk1LDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNiIpLCAzKScsICcwLDEsMixZNicpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk3IiksIDEwMCknLCAnMCwxLDIs
WTcnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZOCIp
LCAtMTAwKScsICcwLDEsMixZOCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhj
cmVhdGVPcHRpb24oIlk5IiksICIwIiknLCAnWTksMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTAiKSwgIjEiKScsICcwLFkxMCwxLDInKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTEiKSwgIjIi
KScsICcwLDEsWTExLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRl
T3B0aW9uKCJZMTIiKSwgdHJ1ZSknLCAnMCxZMTIsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTEzIiksIGZhbHNlKScsICdZMTMsMCwxLDInKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTQiKSwgMjE0
NzQ4MzY0NyknLCAnMCwxLDIsWTE0Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQz
KGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0ODM2NDgpJywgJzAsMSwyLFkxNScpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxNiIpLCAtMjE0NzQ4MzY0
NyknLCAnMCwxLDIsWTE2Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0
ZU9wdGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KScsICcwLDEsMixZMTcnKTsKLXNob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTgiKSwgLTIxNDc0ODM2NDkpJywg
JzAsMSwyLFkxOCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRp
b24oIlkxOSIpLCBJbmZpbml0eSknLCAnWTE5LDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIwIiksIC1JbmZpbml0eSknLCAnWTIwLDAsMSwy
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIxIiks
ICJmb28iKScsICdZMjEsMCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMo
Y3JlYXRlT3B0aW9uKCJZMjIiKSwgTmFOKScsICdZMjIsMCwxLDInKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMjMiKSwgdW5kZWZpbmVkKScsICdZMjMs
MCwxLDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZ
MjQiKSwgLTIpJywnMCwxLDIsWTI0Jyk7Ci1zaG91bGRUaHJvdygndGVzdEFkZDQoY3JlYXRlT3B0
aW9uKCJZMjUiKSwgMCwgMSknKTsKLXNob3VsZFRocm93KCd0ZXN0QWRkNChjcmVhdGVPcHRpb24o
IlkyNSIpLCBteVNlbGVjdC5vcHRpb25zWzBdLCAxKScpOwotcmVzZXRTZWxlY3Rpb24oKTsKLWRl
YnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9ICcgKyBkZWVwQ29weSgpKTsKLXNob3VsZFRocm93KCdt
eVNlbGVjdC5hZGQoImZvbyIpJyk7Ci1zaG91bGRUaHJvdygnbXlTZWxlY3QuYWRkKCJmb28iLCAw
KScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0LmFkZCh1bmRlZmluZWQpJyk7Ci1zaG91bGRUaHJv
dygnbXlTZWxlY3QuYWRkKHVuZGVmaW5lZCwgMCknKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5h
ZGQobnVsbCwgMCknKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5hZGQobnVsbCknKTsKLXNob3Vs
ZFRocm93KCdteVNlbGVjdC5hZGQoKScpOwotCQorZGVidWcoIjxicj5DYWxsIEhUTUxTZWxlY3RF
bGVtZW50LmFkZCgpIHdpdGggdGhyZWUgYXJndW1lbnRzICh3aGVuIGl0IG9ubHkgdGFrZXMgdHdv
IGFyZ3VtZW50cyk6Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJYIiksIDAsICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNob3VsZCBiZSBpZ25v
cmVkIiknLCdYLDAsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRl
T3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0sICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1
bWVudCAtIHNob3VsZCBiZSBpZ25vcmVkIiknLCcwLFgsMSwyJyk7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RF
bGVtZW50L29wdGlvbnMtY29sbGVjdGlvbi1hZGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3Rl
ZC50eHQKaW5kZXggMDQ2MjVjODJmMGI1ZGRhMWY5MDI5MWZlNWViMzBjZTA5MDNkMTc3Mi4uOWM2
Yjg0NzcyYjM1M2Y2N2RlY2M5NDg4ZWVjMWY2ZjAzOTViYjZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQv
b3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQKQEAgLTMsNTUgKzMsNjMgQEAgVGVz
dCBzZWxlY3Qub3B0aW9ucy5hZGQoKSB3aXRoIG9wdGdyb3VwIGFuZCB3aXRoIGluZGV4IHBhcmFt
ZXRlcgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLWxpc3QgZWxlbWVudHMgYXJlID0g
MCwxLDIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlR3JvdXAoIlkxIiwgIlkyIiksIG51bGwpIGlzICIw
LDEsMixZMSxZMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlR3JvdXAoIlkzIiwgIlk0IiksIDApIGlz
ICJZMyxZNCwwLDEsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlR3JvdXAoIlk1IiwgIlk2IiksIDIp
IGlzICIwLDEsWTUsWTYsMiIKLVBBU1MgdGVzdEFkZDEoY3JlYXRlR3JvdXAoIlk3IiwgIlk4Iikp
IGlzICIwLDEsMixZNyxZOCIKLVBBU1MgdGVzdEFkZDEoY3JlYXRlT3B0aW9uKCJZOSIpKSBpcyAi
MCwxLDIsWTkiCi1saXN0IGVsZW1lbnRzIGFyZSA9IDAsMSwyCi1QQVNTIHRlc3RBZGQyKGNyZWF0
ZU9wdGlvbigiWTEwIiksIG15U2VsZWN0Lm9wdGlvbnNbMl0pIGlzICIwLDEsWTEwLDIiCi1QQVNT
IHRlc3RBZGQyKGNyZWF0ZU9wdGlvbigiWTExIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pIGlzICIw
LFkxMSwxLFkxMCwyIgotbGlzdCBlbGVtZW50cyBhcmUgPSAwLDEsMgotUEFTUyB0ZXN0QWRkMihj
cmVhdGVHcm91cCgiWTEyIiwgIlkxMyIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAiMCxZMTIs
WTEzLDEsMiIKLVBBU1MgdGVzdEFkZDIoY3JlYXRlR3JvdXAoIlkxNCIsICJZMTUiKSwgbXlTZWxl
Y3Qub3B0aW9uc1szXSkgaXMgIjAsWTEyLFkxMyxZMTQsWTE1LDEsMiIKLWxpc3QgZWxlbWVudHMg
YXJlID0gMCwxLDIKLVBBU1MgdGVzdEFkZDIoY3JlYXRlT3B0aW9uKCJZMTYiKSwgY3JlYXRlT3B0
aW9uKCJZMTciKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDguCi1saXN0IGVsZW1lbnRzIGFyZSA9IDAsMSwyCi1QQVNTIHRlc3RBZGQxKGNyZWF0
ZU9wdGlvbigiWTEiKSkgaXMgIjAsMSwyLFkxIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24o
IlkyIiksIG51bGwpIGlzICIwLDEsMixZMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZ
MyIpLCAwKSBpcyAiWTMsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTQiKSwg
MSkgaXMgIjAsWTQsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk1IiksIDIpIGlz
ICIwLDEsWTUsMiIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNiIpLCAzKSBpcyAiMCwx
LDIsWTYiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTciKSwgMTAwKSBpcyAiMCwxLDIs
WTciCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTgiKSwgLTEwMCkgaXMgIjAsMSwyLFk4
IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlk5IiksICIwIikgaXMgIlk5LDAsMSwyIgot
UEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMCIpLCAiMSIpIGlzICIwLFkxMCwxLDIiCi1Q
QVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTExIiksICIyIikgaXMgIjAsMSxZMTEsMiIKLVBB
U1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSkgaXMgIjAsWTEyLDEsMiIKLVBB
U1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFsc2UpIGlzICJZMTMsMCwxLDIiCi1Q
QVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE0IiksIDIxNDc0ODM2NDcpIGlzICIwLDEsMixZ
MTQiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0ODM2NDgpIGlzICIw
LDEsMixZMTUiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE2IiksIC0yMTQ3NDgzNjQ3
KSBpcyAiMCwxLDIsWTE2IgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxNyIpLCAtMjE0
NzQ4MzY0OCkgaXMgIjAsMSwyLFkxNyIKLVBBU1MgdGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTgi
KSwgLTIxNDc0ODM2NDkpIGlzICIwLDEsMixZMTgiCi1QQVNTIHRlc3RBZGQzKGNyZWF0ZU9wdGlv
bigiWTE5IiksIEluZmluaXR5KSBpcyAiWTE5LDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhjcmVhdGVP
cHRpb24oIlkyMCIpLCAtSW5maW5pdHkpIGlzICJZMjAsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNy
ZWF0ZU9wdGlvbigiWTIxIiksICJmb28iKSBpcyAiWTIxLDAsMSwyIgotUEFTUyB0ZXN0QWRkMyhj
cmVhdGVPcHRpb24oIlkyMiIpLCBOYU4pIGlzICJZMjIsMCwxLDIiCi1QQVNTIHRlc3RBZGQzKGNy
ZWF0ZU9wdGlvbigiWTIzIiksIHVuZGVmaW5lZCkgaXMgIlkyMywwLDEsMiIKLVBBU1MgdGVzdEFk
ZDMoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEsMixZMjQiCi1QQVNTIHRlc3RBZGQ0
KGNyZWF0ZU9wdGlvbigiWTI1IiksIDAsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIHRlc3RBZGQ0KGNyZWF0ZU9wdGlvbigiWTI1IiksIG15U2VsZWN0Lm9w
dGlvbnNbMF0sIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1saXN0
IGVsZW1lbnRzIGFyZSA9IDAsMSwyCi1QQVNTIG15U2VsZWN0Lm9wdGlvbnMuYWRkKCJmb28iKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBteVNlbGVjdC5vcHRp
b25zLmFkZCgiZm9vIiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
LVBBU1MgbXlTZWxlY3Qub3B0aW9ucy5hZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBteVNlbGVjdC5vcHRpb25zLmFkZCh1bmRlZmluZWQs
IDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG15U2VsZWN0
Lm9wdGlvbnMuYWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIG15U2VsZWN0Lm9wdGlvbnMuYWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG15U2VsZWN0Lm9wdGlvbnMuYWRkKCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCisKK0NhbGwgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggemVybyBhcmd1bWVudHM6CitQQVNTIHRlc3RBZGQoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KKworQ2FsbCBI
VE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkKCkgd2l0aCBvbmx5IG9uZSBhcmd1bWVudDoKK1BBU1Mg
dGVzdEFkZChjcmVhdGVPcHRpb24oIlk5IikpIGlzICIwLDEsMixZOSIKK1BBU1MgdGVzdEFkZCgi
Zm9vIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFk
ZCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IHRlc3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KKwor
Q2FsbCBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkKCkgd2l0aCB0d28gYXJndW1lbnRzOgorUEFT
UyB0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJZMSIsICJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTEsWTIi
CitQQVNTIHRlc3RBZGQoY3JlYXRlR3JvdXAoIlkzIiwgIlk0IiksIDApIGlzICJZMyxZNCwwLDEs
MiIKK1BBU1MgdGVzdEFkZChjcmVhdGVHcm91cCgiWTUiLCAiWTYiKSwgMikgaXMgIjAsMSxZNSxZ
NiwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJZNyIsICJZOCIpKSBpcyAiMCwxLDIsWTcs
WTgiCitQQVNTIHRlc3RBZGRXaXRob3V0UmVzZXR0aW5nTGlzdE9wdGlvbnMoY3JlYXRlT3B0aW9u
KCJZMTAiKSwgbXlTZWxlY3Qub3B0aW9uc1syXSkgaXMgIjAsMSxZMTAsMiIKK1BBU1MgdGVzdEFk
ZChjcmVhdGVPcHRpb24oIlkxMSIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAiMCxZMTEsMSxZ
MTAsMiIKK1BBU1MgdGVzdEFkZFdpdGhvdXRSZXNldHRpbmdMaXN0T3B0aW9ucyhjcmVhdGVHcm91
cCgiWTEyIiwgIlkxMyIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAiMCxZMTIsWTEzLDEsMiIK
K1BBU1MgdGVzdEFkZChjcmVhdGVHcm91cCgiWTE0IiwgIlkxNSIpLCBteVNlbGVjdC5vcHRpb25z
WzNdKSBpcyAiMCxZMTIsWTEzLFkxNCxZMTUsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTE2IiksIGNyZWF0ZU9wdGlvbigiWTE3IikpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTEiKSkgaXMgIjAsMSwyLFkxIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVs
bCkgaXMgIjAsMSwyLFkyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTMiKSwgMCkgaXMg
IlkzLDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTQiKSwgMSkgaXMgIjAsWTQs
MSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTUiKSwgMikgaXMgIjAsMSxZNSwyIgor
UEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTYiKSwgMykgaXMgIjAsMSwyLFk2IgorUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTciKSwgMTAwKSBpcyAiMCwxLDIsWTciCitQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJZOCIpLCAtMTAwKSBpcyAiMCwxLDIsWTgiCitQQVNTIHRlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZOSIpLCAiMCIpIGlzICJZOSwwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVh
dGVPcHRpb24oIlkxMCIpLCAiMSIpIGlzICIwLFkxMCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRl
T3B0aW9uKCJZMTEiKSwgIjIiKSBpcyAiMCwxLFkxMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWTEyIiksIHRydWUpIGlzICIwLFkxMiwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMTMiKSwgZmFsc2UpIGlzICJZMTMsMCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0
aW9uKCJZMTQiKSwgMjE0NzQ4MzY0NykgaXMgIjAsMSwyLFkxNCIKK1BBU1MgdGVzdEFkZChjcmVh
dGVPcHRpb24oIlkxNSIpLCAyMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE1IgorUEFTUyB0ZXN0QWRk
KGNyZWF0ZU9wdGlvbigiWTE2IiksIC0yMTQ3NDgzNjQ3KSBpcyAiMCwxLDIsWTE2IgorUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE3IiksIC0yMTQ3NDgzNjQ4KSBpcyAiMCwxLDIsWTE3Igor
UEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE4IiksIC0yMTQ3NDgzNjQ5KSBpcyAiMCwxLDIs
WTE4IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE5IiksIEluZmluaXR5KSBpcyAiWTE5
LDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIwIiksIC1JbmZpbml0eSkgaXMg
IlkyMCwwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMSIpLCAiZm9vIikgaXMg
IlkyMSwwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMiIpLCBOYU4pIGlzICJZ
MjIsMCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjMiKSwgdW5kZWZpbmVkKSBp
cyAiWTIzLDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTI0IiksIC0yKSBpcyAi
MCwxLDIsWTI0IgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRp
b25zWzBdKSBpcyAiWCwwLDEsMiIKK1BBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlT
ZWxlY3Qub3B0aW9uc1sxXSkgaXMgIjAsWCwxLDIiCitQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9u
KCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMl0pIGlzICIwLDEsWCwyIgorUEFTUyB0ZXN0QWRkNChj
cmVhdGVPcHRpb24oIlkyNSIpLCAwLCAxKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IHRlc3RBZGQ0LgorUEFTUyB0ZXN0QWRkNChjcmVhdGVPcHRp
b24oIlkyNSIpLCBteVNlbGVjdC5vcHRpb25zWzBdLCAxKSB0aHJldyBleGNlcHRpb24gUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHRlc3RBZGQ0LgorUEFTUyB0ZXN0QWRkKCJm
b28iLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0
QWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgdGVzdEFkZChudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorCitDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIHRocmVlIGFyZ3Vt
ZW50cyAod2hlbiBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMpOgorUEFTUyB0ZXN0QWRkKGNy
ZWF0ZU9wdGlvbigiWCIpLCAwLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91bGQg
YmUgaWdub3JlZCIpIGlzICJYLDAsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIp
LCBteVNlbGVjdC5vcHRpb25zWzFdLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91
bGQgYmUgaWdub3JlZCIpIGlzICIwLFgsMSwyIgorUEFTUyB0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJH
MSIsICJHMiIpLCAxLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91bGQgYmUgaWdu
b3JlZCIpIGlzICIwLEcxLEcyLDEsMiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNl
bGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC5odG1sCmluZGV4
IDFkYzQ4ZTE2ZjhiODZlOWU1NmYzZjY1YTdmN2FiNWUzNjNkMzQ2YzYuLjM4NzRkMTZhODllNWQ0
YWUzMTA3NzgxZjExZTI2ZGI5MmIxY2E1MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTZWxlY3RFbGVtZW50L29wdGlvbnMtY29sbGVjdGlvbi1hZGQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24t
YWRkLmh0bWwKQEAgLTIsMTE3ICsyLDg4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvaHRtbC1zZWxlY3QtYW5kLW9wdGlvbnMtY29sbGVjdGlvbi11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oJ1Rlc3Qg
c2VsZWN0Lm9wdGlvbnMuYWRkKCkgd2l0aCBvcHRncm91cCBhbmQgd2l0aCBpbmRleCBwYXJhbWV0
ZXInKTsKLQkKLXZhciBteVNlbGVjdDsKIAotZnVuY3Rpb24gcmVzZXRTZWxlY3Rpb24oKSB7Ci0g
ICAgbXlTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKLSAgICBteVNl
bGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIwIiwgIjAiLCBmYWxzZSwgZmFsc2UpKTsKLSAg
ICBteVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIxIiwgIjEiLCBmYWxzZSwgZmFsc2Up
KTsKLSAgICBteVNlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIyIiwgIjIiLCBmYWxzZSwg
ZmFsc2UpKTsKLX0KK3ZhciBteVNlbGVjdCA9IGNyZWF0ZVNlbGVjdEVsZW1lbnRXaXRoVGVzdERh
dGEoKTsKIAotZnVuY3Rpb24gZGVlcENvcHkoKSB7Ci0gICAgdmFyIGNvcHkgPSBbXTsKLSAgICBm
b3IodmFyIGkgPSAwOyBpIDwgbXlTZWxlY3Qub3B0aW9ucy5sZW5ndGg7ICsraSkKLSAgICAgICAg
Y29weS5wdXNoKG15U2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUpOwotICAgIHJldHVybiBjb3B5Lmpv
aW4oIiwiKTsKLX0KLQkKLWZ1bmN0aW9uIGNyZWF0ZU9wdGlvbih2YWx1ZSkgewotICAgIHJldHVy
biBuZXcgT3B0aW9uKHZhbHVlICsgIlgiLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKTsKK2Z1bmN0aW9u
IHRlc3RBZGQoKQoreworICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5wcm90b3R5cGUuYWRkLmFw
cGx5KG15U2VsZWN0Lm9wdGlvbnMsIGFyZ3VtZW50cyk7CisgICAgdmFyIHJlc3VsdCA9IGRlZXBD
b3B5KG15U2VsZWN0KTsKKyAgICBteVNlbGVjdCA9IGNyZWF0ZVNlbGVjdEVsZW1lbnRXaXRoVGVz
dERhdGEoKTsgLy8gUmVzZXQKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1mdW5jdGlvbiBjcmVh
dGVHcm91cCh2YWx1ZTEsIHZhbHVlMikgewotICAgIHZhciBncm91cCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ29wdGdyb3VwJyk7Ci0gICAgZ3JvdXAuYXBwZW5kQ2hpbGQobmV3IE9wdGlvbih2
YWx1ZTEgKyAiWCIsIHZhbHVlMSwgZmFsc2UsIGZhbHNlKSk7Ci0gICAgZ3JvdXAuYXBwZW5kQ2hp
bGQobmV3IE9wdGlvbih2YWx1ZTIgKyAiWSIsIHZhbHVlMiwgZmFsc2UsIGZhbHNlKSk7Ci0gICAg
cmV0dXJuIGdyb3VwOworZnVuY3Rpb24gdGVzdEFkZFdpdGhvdXRSZXNldHRpbmdMaXN0T3B0aW9u
cygpCit7CisgICAgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLnByb3RvdHlwZS5hZGQuYXBwbHkobXlT
ZWxlY3Qub3B0aW9ucywgYXJndW1lbnRzKTsKKyAgICByZXR1cm4gZGVlcENvcHkobXlTZWxlY3Qp
OwogfQogCi1mdW5jdGlvbiB0ZXN0QWRkMShlbGVtZW50KSB7Ci0gICAgcmVzZXRTZWxlY3Rpb24o
KTsKLSAgICBteVNlbGVjdC5vcHRpb25zLmFkZChlbGVtZW50KTsKLSAgICByZXR1cm4gZGVlcENv
cHkoKTsKLX0KK2RlYnVnKCI8YnI+Q2FsbCBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkKCkgd2l0
aCB6ZXJvIGFyZ3VtZW50czoiKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKCknKTsKIAotZnVuY3Rp
b24gdGVzdEFkZDIobmV3ZWxlbWVudCwgZWxlbWVudCkgewotICAgIG15U2VsZWN0Lm9wdGlvbnMu
YWRkKG5ld2VsZW1lbnQsIGVsZW1lbnQpOwotICAgIHJldHVybiBkZWVwQ29weSgpOwotfQorZGVi
dWcoIjxicj5DYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIG9ubHkgb25lIGFy
Z3VtZW50OiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTkiKSknLCAnMCwxLDIsWTknKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKCJmb28iKScpOworc2hv
dWxkVGhyb3coJ3Rlc3RBZGQodW5kZWZpbmVkKScpOworc2hvdWxkVGhyb3coJ3Rlc3RBZGQobnVs
bCknKTsKIAotZnVuY3Rpb24gdGVzdEFkZDMobmV3ZWxlbWVudCwgaW5kZXgpIHsKLSAgICByZXNl
dFNlbGVjdGlvbigpOwotICAgIG15U2VsZWN0Lm9wdGlvbnMuYWRkKG5ld2VsZW1lbnQsIGluZGV4
KTsKLSAgICByZXR1cm4gZGVlcENvcHkoKTsKLX0KK2RlYnVnKCI8YnI+Q2FsbCBIVE1MT3B0aW9u
c0NvbGxlY3Rpb24uYWRkKCkgd2l0aCB0d28gYXJndW1lbnRzOiIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJZMSIsICJZMiIpLCBudWxsKScsICcwLDEsMixZ
MSxZMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJZMyIs
ICJZNCIpLCAwKScsICdZMyxZNCwwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkKGNyZWF0ZUdyb3VwKCJZNSIsICJZNiIpLCAyKScsICcwLDEsWTUsWTYsMicpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZUdyb3VwKCJZNyIsICJZOCIpKScsICcwLDEs
MixZNyxZOCcpOwogCi1mdW5jdGlvbiB0ZXN0QWRkNChuZXdlbGVtZW50LCBlbGVtZW50LCBpbmRl
eCkgewotICAgIHJlc2V0U2VsZWN0aW9uKCk7Ci0gICAgbXlTZWxlY3Qub3B0aW9ucy5hZGQobmV3
ZWxlbWVudCwgZWxlbWVudCwgaW5kZXgpOwotICAgIHJldHVybiBkZWVwQ29weSgpOwotfQorc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkV2l0aG91dFJlc2V0dGluZ0xpc3RPcHRpb25zKGNy
ZWF0ZU9wdGlvbigiWTEwIiksIG15U2VsZWN0Lm9wdGlvbnNbMl0pJywgJzAsMSxZMTAsMicpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTExIiksIG15U2Vs
ZWN0Lm9wdGlvbnNbMV0pJywgJzAsWTExLDEsWTEwLDInKTsKKworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0ZXN0QWRkV2l0aG91dFJlc2V0dGluZ0xpc3RPcHRpb25zKGNyZWF0ZUdyb3VwKCJZMTIi
LCAiWTEzIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pJywgJzAsWTEyLFkxMywxLDInKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVHcm91cCgiWTE0IiwgIlkxNSIpLCBteVNl
bGVjdC5vcHRpb25zWzNdKScsICcwLFkxMixZMTMsWTE0LFkxNSwxLDInKTsKIAotcmVzZXRTZWxl
Y3Rpb24oKTsKLWRlYnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9ICcgKyBkZWVwQ29weSgpKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlR3JvdXAoIlkxIiwgIlkyIiksIG51
bGwpJywgJzAsMSwyLFkxLFkyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNy
ZWF0ZUdyb3VwKCJZMyIsICJZNCIpLCAwKScsICdZMyxZNCwwLDEsMicpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVHcm91cCgiWTUiLCAiWTYiKSwgMiknLCAnMCwxLFk1
LFk2LDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDEoY3JlYXRlR3JvdXAoIlk3
IiwgIlk4IikpJywgJzAsMSwyLFk3LFk4Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RB
ZGQxKGNyZWF0ZU9wdGlvbigiWTkiKSknLCAnMCwxLDIsWTknKTsKLXJlc2V0U2VsZWN0aW9uKCk7
Ci1kZWJ1ZygnbGlzdCBlbGVtZW50cyBhcmUgPSAnICsgZGVlcENvcHkoKSk7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3RBZGQyKGNyZWF0ZU9wdGlvbigiWTEwIiksIG15U2VsZWN0Lm9wdGlv
bnNbMl0pJywgJzAsMSxZMTAsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMihj
cmVhdGVPcHRpb24oIlkxMSIpLCBteVNlbGVjdC5vcHRpb25zWzFdKScsICcwLFkxMSwxLFkxMCwy
Jyk7Ci1yZXNldFNlbGVjdGlvbigpOwotZGVidWcoJ2xpc3QgZWxlbWVudHMgYXJlID0gJyArIGRl
ZXBDb3B5KCkpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMihjcmVhdGVHcm91cCgi
WTEyIiwgIlkxMyIpLCBteVNlbGVjdC5vcHRpb25zWzFdKScsICcwLFkxMixZMTMsMSwyJyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQyKGNyZWF0ZUdyb3VwKCJZMTQiLCAiWTE1Iiks
IG15U2VsZWN0Lm9wdGlvbnNbM10pJywgJzAsWTEyLFkxMyxZMTQsWTE1LDEsMicpOwotcmVzZXRT
ZWxlY3Rpb24oKTsKLWRlYnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9ICcgKyBkZWVwQ29weSgpKTsK
LXNob3VsZFRocm93KCd0ZXN0QWRkMihjcmVhdGVPcHRpb24oIlkxNiIpLCBjcmVhdGVPcHRpb24o
IlkxNyIpKScpOwotcmVzZXRTZWxlY3Rpb24oKTsKLWRlYnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9
ICcgKyBkZWVwQ29weSgpKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDEoY3JlYXRl
T3B0aW9uKCJZMSIpKScsICcwLDEsMixZMScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0
QWRkMyhjcmVhdGVPcHRpb24oIlkyIiksIG51bGwpJywgJzAsMSwyLFkyJyk7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTMiKSwgMCknLCAnWTMsMCwxLDIn
KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNCIpLCAx
KScsICcwLFk0LDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVP
cHRpb24oIlk1IiksIDIpJywgJzAsMSxZNSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rl
c3RBZGQzKGNyZWF0ZU9wdGlvbigiWTYiKSwgMyknLCAnMCwxLDIsWTYnKTsKLXNob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZNyIpLCAxMDApJywgJzAsMSwyLFk3
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTgiKSwg
LTEwMCknLCAnMCwxLDIsWTgnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3Jl
YXRlT3B0aW9uKCJZOSIpLCAiMCIpJywgJ1k5LDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTEwIiksICIxIiknLCAnMCxZMTAsMSwyJyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTExIiksICIyIikn
LCAnMCwxLFkxMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9w
dGlvbigiWTEyIiksIHRydWUpJywgJzAsWTEyLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkxMyIpLCBmYWxzZSknLCAnWTEzLDAsMSwyJyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE0IiksIDIxNDc0
ODM2NDcpJywgJzAsMSwyLFkxNCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhj
cmVhdGVPcHRpb24oIlkxNSIpLCAyMTQ3NDgzNjQ4KScsICcwLDEsMixZMTUnKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9uKCJZMTYiKSwgLTIxNDc0ODM2NDcp
JywgJzAsMSwyLFkxNicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVP
cHRpb24oIlkxNyIpLCAtMjE0NzQ4MzY0OCknLCAnMCwxLDIsWTE3Jyk7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTE4IiksIC0yMTQ3NDgzNjQ5KScsICcw
LDEsMixZMTgnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZDMoY3JlYXRlT3B0aW9u
KCJZMTkiKSwgSW5maW5pdHkpJywgJ1kxOSwwLDEsMicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMCIpLCAtSW5maW5pdHkpJywgJ1kyMCwwLDEsMicp
Owotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkMyhjcmVhdGVPcHRpb24oIlkyMSIpLCAi
Zm9vIiknLCAnWTIxLDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNy
ZWF0ZU9wdGlvbigiWTIyIiksIE5hTiknLCAnWTIyLDAsMSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTIzIiksIHVuZGVmaW5lZCknLCAnWTIzLDAs
MSwyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQzKGNyZWF0ZU9wdGlvbigiWTI0
IiksIC0yKScsJzAsMSwyLFkyNCcpOworc2hvdWxkVGhyb3coJ3Rlc3RBZGQoY3JlYXRlT3B0aW9u
KCJZMTYiKSwgY3JlYXRlT3B0aW9uKCJZMTciKSknKTsKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTEiKSknLCAnMCwxLDIsWTEnKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkyIiksIG51bGwpJywgJzAsMSwyLFky
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMyIpLCAw
KScsICdZMywwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWTQiKSwgMSknLCAnMCxZNCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dEFkZChjcmVhdGVPcHRpb24oIlk1IiksIDIpJywgJzAsMSxZNSwyJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZNiIpLCAzKScsICcwLDEsMixZNicpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTciKSwgMTAwKScs
ICcwLDEsMixZNycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWTgiKSwgLTEwMCknLCAnMCwxLDIsWTgnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dEFkZChjcmVhdGVPcHRpb24oIlk5IiksICIwIiknLCAnWTksMCwxLDInKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlkxMCIpLCAiMSIpJywgJzAsWTEwLDEs
MicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTExIiks
ICIyIiknLCAnMCwxLFkxMSwyJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3Jl
YXRlT3B0aW9uKCJZMTIiKSwgdHJ1ZSknLCAnMCxZMTIsMSwyJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTMiKSwgZmFsc2UpJywgJ1kxMywwLDEsMicp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE0IiksIDIx
NDc0ODM2NDcpJywgJzAsMSwyLFkxNCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRk
KGNyZWF0ZU9wdGlvbigiWTE1IiksIDIxNDc0ODM2NDgpJywgJzAsMSwyLFkxNScpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTE2IiksIC0yMTQ3NDgzNjQ3
KScsICcwLDEsMixZMTYnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVP
cHRpb24oIlkxNyIpLCAtMjE0NzQ4MzY0OCknLCAnMCwxLDIsWTE3Jyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMTgiKSwgLTIxNDc0ODM2NDkpJywgJzAs
MSwyLFkxOCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigi
WTE5IiksIEluZmluaXR5KScsICdZMTksMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
dGVzdEFkZChjcmVhdGVPcHRpb24oIlkyMCIpLCAtSW5maW5pdHkpJywgJ1kyMCwwLDEsMicpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIxIiksICJmb28i
KScsICdZMjEsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVP
cHRpb24oIlkyMiIpLCBOYU4pJywgJ1kyMiwwLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTIzIiksIHVuZGVmaW5lZCknLCAnWTIzLDAsMSwyJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIp
JywnMCwxLDIsWTI0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RBZGQoY3JlYXRlT3B0
aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pJywgJ1gsMCwxLDInKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1sx
XSknLCAnMCxYLDEsMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzJdKScsICcwLDEsWCwyJyk7CiBzaG91bGRUaHJv
dygndGVzdEFkZDQoY3JlYXRlT3B0aW9uKCJZMjUiKSwgMCwgMSknKTsKIHNob3VsZFRocm93KCd0
ZXN0QWRkNChjcmVhdGVPcHRpb24oIlkyNSIpLCBteVNlbGVjdC5vcHRpb25zWzBdLCAxKScpOwot
cmVzZXRTZWxlY3Rpb24oKTsKLWRlYnVnKCdsaXN0IGVsZW1lbnRzIGFyZSA9ICcgKyBkZWVwQ29w
eSgpKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5vcHRpb25zLmFkZCgiZm9vIiknKTsKLXNob3Vs
ZFRocm93KCdteVNlbGVjdC5vcHRpb25zLmFkZCgiZm9vIiwgMCknKTsKLXNob3VsZFRocm93KCdt
eVNlbGVjdC5vcHRpb25zLmFkZCh1bmRlZmluZWQpJyk7Ci1zaG91bGRUaHJvdygnbXlTZWxlY3Qu
b3B0aW9ucy5hZGQodW5kZWZpbmVkLCAwKScpOwotc2hvdWxkVGhyb3coJ215U2VsZWN0Lm9wdGlv
bnMuYWRkKG51bGwsIDApJyk7Ci1zaG91bGRUaHJvdygnbXlTZWxlY3Qub3B0aW9ucy5hZGQobnVs
bCknKTsKLXNob3VsZFRocm93KCdteVNlbGVjdC5vcHRpb25zLmFkZCgpJyk7Ci0JCitzaG91bGRU
aHJvdygndGVzdEFkZCgiZm9vIiwgMCknKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKHVuZGVmaW5l
ZCwgMCknKTsKK3Nob3VsZFRocm93KCd0ZXN0QWRkKG51bGwsIDApJyk7CisKK2RlYnVnKCI8YnI+
Q2FsbCBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkKCkgd2l0aCB0aHJlZSBhcmd1bWVudHMgKHdo
ZW4gaXQgb25seSB0YWtlcyB0d28gYXJndW1lbnRzKToiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgMCwgInVubmVjZXNzYXJ5IGV4dHJhIGFyZ3Vt
ZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKScsJ1gsMCwxLDInKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygndGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1sxXSwgInVu
bmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKScsJzAsWCwxLDIn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdEFkZChjcmVhdGVHcm91cCgiRzEiLCAiRzIi
KSwgMSwgInVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGlnbm9yZWQiKScs
JzAsRzEsRzIsMSwyJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3Jlc291cmNlcy9odG1sLXNl
bGVjdC1hbmQtb3B0aW9ucy1jb2xsZWN0aW9uLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3Jlc291cmNlcy9odG1sLXNlbGVjdC1hbmQtb3B0aW9u
cy1jb2xsZWN0aW9uLXV0aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzI3ZDBjZDI0MDVjYTU4YTdi
ZmM4MWI5YzEyMTYyZmFiZGE3YjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvcmVzb3VyY2VzL2h0bWwtc2VsZWN0LWFuZC1vcHRpb25z
LWNvbGxlY3Rpb24tdXRpbGl0aWVzLmpzCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGNyZWF0
ZVNlbGVjdEVsZW1lbnRXaXRoVGVzdERhdGEoKSB7CisgICAgdmFyIGV4YW1wbGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKKyAgICBleGFtcGxlLmFwcGVuZENoaWxkKG5ldyBP
cHRpb24oIjAiLCAiMCIsIGZhbHNlLCBmYWxzZSkpOworICAgIGV4YW1wbGUuYXBwZW5kQ2hpbGQo
bmV3IE9wdGlvbigiMSIsICIxIiwgZmFsc2UsIGZhbHNlKSk7CisgICAgZXhhbXBsZS5hcHBlbmRD
aGlsZChuZXcgT3B0aW9uKCIyIiwgIjIiLCBmYWxzZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gZXhh
bXBsZTsKK30KKworZnVuY3Rpb24gZGVlcENvcHkoc2VsZWN0RWxlbWVudCkgeworICAgIHZhciBj
b3B5ID0gW107CisgICAgZm9yKHZhciBpID0gMDsgaSA8IHNlbGVjdEVsZW1lbnQub3B0aW9ucy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgY29weS5wdXNoKHNlbGVjdEVsZW1lbnQub3B0aW9uc1tpXS52
YWx1ZSk7CisgICAgcmV0dXJuIGNvcHkuam9pbigiLCIpOworfQorCitmdW5jdGlvbiBjcmVhdGVP
cHRpb24odmFsdWUpIHsKKyAgICByZXR1cm4gbmV3IE9wdGlvbih2YWx1ZSArICJYIiwgdmFsdWUs
IGZhbHNlLCBmYWxzZSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUdyb3VwKHZhbHVlMSwgdmFsdWUy
KSB7CisgICAgdmFyIGdyb3VwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0Z3JvdXAiKTsK
KyAgICBncm91cC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKHZhbHVlMSArICJYIiwgdmFsdWUxLCBm
YWxzZSwgZmFsc2UpKTsKKyAgICBncm91cC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKHZhbHVlMiAr
ICJZIiwgdmFsdWUyLCBmYWxzZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gZ3JvdXA7Cit9Cg==
</data>
<flag name="review"
          id="281140"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>