<?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>27451</bug_id>
          
          <creation_ts>2009-07-20 11:48:33 -0700</creation_ts>
          <short_desc>stepUp() and stepDown() support for &lt;input type=number/range&gt;</short_desc>
          <delta_ts>2009-12-07 18:29:26 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/#the-step-attribute</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28934</dependson>
    
    <dependson>29069</dependson>
    
    <dependson>31330</dependson>
    
    <dependson>31331</dependson>
          <blocked>19264</blocked>
    
    <blocked>24703</blocked>
    
    <blocked>27968</blocked>
    
    <blocked>30847</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>michelangelo</cc>
    
    <cc>mike</cc>
    
    <cc>pkasting</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133184</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-07-20 11:48:33 -0700</bug_when>
    <thetext>See spec section 4.10.4.2.10.

This encompasses parsing the &quot;step&quot; attribute and hooking it to the stepMismatch() method on the ValidityState object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152918</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-06 18:27:13 -0700</bug_when>
    <thetext>I focus on type=number and type=range in this bug entry.
A work for date&amp;time types will be another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158495</commentid>
    <comment_count>2</comment_count>
      <attachid>42007</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-28 02:34:31 -0700</bug_when>
    <thetext>Created attachment 42007
Patch part 1: Expose ECMA-262-version of dtoa()

This exposed function will be used in Patch part 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158497</commentid>
    <comment_count>3</comment_count>
      <attachid>42008</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-28 02:49:15 -0700</bug_when>
    <thetext>Created attachment 42008
Patch part 2: step attribute and ValidityState.stepMismatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158498</commentid>
    <comment_count>4</comment_count>
      <attachid>42009</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-28 02:54:27 -0700</bug_when>
    <thetext>Created attachment 42009
Patch part 3: stepUp() and stepDown()

This patch has changes to JSC/V8 binding code because the parameters of stepUp() and stepDown() are optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158588</commentid>
    <comment_count>5</comment_count>
      <attachid>42009</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-28 09:27:26 -0700</bug_when>
    <thetext>Comment on attachment 42009
Patch part 3: stepUp() and stepDown()

&gt; +JSValue JSHTMLInputElement::stepUp(ExecState* exec, const ArgList&amp; args)
&gt; +{
&gt; +    HTMLInputElement* input = static_cast&lt;HTMLInputElement*&gt;(impl());
&gt; +    ExceptionCode ec = 0;
&gt; +    int step;
&gt; +    if (args.size() &lt; 1)
&gt; +        input-&gt;stepUp(1, ec);
&gt; +    else {
&gt; +        bool ok;
&gt; +        step = args.at(0).toInt32(exec, ok);
&gt; +        if (exec-&gt;hadException())
&gt; +            return jsUndefined();
&gt; +        if (!ok)
&gt; +            ec = TYPE_MISMATCH_ERR;
&gt; +        else
&gt; +            input-&gt;stepUp(step, ec);
&gt; +    }
&gt; +    setDOMException(exec, ec);
&gt; +    return jsUndefined();
&gt; +}

This sort of custom binding may be needed for this function for V8, but I do not think it’s needed for WebKit’s own JavaScript engine. DOM bindings already treat all arguments as optional, and missing arguments turn into the number 0 if the argument is of numeric type.

The only unusual bit is the idea that an argument of the type needs to lead to TYPE_MISMATCH_ERR. Other DOM functions that take integral parameters do not do this kind of type checking; they simply convert to a number. I don&apos;t think is a good idea to write custom bindings for these functions. If we do need to move to more type checking for functions that take integral parameters in the DOM, I&apos;d like to do it within the automatic generation mechanism.

Again, the issues may be different for V8. I have not looked at the V8 DOM bindings at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158821</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-28 20:46:16 -0700</bug_when>
    <thetext>Thank you for reviewing.  I referred to JSHTMLOptionsCollection::add() for this code.

(In reply to comment #5)
&gt; This sort of custom binding may be needed for this function for V8, but I do
&gt; not think it’s needed for WebKit’s own JavaScript engine. DOM bindings already
&gt; treat all arguments as optional, and missing arguments turn into the number 0
&gt; if the argument is of numeric type.

We need to distinguish input.stepUp(0) and input.stepUp().  The latter is equivalent to input.stepUp(1).  So we need such custom binding code, right?


&gt; The only unusual bit is the idea that an argument of the type needs to lead to
&gt; TYPE_MISMATCH_ERR. Other DOM functions that take integral parameters do not do
&gt; this kind of type checking; they simply convert to a number. I don&apos;t think is a
&gt; good idea to write custom bindings for these functions. If we do need to move
&gt; to more type checking for functions that take integral parameters in the DOM,
&gt; I&apos;d like to do it within the automatic generation mechanism.

I checked behavior of specifying strings to some functions which requires integer parameters, and confirmed no TYPE_MISMATCH_ERR.  I&apos;ll remove TYPE_MISMATCH_ERR in my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161082</commentid>
    <comment_count>7</comment_count>
      <attachid>42630</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-05 22:54:23 -0800</bug_when>
    <thetext>Created attachment 42630
Patch part 3: stepUp() and stepDown() (rev.2)

- Stop to throw TYPE_MISMATCH_ERR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161086</commentid>
    <comment_count>8</comment_count>
      <attachid>42633</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-05 23:02:13 -0800</bug_when>
    <thetext>Created attachment 42633
Patch part 3: stepUp() and stepDown() (rev.3)

Oops, forgot to remove unnecessary &apos;#include &quot;ExceptionCode.h&quot;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161200</commentid>
    <comment_count>9</comment_count>
      <attachid>42633</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-06 11:32:13 -0800</bug_when>
    <thetext>Comment on attachment 42633
Patch part 3: stepUp() and stepDown() (rev.3)

We need a test case for what happens when we pass undefined or null to stepUp. The binding currently handles that differently from just leaving out the argument, and we need to document that so we don&apos;t accidentally change it later. Also need test cases for extra arguments, and arguments of the wrong type. All this is especially important because we have hand-written bindings. Otherwise we could just fall back on &quot;its the same as everything else&quot; and make excuses for less thorough testing.

The &quot;rint&quot; function is the wrong one to use for rounding. It rounds based on the current rounding mode, and we do not want the code&apos;s behavior to be different depending on the rounding mode. Instead you should use the &quot;round&quot; function, which always rounds in the same way.

&gt; +    Vector&lt;UChar&gt; uchars = WTF::ecma262dtoa(num);
&gt; +    return String(uchars.data(), uchars.size());

This patch does not include the change to add this function, ecma262dtoa, to WTF. I&apos;m not certain that&apos;s a good name for the function, by the way, but we can debate that in a patch to export the function. Besides putting it into a header file it would need to be added to JavaScriptCore.exp to avoid breaking the Mac build and other changes as well.

The style of calling WTF is wrong here. Functions exported from WTF are supposed to have using declarations in the header file, and callers are supposed to simply call them without an explicit WTF prefix.

&gt; +    // Implementations of HTMLInputElement::stepUp() and stepDown().
&gt; +    void stepUp(int, ExceptionCode&amp;);
&gt; +    void stepDown(int, ExceptionCode&amp;);

The overloading of stepUp/stepDown where there is one version without the int that goes up by 1 and another with the int should be handled by overloading in the C++ DOM too. Eventually, the [Optional] on the argument in the IDL file could be enough to let the bindings generator handle this instead of hand-writing a binding. It is not good to hand-write a binding just for this simple reason. And I think we should look at enhancing the bindings generators to eliminate these hand-written functions.

&gt; +    static String doubleToFormString(double);

Typically we name functions based on what they return, not what they take. So this would be formStringFromDouble. This makes the code read more clearly, otherwise it looks like you are calling a function named &quot;doubleXXX&quot; and getting a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161499</commentid>
    <comment_count>10</comment_count>
      <attachid>42733</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-08 21:59:17 -0800</bug_when>
    <thetext>Created attachment 42733
Patch part 3: stepUp() and stepDown() (rev.4)

Thank you for the comments.

(In reply to comment #9)
&gt; The &quot;rint&quot; function is the wrong one to use for rounding. It rounds based on
&gt; the current rounding mode, and we do not want the code&apos;s behavior to be
&gt; different depending on the rounding mode. Instead you should use the &quot;round&quot;
&gt; function, which always rounds in the same way.

Done.

&gt; &gt; +    Vector&lt;UChar&gt; uchars = WTF::ecma262dtoa(num);
&gt; &gt; +    return String(uchars.data(), uchars.size());
&gt; 
&gt; This patch does not include the change to add this function, ecma262dtoa, to
&gt; WTF. I&apos;m not certain that&apos;s a good name for the function, by the way, but we
&gt; can debate that in a patch to export the function. Besides putting it into a
&gt; header file it would need to be added to JavaScriptCore.exp to avoid breaking
&gt; the Mac build and other changes as well.

Would you take a look at Part 1 and Part 2 patches in this bug please?

&gt; The style of calling WTF is wrong here. Functions exported from WTF are
&gt; supposed to have using declarations in the header file, and callers are
&gt; supposed to simply call them without an explicit WTF prefix.

I couldn&apos;t find examples of &quot;using namespace WTF&quot; in dom/*.h and html/*.h, and found it at the top of *.cpp.
I followed it in the updated patch.

&gt; &gt; +    // Implementations of HTMLInputElement::stepUp() and stepDown().
&gt; &gt; +    void stepUp(int, ExceptionCode&amp;);
&gt; &gt; +    void stepDown(int, ExceptionCode&amp;);
&gt; 
&gt; The overloading of stepUp/stepDown where there is one version without the int
&gt; that goes up by 1 and another with the int should be handled by overloading in
&gt; the C++ DOM too. Eventually, the [Optional] on the argument in the IDL file
&gt; could be enough to let the bindings generator handle this instead of
&gt; hand-writing a binding. It is not good to hand-write a binding just for this
&gt; simple reason. And I think we should look at enhancing the bindings generators
&gt; to eliminate these hand-written functions.

Oh, I didn&apos;t know the bindings generator was so clever.  I removed the custom binding code.
So we don&apos;t need to test parameter errors like the following your comment, right?

&gt; We need a test case for what happens when we pass undefined or null to stepUp.
&gt; The binding currently handles that differently from just leaving out the
&gt; argument, and we need to document that so we don&apos;t accidentally change it
&gt; later. Also need test cases for extra arguments, and arguments of the wrong
&gt; type. All this is especially important because we have hand-written bindings.
&gt; Otherwise we could just fall back on &quot;its the same as everything else&quot; and make
&gt; excuses for less thorough testing.
&gt; 


&gt; &gt; +    static String doubleToFormString(double);
&gt; 
&gt; Typically we name functions based on what they return, not what they take. So
&gt; this would be formStringFromDouble. This makes the code read more clearly,
&gt; otherwise it looks like you are calling a function named &quot;doubleXXX&quot; and
&gt; getting a string.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161625</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-09 09:59:51 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; &gt; +    Vector&lt;UChar&gt; uchars = WTF::ecma262dtoa(num);
&gt; &gt; &gt; +    return String(uchars.data(), uchars.size());
&gt; &gt; 
&gt; &gt; This patch does not include the change to add this function, ecma262dtoa, to
&gt; &gt; WTF. I&apos;m not certain that&apos;s a good name for the function, by the way, but we
&gt; &gt; can debate that in a patch to export the function. Besides putting it into a
&gt; &gt; header file it would need to be added to JavaScriptCore.exp to avoid breaking
&gt; &gt; the Mac build and other changes as well.
&gt; 
&gt; Would you take a look at Part 1 and Part 2 patches in this bug please?

OK, I see now. Confusing!

&gt; &gt; The style of calling WTF is wrong here. Functions exported from WTF are
&gt; &gt; supposed to have using declarations in the header file, and callers are
&gt; &gt; supposed to simply call them without an explicit WTF prefix.
&gt; 
&gt; I couldn&apos;t find examples of &quot;using namespace WTF&quot; in dom/*.h and html/*.h, and
&gt; found it at the top of *.cpp.
&gt; I followed it in the updated patch.

That is not what I was talking about. I was talking about using declarations in the header files inside WTF. For example, look at the bottom of ASCIICType.h.

&gt; &gt; The overloading of stepUp/stepDown where there is one version without the int
&gt; &gt; that goes up by 1 and another with the int should be handled by overloading in
&gt; &gt; the C++ DOM too. Eventually, the [Optional] on the argument in the IDL file
&gt; &gt; could be enough to let the bindings generator handle this instead of
&gt; &gt; hand-writing a binding. It is not good to hand-write a binding just for this
&gt; &gt; simple reason. And I think we should look at enhancing the bindings generators
&gt; &gt; to eliminate these hand-written functions.
&gt; 
&gt; Oh, I didn&apos;t know the bindings generator was so clever.  I removed the custom
&gt; binding code.
&gt; So we don&apos;t need to test parameter errors like the following your comment,
&gt; right?

We do need to test them. Just because the bindings generator provides the support doesn&apos;t mean we don&apos;t want test cases. We should always test such things to make sure we are getting the behavior we need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162337</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-10 21:31:21 -0800</bug_when>
    <thetext>I&apos;ll move Part 1 and 2 patches to their own bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162349</commentid>
    <comment_count>13</comment_count>
      <attachid>42926</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-10 22:39:00 -0800</bug_when>
    <thetext>Created attachment 42926
stepUp() and stepDown() (rev.5)

(In reply to comment #11)
&gt; &gt; Would you take a look at Part 1 and Part 2 patches in this bug please?
&gt; OK, I see now. Confusing!

I moved them to their own bugs.

&gt; That is not what I was talking about. I was talking about using declarations in
&gt; the header files inside WTF. For example, look at the bottom of ASCIICType.h.

Oh, I have understood.  Updated dtoa.h in the patch part 1.

&gt; &gt; So we don&apos;t need to test parameter errors like the following your comment,
&gt; &gt; right?
&gt; 
&gt; We do need to test them. Just because the bindings generator provides the
&gt; support doesn&apos;t mean we don&apos;t want test cases. We should always test such
&gt; things to make sure we are getting the behavior we need.

I added tests for null/undefined/extra arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162815</commentid>
    <comment_count>14</comment_count>
      <attachid>42926</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-11 23:58:43 -0800</bug_when>
    <thetext>Comment on attachment 42926
stepUp() and stepDown() (rev.5)

I need to update the patch due to the ecma262dtoa() change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164921</commentid>
    <comment_count>15</comment_count>
      <attachid>43489</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-18 23:31:48 -0800</bug_when>
    <thetext>Created attachment 43489
Proposed patch (rev.6)

- sync with the function name change of ecma262dtoa()
- improve the test result readability
- RenderSlider uses the double-to-string function introduced by this change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165019</commentid>
    <comment_count>16</comment_count>
      <attachid>43489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-19 10:34:24 -0800</bug_when>
    <thetext>Comment on attachment 43489
Proposed patch (rev.6)

&gt; +Tests stepDown()/stepUp() for unsuppoted typpes

A couple spelling errors.

&gt; +void HTMLInputElement::addForNumber(double step, double count, ExceptionCode&amp; ec)

This function name doesn&apos;t seem great. I would call it something more like &quot;applyStep&quot;. Having &quot;for number&quot; in the name of a function that works on both number and range seems like an immediate mistake.

&gt; +    double current = 0.0;
&gt; +    if (!formStringToDouble(value(), &amp;current)) {
&gt; +        ec = INVALID_STATE_ERR;
&gt; +        return;
&gt; +    }

No need to initialize &quot;current&quot; here.

&gt; +        double minimum = 0.0;
&gt; +        if (formStringToDouble(getAttribute(minAttr), &amp;minimum)) {
&gt; +            if (newValue &lt; minimum) {
&gt; +                ec = INVALID_STATE_ERR;
&gt; +                return;
&gt; +            }
&gt; +        }
&gt; +        double n = round((newValue - minimum) / step);
&gt; +        newValue = minimum + n * step;

We might want to initialize minimum to &quot;defaultMinimum&quot; rather than an explicit 0.

I think the code would read more clearly as a single-line expression without the local variable &quot;n&quot;.

&gt; +        double maximum = 0.0;
&gt; +        if (formStringToDouble(getAttribute(maxAttr), &amp;maximum)) {
&gt; +            if (newValue &gt; maximum) {
&gt; +                ec = INVALID_STATE_ERR;
&gt; +                return;
&gt; +            }
&gt; +        }

No need to initialize &quot;maximum&quot; here.

I think it would be better to factor things so that the step, minimum, maximum fetching was in separate functions. I don&apos;t see any reason to have entirely separate code for range and number just because the minimum and maximum are computed differently for those two. I would have minimum and maximum functions, and return infinity if there is no maximum. Or a getMaximum function that returns a boolean.

Generally speaking it&apos;s annoying to have all the logic twice in this function!

I think you should just call getAllowedValueStep inside the applyStep function, and make the stepUp and stepDown functions just pass things through to applyStep.

&gt; +String HTMLInputElement::formStringFromDouble(double num)

Please use whole words. Use &quot;number&quot; instead of &quot;num&quot;.

&gt; +    // Converts the specified number to a string.  This is an implementation of
&gt; +    // HTML5&apos;s &quot;algorithm to convert a number to a string&quot; for NUMBER/RANGE types.
&gt; +    static String formStringFromDouble(double);

We use one space after a period.

I&apos;ll say review- because I think at least the name &quot;addForNumber&quot; needs to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165154</commentid>
    <comment_count>17</comment_count>
      <attachid>43535</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-19 17:04:04 -0800</bug_when>
    <thetext>Created attachment 43535
Proposed patch (rev.7)

(In reply to comment #16)
&gt; (From update of attachment 43489 [details])
&gt; &gt; +Tests stepDown()/stepUp() for unsuppoted typpes
&gt; 
&gt; A couple spelling errors.

Fixed.

&gt; &gt; +void HTMLInputElement::addForNumber(double step, double count, ExceptionCode&amp; ec)
&gt; 
&gt; This function name doesn&apos;t seem great. I would call it something more like
&gt; &quot;applyStep&quot;. Having &quot;for number&quot; in the name of a function that works on both
&gt; number and range seems like an immediate mistake.

Renamed to applyStepForNumberOrRange().

&gt; &gt; +    double current = 0.0;
&gt; &gt; +    if (!formStringToDouble(value(), &amp;current)) {
&gt; &gt; +        ec = INVALID_STATE_ERR;
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; No need to initialize &quot;current&quot; here.

Fixed.

&gt; &gt; +        double minimum = 0.0;
&gt; &gt; +        if (formStringToDouble(getAttribute(minAttr), &amp;minimum)) {
&gt; &gt; +            if (newValue &lt; minimum) {
&gt; &gt; +                ec = INVALID_STATE_ERR;
&gt; &gt; +                return;
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        double n = round((newValue - minimum) / step);
&gt; &gt; +        newValue = minimum + n * step;
&gt; 
&gt; We might want to initialize minimum to &quot;defaultMinimum&quot; rather than an explicit
&gt; 0.

Removed the code.

&gt; I think the code would read more clearly as a single-line expression without
&gt; the local variable &quot;n&quot;.

Done.

&gt; &gt; +        double maximum = 0.0;
&gt; &gt; +        if (formStringToDouble(getAttribute(maxAttr), &amp;maximum)) {
&gt; &gt; +            if (newValue &gt; maximum) {
&gt; &gt; +                ec = INVALID_STATE_ERR;
&gt; &gt; +                return;
&gt; &gt; +            }
&gt; &gt; +        }
&gt; 
&gt; No need to initialize &quot;maximum&quot; here.

Removed the code.

&gt; I think it would be better to factor things so that the step, minimum, maximum
&gt; fetching was in separate functions. I don&apos;t see any reason to have entirely
&gt; separate code for range and number just because the minimum and maximum are
&gt; computed differently for those two. I would have minimum and maximum functions,
&gt; and return infinity if there is no maximum. Or a getMaximum function that
&gt; returns a boolean.
&gt; 
&gt; Generally speaking it&apos;s annoying to have all the logic twice in this function!

I made some changes to unify the code for NUMBER and RANGE.
 - Renamd rangeMinimum() and rangeMaximum() to minimum() and maximum(), and add support for NUMBER.
 - Introduce stepBase().
Now rangeUnderflow(), rangeOverflow() and applyStepForNumberOrRange() get cleaner :-)


&gt; I think you should just call getAllowedValueStep inside the applyStep function,
&gt; and make the stepUp and stepDown functions just pass things through to
&gt; applyStep.

Done.

&gt; &gt; +String HTMLInputElement::formStringFromDouble(double num)
&gt; 
&gt; Please use whole words. Use &quot;number&quot; instead of &quot;num&quot;.

Done.

&gt; &gt; +    // Converts the specified number to a string.  This is an implementation of
&gt; &gt; +    // HTML5&apos;s &quot;algorithm to convert a number to a string&quot; for NUMBER/RANGE types.
&gt; &gt; +    static String formStringFromDouble(double);
&gt; 
&gt; We use one space after a period.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165156</commentid>
    <comment_count>18</comment_count>
      <attachid>43536</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-19 17:08:39 -0800</bug_when>
    <thetext>Created attachment 43536
Proposed patch (rev.8)

Oops, I uploaded an old patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167341</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 12:32:02 -0800</bug_when>
    <thetext>Attachment 43536 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/html/HTMLInputElement.cpp:307:  One line control clauses should not use braces.  [whitespace/braces] [4]
Done processing WebCore/html/HTMLInputElement.cpp
Done processing WebCore/rendering/RenderSlider.cpp
Done processing WebCore/html/HTMLInputElement.h
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167472</commentid>
    <comment_count>20</comment_count>
      <attachid>44047</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-30 16:49:12 -0800</bug_when>
    <thetext>Created attachment 44047
Proposed patch (rev.9)

&gt; WebCore/html/HTMLInputElement.cpp:307:  One line control clauses should not use
&gt; braces.  [whitespace/braces] [4]

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167473</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-11-30 16:54:16 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44047 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169357</commentid>
    <comment_count>22</comment_count>
      <attachid>44047</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-07 10:22:20 -0800</bug_when>
    <thetext>Comment on attachment 44047
Proposed patch (rev.9)

&gt; +    static const double defaultMinimumForNumber = -DBL_MAX;
&gt;      // The range type&apos;s &quot;default minimum&quot; is 0.
&gt; +    static const double defaultMinimumForRange = 0.0;

&gt; +    static const double defaultMaximumForNumber = DBL_MAX;
&gt;      // The range type&apos;s &quot;default maximum&quot; is 100.
&gt; +    static const double defaultMaximumForRange = 100.0;

&gt; +        static const double defaultStepBase = 0.0;

I think these constants should go at the top of the file instead of in the various functions that use them.

&gt; +        // A remedy for the inconsistent min/max values for RANGE.
&gt; +        // Sets the maxmimum to the default or the minimum value.
&gt; +        const double min = minimum();

Normally we do not use const for local variables in WebKit.

&gt; +        if (max &lt; min)
&gt; +            max = min &lt; defaultMaximum ? defaultMaximum : min;

This could be written more cleanly using the max function:

    max = std::max(std::max(min, defaultMaximum), max);

The idea is that you use the highest of the three: min, max, and defaultMaximum.

Also, if the local variable was not named max, you would not need the &quot;std::&quot; prefixes either.

r=me as is -- maybe you can adopt my suggestions in a later patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169575</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-07 18:29:26 -0800</bug_when>
    <thetext>I modified for Darin&apos;s suggestions, and committed manually as r51822.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42007</attachid>
            <date>2009-10-28 02:34:31 -0700</date>
            <delta_ts>2009-11-10 21:39:28 -0800</delta_ts>
            <desc>Patch part 1: Expose ECMA-262-version of dtoa()</desc>
            <filename>0001-step-dtoa-1.patch</filename>
            <type>text/plain</type>
            <size>8606</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBlMTMwYTVkMzFiNjRiNDBmNDMwNzI5Y2E4MGYzNDU1MWNmNTA1MzAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE3OjQ3OjE0ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcC1k
dG9hLTEKCi0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE3ICsrKysKIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCAgICAg
ICAgICAgICAgICAgIHwgICAgMSArCiAuLi4vSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZGVmICAgICAgICAgICAgICB8ICAgIDEgKwogSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5n
LmNwcCAgICAgICAgICAgICAgICAgfCAgIDY0ICstLS0tLS0tLS0tLS0tLS0tCiBKYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzkgKysrKysrKysr
KysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmggICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNSArCiA2IGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA2MyBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxYzhhZi4uNDdmMTg4YSAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDA5LTEwLTI4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlIFVTdHJpbmc6OmZyb20oZG91YmxlKSBpbXBsZW1lbnRhdGlvbiB0byBuZXcgV1RGOjplY21h
MjYyZHRvYSgpLCBhbmQKKyAgICAgICAgZXhwb3NlIGVjbWEyNjJkdG9hKCkuICBXZWJDb3JlIHdp
bGwgdXNlIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc0NTEKKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAg
ICAgICAqIHJ1bnRpbWUvVVN0cmluZy5jcHA6CisgICAgICAgIChKU0M6OlVTdHJpbmc6OmZyb20p
OgorICAgICAgICAqIHd0Zi9kdG9hLmNwcDoKKyAgICAgICAgKFdURjo6YXBwZW5kQXNjaWkpOgor
ICAgICAgICAoV1RGOjplY21hMjYyZHRvYSk6CisgICAgICAgICogd3RmL2R0b2EuaDoKKwogMjAw
OS0xMC0yNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggMTJj
OTZiMy4uZWNjYjA4NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZXhwCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMzAxLDYgKzMw
MSw3IEBAIF9fWk4zSlNDbHRFUktOU183VVN0cmluZ0VTMl8KIF9fWk4zV1RGMTBmYXN0Q2FsbG9j
RW1tCiBfX1pOM1dURjEwZmFzdE1hbGxvY0VtCiBfX1pOM1dURjExY3VycmVudFRpbWVFdgorX19a
TjNXVEYxMWVjbWEyNjJkdG9hRWQKIF9fWk4zV1RGMTFmYXN0UmVhbGxvY0VQdm0KIF9fWk4zV1RG
MTJjcmVhdGVUaHJlYWRFUEZQdlMwX0VTMF8KIF9fWk4zV1RGMTJjcmVhdGVUaHJlYWRFUEZQdlMw
X0VTMF9QS2MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4
IDAxZjg0ZjEuLmE3NTM5OWYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZgpAQCAtMTE0LDYgKzExNCw3IEBAIEVYUE9SVFMKICAgICA/ZGV0YWNoVGhyZWFkQFdU
RkBAWUFYSUBaCiAgICAgP2RpZFRpbWVPdXRAVGltZW91dENoZWNrZXJASlNDQEBRQUVfTlBBVkV4
ZWNTdGF0ZUAyQEBaCiAgICAgP2R1bXBTYW1wbGVEYXRhQEpTR2xvYmFsRGF0YUBKU0NAQFFBRVhQ
QVZFeGVjU3RhdGVAMkBAWgorICAgID9lY21hMjYyZHRvYUBXVEZAQFlBP0FWPyRWZWN0b3JAX1ck
MEFAQDFATkBaCiAgICAgP2VudW1lcmFibGVAUHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUJFX05Y
WgogICAgID9lcXVhbEBJZGVudGlmaWVyQEpTQ0BAU0FfTlBCVVJlcEBVU3RyaW5nQDJAUEJEQFoK
ICAgICA/ZXF1YWxASlNDQEBZQV9OUEJVUmVwQFVTdHJpbmdAMUAwQFoKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1VTdHJpbmcuY3BwCmluZGV4IGU2NmNhOTMuLjk0MGNiOGUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9V
U3RyaW5nLmNwcApAQCAtMTAyNSw2OSArMTAyNSw3IEBAIFVTdHJpbmcgVVN0cmluZzo6ZnJvbShs
b25nIGwpCiAKIFVTdHJpbmcgVVN0cmluZzo6ZnJvbShkb3VibGUgZCkKIHsKLSAgICAvLyBhdm9p
ZCBldmVyIHByaW50aW5nIC1OYU4sIGluIEpTIGNvbmNlcHR1YWxseSB0aGVyZSBpcyBvbmx5IG9u
ZSBOYU4gdmFsdWUKLSAgICBpZiAoaXNuYW4oZCkpCi0gICAgICAgIHJldHVybiAiTmFOIjsKLSAg
ICBpZiAoIWQpCi0gICAgICAgIHJldHVybiAiMCI7IC8vIC0wIC0+ICIwIgotCi0gICAgY2hhciBi
dWZbODBdOwotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAgaW50IHNpZ247Ci0gICAgCi0gICAg
Y2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQsIDAsICZkZWNpbWFsUG9p
bnQsICZzaWduLCBOVUxMKTsKLSAgICBpbnQgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihzdHJs
ZW4ocmVzdWx0KSk7Ci0gIAotICAgIGludCBpID0gMDsKLSAgICBpZiAoc2lnbikKLSAgICAgICAg
YnVmW2krK10gPSAnLSc7Ci0gIAotICAgIGlmIChkZWNpbWFsUG9pbnQgPD0gMCAmJiBkZWNpbWFs
UG9pbnQgPiAtNikgewotICAgICAgICBidWZbaSsrXSA9ICcwJzsKLSAgICAgICAgYnVmW2krK10g
PSAnLic7Ci0gICAgICAgIGZvciAoaW50IGogPSBkZWNpbWFsUG9pbnQ7IGogPCAwOyBqKyspCi0g
ICAgICAgICAgICBidWZbaSsrXSA9ICcwJzsKLSAgICAgICAgc3RyY3B5KGJ1ZiArIGksIHJlc3Vs
dCk7Ci0gICAgfSBlbHNlIGlmIChkZWNpbWFsUG9pbnQgPD0gMjEgJiYgZGVjaW1hbFBvaW50ID4g
MCkgewotICAgICAgICBpZiAobGVuZ3RoIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAgICAgICAg
c3RyY3B5KGJ1ZiArIGksIHJlc3VsdCk7Ci0gICAgICAgICAgICBpICs9IGxlbmd0aDsKLSAgICAg
ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGVjaW1hbFBvaW50IC0gbGVuZ3RoOyBqKyspCi0g
ICAgICAgICAgICAgICAgYnVmW2krK10gPSAnMCc7Ci0gICAgICAgICAgICBidWZbaV0gPSAnXDAn
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RybmNweShidWYgKyBpLCByZXN1bHQs
IGRlY2ltYWxQb2ludCk7Ci0gICAgICAgICAgICBpICs9IGRlY2ltYWxQb2ludDsKLSAgICAgICAg
ICAgIGJ1ZltpKytdID0gJy4nOwotICAgICAgICAgICAgc3RyY3B5KGJ1ZiArIGksIHJlc3VsdCAr
IGRlY2ltYWxQb2ludCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHJlc3VsdFswXSA8ICcw
JyB8fCByZXN1bHRbMF0gPiAnOScpCi0gICAgICAgIHN0cmNweShidWYgKyBpLCByZXN1bHQpOwot
ICAgIGVsc2UgewotICAgICAgICBidWZbaSsrXSA9IHJlc3VsdFswXTsKLSAgICAgICAgaWYgKGxl
bmd0aCA+IDEpIHsKLSAgICAgICAgICAgIGJ1ZltpKytdID0gJy4nOwotICAgICAgICAgICAgc3Ry
Y3B5KGJ1ZiArIGksIHJlc3VsdCArIDEpOwotICAgICAgICAgICAgaSArPSBsZW5ndGggLSAxOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBidWZbaSsrXSA9ICdlJzsKLSAgICAgICAgYnVm
W2krK10gPSAoZGVjaW1hbFBvaW50ID49IDApID8gJysnIDogJy0nOwotICAgICAgICAvLyBkZWNp
bWFsUG9pbnQgY2FuJ3QgYmUgbW9yZSB0aGFuIDMgZGlnaXRzIGRlY2ltYWwgZ2l2ZW4gdGhlCi0g
ICAgICAgIC8vIG5hdHVyZSBvZiBmbG9hdCByZXByZXNlbnRhdGlvbgotICAgICAgICBpbnQgZXhw
b25lbnRpYWwgPSBkZWNpbWFsUG9pbnQgLSAxOwotICAgICAgICBpZiAoZXhwb25lbnRpYWwgPCAw
KQotICAgICAgICAgICAgZXhwb25lbnRpYWwgPSAtZXhwb25lbnRpYWw7Ci0gICAgICAgIGlmIChl
eHBvbmVudGlhbCA+PSAxMDApCi0gICAgICAgICAgICBidWZbaSsrXSA9IHN0YXRpY19jYXN0PGNo
YXI+KCcwJyArIGV4cG9uZW50aWFsIC8gMTAwKTsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFsID49
IDEwKQotICAgICAgICAgICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyAoZXhw
b25lbnRpYWwgJSAxMDApIC8gMTApOwotICAgICAgICBidWZbaSsrXSA9IHN0YXRpY19jYXN0PGNo
YXI+KCcwJyArIGV4cG9uZW50aWFsICUgMTApOwotICAgICAgICBidWZbaSsrXSA9ICdcMCc7Ci0g
ICAgfQotICAgIAotICAgIHJldHVybiBVU3RyaW5nKGJ1Zik7CisgICAgcmV0dXJuIFVTdHJpbmco
ZWNtYTI2MmR0b2EoZCkpOwogfQogCiBVU3RyaW5nIFVTdHJpbmc6OnNwbGljZVN1YnN0cmluZ3NX
aXRoU2VwYXJhdG9ycyhjb25zdCBSYW5nZSogc3Vic3RyaW5nUmFuZ2VzLCBpbnQgcmFuZ2VDb3Vu
dCwgY29uc3QgVVN0cmluZyogc2VwYXJhdG9ycywgaW50IHNlcGFyYXRvckNvdW50KSBjb25zdApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuY3BwIGIvSmF2YVNjcmlwdENvcmUv
d3RmL2R0b2EuY3BwCmluZGV4IGQ3NWMxN2EuLjAyYzdhZTkgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3d0Zi9kdG9hLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5jcHAKQEAg
LTE0OCw2ICsxNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi9BbHdheXNJbmxpbmUuaD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCkBAIC0yMzc2LDQgKzIzNzcsODIgQEAgcmV0OgogICAgICAgICAq
cnZlID0gczsKIH0KIAorc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRBc2NpaShjb25z
dCBjaGFyKiBzcmMsIHVuc2lnbmVkIHNpemUsIFZlY3RvcjxVQ2hhciwgODA+JiBkc3QpCit7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgZHN0LmFwcGVu
ZChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPigqc3JjKyspKTsKK30KKworc3RhdGljIEFMV0FZ
U19JTkxJTkUgdm9pZCBhcHBlbmRBc2NpaShjb25zdCBjaGFyKiBzcmMsIFZlY3RvcjxVQ2hhciwg
ODA+JiBkc3QpCit7CisgICAgd2hpbGUgKCpzcmMpCisgICAgICAgIGRzdC5hcHBlbmQoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oKnNyYysrKSk7Cit9CisKK1ZlY3RvcjxVQ2hhcj4gZWNtYTI2
MmR0b2EoZG91YmxlIGQpCit7CisgICAgVmVjdG9yPFVDaGFyLCA4MD4gYnVmOworCisgICAgLy8g
YXZvaWQgZXZlciBwcmludGluZyAtTmFOLCBpbiBKUyBjb25jZXB0dWFsbHkgdGhlcmUgaXMgb25s
eSBvbmUgTmFOIHZhbHVlCisgICAgaWYgKGlzbmFuKGQpKSB7CisgICAgICAgIGFwcGVuZEFzY2lp
KCJOYU4iLCBidWYpOworICAgICAgICByZXR1cm4gYnVmOworICAgIH0KKyAgICAvLyAtMCAtPiAi
MCIKKyAgICBpZiAoIWQpIHsKKyAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICByZXR1
cm4gYnVmOworICAgIH0KKworICAgIGludCBkZWNpbWFsUG9pbnQ7CisgICAgaW50IHNpZ247CisK
KyAgICBjaGFyIHJlc3VsdFs4MF07CisgICAgV1RGOjpkdG9hKHJlc3VsdCwgZCwgMCwgJmRlY2lt
YWxQb2ludCwgJnNpZ24sIE5VTEwpOworICAgIGludCBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+
KHN0cmxlbihyZXN1bHQpKTsKKworICAgIGlmIChzaWduKQorICAgICAgICBidWYuYXBwZW5kKCct
Jyk7CisKKyAgICBpZiAoZGVjaW1hbFBvaW50IDw9IDAgJiYgZGVjaW1hbFBvaW50ID4gLTYpIHsK
KyAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICBidWYuYXBwZW5kKCcuJyk7CisgICAg
ICAgIGZvciAoaW50IGogPSBkZWNpbWFsUG9pbnQ7IGogPCAwOyBqKyspCisgICAgICAgICAgICBi
dWYuYXBwZW5kKCcwJyk7CisgICAgICAgIGFwcGVuZEFzY2lpKHJlc3VsdCwgYnVmKTsKKyAgICB9
IGVsc2UgaWYgKGRlY2ltYWxQb2ludCA8PSAyMSAmJiBkZWNpbWFsUG9pbnQgPiAwKSB7CisgICAg
ICAgIGlmIChsZW5ndGggPD0gZGVjaW1hbFBvaW50KSB7CisgICAgICAgICAgICBhcHBlbmRBc2Np
aShyZXN1bHQsIGxlbmd0aCwgYnVmKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwg
ZGVjaW1hbFBvaW50IC0gbGVuZ3RoOyBqKyspCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgn
MCcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXBwZW5kQXNjaWkocmVzdWx0LCBk
ZWNpbWFsUG9pbnQsIGJ1Zik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcuJyk7CisgICAgICAg
ICAgICBhcHBlbmRBc2NpaShyZXN1bHQgKyBkZWNpbWFsUG9pbnQsIGJ1Zik7CisgICAgICAgIH0K
KyAgICB9IGVsc2UgaWYgKHJlc3VsdFswXSA8ICcwJyB8fCByZXN1bHRbMF0gPiAnOScpCisgICAg
ICAgIGFwcGVuZEFzY2lpKHJlc3VsdCwgYnVmKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYnVmLmFw
cGVuZChyZXN1bHRbMF0pOworICAgICAgICBpZiAobGVuZ3RoID4gMSkgeworICAgICAgICAgICAg
YnVmLmFwcGVuZCgnLicpOworICAgICAgICAgICAgYXBwZW5kQXNjaWkocmVzdWx0ICsgMSwgYnVm
KTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1Zi5hcHBlbmQoJ2UnKTsKKyAgICAgICAgYnVmLmFw
cGVuZCgoZGVjaW1hbFBvaW50ID49IDApID8gJysnIDogJy0nKTsKKyAgICAgICAgLy8gZGVjaW1h
bFBvaW50IGNhbid0IGJlIG1vcmUgdGhhbiAzIGRpZ2l0cyBkZWNpbWFsIGdpdmVuIHRoZQorICAg
ICAgICAvLyBuYXR1cmUgb2YgZmxvYXQgcmVwcmVzZW50YXRpb24KKyAgICAgICAgaW50IGV4cG9u
ZW50aWFsID0gZGVjaW1hbFBvaW50IC0gMTsKKyAgICAgICAgaWYgKGV4cG9uZW50aWFsIDwgMCkK
KyAgICAgICAgICAgIGV4cG9uZW50aWFsID0gLWV4cG9uZW50aWFsOworICAgICAgICBpZiAoZXhw
b25lbnRpYWwgPj0gMTAwKQorICAgICAgICAgICAgYnVmLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hh
cj4oJzAnICsgZXhwb25lbnRpYWwgLyAxMDApKTsKKyAgICAgICAgaWYgKGV4cG9uZW50aWFsID49
IDEwKQorICAgICAgICAgICAgYnVmLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oJzAnICsgKGV4
cG9uZW50aWFsICUgMTAwKSAvIDEwKSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc3RhdGljX2Nhc3Q8
VUNoYXI+KCcwJyArIGV4cG9uZW50aWFsICUgMTApKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZjsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
ZHRvYS5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuaAppbmRleCBjYmVjN2M3Li44ZDFkZWRm
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5oCisrKyBiL0phdmFTY3JpcHRD
b3JlL3d0Zi9kdG9hLmgKQEAgLTIxLDYgKzIxLDkgQEAKICNpZm5kZWYgV1RGX2R0b2FfaAogI2Rl
ZmluZSBXVEZfZHRvYV9oCiAKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgorCiBuYW1lc3BhY2UgV1RGIHsKICAgICBjbGFzcyBNdXRleDsK
IH0KQEAgLTMyLDYgKzM1LDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgZG91YmxlIHN0cnRvZChj
b25zdCBjaGFyKiBzMDAsIGNoYXIqKiBzZSk7CiAgICAgdm9pZCBkdG9hKGNoYXIqIHJlc3VsdCwg
ZG91YmxlIGQsIGludCBuZGlnaXRzLCBpbnQqIGRlY3B0LCBpbnQqIHNpZ24sIGNoYXIqKiBydmUp
OwogCisgICAgLy8gZHRvYSgpIGZvciBFQ01BLTI2MiAnVG9TdHJpbmcgQXBwbGllZCB0byB0aGUg
TnVtYmVyIFR5cGUuJworICAgIFZlY3RvcjxVQ2hhcj4gZWNtYTI2MmR0b2EoZG91YmxlIGQpOwog
fSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBXVEZfZHRvYV9oCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42008</attachid>
            <date>2009-10-28 02:49:15 -0700</date>
            <delta_ts>2009-11-10 21:39:44 -0800</delta_ts>
            <desc>Patch part 2: step attribute and ValidityState.stepMismatch</desc>
            <filename>0001-validity-1.patch</filename>
            <type>text/plain</type>
            <size>25669</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA4NzY5NGI1OGY4ZmI5YjY4ZmVjODgxMjQ2ZjJjYzRlYzFmYmY2ZTYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjExOjU3ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gdmFsaWRp
dHktMQoKLS0tCiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTAgKysrCiBKYXZhU2NyaXB0Q29yZS93dGYvTWF0aEV4dHJhcy5oICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0
Y2gtbnVtYmVyLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrCiAuLi4vZm9ybXMvVmFsaWRpdHlT
dGF0ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLmh0bWwgICB8ICAgMTMgKysrKwogLi4uL1ZhbGlkaXR5
U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLWV4cGVjdGVkLnR4dCAgfCAgIDIzICsrKysrKwogLi4u
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLmh0bWwgICAgfCAgIDEzICsr
KysKIC4uLmRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IHwg
ICAyNSArKysrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQu
aHRtbCAgICB8ICAgMTMgKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLW51bWJl
ci5qcyAgICAgICAgICAgfCAgIDU4ICsrKysrKysrKysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUt
c3RlcE1pc21hdGNoLXJhbmdlLmpzICAgICAgICAgICAgfCAgIDYxICsrKysrKysrKysrKysrKysK
IC4uLi9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC11bnN1cHBvcnRlZC5qcyAgICAgIHwgICA0
MSArKysrKysrKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDMzICsrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbiAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcCAgICAgICAgICAgICAgICAgIHwgICA3NCArKysrKysrKysrKysrKysrKysrKwogV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsK
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAg
MiArCiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDcgKysKIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCAgICAgICAg
ICAgICAgICAgfCAgIDIzICsrKysrLS0KIDIwIGZpbGVzIGNoYW5nZWQsIDQzNyBpbnNlcnRpb25z
KCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVw
TWlzbWF0Y2gtbnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVw
TWlzbWF0Y2gtcmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXN0ZXBNaXNtYXRjaC11bnN1cHBvcnRlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gt
bnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtcmFuZ2UuanMKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRl
LXN0ZXBNaXNtYXRjaC11bnN1cHBvcnRlZC5qcwoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0N2YxODhhLi4yMmMx
YWM5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTAtMjkgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCByaW50KCkgZm9yIE1TVkMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgKiB3dGYvTWF0aEV4
dHJhcy5oOgorICAgICAgICAocmludCk6CisKIDIwMDktMTAtMjggIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL01hdGhFeHRyYXMuaCBiL0phdmFTY3JpcHRD
b3JlL3d0Zi9NYXRoRXh0cmFzLmgKaW5kZXggNTU2MjMwZS4uZmQwODllNiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvd3RmL01hdGhFeHRyYXMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYv
TWF0aEV4dHJhcy5oCkBAIC0xMTcsNiArMTE3LDcgQEAgaW5saW5lIGRvdWJsZSB0cnVuYyhkb3Vi
bGUgbnVtKSB7IHJldHVybiBudW0gPiAwID8gZmxvb3IobnVtKSA6IGNlaWwobnVtKTsgfQogaW5s
aW5lIGJvb2wgaXNpbmYoZG91YmxlIG51bSkgeyByZXR1cm4gIV9maW5pdGUobnVtKSAmJiAhX2lz
bmFuKG51bSk7IH0KIGlubGluZSBib29sIGlzbmFuKGRvdWJsZSBudW0pIHsgcmV0dXJuICEhX2lz
bmFuKG51bSk7IH0KIGlubGluZSBib29sIHNpZ25iaXQoZG91YmxlIG51bSkgeyByZXR1cm4gX2Nv
cHlzaWduKDEuMCwgbnVtKSA8IDA7IH0KK2lubGluZSBkb3VibGUgcmludChkb3VibGUgbnVtKSB7
IHJldHVybiBmbG9vcihudW0gKyAwLjUpOyB9CiAKIGlubGluZSBkb3VibGUgbmV4dGFmdGVyKGRv
dWJsZSB4LCBkb3VibGUgeSkgeyByZXR1cm4gX25leHRhZnRlcih4LCB5KTsgfQogaW5saW5lIGZs
b2F0IG5leHRhZnRlcmYoZmxvYXQgeCwgZmxvYXQgeSkgeyByZXR1cm4geCA+IHkgPyB4IC0gRkxU
X0VQU0lMT04gOiB4ICsgRkxUX0VQU0lMT047IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NGE1MDNkLi5iYjRhYzQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTAtMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0ZXN0cyBmb3IgVmFsaWRpdHlTdGF0ZS5zdGVwTWlzbWF0Y2guCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1udW1iZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNo
LW51bWJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
c3RlcE1pc21hdGNoLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXVuc3VwcG9ydGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0
ZXBNaXNtYXRjaC11bnN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1udW1iZXIuanM6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtc3RlcE1p
c21hdGNoLXJhbmdlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC11bnN1cHBvcnRlZC5qczogQWRkZWQuCisKIDIw
MDktMTAtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODJjN2YxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0
ZXBNaXNtYXRjaC1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NoZWNrIHN0
ZXBNaXNtYXRjaCByZXN1bHRzIGZvciB0eXBlPW51bWJlci4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQ
QVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxp
ZGl0eS5zdGVwTWlzbWF0Y2ggaXMgdHJ1ZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0
Y2ggaXMgdHJ1ZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BB
U1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlk
aXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0
Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQ
QVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyB0cnVlCitQQVNTIGlucHV0LnZhbGlk
aXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0
Y2ggaXMgdHJ1ZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BB
U1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1udW1iZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM5NjdiZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0
Y2gtbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0
ZS1zdGVwTWlzbWF0Y2gtbnVtYmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0
ZXBNaXNtYXRjaC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWE4MWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1yYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMyBAQAorQ2hlY2sgc3RlcE1pc21hdGNoIHJlc3VsdHMgZm9yIHR5
cGU9cmFuZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnZh
bGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlz
bWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNl
CitQQVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52
YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1p
c21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxz
ZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQu
dmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBN
aXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFs
c2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0
LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVw
TWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNGY4Zjc4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtcmFuZ2UuaHRtbApAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1yYW5nZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNt
YXRjaC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjNkNTBmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjUgQEAKK0NoZWNrIHN0ZXBNaXNtYXRjaCByZXN1bHRzIGZvciB0eXBlcyB3aGlj
aCBkb2VzIG5vdCBzdXBwb3J0IGZvciBzdGVwLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5w
dXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5LnN0
ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMg
ZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlu
cHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5z
dGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlz
IGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBp
bnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1MgaW5wdXQudmFsaWRpdHku
c3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCBp
cyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2ggaXMgZmFsc2UKK1BBU1Mg
aW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoIGlzIGZhbHNlCitQQVNTIGlucHV0LnZhbGlkaXR5
LnN0ZXBNaXNtYXRjaCBpcyBmYWxzZQorUEFTUyBpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gg
aXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3Rl
cE1pc21hdGNoLXVuc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtc3RlcE1pc21hdGNoLXVuc3VwcG9ydGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2Y5YzRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQuaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC11
bnN1cHBvcnRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUt
c3RlcE1pc21hdGNoLW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40M2U4N2EyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtbnVt
YmVyLmpzCkBAIC0wLDAgKzEsNTggQEAKK2Rlc2NyaXB0aW9uKCdDaGVjayBzdGVwTWlzbWF0Y2gg
cmVzdWx0cyBmb3IgdHlwZT1udW1iZXIuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0gJ251bWJlcic7CisKKy8vIElmIHRoZSB2
YWx1ZSBpcyBlbXB0eSwgaXQgbmV2ZXIgbWlzbWF0Y2hlcy4KK2lucHV0LnZhbHVlID0gJyc7Citz
aG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CitpbnB1dC5t
aW4gPSAnMC4xJzsKK2lucHV0LnN0ZXAgPSAnMS4wJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0
eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKKworLy8gSW50ZWdlcnMKK2lucHV0LnZhbHVlID0g
JzEnOworaW5wdXQubWluID0gJzAnOworaW5wdXQuc3RlcCA9ICcyJzsKK3Nob3VsZEJlKCdpbnB1
dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gnLCAndHJ1ZScpOworaW5wdXQudmFsdWUgPSAnLTMnOwor
aW5wdXQubWluID0gJy00JzsKK2lucHV0LnN0ZXAgPSAnMic7CitzaG91bGRCZSgnaW5wdXQudmFs
aWRpdHkuc3RlcE1pc21hdGNoJywgJ3RydWUnKTsKKy8vIEludmFsaWQgc3RlcCBhdHRyaWJ1dGUg
aXMgaWdub3JlZC4KK2lucHV0LnZhbHVlID0gJy0zJzsKK2lucHV0Lm1pbiA9ICctNCc7CitpbnB1
dC5zdGVwID0gJy0yJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gnLCAn
ZmFsc2UnKTsKKy8vIEh1Z2UgbnVtYmVycyBhbmQgc21hbGwgc3RlcDsgdW5jb21wYXJhYmxlCitp
bnB1dC52YWx1ZSA9ICcxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCc7CitpbnB1dC5taW4gPSAnJzsK
K2lucHV0LnN0ZXAgPSAnMyc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNo
JywgJ2ZhbHNlJyk7CitpbnB1dC52YWx1ZSA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7Citz
aG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CitpbnB1dC52
YWx1ZSA9ICcxLjc5NzY5MzEzNDg2MjMxNTVlKzMwOCc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRp
dHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CisvLyBIdWdlIG51bWJlcnMgYW5kIGh1Z2Ugc3Rl
cAoraW5wdXQudmFsdWUgPSAnMS42MGUrMzA4JzsKK2lucHV0LnN0ZXAgPSAnMC4yMGUrMzA4JzsK
K3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKK2lucHV0
LnZhbHVlID0gJzEuNjBlKzMwOCc7CitpbnB1dC5zdGVwID0gJzAuMjJlKzMwOCc7CitzaG91bGRC
ZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ3RydWUnKTsKKworLy8gRnJhY3Rpb25h
bCBudW1iZXJzCitpbnB1dC52YWx1ZSA9ICcwLjknOworaW5wdXQuc3RlcCA9ICcwLjEnOworc2hv
dWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudmFs
dWUgPSAnMC45JzsKK2lucHV0LnN0ZXAgPSAnMC4xMDAwMDAxJzsKK3Nob3VsZEJlKCdpbnB1dC52
YWxpZGl0eS5zdGVwTWlzbWF0Y2gnLCAndHJ1ZScpOworaW5wdXQudmFsdWUgPSAnMC45JzsKK2lu
cHV0LnN0ZXAgPSAnMC4xMDAwMDAwMDAwMDAwMDAxJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0
eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKK2lucHV0LnZhbHVlID0gJzEuMCc7CitpbnB1dC5z
dGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMyc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3Rl
cE1pc21hdGNoJywgJ2ZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1zdGVwTWlzbWF0Y2gtcmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9WYWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1yYW5nZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTFlMjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gt
cmFuZ2UuanMKQEAgLTAsMCArMSw2MSBAQAorZGVzY3JpcHRpb24oJ0NoZWNrIHN0ZXBNaXNtYXRj
aCByZXN1bHRzIGZvciB0eXBlPXJhbmdlLicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpbnB1dCcpOworaW5wdXQudHlwZSA9ICdyYW5nZSc7CisKKy8vIFRoZSBmb2xs
b3dpbmcgdGVzdCBpbnB1dHMgYXJlIHRoZSBzYW1lIGFzIFZhbGlkaXR5U3RhdGUtc3RlcE1pc21h
dGNoLW51bWJlci5qcywKKy8vIGJ1dCBhbGwgZXhwZWN0ZWQgcmVzdWx0cyBzaG91bGQgYmUgJ2Zh
bHNlJy4KKworLy8gSWYgdGhlIHZhbHVlIGlzIGVtcHR5LCBpdCBuZXZlciBtaXNtYXRjaGVzLgor
aW5wdXQudmFsdWUgPSAnJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gn
LCAnZmFsc2UnKTsKK2lucHV0Lm1pbiA9ICcwLjEnOworaW5wdXQuc3RlcCA9ICcxLjAnOworc2hv
dWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworCisvLyBJbnRl
Z2VycworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5zdGVwID0g
JzInOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOwor
aW5wdXQudmFsdWUgPSAnLTMnOworaW5wdXQubWluID0gJy00JzsKK2lucHV0LnN0ZXAgPSAnMic7
CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CisvLyBJ
bnZhbGlkIHN0ZXAgYXR0cmlidXRlIGlzIGlnbm9yZWQuCitpbnB1dC52YWx1ZSA9ICctMyc7Citp
bnB1dC5taW4gPSAnLTQnOworaW5wdXQuc3RlcCA9ICctMic7CitzaG91bGRCZSgnaW5wdXQudmFs
aWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CisvLyBIdWdlIG51bWJlcnMgYW5kIHNtYWxs
IHN0ZXA7IHVuY29tcGFyYWJsZQoraW5wdXQudmFsdWUgPSAnMS43OTc2OTMxMzQ4NjIzMTU3ZSsz
MDgnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5zdGVwID0gJzMnOworc2hvdWxkQmUoJ2lucHV0
LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudmFsdWUgPSAnMS43OTc2
OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRj
aCcsICdmYWxzZScpOworaW5wdXQudmFsdWUgPSAnMS43OTc2OTMxMzQ4NjIzMTU1ZSszMDgnOwor
c2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworLy8gSHVn
ZSBudW1iZXJzIGFuZCBodWdlIHN0ZXAKK2lucHV0LnZhbHVlID0gJzEuNjBlKzMwOCc7CitpbnB1
dC5zdGVwID0gJzAuMjBlKzMwOCc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21h
dGNoJywgJ2ZhbHNlJyk7CitpbnB1dC52YWx1ZSA9ICcxLjYwZSszMDgnOworaW5wdXQuc3RlcCA9
ICcwLjIyZSszMDgnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdm
YWxzZScpOworCisvLyBGcmFjdGlvbmFsIG51bWJlcnMKK2lucHV0LnZhbHVlID0gJzAuOSc7Citp
bnB1dC5zdGVwID0gJzAuMSc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNo
JywgJ2ZhbHNlJyk7CitpbnB1dC52YWx1ZSA9ICcwLjknOworaW5wdXQuc3RlcCA9ICcwLjEwMDAw
MDEnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOwor
aW5wdXQudmFsdWUgPSAnMC45JzsKK2lucHV0LnN0ZXAgPSAnMC4xMDAwMDAwMDAwMDAwMDAxJzsK
K3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKK2lucHV0
LnZhbHVlID0gJzEuMCc7CitpbnB1dC5zdGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMyc7CitzaG91
bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXN0ZXBN
aXNtYXRjaC11bnN1cHBvcnRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNDM5ZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1zdGVwTWlzbWF0Y2gtdW5zdXBwb3J0ZWQuanMKQEAgLTAs
MCArMSw0MSBAQAorZGVzY3JpcHRpb24oJ0NoZWNrIHN0ZXBNaXNtYXRjaCByZXN1bHRzIGZvciB0
eXBlcyB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IGZvciBzdGVwLicpOworCit2YXIgaW5wdXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitpbnB1dC50eXBlID0gJ3RleHQnOwor
aW5wdXQuc3RlcCA9ICczJzsKK2lucHV0LnZhbHVlID0gJzInOworc2hvdWxkQmUoJ2lucHV0LnZh
bGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworCitpbnB1dC50eXBlID0gJ2J1dHRvbic7
CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CitpbnB1
dC50eXBlID0gJ2NoZWNrYm94JzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0
Y2gnLCAnZmFsc2UnKTsKK2lucHV0LnR5cGUgPSAnY29sb3InOworc2hvdWxkQmUoJ2lucHV0LnZh
bGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudHlwZSA9ICdlbWFpbCc7Citz
aG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CitpbnB1dC50
eXBlID0gJ2hpZGRlbic7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywg
J2ZhbHNlJyk7CitpbnB1dC50eXBlID0gJ2ltYWdlJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0
eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKK2lucHV0LnR5cGUgPSAna2h0bWxfaXNpbmRleCc7
CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNoJywgJ2ZhbHNlJyk7CitpbnB1
dC50eXBlID0gJ3Bhc3N3ZCc7CitzaG91bGRCZSgnaW5wdXQudmFsaWRpdHkuc3RlcE1pc21hdGNo
JywgJ2ZhbHNlJyk7CitpbnB1dC50eXBlID0gJ3JhZGlvJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxp
ZGl0eS5zdGVwTWlzbWF0Y2gnLCAnZmFsc2UnKTsKK2lucHV0LnR5cGUgPSAncmVzZXQnOworc2hv
dWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudHlw
ZSA9ICdzZWFyY2gnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdm
YWxzZScpOworaW5wdXQudHlwZSA9ICdzdWJtaXQnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5
LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudHlwZSA9ICd0ZWwnOworc2hvdWxkQmUo
J2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOworaW5wdXQudHlwZSA9ICd1
cmwnOworc2hvdWxkQmUoJ2lucHV0LnZhbGlkaXR5LnN0ZXBNaXNtYXRjaCcsICdmYWxzZScpOwor
aW5wdXQudHlwZSA9ICdmaWxlJzsKK3Nob3VsZEJlKCdpbnB1dC52YWxpZGl0eS5zdGVwTWlzbWF0
Y2gnLCAnZmFsc2UnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg1OGM2NWQu
LmQ2NDU3ZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDktMTAtMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFN1cHBvcnQgZm9yIHN0ZXAgYXR0cmlidXRlIGFuZCBWYWxpZGl0eVN0YWUuc3RlcE1p
c21hdGNoIGZvcgorICAgICAgICB0eXBlPW51bWJlciBhbmQgcmFuZ2UuICBzdGVwTWlzbWF0Y2gg
d2lsbCBiZSBmYWxzZSBpZiB0aGUKKyAgICAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjdXJy
ZW50IHZhbHVlIGFuZCBhIG11bHRpcGxlIG9mIHRoZSBzdGVwCisgICAgICAgIHZhbHVlIGlzIHZl
cnkgc21hbGwuCisKKyAgICAgICAgQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBSZW5kZXJTbGlkZXIg
c28gdGhhdCBpdCBhbHdheXMgaGFzIGEgdmFsdWUKKyAgICAgICAgcm91bmRlZCB0byB0aGUgc3Rl
cCBhdHRyaWJ1dGUgdmFsdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFu
ZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXN0ZXBNaXNtYXRjaC1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXN0ZXBNaXNtYXRjaC1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtc3RlcE1pc21hdGNoLXVuc3VwcG9ydGVkLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVw
TWlzbWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YWxsb3dlZFZh
bHVlU3RlcCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6c3RlcE1pc21hdGNoKToKKyAg
ICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclJhbmdlOjpTbGlkZXJSYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZSk6CisKIDIwMDktMTAt
MjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDM0
MDc3OWUuLjQ0MDc2OTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtMjI5LDYg
KzIyOSw3IEBAIHNwZWxsY2hlY2sKIHNyYwogc3RhbmRieQogc3RhcnQKK3N0ZXAKIHN0eWxlCiBz
dW1tYXJ5CiB0YWJpbmRleApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGYyNWM5MDgu
LmY2ZDg1YjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTI4OCw2ICsyODgsODAg
QEAgZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlTWF4aW11bSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1heDsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2goKSBjb25z
dAoreworICAgIGRvdWJsZSBzdGVwOworICAgIGlmICghYWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7
CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IDAuMDsKKyAgICAgICAgaWYgKCFmb3JtU3Ry
aW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgZG91YmxlIG1pbiA9IDAuMDsKKyAgICAgICAgZm9ybVN0cmluZ1RvRG91
YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbik7CisgICAgICAgIGRvdWJsZVZhbHVlID0g
ZmFicyhkb3VibGVWYWx1ZSAtIG1pbik7CisgICAgICAgIC8vIGRvdWJsZSdzIGZyYWN0aW9uYWwg
cGFydCBzaXplIGlzIDUyLWJpdC4gIElmIHRoZSBjdXJyZW50IHZhbHVlIGlzCisgICAgICAgIC8v
IGdyZWF0ZXIgdGhhbiBzdGVwKjJeNTIsIHRoZSBmb2xsb3dpbmcgZm1vZCgpIG1ha2VzIG5vIHNl
bnNlLgorICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIGZyYWN0aW9uYWxTaXplID0gNTI7Cisg
ICAgICAgIGlmIChkb3VibGVWYWx1ZSAvIHBvdygyLCBmcmFjdGlvbmFsU2l6ZSkgPiBzdGVwKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkb3VibGUgcmVtYWluZGVyID0gZm1v
ZChkb3VibGVWYWx1ZSwgc3RlcCk7CisgICAgICAgIC8vIEFjY2VwdHMgZXJyb3JzIGxlc3MgdGhh
biA2LWJpdC4KKyAgICAgICAgZG91YmxlIGFjY2VwdGFibGVFcnJvciA9IHN0ZXAgLyBwb3coMiwg
ZnJhY3Rpb25hbFNpemUgLSA2KTsKKyAgICAgICAgcmV0dXJuIGFjY2VwdGFibGVFcnJvciA8IHJl
bWFpbmRlciAmJiByZW1haW5kZXIgPCAoc3RlcCAtIGFjY2VwdGFibGVFcnJvcik7CisgICAgfQor
ICAgIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkgeworICAgICAgICAvLyBzdGVwTWlzbWF0Y2gg
ZG9lc24ndCBvY2N1ciBmb3IgUkFOR0UuIFJlbmRlclNsaWRlciBndWFyYW50ZWVzIHRoZQorICAg
ICAgICAvLyB2YWx1ZSBtYXRjaGVzIHRvIHN0ZXAuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBjb25z
dAoreworICAgIEFTU0VSVChzdGVwKTsKKyAgICBkb3VibGUgZGVmYXVsdFN0ZXAgPSAxLjA7Cisg
ICAgZG91YmxlIHN0ZXBTY2FsZUZhY3RvciA9IDEuMDsKKyAgICBzd2l0Y2ggKGlucHV0VHlwZSgp
KSB7CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQU5HRToKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIENPTE9SOgorICAg
IGNhc2UgRU1BSUw6CisgICAgY2FzZSBGSUxFOgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2Ug
SU1BR0U6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBS
QURJTzoKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgU1VCTUlU
OgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFVSTDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBjb25zdCBTdHJpbmcgc3RlcFN0cmluZyA9
IGdldEF0dHJpYnV0ZShzdGVwQXR0cik7CisgICAgaWYgKHN0ZXBTdHJpbmcuaXNFbXB0eSgpKSB7
CisgICAgICAgICpzdGVwID0gZGVmYXVsdFN0ZXAgKiBzdGVwU2NhbGVGYWN0b3I7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uoc3RlcFN0cmlu
ZywgImFueSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZG91YmxlIHBhcnNlZDsKKyAg
ICBpZiAoIWZvcm1TdHJpbmdUb0RvdWJsZShzdGVwU3RyaW5nLCAmcGFyc2VkKSB8fCBwYXJzZWQg
PD0gMC4wKSB7CisgICAgICAgICpzdGVwID0gZGVmYXVsdFN0ZXAgKiBzdGVwU2NhbGVGYWN0b3I7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAqc3RlcCA9IHBhcnNlZCAqIHN0ZXBT
Y2FsZUZhY3RvcjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGlubGluZSBDaGVja2Vk
UmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0b25zKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQg
KmVsZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGVsZW1lbnQtPmZv
cm0oKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDBlMmRhMzIuLmM0ZWQwM2EgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTAyLDYgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAgLy8g
UmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdHlwZT1yYW5nZS4gIERvbid0IGNhbGwgdGhp
cyBmb3Igb3RoZXIgdHlwZXMuCiAgICAgLy8gVGhpcyBhbHdheXMgcmV0dXJucyBhIHZhbHVlIHdo
aWNoIGlzIDw9IHJhbmdlTWluaW11bSgpLgogICAgIGRvdWJsZSByYW5nZU1heGltdW0oKSBjb25z
dDsKKyAgICAvLyBSZXR1cm5zIHRoZSAiYWxsb3dlZCB2YWx1ZSBzdGVwIiBkZWZpbmVkIGluIHRo
ZSBIVE1MIHNwZWMuCisgICAgYm9vbCBhbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSopIGNvbnN0Owor
ICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlLgorICAgIGJvb2wgc3RlcE1pc21hdGNoKCkgY29uc3Q7
CiAKICAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTVUJN
SVQgfHwgbV90eXBlID09IFJFU0VUIHx8IG1fdHlwZSA9PSBCVVRUT047IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBSQURJTzsgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDU5MjQ4ZjQuLmI0NWQxOTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTYzLDEyICs2MywxNCBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgc2l6ZTsgLy8gQ2hhbmdl
ZCBzdHJpbmcgLT4gbG9uZyBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAjZW5kaWYKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNy
YzsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc3RlcDsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlND
Q3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0
IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKICNpZiBkZWZpbmVk
KEVOQUJMRV9EQVRBTElTVCkgJiYgRU5BQkxFX0RBVEFMSVNUCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgorCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOwogICAg
ICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAg
ICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
VmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXgg
NmIwYTBiNC4uMmM2ZTdhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtOTMsNiArOTMsMTMg
QEAgYm9vbCBWYWxpZGl0eVN0YXRlOjpyYW5nZU92ZXJmbG93KCkKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGNvbnRyb2woKSktPnJhbmdlT3ZlcmZsb3coKTsKIH0K
IAorYm9vbCBWYWxpZGl0eVN0YXRlOjpzdGVwTWlzbWF0Y2goKQoreworICAgIGlmICghY29udHJv
bCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oY29udHJvbCgpKS0+c3RlcE1pc21h
dGNoKCk7Cit9CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29t
ZUVycm9yID0gdHlwZU1pc21hdGNoKCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZs
b3coKSB8fCByYW5nZU92ZXJmbG93KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmggYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDFkZWUzMDYu
LjRlMjQwZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIv
V2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgdG9vTG9uZygpIHsgcmV0dXJuIGNvbnRyb2woKS0+dG9v
TG9uZygpOyB9CiAgICAgICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKTsKICAgICAgICAgYm9vbCBy
YW5nZU92ZXJmbG93KCk7Ci0gICAgICAgIGJvb2wgc3RlcE1pc21hdGNoKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKTsKICAgICAgICAgYm9vbCBjdXN0b21F
cnJvcigpIHsgcmV0dXJuICFtX2N1c3RvbUVycm9yTWVzc2FnZS5pc0VtcHR5KCk7IH0KICAgICAg
ICAgYm9vbCB2YWxpZCgpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCA0NDJh
ZjM5Li4zNTdhYTMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTQ4LDcgKzQ4
LDggQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0VHJhY2tMZW5ndGggPSAxMjk7CiAvLyBGSVhN
RTogVGhlIFNsaWRlclJhbmdlIGNsYXNzIGFuZCBmdW5jdGlvbnMgYXJlIGVudGlyZWx5IGJhc2Vk
IG9uIHRoZSBET00sCiAvLyBhbmQgY291bGQgYmUgcHV0IHdpdGggSFRNTElucHV0RWxlbWVudCAo
cG9zc2libHkgd2l0aCBhIG5ldyBuYW1lKSBpbnN0ZWFkIG9mIGhlcmUuCiBzdHJ1Y3QgU2xpZGVy
UmFuZ2UgewotICAgIGJvb2wgaXNJbnRlZ3JhbDsKKyAgICBib29sIGhhc1N0ZXA7CisgICAgZG91
YmxlIHN0ZXA7CiAgICAgZG91YmxlIG1pbmltdW07CiAgICAgZG91YmxlIG1heGltdW07ICAvLyBt
YXhpbXVtIG11c3QgYmUgPj0gbWluaW11bS4KIApAQCAtNzUsMTAgKzc2LDExIEBAIHN0cnVjdCBT
bGlkZXJSYW5nZSB7CiAKIFNsaWRlclJhbmdlOjpTbGlkZXJSYW5nZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQogewotICAgIC8vIEZJWE1FOiBXaGF0J3MgdGhlIHJpZ2h0IHdheSB0byBoYW5k
bGUgYW4gaW50ZWdyYWwgcmFuZ2Ugd2l0aCBub24taW50ZWdyYWwgbWluaW11bSBhbmQgbWF4aW11
bT8KLSAgICAvLyBDdXJyZW50bHkgdmFsdWVzIGFyZSBndWFyYW50ZWVkIHRvIGJlIGludGVncmFs
IGJ1dCBjb3VsZCBiZSBvdXRzaWRlIHRoZSByYW5nZSBpbiB0aGF0IGNhc2UuCi0KLSAgICBpc0lu
dGVncmFsID0gIWVxdWFsSWdub3JpbmdDYXNlKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShwcmVjaXNp
b25BdHRyKSwgImZsb2F0Iik7CisgICAgaWYgKGVsZW1lbnQtPmhhc0F0dHJpYnV0ZShwcmVjaXNp
b25BdHRyKSkgeworICAgICAgICBzdGVwID0gMS4wOworICAgICAgICBoYXNTdGVwID0gIWVxdWFs
SWdub3JpbmdDYXNlKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyKSwgImZsb2F0
Iik7CisgICAgfSBlbHNlCisgICAgICAgIGhhc1N0ZXAgPSBlbGVtZW50LT5hbGxvd2VkVmFsdWVT
dGVwKCZzdGVwKTsKIAogICAgIG1heGltdW0gPSBlbGVtZW50LT5yYW5nZU1heGltdW0oKTsKICAg
ICBtaW5pbXVtID0gZWxlbWVudC0+cmFuZ2VNaW5pbXVtKCk7CkBAIC04Nyw3ICs4OSwxNiBAQCBT
bGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIGRvdWJs
ZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZShkb3VibGUgdmFsdWUpCiB7CiAgICAgZG91YmxlIGNs
YW1wZWRWYWx1ZSA9IG1heChtaW5pbXVtLCBtaW4odmFsdWUsIG1heGltdW0pKTsKLSAgICByZXR1
cm4gaXNJbnRlZ3JhbCA/IHJvdW5kKGNsYW1wZWRWYWx1ZSkgOiBjbGFtcGVkVmFsdWU7CisgICAg
aWYgKCFoYXNTdGVwKQorICAgICAgICByZXR1cm4gY2xhbXBlZFZhbHVlOworICAgIC8vIFJvdW5k
cyBjbGFtcGVkVmFsdWUgdG8gbWluaW11bSArIE4gKiBzdGVwOworICAgIGRvdWJsZSBuID0gcmlu
dCgoY2xhbXBlZFZhbHVlIC0gbWluaW11bSkgLyBzdGVwKTsKKyAgICBjbGFtcGVkVmFsdWUgPSBt
aW5pbXVtICsgbiAqIHN0ZXA7CisgICAgaWYgKGNsYW1wZWRWYWx1ZSA+IG1heGltdW0pCisgICAg
ICAgY2xhbXBlZFZhbHVlID0gbWluaW11bSArIChuIC0gMSkgKiBzdGVwOworICAgIEFTU0VSVChj
bGFtcGVkVmFsdWUgPj0gbWluaW11bSk7CisgICAgQVNTRVJUKGNsYW1wZWRWYWx1ZSA8PSBtYXhp
bXVtKTsKKyAgICByZXR1cm4gY2xhbXBlZFZhbHVlOwogfQogCiBkb3VibGUgU2xpZGVyUmFuZ2U6
OnZhbHVlRnJvbUVsZW1lbnQoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgYm9vbCogd2FzQ2xh
bXBlZCkKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42009</attachid>
            <date>2009-10-28 02:54:27 -0700</date>
            <delta_ts>2009-11-05 22:54:23 -0800</delta_ts>
            <desc>Patch part 3: stepUp() and stepDown()</desc>
            <filename>0001-stepupdown-1.patch</filename>
            <type>text/plain</type>
            <size>29850</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA0YWI0NmFiNGQ1NDRlNWY0NWZjMWZmYzI4Y2NiOTY3OGM2MTI3MDI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjIzOjIyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcHVw
ZG93bi0xCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNyArKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVj
dGVkLnR4dCAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0ICAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCAgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0
L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IHwgICAxMyArKwogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgfCAgIDEzICsr
CiAuLi4vZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgICB8ICAx
MzcgKysrKysrKysrKysrKysrKysrKwogLi4uL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtcmFuZ2UuanMgICAgfCAgMTM5ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgICB8ICAgMTIgKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgICB8ICAg
NDMgKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaCAg
ICAgICB8ICAgIDMgKy0KIC4uLi92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNw
cCAgICAgICAgIHwgICA1MCArKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgICAgICAgICAgICAgICAgICB8ICAgODEgKysrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNSArCiAxNyBmaWxl
cyBjaGFuZ2VkLCA2NjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3Rl
cC1udW1iZXIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAt
dW5zdXBwb3J0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjdmNTVhMS4uN2FlMjJjOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDA5LTEwLTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGVzdHMgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKwor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1i
ZXIuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0
ZXAtcmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanM6IEFkZGVkLgorCiAyMDA5LTEwLTI5ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1i
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhkOTYz
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3Rl
cFVwKCkgZm9yIHR5cGU9bnVtYmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnN0ZXBEb3duKCJmb28iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hf
RVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBpbnB1dC5zdGVwVXAoImZvbyIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiLTEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBp
bnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZh
bHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBEb3du
KDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
aW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK1BBU1MgaW5wdXQu
c3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEw
IgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4Igor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmViODBjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5w
dXQtc3RlcC1udW1iZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjAyMmY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ2IEBACitUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0
eXBlPXJhbmdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5z
dGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBEb3du
KCJmb28iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBpbnB1dC5zdGVwVXAoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGlucHV0LnZhbHVl
IGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIi
CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitQQVNT
IGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC5zdGVwRG93
bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgor
UEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNT
IGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVw
KDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEu
CitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEwMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiOTAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
c3RlcC1yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NmIz
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAt
cmFuZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5MWE1OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBm
b3IgdW5zdXBwb3RlZCB0eXBwZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwRG93bigwKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBp
bnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoMCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjY2M2NhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lNWE0M2VhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMKQEAgLTAsMCArMSwxMzcg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPW51bWJl
ci4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lu
cHV0LnR5cGUgPSAnbnVtYmVyJzsKK3ZhciBpbnZhbGlkU3RhdGVFcnIgPSAnIkVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInOworCisvLyBUaGUgdmFsdWUgaXMgdW5w
YXJzYWJsZS4KK2lucHV0LnZhbHVlID0gJyc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24o
KScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZh
bGlkU3RhdGVFcnIpOworCisvLyBOb24tbnVtYmVyIGFyZ3VtZW50CitzaG91bGRUaHJvdygnaW5w
dXQuc3RlcERvd24oImZvbyIpJywgJyJFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNl
cHRpb24gMTciJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCJmb28iKScsICciRXJyb3I6
IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3IicpOworCisvLyBEZWZhdWx0IHN0
ZXAgdmFsdWUgZm9yIHR5cGU9bnVtYmVyIGlzIDEuCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0
LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcFVw
KDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworaW5wdXQuc3RlcFVwKC0xKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciLTEiJyk7CitpbnB1dC5zdGVwRG93bigtMSk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkIGZvciBp
bnZhbGlkIHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zv
byc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lu
cHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMiInKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2lucHV0LnZhbHVlID0g
JzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCkn
LCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxp
ZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQubWluID0gJzAnOworaW5wdXQu
c3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigp
JywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lu
cHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5LgoraW5wdXQudmFsdWUgPSAn
MSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSsz
MDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsK
KworLy8gTWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWluID0gJyc7
CitpbnB1dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKCk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVw
KCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAnLTEnOworc2hvdWxkVGhyb3co
J2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIi0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0eS4KK2lucHV0LnZhbHVlID0g
JzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUr
MzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3RhdGVFcnIpOwor
CisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2ggdmFsdWVzCitpbnB1dC52
YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0gJzInOworaW5wdXQu
c3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CitpbnB1dC5zdGVwRG93
bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQudmFsdWUgPSAnOSc7
CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMTAnOwor
aW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7CitpbnB1
dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIxMCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3Vs
dCB3b3VsZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9ICc5OSc7
CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBI
dWdlIHZhbHVlIGFuZCBzbWFsbCBzdGVwCitpbnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQu
bWluID0gJyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVw
VXAoOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQu
c3RlcERvd24oOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOwor
CisvLyBGcmFjdGlvbmFsIG51bWJlcnMKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0g
Jyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7
CitpbnB1dC5zdGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1
dC5zdGVwID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIyIicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIGlucHV0LnN0ZXBV
cCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitpbnB1dC52YWx1ZSA9ICcw
JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxJzsKK2lucHV0LnN0ZXAgPSAnMC4w
MDM5MjE1Njg2Mjc0NTA5ODAnOworaW5wdXQuc3RlcFVwKDI1NSk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjEiJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsrKQorICAgIGlucHV0
LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYTY2YTBhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKQEAgLTAsMCArMSwxMzkg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPXJhbmdl
LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworaW5w
dXQudHlwZSA9ICdyYW5nZSc7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworLy8gVGhlIHZhbHVlIGlzIHVucGFy
c2FibGUuCitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCkn
LCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxp
ZFN0YXRlRXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAorc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBEb3duKCJmb28iKScsICciRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0
aW9uIDE3IicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgiZm9vIiknLCAnIkVycm9yOiBU
WVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNyInKTsKKworLy8gRGVmYXVsdCBzdGVw
IHZhbHVlIGZvciB0eXBlPXJhbmdlIGlzIDEuCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1p
biA9ICctMTAwJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
IicpOworaW5wdXQuc3RlcFVwKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOwor
aW5wdXQuc3RlcFVwKC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0
LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVw
RG93bigyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CitpbnB1dC5zdGVwRG93
bigtMSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2
YWx1ZSBpcyB1c2VkIGZvciBpbnZhbGlkIHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7
CitpbnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3Rl
cFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFs
dWUKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3co
J2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQu
bWluID0gJzAnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQu
c3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93
KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEn
Oworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5
LgoraW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43
OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywg
aW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEn
OworaW5wdXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOwor
aW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAn
LTEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0
eS4KK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEu
Nzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBp
bnZhbGlkU3RhdGVFcnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0
Y2ggdmFsdWVzCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5z
dGVwID0gJzInOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMi
Jyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOwor
aW5wdXQudmFsdWUgPSAnOSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lu
cHV0LnN0ZXAgPSAnMTAnOworaW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIxMDAiJyk7CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgs
IGJ1dCByb3VuZGVkIHJlc3VsdCB3b3VsZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsK
K2lucHV0Lm1heCA9ICc5OSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciOTAiJyk7CisKKy8vIEh1Z2UgdmFsdWUgYW5kIHNtYWxsIHN0ZXAKK2lucHV0LnZhbHVl
ID0gJzFlKzMwOCc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMS4xZSszMDgnOwor
aW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCg5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxZSszMDgiJyk7CitpbnB1dC5zdGVwRG93big5OTk5OTkpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxZSszMDgiJyk7CisKKy8vIEZyYWN0aW9uYWwgbnVtYmVycworaW5w
dXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQu
c3RlcCA9ICcwLjMzMzMzMzMzMzMzMzMzMzMzJzsKK2lucHV0LnN0ZXBVcCgzKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lucHV0LnN0ZXBV
cCgxMCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7Citmb3IgKHZhciBpID0gMDsg
aSA8IDEwOyBpKyspCisgICAgaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjMiJyk7CisKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJzAnOworaW5wdXQu
bWF4ID0gJzEnOworaW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYyNzQ1MDk4MCc7CitpbnB1dC5z
dGVwVXAoMjU1KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMjU1OyBpKyspCisgICAgaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMCInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVu
c3VwcG9ydGVkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQt
c3RlcC11bnN1cHBvcnRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
YmQxMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcwpAQCAtMCwwICsxLDEyIEBACitkZXNjcmlw
dGlvbignVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdW5zdXBwb3RlZCB0eXBwZXMnKTsK
KwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5
cGUgPSAndGV4dCc7CitpbnB1dC5zdGVwID0gJzMnOworaW5wdXQudmFsdWUgPSAnMic7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDApJywgJyJF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJv
dygnaW5wdXQuc3RlcFVwKCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMSInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMCknLCAnIkVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDU1YWI5NGYuLjM0ODJiZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMTAtMzAg
IEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MSW5wdXRFbGVt
ZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1
cHBvcnRlZC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAp
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bik6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhDdXN0b206OnY4SFRNTElucHV0RWxlbWVudFN0ZXBVcENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4Q3VzdG9tOjp2OEhUTUxJbnB1dEVsZW1lbnRTdGVwRG93bkNhbGxi
YWNrKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6YWRkRm9yTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpk
b3VibGVUb0Zvcm1TdHJpbmcpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisKIDIwMDktMTAtMjggIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRD
dXN0b20uY3BwCmluZGV4IGU1MTY2ZWUuLjJlOWJiNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KQEAgLTEx
Niw0ICsxMTcsNDYgQEAgSlNWYWx1ZSBKU0hUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJh
bmdlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXIKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIH0KIAorSlNWYWx1ZSBKU0hUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBpbnQgc3RlcDsKKyAgICBpZiAoYXJncy5zaXplKCkgPCAx
KQorICAgICAgICBpbnB1dC0+c3RlcFVwKDEsIGVjKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYm9v
bCBvazsKKyAgICAgICAgc3RlcCA9IGFyZ3MuYXQoMCkudG9JbnQzMihleGVjLCBvayk7CisgICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENI
X0VSUjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW5wdXQtPnN0ZXBVcChzdGVwLCBlYyk7
CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpbnQgc3RlcDsKKyAgICBpZiAoYXJncy5zaXplKCkg
PCAxKQorICAgICAgICBpbnB1dC0+c3RlcERvd24oMSwgZWMpOworICAgIGVsc2UgeworICAgICAg
ICBib29sIG9rOworICAgICAgICBzdGVwID0gYXJncy5hdCgwKS50b0ludDMyKGV4ZWMsIG9rKTsK
KyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICBlYyA9IFRZUEVfTUlT
TUFUQ0hfRVJSOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnB1dC0+c3RlcERvd24oc3Rl
cCwgZWMpOworICAgIH0KKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCmluZGV4IGQ5ZjkzNDQuLmY2NzIw
ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGlu
Zy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCkBA
IC0yODMsOSArMjgzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgREVDTEFSRV9Q
Uk9QRVJUWV9BQ0NFU1NPUihIVE1MT3B0aW9uc0NvbGxlY3Rpb25MZW5ndGgpOwogCiAgICAgICAg
IERFQ0xBUkVfQ0FMTEJBQ0soSFRNTElucHV0RWxlbWVudFNldFNlbGVjdGlvblJhbmdlKTsKLQog
ICAgICAgICBERUNMQVJFX1BST1BFUlRZX0FDQ0VTU09SKEhUTUxJbnB1dEVsZW1lbnRTZWxlY3Rp
b25TdGFydCk7CiAgICAgICAgIERFQ0xBUkVfUFJPUEVSVFlfQUNDRVNTT1IoSFRNTElucHV0RWxl
bWVudFNlbGVjdGlvbkVuZCk7CisgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSFRNTElucHV0RWxl
bWVudFN0ZXBVcCk7CisgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSFRNTElucHV0RWxlbWVudFN0
ZXBEb3duKTsKIAogICAgICAgICBERUNMQVJFX05BTUVEX0FDQ0VTU19DSEVDSyhMb2NhdGlvbik7
CiAgICAgICAgIERFQ0xBUkVfSU5ERVhFRF9BQ0NFU1NfQ0hFQ0soSGlzdG9yeSk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9t
LmNwcAppbmRleCA2M2ZiY2VjLi40MGQ0YTVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
ICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCkBAIC0x
MDYsNCArMTA4LDUyIEBAIENBTExCQUNLX0ZVTkNfREVDTChIVE1MSW5wdXRFbGVtZW50U2V0U2Vs
ZWN0aW9uUmFuZ2UpCiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIAorQ0FMTEJBQ0tf
RlVOQ19ERUNMKEhUTUxJbnB1dEVsZW1lbnRTdGVwVXApCit7CisgICAgSU5DX1NUQVRTKCJET00u
SFRNTElucHV0RWxlbWVudC5zdGVwVXAiKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhv
bGRlciA9IGFyZ3MuSG9sZGVyKCk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhET01X
cmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MSW5wdXRFbGVtZW50Pihob2xkZXIp
OworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkK
KyAgICAgICAgaW1wLT5zdGVwVXAoMSwgZWMpOworICAgIGVsc2UgeworICAgICAgICBib29sIG9r
OworICAgICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5X2NhdGNoOworICAgICAgICBpbnQgc3RlcCA9IHRv
SW50MzIoYXJnc1swXSwgb2spOworICAgICAgICBpZiAodHJ5X2NhdGNoLkhhc0NhdWdodCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICAgICAgaWYgKCFvaykKKyAg
ICAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGltcC0+c3RlcFVwKHN0ZXAsIGVjKTsKKyAgICB9CisgICAgaWYgKGVjKQorICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
Cit9CisKK0NBTExCQUNLX0ZVTkNfREVDTChIVE1MSW5wdXRFbGVtZW50U3RlcERvd24pCit7Cisg
ICAgSU5DX1NUQVRTKCJET00uSFRNTElucHV0RWxlbWVudC5zdGVwRG93biIpOworICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gYXJncy5Ib2xkZXIoKTsKKyAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbXAgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9Ob2RlPEhUTUxJ
bnB1dEVsZW1lbnQ+KGhvbGRlcik7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICBpbXAtPnN0ZXBEb3duKDEsIGVjKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgYm9vbCBvazsKKyAgICAgICAgdjg6OlRyeUNhdGNoIHRyeV9jYXRjaDsK
KyAgICAgICAgaW50IHN0ZXAgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKKyAgICAgICAgaWYgKHRy
eV9jYXRjaC5IYXNDYXVnaHQoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbXAtPnN0ZXBEb3duKHN0ZXAsIGVjKTsKKyAgICB9
CisgICAgaWYgKGVjKQorICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBmNmQ4NWIzLi41ZDRhOGZkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50
LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApA
QCAtMzYyLDYgKzM2Myw3OCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmFsbG93ZWRWYWx1ZVN0
ZXAoZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91YmxlIGNvdW50LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlu
cHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NFUlQoc3RlcCA+IDApOworICAgIGRvdWJsZSBj
dXJyZW50ID0gMC4wOworICAgIGlmICghZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZjdXJy
ZW50KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGN1cnJlbnQgKyBzdGVwICogY291bnQ7Cisg
ICAgaWYgKGlzaW5mKG5ld1ZhbHVlKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIp
IHsKKyAgICAgICAgZG91YmxlIG1pbmltdW0gPSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5n
VG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluaW11bSkpIHsKKyAgICAgICAgICAg
IGlmIChuZXdWYWx1ZSA8IG1pbmltdW0pIHsKKyAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBkb3VibGUgbiA9IHJpbnQoKG5ld1ZhbHVlIC0gbWluaW11bSkgLyBzdGVw
KTsKKyAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgbiAqIHN0ZXA7CisgICAgICAgIGRvdWJs
ZSBtYXhpbXVtID0gMC4wOworICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJp
YnV0ZShtYXhBdHRyKSwgJm1heGltdW0pKSB7CisgICAgICAgICAgICBpZiAobmV3VmFsdWUgPiBt
YXhpbXVtKSB7CisgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eyAgLy8gaW5wdXRUeXBlKCkgPT0gUkFOR0UKKyAgICAgICAgZG91YmxlIG1pbmltdW0gPSByYW5n
ZU1pbmltdW0oKTsKKyAgICAgICAgZG91YmxlIG1heGltdW0gPSByYW5nZU1heGltdW0oKTsKKyAg
ICAgICAgaWYgKG5ld1ZhbHVlIDwgbWluaW11bSB8fCBuZXdWYWx1ZSA+IG1heGltdW0pIHsKKyAg
ICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgZG91YmxlIG4gPSByaW50KChuZXdWYWx1ZSAtIG1pbmltdW0pIC8g
c3RlcCk7CisgICAgICAgIG5ld1ZhbHVlID0gbWluaW11bSArIG4gKiBzdGVwOworICAgICAgICBp
ZiAobmV3VmFsdWUgPiBtYXhpbXVtKQorICAgICAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsg
KG4gLSAxKSAqIHN0ZXA7CisgICAgICAgIEFTU0VSVChuZXdWYWx1ZSA+PSBtaW5pbXVtKTsKKyAg
ICAgICAgQVNTRVJUKG5ld1ZhbHVlIDw9IG1heGltdW0pOworICAgIH0KKyAgICBzZXRWYWx1ZShk
b3VibGVUb0Zvcm1TdHJpbmcobmV3VmFsdWUpKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzdGVwVXAoaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGRvdWJsZSBzdGVwID0g
MC4wOworICAgIGlmICghYWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUeXBlcyBv
dGhlciB0aGFuIE5VTUJFUi9SQU5HRSBzaG91bGQgYmUgcmVqZWN0ZWQgYnkgYWxsb3dlZFZhbHVl
U3RlcCgpLgorICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkg
PT0gUkFOR0UpOworICAgIGFkZEZvck51bWJlcihzdGVwLCBuLCBlYyk7Cit9CisKK3ZvaWQgSFRN
TElucHV0RWxlbWVudDo6c3RlcERvd24oaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGRvdWJsZSBzdGVwID0gMC4wOworICAgIGlmICghYWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAvLyBUeXBlcyBvdGhlciB0aGFuIE5VTUJFUi9SQU5HRSBzaG91bGQgYmUgcmVqZWN0ZWQg
YnkgYWxsb3dlZFZhbHVlU3RlcCgpLgorICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIg
fHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIGFkZEZvck51bWJlcihzdGVwLCAtbiwgZWMp
OworfQorCiBzdGF0aWMgaW5saW5lIENoZWNrZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRpb0J1
dHRvbnMoY29uc3QgSFRNTElucHV0RWxlbWVudCAqZWxlbWVudCkKIHsKICAgICBpZiAoSFRNTEZv
cm1FbGVtZW50KiBmb3JtID0gZWxlbWVudC0+Zm9ybSgpKQpAQCAtMTkxMiw2ICsxOTg1LDE0IEBA
IGJvb2wgSFRNTElucHV0RWxlbWVudDo6d2lsbFZhbGlkYXRlKCkgY29uc3QKICAgICAgICAgICAg
aW5wdXRUeXBlKCkgIT0gQlVUVE9OICYmIGlucHV0VHlwZSgpICE9IFJFU0VUOwogfQogCitTdHJp
bmcgSFRNTElucHV0RWxlbWVudDo6ZG91YmxlVG9Gb3JtU3RyaW5nKGRvdWJsZSBudW0pCit7Cisg
ICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1LCAidGhlIGJlc3QgcmVwcmVzZW50YXRpb24gb2YgdGhl
IG51bWJlciBuIGFzIGEgZmxvYXRpbmcKKyAgICAvLyBwb2ludCBudW1iZXIiIGlzIGEgc3RyaW5n
IHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRvU3RyaW5nKCkgdG8gbi4KKyAgICBWZWN0b3I8VUNoYXI+
IHVjaGFycyA9IFdURjo6ZWNtYTI2MmR0b2EobnVtKTsKKyAgICByZXR1cm4gU3RyaW5nKHVjaGFy
cy5kYXRhKCksIHVjaGFycy5zaXplKCkpOworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmZv
cm1TdHJpbmdUb0RvdWJsZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlKiBvdXQpCiB7CiAgICAg
Ly8gU2VlIEhUTUw1IDIuNC40LjMgYFJlYWwgbnVtYmVycy4nCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCBjNGVkMDNhLi41MGY4Y2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEw
Niw2ICsxMDYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSop
IGNvbnN0OwogICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlLgogICAgIGJvb2wgc3RlcE1pc21hdGNo
KCkgY29uc3Q7CisgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIEhUTUxJbnB1dEVsZW1lbnQ6OnN0
ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgIHZvaWQgc3RlcFVwKGludCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgc3RlcERvd24oaW50LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29s
IGlzVGV4dEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTVUJNSVQgfHwgbV90eXBl
ID09IFJFU0VUIHx8IG1fdHlwZSA9PSBCVVRUT047IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRp
b0J1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBSQURJTzsgfQpAQCAtMjYyLDYgKzI2
NSwxMiBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGNyZWF0
ZVRlbXBvcmFyeUZvcm1Gb3JJc0luZGV4KCk7CiAKKyAgICAvLyBIZWxwZXIgZm9yIHN0ZXBVcCgp
L3N0ZXBEb3duKCkuICBBZGRzIHN0ZXAgKiBjb3VudCB0byB0aGUgY3VycmVudCBudW1iZXIgdmFs
dWUuCisgICAgdm9pZCBhZGRGb3JOdW1iZXIoZG91YmxlIHN0ZXAsIGRvdWJsZSBjb3VudCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIC8vIENvbnZlcnRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHRvIGEg
c3RyaW5nLiAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgIC8vIEhUTUw1J3MgImFs
Z29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIiBmb3IgTlVNQkVSL1JBTkdF
IHR5cGVzLgorICAgIHN0YXRpYyBTdHJpbmcgZG91YmxlVG9Gb3JtU3RyaW5nKGRvdWJsZSk7CisK
ICNpZiBFTkFCTEUoREFUQUxJU1QpCiAgICAgSFRNTERhdGFMaXN0RWxlbWVudCogZGF0YUxpc3Qo
KSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGI0NWQxOTAu
LmY4MjY1YzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTcxLDYgKzcxLDExIEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVt
ZW50IHNlbGVjdGVkT3B0aW9uOwogI2VuZGlmCiAKKyAgICAgICAgW0N1c3RvbV0gdm9pZCAgICAg
IHN0ZXBVcChpbiBbT3B0aW9uYWxdIGxvbmcgbikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAgc3RlcERvd24oaW4gW09wdGlvbmFs
XSBsb25nIG4pCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="23496"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42630</attachid>
            <date>2009-11-05 22:54:23 -0800</date>
            <delta_ts>2009-11-05 23:02:13 -0800</delta_ts>
            <desc>Patch part 3: stepUp() and stepDown() (rev.2)</desc>
            <filename>0001-stepupdown-2.patch</filename>
            <type>text/plain</type>
            <size>29139</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBlZGM3NDlmNTM5MDgzZDY4NmIyODY0NDNkOGNkZTVlNmUxZmIzYzA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjIzOjIyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcHVw
ZG93bi0yCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNyArKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVj
dGVkLnR4dCAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0ICAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCAgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0
L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IHwgICAxMyArKwogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgfCAgIDEzICsr
CiAuLi4vZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgICB8ICAx
NDAgKysrKysrKysrKysrKysrKysrKwogLi4uL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtcmFuZ2UuanMgICAgfCAgMTQyICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgICB8ICAgMTIgKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgICB8ICAg
MzUgKysrKysKIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oICAg
ICAgIHwgICAgMyArLQogLi4uL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3Bw
ICAgICAgICAgfCAgIDQyICsrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
ICAgICAgICAgICAgICAgICAgfCAgIDgxICsrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNSArCiAxNyBmaWxlcyBj
aGFuZ2VkLCA2NTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5z
dXBwb3J0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuanMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjdmNTVhMS4uN2FlMjJjOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDA5LTEwLTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
dGVzdHMgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAt
cmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuanM6IEFkZGVkLgorCiAyMDA5LTEwLTI5ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY2ZDE2Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1i
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVw
KCkgZm9yIHR5cGU9bnVtYmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnN0ZXBEb3du
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQ
QVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAo
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC5zdGVwVXAoMikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMTAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAiCitQQVNTIGlucHV0
LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIx
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4MGNh
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXIuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYjE1NTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNDYgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9cmFuZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVw
VXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BB
U1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlu
cHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiLTEiCitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxMDAiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIxMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjkwIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzZiMzc0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmZhOTFhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVuc3VwcG90ZWQgdHlwcGVzCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQuc3RlcERvd24oMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
aW5wdXQuc3RlcFVwKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXVuc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAt
dW5zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjNj
YWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVw
LXVuc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3Rl
cC11bnN1cHBvcnRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAt
bnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3Rl
cC1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhZDhkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtbnVtYmVyLmpzCkBAIC0wLDAgKzEsMTQwIEBACitkZXNjcmlwdGlvbignVGVzdHMg
c3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuJyk7CisKK3ZhciBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0gJ251bWJlcic7Cit2
YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEiJzsKKworLy8gVGhlIHZhbHVlIGlzIHVucGFyc2FibGUuCitpbnB1dC52YWx1ZSA9
ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9u
LW51bWJlciBhcmd1bWVudAoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwRG93bigiZm9v
Iik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwVXAoImZvbyIp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBEZWZhdWx0IHN0ZXAgdmFs
dWUgZm9yIHR5cGU9bnVtYmVyIGlzIDEuCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXBV
cCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcFVwKDIpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworaW5wdXQuc3RlcFVwKC0xKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciLTEiJyk7CitpbnB1dC5zdGVwRG93bigtMSk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkIGZvciBpbnZhbGlk
IHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7Citp
bnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0
ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiIn
KTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2lucHV0LnZhbHVlID0gJzAnOwor
aW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRl
RXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQubWluID0gJzAnOworaW5wdXQuc3RlcCA9
ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52
YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5LgoraW5wdXQudmFsdWUgPSAnMSc7Citp
bnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8g
TWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWluID0gJyc7CitpbnB1
dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBp
bnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAnLTEnOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAn
Ii0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0eS4KK2lucHV0LnZhbHVlID0gJzEnOwor
aW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsK
K3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBz
dGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2ggdmFsdWVzCitpbnB1dC52YWx1ZSA9
ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0gJzInOworaW5wdXQuc3RlcFVw
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CitpbnB1dC5zdGVwRG93bigpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQudmFsdWUgPSAnOSc7CitpbnB1
dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMTAnOworaW5wdXQu
c3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7CitpbnB1dC52YWx1
ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
MCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3VsdCB3b3Vs
ZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9ICc5OSc7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBIdWdlIHZh
bHVlIGFuZCBzbWFsbCBzdGVwCitpbnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQubWluID0g
Jyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoOTk5
OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQuc3RlcERv
d24oOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworCisvLyBG
cmFjdGlvbmFsIG51bWJlcnMKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJyc7Citp
bnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7CitpbnB1
dC5zdGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVw
ID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIy
IicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIGlucHV0LnN0ZXBVcCgpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lu
cHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxJzsKK2lucHV0LnN0ZXAgPSAnMC4wMDM5MjE1
Njg2Mjc0NTA5ODAnOworaW5wdXQuc3RlcFVwKDI1NSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsrKQorICAgIGlucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTI3MzdiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPXJhbmdlLicpOwor
Cit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworaW5wdXQudHlw
ZSA9ICdyYW5nZSc7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworLy8gVGhlIHZhbHVlIGlzIHVucGFyc2FibGUu
CitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRl
RXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1
dC5zdGVwRG93bigiZm9vIik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1
dC5zdGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBE
ZWZhdWx0IHN0ZXAgdmFsdWUgZm9yIHR5cGU9cmFuZ2UgaXMgMS4KK2lucHV0LnZhbHVlID0gJzAn
OworaW5wdXQubWluID0gJy0xMDAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwVXAoMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjMiJyk7CitpbnB1dC5zdGVwVXAoLTEpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIy
IicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsK
K2lucHV0LnN0ZXBEb3duKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKK2lu
cHV0LnN0ZXBEb3duKC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKy8vIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzIHVzZWQgZm9yIGludmFsaWQgc3RlcCB2YWx1ZXMuCitpbnB1dC52
YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnZm9vJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcCA9ICcwJzsKK2lucHV0LnN0ZXBV
cCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworaW5wdXQuc3RlcCA9ICctMSc7
CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworLy8g
Tm8gc3RlcCB2YWx1ZQoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2FueSc7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNaW5pbXVtIGxp
bWl0CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQudmFsdWUgPSAn
MSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQu
dmFsdWUgPSAnMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oMiknLCBpbnZhbGlkU3Rh
dGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworLy8gU2hvdWxkIG5vdCBi
ZSAtSW5maW5pdHkuCitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQu
c3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5wdXQuc3Rl
cERvd24oMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNYXhpbXVtIGxpbWl0CitpbnB1dC52
YWx1ZSA9ICctMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcwJzsKK2lucHV0LnN0
ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCIn
KTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CitpbnB1
dC52YWx1ZSA9ICctMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKDIpJywgaW52YWxpZFN0
YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisvLyBTaG91bGQgbm90
IGJlIEluZmluaXR5LgoraW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0
LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9y
IHN0ZXBNaXNtYXRjaCB2YWx1ZXMKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0x
JzsKK2lucHV0LnN0ZXAgPSAnMic7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7CitpbnB1dC52YWx1ZSA9ICc5JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1h
eCA9ICcnOworaW5wdXQuc3RlcCA9ICcxMCc7CitpbnB1dC5zdGVwVXAoOSk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjEwMCInKTsKK2lucHV0LnZhbHVlID0gJzE5JzsKK2lucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwIicpOworLy8gdmFsdWUgKyBzdGVw
IGlzIDw9IG1heCwgYnV0IHJvdW5kZWQgcmVzdWx0IHdvdWxkIGJlID4gbWF4LgoraW5wdXQudmFs
dWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5JzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyI5MCInKTsKKworLy8gSHVnZSB2YWx1ZSBhbmQgc21hbGwgc3RlcAor
aW5wdXQudmFsdWUgPSAnMWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcx
LjFlKzMwOCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5OTk5OSk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rpb25hbCBu
dW1iZXJzCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0g
Jyc7CitpbnB1dC5zdGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQuc3RlcFVwKDMp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcCA9ICcwLjEnOwor
aW5wdXQuc3RlcFVwKDEwKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMyInKTsKKworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAn
MCc7CitpbnB1dC5tYXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3NDUwOTgw
JzsKK2lucHV0LnN0ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAyNTU7IGkrKykKKyAgICBpbnB1dC5zdGVwRG93bigpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNiZDExODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCkBAIC0wLDAgKzEsMTIg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB1bnN1cHBvdGVk
IHR5cHBlcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
OworaW5wdXQudHlwZSA9ICd0ZXh0JzsKK2lucHV0LnN0ZXAgPSAnMyc7CitpbnB1dC52YWx1ZSA9
ICcyJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgJyJFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERv
d24oMCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsK
K3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgwKScsICci
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIicpOworCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVhYjk0Zi4uMzQ4MmJmZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAor
MjAwOS0xMC0zMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAgICAgICBUZXN0czog
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBE
b3duKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmg6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbTo6djhIVE1MSW5wdXRFbGVtZW50U3RlcFVwQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b206OnY4SFRNTElucHV0RWxlbWVudFN0
ZXBEb3duQ2FsbGJhY2spOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphZGRGb3JOdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmRvdWJsZVRvRm9ybVN0cmluZyk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKwogMjAwOS0x
MC0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTUxNjZlZS4uMjk5MzhiYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIkpTSFRNTElucHV0RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgpAQCAtMTE2LDQgKzExNywzOCBAQCBKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c2V0
U2VsZWN0aW9uUmFuZ2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcgogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCitKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c3Rl
cFVwKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkp
OworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGludCBzdGVwOworICAgIGlmIChhcmdz
LnNpemUoKSA8IDEpCisgICAgICAgIGlucHV0LT5zdGVwVXAoMSwgZWMpOworICAgIGVsc2Ugewor
ICAgICAgICBzdGVwID0gYXJncy5hdCgwKS50b0ludDMyKGV4ZWMpOworICAgICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICAgICAgaW5wdXQtPnN0ZXBVcChzdGVwLCBlYyk7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNI
VE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MpCit7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBp
bnQgc3RlcDsKKyAgICBpZiAoYXJncy5zaXplKCkgPCAxKQorICAgICAgICBpbnB1dC0+c3RlcERv
d24oMSwgZWMpOworICAgIGVsc2UgeworICAgICAgICBzdGVwID0gYXJncy5hdCgwKS50b0ludDMy
KGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgaW5wdXQtPnN0ZXBEb3duKHN0ZXAsIGVjKTsK
KyAgICB9CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaAppbmRleCBkOWY5MzQ0Li5mNjcyMGYxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaApAQCAtMjgzLDkg
KzI4MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERFQ0xBUkVfUFJPUEVSVFlf
QUNDRVNTT1IoSFRNTE9wdGlvbnNDb2xsZWN0aW9uTGVuZ3RoKTsKIAogICAgICAgICBERUNMQVJF
X0NBTExCQUNLKEhUTUxJbnB1dEVsZW1lbnRTZXRTZWxlY3Rpb25SYW5nZSk7Ci0KICAgICAgICAg
REVDTEFSRV9QUk9QRVJUWV9BQ0NFU1NPUihIVE1MSW5wdXRFbGVtZW50U2VsZWN0aW9uU3RhcnQp
OwogICAgICAgICBERUNMQVJFX1BST1BFUlRZX0FDQ0VTU09SKEhUTUxJbnB1dEVsZW1lbnRTZWxl
Y3Rpb25FbmQpOworICAgICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxJbnB1dEVsZW1lbnRTdGVw
VXApOworICAgICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxJbnB1dEVsZW1lbnRTdGVwRG93bik7
CiAKICAgICAgICAgREVDTEFSRV9OQU1FRF9BQ0NFU1NfQ0hFQ0soTG9jYXRpb24pOwogICAgICAg
ICBERUNMQVJFX0lOREVYRURfQUNDRVNTX0NIRUNLKEhpc3RvcnkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKaW5k
ZXggNjNmYmNlYy4uZmNjNDI2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwCkBAIC0zMSw2ICszMSw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgpAQCAtMTA2LDQgKzEw
OCw0NCBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTElucHV0RWxlbWVudFNldFNlbGVjdGlvblJh
bmdlKQogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKK0NBTExCQUNLX0ZVTkNfREVD
TChIVE1MSW5wdXRFbGVtZW50U3RlcFVwKQoreworICAgIElOQ19TVEFUUygiRE9NLkhUTUxJbnB1
dEVsZW1lbnQuc3RlcFVwIik7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBh
cmdzLkhvbGRlcigpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGltcCA9IFY4RE9NV3JhcHBlcjo6
Y29udmVydERPTVdyYXBwZXJUb05vZGU8SFRNTElucHV0RWxlbWVudD4oaG9sZGVyKTsKKyAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAg
IGltcC0+c3RlcFVwKDEsIGVjKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdjg6OlRyeUNhdGNoIHRy
eV9jYXRjaDsKKyAgICAgICAgaW50IHN0ZXAgPSB0b0ludDMyKGFyZ3NbMF0pOworICAgICAgICBp
ZiAodHJ5X2NhdGNoLkhhc0NhdWdodCgpKQorICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKKyAgICAgICAgaW1wLT5zdGVwVXAoc3RlcCwgZWMpOworICAgIH0KKyAgICBpZiAoZWMp
CisgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKK30KKworQ0FMTEJBQ0tfRlVOQ19ERUNMKEhUTUxJbnB1dEVsZW1lbnRTdGVw
RG93bikKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5IVE1MSW5wdXRFbGVtZW50LnN0ZXBEb3duIik7
CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBhcmdzLkhvbGRlcigpOworICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGltcCA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBwZXJU
b05vZGU8SFRNTElucHV0RWxlbWVudD4oaG9sZGVyKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIGltcC0+c3RlcERvd24oMSwg
ZWMpOworICAgIGVsc2UgeworICAgICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5X2NhdGNoOworICAgICAg
ICBpbnQgc3RlcCA9IHRvSW50MzIoYXJnc1swXSk7CisgICAgICAgIGlmICh0cnlfY2F0Y2guSGFz
Q2F1Z2h0KCkpCisgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgICAgICBp
bXAtPnN0ZXBEb3duKHN0ZXAsIGVjKTsKKyAgICB9CisgICAgaWYgKGVjKQorICAgICAgICBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRl
eCBmNmQ4NWIzLi41ZDRhOGZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC02Miw2
ICs2Miw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2R0b2Eu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtMzYyLDYgKzM2Myw3OCBAQCBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OmFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFkZEZvck51bWJlcihk
b3VibGUgc3RlcCwgZG91YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NF
UlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBB
U1NFUlQoc3RlcCA+IDApOworICAgIGRvdWJsZSBjdXJyZW50ID0gMC4wOworICAgIGlmICghZm9y
bVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZjdXJyZW50KSkgeworICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvdWJsZSBuZXdWYWx1
ZSA9IGN1cnJlbnQgKyBzdGVwICogY291bnQ7CisgICAgaWYgKGlzaW5mKG5ld1ZhbHVlKSkgewor
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAgICAgZG91YmxlIG1pbmltdW0g
PSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0
dHIpLCAmbWluaW11bSkpIHsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA8IG1pbmltdW0pIHsK
KyAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbiA9IHJp
bnQoKG5ld1ZhbHVlIC0gbWluaW11bSkgLyBzdGVwKTsKKyAgICAgICAgbmV3VmFsdWUgPSBtaW5p
bXVtICsgbiAqIHN0ZXA7CisgICAgICAgIGRvdWJsZSBtYXhpbXVtID0gMC4wOworICAgICAgICBp
ZiAoZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1heGltdW0pKSB7
CisgICAgICAgICAgICBpZiAobmV3VmFsdWUgPiBtYXhpbXVtKSB7CisgICAgICAgICAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeyAgLy8gaW5wdXRUeXBlKCkgPT0gUkFOR0UK
KyAgICAgICAgZG91YmxlIG1pbmltdW0gPSByYW5nZU1pbmltdW0oKTsKKyAgICAgICAgZG91Ymxl
IG1heGltdW0gPSByYW5nZU1heGltdW0oKTsKKyAgICAgICAgaWYgKG5ld1ZhbHVlIDwgbWluaW11
bSB8fCBuZXdWYWx1ZSA+IG1heGltdW0pIHsKKyAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIG4g
PSByaW50KChuZXdWYWx1ZSAtIG1pbmltdW0pIC8gc3RlcCk7CisgICAgICAgIG5ld1ZhbHVlID0g
bWluaW11bSArIG4gKiBzdGVwOworICAgICAgICBpZiAobmV3VmFsdWUgPiBtYXhpbXVtKQorICAg
ICAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgKG4gLSAxKSAqIHN0ZXA7CisgICAgICAgIEFT
U0VSVChuZXdWYWx1ZSA+PSBtaW5pbXVtKTsKKyAgICAgICAgQVNTRVJUKG5ld1ZhbHVlIDw9IG1h
eGltdW0pOworICAgIH0KKyAgICBzZXRWYWx1ZShkb3VibGVUb0Zvcm1TdHJpbmcobmV3VmFsdWUp
KTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoaW50IG4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGRvdWJsZSBzdGVwID0gMC4wOworICAgIGlmICghYWxsb3dlZFZhbHVl
U3RlcCgmc3RlcCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAvLyBUeXBlcyBvdGhlciB0aGFuIE5VTUJFUi9SQU5HRSBzaG91
bGQgYmUgcmVqZWN0ZWQgYnkgYWxsb3dlZFZhbHVlU3RlcCgpLgorICAgIEFTU0VSVChpbnB1dFR5
cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIGFkZEZvck51bWJl
cihzdGVwLCBuLCBlYyk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcERvd24oaW50
IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGRvdWJsZSBzdGVwID0gMC4wOworICAgIGlm
ICghYWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUeXBlcyBvdGhlciB0aGFuIE5V
TUJFUi9SQU5HRSBzaG91bGQgYmUgcmVqZWN0ZWQgYnkgYWxsb3dlZFZhbHVlU3RlcCgpLgorICAg
IEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOwor
ICAgIGFkZEZvck51bWJlcihzdGVwLCAtbiwgZWMpOworfQorCiBzdGF0aWMgaW5saW5lIENoZWNr
ZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRpb0J1dHRvbnMoY29uc3QgSFRNTElucHV0RWxlbWVu
dCAqZWxlbWVudCkKIHsKICAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gZWxlbWVudC0+
Zm9ybSgpKQpAQCAtMTkxMiw2ICsxOTg1LDE0IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6d2ls
bFZhbGlkYXRlKCkgY29uc3QKICAgICAgICAgICAgaW5wdXRUeXBlKCkgIT0gQlVUVE9OICYmIGlu
cHV0VHlwZSgpICE9IFJFU0VUOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6ZG91Ymxl
VG9Gb3JtU3RyaW5nKGRvdWJsZSBudW0pCit7CisgICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1LCAi
dGhlIGJlc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciBuIGFzIGEgZmxvYXRpbmcKKyAg
ICAvLyBwb2ludCBudW1iZXIiIGlzIGEgc3RyaW5nIHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRvU3Ry
aW5nKCkgdG8gbi4KKyAgICBWZWN0b3I8VUNoYXI+IHVjaGFycyA9IFdURjo6ZWNtYTI2MmR0b2Eo
bnVtKTsKKyAgICByZXR1cm4gU3RyaW5nKHVjaGFycy5kYXRhKCksIHVjaGFycy5zaXplKCkpOwor
fQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0RvdWJsZShjb25zdCBTdHJp
bmcmIHNyYywgZG91YmxlKiBvdXQpCiB7CiAgICAgLy8gU2VlIEhUTUw1IDIuNC40LjMgYFJlYWwg
bnVtYmVycy4nCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBjNGVkMDNhLi41MGY4Y2YwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEwNiw2ICsxMDYsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBhbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSopIGNvbnN0OwogICAgIC8vIEZvciBWYWxpZGl0
eVN0YXRlLgogICAgIGJvb2wgc3RlcE1pc21hdGNoKCkgY29uc3Q7CisgICAgLy8gSW1wbGVtZW50
YXRpb25zIG9mIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAg
IHZvaWQgc3RlcFVwKGludCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc3RlcERvd24oaW50
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBTVUJNSVQgfHwgbV90eXBlID09IFJFU0VUIHx8IG1fdHlwZSA9PSBCVVRU
T047IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZSA9PSBSQURJTzsgfQpAQCAtMjYyLDYgKzI2NSwxMiBAQCBwcml2YXRlOgogCiAgICAgUGFz
c1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGNyZWF0ZVRlbXBvcmFyeUZvcm1Gb3JJc0luZGV4KCk7
CiAKKyAgICAvLyBIZWxwZXIgZm9yIHN0ZXBVcCgpL3N0ZXBEb3duKCkuICBBZGRzIHN0ZXAgKiBj
b3VudCB0byB0aGUgY3VycmVudCBudW1iZXIgdmFsdWUuCisgICAgdm9pZCBhZGRGb3JOdW1iZXIo
ZG91YmxlIHN0ZXAsIGRvdWJsZSBjb3VudCwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIENvbnZl
cnRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHRvIGEgc3RyaW5nLiAgVGhpcyBpcyBhbiBpbXBsZW1l
bnRhdGlvbiBvZgorICAgIC8vIEhUTUw1J3MgImFsZ29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVy
IHRvIGEgc3RyaW5nIiBmb3IgTlVNQkVSL1JBTkdFIHR5cGVzLgorICAgIHN0YXRpYyBTdHJpbmcg
ZG91YmxlVG9Gb3JtU3RyaW5nKGRvdWJsZSk7CisKICNpZiBFTkFCTEUoREFUQUxJU1QpCiAgICAg
SFRNTERhdGFMaXN0RWxlbWVudCogZGF0YUxpc3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsCmluZGV4IGI0NWQxOTAuLmY4MjY1YzggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwKQEAgLTcxLDYgKzcxLDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwogI2VuZGlm
CiAKKyAgICAgICAgW0N1c3RvbV0gdm9pZCAgICAgIHN0ZXBVcChpbiBbT3B0aW9uYWxdIGxvbmcg
bikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbQ3VzdG9tXSB2
b2lkICAgICAgc3RlcERvd24oaW4gW09wdGlvbmFsXSBsb25nIG4pCisgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAg
ICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFs
aWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwot
LSAKMS42LjMuMwoK
</data>
<flag name="commit-queue"
          id="24195"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42633</attachid>
            <date>2009-11-05 23:02:13 -0800</date>
            <delta_ts>2009-11-08 21:59:17 -0800</delta_ts>
            <desc>Patch part 3: stepUp() and stepDown() (rev.3)</desc>
            <filename>0001-stepupdown-3.patch</filename>
            <type>text/plain</type>
            <size>28775</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBmYzQ1YTVjNjM2MDhlM2QyYjhhOWU3ODNkM2Y4ZWYyNDIwNjdjZjBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjIzOjIyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcHVw
ZG93bi0zCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNyArKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVj
dGVkLnR4dCAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0ICAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCAgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0
L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IHwgICAxMyArKwogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgfCAgIDEzICsr
CiAuLi4vZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgICB8ICAx
NDAgKysrKysrKysrKysrKysrKysrKwogLi4uL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtcmFuZ2UuanMgICAgfCAgMTQyICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgICB8ICAgMTIgKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysr
CiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgICB8ICAg
MzQgKysrKysKIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oICAg
ICAgIHwgICAgMyArLQogLi4uL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3Bw
ICAgICAgICAgfCAgIDQwICsrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
ICAgICAgICAgICAgICAgICAgfCAgIDgxICsrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNSArCiAxNyBmaWxlcyBj
aGFuZ2VkLCA2NTIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5z
dXBwb3J0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuanMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjdmNTVhMS4uN2FlMjJjOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDA5LTEwLTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
dGVzdHMgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAt
cmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuanM6IEFkZGVkLgorCiAyMDA5LTEwLTI5ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY2ZDE2Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1i
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVw
KCkgZm9yIHR5cGU9bnVtYmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnN0ZXBEb3du
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQ
QVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAo
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC5zdGVwVXAoMikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMTAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAiCitQQVNTIGlucHV0
LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIx
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4MGNh
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXIuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYjE1NTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNDYgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9cmFuZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVw
VXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BB
U1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlu
cHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiLTEiCitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxMDAiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIxMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjkwIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzZiMzc0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmZhOTFhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVuc3VwcG90ZWQgdHlwcGVzCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQuc3RlcERvd24oMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
aW5wdXQuc3RlcFVwKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXVuc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAt
dW5zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjNj
YWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVw
LXVuc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3Rl
cC11bnN1cHBvcnRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAt
bnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3Rl
cC1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhZDhkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtbnVtYmVyLmpzCkBAIC0wLDAgKzEsMTQwIEBACitkZXNjcmlwdGlvbignVGVzdHMg
c3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuJyk7CisKK3ZhciBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0gJ251bWJlcic7Cit2
YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEiJzsKKworLy8gVGhlIHZhbHVlIGlzIHVucGFyc2FibGUuCitpbnB1dC52YWx1ZSA9
ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9u
LW51bWJlciBhcmd1bWVudAoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwRG93bigiZm9v
Iik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwVXAoImZvbyIp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBEZWZhdWx0IHN0ZXAgdmFs
dWUgZm9yIHR5cGU9bnVtYmVyIGlzIDEuCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXBV
cCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcFVwKDIpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworaW5wdXQuc3RlcFVwKC0xKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciLTEiJyk7CitpbnB1dC5zdGVwRG93bigtMSk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkIGZvciBpbnZhbGlk
IHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7Citp
bnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0
ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiIn
KTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2lucHV0LnZhbHVlID0gJzAnOwor
aW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRl
RXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQubWluID0gJzAnOworaW5wdXQuc3RlcCA9
ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52
YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5LgoraW5wdXQudmFsdWUgPSAnMSc7Citp
bnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8g
TWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWluID0gJyc7CitpbnB1
dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBp
bnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAnLTEnOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAn
Ii0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0eS4KK2lucHV0LnZhbHVlID0gJzEnOwor
aW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsK
K3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBz
dGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2ggdmFsdWVzCitpbnB1dC52YWx1ZSA9
ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0gJzInOworaW5wdXQuc3RlcFVw
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CitpbnB1dC5zdGVwRG93bigpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQudmFsdWUgPSAnOSc7CitpbnB1
dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMTAnOworaW5wdXQu
c3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7CitpbnB1dC52YWx1
ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
MCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3VsdCB3b3Vs
ZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9ICc5OSc7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBIdWdlIHZh
bHVlIGFuZCBzbWFsbCBzdGVwCitpbnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQubWluID0g
Jyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoOTk5
OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQuc3RlcERv
d24oOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworCisvLyBG
cmFjdGlvbmFsIG51bWJlcnMKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJyc7Citp
bnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7CitpbnB1
dC5zdGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVw
ID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIy
IicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIGlucHV0LnN0ZXBVcCgpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lu
cHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxJzsKK2lucHV0LnN0ZXAgPSAnMC4wMDM5MjE1
Njg2Mjc0NTA5ODAnOworaW5wdXQuc3RlcFVwKDI1NSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsrKQorICAgIGlucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTI3MzdiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPXJhbmdlLicpOwor
Cit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworaW5wdXQudHlw
ZSA9ICdyYW5nZSc7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworLy8gVGhlIHZhbHVlIGlzIHVucGFyc2FibGUu
CitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRl
RXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1
dC5zdGVwRG93bigiZm9vIik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1
dC5zdGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBE
ZWZhdWx0IHN0ZXAgdmFsdWUgZm9yIHR5cGU9cmFuZ2UgaXMgMS4KK2lucHV0LnZhbHVlID0gJzAn
OworaW5wdXQubWluID0gJy0xMDAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwVXAoMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjMiJyk7CitpbnB1dC5zdGVwVXAoLTEpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIy
IicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsK
K2lucHV0LnN0ZXBEb3duKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKK2lu
cHV0LnN0ZXBEb3duKC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKy8vIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzIHVzZWQgZm9yIGludmFsaWQgc3RlcCB2YWx1ZXMuCitpbnB1dC52
YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnZm9vJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcCA9ICcwJzsKK2lucHV0LnN0ZXBV
cCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworaW5wdXQuc3RlcCA9ICctMSc7
CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworLy8g
Tm8gc3RlcCB2YWx1ZQoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2FueSc7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNaW5pbXVtIGxp
bWl0CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQudmFsdWUgPSAn
MSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQu
dmFsdWUgPSAnMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oMiknLCBpbnZhbGlkU3Rh
dGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworLy8gU2hvdWxkIG5vdCBi
ZSAtSW5maW5pdHkuCitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQu
c3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5wdXQuc3Rl
cERvd24oMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNYXhpbXVtIGxpbWl0CitpbnB1dC52
YWx1ZSA9ICctMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcwJzsKK2lucHV0LnN0
ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCIn
KTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CitpbnB1
dC52YWx1ZSA9ICctMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKDIpJywgaW52YWxpZFN0
YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisvLyBTaG91bGQgbm90
IGJlIEluZmluaXR5LgoraW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0
LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9y
IHN0ZXBNaXNtYXRjaCB2YWx1ZXMKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0x
JzsKK2lucHV0LnN0ZXAgPSAnMic7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7CitpbnB1dC52YWx1ZSA9ICc5JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1h
eCA9ICcnOworaW5wdXQuc3RlcCA9ICcxMCc7CitpbnB1dC5zdGVwVXAoOSk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjEwMCInKTsKK2lucHV0LnZhbHVlID0gJzE5JzsKK2lucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwIicpOworLy8gdmFsdWUgKyBzdGVw
IGlzIDw9IG1heCwgYnV0IHJvdW5kZWQgcmVzdWx0IHdvdWxkIGJlID4gbWF4LgoraW5wdXQudmFs
dWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5JzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyI5MCInKTsKKworLy8gSHVnZSB2YWx1ZSBhbmQgc21hbGwgc3RlcAor
aW5wdXQudmFsdWUgPSAnMWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcx
LjFlKzMwOCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5OTk5OSk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rpb25hbCBu
dW1iZXJzCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0g
Jyc7CitpbnB1dC5zdGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQuc3RlcFVwKDMp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcCA9ICcwLjEnOwor
aW5wdXQuc3RlcFVwKDEwKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMyInKTsKKworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAn
MCc7CitpbnB1dC5tYXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3NDUwOTgw
JzsKK2lucHV0LnN0ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAyNTU7IGkrKykKKyAgICBpbnB1dC5zdGVwRG93bigpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNiZDExODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCkBAIC0wLDAgKzEsMTIg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB1bnN1cHBvdGVk
IHR5cHBlcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
OworaW5wdXQudHlwZSA9ICd0ZXh0JzsKK2lucHV0LnN0ZXAgPSAnMyc7CitpbnB1dC52YWx1ZSA9
ICcyJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgJyJFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERv
d24oMCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsK
K3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgwKScsICci
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIicpOworCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVhYjk0Zi4uMzQ4MmJmZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAor
MjAwOS0xMC0zMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAgICAgICBUZXN0czog
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBE
b3duKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmg6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbTo6djhIVE1MSW5wdXRFbGVtZW50U3RlcFVwQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b206OnY4SFRNTElucHV0RWxlbWVudFN0
ZXBEb3duQ2FsbGJhY2spOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphZGRGb3JOdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmRvdWJsZVRvRm9ybVN0cmluZyk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKwogMjAwOS0x
MC0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTUxNjZlZS4uYWVlYjNmZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtMTE2LDQg
KzExNiwzOCBAQCBKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2Uo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcgogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQogCitKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c3RlcFVwKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgIGludCBzdGVwOworICAgIGlmIChhcmdzLnNpemUoKSA8IDEpCisg
ICAgICAgIGlucHV0LT5zdGVwVXAoMSwgZWMpOworICAgIGVsc2UgeworICAgICAgICBzdGVwID0g
YXJncy5hdCgwKS50b0ludDMyKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgaW5wdXQtPnN0
ZXBVcChzdGVwLCBlYyk7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Cisg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNIVE1MSW5wdXRFbGVtZW50
OjpzdGVwRG93bihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
aW1wbCgpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpbnQgc3RlcDsKKyAgICBp
ZiAoYXJncy5zaXplKCkgPCAxKQorICAgICAgICBpbnB1dC0+c3RlcERvd24oMSwgZWMpOworICAg
IGVsc2UgeworICAgICAgICBzdGVwID0gYXJncy5hdCgwKS50b0ludDMyKGV4ZWMpOworICAgICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICAgICAgaW5wdXQtPnN0ZXBEb3duKHN0ZXAsIGVjKTsKKyAgICB9CisgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21CaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1
c3RvbUJpbmRpbmcuaAppbmRleCBkOWY5MzQ0Li5mNjcyMGYxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaApAQCAtMjgzLDkgKzI4MywxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERFQ0xBUkVfUFJPUEVSVFlfQUNDRVNTT1IoSFRNTE9w
dGlvbnNDb2xsZWN0aW9uTGVuZ3RoKTsKIAogICAgICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxJ
bnB1dEVsZW1lbnRTZXRTZWxlY3Rpb25SYW5nZSk7Ci0KICAgICAgICAgREVDTEFSRV9QUk9QRVJU
WV9BQ0NFU1NPUihIVE1MSW5wdXRFbGVtZW50U2VsZWN0aW9uU3RhcnQpOwogICAgICAgICBERUNM
QVJFX1BST1BFUlRZX0FDQ0VTU09SKEhUTUxJbnB1dEVsZW1lbnRTZWxlY3Rpb25FbmQpOworICAg
ICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxJbnB1dEVsZW1lbnRTdGVwVXApOworICAgICAgICBE
RUNMQVJFX0NBTExCQUNLKEhUTUxJbnB1dEVsZW1lbnRTdGVwRG93bik7CiAKICAgICAgICAgREVD
TEFSRV9OQU1FRF9BQ0NFU1NfQ0hFQ0soTG9jYXRpb24pOwogICAgICAgICBERUNMQVJFX0lOREVY
RURfQUNDRVNTX0NIRUNLKEhpc3RvcnkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNjNmYmNlYy4uMWQ5
MzNjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRF
bGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJ
bnB1dEVsZW1lbnRDdXN0b20uY3BwCkBAIC0xMDYsNCArMTA2LDQ0IEBAIENBTExCQUNLX0ZVTkNf
REVDTChIVE1MSW5wdXRFbGVtZW50U2V0U2VsZWN0aW9uUmFuZ2UpCiAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKIH0KIAorQ0FMTEJBQ0tfRlVOQ19ERUNMKEhUTUxJbnB1dEVsZW1lbnRTdGVw
VXApCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTElucHV0RWxlbWVudC5zdGVwVXAiKTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CisgICAgSFRN
TElucHV0RWxlbWVudCogaW1wID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9k
ZTxIVE1MSW5wdXRFbGVtZW50Pihob2xkZXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgaW1wLT5zdGVwVXAoMSwgZWMpOwor
ICAgIGVsc2UgeworICAgICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5X2NhdGNoOworICAgICAgICBpbnQg
c3RlcCA9IHRvSW50MzIoYXJnc1swXSk7CisgICAgICAgIGlmICh0cnlfY2F0Y2guSGFzQ2F1Z2h0
KCkpCisgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgICAgICBpbXAtPnN0
ZXBVcChzdGVwLCBlYyk7CisgICAgfQorICAgIGlmIChlYykKKyAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKGVjKTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCitDQUxM
QkFDS19GVU5DX0RFQ0woSFRNTElucHV0RWxlbWVudFN0ZXBEb3duKQoreworICAgIElOQ19TVEFU
UygiRE9NLkhUTUxJbnB1dEVsZW1lbnQuc3RlcERvd24iKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW1w
ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MSW5wdXRFbGVtZW50
Pihob2xkZXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMSkKKyAgICAgICAgaW1wLT5zdGVwRG93bigxLCBlYyk7CisgICAgZWxzZSB7CisgICAg
ICAgIHY4OjpUcnlDYXRjaCB0cnlfY2F0Y2g7CisgICAgICAgIGludCBzdGVwID0gdG9JbnQzMihh
cmdzWzBdKTsKKyAgICAgICAgaWYgKHRyeV9jYXRjaC5IYXNDYXVnaHQoKSkKKyAgICAgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgICAgIGltcC0+c3RlcERvd24oc3RlcCwgZWMp
OworICAgIH0KKyAgICBpZiAoZWMpCisgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
Yyk7CisgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGY2ZDg1YjMuLjVkNGE4ZmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJU
ZXh0RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvZHRvYS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
c3RkOwogCkBAIC0zNjIsNiArMzYzLDc4IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6YWxsb3dl
ZFZhbHVlU3RlcChkb3VibGUqIHN0ZXApIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgSFRNTElucHV0RWxlbWVudDo6YWRkRm9yTnVtYmVyKGRvdWJsZSBzdGVwLCBkb3VibGUgY291
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1C
RVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIEFTU0VSVChzdGVwID4gMCk7CisgICAg
ZG91YmxlIGN1cnJlbnQgPSAwLjA7CisgICAgaWYgKCFmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUo
KSwgJmN1cnJlbnQpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIG5ld1ZhbHVlID0gY3VycmVudCArIHN0ZXAgKiBj
b3VudDsKKyAgICBpZiAoaXNpbmYobmV3VmFsdWUpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGlucHV0VHlwZSgpID09
IE5VTUJFUikgeworICAgICAgICBkb3VibGUgbWluaW11bSA9IDAuMDsKKyAgICAgICAgaWYgKGZv
cm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW5pbXVtKSkgeworICAg
ICAgICAgICAgaWYgKG5ld1ZhbHVlIDwgbWluaW11bSkgeworICAgICAgICAgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIGRvdWJsZSBuID0gcmludCgobmV3VmFsdWUgLSBtaW5pbXVt
KSAvIHN0ZXApOworICAgICAgICBuZXdWYWx1ZSA9IG1pbmltdW0gKyBuICogc3RlcDsKKyAgICAg
ICAgZG91YmxlIG1heGltdW0gPSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUo
Z2V0QXR0cmlidXRlKG1heEF0dHIpLCAmbWF4aW11bSkpIHsKKyAgICAgICAgICAgIGlmIChuZXdW
YWx1ZSA+IG1heGltdW0pIHsKKyAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0gZWxzZSB7ICAvLyBpbnB1dFR5cGUoKSA9PSBSQU5HRQorICAgICAgICBkb3VibGUgbWluaW11
bSA9IHJhbmdlTWluaW11bSgpOworICAgICAgICBkb3VibGUgbWF4aW11bSA9IHJhbmdlTWF4aW11
bSgpOworICAgICAgICBpZiAobmV3VmFsdWUgPCBtaW5pbXVtIHx8IG5ld1ZhbHVlID4gbWF4aW11
bSkgeworICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbiA9IHJpbnQoKG5ld1ZhbHVlIC0gbWlu
aW11bSkgLyBzdGVwKTsKKyAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgbiAqIHN0ZXA7Cisg
ICAgICAgIGlmIChuZXdWYWx1ZSA+IG1heGltdW0pCisgICAgICAgICAgICBuZXdWYWx1ZSA9IG1p
bmltdW0gKyAobiAtIDEpICogc3RlcDsKKyAgICAgICAgQVNTRVJUKG5ld1ZhbHVlID49IG1pbmlt
dW0pOworICAgICAgICBBU1NFUlQobmV3VmFsdWUgPD0gbWF4aW11bSk7CisgICAgfQorICAgIHNl
dFZhbHVlKGRvdWJsZVRvRm9ybVN0cmluZyhuZXdWYWx1ZSkpOworfQorCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnN0ZXBVcChpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgZG91Ymxl
IHN0ZXAgPSAwLjA7CisgICAgaWYgKCFhbGxvd2VkVmFsdWVTdGVwKCZzdGVwKSkgeworICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8v
IFR5cGVzIG90aGVyIHRoYW4gTlVNQkVSL1JBTkdFIHNob3VsZCBiZSByZWplY3RlZCBieSBhbGxv
d2VkVmFsdWVTdGVwKCkuCisgICAgQVNTRVJUKGlucHV0VHlwZSgpID09IE5VTUJFUiB8fCBpbnB1
dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgYWRkRm9yTnVtYmVyKHN0ZXAsIG4sIGVjKTsKK30KKwor
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bihpbnQgbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgZG91YmxlIHN0ZXAgPSAwLjA7CisgICAgaWYgKCFhbGxvd2VkVmFsdWVTdGVwKCZz
dGVwKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIC8vIFR5cGVzIG90aGVyIHRoYW4gTlVNQkVSL1JBTkdFIHNob3VsZCBiZSBy
ZWplY3RlZCBieSBhbGxvd2VkVmFsdWVTdGVwKCkuCisgICAgQVNTRVJUKGlucHV0VHlwZSgpID09
IE5VTUJFUiB8fCBpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgYWRkRm9yTnVtYmVyKHN0ZXAs
IC1uLCBlYyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlvQnV0dG9ucyYgY2hlY2tl
ZFJhZGlvQnV0dG9ucyhjb25zdCBIVE1MSW5wdXRFbGVtZW50ICplbGVtZW50KQogewogICAgIGlm
IChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCkBAIC0xOTEyLDYgKzE5
ODUsMTQgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25zdAogICAg
ICAgICAgICBpbnB1dFR5cGUoKSAhPSBCVVRUT04gJiYgaW5wdXRUeXBlKCkgIT0gUkVTRVQ7CiB9
CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpkb3VibGVUb0Zvcm1TdHJpbmcoZG91YmxlIG51
bSkKK3sKKyAgICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlv
biBvZiB0aGUgbnVtYmVyIG4gYXMgYSBmbG9hdGluZworICAgIC8vIHBvaW50IG51bWJlciIgaXMg
YSBzdHJpbmcgcHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9TdHJpbmcoKSB0byBuLgorICAgIFZlY3Rv
cjxVQ2hhcj4gdWNoYXJzID0gV1RGOjplY21hMjYyZHRvYShudW0pOworICAgIHJldHVybiBTdHJp
bmcodWNoYXJzLmRhdGEoKSwgdWNoYXJzLnNpemUoKSk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6Zm9ybVN0cmluZ1RvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUqIG91dCkK
IHsKICAgICAvLyBTZWUgSFRNTDUgMi40LjQuMyBgUmVhbCBudW1iZXJzLicKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCmluZGV4IGM0ZWQwM2EuLjUwZjhjZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMTA2LDYgKzEwNiw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93ZWRWYWx1ZVN0ZXAo
ZG91YmxlKikgY29uc3Q7CiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUuCiAgICAgYm9vbCBzdGVw
TWlzbWF0Y2goKSBjb25zdDsKKyAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgSFRNTElucHV0RWxl
bWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgdm9pZCBzdGVwVXAoaW50LCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzdGVwRG93bihpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAog
ICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFNVQk1JVCB8
fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFJBRElPOyB9CkBAIC0y
NjIsNiArMjY1LDEyIEBAIHByaXZhdGU6CiAKICAgICBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVu
dD4gY3JlYXRlVGVtcG9yYXJ5Rm9ybUZvcklzSW5kZXgoKTsKIAorICAgIC8vIEhlbHBlciBmb3Ig
c3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCAqIGNvdW50IHRvIHRoZSBjdXJyZW50IG51
bWJlciB2YWx1ZS4KKyAgICB2b2lkIGFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91YmxlIGNv
dW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1i
ZXIgdG8gYSBzdHJpbmcuICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mCisgICAgLy8gSFRN
TDUncyAiYWxnb3JpdGhtIHRvIGNvbnZlcnQgYSBudW1iZXIgdG8gYSBzdHJpbmciIGZvciBOVU1C
RVIvUkFOR0UgdHlwZXMuCisgICAgc3RhdGljIFN0cmluZyBkb3VibGVUb0Zvcm1TdHJpbmcoZG91
YmxlKTsKKwogI2lmIEVOQUJMRShEQVRBTElTVCkKICAgICBIVE1MRGF0YUxpc3RFbGVtZW50KiBk
YXRhTGlzdCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXgg
YjQ1ZDE5MC4uZjgyNjVjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzEsNiAr
NzEsMTEgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTE9w
dGlvbkVsZW1lbnQgc2VsZWN0ZWRPcHRpb247CiAjZW5kaWYKIAorICAgICAgICBbQ3VzdG9tXSB2
b2lkICAgICAgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9uZyBuKQorICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b21dIHZvaWQgICAgICBzdGVwRG93bihpbiBb
T3B0aW9uYWxdIGxvbmcgbikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOwog
ICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lk
ICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="24200"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="24201"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42733</attachid>
            <date>2009-11-08 21:59:17 -0800</date>
            <delta_ts>2009-11-10 21:40:07 -0800</delta_ts>
            <desc>Patch part 3: stepUp() and stepDown() (rev.4)</desc>
            <filename>0001-stepupdown-4.patch</filename>
            <type>text/plain</type>
            <size>24607</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBiNTU4NjIyM2I3NjQxMTk0M2QwNWQ4MWM5NWUzM2EyZWNlZWQ4Y2U0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjIzOjIyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcHVw
ZG93bi00CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNyArKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVj
dGVkLnR4dCAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0ICAgICAgIHwgICA0NiArKysrKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCAgICAgICB8ICAgMTMgKysKIC4uLi9mYXN0
L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IHwgICAxMyArKwogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgfCAgIDEzICsr
CiAuLi4vZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgICB8ICAx
NDAgKysrKysrKysrKysrKysrKysrKwogLi4uL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtcmFuZ2UuanMgICAgfCAgMTQyICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgICB8ICAgMTIgKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysK
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgIHwgICA4
MiArKysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCAgICAgICAgICAg
ICAgICAgICAgfCAgIDExICsrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgICAg
ICAgICAgICAgICAgICB8ICAgIDUgKwogMTQgZmlsZXMgY2hhbmdlZCwgNTcyIGluc2VydGlvbnMo
KyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVw
LXJhbmdlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVw
LW51bWJlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDY3ZjU1YTEuLjdhZTIyYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0xMC0z
MCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBIVE1MSW5wdXRFbGVt
ZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLW51bWJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXN0ZXAtcmFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzOiBB
ZGRlZC4KKwogMjAwOS0xMC0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNmQxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQ2IEBACitUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPW51bWJlci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgor
UEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIx
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBV
cCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEu
CitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFT
UyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5w
dXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVl
IGlzICItMSIKK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIz
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwMCIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjEwIgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViODBjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zZGIxNTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ2IEBACitUZXN0cyBzdGVw
RG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPXJhbmdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEu
CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICItMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlu
cHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjAiCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcERvd24o
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEu
CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBp
bnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC5z
dGVwVXAoMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAi
CitQQVNTIGlucHV0LnZhbHVlIGlzICI5MCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNzc2YjM3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtc3RlcC1yYW5nZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtcmFuZ2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTkxYTU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVu
c3VwcG9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyBzdGVwRG93bigp
L3N0ZXBVcCgpIGZvciB1bnN1cHBvdGVkIHR5cHBlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBEb3duKDAp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24g
MTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgwKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYzY2FhZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYWQ4ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcwpAQCAt
MCwwICsxLDE0MCBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9y
IHR5cGU9bnVtYmVyLicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpOworaW5wdXQudHlwZSA9ICdudW1iZXInOwordmFyIGludmFsaWRTdGF0ZUVyciA9ICci
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIic7CisKKy8vIFRoZSB2
YWx1ZSBpcyB1bnBhcnNhYmxlLgoraW5wdXQudmFsdWUgPSAnJzsKK3Nob3VsZFRocm93KCdpbnB1
dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
VXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE5vbi1udW1iZXIgYXJndW1lbnQKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcERvd24oImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworaW5wdXQuc3RlcFVwKCJmb28iKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMCInKTsKKworLy8gRGVmYXVsdCBzdGVwIHZhbHVlIGZvciB0eXBlPW51bWJlciBpcyAx
LgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXBVcCgyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMyInKTsKK2lucHV0LnN0ZXBVcCgtMSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIi
Jyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOwor
aW5wdXQuc3RlcERvd24oMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworaW5w
dXQuc3RlcERvd24oLTEpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworLy8gVGhl
IGRlZmF1bHQgdmFsdWUgaXMgdXNlZCBmb3IgaW52YWxpZCBzdGVwIHZhbHVlcy4KK2lucHV0LnZh
bHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdmb28nOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwID0gJzAnOworaW5wdXQuc3RlcFVw
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CitpbnB1dC5zdGVwID0gJy0xJzsK
K2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCisvLyBO
byBzdGVwIHZhbHVlCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnYW55JzsKK3No
b3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRo
cm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1pbmltdW0gbGlt
aXQKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC52YWx1ZSA9ICcx
JzsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitpbnB1dC52
YWx1ZSA9ICcxJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigyKScsIGludmFsaWRTdGF0
ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisvLyBTaG91bGQgbm90IGJl
IC1JbmZpbml0eS4KK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5z
dGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
RG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1heGltdW0gbGltaXQKK2lucHV0LnZh
bHVlID0gJy0xJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJzAnOworaW5wdXQuc3Rl
cCA9ICcxJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicp
Oworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0
LnZhbHVlID0gJy0xJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3Rh
dGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKy8vIFNob3VsZCBub3Qg
YmUgSW5maW5pdHkuCitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQu
c3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5wdXQuc3Rl
cFVwKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gc3RlcERvd24oKS9zdGVwVXAoKSBmb3Ig
c3RlcE1pc21hdGNoIHZhbHVlcworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnLTEn
OworaW5wdXQuc3RlcCA9ICcyJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIzIicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMSInKTsKK2lucHV0LnZhbHVlID0gJzknOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4
ID0gJyc7CitpbnB1dC5zdGVwID0gJzEwJzsKK2lucHV0LnN0ZXBVcCg5KTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMTAwIicpOworaW5wdXQudmFsdWUgPSAnMTknOworaW5wdXQuc3RlcERv
d24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTAiJyk7CisvLyB2YWx1ZSArIHN0ZXAg
aXMgPD0gbWF4LCBidXQgcm91bmRlZCByZXN1bHQgd291bGQgYmUgPiBtYXguCitpbnB1dC52YWx1
ZSA9ICc4OSc7CitpbnB1dC5tYXggPSAnOTknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgp
JywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gSHVnZSB2YWx1ZSBhbmQgc21hbGwgc3RlcAoraW5w
dXQudmFsdWUgPSAnMWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJyc7Citp
bnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5OTk5OSk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rpb25hbCBudW1iZXJzCitpbnB1
dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5z
dGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQuc3RlcFVwKDMpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcCA9ICcwLjEnOworaW5wdXQuc3RlcFVw
KDEwKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTA7IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMyInKTsKKworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5t
YXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3NDUwOTgwJzsKK2lucHV0LnN0
ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAyNTU7IGkrKykKKyAgICBpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFu
Z2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJh
bmdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNzM3YjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1z
dGVwLXJhbmdlLmpzCkBAIC0wLDAgKzEsMTQyIEBACitkZXNjcmlwdGlvbignVGVzdHMgc3RlcERv
d24oKS9zdGVwVXAoKSBmb3IgdHlwZT1yYW5nZS4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAncmFuZ2UnOwordmFyIGludmFs
aWRTdGF0ZUVyciA9ICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
Iic7CisKKy8vIFRoZSB2YWx1ZSBpcyB1bnBhcnNhYmxlLgoraW5wdXQudmFsdWUgPSAnJzsKK3No
b3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRo
cm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE5vbi1udW1iZXIg
YXJndW1lbnQKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcERvd24oImZvbyIpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworaW5wdXQuc3RlcFVwKCJmb28iKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworLy8gRGVmYXVsdCBzdGVwIHZhbHVlIGZvciB0
eXBlPXJhbmdlIGlzIDEuCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMTAwJzsK
K2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQu
c3RlcFVwKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworaW5wdXQuc3RlcFVw
KC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXBEb3duKCk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CitpbnB1dC5zdGVwRG93bigtMSk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2Vk
IGZvciBpbnZhbGlkIHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVw
ID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSIn
KTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2lucHV0LnZh
bHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBE
b3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywg
aW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQubWluID0gJzAnOwor
aW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3RlcERvd24oKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
RG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhy
b3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5LgoraW5wdXQudmFs
dWUgPSAnMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIz
MTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRl
RXJyKTsKKworLy8gTWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWlu
ID0gJyc7CitpbnB1dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVw
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRUaHJvdygnaW5wdXQu
c3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAnLTEnOworc2hvdWxk
VGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIi0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0eS4KK2lucHV0LnZh
bHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYy
MzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3RhdGVF
cnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2ggdmFsdWVzCitp
bnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0gJzInOwor
aW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CitpbnB1dC5z
dGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQudmFsdWUg
PSAnOSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAn
MTAnOworaW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7
CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxMCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVk
IHJlc3VsdCB3b3VsZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9
ICc5OSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciOTAiJyk7
CisKKy8vIEh1Z2UgdmFsdWUgYW5kIHNtYWxsIHN0ZXAKK2lucHV0LnZhbHVlID0gJzFlKzMwOCc7
CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMS4xZSszMDgnOworaW5wdXQuc3RlcCA9
ICcxJzsKK2lucHV0LnN0ZXBVcCg5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
ZSszMDgiJyk7CitpbnB1dC5zdGVwRG93big5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIxZSszMDgiJyk7CisKKy8vIEZyYWN0aW9uYWwgbnVtYmVycworaW5wdXQudmFsdWUgPSAn
MCc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcwLjMz
MzMzMzMzMzMzMzMzMzMzJzsKK2lucHV0LnN0ZXBVcCgzKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lucHV0LnN0ZXBVcCgxMCk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKysp
CisgICAgaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisK
K2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4ID0gJzEnOwor
aW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYyNzQ1MDk4MCc7CitpbnB1dC5zdGVwVXAoMjU1KTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMjU1
OyBpKyspCisgICAgaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MCInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBv
cnRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmQxMTg4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQt
c3RlcC11bnN1cHBvcnRlZC5qcwpAQCAtMCwwICsxLDEyIEBACitkZXNjcmlwdGlvbignVGVzdHMg
c3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdW5zdXBwb3RlZCB0eXBwZXMnKTsKKwordmFyIGlucHV0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAndGV4dCc7
CitpbnB1dC5zdGVwID0gJzMnOworaW5wdXQudmFsdWUgPSAnMic7CitzaG91bGRUaHJvdygnaW5w
dXQuc3RlcERvd24oKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDApJywgJyJFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3Rl
cFVwKCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsK
K3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDU1YWI5NGYuLmU2ZDIyMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMzAgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAo
KSBhbmQgc3RlcERvd24oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtc3RlcC1u
dW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1s
CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6YWRkRm9yTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpkb3Vi
bGVUb0Zvcm1TdHJpbmcpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisKIDIwMDktMTAtMjggIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGY2ZDg1YjMuLmMwMmYyOTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTYyLDcgKzYyLDkgQEAKICNpbmNsdWRl
ICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvZHRvYS5oPgogCit1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MzYyLDYgKzM2NCw3OCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmFsbG93ZWRWYWx1ZVN0ZXAo
ZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91YmxlIGNvdW50LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0
VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NFUlQoc3RlcCA+IDApOworICAgIGRvdWJsZSBjdXJy
ZW50ID0gMC4wOworICAgIGlmICghZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZjdXJyZW50
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGN1cnJlbnQgKyBzdGVwICogY291bnQ7CisgICAg
aWYgKGlzaW5mKG5ld1ZhbHVlKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsK
KyAgICAgICAgZG91YmxlIG1pbmltdW0gPSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9E
b3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluaW11bSkpIHsKKyAgICAgICAgICAgIGlm
IChuZXdWYWx1ZSA8IG1pbmltdW0pIHsKKyAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBkb3VibGUgbiA9IHJvdW5kKChuZXdWYWx1ZSAtIG1pbmltdW0pIC8gc3RlcCk7
CisgICAgICAgIG5ld1ZhbHVlID0gbWluaW11bSArIG4gKiBzdGVwOworICAgICAgICBkb3VibGUg
bWF4aW11bSA9IDAuMDsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1
dGUobWF4QXR0ciksICZtYXhpbXVtKSkgeworICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID4gbWF4
aW11bSkgeworICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsg
IC8vIGlucHV0VHlwZSgpID09IFJBTkdFCisgICAgICAgIGRvdWJsZSBtaW5pbXVtID0gcmFuZ2VN
aW5pbXVtKCk7CisgICAgICAgIGRvdWJsZSBtYXhpbXVtID0gcmFuZ2VNYXhpbXVtKCk7CisgICAg
ICAgIGlmIChuZXdWYWx1ZSA8IG1pbmltdW0gfHwgbmV3VmFsdWUgPiBtYXhpbXVtKSB7CisgICAg
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGRvdWJsZSBuID0gcm91bmQoKG5ld1ZhbHVlIC0gbWluaW11bSkgLyBz
dGVwKTsKKyAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgbiAqIHN0ZXA7CisgICAgICAgIGlm
IChuZXdWYWx1ZSA+IG1heGltdW0pCisgICAgICAgICAgICBuZXdWYWx1ZSA9IG1pbmltdW0gKyAo
biAtIDEpICogc3RlcDsKKyAgICAgICAgQVNTRVJUKG5ld1ZhbHVlID49IG1pbmltdW0pOworICAg
ICAgICBBU1NFUlQobmV3VmFsdWUgPD0gbWF4aW11bSk7CisgICAgfQorICAgIHNldFZhbHVlKGZv
cm1TdHJpbmdGcm9tRG91YmxlKG5ld1ZhbHVlKSk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6c3RlcFVwKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBkb3VibGUgc3RlcCA9
IDAuMDsKKyAgICBpZiAoIWFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXApKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gVHlwZXMg
b3RoZXIgdGhhbiBOVU1CRVIvUkFOR0Ugc2hvdWxkIGJlIHJlamVjdGVkIGJ5IGFsbG93ZWRWYWx1
ZVN0ZXAoKS4KKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgp
ID09IFJBTkdFKTsKKyAgICBhZGRGb3JOdW1iZXIoc3RlcCwgbiwgZWMpOworfQorCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBkb3VibGUgc3RlcCA9IDAuMDsKKyAgICBpZiAoIWFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXApKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgLy8gVHlwZXMgb3RoZXIgdGhhbiBOVU1CRVIvUkFOR0Ugc2hvdWxkIGJlIHJlamVjdGVk
IGJ5IGFsbG93ZWRWYWx1ZVN0ZXAoKS4KKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVS
IHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBhZGRGb3JOdW1iZXIoc3RlcCwgLW4sIGVj
KTsKK30KKwogc3RhdGljIGlubGluZSBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9C
dXR0b25zKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQgKmVsZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxG
b3JtRWxlbWVudCogZm9ybSA9IGVsZW1lbnQtPmZvcm0oKSkKQEAgLTE5MTIsNiArMTk4NiwxNCBA
QCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNvbnN0CiAgICAgICAgICAg
IGlucHV0VHlwZSgpICE9IEJVVFRPTiAmJiBpbnB1dFR5cGUoKSAhPSBSRVNFVDsKIH0KIAorU3Ry
aW5nIEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91YmxlKGRvdWJsZSBudW0pCit7
CisgICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1LCAidGhlIGJlc3QgcmVwcmVzZW50YXRpb24gb2Yg
dGhlIG51bWJlciBuIGFzIGEgZmxvYXRpbmcKKyAgICAvLyBwb2ludCBudW1iZXIiIGlzIGEgc3Ry
aW5nIHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRvU3RyaW5nKCkgdG8gbi4KKyAgICBWZWN0b3I8VUNo
YXI+IHVjaGFycyA9IGVjbWEyNjJkdG9hKG51bSk7CisgICAgcmV0dXJuIFN0cmluZyh1Y2hhcnMu
ZGF0YSgpLCB1Y2hhcnMuc2l6ZSgpKTsKK30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpmb3Jt
U3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQogewogICAgIC8v
IFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggYzRlZDAzYS4uODFkZGFkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMDYs
NiArMTA2LDExIEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKikg
Y29uc3Q7CiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUuCiAgICAgYm9vbCBzdGVwTWlzbWF0Y2go
KSBjb25zdDsKKyAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgSFRNTElucHV0RWxlbWVudDo6c3Rl
cFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgdm9pZCBzdGVwVXAoaW50LCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzdGVwRG93bihpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0
ZXBVcChFeGNlcHRpb25Db2RlJiBlYykgeyBzdGVwVXAoMSwgZWMpOyB9CisgICAgdm9pZCBzdGVw
RG93bihFeGNlcHRpb25Db2RlJiBlYykgeyBzdGVwRG93bigxLCBlYyk7IH0KIAogICAgIGJvb2wg
aXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFNVQk1JVCB8fCBtX3R5cGUg
PT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlv
QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFJBRElPOyB9CkBAIC0yNjIsNiArMjY3
LDEyIEBAIHByaXZhdGU6CiAKICAgICBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRl
VGVtcG9yYXJ5Rm9ybUZvcklzSW5kZXgoKTsKIAorICAgIC8vIEhlbHBlciBmb3Igc3RlcFVwKCkv
c3RlcERvd24oKS4gIEFkZHMgc3RlcCAqIGNvdW50IHRvIHRoZSBjdXJyZW50IG51bWJlciB2YWx1
ZS4KKyAgICB2b2lkIGFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91YmxlIGNvdW50LCBFeGNl
cHRpb25Db2RlJik7CisgICAgLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdG8gYSBz
dHJpbmcuICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mCisgICAgLy8gSFRNTDUncyAiYWxn
b3JpdGhtIHRvIGNvbnZlcnQgYSBudW1iZXIgdG8gYSBzdHJpbmciIGZvciBOVU1CRVIvUkFOR0Ug
dHlwZXMuCisgICAgc3RhdGljIFN0cmluZyBmb3JtU3RyaW5nRnJvbURvdWJsZShkb3VibGUpOwor
CiAjaWYgRU5BQkxFKERBVEFMSVNUKQogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQqIGRhdGFMaXN0
KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBiNDVkMTkw
Li4xMDI0MzRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC03MSw2ICs3MSwxMSBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxl
bWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgogCisgICAgICAgIHZvaWQgICAgICAgICAgICAg
ICBzdGVwVXAoaW4gW09wdGlvbmFsXSBsb25nIG4pCisgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0ZXBEb3duKGluIFtPcHRpb25h
bF0gbG9uZyBuKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CiAgICAgICAg
IGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgICAgICAg
ICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="commit-queue"
          id="24294"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42926</attachid>
            <date>2009-11-10 22:39:00 -0800</date>
            <delta_ts>2009-11-18 23:31:48 -0800</delta_ts>
            <desc>stepUp() and stepDown() (rev.5)</desc>
            <filename>0001-stepupdown-5.patch</filename>
            <type>text/plain</type>
            <size>25651</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAxOWVmNTllMWMzOTUwMzQ2NTlmODk2Zjk5MTBiZTYyZWU3OTBhNGFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDI4IE9jdCAyMDA5IDE4OjIzOjIyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RlcHVw
ZG93bi01CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNyArKwogLi4uL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0
ZWQudHh0ICAgICAgfCAgIDUyICsrKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
c3RlcC1udW1iZXIuaHRtbCAgICAgIHwgICAxMyArKwogLi4uL2Zhc3QvZm9ybXMvaW5wdXQtc3Rl
cC1yYW5nZS1leHBlY3RlZC50eHQgICAgICAgfCAgIDUyICsrKysrKysKIExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sICAgICAgIHwgICAxMyArKwogLi4uL2Zhc3Qv
Zm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQgfCAgIDEzICsrCiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbCB8ICAgMTMgKysK
IC4uLi9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcyAgIHwgIDE1
MyArKysrKysrKysrKysrKysrKysrCiAuLi4vZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQt
c3RlcC1yYW5nZS5qcyAgICB8ICAxNTUgKysrKysrKysrKysrKysrKysrKysKIC4uLi9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcyAgIHwgICAxMiArKwogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKwog
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgfCAgIDgy
ICsrKysrKysrKysKIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICAgICAgICAg
ICAgICAgIHwgICAxMSArKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsICAgICAg
ICAgICAgICAgICAgfCAgICA1ICsKIDE0IGZpbGVzIGNoYW5nZWQsIDYxMCBpbnNlcnRpb25zKCsp
LCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1y
YW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1u
dW1iZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdlLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcwoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmNDE2NjExLi45MThhNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTAtMzAg
IEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgSFRNTElucHV0RWxlbWVu
dDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5w
dXQtc3RlcC1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc3Rl
cC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qczogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qczogQWRk
ZWQuCisKIDIwMDktMTAtMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWVjMjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1MiBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BB
U1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZh
bHVlIGlzICItMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5w
dXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwRG93bigy
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitQQVNTIGlucHV0LnN0
ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxMDAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxMCIK
K1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitQQVNT
IGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtc3RlcC1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lYjgwY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0
LXN0ZXAtbnVtYmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJiYjI4NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1MiBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlw
ZT1yYW5nZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuc3Rl
cERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIzIgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC5z
dGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1MgaW5wdXQuc3RlcFVw
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIK
K1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwMCIKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjEwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiOTAiCitQQVNTIGlucHV0LnZhbHVl
IGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjc3NmIzNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVu
c3VwcG9ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3Rl
cC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZmE5MWE1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVz
dHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdW5zdXBwb3RlZCB0eXBwZXMKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1
dC5zdGVwRG93bigwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVw
VXAoMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBw
b3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2M2NhYWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0
ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9y
dGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDlhMDExCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1u
dW1iZXIuanMKQEAgLTAsMCArMSwxNTMgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigp
L3N0ZXBVcCgpIGZvciB0eXBlPW51bWJlci4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK3ZhciBpbnZhbGlk
U3RhdGVFcnIgPSAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSIn
OworCisvLyBUaGUgdmFsdWUgaXMgdW5wYXJzYWJsZS4KK2lucHV0LnZhbHVlID0gJyc7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRUaHJv
dygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBOb24tbnVtYmVyIGFy
Z3VtZW50CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXBEb3duKCJmb28iKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK2lucHV0LnN0ZXBVcCgiZm9vIik7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwRG93bihudWxsKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMCInKTsKK2lucHV0LnN0ZXBVcChudWxsKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMCInKTsKK2lucHV0LnN0ZXBEb3duKHVuZGVmaW5lZCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwVXAodW5kZWZpbmVkKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworLy8gRGVmYXVsdCBzdGVwIHZhbHVlIGZvciB0
eXBlPW51bWJlciBpcyAxLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXBVcCgyKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBVcCgtMSk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjIiJyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIxIicpOworaW5wdXQuc3RlcERvd24oMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIi0xIicpOworaW5wdXQuc3RlcERvd24oLTEpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIwIicpOworLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgoraW5wdXQuc3RlcFVwKDEs
IDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcERvd24oMSwg
Myk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyB1c2VkIGZvciBpbnZhbGlkIHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUgPSAnMCc7Citp
bnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVw
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUK
K2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lu
cHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAoraW5wdXQubWlu
ID0gJzAnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3Rl
cERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK3Nob3VsZFRocm93KCdp
bnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVlID0gJzEnOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5Lgor
aW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2
OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52
YWxpZFN0YXRlRXJyKTsKKworLy8gTWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUgPSAnLTEnOwor
aW5wdXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5w
dXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitzaG91bGRUaHJv
dygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFsdWUgPSAnLTEn
Oworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJbmZpbml0eS4K
K2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3
NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZh
bGlkU3RhdGVFcnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2gg
dmFsdWVzCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVw
ID0gJzInOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7
CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5w
dXQudmFsdWUgPSAnOSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0
LnN0ZXAgPSAnMTAnOworaW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIxMDAiJyk7CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIxMCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1
dCByb3VuZGVkIHJlc3VsdCB3b3VsZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0gJzg5JzsKK2lu
cHV0Lm1heCA9ICc5OSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3Rh
dGVFcnIpOworCisvLyBIdWdlIHZhbHVlIGFuZCBzbWFsbCBzdGVwCitpbnB1dC52YWx1ZSA9ICcx
ZSszMDgnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAn
MSc7CitpbnB1dC5zdGVwVXAoOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUr
MzA4IicpOworaW5wdXQuc3RlcERvd24oOTk5OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMWUrMzA4IicpOworCisvLyBGcmFjdGlvbmFsIG51bWJlcnMKK2lucHV0LnZhbHVlID0gJzAn
OworaW5wdXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMz
MzMzMzMzMzMzMzMzMyc7CitpbnB1dC5zdGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7CitpbnB1dC5zdGVwID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQor
ICAgIGlucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitp
bnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxJzsKK2lu
cHV0LnN0ZXAgPSAnMC4wMDM5MjE1Njg2Mjc0NTA5ODAnOworaW5wdXQuc3RlcFVwKDI1NSk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsg
aSsrKQorICAgIGlucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAi
Jyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY4ODc3NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMK
QEAgLTAsMCArMSwxNTUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgp
IGZvciB0eXBlPXJhbmdlLicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbnB1dCcpOworaW5wdXQudHlwZSA9ICdyYW5nZSc7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0g
JyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworLy8gVGhl
IHZhbHVlIGlzIHVucGFyc2FibGUuCitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lu
cHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAoraW5w
dXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwRG93bigiZm9vIik7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworaW5wdXQuc3RlcERvd24obnVsbCk7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIjAiJyk7CitpbnB1dC5zdGVwVXAobnVsbCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjAiJyk7CitpbnB1dC5zdGVwRG93bih1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworaW5wdXQuc3RlcFVwKHVuZGVmaW5lZCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjAiJyk7CisKKy8vIERlZmF1bHQgc3RlcCB2YWx1ZSBmb3IgdHlwZT1yYW5nZSBp
cyAxLgoraW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnLTEwMCc7CitpbnB1dC5zdGVw
VXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXBVcCgyKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBVcCgtMSk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3RlcERvd24oMik7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIi0xIicpOworaW5wdXQuc3RlcERvd24oLTEpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgoraW5wdXQu
c3RlcFVwKDEsIDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworaW5wdXQuc3Rl
cERvd24oMSwgMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisvLyBUaGUgZGVm
YXVsdCB2YWx1ZSBpcyB1c2VkIGZvciBpbnZhbGlkIHN0ZXAgdmFsdWVzLgoraW5wdXQudmFsdWUg
PSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5w
dXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0
ZXAgdmFsdWUKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxk
VGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3co
J2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAor
aW5wdXQubWluID0gJzAnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOwor
aW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK3Nob3Vs
ZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK2lucHV0LnZhbHVl
ID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJy
KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKy8vIFNob3VsZCBub3QgYmUgLUlu
ZmluaXR5LgoraW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAg
PSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3du
KDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWF4aW11bSBsaW1pdAoraW5wdXQudmFsdWUg
PSAnLTEnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnMCc7CitpbnB1dC5zdGVwID0g
JzEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworaW5wdXQudmFs
dWUgPSAnLTEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVy
cik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworLy8gU2hvdWxkIG5vdCBiZSBJ
bmZpbml0eS4KK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVw
ID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAo
MiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVw
TWlzbWF0Y2ggdmFsdWVzCitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7Citp
bnB1dC5zdGVwID0gJzInOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjMiJyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
IicpOworaW5wdXQudmFsdWUgPSAnOSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAn
JzsKK2lucHV0LnN0ZXAgPSAnMTAnOworaW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxMDAiJyk7CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMCInKTsKKy8vIHZhbHVlICsgc3RlcCBpcyA8
PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3VsdCB3b3VsZCBiZSA+IG1heC4KK2lucHV0LnZhbHVlID0g
Jzg5JzsKK2lucHV0Lm1heCA9ICc5OSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciOTAiJyk7CisKKy8vIEh1Z2UgdmFsdWUgYW5kIHNtYWxsIHN0ZXAKK2lucHV0
LnZhbHVlID0gJzFlKzMwOCc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMS4xZSsz
MDgnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCg5OTk5OTkpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxZSszMDgiJyk7CitpbnB1dC5zdGVwRG93big5OTk5OTkpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxZSszMDgiJyk7CisKKy8vIEZyYWN0aW9uYWwgbnVtYmVy
cworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOwor
aW5wdXQuc3RlcCA9ICcwLjMzMzMzMzMzMzMzMzMzMzMzJzsKK2lucHV0LnN0ZXBVcCgzKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lucHV0
LnN0ZXBVcCgxMCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7Citmb3IgKHZhciBp
ID0gMDsgaSA8IDEwOyBpKyspCisgICAgaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjMiJyk7CisKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJzAnOwor
aW5wdXQubWF4ID0gJzEnOworaW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYyNzQ1MDk4MCc7Citp
bnB1dC5zdGVwVXAoMjU1KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMjU1OyBpKyspCisgICAgaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMCInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1z
dGVwLXVuc3VwcG9ydGVkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zYmQxMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcwpAQCAtMCwwICsxLDEyIEBACitk
ZXNjcmlwdGlvbignVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdW5zdXBwb3RlZCB0eXBw
ZXMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lu
cHV0LnR5cGUgPSAndGV4dCc7CitpbnB1dC5zdGVwID0gJzMnOworaW5wdXQudmFsdWUgPSAnMic7
CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDAp
JywgJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMCknLCAnIkVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDkyMzllMzAuLjdiOTdmMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDkt
MTAtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MSW5w
dXRFbGVtZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
Zm9ybXMvaW5wdXQtc3RlcC1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtc3Rl
cC11bnN1cHBvcnRlZC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YWRkRm9yTnVtYmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50Ojpkb3VibGVUb0Zvcm1TdHJpbmcpOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisKIDIw
MDktMTAtMjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4
IGY2ZDg1YjMuLmMwMmYyOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTYyLDcg
KzYyLDkgQEAKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvZHRvYS5o
PgogCit1c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzYyLDYgKzM2NCw3OCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6
OmFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91
YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkg
PT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NFUlQoc3RlcCA+IDAp
OworICAgIGRvdWJsZSBjdXJyZW50ID0gMC4wOworICAgIGlmICghZm9ybVN0cmluZ1RvRG91Ymxl
KHZhbHVlKCksICZjdXJyZW50KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGN1cnJlbnQgKyBz
dGVwICogY291bnQ7CisgICAgaWYgKGlzaW5mKG5ld1ZhbHVlKSkgeworICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChpbnB1dFR5
cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAgICAgZG91YmxlIG1pbmltdW0gPSAwLjA7CisgICAgICAg
IGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluaW11bSkp
IHsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA8IG1pbmltdW0pIHsKKyAgICAgICAgICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbiA9IHJvdW5kKChuZXdWYWx1ZSAt
IG1pbmltdW0pIC8gc3RlcCk7CisgICAgICAgIG5ld1ZhbHVlID0gbWluaW11bSArIG4gKiBzdGVw
OworICAgICAgICBkb3VibGUgbWF4aW11bSA9IDAuMDsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdU
b0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXhpbXVtKSkgeworICAgICAgICAgICAg
aWYgKG5ld1ZhbHVlID4gbWF4aW11bSkgeworICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSBlbHNlIHsgIC8vIGlucHV0VHlwZSgpID09IFJBTkdFCisgICAgICAgIGRvdWJs
ZSBtaW5pbXVtID0gcmFuZ2VNaW5pbXVtKCk7CisgICAgICAgIGRvdWJsZSBtYXhpbXVtID0gcmFu
Z2VNYXhpbXVtKCk7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8IG1pbmltdW0gfHwgbmV3VmFsdWUg
PiBtYXhpbXVtKSB7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGRvdWJsZSBuID0gcm91bmQoKG5ld1Zh
bHVlIC0gbWluaW11bSkgLyBzdGVwKTsKKyAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgbiAq
IHN0ZXA7CisgICAgICAgIGlmIChuZXdWYWx1ZSA+IG1heGltdW0pCisgICAgICAgICAgICBuZXdW
YWx1ZSA9IG1pbmltdW0gKyAobiAtIDEpICogc3RlcDsKKyAgICAgICAgQVNTRVJUKG5ld1ZhbHVl
ID49IG1pbmltdW0pOworICAgICAgICBBU1NFUlQobmV3VmFsdWUgPD0gbWF4aW11bSk7CisgICAg
fQorICAgIHNldFZhbHVlKGZvcm1TdHJpbmdGcm9tRG91YmxlKG5ld1ZhbHVlKSk7Cit9CisKK3Zv
aWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBkb3VibGUgc3RlcCA9IDAuMDsKKyAgICBpZiAoIWFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXAp
KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgLy8gVHlwZXMgb3RoZXIgdGhhbiBOVU1CRVIvUkFOR0Ugc2hvdWxkIGJlIHJlamVj
dGVkIGJ5IGFsbG93ZWRWYWx1ZVN0ZXAoKS4KKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVN
QkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBhZGRGb3JOdW1iZXIoc3RlcCwgbiwg
ZWMpOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKGludCBuLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBkb3VibGUgc3RlcCA9IDAuMDsKKyAgICBpZiAoIWFsbG93ZWRW
YWx1ZVN0ZXAoJnN0ZXApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gVHlwZXMgb3RoZXIgdGhhbiBOVU1CRVIvUkFOR0Ug
c2hvdWxkIGJlIHJlamVjdGVkIGJ5IGFsbG93ZWRWYWx1ZVN0ZXAoKS4KKyAgICBBU1NFUlQoaW5w
dXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBhZGRGb3JO
dW1iZXIoc3RlcCwgLW4sIGVjKTsKK30KKwogc3RhdGljIGlubGluZSBDaGVja2VkUmFkaW9CdXR0
b25zJiBjaGVja2VkUmFkaW9CdXR0b25zKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQgKmVsZW1lbnQp
CiB7CiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGVsZW1lbnQtPmZvcm0oKSkKQEAg
LTE5MTIsNiArMTk4NiwxNCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgp
IGNvbnN0CiAgICAgICAgICAgIGlucHV0VHlwZSgpICE9IEJVVFRPTiAmJiBpbnB1dFR5cGUoKSAh
PSBSRVNFVDsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91
YmxlKGRvdWJsZSBudW0pCit7CisgICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1LCAidGhlIGJlc3Qg
cmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciBuIGFzIGEgZmxvYXRpbmcKKyAgICAvLyBwb2lu
dCBudW1iZXIiIGlzIGEgc3RyaW5nIHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRvU3RyaW5nKCkgdG8g
bi4KKyAgICBWZWN0b3I8VUNoYXI+IHVjaGFycyA9IGVjbWEyNjJkdG9hKG51bSk7CisgICAgcmV0
dXJuIFN0cmluZyh1Y2hhcnMuZGF0YSgpLCB1Y2hhcnMuc2l6ZSgpKTsKK30KKwogYm9vbCBIVE1M
SW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJs
ZSogb3V0KQogewogICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYzRlZDAzYS4uODFkZGFkYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0xMDYsNiArMTA2LDExIEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93ZWRW
YWx1ZVN0ZXAoZG91YmxlKikgY29uc3Q7CiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUuCiAgICAg
Ym9vbCBzdGVwTWlzbWF0Y2goKSBjb25zdDsKKyAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgSFRN
TElucHV0RWxlbWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgdm9pZCBzdGVwVXAo
aW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzdGVwRG93bihpbnQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHN0ZXBVcChFeGNlcHRpb25Db2RlJiBlYykgeyBzdGVwVXAoMSwgZWMp
OyB9CisgICAgdm9pZCBzdGVwRG93bihFeGNlcHRpb25Db2RlJiBlYykgeyBzdGVwRG93bigxLCBl
Yyk7IH0KIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IFNVQk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFJBRElP
OyB9CkBAIC0yNjIsNiArMjY3LDEyIEBAIHByaXZhdGU6CiAKICAgICBQYXNzUmVmUHRyPEhUTUxG
b3JtRWxlbWVudD4gY3JlYXRlVGVtcG9yYXJ5Rm9ybUZvcklzSW5kZXgoKTsKIAorICAgIC8vIEhl
bHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCAqIGNvdW50IHRvIHRoZSBj
dXJyZW50IG51bWJlciB2YWx1ZS4KKyAgICB2b2lkIGFkZEZvck51bWJlcihkb3VibGUgc3RlcCwg
ZG91YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgLy8gQ29udmVydHMgdGhlIHNwZWNp
ZmllZCBudW1iZXIgdG8gYSBzdHJpbmcuICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mCisg
ICAgLy8gSFRNTDUncyAiYWxnb3JpdGhtIHRvIGNvbnZlcnQgYSBudW1iZXIgdG8gYSBzdHJpbmci
IGZvciBOVU1CRVIvUkFOR0UgdHlwZXMuCisgICAgc3RhdGljIFN0cmluZyBmb3JtU3RyaW5nRnJv
bURvdWJsZShkb3VibGUpOworCiAjaWYgRU5BQkxFKERBVEFMSVNUKQogICAgIEhUTUxEYXRhTGlz
dEVsZW1lbnQqIGRhdGFMaXN0KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbAppbmRleCBiNDVkMTkwLi4xMDI0MzRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CkBAIC03MSw2ICs3MSwxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgogCisgICAgICAg
IHZvaWQgICAgICAgICAgICAgICBzdGVwVXAoaW4gW09wdGlvbmFsXSBsb25nIG4pCisgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0
ZXBEb3duKGluIFtPcHRpb25hbF0gbG9uZyBuKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxs
VmFsaWRhdGU7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAg
ICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVu
ZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKLS0gCjEuNi4zLjMK
Cg==
</data>
<flag name="commit-queue"
          id="24552"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43489</attachid>
            <date>2009-11-18 23:31:48 -0800</date>
            <delta_ts>2009-11-19 17:04:04 -0800</delta_ts>
            <desc>Proposed patch (rev.6)</desc>
            <filename>0001-stepupdown-6.patch</filename>
            <type>text/plain</type>
            <size>32491</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzVkNzc1Li4zNWI5MmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTAt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgSFRNTElucHV0RWxl
bWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
c3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qczog
QWRkZWQuCisKIDIwMDktMTEtMTggIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBn
bWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZWUyMDcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDg5IEBACitUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPW51
bWJlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3RzIGZvciBhbiBpbnZh
bGlkIGN1cnJlbnQgdmFsdWU6CitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQu
c3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMS4KK3N0ZXBEb3duKCJmb28iKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZh
bHVlIGlzICIwIgorc3RlcFVwKCJmb28iKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVl
IGlzICIwIgorc3RlcERvd24obnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMCIKK3N0ZXBVcChudWxsKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIw
Igorc3RlcERvd24odW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlz
ICIwIgorc3RlcFVwKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwVXAoMikgd2l0aCB2YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK3N0ZXBVcCgt
MSkgd2l0aCB2YWx1ZT0zOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIKK3N0ZXBEb3duKC0xKSB3
aXRoIHZhbHVlPTI6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcERvd24oMikgd2l0aCB2
YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitzdGVwRG93bigtMSkgd2l0aCB2YWx1
ZT0tMToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAoMSwgMikgd2l0aCB2YWx1ZT0w
OgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCgxLCAzKSB3aXRoIHZhbHVlPTE6CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0ZXA9Zm9vOgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MSBzdGVwPTA6CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0yIHN0ZXA9LTE6CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIzIgorc3RlcERvd24oKSBhbmQgc3RlcFVwKCkgd2l0aCB2YWx1
ZT0wIHN0ZXA9YW55OgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBV
cCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitzdGVwRG93bigpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6CitQQVNTIGlucHV0
LnZhbHVlIGlzICIwIgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTAgbWluPTAgc3RlcD0xOgorUEFT
UyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwRG93bigyKSB3aXRoIHZhbHVlPTEgbWluPTAgc3Rl
cD0xOgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIK
K3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBzdGVwPURCTF9NQVg6CitQQVNTIGlucHV0LnN0ZXBE
b3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEuCitzdGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjAiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWF4PTAgc3RlcD0xOgorUEFT
UyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExLgorc3RlcFVwKDIpIHdpdGggdmFsdWU9LTEgbWF4PTAgc3RlcD0x
OgorUEFTUyBpbnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorc3Rl
cFVwKDIpIHdpdGggdmFsdWU9MSBzdGVwPURCTF9NQVg6CitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
Lgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMSBzdGVwPTI6CitQQVNTIGlucHV0LnZhbHVl
IGlzICIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCg5KSB3aXRoIHZhbHVlPTkg
bWluPTAgc3RlcD0xMDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwMCIKK3N0ZXBEb3duKCkgd2l0
aCB2YWx1ZT0xOSBtaW49MCBzdGVwPTEwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAiCitzdGVw
VXAoKSB3aXRoIHZhbHVlPTg5IG1pbj0wIG1heD05OSBzdGVwPTEwOgorUEFTUyBpbnB1dC5zdGVw
VXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExLgorc3RlcFVwKDk5OTk5OSkgd2l0aCB2YWx1ZT0xZSszMDggc3RlcD0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4Igorc3Rl
cFVwKDMpIHdpdGggdmFsdWU9MCBzdGVwPTAuMzMzMzMzMzMzMzMzMzMzMzM6CitQQVNTIGlucHV0
LnZhbHVlIGlzICIxIgorc3RlcFVwKDEwKSB3aXRoIHZhbHVlPTEgc3RlcD0wLjE6CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIyIgorc3RlcFVwKCkgeDEwIHdpdGggdmFsdWU9MiBzdGVwPTAuMToKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjMiCitzdGVwVXAoMjU1KSB3aXRoIHZhbHVlPTAgbWluPTAgbWF4
PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwRG93bigpIHgyNTUgd2l0aCB2YWx1ZT0xIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2
Mjc0NTA5ODA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtc3RlcC1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lYjgwY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0LXN0
ZXAtbnVtYmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJmZjk0YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4OSBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1y
YW5nZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3RzIGZvciBhbiBpbnZh
bGlkIGN1cnJlbnQgdmFsdWU6CitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQu
c3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMS4KK3N0ZXBEb3duKCJmb28iKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZh
bHVlIGlzICIwIgorc3RlcFVwKCJmb28iKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVl
IGlzICIwIgorc3RlcERvd24obnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMCIKK3N0ZXBVcChudWxsKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIw
Igorc3RlcERvd24odW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlz
ICIwIgorc3RlcFVwKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEwMDoKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjEiCitzdGVwVXAoMikgd2l0aCB2YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIK
K3N0ZXBVcCgtMSkgd2l0aCB2YWx1ZT0zOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMiIKK3N0ZXBE
b3duKC0xKSB3aXRoIHZhbHVlPTI6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcERvd24o
Mikgd2l0aCB2YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitzdGVwRG93bigtMSkg
d2l0aCB2YWx1ZT0tMToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAoMSwgMikgd2l0
aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCgxLCAzKSB3aXRoIHZh
bHVlPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0
ZXA9Zm9vOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MSBz
dGVwPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0yIHN0
ZXA9LTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorc3RlcERvd24oKSBhbmQgc3RlcFVwKCkg
d2l0aCB2YWx1ZT0wIHN0ZXA9YW55OgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEuCitzdGVwRG93bigpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTAgbWluPTAgc3Rl
cD0xOgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwRG93bigyKSB3aXRoIHZhbHVlPTEg
bWluPTAgc3RlcD0xOgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMSIKK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBzdGVwPURCTF9NQVg6CitQQVNTIGlu
cHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitzdGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1pbj0tMTAwIG1heD0w
IHN0ZXA9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTAg
bWluPS0xMDAgbWF4PTAgc3RlcD0xOgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3RlcFVwKDIp
IHdpdGggdmFsdWU9LTEgbWluPS0xMDAgbWF4PTAgc3RlcD0xOgorUEFTUyBpbnB1dC5zdGVwVXAo
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorc3RlcFVwKDIpIHdpdGggdmFsdWU9MSBz
dGVwPURCTF9NQVg6CitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3RlcFVwKCkgd2l0aCB2YWx1
ZT0wIG1pbj0tMSBzdGVwPTI6CitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMSIKK3N0ZXBVcCg5KSB3aXRoIHZhbHVlPTkgbWluPTAgc3RlcD0xMDoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEwMCIKK3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xOSBtaW49MCBzdGVw
PTEwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTg5IG1p
bj0wIG1heD05OSBzdGVwPTEwOgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3RlcFVwKDk5OTk5
OSkgd2l0aCB2YWx1ZT0xZSszMDggbWluPTAgbWF4PTEuMWUrMzA4IHN0ZXA9MToKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjFlKzMwOCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK3N0ZXBV
cCgzKSB3aXRoIHZhbHVlPTAgc3RlcD0wLjMzMzMzMzMzMzMzMzMzMzMzOgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMSIKK3N0ZXBVcCgxMCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MC4xOgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMiIKK3N0ZXBVcCgpIHgxMCB3aXRoIHZhbHVlPTIgc3RlcD0wLjE6CitQQVNT
IGlucHV0LnZhbHVlIGlzICIzIgorc3RlcFVwKDI1NSkgd2l0aCB2YWx1ZT0wIG1pbj0wIG1heD0x
IHN0ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5ODA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3Rl
cERvd24oKSB4MjU1IHdpdGggdmFsdWU9MSBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIxNTY4NjI3
NDUwOTgwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtc3RlcC1yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3
NmIzNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0
ZXAtcmFuZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJh
bmdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5MWE1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAo
KSBmb3IgdW5zdXBwb3RlZCB0eXBwZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwRG93bigwKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFT
UyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoMCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2M2NhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44MGI0ODlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMKQEAgLTAsMCArMSwy
MTIgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPW51
bWJlci4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsK
K2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK3ZhciBpbnZhbGlkU3RhdGVFcnIgPSAnIkVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInOworCitkZWJ1ZygnVGVzdHMgZm9y
IGFuIGludmFsaWQgY3VycmVudCB2YWx1ZTonKTsKK2lucHV0LnZhbHVlID0gJyc7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRUaHJvdygn
aW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBOb24tbnVtYmVyIGFyZ3Vt
ZW50CitkZWJ1Zygnc3RlcERvd24oImZvbyIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnZhbHVl
ID0gJzAnOworaW5wdXQuc3RlcERvd24oImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIwIicpOworCitkZWJ1Zygnc3RlcFVwKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5z
dGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygn
c3RlcERvd24obnVsbCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcERvd24obnVsbCk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwVXAobnVsbCkgd2l0
aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKG51bGwpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIwIicpOworCitkZWJ1Zygnc3RlcERvd24odW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6Jyk7
CitpbnB1dC5zdGVwRG93bih1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIw
IicpOworCitkZWJ1Zygnc3RlcFVwKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQu
c3RlcFVwKHVuZGVmaW5lZCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKKy8v
IERlZmF1bHQgc3RlcCB2YWx1ZSBmb3IgdHlwZT1udW1iZXIgaXMgMS4KK2RlYnVnKCdzdGVwVXAo
KSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXBVcCgpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKDIpIHdpdGgg
dmFsdWU9MTonKTsKK2lucHV0LnN0ZXBVcCgyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MyInKTsKKworZGVidWcoJ3N0ZXBVcCgtMSkgd2l0aCB2YWx1ZT0zOicpOworaW5wdXQuc3RlcFVw
KC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKKworZGVidWcoJ3N0ZXBEb3du
KC0xKSB3aXRoIHZhbHVlPTI6Jyk7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xOicpOwor
aW5wdXQuc3RlcERvd24oMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworCitk
ZWJ1Zygnc3RlcERvd24oLTEpIHdpdGggdmFsdWU9LTE6Jyk7CitpbnB1dC5zdGVwRG93bigtMSk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKKy8vIEV4dHJhIGFyZ3VtZW50cyBh
cmUgaWdub3JlZC4KK2RlYnVnKCdzdGVwVXAoMSwgMikgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQu
c3RlcFVwKDEsIDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygn
c3RlcFVwKDEsIDMpIHdpdGggdmFsdWU9MTonKTsKK2lucHV0LnN0ZXBEb3duKDEsIDMpOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1
c2VkIGZvciBpbnZhbGlkIHN0ZXAgdmFsdWVzLgorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9
MCBzdGVwPWZvbzonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdmb28nOwor
aW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVn
KCdzdGVwVXAoKSB3aXRoIHZhbHVlPTEgc3RlcD0wOicpOworaW5wdXQuc3RlcCA9ICcwJzsKK2lu
cHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworCitkZWJ1Zygn
c3RlcFVwKCkgd2l0aCB2YWx1ZT0yIHN0ZXA9LTE6Jyk7CitpbnB1dC5zdGVwID0gJy0xJzsKK2lu
cHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCisvLyBObyBz
dGVwIHZhbHVlCitkZWJ1Zygnc3RlcERvd24oKSBhbmQgc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0
ZXA9YW55OicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2FueSc7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRUaHJv
dygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNaW5pbXVtIGxpbWl0
CitkZWJ1Zygnc3RlcERvd24oKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOicpOworaW5wdXQu
bWluID0gJzAnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQu
c3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKK2RlYnVnKCdzdGVw
RG93bigpIHdpdGggdmFsdWU9MCBtaW49MCBzdGVwPTE6Jyk7CitzaG91bGRUaHJvdygnaW5wdXQu
c3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CisKK2RlYnVnKCdzdGVwRG93bigyKSB3aXRo
IHZhbHVlPTEgbWluPTAgc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAnMSc7CitzaG91bGRUaHJv
dygnaW5wdXQuc3RlcERvd24oMiknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxIicpOworCisvLyBTaG91bGQgbm90IGJlIC1JbmZpbml0eS4KK2RlYnVnKCdz
dGVwRG93bigyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOicpOworaW5wdXQudmFsdWUgPSAn
MSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSsz
MDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsK
KworLy8gTWF4aW11bSBsaW1pdAorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9LTEgbWF4PTAg
c3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5t
YXggPSAnMCc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgn
aW5wdXQudmFsdWUnLCAnIjAiJyk7CitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1heD0w
IHN0ZXA9MTonKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVy
cik7CisKK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0tMSBtYXg9MCBzdGVwPTE6Jyk7Citp
bnB1dC52YWx1ZSA9ICctMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKDIpJywgaW52YWxp
ZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisKKy8vIFNob3Vs
ZCBub3QgYmUgSW5maW5pdHkuCitkZWJ1Zygnc3RlcFVwKDIpIHdpdGggdmFsdWU9MSBzdGVwPURC
TF9NQVg6Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3Rl
cCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVw
KDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gc3RlcERvd24oKS9zdGVwVXAoKSBmb3Igc3Rl
cE1pc21hdGNoIHZhbHVlcworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEgc3Rl
cD0yOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnLTEnOworaW5wdXQuc3Rl
cCA9ICcyJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicp
OworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKwor
ZGVidWcoJ3N0ZXBVcCg5KSB3aXRoIHZhbHVlPTkgbWluPTAgc3RlcD0xMDonKTsKK2lucHV0LnZh
bHVlID0gJzknOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVw
ID0gJzEwJzsKK2lucHV0LnN0ZXBVcCg5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTAw
IicpOworCitkZWJ1Zygnc3RlcERvd24oKSB3aXRoIHZhbHVlPTE5IG1pbj0wIHN0ZXA9MTA6Jyk7
CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxMCInKTsKKworLy8gdmFsdWUgKyBzdGVwIGlzIDw9IG1heCwgYnV0IHJvdW5k
ZWQgcmVzdWx0IHdvdWxkIGJlID4gbWF4LgorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9ODkg
bWluPTAgbWF4PTk5IHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9ICc4OSc7CitpbnB1dC5tYXgg
PSAnOTknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsK
KworLy8gSHVnZSB2YWx1ZSBhbmQgc21hbGwgc3RlcAorZGVidWcoJ3N0ZXBVcCg5OTk5OTkpIHdp
dGggdmFsdWU9MWUrMzA4IHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0gJzFlKzMwOCc7CitpbnB1
dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0
ZXBVcCg5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxZSszMDgiJyk7CitpbnB1
dC5zdGVwRG93big5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxZSszMDgiJyk7
CisKKy8vIEZyYWN0aW9uYWwgbnVtYmVycworZGVidWcoJ3N0ZXBVcCgzKSB3aXRoIHZhbHVlPTAg
c3RlcD0wLjMzMzMzMzMzMzMzMzMzMzMzOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5t
aW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcwLjMzMzMzMzMzMzMzMzMz
MzMzJzsKK2lucHV0LnN0ZXBVcCgzKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsK
KworZGVidWcoJ3N0ZXBVcCgxMCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MC4xOicpOworaW5wdXQuc3Rl
cCA9ICcwLjEnOworaW5wdXQuc3RlcFVwKDEwKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MiInKTsKK2RlYnVnKCdzdGVwVXAoKSB4MTAgd2l0aCB2YWx1ZT0yIHN0ZXA9MC4xOicpOworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIGlucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIzIicpOworCitkZWJ1Zygnc3RlcFVwKDI1NSkgd2l0aCB2YWx1ZT0w
IG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5ODA6Jyk7CitpbnB1dC52YWx1ZSA9
ICcwJzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxJzsKK2lucHV0LnN0ZXAgPSAn
MC4wMDM5MjE1Njg2Mjc0NTA5ODAnOworaW5wdXQuc3RlcFVwKDI1NSk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjEiJyk7CitkZWJ1Zygnc3RlcERvd24oKSB4MjU1IHdpdGggdmFsdWU9MSBt
aW49MCBtYXg9MSBzdGVwPTAuMDAzOTIxNTY4NjI3NDUwOTgwOicpOworZm9yICh2YXIgaSA9IDA7
IGkgPCAyNTU7IGkrKykKKyAgICBpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2Uu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NzQ1YzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVw
LXJhbmdlLmpzCkBAIC0wLDAgKzEsMjEzIEBACitkZXNjcmlwdGlvbignVGVzdHMgc3RlcERvd24o
KS9zdGVwVXAoKSBmb3IgdHlwZT1yYW5nZS4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAncmFuZ2UnOwordmFyIGludmFsaWRT
dGF0ZUVyciA9ICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIic7
CisKK2RlYnVnKCdUZXN0cyBmb3IgYW4gaW52YWxpZCBjdXJyZW50IHZhbHVlOicpOworaW5wdXQu
dmFsdWUgPSAnJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRl
RXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisK
Ky8vIE5vbi1udW1iZXIgYXJndW1lbnQKK2RlYnVnKCdzdGVwRG93bigiZm9vIikgd2l0aCB2YWx1
ZT0wOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwRG93bigiZm9vIik7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwVXAoImZvbyIpIHdpdGgg
dmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCgiZm9vIik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwRG93bihudWxsKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1
dC5zdGVwRG93bihudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVi
dWcoJ3N0ZXBVcChudWxsKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAobnVsbCk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwRG93bih1bmRlZmlu
ZWQpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBEb3duKHVuZGVmaW5lZCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwVXAodW5kZWZpbmVkKSB3aXRo
IHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAodW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMCInKTsKKworLy8gRGVmYXVsdCBzdGVwIHZhbHVlIGZvciB0eXBlPXJhbmdlIGlz
IDEuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMTAwOicpOworaW5wdXQudmFs
dWUgPSAnMCc7CitpbnB1dC5taW4gPSAnLTEwMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTE6
Jyk7CitpbnB1dC5zdGVwVXAoMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisK
K2RlYnVnKCdzdGVwVXAoLTEpIHdpdGggdmFsdWU9MzonKTsKK2lucHV0LnN0ZXBVcCgtMSk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwRG93bigtMSkgd2l0
aCB2YWx1ZT0yOicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMSInKTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MTonKTsKK2lucHV0LnN0
ZXBEb3duKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworZGVidWcoJ3N0
ZXBEb3duKC0xKSB3aXRoIHZhbHVlPS0xOicpOworaW5wdXQuc3RlcERvd24oLTEpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBFeHRyYSBhcmd1bWVudHMgYXJlIGlnbm9y
ZWQuCitkZWJ1Zygnc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCgx
LCAyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgx
LCAzKSB3aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93bigxLCAzKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMCInKTsKKworLy8gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdXNlZCBmb3Ig
aW52YWxpZCBzdGVwIHZhbHVlcy4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1m
b286Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnZm9vJzsKK2lucHV0LnN0
ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVw
KCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MDonKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVw
VXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKKworZGVidWcoJ3N0ZXBVcCgp
IHdpdGggdmFsdWU9MiBzdGVwPS0xOicpOworaW5wdXQuc3RlcCA9ICctMSc7CitpbnB1dC5zdGVw
VXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworLy8gTm8gc3RlcCB2YWx1
ZQorZGVidWcoJ3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWFueTon
KTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3co
J2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAorZGVidWco
J3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MTonKTsKK2lucHV0Lm1pbiA9ICcw
JzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0LnN0ZXBEb3du
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitkZWJ1Zygnc3RlcERvd24oKSB3
aXRoIHZhbHVlPTAgbWluPTAgc3RlcD0xOicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3du
KCknLCBpbnZhbGlkU3RhdGVFcnIpOworCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0x
IG1pbj0wIHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMSInKTsKKworLy8gSW1wbGljaXQgbWluaW11bS4KK2RlYnVnKCdzdGVwRG93bigyKSB3aXRo
IHZhbHVlPTEgc3RlcD1EQkxfTUFYOicpOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5taW4g
PSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhy
b3coJ2lucHV0LnN0ZXBEb3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWF4aW11bSBs
aW1pdAorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9LTEgbWluPS0xMDAgbWF4PTAgc3RlcD0x
OicpOworaW5wdXQudmFsdWUgPSAnLTEnOworaW5wdXQubWluID0gJy0xMDAnOworaW5wdXQubWF4
ID0gJzAnOworaW5wdXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lu
cHV0LnZhbHVlJywgJyIwIicpOworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEw
MCBtYXg9MCBzdGVwPTE6Jyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlk
U3RhdGVFcnIpOworCitkZWJ1Zygnc3RlcFVwKDIpIHdpdGggdmFsdWU9LTEgbWluPS0xMDAgbWF4
PTAgc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAnLTEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0x
IicpOworCisvLyBJbXBsaWNpdCBtYXhpbXVtCitkZWJ1Zygnc3RlcFVwKDIpIHdpdGggdmFsdWU9
MSBzdGVwPURCTF9NQVg6Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1heCA9ICcnOwor
aW5wdXQuc3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5w
dXQuc3RlcFVwKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gc3RlcERvd24oKS9zdGVwVXAo
KSBmb3Igc3RlcE1pc21hdGNoIHZhbHVlcworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBt
aW49LTEgc3RlcD0yOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnLTEnOwor
aW5wdXQuc3RlcCA9ICcyJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIzIicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MSInKTsKKworZGVidWcoJ3N0ZXBVcCg5KSB3aXRoIHZhbHVlPTkgbWluPTAgc3RlcD0xMDonKTsK
K2lucHV0LnZhbHVlID0gJzknOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4ID0gJyc7Citp
bnB1dC5zdGVwID0gJzEwJzsKK2lucHV0LnN0ZXBVcCg5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMTAwIicpOworCitkZWJ1Zygnc3RlcERvd24oKSB3aXRoIHZhbHVlPTE5IG1pbj0wIHN0
ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9ICcxOSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIxMCInKTsKKworLy8gdmFsdWUgKyBzdGVwIGlzIDw9IG1heCwg
YnV0IHJvdW5kZWQgcmVzdWx0IHdvdWxkIGJlID4gbWF4LgorZGVidWcoJ3N0ZXBVcCgpIHdpdGgg
dmFsdWU9ODkgbWluPTAgbWF4PTk5IHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9ICc4OSc7Citp
bnB1dC5tYXggPSAnOTknOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0
YXRlRXJyKTsKKworLy8gSHVnZSB2YWx1ZSBhbmQgc21hbGwgc3RlcAorZGVidWcoJ3N0ZXBVcCg5
OTk5OTkpIHdpdGggdmFsdWU9MWUrMzA4IG1pbj0wIG1heD0xLjFlKzMwOCBzdGVwPTE6Jyk7Citp
bnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4ID0gJzEu
MWUrMzA4JzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoOTk5OTk5KTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQuc3RlcERvd24oOTk5OTk5KTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworCisvLyBGcmFjdGlvbmFsIG51
bWJlcnMKK2RlYnVnKCdzdGVwVXAoMykgd2l0aCB2YWx1ZT0wIHN0ZXA9MC4zMzMzMzMzMzMzMzMz
MzMzMzonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5tYXgg
PSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7CitpbnB1dC5zdGVwVXAo
Myk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMTAp
IHdpdGggdmFsdWU9MSBzdGVwPTAuMTonKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lucHV0LnN0
ZXBVcCgxMCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CitkZWJ1Zygnc3RlcFVw
KCkgeDEwIHdpdGggdmFsdWU9MiBzdGVwPTAuMTonKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTA7
IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyIn
KTsKKworZGVidWcoJ3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBzdGVwPTAu
MDAzOTIxNTY4NjI3NDUwOTgwOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAn
MCc7CitpbnB1dC5tYXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3NDUwOTgw
JzsKK2lucHV0LnN0ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOwor
ZGVidWcoJ3N0ZXBEb3duKCkgeDI1NSB3aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3RlcD0wLjAw
MzkyMTU2ODYyNzQ1MDk4MDonKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMjU1OyBpKyspCisgICAg
aW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmQxMTg4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBv
cnRlZC5qcwpAQCAtMCwwICsxLDEyIEBACitkZXNjcmlwdGlvbignVGVzdHMgc3RlcERvd24oKS9z
dGVwVXAoKSBmb3IgdW5zdXBwb3RlZCB0eXBwZXMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnR5cGUgPSAndGV4dCc7CitpbnB1dC5zdGVw
ID0gJzMnOworaW5wdXQudmFsdWUgPSAnMic7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24o
KScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIicpOworc2hv
dWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKDApJywgJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCAnIkVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKK3Nob3VsZFRocm93
KCdpbnB1dC5zdGVwVXAoMCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMSInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg4MTE1M2MuLjUy
YWQzZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMTAtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoKSBhbmQgc3RlcERv
d24oKSBmb3IKKyAgICAgICAgdHlwZT1udW1iZXIgYW5kIHR5cGU9cmFuZ2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorICAgICAgICAKKyAg
ICAgICAgT3VyIGltcGxlbWVudGF0aW9uIG9mIHN0ZXBVcCgpIGFuZCBzdGVwRG93bigpIHJvdW5k
cyB0aGUgcmVzdWx0YW50CisgICAgICAgIHZhbHVlIHRvIGNvbmZvcm0gdG8gdGhlIHN0ZXAgdmFs
dWUuCisgICAgICAgIENoYW5nZSB0aGUgbnVtYmVyLXN0cmluZyBjb252ZXJzaW9uIG1ldGhvZCBm
b3IgUmVuZGVyU2xpZGVyIHRvIGJlCisgICAgICAgIGNvbnNpc3RlbnQgd2l0aCB0eXBlPW51bWJl
ci4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50OjphZGRGb3JOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c3RlcFVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3du
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91
YmxlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzdGVwRG93bik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bDogQWRkIHN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjp1cGRhdGVGcm9t
RWxlbWVudCk6IFVzZSBmb3JtU3RyaW5nRnJvbURvdWJsZSgpLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKTogVXNlIGZvcm1TdHJpbmdGcm9tRG91
YmxlKCkuCisKIDIwMDktMTEtMTggIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBn
bWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggZTE2M2JmNS4uMGU1ZjExNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDA4
LDYgKzQwOSw3NyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93ZWRWYWx1ZVN0ZXAo
ZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmFkZEZvck51bWJlcihkb3VibGUgc3RlcCwgZG91YmxlIGNvdW50LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0
VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NFUlQoc3RlcCA+IDApOworICAgIGRvdWJsZSBjdXJy
ZW50ID0gMC4wOworICAgIGlmICghZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZjdXJyZW50
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGN1cnJlbnQgKyBzdGVwICogY291bnQ7CisgICAg
aWYgKGlzaW5mKG5ld1ZhbHVlKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsK
KyAgICAgICAgZG91YmxlIG1pbmltdW0gPSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9E
b3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluaW11bSkpIHsKKyAgICAgICAgICAgIGlm
IChuZXdWYWx1ZSA8IG1pbmltdW0pIHsKKyAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBkb3VibGUgbiA9IHJvdW5kKChuZXdWYWx1ZSAtIG1pbmltdW0pIC8gc3RlcCk7
CisgICAgICAgIG5ld1ZhbHVlID0gbWluaW11bSArIG4gKiBzdGVwOworICAgICAgICBkb3VibGUg
bWF4aW11bSA9IDAuMDsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1
dGUobWF4QXR0ciksICZtYXhpbXVtKSkgeworICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID4gbWF4
aW11bSkgeworICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsg
IC8vIGlucHV0VHlwZSgpID09IFJBTkdFCisgICAgICAgIGRvdWJsZSBtaW5pbXVtID0gcmFuZ2VN
aW5pbXVtKCk7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8IG1pbmltdW0pIHsKKyAgICAgICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgbmV3VmFsdWUgPSBtaW5pbXVtICsgcm91bmQoKG5ld1ZhbHVlIC0gbWluaW11bSkg
LyBzdGVwKSAqIHN0ZXA7CisgICAgICAgIGRvdWJsZSBtYXhpbXVtID0gcmFuZ2VNYXhpbXVtKCk7
CisgICAgICAgIGlmIChuZXdWYWx1ZSA+IG1heGltdW0pIHsKKyAgICAgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cisg
ICAgc2V0VmFsdWUoZm9ybVN0cmluZ0Zyb21Eb3VibGUobmV3VmFsdWUpKTsKK30KKwordm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGRvdWJsZSBzdGVwID0gMC4wOworICAgIGlmICghZ2V0QWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAvLyBUeXBlcyBvdGhlciB0aGFuIE5VTUJFUi9SQU5HRSBzaG91bGQgYmUgcmVqZWN0
ZWQgYnkgYWxsb3dlZFZhbHVlU3RlcCgpLgorICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1C
RVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIGFkZEZvck51bWJlcihzdGVwLCBuLCBl
Yyk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcERvd24oaW50IG4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGRvdWJsZSBzdGVwID0gMC4wOworICAgIGlmICghZ2V0QWxsb3dl
ZFZhbHVlU3RlcCgmc3RlcCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUeXBlcyBvdGhlciB0aGFuIE5VTUJFUi9SQU5H
RSBzaG91bGQgYmUgcmVqZWN0ZWQgYnkgYWxsb3dlZFZhbHVlU3RlcCgpLgorICAgIEFTU0VSVChp
bnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIGFkZEZv
ck51bWJlcihzdGVwLCAtbiwgZWMpOworfQorCiBzdGF0aWMgaW5saW5lIENoZWNrZWRSYWRpb0J1
dHRvbnMmIGNoZWNrZWRSYWRpb0J1dHRvbnMoY29uc3QgSFRNTElucHV0RWxlbWVudCAqZWxlbWVu
dCkKIHsKICAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gZWxlbWVudC0+Zm9ybSgpKQpA
QCAtMTk4Niw2ICsyMDU4LDE2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6d2lsbFZhbGlkYXRl
KCkgY29uc3QKICAgICAgICAgICAgaW5wdXRUeXBlKCkgIT0gQlVUVE9OICYmIGlucHV0VHlwZSgp
ICE9IFJFU0VUOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ0Zyb21E
b3VibGUoZG91YmxlIG51bSkKK3sKKyAgICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUsICJ0aGUgYmVz
dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyIG4gYXMgYSBmbG9hdGluZworICAgIC8vIHBv
aW50IG51bWJlciIgaXMgYSBzdHJpbmcgcHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9TdHJpbmcoKSB0
byBuLgorICAgIER0b2FCdWZmZXIgYnVmZmVyOworICAgIHVuc2lnbmVkIGxlbmd0aDsKKyAgICBk
b3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChudW0sIGJ1ZmZlciwgJmxlbmd0aCk7Cisg
ICAgcmV0dXJuIFN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6Zm9ybVN0cmluZ1RvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUqIG91dCkK
IHsKICAgICAvLyBTZWUgSFRNTDUgMi40LjQuMyBgUmVhbCBudW1iZXJzLicKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCmluZGV4IDg4YTg1OTYuLjhiMWE2MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMTE2LDYgKzExNiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZXRBbGxvd2VkVmFsdWVT
dGVwKGRvdWJsZSopIGNvbnN0OwogICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlLgogICAgIGJvb2wg
c3RlcE1pc21hdGNoKCkgY29uc3Q7CisgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIEhUTUxJbnB1
dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgIHZvaWQgc3RlcFVwKGludCwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc3RlcERvd24oaW50LCBFeGNlcHRpb25Db2RlJik7
CisgICAgdm9pZCBzdGVwVXAoRXhjZXB0aW9uQ29kZSYgZWMpIHsgc3RlcFVwKDEsIGVjKTsgfQor
ICAgIHZvaWQgc3RlcERvd24oRXhjZXB0aW9uQ29kZSYgZWMpIHsgc3RlcERvd24oMSwgZWMpOyB9
CiAKICAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTVUJN
SVQgfHwgbV90eXBlID09IFJFU0VUIHx8IG1fdHlwZSA9PSBCVVRUT047IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBSQURJTzsgfQpA
QCAtMjQ4LDYgKzI1Myw5IEBAIHB1YmxpYzoKICAgICAvLyBJZiB0aGUgY29udmVyc2lvbiBmYWls
cywgdGhlIHJldHVybiB2YWx1ZSBpcyBmYWxzZS4gVGFrZSBjYXJlIHRoYXQgbGVhZGluZyBvciB0
cmFpbGluZyB1bm5lY2Vzc2FyeSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVy
bnMgZmFsc2UgZm9yIGFuIGVtcHR5IHN0cmluZyBpbnB1dC4KICAgICAvLyBUaGUgZG91YmxlKiBw
YXJhbWV0ZXIgbWF5IGJlIDAuCiAgICAgc3RhdGljIGJvb2wgZm9ybVN0cmluZ1RvRG91YmxlKGNv
bnN0IFN0cmluZyYsIGRvdWJsZSopOworICAgIC8vIENvbnZlcnRzIHRoZSBzcGVjaWZpZWQgbnVt
YmVyIHRvIGEgc3RyaW5nLiAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgIC8vIEhU
TUw1J3MgImFsZ29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIiBmb3IgTlVN
QkVSL1JBTkdFIHR5cGVzLgorICAgIHN0YXRpYyBTdHJpbmcgZm9ybVN0cmluZ0Zyb21Eb3VibGUo
ZG91YmxlKTsKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhlIElucHV0
VHlwZSwgYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLgogICAg
IC8vIEFuIGluc3RhbmNlIHBvaW50ZWQgYnkgdGhlIElTT0RhdGVUaW1lKiBwYXJhbWV0ZXIgd2ls
bCBoYXZlIHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBpZiB0aGUg
cGFyc2luZyBmYWlscy4gIFRoZSBJU09EYXRlVGltZSogcGFyYW1ldGVyIG1heSBiZSAwLgpAQCAt
Mjc3LDYgKzI4NSw5IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IGNyZWF0ZVRlbXBvcmFyeUZvcm1Gb3JJc0luZGV4KCk7CiAgICAgLy8gSGVscGVyIGZvciBnZXRB
bGxvd2VkVmFsdWVTdGVwKCk7CiAgICAgYm9vbCBnZXRTdGVwUGFyYW1ldGVycyhkb3VibGUqIGRl
ZmF1bHRTdGVwLCBkb3VibGUqIHN0ZXBTY2FsZUZhY3RvcikgY29uc3Q7CisgICAgLy8gSGVscGVy
IGZvciBzdGVwVXAoKS9zdGVwRG93bigpLiAgQWRkcyBzdGVwICogY291bnQgdG8gdGhlIGN1cnJl
bnQgbnVtYmVyIHZhbHVlLgorICAgIHZvaWQgYWRkRm9yTnVtYmVyKGRvdWJsZSBzdGVwLCBkb3Vi
bGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmKTsKKwogI2lmIEVOQUJMRShEQVRBTElTVCkKICAgICBI
VE1MRGF0YUxpc3RFbGVtZW50KiBkYXRhTGlzdCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKaW5kZXggYzlkMDhlMy4uZTYzNTAwOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbApAQCAtNzEsNiArNzEsMTEgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgSFRNTE9wdGlvbkVsZW1lbnQgc2VsZWN0ZWRPcHRpb247CiAjZW5kaWYK
IAorICAgICAgICB2b2lkICAgICAgICAgICAgICAgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9uZyBu
KQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAg
ICAgICAgICBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxvbmcgbikKKyAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgd2lsbFZhbGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hl
Y2tWYWxpZGl0eSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggZTE4YjQzMy4u
YTg4OGZhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0zNzksNyArMzc5LDcg
QEAgdm9pZCBSZW5kZXJTbGlkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBib29sIGNsYW1w
ZWQ7CiAgICAgZG91YmxlIHZhbHVlID0gcmFuZ2UudmFsdWVGcm9tRWxlbWVudChlbGVtZW50LCAm
Y2xhbXBlZCk7CiAgICAgaWYgKGNsYW1wZWQpCi0gICAgICAgIGVsZW1lbnQtPnNldFZhbHVlRnJv
bVJlbmRlcmVyKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgICAgIGVsZW1lbnQtPnNldFZh
bHVlRnJvbVJlbmRlcmVyKEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91YmxlKHZh
bHVlKSk7CiAKICAgICAvLyBMYXlvdXQgd2lsbCB0YWtlIGNhcmUgb2YgdGhlIHRodW1iJ3Mgc2l6
ZSBhbmQgcG9zaXRpb24uCiAgICAgaWYgKCFtX3RodW1iKSB7CkBAIC00MzUsNyArNDM1LDcgQEAg
dm9pZCBSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24oaW50IHBvc2l0aW9uKQogICAg
IGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCiAgICAgICAgIGZyYWN0
aW9uID0gMSAtIGZyYWN0aW9uOwogICAgIGRvdWJsZSB2YWx1ZSA9IHJhbmdlLmNsYW1wVmFsdWUo
cmFuZ2UudmFsdWVGcm9tUHJvcG9ydGlvbihmcmFjdGlvbikpOwotICAgIGVsZW1lbnQtPnNldFZh
bHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgZWxlbWVudC0+c2V0
VmFsdWVGcm9tUmVuZGVyZXIoSFRNTElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ0Zyb21Eb3VibGUo
dmFsdWUpKTsKIAogICAgIC8vIEFsc28gdXBkYXRlIHRoZSBwb3NpdGlvbiBpZiBhcHByb3ByaWF0
ZS4KICAgICBpZiAocG9zaXRpb24gIT0gY3VycmVudFBvc2l0aW9uKCkpIHsKLS0gCjEuNi4zLjMK
Cg==
</data>
<flag name="review"
          id="25206"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43535</attachid>
            <date>2009-11-19 17:04:04 -0800</date>
            <delta_ts>2009-11-19 17:08:39 -0800</delta_ts>
            <desc>Proposed patch (rev.7)</desc>
            <filename>0001-stepupdown-7.patch</filename>
            <type>text/plain</type>
            <size>37610</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNGI5YTU2Li5kNWViMjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTAt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgSFRNTElucHV0RWxl
bWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
c3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qczog
QWRkZWQuCisKIDIwMDktMTEtMTkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lYmVlMjA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
OSBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0cyBmb3IgYW4gaW52YWxpZCBjdXJyZW50IHZh
bHVlOgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitz
dGVwRG93bigiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0
ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBE
b3duKG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
bnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBEb3duKHVu
ZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCh1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
KSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVwKDIpIHdpdGgg
dmFsdWU9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitzdGVwVXAoLTEpIHdpdGggdmFsdWU9
MzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitzdGVwRG93bigtMSkgd2l0aCB2YWx1ZT0yOgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MToKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIi0xIgorc3RlcERvd24oLTEpIHdpdGggdmFsdWU9LTE6CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjEiCitzdGVwVXAoMSwgMykgd2l0aCB2YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWZvbzoKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjEiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTEgc3RlcD0wOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMiIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MiBzdGVwPS0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMyIKK3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWFueToK
K1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3RlcERv
d24oKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIK
K3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcERv
d24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExLgorc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5w
dXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwRG93bigyKSB3
aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3Rl
cFVwKCkgd2l0aCB2YWx1ZT0tMSBtYXg9MCBzdGVwPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIw
Igorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVw
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQu
c3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK3N0ZXBVcCgyKSB3aXRoIHZh
bHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgpIHdp
dGggdmFsdWU9MCBtaW49LTEgc3RlcD0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6
CitQQVNTIGlucHV0LnZhbHVlIGlzICIxMDAiCitzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWlu
PTAgc3RlcD0xMDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwIgorc3RlcFVwKCkgd2l0aCB2YWx1
ZT04OSBtaW49MCBtYXg9OTkgc3RlcD0xMDoKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBV
cCg5OTk5OTkpIHdpdGggdmFsdWU9MWUrMzA4IHN0ZXA9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjFlKzMwOCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK3N0ZXBVcCgzKSB3aXRoIHZh
bHVlPTAgc3RlcD0wLjMzMzMzMzMzMzMzMzMzMzMzOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIK
K3N0ZXBVcCgxMCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MC4xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MiIKK3N0ZXBVcCgpIHgxMCB3aXRoIHZhbHVlPTIgc3RlcD0wLjE6CitQQVNTIGlucHV0LnZhbHVl
IGlzICIzIgorc3RlcFVwKDI1NSkgd2l0aCB2YWx1ZT0wIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5
MjE1Njg2Mjc0NTA5ODA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcERvd24oKSB4MjU1
IHdpdGggdmFsdWU9MSBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIxNTY4NjI3NDUwOTgwOgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVt
YmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4MGNhNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZmY5NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
ODkgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9cmFuZ2UuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0cyBmb3IgYW4gaW52YWxpZCBjdXJyZW50IHZh
bHVlOgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitz
dGVwRG93bigiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0
ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBE
b3duKG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
bnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBEb3duKHVu
ZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCh1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
KSB3aXRoIHZhbHVlPTAgbWluPS0xMDA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVw
KDIpIHdpdGggdmFsdWU9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitzdGVwVXAoLTEpIHdp
dGggdmFsdWU9MzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitzdGVwRG93bigtMSkgd2l0aCB2
YWx1ZT0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9
MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorc3RlcERvd24oLTEpIHdpdGggdmFsdWU9LTE6
CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDoKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoMSwgMykgd2l0aCB2YWx1ZT0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWZvbzoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTEgc3RlcD0wOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMiIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MiBzdGVwPS0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMyIKK3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBz
dGVwPWFueToKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
Lgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMCIKK3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5w
dXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToK
K1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVw
RG93bigyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwRG93bigy
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExLgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0tMSBtaW49LTEwMCBtYXg9MCBzdGVwPTE6CitQQVNT
IGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMTAwIG1heD0w
IHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0x
IG1pbj0tMTAwIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnZhbHVlIGlzICItMSIKK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgor
UEFTUyBpbnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEgc3Rl
cD0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6CitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxMDAiCitzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWluPTAgc3RlcD0xMDoKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjEwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT04OSBtaW49MCBtYXg9OTkgc3Rl
cD0xMDoKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCg5OTk5OTkpIHdpdGggdmFsdWU9
MWUrMzA4IG1pbj0wIG1heD0xLjFlKzMwOCBzdGVwPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIx
ZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitzdGVwVXAoMykgd2l0aCB2YWx1
ZT0wIHN0ZXA9MC4zMzMzMzMzMzMzMzMzMzMzMzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwVXAoMTApIHdpdGggdmFsdWU9MSBzdGVwPTAuMToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIi
CitzdGVwVXAoKSB4MTAgd2l0aCB2YWx1ZT0yIHN0ZXA9MC4xOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMyIKK3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIx
NTY4NjI3NDUwOTgwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKCkgeDI1NSB3
aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzZiMzc0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNGE2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVuc3VwcG9y
dGVkIHR5cGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0
ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcERvd24oMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVw
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjNjYWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LXN0ZXAtbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvaW5wdXQtc3RlcC1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODBiNDg5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCkBAIC0wLDAgKzEsMjEyIEBACitkZXNjcmlw
dGlvbignVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuJyk7CisKK3Zh
ciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0g
J251bWJlcic7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworZGVidWcoJ1Rlc3RzIGZvciBhbiBpbnZhbGlkIGN1
cnJlbnQgdmFsdWU6Jyk7CitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgp
JywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAorZGVidWcoJ3N0
ZXBEb3duKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0
LnN0ZXBEb3duKCJmb28iKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVi
dWcoJ3N0ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKCJmb28iKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBEb3duKG51bGwp
IHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBEb3duKG51bGwpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKG51bGwpIHdpdGggdmFsdWU9MDonKTsK
K2lucHV0LnN0ZXBVcChudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKwor
ZGVidWcoJ3N0ZXBEb3duKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcERv
d24odW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVidWco
J3N0ZXBVcCh1bmRlZmluZWQpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCh1bmRlZmlu
ZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBEZWZhdWx0IHN0ZXAg
dmFsdWUgZm9yIHR5cGU9bnVtYmVyIGlzIDEuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0w
OicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTE6Jyk7Citp
bnB1dC5zdGVwVXAoMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKK2RlYnVn
KCdzdGVwVXAoLTEpIHdpdGggdmFsdWU9MzonKTsKK2lucHV0LnN0ZXBVcCgtMSk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwRG93bigtMSkgd2l0aCB2YWx1
ZT0yOicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSIn
KTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MTonKTsKK2lucHV0LnN0ZXBEb3du
KDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworZGVidWcoJ3N0ZXBEb3du
KC0xKSB3aXRoIHZhbHVlPS0xOicpOworaW5wdXQuc3RlcERvd24oLTEpOworc2hvdWxkQmUoJ2lu
cHV0LnZhbHVlJywgJyIwIicpOworCisvLyBFeHRyYSBhcmd1bWVudHMgYXJlIGlnbm9yZWQuCitk
ZWJ1Zygnc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCgxLCAyKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgxLCAzKSB3
aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93bigxLCAzKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMCInKTsKKworLy8gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdXNlZCBmb3IgaW52YWxp
ZCBzdGVwIHZhbHVlcy4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1mb286Jyk7
CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnZm9vJzsKK2lucHV0LnN0ZXBVcCgp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKCkgd2l0
aCB2YWx1ZT0xIHN0ZXA9MDonKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKKworZGVidWcoJ3N0ZXBVcCgpIHdpdGgg
dmFsdWU9MiBzdGVwPS0xOicpOworaW5wdXQuc3RlcCA9ICctMSc7CitpbnB1dC5zdGVwVXAoKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworLy8gTm8gc3RlcCB2YWx1ZQorZGVi
dWcoJ3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWFueTonKTsKK2lu
cHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBV
cCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAorZGVidWcoJ3N0ZXBE
b3duKCkgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MTonKTsKK2lucHV0Lm1pbiA9ICcwJzsKK2lu
cHV0LnN0ZXAgPSAnMSc7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0LnN0ZXBEb3duKCk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitkZWJ1Zygnc3RlcERvd24oKSB3aXRoIHZh
bHVlPTAgbWluPTAgc3RlcD0xOicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBp
bnZhbGlkU3RhdGVFcnIpOworCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0w
IHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBE
b3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSIn
KTsKKworLy8gU2hvdWxkIG5vdCBiZSAtSW5maW5pdHkuCitkZWJ1Zygnc3RlcERvd24oMikgd2l0
aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDonKTsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWlu
ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRo
cm93KCdpbnB1dC5zdGVwRG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1heGltdW0g
bGltaXQKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MTonKTsKK2lu
cHV0LnZhbHVlID0gJy0xJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJzAnOworaW5w
dXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIwIicpOworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtYXg9MCBzdGVwPTE6Jyk7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCitkZWJ1Zygn
c3RlcFVwKDIpIHdpdGggdmFsdWU9LTEgbWF4PTAgc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAn
LTEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworCisvLyBTaG91bGQgbm90IGJlIEluZmlu
aXR5LgorZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOicpOworaW5w
dXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMx
MzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRT
dGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHN0ZXBNaXNtYXRjaCB2YWx1
ZXMKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xIHN0ZXA9MjonKTsKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0xJzsKK2lucHV0LnN0ZXAgPSAnMic7CitpbnB1
dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAo
OSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9ICc5JzsKK2lu
cHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcxMCc7CitpbnB1
dC5zdGVwVXAoOSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwMCInKTsKKworZGVidWco
J3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xOSBtaW49MCBzdGVwPTEwOicpOworaW5wdXQudmFsdWUg
PSAnMTknOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTAi
Jyk7CisKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3VsdCB3b3Vs
ZCBiZSA+IG1heC4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTg5IG1pbj0wIG1heD05OSBz
dGVwPTEwOicpOworaW5wdXQudmFsdWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5JzsKK3Nob3Vs
ZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIEh1Z2UgdmFs
dWUgYW5kIHNtYWxsIHN0ZXAKK2RlYnVnKCdzdGVwVXAoOTk5OTk5KSB3aXRoIHZhbHVlPTFlKzMw
OCBzdGVwPTE6Jyk7CitpbnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQubWluID0gJyc7Citp
bnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoOTk5OTk5KTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQuc3RlcERvd24oOTk5
OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworCisvLyBGcmFjdGlv
bmFsIG51bWJlcnMKK2RlYnVnKCdzdGVwVXAoMykgd2l0aCB2YWx1ZT0wIHN0ZXA9MC4zMzMzMzMz
MzMzMzMzMzMzMzonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJyc7CitpbnB1
dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7CitpbnB1dC5z
dGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVw
VXAoMTApIHdpdGggdmFsdWU9MSBzdGVwPTAuMTonKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lu
cHV0LnN0ZXBVcCgxMCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CitkZWJ1Zygn
c3RlcFVwKCkgeDEwIHdpdGggdmFsdWU9MiBzdGVwPTAuMTonKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTA7IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMyInKTsKKworZGVidWcoJ3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBz
dGVwPTAuMDAzOTIxNTY4NjI3NDUwOTgwOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5t
aW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3
NDUwOTgwJzsKK2lucHV0LnN0ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
IicpOworZGVidWcoJ3N0ZXBEb3duKCkgeDI1NSB3aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3Rl
cD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDonKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMjU1OyBpKysp
CisgICAgaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdlLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc0NWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwpAQCAt
MCwwICsxLDIxMyBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9y
IHR5cGU9cmFuZ2UuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK3ZhciBpbnZhbGlkU3RhdGVFcnIgPSAnIkVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInOworCitkZWJ1ZygnVGVz
dHMgZm9yIGFuIGludmFsaWQgY3VycmVudCB2YWx1ZTonKTsKK2lucHV0LnZhbHVlID0gJyc7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBOb24tbnVtYmVy
IGFyZ3VtZW50CitkZWJ1Zygnc3RlcERvd24oImZvbyIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcERvd24oImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7Citp
bnB1dC5zdGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCitk
ZWJ1Zygnc3RlcERvd24obnVsbCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcERvd24obnVs
bCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwVXAobnVs
bCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKG51bGwpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcERvd24odW5kZWZpbmVkKSB3aXRoIHZhbHVl
PTA6Jyk7CitpbnB1dC5zdGVwRG93bih1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOicpOwor
aW5wdXQuc3RlcFVwKHVuZGVmaW5lZCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7
CisKKy8vIERlZmF1bHQgc3RlcCB2YWx1ZSBmb3IgdHlwZT1yYW5nZSBpcyAxLgorZGVidWcoJ3N0
ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEwMDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5w
dXQubWluID0gJy0xMDAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0xOicpOworaW5wdXQuc3Rl
cFVwKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitkZWJ1Zygnc3RlcFVw
KC0xKSB3aXRoIHZhbHVlPTM6Jyk7CitpbnB1dC5zdGVwVXAoLTEpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIyIicpOworCitkZWJ1Zygnc3RlcERvd24oLTEpIHdpdGggdmFsdWU9MjonKTsK
K2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2Rl
YnVnKCdzdGVwRG93bigyKSB3aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisKK2RlYnVnKCdzdGVwRG93bigtMSkgd2l0
aCB2YWx1ZT0tMTonKTsKK2lucHV0LnN0ZXBEb3duKC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMCInKTsKKworLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgorZGVidWcoJ3N0
ZXBVcCgxLCAyKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAoMSwgMik7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMSwgMykgd2l0aCB2YWx1
ZT0xOicpOworaW5wdXQuc3RlcERvd24oMSwgMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAn
IjAiJyk7CisKKy8vIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHVzZWQgZm9yIGludmFsaWQgc3RlcCB2
YWx1ZXMuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0ZXA9Zm9vOicpOworaW5wdXQu
dmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9
MSBzdGVwPTA6Jyk7CitpbnB1dC5zdGVwID0gJzAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTIg
c3RlcD0tMTonKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2RlYnVnKCdzdGVw
RG93bigpIGFuZCBzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1hbnk6Jyk7CitpbnB1dC52YWx1
ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnYW55JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93
bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGlu
dmFsaWRTdGF0ZUVycik7CisKKy8vIE1pbmltdW0gbGltaXQKK2RlYnVnKCdzdGVwRG93bigpIHdp
dGggdmFsdWU9MSBtaW49MCBzdGVwPTE6Jyk7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5zdGVw
ID0gJzEnOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIwIicpOworZGVidWcoJ3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1p
bj0wIHN0ZXA9MTonKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0
YXRlRXJyKTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6
Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigyKScs
IGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKKy8v
IEltcGxpY2l0IG1pbmltdW0uCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIHN0ZXA9
REJMX01BWDonKTsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5z
dGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
RG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1heGltdW0gbGltaXQKK2RlYnVnKCdz
dGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1pbj0tMTAwIG1heD0wIHN0ZXA9MTonKTsKK2lucHV0LnZh
bHVlID0gJy0xJzsKK2lucHV0Lm1pbiA9ICctMTAwJzsKK2lucHV0Lm1heCA9ICcwJzsKK2lucHV0
LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MCInKTsKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xMDAgbWF4PTAgc3RlcD0x
OicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKwor
ZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0xIG1pbj0tMTAwIG1heD0wIHN0ZXA9MTonKTsK
K2lucHV0LnZhbHVlID0gJy0xJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworLy8gSW1w
bGljaXQgbWF4aW11bQorZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFY
OicpOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAn
MS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScs
IGludmFsaWRTdGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHN0ZXBNaXNt
YXRjaCB2YWx1ZXMKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xIHN0ZXA9Mjon
KTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0xJzsKK2lucHV0LnN0ZXAgPSAn
Mic7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lu
cHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVn
KCdzdGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9
ICc5JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcx
MCc7CitpbnB1dC5zdGVwVXAoOSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwMCInKTsK
KworZGVidWcoJ3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xOSBtaW49MCBzdGVwPTEwOicpOworaW5w
dXQudmFsdWUgPSAnMTknOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMTAiJyk7CisKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJl
c3VsdCB3b3VsZCBiZSA+IG1heC4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTg5IG1pbj0w
IG1heD05OSBzdGVwPTEwOicpOworaW5wdXQudmFsdWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5
JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8v
IEh1Z2UgdmFsdWUgYW5kIHNtYWxsIHN0ZXAKK2RlYnVnKCdzdGVwVXAoOTk5OTk5KSB3aXRoIHZh
bHVlPTFlKzMwOCBtaW49MCBtYXg9MS4xZSszMDggc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAn
MWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxLjFlKzMwOCc7CitpbnB1
dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5OTk5OSk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rpb25hbCBudW1iZXJzCitkZWJ1Zygn
c3RlcFVwKDMpIHdpdGggdmFsdWU9MCBzdGVwPTAuMzMzMzMzMzMzMzMzMzMzMzM6Jyk7CitpbnB1
dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5z
dGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQuc3RlcFVwKDMpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKDEwKSB3aXRoIHZhbHVlPTEg
c3RlcD0wLjE6Jyk7CitpbnB1dC5zdGVwID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworZGVidWcoJ3N0ZXBVcCgpIHgxMCB3aXRoIHZh
bHVlPTIgc3RlcD0wLjE6Jyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgaW5w
dXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKK2RlYnVnKCdz
dGVwVXAoMjU1KSB3aXRoIHZhbHVlPTAgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1
MDk4MDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4
ID0gJzEnOworaW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYyNzQ1MDk4MCc7CitpbnB1dC5zdGVw
VXAoMjU1KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2RlYnVnKCdzdGVwRG93
bigpIHgyNTUgd2l0aCB2YWx1ZT0xIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5
ODA6Jyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsrKQorICAgIGlucHV0LnN0ZXBEb3du
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOWNjYWYxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMKQEAgLTAs
MCArMSwxMiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVu
c3VwcG9ydGVkIHR5cGVzJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lucHV0Jyk7CitpbnB1dC50eXBlID0gJ3RleHQnOworaW5wdXQuc3RlcCA9ICczJzsKK2lucHV0
LnZhbHVlID0gJzInOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCAnIkVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKK3Nob3VsZFRocm93KCdpbnB1
dC5zdGVwRG93bigwKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgJyJFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVw
KDApJywgJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDFhZmRiLi4xYTVjMjk1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDA5LTEwLTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkgZm9yCisgICAg
ICAgIHR5cGU9bnVtYmVyIGFuZCB0eXBlPXJhbmdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAgICAgICBPdXIgaW1wbGVtZW50YXRp
b24gb2Ygc3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkgcm91bmRzIHRoZSByZXN1bHRhbnQKKyAgICAg
ICAgdmFsdWUgdG8gY29uZm9ybSB0byB0aGUgc3RlcCB2YWx1ZS4KKyAgICAgICAgQ2hhbmdlIHRo
ZSBudW1iZXItc3RyaW5nIGNvbnZlcnNpb24gbWV0aG9kIGZvciBSZW5kZXJTbGlkZXIgdG8gYmUK
KyAgICAgICAgY29uc2lzdGVudCB3aXRoIHR5cGU9bnVtYmVyLgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlVW5kZXJmbG93
KTogVW5pZnkgdGhlIGNvZGUgZm9yIE5VTUJFUiBhbmQgUkFOR0UuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJmbG93KTogVW5pZnkgdGhlIGNvZGUgZm9yIE5V
TUJFUiBhbmQgUkFOR0UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjptaW5p
bXVtKTogUmVuYW1lZCBmcm9tIHJhbmdlTWluaW11bSgpLCBhbmQgc3VwcG9ydCBmb3IgTlVNQkVS
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11bSk6IFJlbmFtZWQg
ZnJvbSByYW5nZU1heGltdW0oKSwgYW5kIHN1cHBvcnQgZm9yIE5VTUJFUi4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCk6IFVzZSBzdGVwQmFzZSgpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwRm9yTnVtYmVyT3JSYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXApOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcERvd24pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ0Zyb21Eb3VibGUpOgorICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3Rl
cFVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBBZGQgc3RlcFVwKCkgYW5kIHN0ZXBE
b3duKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UpOiBTeW5jIHdpdGggcmFuZ2VNaW5pbXVt
KCkvcmFuZ2VNYXhpbXVtKCkgcmVuYW1pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlk
ZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogVXNlIGZvcm1TdHJpbmdGcm9tRG91YmxlKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24pOiBVc2UgZm9y
bVN0cmluZ0Zyb21Eb3VibGUoKS4KKwogMjAwOS0xMS0xOSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBh
cHBsZS5jb20+CiAKICAgICAgICBCdWlsZCBmaXguIE5vIHJldmlldyBuZWVkZWQuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKaW5kZXggYmI4ZmQyNi4uNzk0NTEzOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAt
MjU5LDYwICsyNjAsNjkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp0b29Mb25nKCkgY29uc3QK
IAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxvdygpIGNvbnN0CiB7Ci0gICAg
aWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikgewotICAgICAgICBkb3VibGUgbWluID0gMC4wOwot
ICAgICAgICBkb3VibGUgZG91YmxlVmFsdWUgPSAwLjA7Ci0gICAgICAgIGlmIChmb3JtU3RyaW5n
VG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluKSAmJiBmb3JtU3RyaW5nVG9Eb3Vi
bGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1
ZSA8IG1pbjsKLSAgICB9IGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgaWYg
KGlucHV0VHlwZSgpID09IE5VTUJFUiB8fCBpbnB1dFR5cGUoKSA9PSBSQU5HRSkgewogICAgICAg
ICBkb3VibGUgZG91YmxlVmFsdWU7CiAgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUodmFs
dWUoKSwgJmRvdWJsZVZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IHJh
bmdlTWluaW11bSgpOworICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgbWluaW11bSgp
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6
cmFuZ2VPdmVyZmxvdygpIGNvbnN0CiB7Ci0gICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikg
ewotICAgICAgICBkb3VibGUgbWF4ID0gMC4wOwotICAgICAgICBkb3VibGUgZG91YmxlVmFsdWUg
PSAwLjA7Ci0gICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0
dHIpLCAmbWF4KSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkK
LSAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA+IG1heDsKLSAgICB9IGVsc2UgaWYgKGlu
cHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUiB8fCBp
bnB1dFR5cGUoKSA9PSBSQU5HRSkgewogICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CiAgICAg
ICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKLSAgICAg
ICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA+IHJhbmdlTWF4aW11bSgpOworICAgICAgICAgICAg
cmV0dXJuIGRvdWJsZVZhbHVlID4gbWF4aW11bSgpOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU1pbmltdW0oKSBjb25zdAorZG91
YmxlIEhUTUxJbnB1dEVsZW1lbnQ6Om1pbmltdW0oKSBjb25zdAogewotICAgIEFTU0VSVChpbnB1
dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgQVNTRVJUKGlucHV0VHlwZSgpID09IE5VTUJFUiB8fCBp
bnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0TWlu
aW11bUZvck51bWJlciA9IC1EQkxfTUFYOwogICAgIC8vIFRoZSByYW5nZSB0eXBlJ3MgImRlZmF1
bHQgbWluaW11bSIgaXMgMC4KLSAgICBkb3VibGUgbWluID0gMC4wOworICAgIHN0YXRpYyBjb25z
dCBkb3VibGUgZGVmYXVsdE1pbmltdW1Gb3JSYW5nZSA9IDAuMDsKKyAgICBkb3VibGUgbWluID0g
aW5wdXRUeXBlKCkgPT0gUkFOR0UgPyBkZWZhdWx0TWluaW11bUZvclJhbmdlIDogZGVmYXVsdE1p
bmltdW1Gb3JOdW1iZXI7CiAgICAgZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5B
dHRyKSwgJm1pbik7CiAgICAgcmV0dXJuIG1pbjsKIH0KIAotZG91YmxlIEhUTUxJbnB1dEVsZW1l
bnQ6OnJhbmdlTWF4aW11bSgpIGNvbnN0Citkb3VibGUgSFRNTElucHV0RWxlbWVudDo6bWF4aW11
bSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NF
UlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBz
dGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRNYXhpbXVtRm9yTnVtYmVyID0gREJMX01BWDsKICAg
ICAvLyBUaGUgcmFuZ2UgdHlwZSdzICJkZWZhdWx0IG1heGltdW0iIGlzIDEwMC4KLSAgICBzdGF0
aWMgY29uc3QgZG91YmxlIGRlZmF1bHRNYXhpbXVtID0gMTAwLjA7CisgICAgc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0TWF4aW11bUZvclJhbmdlID0gMTAwLjA7CisgICAgZG91YmxlIGRlZmF1
bHRNYXhpbXVtID0gaW5wdXRUeXBlKCkgPT0gUkFOR0UgPyBkZWZhdWx0TWF4aW11bUZvclJhbmdl
IDogZGVmYXVsdE1heGltdW1Gb3JOdW1iZXI7CiAgICAgZG91YmxlIG1heCA9IGRlZmF1bHRNYXhp
bXVtOwogICAgIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgp
OwotICAgIGNvbnN0IGRvdWJsZSBtaW4gPSByYW5nZU1pbmltdW0oKTsKLQotICAgIGlmIChtYXgg
PCBtaW4pIHsKLSAgICAgICAgLy8gQSByZW1lZHkgZm9yIHRoZSBpbmNvbnNpc3RlbnQgbWluL21h
eCB2YWx1ZXMuCi0gICAgICAgIC8vIFNldHMgdGhlIG1heG1pbXVtIHRvIHRoZSBkZWZhdWx0ICgx
MDAuMCkgb3IgdGhlIG1pbmltdW0gdmFsdWUuCi0gICAgICAgIG1heCA9IG1pbiA8IGRlZmF1bHRN
YXhpbXVtID8gZGVmYXVsdE1heGltdW0gOiBtaW47CisgICAgaWYgKGlucHV0VHlwZSgpID09IFJB
TkdFKSB7CisgICAgICAgIC8vIEEgcmVtZWR5IGZvciB0aGUgaW5jb25zaXN0ZW50IG1pbi9tYXgg
dmFsdWVzIGZvciBSQU5HRS4KKyAgICAgICAgLy8gU2V0cyB0aGUgbWF4bWltdW0gdG8gdGhlIGRl
ZmF1bHQgb3IgdGhlIG1pbmltdW0gdmFsdWUuCisgICAgICAgIGNvbnN0IGRvdWJsZSBtaW4gPSBt
aW5pbXVtKCk7CisgICAgICAgIGlmIChtYXggPCBtaW4pIHsKKyAgICAgICAgICAgIG1heCA9IG1p
biA8IGRlZmF1bHRNYXhpbXVtID8gZGVmYXVsdE1heGltdW0gOiBtaW47CisgICAgICAgIH0KICAg
ICB9CiAgICAgcmV0dXJuIG1heDsKIH0KIAorZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBC
YXNlKCkgY29uc3QKK3sKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0UpCisgICAgICAgIHJl
dHVybiBtaW5pbXVtKCk7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAg
ICBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRTdGVwQmFzZSA9IDAuMDsKKyAgICAgICAgZG91
YmxlIG1pbiA9IGRlZmF1bHRTdGVwQmFzZTsKKyAgICAgICAgZm9ybVN0cmluZ1RvRG91YmxlKGdl
dEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbik7CisgICAgICAgIHJldHVybiBtaW47CisgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwLjA7Cit9CisKIGJvb2wgSFRN
TElucHV0RWxlbWVudDo6c3RlcE1pc21hdGNoKCkgY29uc3QKIHsKICAgICBkb3VibGUgc3RlcDsK
QEAgLTMyMiw5ICszMzIsNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCgp
IGNvbnN0CiAgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICAgICAgaWYgKCFmb3JtU3Ry
aW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgZG91YmxlIHN0ZXBCYXNlID0gMC4wOwotICAgICAgICBmb3JtU3RyaW5n
VG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmc3RlcEJhc2UpOwotICAgICAgICBkb3Vi
bGVWYWx1ZSA9IGZhYnMoZG91YmxlVmFsdWUgLSBzdGVwQmFzZSk7CisgICAgICAgIGRvdWJsZVZh
bHVlID0gZmFicyhkb3VibGVWYWx1ZSAtIHN0ZXBCYXNlKCkpOwogICAgICAgICBpZiAoaXNpbmYo
ZG91YmxlVmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAvLyBkb3Vi
bGUncyBmcmFjdGlvbmFsIHBhcnQgc2l6ZSBpcyBEQkxfTUFOX0RJRy1iaXQuICBJZiB0aGUgY3Vy
cmVudApAQCAtNDA3LDYgKzQxNSw1NyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93
ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoZG91YmxlIHN0
ZXAsIGRvdWJsZSBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJUKGlucHV0
VHlwZSgpID09IE5VTUJFUiB8fCBpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgQVNTRVJUKHN0
ZXAgPiAwKTsKKyAgICBkb3VibGUgY3VycmVudDsKKyAgICBpZiAoIWZvcm1TdHJpbmdUb0RvdWJs
ZSh2YWx1ZSgpLCAmY3VycmVudCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb3VibGUgbmV3VmFsdWUgPSBjdXJyZW50ICsg
c3RlcCAqIGNvdW50OworICAgIGlmIChpc2luZihuZXdWYWx1ZSkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobmV3VmFs
dWUgPCBtaW5pbXVtKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBkb3VibGUgYmFzZSA9IHN0ZXBCYXNlKCk7CisgICAgbmV3
VmFsdWUgPSBiYXNlICsgcm91bmQoKG5ld1ZhbHVlIC0gYmFzZSkgLyBzdGVwKSAqIHN0ZXA7Cisg
ICAgaWYgKG5ld1ZhbHVlID4gbWF4aW11bSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2V0VmFsdWUoZm9ybVN0cmluZ0Zy
b21Eb3VibGUobmV3VmFsdWUpKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAo
aW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGRvdWJsZSBzdGVwID0gMC4wOworICAg
IGlmICghZ2V0QWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUeXBlcyBvdGhlciB0
aGFuIE5VTUJFUi9SQU5HRSBzaG91bGQgYmUgcmVqZWN0ZWQgYnkgYWxsb3dlZFZhbHVlU3RlcCgp
LgorICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFO
R0UpOworICAgIGFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2Uoc3RlcCwgbiwgZWMpOworfQorCit2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBkb3VibGUgc3RlcCA9IDAuMDsKKyAgICBpZiAoIWdldEFsbG93ZWRWYWx1ZVN0ZXAo
JnN0ZXApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgLy8gVHlwZXMgb3RoZXIgdGhhbiBOVU1CRVIvUkFOR0Ugc2hvdWxkIGJl
IHJlamVjdGVkIGJ5IGFsbG93ZWRWYWx1ZVN0ZXAoKS4KKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkg
PT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBhcHBseVN0ZXBGb3JOdW1i
ZXJPclJhbmdlKHN0ZXAsIC1uLCBlYyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlv
QnV0dG9ucyYgY2hlY2tlZFJhZGlvQnV0dG9ucyhjb25zdCBIVE1MSW5wdXRFbGVtZW50ICplbGVt
ZW50KQogewogICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkp
CkBAIC0xOTg1LDYgKzIwNDQsMTYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp3aWxsVmFsaWRh
dGUoKSBjb25zdAogICAgICAgICAgICBpbnB1dFR5cGUoKSAhPSBCVVRUT04gJiYgaW5wdXRUeXBl
KCkgIT0gUkVTRVQ7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nRnJv
bURvdWJsZShkb3VibGUgbnVtYmVyKQoreworICAgIC8vIEFjY29yZGluZyB0byBIVE1MNSwgInRo
ZSBiZXN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgbiBhcyBhIGZsb2F0aW5nCisgICAg
Ly8gcG9pbnQgbnVtYmVyIiBpcyBhIHN0cmluZyBwcm9kdWNlZCBieSBhcHBseWluZyBUb1N0cmlu
ZygpIHRvIG4uCisgICAgRHRvYUJ1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVuZ3RoOwor
ICAgIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KG51bWJlciwgYnVmZmVyLCAmbGVu
Z3RoKTsKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKK30KKwogYm9vbCBIVE1M
SW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJs
ZSogb3V0KQogewogICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggODhhODU5Ni4uNTJhMDFiOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0xMDYsMTYgKzEwNiwyMSBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIFZhbGlk
aXR5U3RhdGUKICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCByYW5n
ZU92ZXJmbG93KCkgY29uc3Q7Ci0gICAgLy8gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZSBmb3Ig
dHlwZT1yYW5nZS4gIERvbid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCi0gICAgZG91Ymxl
IHJhbmdlTWluaW11bSgpIGNvbnN0OwotICAgIC8vIFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUg
Zm9yIHR5cGU9cmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5cGVzLgotICAgIC8v
IFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1ZSB3aGljaCBpcyA8PSByYW5nZU1pbmltdW0oKS4K
LSAgICBkb3VibGUgcmFuZ2VNYXhpbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWlu
aW11bSB2YWx1ZSBmb3IgdHlwZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9y
IG90aGVyIHR5cGVzLgorICAgIGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJu
cyB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdHlwZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxs
IHRoaXMgZm9yIG90aGVyIHR5cGVzLgorICAgIC8vIFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1
ZSB3aGljaCBpcyA+PSBtaW5pbXVtKCkuCisgICAgZG91YmxlIG1heGltdW0oKSBjb25zdDsKICAg
ICAvLyBTZXRzIHRoZSAiYWxsb3dlZCB2YWx1ZSBzdGVwIiBkZWZpbmVkIGluIHRoZSBIVE1MIHNw
ZWMgdG8gdGhlIHNwZWNpZmllZCBkb3VibGUgcG9pbnRlci4KICAgICAvLyBSZXR1cm5zIGZhbHNl
IGlmIHRoZXJlIGlzIG5vICJhbGxvd2VkIHZhbHVlIHN0ZXAuIgogICAgIGJvb2wgZ2V0QWxsb3dl
ZFZhbHVlU3RlcChkb3VibGUqKSBjb25zdDsKICAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZS4KICAg
ICBib29sIHN0ZXBNaXNtYXRjaCgpIGNvbnN0OworICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBI
VE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICB2b2lkIHN0ZXBV
cChpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0ZXBEb3duKGludCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc3RlcFVwKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBVcCgxLCBl
Yyk7IH0KKyAgICB2b2lkIHN0ZXBEb3duKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBEb3duKDEs
IGVjKTsgfQogCiAgICAgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
PT0gU1VCTUlUIHx8IG1fdHlwZSA9PSBSRVNFVCB8fCBtX3R5cGUgPT0gQlVUVE9OOyB9CiAgICAg
dmlydHVhbCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUkFE
SU87IH0KQEAgLTI0OCw2ICsyNTMsOSBAQCBwdWJsaWM6CiAgICAgLy8gSWYgdGhlIGNvbnZlcnNp
b24gZmFpbHMsIHRoZSByZXR1cm4gdmFsdWUgaXMgZmFsc2UuIFRha2UgY2FyZSB0aGF0IGxlYWRp
bmcgb3IgdHJhaWxpbmcgdW5uZWNlc3NhcnkgY2hhcmFjdGVycyBtYWtlIGZhaWx1cmVzLiAgVGhp
cyByZXR1cm5zIGZhbHNlIGZvciBhbiBlbXB0eSBzdHJpbmcgaW5wdXQuCiAgICAgLy8gVGhlIGRv
dWJsZSogcGFyYW1ldGVyIG1heSBiZSAwLgogICAgIHN0YXRpYyBib29sIGZvcm1TdHJpbmdUb0Rv
dWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUqKTsKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lm
aWVkIG51bWJlciB0byBhIHN0cmluZy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIEhUTUw1J3MgImFsZ29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIiBm
b3IgTlVNQkVSL1JBTkdFIHR5cGVzLgorICAgIHN0YXRpYyBTdHJpbmcgZm9ybVN0cmluZ0Zyb21E
b3VibGUoZG91YmxlKTsKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhl
IElucHV0VHlwZSwgYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2Vk
LgogICAgIC8vIEFuIGluc3RhbmNlIHBvaW50ZWQgYnkgdGhlIElTT0RhdGVUaW1lKiBwYXJhbWV0
ZXIgd2lsbCBoYXZlIHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBp
ZiB0aGUgcGFyc2luZyBmYWlscy4gIFRoZSBJU09EYXRlVGltZSogcGFyYW1ldGVyIG1heSBiZSAw
LgpAQCAtMjc3LDYgKzI4NSwxMSBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SFRNTEZvcm1F
bGVtZW50PiBjcmVhdGVUZW1wb3JhcnlGb3JtRm9ySXNJbmRleCgpOwogICAgIC8vIEhlbHBlciBm
b3IgZ2V0QWxsb3dlZFZhbHVlU3RlcCgpOwogICAgIGJvb2wgZ2V0U3RlcFBhcmFtZXRlcnMoZG91
YmxlKiBkZWZhdWx0U3RlcCwgZG91YmxlKiBzdGVwU2NhbGVGYWN0b3IpIGNvbnN0OworICAgIC8v
IEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCAqIGNvdW50IHRvIHRo
ZSBjdXJyZW50IG51bWJlci9yYW5nZSB2YWx1ZS4KKyAgICB2b2lkIGFwcGx5U3RlcEZvck51bWJl
ck9yUmFuZ2UoZG91YmxlIHN0ZXAsIGRvdWJsZSBjb3VudCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IC8vIEhlbHBlciBmb3IgYXBwbHlTdGVwRm9yTnVtYmVyT3JSYW5nZSgpLgorICAgIGRvdWJsZSBz
dGVwQmFzZSgpIGNvbnN0OworCiAjaWYgRU5BQkxFKERBVEFMSVNUKQogICAgIEhUTUxEYXRhTGlz
dEVsZW1lbnQqIGRhdGFMaXN0KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbAppbmRleCBjOWQwOGUzLi5lNjM1MDA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CkBAIC03MSw2ICs3MSwxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgogCisgICAgICAg
IHZvaWQgICAgICAgICAgICAgICBzdGVwVXAoaW4gW09wdGlvbmFsXSBsb25nIG4pCisgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0
ZXBEb3duKGluIFtPcHRpb25hbF0gbG9uZyBuKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxs
VmFsaWRhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFs
aWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCBlMThiNDMzLi5iMmY1Y2VmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTgyLDggKzgyLDggQEAgU2xpZGVyUmFu
Z2U6OlNsaWRlclJhbmdlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgfSBlbHNlCiAg
ICAgICAgIGhhc1N0ZXAgPSBlbGVtZW50LT5nZXRBbGxvd2VkVmFsdWVTdGVwKCZzdGVwKTsKIAot
ICAgIG1heGltdW0gPSBlbGVtZW50LT5yYW5nZU1heGltdW0oKTsKLSAgICBtaW5pbXVtID0gZWxl
bWVudC0+cmFuZ2VNaW5pbXVtKCk7CisgICAgbWF4aW11bSA9IGVsZW1lbnQtPm1heGltdW0oKTsK
KyAgICBtaW5pbXVtID0gZWxlbWVudC0+bWluaW11bSgpOwogfQogCiBkb3VibGUgU2xpZGVyUmFu
Z2U6OmNsYW1wVmFsdWUoZG91YmxlIHZhbHVlKQpAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgUmVu
ZGVyU2xpZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgYm9vbCBjbGFtcGVkOwogICAgIGRv
dWJsZSB2YWx1ZSA9IHJhbmdlLnZhbHVlRnJvbUVsZW1lbnQoZWxlbWVudCwgJmNsYW1wZWQpOwog
ICAgIGlmIChjbGFtcGVkKQotICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZUZyb21SZW5kZXJlcihT
dHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZUZyb21SZW5k
ZXJlcihIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nRnJvbURvdWJsZSh2YWx1ZSkpOwogCiAg
ICAgLy8gTGF5b3V0IHdpbGwgdGFrZSBjYXJlIG9mIHRoZSB0aHVtYidzIHNpemUgYW5kIHBvc2l0
aW9uLgogICAgIGlmICghbV90aHVtYikgewpAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgUmVuZGVy
U2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKGludCBwb3NpdGlvbikKICAgICBpZiAoc3R5bGUo
KS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJh
bmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBmcmFjdGlvbiA9IDEgLSBm
cmFjdGlvbjsKICAgICBkb3VibGUgdmFsdWUgPSByYW5nZS5jbGFtcFZhbHVlKHJhbmdlLnZhbHVl
RnJvbVByb3BvcnRpb24oZnJhY3Rpb24pKTsKLSAgICBlbGVtZW50LT5zZXRWYWx1ZUZyb21SZW5k
ZXJlcihTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJl
bmRlcmVyKEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91YmxlKHZhbHVlKSk7CiAK
ICAgICAvLyBBbHNvIHVwZGF0ZSB0aGUgcG9zaXRpb24gaWYgYXBwcm9wcmlhdGUuCiAgICAgaWYg
KHBvc2l0aW9uICE9IGN1cnJlbnRQb3NpdGlvbigpKSB7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43536</attachid>
            <date>2009-11-19 17:08:39 -0800</date>
            <delta_ts>2009-11-30 16:49:12 -0800</delta_ts>
            <desc>Proposed patch (rev.8)</desc>
            <filename>0001-stepupdown-8.patch</filename>
            <type>text/plain</type>
            <size>37471</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZTRiOWE1Ni4uZDVlYjI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTEw
LTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIEhUTUxJbnB1dEVs
ZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAgICAgICAqIGZhc3QvZm9ybXMvaW5w
dXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5w
dXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanM6
IEFkZGVkLgorCiAyMDA5LTExLTE5ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlZTIwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
ODkgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9bnVtYmVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdHMgZm9yIGFuIGludmFsaWQgY3VycmVudCB2
YWx1ZToKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgor
c3RlcERvd24oImZvbyIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitz
dGVwVXAoImZvbyIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVw
RG93bihudWxsKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVw
KG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwRG93bih1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
dW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVw
KCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBVcCgyKSB3aXRo
IHZhbHVlPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorc3RlcFVwKC0xKSB3aXRoIHZhbHVl
PTM6CitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorc3RlcERvd24oLTEpIHdpdGggdmFsdWU9MjoK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwRG93bigyKSB3aXRoIHZhbHVlPTE6CitQQVNT
IGlucHV0LnZhbHVlIGlzICItMSIKK3N0ZXBEb3duKC0xKSB3aXRoIHZhbHVlPS0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCgxLCAyKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0
LnZhbHVlIGlzICIxIgorc3RlcFVwKDEsIDMpIHdpdGggdmFsdWU9MToKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjAiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1mb286CitQQVNTIGlucHV0LnZh
bHVlIGlzICIxIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MDoKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjIiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTIgc3RlcD0tMToKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjMiCitzdGVwRG93bigpIGFuZCBzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1hbnk6
CitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBE
b3duKCkgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAi
CitzdGVwRG93bigpIHdpdGggdmFsdWU9MCBtaW49MCBzdGVwPTE6CitQQVNTIGlucHV0LnN0ZXBE
b3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMS4KK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6CitQQVNTIGlu
cHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcERvd24oMikg
d2l0aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDoKK1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0
ZXBVcCgpIHdpdGggdmFsdWU9LTEgbWF4PTAgc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtYXg9MCBzdGVwPTE6CitQQVNTIGlucHV0LnN0ZXBV
cCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitzdGVwVXAoMikgd2l0aCB2YWx1ZT0tMSBtYXg9MCBzdGVwPTE6CitQQVNTIGlucHV0
LnN0ZXBVcCgyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiLTEiCitzdGVwVXAoMikgd2l0aCB2
YWx1ZT0xIHN0ZXA9REJMX01BWDoKK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwVXAoKSB3
aXRoIHZhbHVlPTAgbWluPS0xIHN0ZXA9MjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNT
IGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVwKDkpIHdpdGggdmFsdWU9OSBtaW49MCBzdGVwPTEw
OgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTAwIgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTE5IG1p
bj0wIHN0ZXA9MTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxMCIKK3N0ZXBVcCgpIHdpdGggdmFs
dWU9ODkgbWluPTAgbWF4PTk5IHN0ZXA9MTA6CitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVw
VXAoOTk5OTk5KSB3aXRoIHZhbHVlPTFlKzMwOCBzdGVwPTE6CitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitzdGVwVXAoMykgd2l0aCB2
YWx1ZT0wIHN0ZXA9MC4zMzMzMzMzMzMzMzMzMzMzMzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEi
CitzdGVwVXAoMTApIHdpdGggdmFsdWU9MSBzdGVwPTAuMToKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjIiCitzdGVwVXAoKSB4MTAgd2l0aCB2YWx1ZT0yIHN0ZXA9MC4xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMyIKK3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBzdGVwPTAuMDAz
OTIxNTY4NjI3NDUwOTgwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKCkgeDI1
NSB3aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDoKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLW51bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51
bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViODBjYTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVy
Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1udW1iZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmZmOTRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDg5IEBACitUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB0eXBlPXJhbmdlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdHMgZm9yIGFuIGludmFsaWQgY3VycmVudCB2
YWx1ZToKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgor
c3RlcERvd24oImZvbyIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitz
dGVwVXAoImZvbyIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVw
RG93bihudWxsKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVw
KG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwRG93bih1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
dW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVw
KCkgd2l0aCB2YWx1ZT0wIG1pbj0tMTAwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBV
cCgyKSB3aXRoIHZhbHVlPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIzIgorc3RlcFVwKC0xKSB3
aXRoIHZhbHVlPTM6CitQQVNTIGlucHV0LnZhbHVlIGlzICIyIgorc3RlcERvd24oLTEpIHdpdGgg
dmFsdWU9MjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwRG93bigyKSB3aXRoIHZhbHVl
PTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK3N0ZXBEb3duKC0xKSB3aXRoIHZhbHVlPS0x
OgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCgxLCAyKSB3aXRoIHZhbHVlPTA6CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVwKDEsIDMpIHdpdGggdmFsdWU9MToKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1mb286CitQQVNT
IGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MDoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjIiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTIgc3RlcD0tMToKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjMiCitzdGVwRG93bigpIGFuZCBzdGVwVXAoKSB3aXRoIHZhbHVlPTAg
c3RlcD1hbnk6CitQQVNTIGlucHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MS4KK3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjAiCitzdGVwRG93bigpIHdpdGggdmFsdWU9MCBtaW49MCBzdGVwPTE6CitQQVNTIGlu
cHV0LnN0ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6
CitQQVNTIGlucHV0LnN0ZXBEb3duKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3Rl
cERvd24oMikgd2l0aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDoKK1BBU1MgaW5wdXQuc3RlcERvd24o
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK3N0ZXBVcCgpIHdpdGggdmFsdWU9LTEgbWluPS0xMDAgbWF4PTAgc3RlcD0xOgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEwMCBtYXg9
MCBzdGVwPTE6CitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwVXAoMikgd2l0aCB2YWx1ZT0t
MSBtaW49LTEwMCBtYXg9MCBzdGVwPTE6CitQQVNTIGlucHV0LnN0ZXBVcCgyKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiLTEiCitzdGVwVXAoMikgd2l0aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDoK
K1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xIHN0
ZXA9MjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgor
c3RlcFVwKDkpIHdpdGggdmFsdWU9OSBtaW49MCBzdGVwPTEwOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMTAwIgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTE5IG1pbj0wIHN0ZXA9MTA6CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIxMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9ODkgbWluPTAgbWF4PTk5IHN0
ZXA9MTA6CitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitzdGVwVXAoOTk5OTk5KSB3aXRoIHZhbHVl
PTFlKzMwOCBtaW49MCBtYXg9MS4xZSszMDggc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MWUrMzA4IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMWUrMzA4Igorc3RlcFVwKDMpIHdpdGggdmFs
dWU9MCBzdGVwPTAuMzMzMzMzMzMzMzMzMzMzMzM6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgor
c3RlcFVwKDEwKSB3aXRoIHZhbHVlPTEgc3RlcD0wLjE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIy
Igorc3RlcFVwKCkgeDEwIHdpdGggdmFsdWU9MiBzdGVwPTAuMToKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjMiCitzdGVwVXAoMjU1KSB3aXRoIHZhbHVlPTAgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzky
MTU2ODYyNzQ1MDk4MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwRG93bigpIHgyNTUg
d2l0aCB2YWx1ZT0xIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5ODA6CitQQVNT
IGlucHV0LnZhbHVlIGlzICIwIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
c3RlcC1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc2YjM3NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS5odG1s
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjRhNmVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB1bnN1cHBv
cnRlZCB0eXBlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5z
dGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBEb3duKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBV
cCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjYzY2FhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9pbnB1dC1zdGVwLW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjgwYjQ4OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcwpAQCAtMCwwICsxLDIxMiBAQAorZGVzY3Jp
cHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9bnVtYmVyLicpOworCit2
YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworaW5wdXQudHlwZSA9
ICdudW1iZXInOwordmFyIGludmFsaWRTdGF0ZUVyciA9ICciRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExIic7CisKK2RlYnVnKCdUZXN0cyBmb3IgYW4gaW52YWxpZCBj
dXJyZW50IHZhbHVlOicpOworaW5wdXQudmFsdWUgPSAnJzsKK3Nob3VsZFRocm93KCdpbnB1dC5z
dGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAo
KScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE5vbi1udW1iZXIgYXJndW1lbnQKK2RlYnVnKCdz
dGVwRG93bigiZm9vIikgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1
dC5zdGVwRG93bigiZm9vIik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2Rl
YnVnKCdzdGVwVXAoImZvbyIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCgiZm9vIik7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwRG93bihudWxs
KSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwRG93bihudWxsKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBVcChudWxsKSB3aXRoIHZhbHVlPTA6Jyk7
CitpbnB1dC5zdGVwVXAobnVsbCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisK
K2RlYnVnKCdzdGVwRG93bih1bmRlZmluZWQpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBE
b3duKHVuZGVmaW5lZCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVn
KCdzdGVwVXAodW5kZWZpbmVkKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAodW5kZWZp
bmVkKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworLy8gRGVmYXVsdCBzdGVw
IHZhbHVlIGZvciB0eXBlPW51bWJlciBpcyAxLgorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9
MDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0xOicpOwor
aW5wdXQuc3RlcFVwKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitkZWJ1
Zygnc3RlcFVwKC0xKSB3aXRoIHZhbHVlPTM6Jyk7CitpbnB1dC5zdGVwVXAoLTEpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworCitkZWJ1Zygnc3RlcERvd24oLTEpIHdpdGggdmFs
dWU9MjonKTsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEi
Jyk7CisKK2RlYnVnKCdzdGVwRG93bigyKSB3aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93
bigyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisKK2RlYnVnKCdzdGVwRG93
bigtMSkgd2l0aCB2YWx1ZT0tMTonKTsKK2lucHV0LnN0ZXBEb3duKC0xKTsKK3Nob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciMCInKTsKKworLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgor
ZGVidWcoJ3N0ZXBVcCgxLCAyKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAoMSwgMik7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMSwgMykg
d2l0aCB2YWx1ZT0xOicpOworaW5wdXQuc3RlcERvd24oMSwgMyk7CitzaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjAiJyk7CisKKy8vIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHVzZWQgZm9yIGludmFs
aWQgc3RlcCB2YWx1ZXMuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0ZXA9Zm9vOicp
OworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAo
KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgpIHdp
dGggdmFsdWU9MSBzdGVwPTA6Jyk7CitpbnB1dC5zdGVwID0gJzAnOworaW5wdXQuc3RlcFVwKCk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwVXAoKSB3aXRo
IHZhbHVlPTIgc3RlcD0tMTonKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2Rl
YnVnKCdzdGVwRG93bigpIGFuZCBzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1hbnk6Jyk7Citp
bnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnYW55JzsKK3Nob3VsZFRocm93KCdpbnB1
dC5zdGVwRG93bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
VXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1pbmltdW0gbGltaXQKK2RlYnVnKCdzdGVw
RG93bigpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6Jyk7CitpbnB1dC5taW4gPSAnMCc7Citp
bnB1dC5zdGVwID0gJzEnOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5zdGVwRG93bigpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworZGVidWcoJ3N0ZXBEb3duKCkgd2l0aCB2
YWx1ZT0wIG1pbj0wIHN0ZXA9MTonKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywg
aW52YWxpZFN0YXRlRXJyKTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBtaW49
MCBzdGVwPTE6Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
RG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEi
Jyk7CisKKy8vIFNob3VsZCBub3QgYmUgLUluZmluaXR5LgorZGVidWcoJ3N0ZXBEb3duKDIpIHdp
dGggdmFsdWU9MSBzdGVwPURCTF9NQVg6Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1p
biA9ICcnOworaW5wdXQuc3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcERvd24oMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNYXhpbXVt
IGxpbWl0CitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0tMSBtYXg9MCBzdGVwPTE6Jyk7Citp
bnB1dC52YWx1ZSA9ICctMSc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcwJzsKK2lu
cHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMCInKTsKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWF4PTAgc3RlcD0xOicpOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworZGVidWco
J3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0g
Jy0xJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlkU3RhdGVFcnIpOwor
c2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworLy8gU2hvdWxkIG5vdCBiZSBJbmZp
bml0eS4KK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDonKTsKK2lu
cHV0LnZhbHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3Njkz
MTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZhbGlk
U3RhdGVFcnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlzbWF0Y2ggdmFs
dWVzCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMSBzdGVwPTI6Jyk7CitpbnB1
dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0gJzInOworaW5w
dXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CitpbnB1dC5zdGVw
RG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVw
KDkpIHdpdGggdmFsdWU9OSBtaW49MCBzdGVwPTEwOicpOworaW5wdXQudmFsdWUgPSAnOSc7Citp
bnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMTAnOworaW5w
dXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7CisKK2RlYnVn
KCdzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWluPTAgc3RlcD0xMDonKTsKK2lucHV0LnZhbHVl
ID0gJzE5JzsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEw
IicpOworCisvLyB2YWx1ZSArIHN0ZXAgaXMgPD0gbWF4LCBidXQgcm91bmRlZCByZXN1bHQgd291
bGQgYmUgPiBtYXguCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT04OSBtaW49MCBtYXg9OTkg
c3RlcD0xMDonKTsKK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9ICc5OSc7CitzaG91
bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBIdWdlIHZh
bHVlIGFuZCBzbWFsbCBzdGVwCitkZWJ1Zygnc3RlcFVwKDk5OTk5OSkgd2l0aCB2YWx1ZT0xZSsz
MDggc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAnMWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcnOwor
aW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7
CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5
OTk5OSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rp
b25hbCBudW1iZXJzCitkZWJ1Zygnc3RlcFVwKDMpIHdpdGggdmFsdWU9MCBzdGVwPTAuMzMzMzMz
MzMzMzMzMzMzMzM6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5w
dXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQu
c3RlcFVwKDMpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3Rl
cFVwKDEwKSB3aXRoIHZhbHVlPTEgc3RlcD0wLjE6Jyk7CitpbnB1dC5zdGVwID0gJzAuMSc7Citp
bnB1dC5zdGVwVXAoMTApOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworZGVidWco
J3N0ZXBVcCgpIHgxMCB3aXRoIHZhbHVlPTIgc3RlcD0wLjE6Jyk7Citmb3IgKHZhciBpID0gMDsg
aSA8IDEwOyBpKyspCisgICAgaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjMiJyk7CisKK2RlYnVnKCdzdGVwVXAoMjU1KSB3aXRoIHZhbHVlPTAgbWluPTAgbWF4PTEg
c3RlcD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQu
bWluID0gJzAnOworaW5wdXQubWF4ID0gJzEnOworaW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYy
NzQ1MDk4MCc7CitpbnB1dC5zdGVwVXAoMjU1KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MSInKTsKK2RlYnVnKCdzdGVwRG93bigpIHgyNTUgd2l0aCB2YWx1ZT0xIG1pbj0wIG1heD0xIHN0
ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5ODA6Jyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsr
KQorICAgIGlucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg3NDVjMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtcmFuZ2UuanMKQEAg
LTAsMCArMSwyMTMgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZv
ciB0eXBlPXJhbmdlLicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpOworaW5wdXQudHlwZSA9ICdyYW5nZSc7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworZGVidWcoJ1Rl
c3RzIGZvciBhbiBpbnZhbGlkIGN1cnJlbnQgdmFsdWU6Jyk7CitpbnB1dC52YWx1ZSA9ICcnOwor
c2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxk
VGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9uLW51bWJl
ciBhcmd1bWVudAorZGVidWcoJ3N0ZXBEb3duKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1
dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXBEb3duKCJmb28iKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOicpOwor
aW5wdXQuc3RlcFVwKCJmb28iKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKwor
ZGVidWcoJ3N0ZXBEb3duKG51bGwpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBEb3duKG51
bGwpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKG51
bGwpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcChudWxsKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBEb3duKHVuZGVmaW5lZCkgd2l0aCB2YWx1
ZT0wOicpOworaW5wdXQuc3RlcERvd24odW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBVcCh1bmRlZmluZWQpIHdpdGggdmFsdWU9MDonKTsK
K2lucHV0LnN0ZXBVcCh1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicp
OworCisvLyBEZWZhdWx0IHN0ZXAgdmFsdWUgZm9yIHR5cGU9cmFuZ2UgaXMgMS4KK2RlYnVnKCdz
dGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xMDA6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lu
cHV0Lm1pbiA9ICctMTAwJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKDIpIHdpdGggdmFsdWU9MTonKTsKK2lucHV0LnN0
ZXBVcCgyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworZGVidWcoJ3N0ZXBV
cCgtMSkgd2l0aCB2YWx1ZT0zOicpOworaW5wdXQuc3RlcFVwKC0xKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMiInKTsKKworZGVidWcoJ3N0ZXBEb3duKC0xKSB3aXRoIHZhbHVlPTI6Jyk7
CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitk
ZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xOicpOworaW5wdXQuc3RlcERvd24oMik7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworCitkZWJ1Zygnc3RlcERvd24oLTEpIHdp
dGggdmFsdWU9LTE6Jyk7CitpbnB1dC5zdGVwRG93bigtMSk7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIjAiJyk7CisKKy8vIEV4dHJhIGFyZ3VtZW50cyBhcmUgaWdub3JlZC4KK2RlYnVnKCdz
dGVwVXAoMSwgMikgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKDEsIDIpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKDEsIDMpIHdpdGggdmFs
dWU9MTonKTsKK2lucHV0LnN0ZXBEb3duKDEsIDMpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIwIicpOworCisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkIGZvciBpbnZhbGlkIHN0ZXAg
dmFsdWVzLgorZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWZvbzonKTsKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdmb28nOworaW5wdXQuc3RlcFVwKCk7CitzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVl
PTEgc3RlcD0wOicpOworaW5wdXQuc3RlcCA9ICcwJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0y
IHN0ZXA9LTE6Jyk7CitpbnB1dC5zdGVwID0gJy0xJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCisvLyBObyBzdGVwIHZhbHVlCitkZWJ1Zygnc3Rl
cERvd24oKSBhbmQgc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0ZXA9YW55OicpOworaW5wdXQudmFs
dWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2FueSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERv
d24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBp
bnZhbGlkU3RhdGVFcnIpOworCisvLyBNaW5pbXVtIGxpbWl0CitkZWJ1Zygnc3RlcERvd24oKSB3
aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOicpOworaW5wdXQubWluID0gJzAnOworaW5wdXQuc3Rl
cCA9ICcxJzsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMCInKTsKK2RlYnVnKCdzdGVwRG93bigpIHdpdGggdmFsdWU9MCBt
aW49MCBzdGVwPTE6Jyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRT
dGF0ZUVycik7CisKK2RlYnVnKCdzdGVwRG93bigyKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0x
OicpOworaW5wdXQudmFsdWUgPSAnMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oMikn
LCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCisv
LyBJbXBsaWNpdCBtaW5pbXVtLgorZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBzdGVw
PURCTF9NQVg6Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQu
c3RlcCA9ICcxLjc5NzY5MzEzNDg2MjMxNTZlKzMwOCc7CitzaG91bGRUaHJvdygnaW5wdXQuc3Rl
cERvd24oMiknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBNYXhpbXVtIGxpbWl0CitkZWJ1Zygn
c3RlcFVwKCkgd2l0aCB2YWx1ZT0tMSBtaW49LTEwMCBtYXg9MCBzdGVwPTE6Jyk7CitpbnB1dC52
YWx1ZSA9ICctMSc7CitpbnB1dC5taW4gPSAnLTEwMCc7CitpbnB1dC5tYXggPSAnMCc7CitpbnB1
dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAn
IjAiJyk7CitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMTAwIG1heD0wIHN0ZXA9
MTonKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisK
K2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0tMSBtaW49LTEwMCBtYXg9MCBzdGVwPTE6Jyk7
CitpbnB1dC52YWx1ZSA9ICctMSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKDIpJywgaW52
YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisKKy8vIElt
cGxpY2l0IG1heGltdW0KK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0xIHN0ZXA9REJMX01B
WDonKTsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5zdGVwID0g
JzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMikn
LCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciBzdGVwTWlz
bWF0Y2ggdmFsdWVzCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMSBzdGVwPTI6
Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICctMSc7CitpbnB1dC5zdGVwID0g
JzInOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7Citp
bnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1
Zygnc3RlcFVwKDkpIHdpdGggdmFsdWU9OSBtaW49MCBzdGVwPTEwOicpOworaW5wdXQudmFsdWUg
PSAnOSc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAn
MTAnOworaW5wdXQuc3RlcFVwKDkpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMDAiJyk7
CisKK2RlYnVnKCdzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWluPTAgc3RlcD0xMDonKTsKK2lu
cHV0LnZhbHVlID0gJzE5JzsKK2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIjEwIicpOworCisvLyB2YWx1ZSArIHN0ZXAgaXMgPD0gbWF4LCBidXQgcm91bmRlZCBy
ZXN1bHQgd291bGQgYmUgPiBtYXguCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT04OSBtaW49
MCBtYXg9OTkgc3RlcD0xMDonKTsKK2lucHV0LnZhbHVlID0gJzg5JzsKK2lucHV0Lm1heCA9ICc5
OSc7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisv
LyBIdWdlIHZhbHVlIGFuZCBzbWFsbCBzdGVwCitkZWJ1Zygnc3RlcFVwKDk5OTk5OSkgd2l0aCB2
YWx1ZT0xZSszMDggbWluPTAgbWF4PTEuMWUrMzA4IHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0g
JzFlKzMwOCc7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMS4xZSszMDgnOworaW5w
dXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCg5OTk5OTkpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIxZSszMDgiJyk7CitpbnB1dC5zdGVwRG93big5OTk5OTkpOworc2hvdWxkQmUoJ2lu
cHV0LnZhbHVlJywgJyIxZSszMDgiJyk7CisKKy8vIEZyYWN0aW9uYWwgbnVtYmVycworZGVidWco
J3N0ZXBVcCgzKSB3aXRoIHZhbHVlPTAgc3RlcD0wLjMzMzMzMzMzMzMzMzMzMzMzOicpOworaW5w
dXQudmFsdWUgPSAnMCc7CitpbnB1dC5taW4gPSAnJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQu
c3RlcCA9ICcwLjMzMzMzMzMzMzMzMzMzMzMzJzsKK2lucHV0LnN0ZXBVcCgzKTsKK3Nob3VsZEJl
KCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgxMCkgd2l0aCB2YWx1ZT0x
IHN0ZXA9MC4xOicpOworaW5wdXQuc3RlcCA9ICcwLjEnOworaW5wdXQuc3RlcFVwKDEwKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKK2RlYnVnKCdzdGVwVXAoKSB4MTAgd2l0aCB2
YWx1ZT0yIHN0ZXA9MC4xOicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIGlu
cHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitkZWJ1Zygn
c3RlcFVwKDI1NSkgd2l0aCB2YWx1ZT0wIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2Mjc0
NTA5ODA6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1h
eCA9ICcxJzsKK2lucHV0LnN0ZXAgPSAnMC4wMDM5MjE1Njg2Mjc0NTA5ODAnOworaW5wdXQuc3Rl
cFVwKDI1NSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CitkZWJ1Zygnc3RlcERv
d24oKSB4MjU1IHdpdGggdmFsdWU9MSBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIxNTY4NjI3NDUw
OTgwOicpOworZm9yICh2YXIgaSA9IDA7IGkgPCAyNTU7IGkrKykKKyAgICBpbnB1dC5zdGVwRG93
bigpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljY2FmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmpzCkBAIC0w
LDAgKzEsMTIgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyBzdGVwRG93bigpL3N0ZXBVcCgpIGZvciB1
bnN1cHBvcnRlZCB0eXBlcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbnB1dCcpOworaW5wdXQudHlwZSA9ICd0ZXh0JzsKK2lucHV0LnN0ZXAgPSAnMyc7CitpbnB1
dC52YWx1ZSA9ICcyJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgJyJFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5w
dXQuc3RlcERvd24oMCknLCAnIkVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMSInKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsICciRXJyb3I6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBV
cCgwKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIicpOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAxYWZkYi4uMWE1YzI5NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MCBAQAorMjAwOS0xMC0zMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcCgpIGFuZCBzdGVwRG93bigpIGZvcgorICAg
ICAgICB0eXBlPW51bWJlciBhbmQgdHlwZT1yYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUxCisKKyAgICAgICAgT3VyIGltcGxlbWVudGF0
aW9uIG9mIHN0ZXBVcCgpIGFuZCBzdGVwRG93bigpIHJvdW5kcyB0aGUgcmVzdWx0YW50CisgICAg
ICAgIHZhbHVlIHRvIGNvbmZvcm0gdG8gdGhlIHN0ZXAgdmFsdWUuCisgICAgICAgIENoYW5nZSB0
aGUgbnVtYmVyLXN0cmluZyBjb252ZXJzaW9uIG1ldGhvZCBmb3IgUmVuZGVyU2xpZGVyIHRvIGJl
CisgICAgICAgIGNvbnNpc3RlbnQgd2l0aCB0eXBlPW51bWJlci4KKworICAgICAgICBUZXN0czog
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2lucHV0LXN0ZXAtcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxv
dyk6IFVuaWZ5IHRoZSBjb2RlIGZvciBOVU1CRVIgYW5kIFJBTkdFLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VPdmVyZmxvdyk6IFVuaWZ5IHRoZSBjb2RlIGZvciBO
VU1CRVIgYW5kIFJBTkdFLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWlu
aW11bSk6IFJlbmFtZWQgZnJvbSByYW5nZU1pbmltdW0oKSwgYW5kIHN1cHBvcnQgZm9yIE5VTUJF
Ui4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1heGltdW0pOiBSZW5hbWVk
IGZyb20gcmFuZ2VNYXhpbXVtKCksIGFuZCBzdXBwb3J0IGZvciBOVU1CRVIuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2gpOiBVc2Ugc3RlcEJhc2UoKS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91YmxlKToKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0
ZXBVcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwRG93bik6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHN0ZXBVcCgpIGFuZCBzdGVw
RG93bigpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2xpZGVyUmFuZ2U6OlNsaWRlclJhbmdlKTogU3luYyB3aXRoIHJhbmdlTWluaW11
bSgpL3JhbmdlTWF4aW11bSgpIHJlbmFtaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xp
ZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6IFVzZSBmb3JtU3RyaW5nRnJvbURvdWJsZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKTogVXNlIGZv
cm1TdHJpbmdGcm9tRG91YmxlKCkuCisKIDIwMDktMTEtMTkgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgQnVpbGQgZml4LiBObyByZXZpZXcgbmVlZGVkLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGJiOGZkMjYuLmMzNDJlMTggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAg
LTI1OSw2MCArMjYwLDY5IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6dG9vTG9uZygpIGNvbnN0
CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3coKSBjb25zdAogewotICAg
IGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKLSAgICAgICAgZG91YmxlIG1pbiA9IDAuMDsK
LSAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gMC4wOwotICAgICAgICBpZiAoZm9ybVN0cmlu
Z1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbikgJiYgZm9ybVN0cmluZ1RvRG91
YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZG91YmxlVmFs
dWUgPCBtaW47Ci0gICAgfSBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkgeworICAgIGlm
IChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKICAgICAg
ICAgZG91YmxlIGRvdWJsZVZhbHVlOwogICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKHZh
bHVlKCksICZkb3VibGVWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBy
YW5nZU1pbmltdW0oKTsKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IG1pbmltdW0o
KTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6
OnJhbmdlT3ZlcmZsb3coKSBjb25zdAogewotICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIp
IHsKLSAgICAgICAgZG91YmxlIG1heCA9IDAuMDsKLSAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVl
ID0gMC4wOwotICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhB
dHRyKSwgJm1heCkgJiYgZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkp
Ci0gICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPiBtYXg7Ci0gICAgfSBlbHNlIGlmIChp
bnB1dFR5cGUoKSA9PSBSQU5HRSkgeworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwg
aW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKICAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOwogICAg
ICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCi0gICAg
ICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPiByYW5nZU1heGltdW0oKTsKKyAgICAgICAgICAg
IHJldHVybiBkb3VibGVWYWx1ZSA+IG1heGltdW0oKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1kb3VibGUgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VNaW5pbXVtKCkgY29uc3QKK2Rv
dWJsZSBIVE1MSW5wdXRFbGVtZW50OjptaW5pbXVtKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5w
dXRUeXBlKCkgPT0gUkFOR0UpOworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwg
aW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdE1p
bmltdW1Gb3JOdW1iZXIgPSAtREJMX01BWDsKICAgICAvLyBUaGUgcmFuZ2UgdHlwZSdzICJkZWZh
dWx0IG1pbmltdW0iIGlzIDAuCi0gICAgZG91YmxlIG1pbiA9IDAuMDsKKyAgICBzdGF0aWMgY29u
c3QgZG91YmxlIGRlZmF1bHRNaW5pbXVtRm9yUmFuZ2UgPSAwLjA7CisgICAgZG91YmxlIG1pbiA9
IGlucHV0VHlwZSgpID09IFJBTkdFID8gZGVmYXVsdE1pbmltdW1Gb3JSYW5nZSA6IGRlZmF1bHRN
aW5pbXVtRm9yTnVtYmVyOwogICAgIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWlu
QXR0ciksICZtaW4pOwogICAgIHJldHVybiBtaW47CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVt
ZW50OjpyYW5nZU1heGltdW0oKSBjb25zdAorZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6Om1heGlt
dW0oKSBjb25zdAogewotICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgQVNT
RVJUKGlucHV0VHlwZSgpID09IE5VTUJFUiB8fCBpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0TWF4aW11bUZvck51bWJlciA9IERCTF9NQVg7CiAg
ICAgLy8gVGhlIHJhbmdlIHR5cGUncyAiZGVmYXVsdCBtYXhpbXVtIiBpcyAxMDAuCi0gICAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0TWF4aW11bSA9IDEwMC4wOworICAgIHN0YXRpYyBjb25z
dCBkb3VibGUgZGVmYXVsdE1heGltdW1Gb3JSYW5nZSA9IDEwMC4wOworICAgIGRvdWJsZSBkZWZh
dWx0TWF4aW11bSA9IGlucHV0VHlwZSgpID09IFJBTkdFID8gZGVmYXVsdE1heGltdW1Gb3JSYW5n
ZSA6IGRlZmF1bHRNYXhpbXVtRm9yTnVtYmVyOwogICAgIGRvdWJsZSBtYXggPSBkZWZhdWx0TWF4
aW11bTsKICAgICBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCAmbWF4
KTsKLSAgICBjb25zdCBkb3VibGUgbWluID0gcmFuZ2VNaW5pbXVtKCk7Ci0KLSAgICBpZiAobWF4
IDwgbWluKSB7Ci0gICAgICAgIC8vIEEgcmVtZWR5IGZvciB0aGUgaW5jb25zaXN0ZW50IG1pbi9t
YXggdmFsdWVzLgotICAgICAgICAvLyBTZXRzIHRoZSBtYXhtaW11bSB0byB0aGUgZGVmYXVsdCAo
MTAwLjApIG9yIHRoZSBtaW5pbXVtIHZhbHVlLgotICAgICAgICBtYXggPSBtaW4gPCBkZWZhdWx0
TWF4aW11bSA/IGRlZmF1bHRNYXhpbXVtIDogbWluOworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBS
QU5HRSkgeworICAgICAgICAvLyBBIHJlbWVkeSBmb3IgdGhlIGluY29uc2lzdGVudCBtaW4vbWF4
IHZhbHVlcyBmb3IgUkFOR0UuCisgICAgICAgIC8vIFNldHMgdGhlIG1heG1pbXVtIHRvIHRoZSBk
ZWZhdWx0IG9yIHRoZSBtaW5pbXVtIHZhbHVlLgorICAgICAgICBjb25zdCBkb3VibGUgbWluID0g
bWluaW11bSgpOworICAgICAgICBpZiAobWF4IDwgbWluKSB7CisgICAgICAgICAgICBtYXggPSBt
aW4gPCBkZWZhdWx0TWF4aW11bSA/IGRlZmF1bHRNYXhpbXVtIDogbWluOworICAgICAgICB9CiAg
ICAgfQogICAgIHJldHVybiBtYXg7CiB9CiAKK2RvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjpzdGVw
QmFzZSgpIGNvbnN0Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IFJBTkdFKQorICAgICAgICBy
ZXR1cm4gbWluaW11bSgpOworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U3RlcEJhc2UgPSAwLjA7CisgICAgICAgIGRv
dWJsZSBtaW4gPSBkZWZhdWx0U3RlcEJhc2U7CisgICAgICAgIGZvcm1TdHJpbmdUb0RvdWJsZShn
ZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW4pOworICAgICAgICByZXR1cm4gbWluOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCiBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCgpIGNvbnN0CiB7CiAgICAgZG91YmxlIHN0ZXA7
CkBAIC0zMjIsOSArMzMyLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2go
KSBjb25zdAogICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CiAgICAgICAgIGlmICghZm9ybVN0
cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGRvdWJsZSBzdGVwQmFzZSA9IDAuMDsKLSAgICAgICAgZm9ybVN0cmlu
Z1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJnN0ZXBCYXNlKTsKLSAgICAgICAgZG91
YmxlVmFsdWUgPSBmYWJzKGRvdWJsZVZhbHVlIC0gc3RlcEJhc2UpOworICAgICAgICBkb3VibGVW
YWx1ZSA9IGZhYnMoZG91YmxlVmFsdWUgLSBzdGVwQmFzZSgpKTsKICAgICAgICAgaWYgKGlzaW5m
KGRvdWJsZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gZG91
YmxlJ3MgZnJhY3Rpb25hbCBwYXJ0IHNpemUgaXMgREJMX01BTl9ESUctYml0LiAgSWYgdGhlIGN1
cnJlbnQKQEAgLTQwNCw5ICs0MTIsNTkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpnZXRBbGxv
d2VkVmFsdWVTdGVwKGRvdWJsZSogc3RlcCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogICAgICpzdGVwID0gcGFyc2VkICogc3RlcFNjYWxlRmFjdG9yOworICAgIEFTU0VSVCgq
c3RlcCA+IDApOwogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OmFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoZG91YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09
IFJBTkdFKTsKKyAgICBkb3VibGUgc3RlcDsKKyAgICBpZiAoIWdldEFsbG93ZWRWYWx1ZVN0ZXAo
JnN0ZXApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgZG91YmxlIGN1cnJlbnQ7CisgICAgaWYgKCFmb3JtU3RyaW5nVG9Eb3Vi
bGUodmFsdWUoKSwgJmN1cnJlbnQpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIG5ld1ZhbHVlID0gY3VycmVudCAr
IHN0ZXAgKiBjb3VudDsKKyAgICBpZiAoaXNpbmYobmV3VmFsdWUpKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG5ld1Zh
bHVlIDwgbWluaW11bSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIGJhc2UgPSBzdGVwQmFzZSgpOworICAgIG5l
d1ZhbHVlID0gYmFzZSArIHJvdW5kKChuZXdWYWx1ZSAtIGJhc2UpIC8gc3RlcCkgKiBzdGVwOwor
ICAgIGlmIChuZXdWYWx1ZSA+IG1heGltdW0oKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNldFZhbHVlKGZvcm1TdHJpbmdG
cm9tRG91YmxlKG5ld1ZhbHVlKSk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVw
KGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoaW5wdXRUeXBlKCkgIT0gTlVN
QkVSICYmIGlucHV0VHlwZSgpICE9IFJBTkdFKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXBwbHlTdGVwRm9yTnVtYmVyT3JS
YW5nZShuLCBlYyk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcERvd24oaW50IG4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChpbnB1dFR5cGUoKSAhPSBOVU1CRVIgJiYg
aW5wdXRUeXBlKCkgIT0gUkFOR0UpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhcHBseVN0ZXBGb3JOdW1iZXJPclJhbmdlKC1u
LCBlYyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlvQnV0dG9ucyYgY2hlY2tlZFJh
ZGlvQnV0dG9ucyhjb25zdCBIVE1MSW5wdXRFbGVtZW50ICplbGVtZW50KQogewogICAgIGlmIChI
VE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCkBAIC0xOTg1LDYgKzIwNDMs
MTYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25zdAogICAgICAg
ICAgICBpbnB1dFR5cGUoKSAhPSBCVVRUT04gJiYgaW5wdXRUeXBlKCkgIT0gUkVTRVQ7CiB9CiAK
K1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nRnJvbURvdWJsZShkb3VibGUgbnVt
YmVyKQoreworICAgIC8vIEFjY29yZGluZyB0byBIVE1MNSwgInRoZSBiZXN0IHJlcHJlc2VudGF0
aW9uIG9mIHRoZSBudW1iZXIgbiBhcyBhIGZsb2F0aW5nCisgICAgLy8gcG9pbnQgbnVtYmVyIiBp
cyBhIHN0cmluZyBwcm9kdWNlZCBieSBhcHBseWluZyBUb1N0cmluZygpIHRvIG4uCisgICAgRHRv
YUJ1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVuZ3RoOworICAgIGRvdWJsZVRvU3RyaW5n
SW5KYXZhU2NyaXB0Rm9ybWF0KG51bWJlciwgYnVmZmVyLCAmbGVuZ3RoKTsKKyAgICByZXR1cm4g
U3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKK30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpmb3Jt
U3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQogewogICAgIC8v
IFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggODhhODU5Ni4uYmIwZWE2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMDYs
MTYgKzEwNiwyMSBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUKICAgICBib29s
IHJhbmdlVW5kZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgY29uc3Q7
Ci0gICAgLy8gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdHlwZT1yYW5nZS4gIERvbid0
IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCi0gICAgZG91YmxlIHJhbmdlTWluaW11bSgpIGNv
bnN0OwotICAgIC8vIFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUgZm9yIHR5cGU9cmFuZ2UuICBE
b24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5cGVzLgotICAgIC8vIFRoaXMgYWx3YXlzIHJldHVy
bnMgYSB2YWx1ZSB3aGljaCBpcyA8PSByYW5nZU1pbmltdW0oKS4KLSAgICBkb3VibGUgcmFuZ2VN
YXhpbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdHlw
ZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5cGVzLgorICAg
IGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1
ZSBmb3IgdHlwZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5
cGVzLgorICAgIC8vIFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1ZSB3aGljaCBpcyA+PSBtaW5p
bXVtKCkuCisgICAgZG91YmxlIG1heGltdW0oKSBjb25zdDsKICAgICAvLyBTZXRzIHRoZSAiYWxs
b3dlZCB2YWx1ZSBzdGVwIiBkZWZpbmVkIGluIHRoZSBIVE1MIHNwZWMgdG8gdGhlIHNwZWNpZmll
ZCBkb3VibGUgcG9pbnRlci4KICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vICJh
bGxvd2VkIHZhbHVlIHN0ZXAuIgogICAgIGJvb2wgZ2V0QWxsb3dlZFZhbHVlU3RlcChkb3VibGUq
KSBjb25zdDsKICAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZS4KICAgICBib29sIHN0ZXBNaXNtYXRj
aCgpIGNvbnN0OworICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50Ojpz
dGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICB2b2lkIHN0ZXBVcChpbnQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHN0ZXBEb3duKGludCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c3RlcFVwKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBVcCgxLCBlYyk7IH0KKyAgICB2b2lkIHN0
ZXBEb3duKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBEb3duKDEsIGVjKTsgfQogCiAgICAgYm9v
bCBpc1RleHRCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gU1VCTUlUIHx8IG1fdHlw
ZSA9PSBSRVNFVCB8fCBtX3R5cGUgPT0gQlVUVE9OOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFk
aW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUkFESU87IH0KQEAgLTI0OCw2ICsy
NTMsOSBAQCBwdWJsaWM6CiAgICAgLy8gSWYgdGhlIGNvbnZlcnNpb24gZmFpbHMsIHRoZSByZXR1
cm4gdmFsdWUgaXMgZmFsc2UuIFRha2UgY2FyZSB0aGF0IGxlYWRpbmcgb3IgdHJhaWxpbmcgdW5u
ZWNlc3NhcnkgY2hhcmFjdGVycyBtYWtlIGZhaWx1cmVzLiAgVGhpcyByZXR1cm5zIGZhbHNlIGZv
ciBhbiBlbXB0eSBzdHJpbmcgaW5wdXQuCiAgICAgLy8gVGhlIGRvdWJsZSogcGFyYW1ldGVyIG1h
eSBiZSAwLgogICAgIHN0YXRpYyBib29sIGZvcm1TdHJpbmdUb0RvdWJsZShjb25zdCBTdHJpbmcm
LCBkb3VibGUqKTsKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB0byBhIHN0
cmluZy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgIC8vIEhUTUw1J3MgImFsZ29y
aXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIiBmb3IgTlVNQkVSL1JBTkdFIHR5
cGVzLgorICAgIHN0YXRpYyBTdHJpbmcgZm9ybVN0cmluZ0Zyb21Eb3VibGUoZG91YmxlKTsKICAg
ICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhlIElucHV0VHlwZSwgYW5kIHJl
dHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLgogICAgIC8vIEFuIGluc3Rh
bmNlIHBvaW50ZWQgYnkgdGhlIElTT0RhdGVUaW1lKiBwYXJhbWV0ZXIgd2lsbCBoYXZlIHBhcnNl
ZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBpZiB0aGUgcGFyc2luZyBmYWls
cy4gIFRoZSBJU09EYXRlVGltZSogcGFyYW1ldGVyIG1heSBiZSAwLgpAQCAtMjc3LDYgKzI4NSwx
MSBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBjcmVhdGVUZW1w
b3JhcnlGb3JtRm9ySXNJbmRleCgpOwogICAgIC8vIEhlbHBlciBmb3IgZ2V0QWxsb3dlZFZhbHVl
U3RlcCgpOwogICAgIGJvb2wgZ2V0U3RlcFBhcmFtZXRlcnMoZG91YmxlKiBkZWZhdWx0U3RlcCwg
ZG91YmxlKiBzdGVwU2NhbGVGYWN0b3IpIGNvbnN0OworICAgIC8vIEhlbHBlciBmb3Igc3RlcFVw
KCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCB2YWx1ZSAqIGNvdW50IHRvIHRoZSBjdXJyZW50IG51
bWJlci9yYW5nZSB2YWx1ZS4KKyAgICB2b2lkIGFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoZG91
YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgLy8gSGVscGVyIGZvciBhcHBseVN0ZXBG
b3JOdW1iZXJPclJhbmdlKCkuCisgICAgZG91YmxlIHN0ZXBCYXNlKCkgY29uc3Q7CisKICNpZiBF
TkFCTEUoREFUQUxJU1QpCiAgICAgSFRNTERhdGFMaXN0RWxlbWVudCogZGF0YUxpc3QoKSBjb25z
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGM5ZDA4ZTMuLmU2MzUw
MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTcxLDYgKzcxLDExIEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVtZW50IHNl
bGVjdGVkT3B0aW9uOwogI2VuZGlmCiAKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0ZXBV
cChpbiBbT3B0aW9uYWxdIGxvbmcgbikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc3RlcERvd24oaW4gW09wdGlvbmFsXSBsb25n
IG4pCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuY3BwCmluZGV4IGUxOGI0MzMuLmIyZjVjZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcApAQCAtODIsOCArODIsOCBAQCBTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKICAgICB9IGVsc2UKICAgICAgICAgaGFzU3RlcCA9IGVsZW1lbnQt
PmdldEFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXApOwogCi0gICAgbWF4aW11bSA9IGVsZW1lbnQtPnJh
bmdlTWF4aW11bSgpOwotICAgIG1pbmltdW0gPSBlbGVtZW50LT5yYW5nZU1pbmltdW0oKTsKKyAg
ICBtYXhpbXVtID0gZWxlbWVudC0+bWF4aW11bSgpOworICAgIG1pbmltdW0gPSBlbGVtZW50LT5t
aW5pbXVtKCk7CiB9CiAKIGRvdWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZShkb3VibGUgdmFs
dWUpCkBAIC0zNzksNyArMzc5LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKICAgICBib29sIGNsYW1wZWQ7CiAgICAgZG91YmxlIHZhbHVlID0gcmFuZ2UudmFsdWVG
cm9tRWxlbWVudChlbGVtZW50LCAmY2xhbXBlZCk7CiAgICAgaWYgKGNsYW1wZWQpCi0gICAgICAg
IGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7Cisg
ICAgICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKEhUTUxJbnB1dEVsZW1lbnQ6OmZv
cm1TdHJpbmdGcm9tRG91YmxlKHZhbHVlKSk7CiAKICAgICAvLyBMYXlvdXQgd2lsbCB0YWtlIGNh
cmUgb2YgdGhlIHRodW1iJ3Mgc2l6ZSBhbmQgcG9zaXRpb24uCiAgICAgaWYgKCFtX3RodW1iKSB7
CkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRp
b24oaW50IHBvc2l0aW9uKQogICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVy
VmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRl
clBhcnQpCiAgICAgICAgIGZyYWN0aW9uID0gMSAtIGZyYWN0aW9uOwogICAgIGRvdWJsZSB2YWx1
ZSA9IHJhbmdlLmNsYW1wVmFsdWUocmFuZ2UudmFsdWVGcm9tUHJvcG9ydGlvbihmcmFjdGlvbikp
OwotICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVtYmVyKHZhbHVl
KSk7CisgICAgZWxlbWVudC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoSFRNTElucHV0RWxlbWVudDo6
Zm9ybVN0cmluZ0Zyb21Eb3VibGUodmFsdWUpKTsKIAogICAgIC8vIEFsc28gdXBkYXRlIHRoZSBw
b3NpdGlvbiBpZiBhcHByb3ByaWF0ZS4KICAgICBpZiAocG9zaXRpb24gIT0gY3VycmVudFBvc2l0
aW9uKCkpIHsKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44047</attachid>
            <date>2009-11-30 16:49:12 -0800</date>
            <delta_ts>2009-12-07 10:22:20 -0800</delta_ts>
            <desc>Proposed patch (rev.9)</desc>
            <filename>0001-stepupdown-9.patch</filename>
            <type>text/plain</type>
            <size>37486</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MGFhZDZkLi40NTZlNzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTAt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgSFRNTElucHV0RWxl
bWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MQorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtc3RlcC1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1
dC1zdGVwLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1zdGVwLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
c3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qczog
QWRkZWQuCisKIDIwMDktMTEtMzAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lYmVlMjA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
OSBAQAorVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0cyBmb3IgYW4gaW52YWxpZCBjdXJyZW50IHZh
bHVlOgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitz
dGVwRG93bigiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0
ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBE
b3duKG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
bnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBEb3duKHVu
ZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCh1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
KSB3aXRoIHZhbHVlPTA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVwKDIpIHdpdGgg
dmFsdWU9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitzdGVwVXAoLTEpIHdpdGggdmFsdWU9
MzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitzdGVwRG93bigtMSkgd2l0aCB2YWx1ZT0yOgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MToKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIi0xIgorc3RlcERvd24oLTEpIHdpdGggdmFsdWU9LTE6CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjEiCitzdGVwVXAoMSwgMykgd2l0aCB2YWx1ZT0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWZvbzoKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjEiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTEgc3RlcD0wOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMiIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MiBzdGVwPS0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMyIKK3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWFueToK
K1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3RlcERv
d24oKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIK
K3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcERv
d24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0
aW9uIDExLgorc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5w
dXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwRG93bigyKSB3
aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwRG93bigyKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorc3Rl
cFVwKCkgd2l0aCB2YWx1ZT0tMSBtYXg9MCBzdGVwPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIw
Igorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVw
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQu
c3RlcFVwKDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnZhbHVlIGlzICItMSIKK3N0ZXBVcCgyKSB3aXRoIHZh
bHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgpIHdp
dGggdmFsdWU9MCBtaW49LTEgc3RlcD0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6
CitQQVNTIGlucHV0LnZhbHVlIGlzICIxMDAiCitzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWlu
PTAgc3RlcD0xMDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEwIgorc3RlcFVwKCkgd2l0aCB2YWx1
ZT04OSBtaW49MCBtYXg9OTkgc3RlcD0xMDoKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBV
cCg5OTk5OTkpIHdpdGggdmFsdWU9MWUrMzA4IHN0ZXA9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjFlKzMwOCIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjFlKzMwOCIKK3N0ZXBVcCgzKSB3aXRoIHZh
bHVlPTAgc3RlcD0wLjMzMzMzMzMzMzMzMzMzMzMzOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIK
K3N0ZXBVcCgxMCkgd2l0aCB2YWx1ZT0xIHN0ZXA9MC4xOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MiIKK3N0ZXBVcCgpIHgxMCB3aXRoIHZhbHVlPTIgc3RlcD0wLjE6CitQQVNTIGlucHV0LnZhbHVl
IGlzICIzIgorc3RlcFVwKDI1NSkgd2l0aCB2YWx1ZT0wIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5
MjE1Njg2Mjc0NTA5ODA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcERvd24oKSB4MjU1
IHdpdGggdmFsdWU9MSBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIxNTY4NjI3NDUwOTgwOgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVt
YmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4MGNhNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1udW1iZXIu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLW51bWJlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc3RlcC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZmY5NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
ODkgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHR5cGU9cmFuZ2UuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0cyBmb3IgYW4gaW52YWxpZCBjdXJyZW50IHZh
bHVlOgorUEFTUyBpbnB1dC5zdGVwRG93bigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlucHV0LnN0ZXBVcCgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitz
dGVwRG93bigiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0
ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBE
b3duKG51bGwpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
bnVsbCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBEb3duKHVu
ZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCh1
bmRlZmluZWQpIHdpdGggdmFsdWU9MDoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAiCitzdGVwVXAo
KSB3aXRoIHZhbHVlPTAgbWluPS0xMDA6CitQQVNTIGlucHV0LnZhbHVlIGlzICIxIgorc3RlcFVw
KDIpIHdpdGggdmFsdWU9MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMiCitzdGVwVXAoLTEpIHdp
dGggdmFsdWU9MzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIiCitzdGVwRG93bigtMSkgd2l0aCB2
YWx1ZT0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9
MToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIi0xIgorc3RlcERvd24oLTEpIHdpdGggdmFsdWU9LTE6
CitQQVNTIGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDoKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoMSwgMykgd2l0aCB2YWx1ZT0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMCIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWZvbzoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjEiCitzdGVwVXAoKSB3aXRoIHZhbHVlPTEgc3RlcD0wOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMiIKK3N0ZXBVcCgpIHdpdGggdmFsdWU9MiBzdGVwPS0xOgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMyIKK3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBz
dGVwPWFueToKK1BBU1MgaW5wdXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
VkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBpbnB1dC5zdGVwVXAoKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
Lgorc3RlcERvd24oKSB3aXRoIHZhbHVlPTEgbWluPTAgc3RlcD0xOgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMCIKK3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1pbj0wIHN0ZXA9MToKK1BBU1MgaW5w
dXQuc3RlcERvd24oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MToK
K1BBU1MgaW5wdXQuc3RlcERvd24oMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NU
QVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitzdGVw
RG93bigyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgorUEFTUyBpbnB1dC5zdGVwRG93bigy
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExLgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0tMSBtaW49LTEwMCBtYXg9MCBzdGVwPTE6CitQQVNT
IGlucHV0LnZhbHVlIGlzICIwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIG1pbj0tMTAwIG1heD0w
IHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0x
IG1pbj0tMTAwIG1heD0wIHN0ZXA9MToKK1BBU1MgaW5wdXQuc3RlcFVwKDIpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGlu
cHV0LnZhbHVlIGlzICItMSIKK3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOgor
UEFTUyBpbnB1dC5zdGVwVXAoMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEgc3Rl
cD0yOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6CitQQVNTIGlucHV0LnZhbHVlIGlz
ICIxMDAiCitzdGVwRG93bigpIHdpdGggdmFsdWU9MTkgbWluPTAgc3RlcD0xMDoKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjEwIgorc3RlcFVwKCkgd2l0aCB2YWx1ZT04OSBtaW49MCBtYXg9OTkgc3Rl
cD0xMDoKK1BBU1MgaW5wdXQuc3RlcFVwKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK3N0ZXBVcCg5OTk5OTkpIHdpdGggdmFsdWU9
MWUrMzA4IG1pbj0wIG1heD0xLjFlKzMwOCBzdGVwPTE6CitQQVNTIGlucHV0LnZhbHVlIGlzICIx
ZSszMDgiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxZSszMDgiCitzdGVwVXAoMykgd2l0aCB2YWx1
ZT0wIHN0ZXA9MC4zMzMzMzMzMzMzMzMzMzMzMzoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEiCitz
dGVwVXAoMTApIHdpdGggdmFsdWU9MSBzdGVwPTAuMToKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIi
CitzdGVwVXAoKSB4MTAgd2l0aCB2YWx1ZT0yIHN0ZXA9MC4xOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMyIKK3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBzdGVwPTAuMDAzOTIx
NTY4NjI3NDUwOTgwOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMSIKK3N0ZXBEb3duKCkgeDI1NSB3
aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1z
dGVwLXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtcmFuZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzZiMzc0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zdGVwLXJhbmdlLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNGE2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVuc3VwcG9y
dGVkIHR5cGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnN0
ZXBEb3duKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcERvd24oMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgaW5wdXQuc3RlcFVw
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlv
biAxMS4KK1BBU1MgaW5wdXQuc3RlcFVwKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjNjYWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zdGVwLXVuc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LXN0ZXAtbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvaW5wdXQtc3RlcC1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODBiNDg5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LXN0ZXAtbnVtYmVyLmpzCkBAIC0wLDAgKzEsMjEyIEBACitkZXNjcmlw
dGlvbignVGVzdHMgc3RlcERvd24oKS9zdGVwVXAoKSBmb3IgdHlwZT1udW1iZXIuJyk7CisKK3Zh
ciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CitpbnB1dC50eXBlID0g
J251bWJlcic7Cit2YXIgaW52YWxpZFN0YXRlRXJyID0gJyJFcnJvcjogSU5WQUxJRF9TVEFURV9F
UlI6IERPTSBFeGNlcHRpb24gMTEiJzsKKworZGVidWcoJ1Rlc3RzIGZvciBhbiBpbnZhbGlkIGN1
cnJlbnQgdmFsdWU6Jyk7CitpbnB1dC52YWx1ZSA9ICcnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0
ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgp
JywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTm9uLW51bWJlciBhcmd1bWVudAorZGVidWcoJ3N0
ZXBEb3duKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0
LnN0ZXBEb3duKCJmb28iKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVi
dWcoJ3N0ZXBVcCgiZm9vIikgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKCJmb28iKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVidWcoJ3N0ZXBEb3duKG51bGwp
IHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBEb3duKG51bGwpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKG51bGwpIHdpdGggdmFsdWU9MDonKTsK
K2lucHV0LnN0ZXBVcChudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKwor
ZGVidWcoJ3N0ZXBEb3duKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcERv
d24odW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsKKworZGVidWco
J3N0ZXBVcCh1bmRlZmluZWQpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCh1bmRlZmlu
ZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCisvLyBEZWZhdWx0IHN0ZXAg
dmFsdWUgZm9yIHR5cGU9bnVtYmVyIGlzIDEuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0w
OicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTE6Jyk7Citp
bnB1dC5zdGVwVXAoMik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKK2RlYnVn
KCdzdGVwVXAoLTEpIHdpdGggdmFsdWU9MzonKTsKK2lucHV0LnN0ZXBVcCgtMSk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwRG93bigtMSkgd2l0aCB2YWx1
ZT0yOicpOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSIn
KTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MTonKTsKK2lucHV0LnN0ZXBEb3du
KDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworZGVidWcoJ3N0ZXBEb3du
KC0xKSB3aXRoIHZhbHVlPS0xOicpOworaW5wdXQuc3RlcERvd24oLTEpOworc2hvdWxkQmUoJ2lu
cHV0LnZhbHVlJywgJyIwIicpOworCisvLyBFeHRyYSBhcmd1bWVudHMgYXJlIGlnbm9yZWQuCitk
ZWJ1Zygnc3RlcFVwKDEsIDIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0LnN0ZXBVcCgxLCAyKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgxLCAzKSB3
aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93bigxLCAzKTsKK3Nob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMCInKTsKKworLy8gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdXNlZCBmb3IgaW52YWxp
ZCBzdGVwIHZhbHVlcy4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1mb286Jyk7
CitpbnB1dC52YWx1ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnZm9vJzsKK2lucHV0LnN0ZXBVcCgp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKCkgd2l0
aCB2YWx1ZT0xIHN0ZXA9MDonKTsKK2lucHV0LnN0ZXAgPSAnMCc7CitpbnB1dC5zdGVwVXAoKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMiInKTsKKworZGVidWcoJ3N0ZXBVcCgpIHdpdGgg
dmFsdWU9MiBzdGVwPS0xOicpOworaW5wdXQuc3RlcCA9ICctMSc7CitpbnB1dC5zdGVwVXAoKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKKworLy8gTm8gc3RlcCB2YWx1ZQorZGVi
dWcoJ3N0ZXBEb3duKCkgYW5kIHN0ZXBVcCgpIHdpdGggdmFsdWU9MCBzdGVwPWFueTonKTsKK2lu
cHV0LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcCA9ICdhbnknOworc2hvdWxkVGhyb3coJ2lucHV0
LnN0ZXBEb3duKCknLCBpbnZhbGlkU3RhdGVFcnIpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBV
cCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKworLy8gTWluaW11bSBsaW1pdAorZGVidWcoJ3N0ZXBE
b3duKCkgd2l0aCB2YWx1ZT0xIG1pbj0wIHN0ZXA9MTonKTsKK2lucHV0Lm1pbiA9ICcwJzsKK2lu
cHV0LnN0ZXAgPSAnMSc7CitpbnB1dC52YWx1ZSA9ICcxJzsKK2lucHV0LnN0ZXBEb3duKCk7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CitkZWJ1Zygnc3RlcERvd24oKSB3aXRoIHZh
bHVlPTAgbWluPTAgc3RlcD0xOicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCBp
bnZhbGlkU3RhdGVFcnIpOworCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIG1pbj0w
IHN0ZXA9MTonKTsKK2lucHV0LnZhbHVlID0gJzEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBE
b3duKDIpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSIn
KTsKKworLy8gU2hvdWxkIG5vdCBiZSAtSW5maW5pdHkuCitkZWJ1Zygnc3RlcERvd24oMikgd2l0
aCB2YWx1ZT0xIHN0ZXA9REJMX01BWDonKTsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWlu
ID0gJyc7CitpbnB1dC5zdGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRo
cm93KCdpbnB1dC5zdGVwRG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1heGltdW0g
bGltaXQKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1heD0wIHN0ZXA9MTonKTsKK2lu
cHV0LnZhbHVlID0gJy0xJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJzAnOworaW5w
dXQuc3RlcCA9ICcxJzsKK2lucHV0LnN0ZXBVcCgpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywg
JyIwIicpOworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9MCBtYXg9MCBzdGVwPTE6Jyk7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCitkZWJ1Zygn
c3RlcFVwKDIpIHdpdGggdmFsdWU9LTEgbWF4PTAgc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAn
LTEnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRTdGF0ZUVycik7Citz
aG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIi0xIicpOworCisvLyBTaG91bGQgbm90IGJlIEluZmlu
aXR5LgorZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFYOicpOworaW5w
dXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMS43OTc2OTMx
MzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScsIGludmFsaWRT
dGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHN0ZXBNaXNtYXRjaCB2YWx1
ZXMKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xIHN0ZXA9MjonKTsKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0xJzsKK2lucHV0LnN0ZXAgPSAnMic7CitpbnB1
dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lucHV0LnN0ZXBE
b3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAo
OSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9ICc5JzsKK2lu
cHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcxMCc7CitpbnB1
dC5zdGVwVXAoOSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwMCInKTsKKworZGVidWco
J3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xOSBtaW49MCBzdGVwPTEwOicpOworaW5wdXQudmFsdWUg
PSAnMTknOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTAi
Jyk7CisKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJlc3VsdCB3b3Vs
ZCBiZSA+IG1heC4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTg5IG1pbj0wIG1heD05OSBz
dGVwPTEwOicpOworaW5wdXQudmFsdWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5JzsKK3Nob3Vs
ZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIEh1Z2UgdmFs
dWUgYW5kIHNtYWxsIHN0ZXAKK2RlYnVnKCdzdGVwVXAoOTk5OTk5KSB3aXRoIHZhbHVlPTFlKzMw
OCBzdGVwPTE6Jyk7CitpbnB1dC52YWx1ZSA9ICcxZSszMDgnOworaW5wdXQubWluID0gJyc7Citp
bnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoOTk5OTk5KTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworaW5wdXQuc3RlcERvd24oOTk5
OTk5KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMWUrMzA4IicpOworCisvLyBGcmFjdGlv
bmFsIG51bWJlcnMKK2RlYnVnKCdzdGVwVXAoMykgd2l0aCB2YWx1ZT0wIHN0ZXA9MC4zMzMzMzMz
MzMzMzMzMzMzMzonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJyc7CitpbnB1
dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAnMC4zMzMzMzMzMzMzMzMzMzMzMyc7CitpbnB1dC5z
dGVwVXAoMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVw
VXAoMTApIHdpdGggdmFsdWU9MSBzdGVwPTAuMTonKTsKK2lucHV0LnN0ZXAgPSAnMC4xJzsKK2lu
cHV0LnN0ZXBVcCgxMCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CitkZWJ1Zygn
c3RlcFVwKCkgeDEwIHdpdGggdmFsdWU9MiBzdGVwPTAuMTonKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTA7IGkrKykKKyAgICBpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMyInKTsKKworZGVidWcoJ3N0ZXBVcCgyNTUpIHdpdGggdmFsdWU9MCBtaW49MCBtYXg9MSBz
dGVwPTAuMDAzOTIxNTY4NjI3NDUwOTgwOicpOworaW5wdXQudmFsdWUgPSAnMCc7CitpbnB1dC5t
aW4gPSAnMCc7CitpbnB1dC5tYXggPSAnMSc7CitpbnB1dC5zdGVwID0gJzAuMDAzOTIxNTY4NjI3
NDUwOTgwJzsKK2lucHV0LnN0ZXBVcCgyNTUpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIx
IicpOworZGVidWcoJ3N0ZXBEb3duKCkgeDI1NSB3aXRoIHZhbHVlPTEgbWluPTAgbWF4PTEgc3Rl
cD0wLjAwMzkyMTU2ODYyNzQ1MDk4MDonKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMjU1OyBpKysp
CisgICAgaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMCInKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1zdGVwLXJhbmdlLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc0NWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtc3RlcC1yYW5nZS5qcwpAQCAt
MCwwICsxLDIxMyBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9y
IHR5cGU9cmFuZ2UuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK3ZhciBpbnZhbGlkU3RhdGVFcnIgPSAnIkVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInOworCitkZWJ1ZygnVGVz
dHMgZm9yIGFuIGludmFsaWQgY3VycmVudCB2YWx1ZTonKTsKK2lucHV0LnZhbHVlID0gJyc7Citz
aG91bGRUaHJvdygnaW5wdXQuc3RlcERvd24oKScsIGludmFsaWRTdGF0ZUVycik7CitzaG91bGRU
aHJvdygnaW5wdXQuc3RlcFVwKCknLCBpbnZhbGlkU3RhdGVFcnIpOworCisvLyBOb24tbnVtYmVy
IGFyZ3VtZW50CitkZWJ1Zygnc3RlcERvd24oImZvbyIpIHdpdGggdmFsdWU9MDonKTsKK2lucHV0
LnZhbHVlID0gJzAnOworaW5wdXQuc3RlcERvd24oImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKCJmb28iKSB3aXRoIHZhbHVlPTA6Jyk7Citp
bnB1dC5zdGVwVXAoImZvbyIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIwIicpOworCitk
ZWJ1Zygnc3RlcERvd24obnVsbCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcERvd24obnVs
bCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK2RlYnVnKCdzdGVwVXAobnVs
bCkgd2l0aCB2YWx1ZT0wOicpOworaW5wdXQuc3RlcFVwKG51bGwpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIwIicpOworCitkZWJ1Zygnc3RlcERvd24odW5kZWZpbmVkKSB3aXRoIHZhbHVl
PTA6Jyk7CitpbnB1dC5zdGVwRG93bih1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyIwIicpOworCitkZWJ1Zygnc3RlcFVwKHVuZGVmaW5lZCkgd2l0aCB2YWx1ZT0wOicpOwor
aW5wdXQuc3RlcFVwKHVuZGVmaW5lZCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7
CisKKy8vIERlZmF1bHQgc3RlcCB2YWx1ZSBmb3IgdHlwZT1yYW5nZSBpcyAxLgorZGVidWcoJ3N0
ZXBVcCgpIHdpdGggdmFsdWU9MCBtaW49LTEwMDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5w
dXQubWluID0gJy0xMDAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMikgd2l0aCB2YWx1ZT0xOicpOworaW5wdXQuc3Rl
cFVwKDIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIzIicpOworCitkZWJ1Zygnc3RlcFVw
KC0xKSB3aXRoIHZhbHVlPTM6Jyk7CitpbnB1dC5zdGVwVXAoLTEpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIyIicpOworCitkZWJ1Zygnc3RlcERvd24oLTEpIHdpdGggdmFsdWU9MjonKTsK
K2lucHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2Rl
YnVnKCdzdGVwRG93bigyKSB3aXRoIHZhbHVlPTE6Jyk7CitpbnB1dC5zdGVwRG93bigyKTsKK3No
b3VsZEJlKCdpbnB1dC52YWx1ZScsICciLTEiJyk7CisKK2RlYnVnKCdzdGVwRG93bigtMSkgd2l0
aCB2YWx1ZT0tMTonKTsKK2lucHV0LnN0ZXBEb3duKC0xKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMCInKTsKKworLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgorZGVidWcoJ3N0
ZXBVcCgxLCAyKSB3aXRoIHZhbHVlPTA6Jyk7CitpbnB1dC5zdGVwVXAoMSwgMik7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVnKCdzdGVwVXAoMSwgMykgd2l0aCB2YWx1
ZT0xOicpOworaW5wdXQuc3RlcERvd24oMSwgMyk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAn
IjAiJyk7CisKKy8vIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHVzZWQgZm9yIGludmFsaWQgc3RlcCB2
YWx1ZXMuCitkZWJ1Zygnc3RlcFVwKCkgd2l0aCB2YWx1ZT0wIHN0ZXA9Zm9vOicpOworaW5wdXQu
dmFsdWUgPSAnMCc7CitpbnB1dC5zdGVwID0gJ2Zvbyc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3Vs
ZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKKworZGVidWcoJ3N0ZXBVcCgpIHdpdGggdmFsdWU9
MSBzdGVwPTA6Jyk7CitpbnB1dC5zdGVwID0gJzAnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjIiJyk7CisKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTIg
c3RlcD0tMTonKTsKK2lucHV0LnN0ZXAgPSAnLTEnOworaW5wdXQuc3RlcFVwKCk7CitzaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKKy8vIE5vIHN0ZXAgdmFsdWUKK2RlYnVnKCdzdGVw
RG93bigpIGFuZCBzdGVwVXAoKSB3aXRoIHZhbHVlPTAgc3RlcD1hbnk6Jyk7CitpbnB1dC52YWx1
ZSA9ICcwJzsKK2lucHV0LnN0ZXAgPSAnYW55JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93
bigpJywgaW52YWxpZFN0YXRlRXJyKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGlu
dmFsaWRTdGF0ZUVycik7CisKKy8vIE1pbmltdW0gbGltaXQKK2RlYnVnKCdzdGVwRG93bigpIHdp
dGggdmFsdWU9MSBtaW49MCBzdGVwPTE6Jyk7CitpbnB1dC5taW4gPSAnMCc7CitpbnB1dC5zdGVw
ID0gJzEnOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5zdGVwRG93bigpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIwIicpOworZGVidWcoJ3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0wIG1p
bj0wIHN0ZXA9MTonKTsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigpJywgaW52YWxpZFN0
YXRlRXJyKTsKKworZGVidWcoJ3N0ZXBEb3duKDIpIHdpdGggdmFsdWU9MSBtaW49MCBzdGVwPTE6
Jyk7CitpbnB1dC52YWx1ZSA9ICcxJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwRG93bigyKScs
IGludmFsaWRTdGF0ZUVycik7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKKy8v
IEltcGxpY2l0IG1pbmltdW0uCitkZWJ1Zygnc3RlcERvd24oMikgd2l0aCB2YWx1ZT0xIHN0ZXA9
REJMX01BWDonKTsKK2lucHV0LnZhbHVlID0gJzEnOworaW5wdXQubWluID0gJyc7CitpbnB1dC5z
dGVwID0gJzEuNzk3NjkzMTM0ODYyMzE1NmUrMzA4JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVw
RG93bigyKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8vIE1heGltdW0gbGltaXQKK2RlYnVnKCdz
dGVwVXAoKSB3aXRoIHZhbHVlPS0xIG1pbj0tMTAwIG1heD0wIHN0ZXA9MTonKTsKK2lucHV0LnZh
bHVlID0gJy0xJzsKK2lucHV0Lm1pbiA9ICctMTAwJzsKK2lucHV0Lm1heCA9ICcwJzsKK2lucHV0
LnN0ZXAgPSAnMSc7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICci
MCInKTsKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xMDAgbWF4PTAgc3RlcD0x
OicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgaW52YWxpZFN0YXRlRXJyKTsKKwor
ZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPS0xIG1pbj0tMTAwIG1heD0wIHN0ZXA9MTonKTsK
K2lucHV0LnZhbHVlID0gJy0xJzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoMiknLCBpbnZh
bGlkU3RhdGVFcnIpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyItMSInKTsKKworLy8gSW1w
bGljaXQgbWF4aW11bQorZGVidWcoJ3N0ZXBVcCgyKSB3aXRoIHZhbHVlPTEgc3RlcD1EQkxfTUFY
OicpOworaW5wdXQudmFsdWUgPSAnMSc7CitpbnB1dC5tYXggPSAnJzsKK2lucHV0LnN0ZXAgPSAn
MS43OTc2OTMxMzQ4NjIzMTU2ZSszMDgnOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgyKScs
IGludmFsaWRTdGF0ZUVycik7CisKKy8vIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHN0ZXBNaXNt
YXRjaCB2YWx1ZXMKK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTAgbWluPS0xIHN0ZXA9Mjon
KTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJy0xJzsKK2lucHV0LnN0ZXAgPSAn
Mic7CitpbnB1dC5zdGVwVXAoKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMyInKTsKK2lu
cHV0LnN0ZXBEb3duKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEiJyk7CisKK2RlYnVn
KCdzdGVwVXAoOSkgd2l0aCB2YWx1ZT05IG1pbj0wIHN0ZXA9MTA6Jyk7CitpbnB1dC52YWx1ZSA9
ICc5JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcnOworaW5wdXQuc3RlcCA9ICcx
MCc7CitpbnB1dC5zdGVwVXAoOSk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEwMCInKTsK
KworZGVidWcoJ3N0ZXBEb3duKCkgd2l0aCB2YWx1ZT0xOSBtaW49MCBzdGVwPTEwOicpOworaW5w
dXQudmFsdWUgPSAnMTknOworaW5wdXQuc3RlcERvd24oKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciMTAiJyk7CisKKy8vIHZhbHVlICsgc3RlcCBpcyA8PSBtYXgsIGJ1dCByb3VuZGVkIHJl
c3VsdCB3b3VsZCBiZSA+IG1heC4KK2RlYnVnKCdzdGVwVXAoKSB3aXRoIHZhbHVlPTg5IG1pbj0w
IG1heD05OSBzdGVwPTEwOicpOworaW5wdXQudmFsdWUgPSAnODknOworaW5wdXQubWF4ID0gJzk5
JzsKK3Nob3VsZFRocm93KCdpbnB1dC5zdGVwVXAoKScsIGludmFsaWRTdGF0ZUVycik7CisKKy8v
IEh1Z2UgdmFsdWUgYW5kIHNtYWxsIHN0ZXAKK2RlYnVnKCdzdGVwVXAoOTk5OTk5KSB3aXRoIHZh
bHVlPTFlKzMwOCBtaW49MCBtYXg9MS4xZSszMDggc3RlcD0xOicpOworaW5wdXQudmFsdWUgPSAn
MWUrMzA4JzsKK2lucHV0Lm1pbiA9ICcwJzsKK2lucHV0Lm1heCA9ICcxLjFlKzMwOCc7CitpbnB1
dC5zdGVwID0gJzEnOworaW5wdXQuc3RlcFVwKDk5OTk5OSk7CitzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnIjFlKzMwOCInKTsKK2lucHV0LnN0ZXBEb3duKDk5OTk5OSk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjFlKzMwOCInKTsKKworLy8gRnJhY3Rpb25hbCBudW1iZXJzCitkZWJ1Zygn
c3RlcFVwKDMpIHdpdGggdmFsdWU9MCBzdGVwPTAuMzMzMzMzMzMzMzMzMzMzMzM6Jyk7CitpbnB1
dC52YWx1ZSA9ICcwJzsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQubWF4ID0gJyc7CitpbnB1dC5z
dGVwID0gJzAuMzMzMzMzMzMzMzMzMzMzMzMnOworaW5wdXQuc3RlcFVwKDMpOworc2hvdWxkQmUo
J2lucHV0LnZhbHVlJywgJyIxIicpOworCitkZWJ1Zygnc3RlcFVwKDEwKSB3aXRoIHZhbHVlPTEg
c3RlcD0wLjE6Jyk7CitpbnB1dC5zdGVwID0gJzAuMSc7CitpbnB1dC5zdGVwVXAoMTApOworc2hv
dWxkQmUoJ2lucHV0LnZhbHVlJywgJyIyIicpOworZGVidWcoJ3N0ZXBVcCgpIHgxMCB3aXRoIHZh
bHVlPTIgc3RlcD0wLjE6Jyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgaW5w
dXQuc3RlcFVwKCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjMiJyk7CisKK2RlYnVnKCdz
dGVwVXAoMjU1KSB3aXRoIHZhbHVlPTAgbWluPTAgbWF4PTEgc3RlcD0wLjAwMzkyMTU2ODYyNzQ1
MDk4MDonKTsKK2lucHV0LnZhbHVlID0gJzAnOworaW5wdXQubWluID0gJzAnOworaW5wdXQubWF4
ID0gJzEnOworaW5wdXQuc3RlcCA9ICcwLjAwMzkyMTU2ODYyNzQ1MDk4MCc7CitpbnB1dC5zdGVw
VXAoMjU1KTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMSInKTsKK2RlYnVnKCdzdGVwRG93
bigpIHgyNTUgd2l0aCB2YWx1ZT0xIG1pbj0wIG1heD0xIHN0ZXA9MC4wMDM5MjE1Njg2Mjc0NTA5
ODA6Jyk7Citmb3IgKHZhciBpID0gMDsgaSA8IDI1NTsgaSsrKQorICAgIGlucHV0LnN0ZXBEb3du
KCk7CitzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjAiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvaW5wdXQtc3RlcC11bnN1cHBvcnRlZC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOWNjYWYxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXN0ZXAtdW5zdXBwb3J0ZWQuanMKQEAgLTAs
MCArMSwxMiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHN0ZXBEb3duKCkvc3RlcFVwKCkgZm9yIHVu
c3VwcG9ydGVkIHR5cGVzJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lucHV0Jyk7CitpbnB1dC50eXBlID0gJ3RleHQnOworaW5wdXQuc3RlcCA9ICczJzsKK2lucHV0
LnZhbHVlID0gJzInOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBEb3duKCknLCAnIkVycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKK3Nob3VsZFRocm93KCdpbnB1
dC5zdGVwRG93bigwKScsICciRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExIicpOworc2hvdWxkVGhyb3coJ2lucHV0LnN0ZXBVcCgpJywgJyJFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CitzaG91bGRUaHJvdygnaW5wdXQuc3RlcFVw
KDApJywgJyJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiJyk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYjBlMjUzLi45MmQ0YmU4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDA5LTEwLTMwICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkgZm9yCisgICAg
ICAgIHR5cGU9bnVtYmVyIGFuZCB0eXBlPXJhbmdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTEKKworICAgICAgICBPdXIgaW1wbGVtZW50YXRp
b24gb2Ygc3RlcFVwKCkgYW5kIHN0ZXBEb3duKCkgcm91bmRzIHRoZSByZXN1bHRhbnQKKyAgICAg
ICAgdmFsdWUgdG8gY29uZm9ybSB0byB0aGUgc3RlcCB2YWx1ZS4KKyAgICAgICAgQ2hhbmdlIHRo
ZSBudW1iZXItc3RyaW5nIGNvbnZlcnNpb24gbWV0aG9kIGZvciBSZW5kZXJTbGlkZXIgdG8gYmUK
KyAgICAgICAgY29uc2lzdGVudCB3aXRoIHR5cGU9bnVtYmVyLgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2Zvcm1zL2lucHV0LXN0ZXAtbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvaW5wdXQtc3RlcC1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0
LXN0ZXAtdW5zdXBwb3J0ZWQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlVW5kZXJmbG93
KTogVW5pZnkgdGhlIGNvZGUgZm9yIE5VTUJFUiBhbmQgUkFOR0UuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJmbG93KTogVW5pZnkgdGhlIGNvZGUgZm9yIE5V
TUJFUiBhbmQgUkFOR0UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjptaW5p
bXVtKTogUmVuYW1lZCBmcm9tIHJhbmdlTWluaW11bSgpLCBhbmQgc3VwcG9ydCBmb3IgTlVNQkVS
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11bSk6IFJlbmFtZWQg
ZnJvbSByYW5nZU1heGltdW0oKSwgYW5kIHN1cHBvcnQgZm9yIE5VTUJFUi4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCk6IFVzZSBzdGVwQmFzZSgpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwbHlTdGVwRm9yTnVtYmVyT3JSYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXApOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcERvd24pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ0Zyb21Eb3VibGUpOgorICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3Rl
cFVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBBZGQgc3RlcFVwKCkgYW5kIHN0ZXBE
b3duKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UpOiBTeW5jIHdpdGggcmFuZ2VNaW5pbXVt
KCkvcmFuZ2VNYXhpbXVtKCkgcmVuYW1pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlk
ZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogVXNlIGZvcm1TdHJpbmdGcm9tRG91YmxlKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24pOiBVc2UgZm9y
bVN0cmluZ0Zyb21Eb3VibGUoKS4KKwogMjAwOS0xMS0zMCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZp
bm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICB3eCBidWlsZCBmaXgsIGFkZCBoZWFkZXIg
bmVlZGVkIGZvciB3eCBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBiYjhm
ZDI2Li4yZTRmOTA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC02NSw2ICs2NSw3
IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvZHRvYS5oPgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0yNTksNjAgKzI2MCw2OCBAQCBib29sIEhUTUxJ
bnB1dEVsZW1lbnQ6OnRvb0xvbmcoKSBjb25zdAogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJh
bmdlVW5kZXJmbG93KCkgY29uc3QKIHsKLSAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7
Ci0gICAgICAgIGRvdWJsZSBtaW4gPSAwLjA7Ci0gICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9
IDAuMDsKLSAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0
ciksICZtaW4pICYmIGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQot
ICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgbWluOwotICAgIH0gZWxzZSBpZiAoaW5w
dXRUeXBlKCkgPT0gUkFOR0UpIHsKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlu
cHV0VHlwZSgpID09IFJBTkdFKSB7CiAgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICAg
ICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQotICAgICAg
ICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgcmFuZ2VNaW5pbXVtKCk7CisgICAgICAgICAgICBy
ZXR1cm4gZG91YmxlVmFsdWUgPCBtaW5pbXVtKCk7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJmbG93KCkgY29uc3QKIHsKLSAg
ICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7Ci0gICAgICAgIGRvdWJsZSBtYXggPSAwLjA7
Ci0gICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IDAuMDsKLSAgICAgICAgaWYgKGZvcm1TdHJp
bmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgpICYmIGZvcm1TdHJpbmdUb0Rv
dWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZh
bHVlID4gbWF4OwotICAgIH0gZWxzZSBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKKyAgICBp
ZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKSB7CiAgICAg
ICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2
YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlID4g
cmFuZ2VNYXhpbXVtKCk7CisgICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPiBtYXhpbXVt
KCk7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotZG91YmxlIEhUTUxJbnB1dEVsZW1l
bnQ6OnJhbmdlTWluaW11bSgpIGNvbnN0Citkb3VibGUgSFRNTElucHV0RWxlbWVudDo6bWluaW11
bSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBBU1NF
UlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBz
dGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRNaW5pbXVtRm9yTnVtYmVyID0gLURCTF9NQVg7CiAg
ICAgLy8gVGhlIHJhbmdlIHR5cGUncyAiZGVmYXVsdCBtaW5pbXVtIiBpcyAwLgotICAgIGRvdWJs
ZSBtaW4gPSAwLjA7CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0TWluaW11bUZvclJh
bmdlID0gMC4wOworICAgIGRvdWJsZSBtaW4gPSBpbnB1dFR5cGUoKSA9PSBSQU5HRSA/IGRlZmF1
bHRNaW5pbXVtRm9yUmFuZ2UgOiBkZWZhdWx0TWluaW11bUZvck51bWJlcjsKICAgICBmb3JtU3Ry
aW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluKTsKICAgICByZXR1cm4gbWlu
OwogfQogCi1kb3VibGUgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VNYXhpbXVtKCkgY29uc3QKK2Rv
dWJsZSBIVE1MSW5wdXRFbGVtZW50OjptYXhpbXVtKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5w
dXRUeXBlKCkgPT0gUkFOR0UpOworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBOVU1CRVIgfHwg
aW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdE1h
eGltdW1Gb3JOdW1iZXIgPSBEQkxfTUFYOwogICAgIC8vIFRoZSByYW5nZSB0eXBlJ3MgImRlZmF1
bHQgbWF4aW11bSIgaXMgMTAwLgotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdE1heGlt
dW0gPSAxMDAuMDsKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRNYXhpbXVtRm9yUmFu
Z2UgPSAxMDAuMDsKKyAgICBkb3VibGUgZGVmYXVsdE1heGltdW0gPSBpbnB1dFR5cGUoKSA9PSBS
QU5HRSA/IGRlZmF1bHRNYXhpbXVtRm9yUmFuZ2UgOiBkZWZhdWx0TWF4aW11bUZvck51bWJlcjsK
ICAgICBkb3VibGUgbWF4ID0gZGVmYXVsdE1heGltdW07CiAgICAgZm9ybVN0cmluZ1RvRG91Ymxl
KGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1heCk7Ci0gICAgY29uc3QgZG91YmxlIG1pbiA9IHJh
bmdlTWluaW11bSgpOwotCi0gICAgaWYgKG1heCA8IG1pbikgewotICAgICAgICAvLyBBIHJlbWVk
eSBmb3IgdGhlIGluY29uc2lzdGVudCBtaW4vbWF4IHZhbHVlcy4KLSAgICAgICAgLy8gU2V0cyB0
aGUgbWF4bWltdW0gdG8gdGhlIGRlZmF1bHQgKDEwMC4wKSBvciB0aGUgbWluaW11bSB2YWx1ZS4K
LSAgICAgICAgbWF4ID0gbWluIDwgZGVmYXVsdE1heGltdW0gPyBkZWZhdWx0TWF4aW11bSA6IG1p
bjsKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKKyAgICAgICAgLy8gQSByZW1lZHkg
Zm9yIHRoZSBpbmNvbnNpc3RlbnQgbWluL21heCB2YWx1ZXMgZm9yIFJBTkdFLgorICAgICAgICAv
LyBTZXRzIHRoZSBtYXhtaW11bSB0byB0aGUgZGVmYXVsdCBvciB0aGUgbWluaW11bSB2YWx1ZS4K
KyAgICAgICAgY29uc3QgZG91YmxlIG1pbiA9IG1pbmltdW0oKTsKKyAgICAgICAgaWYgKG1heCA8
IG1pbikKKyAgICAgICAgICAgIG1heCA9IG1pbiA8IGRlZmF1bHRNYXhpbXVtID8gZGVmYXVsdE1h
eGltdW0gOiBtaW47CiAgICAgfQogICAgIHJldHVybiBtYXg7CiB9CiAKK2RvdWJsZSBIVE1MSW5w
dXRFbGVtZW50OjpzdGVwQmFzZSgpIGNvbnN0Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IFJB
TkdFKQorICAgICAgICByZXR1cm4gbWluaW11bSgpOworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBO
VU1CRVIpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U3RlcEJhc2UgPSAw
LjA7CisgICAgICAgIGRvdWJsZSBtaW4gPSBkZWZhdWx0U3RlcEJhc2U7CisgICAgICAgIGZvcm1T
dHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW4pOworICAgICAgICByZXR1
cm4gbWluOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaCgpIGNvbnN0CiB7CiAg
ICAgZG91YmxlIHN0ZXA7CkBAIC0zMjIsOSArMzMxLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50
OjpzdGVwTWlzbWF0Y2goKSBjb25zdAogICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CiAgICAg
ICAgIGlmICghZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRvdWJsZSBzdGVwQmFzZSA9IDAuMDsKLSAg
ICAgICAgZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJnN0ZXBCYXNl
KTsKLSAgICAgICAgZG91YmxlVmFsdWUgPSBmYWJzKGRvdWJsZVZhbHVlIC0gc3RlcEJhc2UpOwor
ICAgICAgICBkb3VibGVWYWx1ZSA9IGZhYnMoZG91YmxlVmFsdWUgLSBzdGVwQmFzZSgpKTsKICAg
ICAgICAgaWYgKGlzaW5mKGRvdWJsZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgLy8gZG91YmxlJ3MgZnJhY3Rpb25hbCBwYXJ0IHNpemUgaXMgREJMX01BTl9ESUct
Yml0LiAgSWYgdGhlIGN1cnJlbnQKQEAgLTQwNCw5ICs0MTEsNTkgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSogc3RlcCkgY29uc3QKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgICpzdGVwID0gcGFyc2VkICogc3RlcFNjYWxlRmFjdG9y
OworICAgIEFTU0VSVCgqc3RlcCA+IDApOwogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoZG91YmxlIGNvdW50LCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8
IGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICBkb3VibGUgc3RlcDsKKyAgICBpZiAoIWdldEFs
bG93ZWRWYWx1ZVN0ZXAoJnN0ZXApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIGN1cnJlbnQ7CisgICAgaWYgKCFm
b3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmN1cnJlbnQpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIG5ld1Zh
bHVlID0gY3VycmVudCArIHN0ZXAgKiBjb3VudDsKKyAgICBpZiAoaXNpbmYobmV3VmFsdWUpKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKG5ld1ZhbHVlIDwgbWluaW11bSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlIGJhc2UgPSBzdGVw
QmFzZSgpOworICAgIG5ld1ZhbHVlID0gYmFzZSArIHJvdW5kKChuZXdWYWx1ZSAtIGJhc2UpIC8g
c3RlcCkgKiBzdGVwOworICAgIGlmIChuZXdWYWx1ZSA+IG1heGltdW0oKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNldFZh
bHVlKGZvcm1TdHJpbmdGcm9tRG91YmxlKG5ld1ZhbHVlKSk7Cit9CisKK3ZvaWQgSFRNTElucHV0
RWxlbWVudDo6c3RlcFVwKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoaW5w
dXRUeXBlKCkgIT0gTlVNQkVSICYmIGlucHV0VHlwZSgpICE9IFJBTkdFKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXBwbHlT
dGVwRm9yTnVtYmVyT3JSYW5nZShuLCBlYyk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6
c3RlcERvd24oaW50IG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChpbnB1dFR5cGUo
KSAhPSBOVU1CRVIgJiYgaW5wdXRUeXBlKCkgIT0gUkFOR0UpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhcHBseVN0ZXBGb3JO
dW1iZXJPclJhbmdlKC1uLCBlYyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlvQnV0
dG9ucyYgY2hlY2tlZFJhZGlvQnV0dG9ucyhjb25zdCBIVE1MSW5wdXRFbGVtZW50ICplbGVtZW50
KQogewogICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCkBA
IC0xOTg1LDYgKzIwNDIsMTYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp3aWxsVmFsaWRhdGUo
KSBjb25zdAogICAgICAgICAgICBpbnB1dFR5cGUoKSAhPSBCVVRUT04gJiYgaW5wdXRUeXBlKCkg
IT0gUkVTRVQ7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nRnJvbURv
dWJsZShkb3VibGUgbnVtYmVyKQoreworICAgIC8vIEFjY29yZGluZyB0byBIVE1MNSwgInRoZSBi
ZXN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgbiBhcyBhIGZsb2F0aW5nCisgICAgLy8g
cG9pbnQgbnVtYmVyIiBpcyBhIHN0cmluZyBwcm9kdWNlZCBieSBhcHBseWluZyBUb1N0cmluZygp
IHRvIG4uCisgICAgRHRvYUJ1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVuZ3RoOworICAg
IGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KG51bWJlciwgYnVmZmVyLCAmbGVuZ3Ro
KTsKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKK30KKwogYm9vbCBIVE1MSW5w
dXRFbGVtZW50Ojpmb3JtU3RyaW5nVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSog
b3V0KQogewogICAgIC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggODhhODU5Ni4uYmIwZWE2OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCkBAIC0xMDYsMTYgKzEwNiwyMSBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIFZhbGlkaXR5
U3RhdGUKICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCByYW5nZU92
ZXJmbG93KCkgY29uc3Q7Ci0gICAgLy8gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdHlw
ZT1yYW5nZS4gIERvbid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCi0gICAgZG91YmxlIHJh
bmdlTWluaW11bSgpIGNvbnN0OwotICAgIC8vIFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUgZm9y
IHR5cGU9cmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5cGVzLgotICAgIC8vIFRo
aXMgYWx3YXlzIHJldHVybnMgYSB2YWx1ZSB3aGljaCBpcyA8PSByYW5nZU1pbmltdW0oKS4KLSAg
ICBkb3VibGUgcmFuZ2VNYXhpbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWluaW11
bSB2YWx1ZSBmb3IgdHlwZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90
aGVyIHR5cGVzLgorICAgIGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0
aGUgbWF4aW11bSB2YWx1ZSBmb3IgdHlwZT1udW1iZXIgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRo
aXMgZm9yIG90aGVyIHR5cGVzLgorICAgIC8vIFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1ZSB3
aGljaCBpcyA+PSBtaW5pbXVtKCkuCisgICAgZG91YmxlIG1heGltdW0oKSBjb25zdDsKICAgICAv
LyBTZXRzIHRoZSAiYWxsb3dlZCB2YWx1ZSBzdGVwIiBkZWZpbmVkIGluIHRoZSBIVE1MIHNwZWMg
dG8gdGhlIHNwZWNpZmllZCBkb3VibGUgcG9pbnRlci4KICAgICAvLyBSZXR1cm5zIGZhbHNlIGlm
IHRoZXJlIGlzIG5vICJhbGxvd2VkIHZhbHVlIHN0ZXAuIgogICAgIGJvb2wgZ2V0QWxsb3dlZFZh
bHVlU3RlcChkb3VibGUqKSBjb25zdDsKICAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZS4KICAgICBi
b29sIHN0ZXBNaXNtYXRjaCgpIGNvbnN0OworICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBIVE1M
SW5wdXRFbGVtZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4KKyAgICB2b2lkIHN0ZXBVcChp
bnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0ZXBEb3duKGludCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgc3RlcFVwKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBVcCgxLCBlYyk7
IH0KKyAgICB2b2lkIHN0ZXBEb3duKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHN0ZXBEb3duKDEsIGVj
KTsgfQogCiAgICAgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
U1VCTUlUIHx8IG1fdHlwZSA9PSBSRVNFVCB8fCBtX3R5cGUgPT0gQlVUVE9OOyB9CiAgICAgdmly
dHVhbCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUkFESU87
IH0KQEAgLTI0OCw2ICsyNTMsOSBAQCBwdWJsaWM6CiAgICAgLy8gSWYgdGhlIGNvbnZlcnNpb24g
ZmFpbHMsIHRoZSByZXR1cm4gdmFsdWUgaXMgZmFsc2UuIFRha2UgY2FyZSB0aGF0IGxlYWRpbmcg
b3IgdHJhaWxpbmcgdW5uZWNlc3NhcnkgY2hhcmFjdGVycyBtYWtlIGZhaWx1cmVzLiAgVGhpcyBy
ZXR1cm5zIGZhbHNlIGZvciBhbiBlbXB0eSBzdHJpbmcgaW5wdXQuCiAgICAgLy8gVGhlIGRvdWJs
ZSogcGFyYW1ldGVyIG1heSBiZSAwLgogICAgIHN0YXRpYyBib29sIGZvcm1TdHJpbmdUb0RvdWJs
ZShjb25zdCBTdHJpbmcmLCBkb3VibGUqKTsKKyAgICAvLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVk
IG51bWJlciB0byBhIHN0cmluZy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgIC8v
IEhUTUw1J3MgImFsZ29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIiBmb3Ig
TlVNQkVSL1JBTkdFIHR5cGVzLgorICAgIHN0YXRpYyBTdHJpbmcgZm9ybVN0cmluZ0Zyb21Eb3Vi
bGUoZG91YmxlKTsKICAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgYXMgdGhlIElu
cHV0VHlwZSwgYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzdWNjZXNzZnVsbHkgcGFyc2VkLgog
ICAgIC8vIEFuIGluc3RhbmNlIHBvaW50ZWQgYnkgdGhlIElTT0RhdGVUaW1lKiBwYXJhbWV0ZXIg
d2lsbCBoYXZlIHBhcnNlZCB2YWx1ZXMgYW5kIGJlCiAgICAgLy8gbW9kaWZpZWQgZXZlbiBpZiB0
aGUgcGFyc2luZyBmYWlscy4gIFRoZSBJU09EYXRlVGltZSogcGFyYW1ldGVyIG1heSBiZSAwLgpA
QCAtMjc3LDYgKzI4NSwxMSBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBjcmVhdGVUZW1wb3JhcnlGb3JtRm9ySXNJbmRleCgpOwogICAgIC8vIEhlbHBlciBmb3Ig
Z2V0QWxsb3dlZFZhbHVlU3RlcCgpOwogICAgIGJvb2wgZ2V0U3RlcFBhcmFtZXRlcnMoZG91Ymxl
KiBkZWZhdWx0U3RlcCwgZG91YmxlKiBzdGVwU2NhbGVGYWN0b3IpIGNvbnN0OworICAgIC8vIEhl
bHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gIEFkZHMgc3RlcCB2YWx1ZSAqIGNvdW50IHRv
IHRoZSBjdXJyZW50IG51bWJlci9yYW5nZSB2YWx1ZS4KKyAgICB2b2lkIGFwcGx5U3RlcEZvck51
bWJlck9yUmFuZ2UoZG91YmxlIGNvdW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgLy8gSGVscGVy
IGZvciBhcHBseVN0ZXBGb3JOdW1iZXJPclJhbmdlKCkuCisgICAgZG91YmxlIHN0ZXBCYXNlKCkg
Y29uc3Q7CisKICNpZiBFTkFCTEUoREFUQUxJU1QpCiAgICAgSFRNTERhdGFMaXN0RWxlbWVudCog
ZGF0YUxpc3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4
IGM5ZDA4ZTMuLmU2MzUwMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTcxLDYg
KzcxLDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxP
cHRpb25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwogI2VuZGlmCiAKKyAgICAgICAgdm9pZCAgICAg
ICAgICAgICAgIHN0ZXBVcChpbiBbT3B0aW9uYWxdIGxvbmcgbikKKyAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc3RlcERvd24oaW4g
W09wdGlvbmFsXSBsb25nIG4pCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVz
c2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IGUxOGI0MzMuLmIyZjVjZWYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtODIsOCArODIsOCBAQCBTbGlkZXJSYW5nZTo6U2xpZGVy
UmFuZ2UoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAgICB9IGVsc2UKICAgICAgICAgaGFz
U3RlcCA9IGVsZW1lbnQtPmdldEFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXApOwogCi0gICAgbWF4aW11
bSA9IGVsZW1lbnQtPnJhbmdlTWF4aW11bSgpOwotICAgIG1pbmltdW0gPSBlbGVtZW50LT5yYW5n
ZU1pbmltdW0oKTsKKyAgICBtYXhpbXVtID0gZWxlbWVudC0+bWF4aW11bSgpOworICAgIG1pbmlt
dW0gPSBlbGVtZW50LT5taW5pbXVtKCk7CiB9CiAKIGRvdWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBW
YWx1ZShkb3VibGUgdmFsdWUpCkBAIC0zNzksNyArMzc5LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6
OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBib29sIGNsYW1wZWQ7CiAgICAgZG91YmxlIHZhbHVl
ID0gcmFuZ2UudmFsdWVGcm9tRWxlbWVudChlbGVtZW50LCAmY2xhbXBlZCk7CiAgICAgaWYgKGNs
YW1wZWQpCi0gICAgICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVt
YmVyKHZhbHVlKSk7CisgICAgICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKEhUTUxJ
bnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdGcm9tRG91YmxlKHZhbHVlKSk7CiAKICAgICAvLyBMYXlv
dXQgd2lsbCB0YWtlIGNhcmUgb2YgdGhlIHRodW1iJ3Mgc2l6ZSBhbmQgcG9zaXRpb24uCiAgICAg
aWYgKCFtX3RodW1iKSB7CkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OnNl
dFZhbHVlRm9yUG9zaXRpb24oaW50IHBvc2l0aW9uKQogICAgIGlmIChzdHlsZSgpLT5hcHBlYXJh
bmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQpCiAgICAgICAgIGZyYWN0aW9uID0gMSAtIGZyYWN0aW9uOwog
ICAgIGRvdWJsZSB2YWx1ZSA9IHJhbmdlLmNsYW1wVmFsdWUocmFuZ2UudmFsdWVGcm9tUHJvcG9y
dGlvbihmcmFjdGlvbikpOwotICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmlu
Zzo6bnVtYmVyKHZhbHVlKSk7CisgICAgZWxlbWVudC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoSFRN
TElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ0Zyb21Eb3VibGUodmFsdWUpKTsKIAogICAgIC8vIEFs
c28gdXBkYXRlIHRoZSBwb3NpdGlvbiBpZiBhcHByb3ByaWF0ZS4KICAgICBpZiAocG9zaXRpb24g
IT0gY3VycmVudFBvc2l0aW9uKCkpIHsKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="25820"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>