<?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>44883</bug_id>
          
          <creation_ts>2010-08-30 12:11:50 -0700</creation_ts>
          <short_desc>&lt;input&gt; maxLength is clamped to 524288</short_desc>
          <delta_ts>2025-01-14 19:58:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=154906</see_also>
          <bug_file_loc>http://aryeh.name/tests/reflection.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>14388</dependson>
    
    <dependson>14536</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aryeh Gregor">ayg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>akeerthi</cc>
    
    <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fry.kun</cc>
    
    <cc>karlcow</cc>
    
    <cc>mike</cc>
    
    <cc>mounir</cc>
    
    <cc>tabatkins</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xqb748</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271551</commentid>
    <comment_count>0</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2010-08-30 12:11:50 -0700</bug_when>
    <thetext>Test case:

&lt;!doctype html&gt;
&lt;script&gt;
    var el = document.createElement(&quot;input&quot;);
    var out = el.maxLength;
    el.setAttribute(&quot;maxlength&quot;, &quot;0&quot;);
    out += &quot; &quot; + el.maxLength;
    el.setAttribute(&quot;maxlength&quot;, &quot;1000000&quot;);
    out += &quot; &quot; + el.maxLength;
    alert(out);
&lt;/script&gt;

Recentish Firefox nightly and Opera 10.60 alert &quot;-1 0 1000000&quot;, per spec.  Chrome dev on Linux and Safari 5 on XP alert &quot;524288 524288 524288&quot;.  IE8 alerts &quot;2147483647 0 1000000&quot;.  The spec says that this is a long limited to only non-negative numbers, which is defined as follows:

&quot;&quot;&quot;
If a reflecting IDL attribute is a signed integer type (long) that is limited to only non-negative numbers then, on getting, the content attribute must be parsed according to the rules for parsing non-negative integers, and if that is successful, and the value is in the range of the IDL attribute&apos;s type, the resulting value must be returned. If, on the other hand, it fails or returns an out of range value, or if the attribute is absent, the default value must be returned instead, or −1 if there is no default value. On setting, if the value is negative, the user agent must fire an INDEX_SIZE_ERR exception. Otherwise, the given value must be converted to the shortest possible string representing the number as a valid non-negative integer and then that string must be used as the new content attribute value.
&quot;&quot;&quot;
http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#reflecting-content-attributes-in-idl-attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415303</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-03 17:04:59 -0700</bug_when>
    <thetext>FWIW, we clamp actual maximum length in TextFieldInputType::sanitizeValue(), too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474544</commentid>
    <comment_count>2</comment_count>
      <attachid>108972</attachid>
    <who name="Antaryami Pandia">xqb748</who>
    <bug_when>2011-09-27 23:52:50 -0700</bug_when>
    <thetext>Created attachment 108972
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474600</commentid>
    <comment_count>3</comment_count>
      <attachid>108972</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-28 01:39:30 -0700</bug_when>
    <thetext>Comment on attachment 108972
Proposed Patch

Attachment 108972 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9877622

New failing tests:
fast/forms/input-maxlength.html
fast/forms/input-text-paste-maxlength.html
fast/forms/paste-multiline-text-input.html
fast/forms/input-implicit-length-limit.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474633</commentid>
    <comment_count>4</comment_count>
      <attachid>108972</attachid>
    <who name="Antaryami Pandia">xqb748</who>
    <bug_when>2011-09-28 03:06:46 -0700</bug_when>
    <thetext>Comment on attachment 108972
Proposed Patch

Canceling the review since some test cases are failing.Will upload a modified patch after resolving the conflicts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475913</commentid>
    <comment_count>5</comment_count>
      <attachid>109255</attachid>
    <who name="Antaryami Pandia">xqb748</who>
    <bug_when>2011-09-29 22:56:12 -0700</bug_when>
    <thetext>Created attachment 109255
Patch

Modified Patch.Not setting the r? flag now, would prefer to see it passes tests for all ports first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476658</commentid>
    <comment_count>6</comment_count>
      <attachid>109255</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-02 03:03:56 -0700</bug_when>
    <thetext>Comment on attachment 109255
Patch

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

What&apos;s the purpose of this patch? Do you want to remove the internal hard limit, 524288, or want not to expose the internal hard limit via HTMLInputELement::maxLength?


&gt; Source/WebCore/html/TextFieldInputType.cpp:304
&gt; -    return limitLength(proposedValue.removeCharacters(isASCIILineBreak), HTMLInputElement::maximumLength);
&gt; +    return limitLength(proposedValue.removeCharacters(isASCIILineBreak), element()-&gt;maxLength());

No, this is wrong. We should not clamp the value by maxLength() here.

&gt; LayoutTests/fast/forms/input-appearance-maxlength.html:18
&gt; -if (input.value != &quot;12345&quot;) {
&gt; +if (input.value == &quot;12345&quot;) {
&gt;      testPassed(&apos;Maxlength shouldn\&apos;t work for default value.\n&apos;);

This is wrong. We must not change this.

&gt; LayoutTests/fast/forms/input-text-maxlength.html:20
&gt; -&lt;input type=&quot;text&quot; size=&quot;5&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; maxlength=&quot;4&quot; id=&quot;input7&quot;&gt;
&gt; -&lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; id=&quot;input8&quot;&gt;
&gt; -&lt;input type=&quot;text&quot; id=&quot;j&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;123&quot;&gt;
&gt; -&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;123&quot;&gt;
&gt; +&lt;input type=&quot;text&quot; size=&quot;5&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; maxlength=&quot;10&quot; id=&quot;input7&quot;&gt;
&gt; +&lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; id=&quot;input8&quot;&gt;
&gt; +&lt;input type=&quot;text&quot; id=&quot;j&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;123&quot;&gt;
&gt; +&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;123&quot;&gt;

We should not change this.

&gt; LayoutTests/fast/forms/input-text-maxlength.html:38
&gt; -shouldBe(&apos;domValueOf(&quot;input1&quot;)&apos;, &apos;&quot;12345&quot;&apos;);
&gt; +shouldBe(&apos;domValueOf(&quot;input1&quot;)&apos;, &apos;&quot;1234&quot;&apos;);

We should not change this file.

&gt; LayoutTests/fast/forms/input-text-paste-maxlength.html:17
&gt; -&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;4&quot;&gt;
&gt; +&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;20&quot;&gt;

We should not change this file.

&gt; LayoutTests/fast/forms/script-tests/ValidityState-tooLong-input.js:13
&gt; -shouldBe(&apos;input.value.length&apos;, &apos;5&apos;);
&gt; +shouldBe(&apos;input.value.length&apos;, &apos;3&apos;);

We should not change this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476760</commentid>
    <comment_count>7</comment_count>
    <who name="Antaryami Pandia">xqb748</who>
    <bug_when>2011-10-02 21:35:06 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #6)
&gt; (From update of attachment 109255 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109255&amp;action=review
&gt; 
&gt; What&apos;s the purpose of this patch? Do you want to remove the internal hard limit, 524288, or want not to expose the internal hard limit via HTMLInputELement::maxLength?
&gt; 

Do you want to remove the internal hard limit, 524288 ... yes.
&gt; 
&gt; &gt; Source/WebCore/html/TextFieldInputType.cpp:304
&gt; &gt; -    return limitLength(proposedValue.removeCharacters(isASCIILineBreak), HTMLInputElement::maximumLength);
&gt; &gt; +    return limitLength(proposedValue.removeCharacters(isASCIILineBreak), element()-&gt;maxLength());
&gt; 
&gt; No, this is wrong. We should not clamp the value by maxLength() here.
&gt; 
This was required if the maxlength is set with a value which is greater than the current limit 524288.

&gt; &gt; LayoutTests/fast/forms/input-appearance-maxlength.html:18
&gt; &gt; -if (input.value != &quot;12345&quot;) {
&gt; &gt; +if (input.value == &quot;12345&quot;) {
&gt; &gt;      testPassed(&apos;Maxlength shouldn\&apos;t work for default value.\n&apos;);
&gt; 
&gt; This is wrong. We must not change this.

Ok.I will try to find a better way.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-text-maxlength.html:20
&gt; &gt; -&lt;input type=&quot;text&quot; size=&quot;5&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; maxlength=&quot;4&quot; id=&quot;input7&quot;&gt;
&gt; &gt; -&lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; id=&quot;input8&quot;&gt;
&gt; &gt; -&lt;input type=&quot;text&quot; id=&quot;j&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;123&quot;&gt;
&gt; &gt; -&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;4&quot; value=&quot;123&quot;&gt;
&gt; &gt; +&lt;input type=&quot;text&quot; size=&quot;5&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; maxlength=&quot;10&quot; id=&quot;input7&quot;&gt;
&gt; &gt; +&lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;12x&amp;#x305;&amp;#x332;45&quot; id=&quot;input8&quot;&gt;
&gt; &gt; +&lt;input type=&quot;text&quot; id=&quot;j&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;123&quot;&gt;
&gt; &gt; +&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;10&quot; value=&quot;123&quot;&gt;
&gt; 
&gt; We should not change this.

Ok.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-text-maxlength.html:38
&gt; &gt; -shouldBe(&apos;domValueOf(&quot;input1&quot;)&apos;, &apos;&quot;12345&quot;&apos;);
&gt; &gt; +shouldBe(&apos;domValueOf(&quot;input1&quot;)&apos;, &apos;&quot;1234&quot;&apos;);
&gt; 
&gt; We should not change this file.

ok.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-text-paste-maxlength.html:17
&gt; &gt; -&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;4&quot;&gt;
&gt; &gt; +&lt;input type=&quot;text&quot; id=&quot;i&quot; size=&quot;5&quot; maxlength=&quot;20&quot;&gt;
&gt; 
&gt; We should not change this file.

ok.
&gt; 
&gt; &gt; LayoutTests/fast/forms/script-tests/ValidityState-tooLong-input.js:13
&gt; &gt; -shouldBe(&apos;input.value.length&apos;, &apos;5&apos;);
&gt; &gt; +shouldBe(&apos;input.value.length&apos;, &apos;3&apos;);
&gt; 
&gt; We should not change this file.

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476763</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-02 21:53:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Thanks for the review.
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 109255 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109255&amp;action=review
&gt; &gt; 
&gt; &gt; What&apos;s the purpose of this patch? Do you want to remove the internal hard limit, 524288, or want not to expose the internal hard limit via HTMLInputELement::maxLength?
&gt; &gt; 
&gt; 
&gt; Do you want to remove the internal hard limit, 524288 ... yes.

524,288 was introduced in http://bugs.webkit.org/show_bug.cgi?id=14388
(It seems the URL in the HTMLInputElmenet.cpp is wrong.)
Would you explain a reason we can remove the hard limit please? Did you confirmed it was not needed anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476768</commentid>
    <comment_count>9</comment_count>
    <who name="Antaryami Pandia">xqb748</who>
    <bug_when>2011-10-02 22:15:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Thanks for the review.
&gt; &gt; 
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 109255 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109255&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; What&apos;s the purpose of this patch? Do you want to remove the internal hard limit, 524288, or want not to expose the internal hard limit via HTMLInputELement::maxLength?
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Do you want to remove the internal hard limit, 524288 ... yes.
&gt; 
&gt; 524,288 was introduced in http://bugs.webkit.org/show_bug.cgi?id=14388
&gt; (It seems the URL in the HTMLInputElmenet.cpp is wrong.)
&gt; Would you explain a reason we can remove the hard limit please? Did you confirmed it was not needed anymore?

I think firefox and IE don&apos;t have this limit.
May be Adam Roben can provide some thought whether we still need this restriction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476982</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-03 08:18:06 -0700</bug_when>
    <thetext>The URL in the comment is:

https://bugs.webkit.org/show_bugs.cgi?id=14536

but should have been:

https://bugs.webkit.org/show_bug.cgi?id=14536

As that bug explains, there was a performance issue with text fields that contained very long strings. Supposedly that issue has been fixed, so we should retest and adjust the limit as appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117135</commentid>
    <comment_count>11</comment_count>
    <who name="Konstantin Svist">fry.kun</who>
    <bug_when>2015-08-12 18:41:18 -0700</bug_when>
    <thetext>Just hit this bug on my internal website -- trying to submit a text value that&apos;s 900k long....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876857</commentid>
    <comment_count>12</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-06-20 16:07:24 -0700</bug_when>
    <thetext>I turned the test case from Comment 01 in JS Fiddle below:

https://jsfiddle.net/qcaxmpy5/show

I am unable to reproduce this bug in Safari 15.5 on macOS 12.4 and all browsers (Chrome Canary 105 and Firefox Nightly 103) including Safari shows same expected output of:

-1 0 1000000

I think this got fixed along the line and it can be marked as &quot;RESOLVED CONFIGURATION CHANGED&quot;. Thanks!

Further, using Wayback Archive, I was able to retrieve old test cases (of URL) and change into following JSFiddle:

https://jsfiddle.net/pzkj8xbf/show

It shows some failures but those could be due to spec changes since 2010 onward since no other browser achieve 100% pass rate.

Safari 15.5 - Passed: 17447 ( 96.8 %). Failed: 584
Firefox Nightly 103 -  Passed: 17302 ( 96.6 %). Failed: 617
Chrome Canary 105 - Passed: 17435 ( 96.7 %). Failed: 596

Just sharing it for keep sake. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877195</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-06-21 20:07:37 -0700</bug_when>
    <thetext>There is some subtlety here, and I&apos;m not sure if this can be called fully fixed.

In bug 154906, we made the property return -1, but kept 524288 as a maximum input value length internally for performance reasons. Adding more than as many characters silently clamps the value.


Chrome and Firefox don&apos;t have such a hidden limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877196</commentid>
    <comment_count>14</comment_count>
      <attachid>460403</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-06-21 20:07:58 -0700</bug_when>
    <thetext>Created attachment 460403
test for actual value length</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2087302</commentid>
    <comment_count>15</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2025-01-14 19:58:11 -0800</bug_when>
    <thetext>https://searchfox.org/wubkat/rev/19fb3bc3aa27a28183dbc388d1ba5df1cbb2feb6/Source/WebCore/html/TextFieldInputType.cpp#631
```cpp
unsigned maxLength = isTextType() ? element()-&gt;effectiveMaxLength() : HTMLInputElement::maxEffectiveLength;
```

https://searchfox.org/wubkat/rev/19fb3bc3aa27a28183dbc388d1ba5df1cbb2feb6/Source/WebCore/html/HTMLInputElement.cpp#1522-1526
```cpp
unsigned HTMLInputElement::effectiveMaxLength() const
{
    // The number -1 represents no maximum at all; conveniently it becomes a super-large value when converted to unsigned.
    return std::min&lt;unsigned&gt;(maxLength(), maxEffectiveLength);
}
```

https://searchfox.org/wubkat/rev/19fb3bc3aa27a28183dbc388d1ba5df1cbb2feb6/Source/WebCore/html/HTMLInputElement.h#331-335
```cpp
// FIXME: According to HTML4, the length attribute&apos;s value can be arbitrarily
// large. However, due to https://bugs.webkit.org/show_bug.cgi?id=14536 things
// get rather sluggish when a text field has a larger number of characters than
// this, even when just clicking in the text field.
static constexpr unsigned maxEffectiveLength = 524288;
```</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108972</attachid>
            <date>2011-09-27 23:52:50 -0700</date>
            <delta_ts>2011-09-29 22:56:12 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>44883.txt</filename>
            <type>text/plain</type>
            <size>5490</size>
            <attacher name="Antaryami Pandia">xqb748</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MTkyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMjcgIEFudGFyeWFt
aSBQYW5kaWEgIDxhbnRhcnlhbWkucGFuZGlhQG1vdG9yb2xhLmNvbT4KKworICAgICAgICA8aW5w
dXQ+IG1heExlbmd0aCBpcyBjbGFtcGVkIHRvIDUyNDI4OC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTElucHV0RWxlbWVu
dC9tYXhsZW5ndGgtYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1heExl
bmd0aEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKwog
MjAxMS0wOS0yNyAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIERlZmVyIGNhbGwgdG8gQ1NTVmFsdWU6OmlzUHJpbWl0aXZlVmFsdWUoKSwgc2F2
ZXMgfjQlIGluIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoKS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gOTYwNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzY2LDEwICsxNzY2LDEwIEBAIENoZWNrZWRSYWRpb0J1dHRvbnMmIEhUTUxJbnB1dEVsZW1l
bnQ6OmMKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1heExlbmd0aEF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHJpYnV0ZSkKIHsKLSAgICBpbnQgbWF4TGVuZ3RoOwotICAgIGlmICghcGFy
c2VIVE1MSW50ZWdlcihhdHRyaWJ1dGUtPnZhbHVlKCksIG1heExlbmd0aCkpCi0gICAgICAgIG1h
eExlbmd0aCA9IG1heGltdW1MZW5ndGg7Ci0gICAgaWYgKG1heExlbmd0aCA8IDAgfHwgbWF4TGVu
Z3RoID4gbWF4aW11bUxlbmd0aCkKKyAgICBpbnQgbWF4TGVuZ3RoID0gLTE7CisgICAgaWYgKCFh
dHRyaWJ1dGUtPmlzTnVsbCgpKQorICAgICAgICBtYXhMZW5ndGggPSBhdHRyaWJ1dGUtPnZhbHVl
KCkudG9JbnQoKTsKKyAgICBpZiAobWF4TGVuZ3RoIDwgMCkKICAgICAgICAgbWF4TGVuZ3RoID0g
bWF4aW11bUxlbmd0aDsKICAgICBpbnQgb2xkTWF4TGVuZ3RoID0gbV9tYXhMZW5ndGg7CiAgICAg
bV9tYXhMZW5ndGggPSBtYXhMZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiA5NjA2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAxLDcgKzMwMSw3
IEBAIHN0YXRpYyBTdHJpbmcgbGltaXRMZW5ndGgoY29uc3QgU3RyaW5nJgogCiBTdHJpbmcgVGV4
dEZpZWxkSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1
ZSkKIHsKLSAgICByZXR1cm4gbGltaXRMZW5ndGgocHJvcG9zZWRWYWx1ZS5yZW1vdmVDaGFyYWN0
ZXJzKGlzQVNDSUlMaW5lQnJlYWspLCBIVE1MSW5wdXRFbGVtZW50OjptYXhpbXVtTGVuZ3RoKTsK
KyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5yZW1vdmVDaGFyYWN0ZXJzKGlzQVNDSUlMaW5lQnJl
YWspOwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6aGFuZGxlQmVmb3JlVGV4dEluc2Vy
dGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2ZW50KQpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gOTYxOTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAxMS0wOS0yNyAgQW50YXJ5YW1pIFBhbmRpYSAgPGFudGFyeWFtaS5wYW5k
aWFAbW90b3JvbGEuY29tPgorCisgICAgICAgIDxpbnB1dD4gbWF4TGVuZ3RoIGlzIGNsYW1wZWQg
dG8gNTI0Mjg4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDQ4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvbWF4bGVuZ3RoLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvbWF4bGVu
Z3RoLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKwogMjAxMS0wOS0yNyAgU2hpbmljaGlybyBIYW1h
amkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTGF5b3V0IFRl
c3QgZmFzdC9jYW52YXMvY2FudmFzLWNvbXBvc2l0ZS10cmFuc2Zvcm1jbGlwLmh0bWwgaXMgZmFp
bGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9tYXhsZW5n
dGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MSW5wdXRFbGVtZW50L21heGxlbmd0aC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9tYXhs
ZW5ndGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBA
QAorSFRNTElucHV0RWxlbWVudCBtYXhsZW5ndGggYXR0cmlidXRlIHRlc3QKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQubWF4TGVuZ3RoIGlzIDUyNDI4OAorUEFT
UyBpbnB1dC5tYXhMZW5ndGggaXMgNTI0Mjg4CitQQVNTIGlucHV0Lm1heExlbmd0aCBpcyA1MjQy
ODgKK1BBU1MgaW5wdXQubWF4TGVuZ3RoIGlzIDEKK1BBU1MgaW5wdXQubWF4TGVuZ3RoIGlzIDIK
K1BBU1MgaW5wdXQubWF4TGVuZ3RoIGlzIDUyNDI4OAorUEFTUyBpbnB1dC5tYXhMZW5ndGggaXMg
MworUEFTUyBpbnB1dC5tYXhMZW5ndGggaXMgNTI0Mjg4CitQQVNTIGlucHV0Lm1heExlbmd0aCBp
cyAwCitQQVNTIGlucHV0Lm1heExlbmd0aCBpcyAxMAorUEFTUyBpbnB1dC5tYXhMZW5ndGggaXMg
MTAwMDAwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvbWF4bGVuZ3Ro
LWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJ
bnB1dEVsZW1lbnQvbWF4bGVuZ3RoLWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9tYXhsZW5ndGgtYXR0cmlidXRlLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1l
bnQgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0ZXN0Jyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlucHV0Iik7CisKK3Nob3VsZEJlKCJpbnB1dC5tYXhMZW5ndGgiLCAiNTI0
Mjg4Iik7CisKK2lucHV0LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwgIi0xIik7CitzaG91bGRC
ZSgiaW5wdXQubWF4TGVuZ3RoIiwgIjUyNDI4OCIpOworCitpbnB1dC5yZW1vdmVBdHRyaWJ1dGUo
Im1heGxlbmd0aCIpOworc2hvdWxkQmUoImlucHV0Lm1heExlbmd0aCIsICI1MjQyODgiKTsKKwor
aW5wdXQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoImlucHV0Lm1h
eExlbmd0aCIsICIxIik7CisKK2lucHV0LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwgIjIiKTsK
K3Nob3VsZEJlKCJpbnB1dC5tYXhMZW5ndGgiLCAiMiIpOworCitpbnB1dC5yZW1vdmVBdHRyaWJ1
dGUoIm1heGxlbmd0aCIpOworc2hvdWxkQmUoImlucHV0Lm1heExlbmd0aCIsICI1MjQyODgiKTsK
KworaW5wdXQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCAiMyIpOworc2hvdWxkQmUoImlucHV0
Lm1heExlbmd0aCIsICIzIik7CisKK2lucHV0LnJlbW92ZUF0dHJpYnV0ZSgibWF4bGVuZ3RoIik7
CitzaG91bGRCZSgiaW5wdXQubWF4TGVuZ3RoIiwgIjUyNDI4OCIpOworCitpbnB1dC5zZXRBdHRy
aWJ1dGUoIm1heGxlbmd0aCIsICIwIik7CitzaG91bGRCZSgiaW5wdXQubWF4TGVuZ3RoIiwgIjAi
KTsKKworaW5wdXQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCAiMTAiKTsKK3Nob3VsZEJlKCJp
bnB1dC5tYXhMZW5ndGgiLCAiMTAiKTsKKworaW5wdXQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgi
LCAiMTAwMDAwMCIpOworc2hvdWxkQmUoImlucHV0Lm1heExlbmd0aCIsICIxMDAwMDAwIik7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+CisKKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="106097"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109255</attachid>
            <date>2011-09-29 22:56:12 -0700</date>
            <delta_ts>2011-10-02 03:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>44883.txt</filename>
            <type>text/plain</type>
            <size>19161</size>
            <attacher name="Antaryami Pandia">xqb748</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MzkwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMjkgIEFudGFyeWFt
aSBQYW5kaWEgIDxhbnRhcnlhbWkucGFuZGlhQG1vdG9yb2xhLmNvbT4KKworICAgICAgICA8aW5w
dXQ+IG1heExlbmd0aCBpcyBjbGFtcGVkIHRvIDUyNDI4OC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTElucHV0RWxlbWVu
dC9tYXhsZW5ndGgtYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1heExl
bmd0aEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bGltaXRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKwogMjAxMS0wOS0yOSAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXhlZCBIaXQgdGVzdGluZyBvbiBG
cmFtZXNldHMgd2hlbiBGcmFtZXNldCBpcyB0cmFuc2Zvcm1lZApJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NjMxOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NzEs
NyArMTc3MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXhMZW5ndGhBdHQKICAg
ICBpbnQgbWF4TGVuZ3RoOwogICAgIGlmICghcGFyc2VIVE1MSW50ZWdlcihhdHRyaWJ1dGUtPnZh
bHVlKCksIG1heExlbmd0aCkpCiAgICAgICAgIG1heExlbmd0aCA9IG1heGltdW1MZW5ndGg7Ci0g
ICAgaWYgKG1heExlbmd0aCA8IDAgfHwgbWF4TGVuZ3RoID4gbWF4aW11bUxlbmd0aCkKKyAgICBp
ZiAobWF4TGVuZ3RoIDwgMCkKICAgICAgICAgbWF4TGVuZ3RoID0gbWF4aW11bUxlbmd0aDsKICAg
ICBpbnQgb2xkTWF4TGVuZ3RoID0gbV9tYXhMZW5ndGg7CiAgICAgbV9tYXhMZW5ndGggPSBtYXhM
ZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CShyZXZpc2lvbiA5NjMxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBTdHJpbmcg
bGltaXRMZW5ndGgoY29uc3QgU3RyaW5nJgogCiBTdHJpbmcgVGV4dEZpZWxkSW5wdXRUeXBlOjpz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIHsKLSAgICByZXR1cm4g
bGltaXRMZW5ndGgocHJvcG9zZWRWYWx1ZS5yZW1vdmVDaGFyYWN0ZXJzKGlzQVNDSUlMaW5lQnJl
YWspLCBIVE1MSW5wdXRFbGVtZW50OjptYXhpbXVtTGVuZ3RoKTsKKyAgICByZXR1cm4gbGltaXRM
ZW5ndGgocHJvcG9zZWRWYWx1ZS5yZW1vdmVDaGFyYWN0ZXJzKGlzQVNDSUlMaW5lQnJlYWspLCBl
bGVtZW50KCktPm1heExlbmd0aCgpKTsKIH0KIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6Omhh
bmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KiBldmVu
dCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MzkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjkgIEFudGFyeWFtaSBQYW5k
aWEgIDxhbnRhcnlhbWkucGFuZGlhQG1vdG9yb2xhLmNvbT4KKworICAgICAgICA8aW5wdXQ+IG1h
eExlbmd0aCBpcyBjbGFtcGVkIHRvIDUyNDI4OC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L21heGxlbmd0
aC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
SW5wdXRFbGVtZW50L21heGxlbmd0aC1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXRvb0xvbmctaW5wdXQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1tYXhsZW5ndGguaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sOgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtdGV4dC1tYXhsZW5ndGgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtdGV4dC1tYXhsZW5ndGguaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXRleHQtcGFzdGUtbWF4bGVuZ3RoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2lucHV0LXRleHQtcGFzdGUtbWF4bGVuZ3RoLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS10b29Mb25nLWlucHV0LmpzOgorCiAyMDExLTA5LTI5
ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0No
cm9taXVtXSBMYXlvdXQgVGVzdCBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy8zZC1jb3Ju
ZXJzLmh0bWwgaXMgZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0
RWxlbWVudC9tYXhsZW5ndGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L21heGxlbmd0aC1hdHRyaWJ1dGUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElu
cHV0RWxlbWVudC9tYXhsZW5ndGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMCBAQAorSFRNTElucHV0RWxlbWVudCBtYXhsZW5ndGggYXR0cmlidXRlIHRl
c3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQubWF4TGVuZ3Ro
IGlzIDUyNDI4OAorUEFTUyBpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcsICctMScpOyBp
bnB1dC5tYXhMZW5ndGggaXMgNTI0Mjg4CitQQVNTIGlucHV0LnJlbW92ZUF0dHJpYnV0ZSgnbWF4
bGVuZ3RoJyk7IGlucHV0Lm1heExlbmd0aCBpcyA1MjQyODgKK1BBU1MgaW5wdXQuc2V0QXR0cmli
dXRlKCdtYXhsZW5ndGgnLCAnMScpOyBpbnB1dC5tYXhMZW5ndGggaXMgMQorUEFTUyBpbnB1dC5z
ZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcsICcyJyk7IGlucHV0Lm1heExlbmd0aCBpcyAyCitQQVNT
IGlucHV0LnJlbW92ZUF0dHJpYnV0ZSgnbWF4bGVuZ3RoJyk7IGlucHV0Lm1heExlbmd0aCBpcyA1
MjQyODgKK1BBU1MgaW5wdXQuc2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnLCAnMycpOyBpbnB1dC5t
YXhMZW5ndGggaXMgMworUEFTUyBpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoJ21heGxlbmd0aCcpOyBp
bnB1dC5tYXhMZW5ndGggaXMgNTI0Mjg4CitQQVNTIGlucHV0LnNldEF0dHJpYnV0ZSgnbWF4bGVu
Z3RoJywgJzAnKTsgaW5wdXQubWF4TGVuZ3RoIGlzIDAKK1BBU1MgaW5wdXQuc2V0QXR0cmlidXRl
KCdtYXhsZW5ndGgnLCAnMTAnKTsgaW5wdXQubWF4TGVuZ3RoIGlzIDEwCitQQVNTIGlucHV0LnNl
dEF0dHJpYnV0ZSgnbWF4bGVuZ3RoJywgJzEwMDAwMDAnKTsgaW5wdXQubWF4TGVuZ3RoIGlzIDEw
MDAwMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L21heGxlbmd0aC1h
dHRyaWJ1dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5w
dXRFbGVtZW50L21heGxlbmd0aC1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvbWF4bGVuZ3RoLWF0dHJpYnV0ZS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdIVE1MSW5wdXRFbGVtZW50
IG1heGxlbmd0aCBhdHRyaWJ1dGUgdGVzdCcpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOworCitzaG91bGRCZSgiaW5wdXQubWF4TGVuZ3RoIiwgIjUyNDI4
OCIpOworCitzaG91bGRCZSgiaW5wdXQuc2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnLCAnLTEnKTsg
aW5wdXQubWF4TGVuZ3RoIiwgIjUyNDI4OCIpOworc2hvdWxkQmUoImlucHV0LnJlbW92ZUF0dHJp
YnV0ZSgnbWF4bGVuZ3RoJyk7IGlucHV0Lm1heExlbmd0aCIsICI1MjQyODgiKTsKK3Nob3VsZEJl
KCJpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcsICcxJyk7IGlucHV0Lm1heExlbmd0aCIs
ICIxIik7CitzaG91bGRCZSgiaW5wdXQuc2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnLCAnMicpOyBp
bnB1dC5tYXhMZW5ndGgiLCAiMiIpOworc2hvdWxkQmUoImlucHV0LnJlbW92ZUF0dHJpYnV0ZSgn
bWF4bGVuZ3RoJyk7IGlucHV0Lm1heExlbmd0aCIsICI1MjQyODgiKTsKK3Nob3VsZEJlKCJpbnB1
dC5zZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcsICczJyk7IGlucHV0Lm1heExlbmd0aCIsICIzIik7
CitzaG91bGRCZSgiaW5wdXQucmVtb3ZlQXR0cmlidXRlKCdtYXhsZW5ndGgnKTsgaW5wdXQubWF4
TGVuZ3RoIiwgIjUyNDI4OCIpOworc2hvdWxkQmUoImlucHV0LnNldEF0dHJpYnV0ZSgnbWF4bGVu
Z3RoJywgJzAnKTsgaW5wdXQubWF4TGVuZ3RoIiwgIjAiKTsKK3Nob3VsZEJlKCJpbnB1dC5zZXRB
dHRyaWJ1dGUoJ21heGxlbmd0aCcsICcxMCcpOyBpbnB1dC5tYXhMZW5ndGgiLCAiMTAiKTsKK3No
b3VsZEJlKCJpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcsICcxMDAwMDAwJyk7IGlucHV0
Lm1heExlbmd0aCIsICIxMDAwMDAwIik7CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzwvYm9keT4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXRvb0xvbmctaW5wdXQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS10
b29Mb25nLWlucHV0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTYzMTkpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdG9vTG9uZy1pbnB1dC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTcsMTQgKzcsMTQgQEAgTm8gbWF4bGVuZ3RoIGFuZCBubyB2YWx1ZQog
UEFTUyBpbnB1dC52YWxpZGl0eS50b29Mb25nIGlzIGZhbHNlCiAKIE5vbi1kaXJ0eSB2YWx1ZQot
UEFTUyBpbnB1dC52YWx1ZS5sZW5ndGggaXMgNQorUEFTUyBpbnB1dC52YWx1ZS5sZW5ndGggaXMg
MwogUEFTUyBpbnB1dC52YWxpZGl0eS50b29Mb25nIGlzIGZhbHNlCi1QQVNTIGlucHV0LnZhbHVl
Lmxlbmd0aCBpcyA2CitQQVNTIGlucHV0LnZhbHVlLmxlbmd0aCBpcyAzCiBQQVNTIGlucHV0LnZh
bGlkaXR5LnRvb0xvbmcgaXMgZmFsc2UKIAogRGlydHkgdmFsdWUgYW5kIGxvbmdlciB0aGFuIG1h
eExlbmd0aAotUEFTUyBpbnB1dC52YWx1ZS5sZW5ndGggaXMgNAotUEFTUyBpbnB1dC52YWxpZGl0
eS50b29Mb25nIGlzIHRydWUKK1BBU1MgaW5wdXQudmFsdWUubGVuZ3RoIGlzIDMKK1BBU1MgaW5w
dXQudmFsaWRpdHkudG9vTG9uZyBpcyBmYWxzZQogUEFTUyBpbnB1dC52YWxpZGl0eS50b29Mb25n
IGlzIGZhbHNlCiAKIFNldHMgYSB2YWx1ZSB2aWEgRE9NIHByb3BlcnR5CkBAIC0yNyw3ICsyNyw3
IEBAIEdyYXBoZW1lIGxlbmd0aCBpcyBub3QgZ3JlYXRlciB0aGFuIG1heEwKIFBBU1MgaW5wdXQu
dmFsaWRpdHkudG9vTG9uZyBpcyBmYWxzZQogCiBDaGFuZ2UgdGhlIHR5cGUgd2l0aCBhIHRvbyBs
b25nIHZhbHVlCi1QQVNTIGlucHV0LnZhbGlkaXR5LnRvb0xvbmcgaXMgdHJ1ZQorUEFTUyBpbnB1
dC52YWxpZGl0eS50b29Mb25nIGlzIGZhbHNlCiBQQVNTIGlucHV0LnR5cGUgPSAibnVtYmVyIjsg
aW5wdXQudmFsaWRpdHkudG9vTG9uZyBpcyBmYWxzZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Ut
bWF4bGVuZ3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1hcHBlYXJhbmNlLW1heGxlbmd0aC5odG1sCShyZXZpc2lvbiA5NjMxOSkKKysrIExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1tYXhsZW5ndGguaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQsNyArMTQsNyBAQCBkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGNoYW5nZXMgdGhl
IHZhbHVlCiAKIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcCcpOwogCi1p
ZiAoaW5wdXQudmFsdWUgIT0gIjEyMzQ1IikgeworaWYgKGlucHV0LnZhbHVlID09ICIxMjM0NSIp
IHsKICAgICB0ZXN0UGFzc2VkKCdNYXhsZW5ndGggc2hvdWxkblwndCB3b3JrIGZvciBkZWZhdWx0
IHZhbHVlLlxuJyk7CiB9IGVsc2UgewogICAgIHRlc3RGYWlsZWQoJ01heGxlbmd0aCB1bmV4cGVj
dGVkbHkgd29ya3MgZm9yIGRlZmF1bHQgdmFsdWUuXG4nKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbWF4bGVuZ3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGguaHRtbAkocmV2aXNpb24gOTYzMTkpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw4IEBACiAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbWF4TGVuZ3Roc1Rv
VGVzdC5sZW5ndGg7ICsraikgewogICAgICAgICAgICAgdmFyIG1heExlbmd0aCA9IG1heExlbmd0
aHNUb1Rlc3Rbal07CiAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIs
IG1heExlbmd0aCk7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBNYXRoLm1pbihzdHJpbmdM
ZW5ndGgsIGltcGxpY2l0TWF4TGVuZ3RoKTsKKyAgICAgICAgICAgIGlucHV0TWF4TGVuZ3RoID0g
aW5wdXQubWF4TGVuZ3RoOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gTWF0aC5taW4oc3Ry
aW5nTGVuZ3RoLCBpbnB1dE1heExlbmd0aCk7CiAgICAgICAgICAgICBhdHRlbXB0KHN0cmluZ0xl
bmd0aCwgZXhwZWN0ZWQpOwogICAgICAgICB9CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC10ZXh0LW1heGxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LW1heGxlbmd0aC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDk2MzE5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LW1h
eGxlbmd0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjAgKzEsMjAgQEAKIG1h
eGxlbmd0aCBhbmQgdmFsdWUgdGhhdCB2aW9sYXRlcyBpdCwgbWF4bGVuZ3RoIGZpcnN0Ci1QQVNT
IGRvbVZhbHVlT2YoImlucHV0MSIpIGlzICIxMjM0NSIKK1BBU1MgZG9tVmFsdWVPZigiaW5wdXQx
IikgaXMgIjEyMzQiCiBQQVNTIHZpc2libGVWYWx1ZU9mKCJpbnB1dDEiKSBpcyAiMTIzNDUiCiBt
YXhsZW5ndGggYW5kIHZhbHVlIHRoYXQgdmlvbGF0ZXMgaXQsIG1heGxlbmd0aCBmaXJzdAotUEFT
UyBkb21WYWx1ZU9mKCJpbnB1dDIiKSBpcyAiMTIzNDUiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJp
bnB1dDIiKSBpcyAiMTIzNDUiCitQQVNTIGRvbVZhbHVlT2YoImlucHV0MiIpIGlzICIxMjM0Igor
UEFTUyB2aXNpYmxlVmFsdWVPZigiaW5wdXQyIikgaXMgIjEyMzQiCiBzZXQgdmFsdWUgYXR0cmli
dXRlIHRoYXQgdmlvbGF0ZXMgbWF4bGVuZ3RoCi1QQVNTIGRvbVZhbHVlT2YoImYiKSBpcyAiMTIz
NDUiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJpbnB1dDIiKSBpcyAiMTIzNDUiCitQQVNTIGRvbVZh
bHVlT2YoImYiKSBpcyAiMTIzNCIKK1BBU1MgdmlzaWJsZVZhbHVlT2YoImlucHV0MiIpIGlzICIx
MjM0Igogc2V0IHZhbHVlIHByb3BlcnR5IHRoYXQgdmlvbGF0ZXMgbWF4bGVuZ3RoCi1QQVNTIGRv
bVZhbHVlT2YoImUiKSBpcyAiMTIzNDUiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJlIikgaXMgIjEy
MzQ1IgorUEFTUyBkb21WYWx1ZU9mKCJlIikgaXMgIjEyMzQiCitQQVNTIHZpc2libGVWYWx1ZU9m
KCJlIikgaXMgIjEyMzQiCiBzZXQgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0aGF0IGlzIHNtYWxsZXIg
dGhhbiBpbml0aWFsIHZhbHVlCi1QQVNTIGRvbVZhbHVlT2YoImQiKSBpcyAiMTIzNDUiCitQQVNT
IGRvbVZhbHVlT2YoImQiKSBpcyAiMTIzNCIKIFBBU1MgdmlzaWJsZVZhbHVlT2YoImQiKSBpcyAi
MTIzNDUiCiBzZXQgbWF4TGVuZ3RoIHByb3BlcnR5IHRoYXQgaXMgc21hbGxlciB0aGFuIGluaXRp
YWwgdmFsdWUKLVBBU1MgZG9tVmFsdWVPZigiYyIpIGlzICIxMjM0NSIKK1BBU1MgZG9tVmFsdWVP
ZigiYyIpIGlzICIxMjM0IgogUEFTUyB2aXNpYmxlVmFsdWVPZigiYyIpIGlzICIxMjM0NSIKIG1h
eGxlbmd0aCBhbmQgdmFsdWUgdGhhdCB2aW9sYXRlcyBpdCwgbWF4bGVuZ3RoIGZpcnN0CiBQQVNT
IGRvbVZhbHVlT2YoImlucHV0NyIpIGlzICIxMiIgKyBmYW5jeVggKyAiNDUiCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXRleHQtbWF4bGVuZ3RoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LW1heGxlbmd0aC5odG1sCShyZXZp
c2lvbiA5NjMxOSkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1tYXhsZW5n
dGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTAgKzE0LDEwIEBACiA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImUiIHNpemU9IjUiIG1heGxlbmd0aD0iNCIgdmFsdWU9IjEyMyI+CiA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImQiIHNpemU9IjUiIHZhbHVlPSIxMjM0NSI+CiA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImMiIHNpemU9IjUiIHZhbHVlPSIxMjM0NSI+Ci08aW5wdXQgdHlwZT0idGV4dCIg
c2l6ZT0iNSIgdmFsdWU9IjEyeCYjeDMwNTsmI3gzMzI7NDUiIG1heGxlbmd0aD0iNCIgaWQ9Imlu
cHV0NyI+Ci08aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0i
MTJ4JiN4MzA1OyYjeDMzMjs0NSIgaWQ9ImlucHV0OCI+Ci08aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImoiIHNpemU9IjUiIG1heGxlbmd0aD0iNCIgdmFsdWU9IjEyMyI+Ci08aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImkiIHNpemU9IjUiIG1heGxlbmd0aD0iNCIgdmFsdWU9IjEyMyI+Cis8aW5wdXQgdHlw
ZT0idGV4dCIgc2l6ZT0iNSIgdmFsdWU9IjEyeCYjeDMwNTsmI3gzMzI7NDUiIG1heGxlbmd0aD0i
MTAiIGlkPSJpbnB1dDciPgorPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjUiIG1heGxlbmd0aD0i
MTAiIHZhbHVlPSIxMngmI3gzMDU7JiN4MzMyOzQ1IiBpZD0iaW5wdXQ4Ij4KKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaiIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSIxMCIgdmFsdWU9IjEyMyI+Cis8aW5w
dXQgdHlwZT0idGV4dCIgaWQ9ImkiIHNpemU9IjUiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSIxMjMi
PgogPGlucHV0IHR5cGU9InRleHQiIGlkPSJoIiBzaXplPSI1IiB2YWx1ZT0iMTJ4JiN4MzA1OyYj
eDMzMjs0NSI+CiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImciIHNpemU9IjUiIHZhbHVlPSIxMngm
I3gzMDU7JiN4MzMyOzQ1Ij4KIApAQCAtMzUsMzEgKzM1LDMxIEBAIGZ1bmN0aW9uIHZpc2libGVW
YWx1ZU9mKGlkKSB7CiB2YXIgZmFuY3lYID0gIngiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMw
NSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzMyKTsKIAogZGVidWcoJ21heGxlbmd0aCBhbmQg
dmFsdWUgdGhhdCB2aW9sYXRlcyBpdCwgbWF4bGVuZ3RoIGZpcnN0Jyk7Ci1zaG91bGRCZSgnZG9t
VmFsdWVPZigiaW5wdXQxIiknLCAnIjEyMzQ1IicpOworc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImlu
cHV0MSIpJywgJyIxMjM0IicpOwogc2hvdWxkQmUoJ3Zpc2libGVWYWx1ZU9mKCJpbnB1dDEiKScs
ICciMTIzNDUiJyk7CiAKIGRlYnVnKCdtYXhsZW5ndGggYW5kIHZhbHVlIHRoYXQgdmlvbGF0ZXMg
aXQsIG1heGxlbmd0aCBmaXJzdCcpOwotc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImlucHV0MiIpJywg
JyIxMjM0NSInKTsKLXNob3VsZEJlKCd2aXNpYmxlVmFsdWVPZigiaW5wdXQyIiknLCAnIjEyMzQ1
IicpOworc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImlucHV0MiIpJywgJyIxMjM0IicpOworc2hvdWxk
QmUoJ3Zpc2libGVWYWx1ZU9mKCJpbnB1dDIiKScsICciMTIzNCInKTsKIAogZGVidWcoJ3NldCB2
YWx1ZSBhdHRyaWJ1dGUgdGhhdCB2aW9sYXRlcyBtYXhsZW5ndGgnKTsKIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJmIikuc2V0QXR0cmlidXRlKCd2YWx1ZScsICcxMjM0NScpOwotc2hvdWxkQmUo
J2RvbVZhbHVlT2YoImYiKScsICciMTIzNDUiJyk7Ci1zaG91bGRCZSgndmlzaWJsZVZhbHVlT2Yo
ImlucHV0MiIpJywgJyIxMjM0NSInKTsKK3Nob3VsZEJlKCdkb21WYWx1ZU9mKCJmIiknLCAnIjEy
MzQiJyk7CitzaG91bGRCZSgndmlzaWJsZVZhbHVlT2YoImlucHV0MiIpJywgJyIxMjM0IicpOwog
CiBkZWJ1Zygnc2V0IHZhbHVlIHByb3BlcnR5IHRoYXQgdmlvbGF0ZXMgbWF4bGVuZ3RoJyk7CiBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZSIpLnZhbHVlID0gJzEyMzQ1JzsKLXNob3VsZEJlKCdk
b21WYWx1ZU9mKCJlIiknLCAnIjEyMzQ1IicpOwotc2hvdWxkQmUoJ3Zpc2libGVWYWx1ZU9mKCJl
IiknLCAnIjEyMzQ1IicpOworc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImUiKScsICciMTIzNCInKTsK
K3Nob3VsZEJlKCd2aXNpYmxlVmFsdWVPZigiZSIpJywgJyIxMjM0IicpOwogCiBkZWJ1Zygnc2V0
IG1heGxlbmd0aCBhdHRyaWJ1dGUgdGhhdCBpcyBzbWFsbGVyIHRoYW4gaW5pdGlhbCB2YWx1ZScp
OwogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImQiKS5zZXRBdHRyaWJ1dGUoJ21heGxlbmd0aCcs
IDQpOwotc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImQiKScsICciMTIzNDUiJyk7CitzaG91bGRCZSgn
ZG9tVmFsdWVPZigiZCIpJywgJyIxMjM0IicpOwogc2hvdWxkQmUoJ3Zpc2libGVWYWx1ZU9mKCJk
IiknLCAnIjEyMzQ1IicpOwogCiBkZWJ1Zygnc2V0IG1heExlbmd0aCBwcm9wZXJ0eSB0aGF0IGlz
IHNtYWxsZXIgdGhhbiBpbml0aWFsIHZhbHVlJyk7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YyIpLm1heExlbmd0aCA9IDQ7Ci1zaG91bGRCZSgnZG9tVmFsdWVPZigiYyIpJywgJyIxMjM0NSIn
KTsKK3Nob3VsZEJlKCdkb21WYWx1ZU9mKCJjIiknLCAnIjEyMzQiJyk7CiBzaG91bGRCZSgndmlz
aWJsZVZhbHVlT2YoImMiKScsICciMTIzNDUiJyk7CiAKIGRlYnVnKCdtYXhsZW5ndGggYW5kIHZh
bHVlIHRoYXQgdmlvbGF0ZXMgaXQsIG1heGxlbmd0aCBmaXJzdCcpOwpAQCAtODEsMTIgKzgxLDEy
IEBAIHNob3VsZEJlKCdkb21WYWx1ZU9mKCJpIiknLCAnIjEyIiArIGZhbmMKIHNob3VsZEJlKCd2
aXNpYmxlVmFsdWVPZigiaSIpJywgJyIxMiIgKyBmYW5jeVggKyAiNDUiJyk7CiAKIGRlYnVnKCdz
ZXQgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBpbml0aWFsIHZhbHVl
Jyk7Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaCIpLnNldEF0dHJpYnV0ZSgnbWF4bGVuZ3Ro
JywgNCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaCIpLnNldEF0dHJpYnV0ZSgnbWF4bGVu
Z3RoJywgMjApOwogc2hvdWxkQmUoJ2RvbVZhbHVlT2YoImgiKScsICciMTIiICsgZmFuY3lYICsg
IjQ1IicpOwogc2hvdWxkQmUoJ3Zpc2libGVWYWx1ZU9mKCJoIiknLCAnIjEyIiArIGZhbmN5WCAr
ICI0NSInKTsKIAogZGVidWcoJ3NldCBtYXhMZW5ndGggcHJvcGVydHkgdGhhdCBpcyBzbWFsbGVy
IHRoYW4gaW5pdGlhbCB2YWx1ZScpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImciKS5tYXhM
ZW5ndGggPSA0OworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImciKS5tYXhMZW5ndGggPSAyMDsK
IHNob3VsZEJlKCdkb21WYWx1ZU9mKCJnIiknLCAnIjEyIiArIGZhbmN5WCArICI0NSInKTsKIHNo
b3VsZEJlKCd2aXNpYmxlVmFsdWVPZigiZyIpJywgJyIxMiIgKyBmYW5jeVggKyAiNDUiJyk7CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1wYXN0ZS1tYXhsZW5ndGgt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
dGV4dC1wYXN0ZS1tYXhsZW5ndGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5NjMxOSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1wYXN0ZS1tYXhsZW5ndGgtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDE0ICsyLDE0IEBAIHNldCB2YWx1ZSBhdHRyaWJ1dGUg
dGhhdCB2aW9sYXRlcyBtYXhsZW4KIFBBU1MgZG9tVmFsdWVPZignZicpIGlzICcxMjMnCiBQQVNT
IHZpc2libGVWYWx1ZU9mKCdmJykgaXMgJzEyMycKIHNldCB2YWx1ZSBwcm9wZXJ0eSB0aGF0IHZp
b2xhdGVzIG1heGxlbmd0aCAod2l0aCBwYXN0ZWQgdmFsdWUpCi1QQVNTIGRvbVZhbHVlT2YoJ2Un
KSBpcyAnMTIzNDUnCi1QQVNTIHZpc2libGVWYWx1ZU9mKCdlJykgaXMgJzEyMzQ1JworUEFTUyBk
b21WYWx1ZU9mKCdlJykgaXMgJzEyMzQnCitQQVNTIHZpc2libGVWYWx1ZU9mKCdlJykgaXMgJzEy
MzQnCiBzZXQgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBwYXN0ZWQg
dmFsdWUKLVBBU1MgZG9tVmFsdWVPZignZCcpIGlzICcxMjM0NScKLVBBU1MgdmlzaWJsZVZhbHVl
T2YoJ2QnKSBpcyAnMTIzNDUnCitQQVNTIGRvbVZhbHVlT2YoJ2QnKSBpcyAnMTIzNCcKK1BBU1Mg
dmlzaWJsZVZhbHVlT2YoJ2QnKSBpcyAnMTIzNCcKIHNldCBtYXhMZW5ndGggcHJvcGVydHkgdGhh
dCBpcyBzbWFsbGVyIHRoYW4gcGFzdGVkIHZhbHVlCi1QQVNTIGRvbVZhbHVlT2YoJ2MnKSBpcyAn
MTIzNDUnCi1QQVNTIHZpc2libGVWYWx1ZU9mKCdjJykgaXMgJzEyMzQ1JworUEFTUyBkb21WYWx1
ZU9mKCdjJykgaXMgJzEyMzQnCitQQVNTIHZpc2libGVWYWx1ZU9mKCdjJykgaXMgJzEyMzQnCiBz
ZXQgdmFsdWUgYXR0cmlidXRlIHRoYXQgdmlvbGF0ZXMgbWF4bGVuZ3RoICh3aXRoIHBhc3RlZCB2
YWx1ZSkKIFBBU1MgZG9tVmFsdWVPZignaicpIGlzICcxMjMnCiBQQVNTIHZpc2libGVWYWx1ZU9m
KCdqJykgaXMgJzEyMycKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1w
YXN0ZS1tYXhsZW5ndGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXRleHQtcGFzdGUtbWF4bGVuZ3RoLmh0bWwJKHJldmlzaW9uIDk2MzE5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXBhc3RlLW1heGxlbmd0aC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBACiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImQiIHNp
emU9IjUiPgogPGlucHV0IHR5cGU9InRleHQiIGlkPSJjIiBzaXplPSI1Ij4KIDxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaiIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI0Ij4KLTxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI0Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
aSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSIyMCI+CiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImgiIHNp
emU9IjUiPgogPGlucHV0IHR5cGU9InRleHQiIGlkPSJnIiBzaXplPSI1Ij4KIDxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iayIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI0Ij4KQEAgLTQ4LDIyICs0OCwyMiBA
QCBkZWJ1Zygic2V0IHZhbHVlIHByb3BlcnR5IHRoYXQgdmlvbGF0ZXMKIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlIikuZm9jdXMoKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRIVE1M
IiwgZmFsc2UsICIxMjMiKTsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIikudmFsdWUgPSAn
MTIzNDUnOwotc2hvdWxkQmUoImRvbVZhbHVlT2YoJ2UnKSIsICInMTIzNDUnIik7ICAvLyBVbmxp
a2Ugc2V0QXR0cmlidXRlKCksIC52YWx1ZSBwcm9wZXJ0eSBjaGFuZ2VzIHRoZSB2YWx1ZS4KLXNo
b3VsZEJlKCJ2aXNpYmxlVmFsdWVPZignZScpIiwgIicxMjM0NSciKTsKK3Nob3VsZEJlKCJkb21W
YWx1ZU9mKCdlJykiLCAiJzEyMzQnIik7ICAvLyBVbmxpa2Ugc2V0QXR0cmlidXRlKCksIC52YWx1
ZSBwcm9wZXJ0eSBjaGFuZ2VzIHRoZSB2YWx1ZS4KK3Nob3VsZEJlKCJ2aXNpYmxlVmFsdWVPZign
ZScpIiwgIicxMjM0JyIpOwogCiBkZWJ1Zygic2V0IG1heGxlbmd0aCBhdHRyaWJ1dGUgdGhhdCBp
cyBzbWFsbGVyIHRoYW4gcGFzdGVkIHZhbHVlIik7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZCIpLmZvY3VzKCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0SFRNTCIsIGZhbHNlLCAi
MTIzNDUiKTsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkIikuc2V0QXR0cmlidXRlKCdtYXhs
ZW5ndGgnLCA0KTsKLXNob3VsZEJlKCJkb21WYWx1ZU9mKCdkJykiLCAiJzEyMzQ1JyIpOwotc2hv
dWxkQmUoInZpc2libGVWYWx1ZU9mKCdkJykiLCAiJzEyMzQ1JyIpOworc2hvdWxkQmUoImRvbVZh
bHVlT2YoJ2QnKSIsICInMTIzNCciKTsKK3Nob3VsZEJlKCJ2aXNpYmxlVmFsdWVPZignZCcpIiwg
IicxMjM0JyIpOwogCiBkZWJ1Zygic2V0IG1heExlbmd0aCBwcm9wZXJ0eSB0aGF0IGlzIHNtYWxs
ZXIgdGhhbiBwYXN0ZWQgdmFsdWUiKTsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIikuZm9j
dXMoKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRIVE1MIiwgZmFsc2UsICIxMjM0NSIp
OwogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMiKS5tYXhMZW5ndGggPSA0Owotc2hvdWxkQmUo
ImRvbVZhbHVlT2YoJ2MnKSIsICInMTIzNDUnIik7Ci1zaG91bGRCZSgidmlzaWJsZVZhbHVlT2Yo
J2MnKSIsICInMTIzNDUnIik7CitzaG91bGRCZSgiZG9tVmFsdWVPZignYycpIiwgIicxMjM0JyIp
Oworc2hvdWxkQmUoInZpc2libGVWYWx1ZU9mKCdjJykiLCAiJzEyMzQnIik7CiAKIGRlYnVnKCJz
ZXQgdmFsdWUgYXR0cmlidXRlIHRoYXQgdmlvbGF0ZXMgbWF4bGVuZ3RoICh3aXRoIHBhc3RlZCB2
YWx1ZSkiKTsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqIikuZm9jdXMoKTsKQEAgLTgyLDE0
ICs4MiwxNCBAQCBzaG91bGRCZSgidmlzaWJsZVZhbHVlT2YoJ2knKSIsICInMTInICsKIGRlYnVn
KCJzZXQgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0aGF0IGlzIHNtYWxsZXIgdGhhbiBwYXN0ZWQgdmFs
dWUiKTsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoIikuZm9jdXMoKTsKIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJJbnNlcnRIVE1MIiwgZmFsc2UsICIxMngmI3gzMDU7JiN4MzMyOzQ1Iik7Ci1k
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaCIpLnNldEF0dHJpYnV0ZSgnbWF4bGVuZ3RoJywgNCk7
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaCIpLnNldEF0dHJpYnV0ZSgnbWF4bGVuZ3RoJywg
MjApOwogc2hvdWxkQmUoImRvbVZhbHVlT2YoJ2gnKSIsICInMTInICsgZmFuY3lYICsgJzQ1JyIp
Owogc2hvdWxkQmUoInZpc2libGVWYWx1ZU9mKCdoJykiLCAiJzEyJyArIGZhbmN5WCArICc0NSci
KTsKIAogZGVidWcoInNldCBtYXhMZW5ndGggcHJvcGVydHkgdGhhdCBpcyBzbWFsbGVyIHRoYW4g
cGFzdGVkIHZhbHVlIik7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZyIpLmZvY3VzKCk7CiBk
b2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0SFRNTCIsIGZhbHNlLCAiMTJ4JiN4MzA1OyYjeDMz
Mjs0NSIpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImciKS5tYXhMZW5ndGggPSA0OworZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImciKS5tYXhMZW5ndGggPSAyMDsKIHNob3VsZEJlKCJkb21W
YWx1ZU9mKCdnJykiLCAiJzEyJyArIGZhbmN5WCArICc0NSciKTsKIHNob3VsZEJlKCJ2aXNpYmxl
VmFsdWVPZignZycpIiwgIicxMicgKyBmYW5jeVggKyAnNDUnIik7CiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtdG9vTG9uZy1pbnB1dC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxp
ZGl0eVN0YXRlLXRvb0xvbmctaW5wdXQuanMJKHJldmlzaW9uIDk2MzE5KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS10b29Mb25nLWlucHV0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwxMSArMTAsMTEgQEAgZGVidWcoJycpOwogZGVidWcoJ05v
bi1kaXJ0eSB2YWx1ZScpOwogaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsICdhYmNkZScpOwog
aW5wdXQubWF4TGVuZ3RoID0gMzsKLXNob3VsZEJlKCdpbnB1dC52YWx1ZS5sZW5ndGgnLCAnNScp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlLmxlbmd0aCcsICczJyk7CiBzaG91bGRCZUZhbHNlKCdp
bnB1dC52YWxpZGl0eS50b29Mb25nJyk7CiAKIGlucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAn
YWJjZGVmJyk7Ci1zaG91bGRCZSgnaW5wdXQudmFsdWUubGVuZ3RoJywgJzYnKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZS5sZW5ndGgnLCAnMycpOwogc2hvdWxkQmVGYWxzZSgnaW5wdXQudmFsaWRp
dHkudG9vTG9uZycpOwogCiBkZWJ1ZygnJyk7CkBAIC0yNiw4ICsyNiw4IEBAIGlucHV0Lm1heExl
bmd0aCA9IDM7CiBpbnB1dC5mb2N1cygpOwogaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoNSwgNSk7
ICAvLyBNb3ZlIHRoZSBjdXJzb3IgYXQgdGhlIGVuZC4KIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdk
ZWxldGUnKTsKLXNob3VsZEJlKCdpbnB1dC52YWx1ZS5sZW5ndGgnLCAnNCcpOwotc2hvdWxkQmVU
cnVlKCdpbnB1dC52YWxpZGl0eS50b29Mb25nJyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUubGVu
Z3RoJywgJzMnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0LnZhbGlkaXR5LnRvb0xvbmcnKTsKIC8v
IE1ha2UgdGhlIHZhbHVlIDw9bWF4TGVuZ3RoLgogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2RlbGV0
ZScpOwogc2hvdWxkQmVGYWxzZSgnaW5wdXQudmFsaWRpdHkudG9vTG9uZycpOwpAQCAtNjQsNyAr
NjQsNyBAQCBpbnB1dC50eXBlID0gJ3NlYXJjaCc7CiBpbnB1dC5mb2N1cygpOwogaW5wdXQuc2V0
U2VsZWN0aW9uUmFuZ2UoNSwgNSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnZGVsZXRlJyk7Ci1z
aG91bGRCZVRydWUoJ2lucHV0LnZhbGlkaXR5LnRvb0xvbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lu
cHV0LnZhbGlkaXR5LnRvb0xvbmcnKTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0LnR5cGUgPSAibnVt
YmVyIjsgaW5wdXQudmFsaWRpdHkudG9vTG9uZycpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsK
</data>
<flag name="review"
          id="106469"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460403</attachid>
            <date>2022-06-21 20:07:58 -0700</date>
            <delta_ts>2022-06-21 20:07:58 -0700</delta_ts>
            <desc>test for actual value length</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>205</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGlucHV0IHR5cGU9dGV4dD4KPHNjcmlwdD4KICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwogICAgdmFyIHN0ciA9IG5ldyBBcnJheSgxMDAwMDAw
KS5qb2luKCcwJyk7CiAgICBlbC52YWx1ZSA9IHN0cjsKICAgIGFsZXJ0KGVsLm1heExlbmd0aCAr
ICIgIiArIGVsLnZhbHVlLmxlbmd0aCk7Cjwvc2NyaXB0Pg==
</data>

          </attachment>
      

    </bug>

</bugzilla>