<?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>61368</bug_id>
          
          <creation_ts>2011-05-24 09:11:04 -0700</creation_ts>
          <short_desc>SVGAnimation should use direct unit animation for SVGLength</short_desc>
          <delta_ts>2011-06-22 02:20:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>408907</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-24 09:11:04 -0700</bug_when>
    <thetext>SVGAnimation should use direct unit animation for SVGLength including parsing and calculation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408910</commentid>
    <comment_count>1</comment_count>
      <attachid>94624</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-24 09:13:47 -0700</bug_when>
    <thetext>Created attachment 94624
Patch

First patch for comments an discussions, not for landing. I need to add tests before I upload a patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408996</commentid>
    <comment_count>2</comment_count>
      <attachid>94624</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-05-24 11:02:14 -0700</bug_when>
    <thetext>Comment on attachment 94624
Patch

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

Looks good to me.

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:186
&gt; +    case AnimatedNumberList:
&gt; +    case AnimatedLengthList:

Why this reorering? You should keep it in alphabetical order, no?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:545
&gt; +        m_animatedType-&gt;length() = new SVGLength(lengthModeForAnimatedLengthAttribute(attributeName()), baseString);

This looks weird...

&gt; Source/WebCore/svg/SVGAnimatedLengthAnimator.h:42
&gt; +        type-&gt;length() = new SVGLength(m_lengthMode, string);

This looks weird...

&gt; Source/WebCore/svg/SVGAnimatedType.h:39
&gt; +    SVGLength*&amp; length()

Why don&apos;t you return SVGLength&amp; here? aka. return *m_data.length;

&gt; Source/WebCore/svg/SVGAnimationElement.cpp:163
&gt; +        for (unsigned i = 0; i &lt; m_values.size(); ++i)
&gt; +            m_values[i] = m_values[i].stripWhiteSpace();

Looks unrelated.

&gt; Source/WebCore/svg/SVGAnimator.h:34
&gt; +        return adoptPtr(new SVGAnimatedLengthAnimator(contextElement));

you should still add the switch here, and only implement case AnimatedLength/default: return adoptPtr(new SVGAnimatedLengthAnimator...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411828</commentid>
    <comment_count>3</comment_count>
      <attachid>95258</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 05:02:19 -0700</bug_when>
    <thetext>Created attachment 95258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411829</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-28 05:05:12 -0700</bug_when>
    <thetext>Attachment 95258 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1

Source/WebCore/svg/SVGAnimatedLength.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/svg/SVGAnimatedLength.h:46:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedLength.h:48:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedLength.h:49:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedLength.h:51:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedLength.h:51:  The parameter name &quot;animated&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedTypeAnimator.h:36:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedTypeAnimator.h:37:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedTypeAnimator.h:39:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/svg/SVGAnimatedTypeAnimator.h:39:  The parameter name &quot;animated&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 10 in 67 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411830</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 05:10:00 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 95258 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1
&gt; 
&gt; Source/WebCore/svg/SVGAnimatedLength.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Testing correct order. But because the order was already there, I expect build problems.

&gt; Source/WebCore/svg/SVGAnimatedLength.h:46:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
removed locally.

&gt; Source/WebCore/svg/SVGAnimatedLength.h:48:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedLength.h:49:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedLength.h:51:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedLength.h:51:  The parameter name &quot;animated&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedTypeAnimator.h:36:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedTypeAnimator.h:37:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedTypeAnimator.h:39:  The parameter name &quot;to&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebCore/svg/SVGAnimatedTypeAnimator.h:39:  The parameter name &quot;animated&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Total errors found: 10 in 67 files

I think these names are useful. Otherwise it is hard to differ between the arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411831</commentid>
    <comment_count>6</comment_count>
      <attachid>95258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-28 05:12:40 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8748263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411832</commentid>
    <comment_count>7</comment_count>
      <attachid>95258</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-28 05:13:47 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8747312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411835</commentid>
    <comment_count>8</comment_count>
      <attachid>95258</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-05-28 05:20:44 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8740622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411836</commentid>
    <comment_count>9</comment_count>
      <attachid>95258</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-05-28 05:30:32 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8743525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411838</commentid>
    <comment_count>10</comment_count>
      <attachid>95258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-28 06:14:55 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8748273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411841</commentid>
    <comment_count>11</comment_count>
      <attachid>95258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-28 07:03:36 -0700</bug_when>
    <thetext>Comment on attachment 95258
Patch

Attachment 95258 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8736876</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411846</commentid>
    <comment_count>12</comment_count>
      <attachid>95261</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 08:29:27 -0700</bug_when>
    <thetext>Created attachment 95261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411849</commentid>
    <comment_count>13</comment_count>
      <attachid>95261</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-05-28 08:54:54 -0700</bug_when>
    <thetext>Comment on attachment 95261
Patch

Attachment 95261 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8667063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411857</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 09:35:53 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 95261 [details])
&gt; Attachment 95261 [details] did not pass gtk-ews (gtk):
&gt; Output: http://queues.webkit.org/results/8667063

Hm. Not sure why Gtk fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411858</commentid>
    <comment_count>15</comment_count>
      <attachid>95264</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 09:45:43 -0700</bug_when>
    <thetext>Created attachment 95264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411891</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 13:36:10 -0700</bug_when>
    <thetext>Another comment. Can you add a test with keyboard inputs? would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411893</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 13:36:38 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Another comment. Can you add a test with keyboard inputs? would be great.

Wrong bug, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411960</commentid>
    <comment_count>18</comment_count>
      <attachid>95264</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-05-29 06:59:34 -0700</bug_when>
    <thetext>Comment on attachment 95264
Patch

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

It&apos;s a great start, I still have some comments though that lead to r-:

&gt; Source/WebCore/ChangeLog:11
&gt; +
&gt; +        The goal is to move the main animation logic for SVG units from SVGAnimateElement into the corresponding SVGAnimated* files.
&gt; +        Starting with SVGLength on this patch. SVGAnimateElement will just work with the generic type SVGAnimatedType. SVGAnimator
&gt; +        coordinates the connection from SVGAnimatedType to the SVG unit animators like SVGAnimatedLengthAnimator in SVGAnimatedLength.h.
&gt; +

I think you should make it much more clear, that you&apos;re going away from any-&gt;string-&gt;any operation mode for animations, but rather directly animate &quot;any&quot; w/o string roundtrips.

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:125
&gt; +static inline SVGLengthMode lengthModeForAnimatedLengthAttribute(const QualifiedName&amp; attrName)

Does this method really belong here? How about moving it to SVGLength as static function?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:448
&gt; +        m_animator = SVGAnimator::create(AnimatedLength, targetElement);

This is just called, once right? We&apos;re not recreating SVGAnimator on every animation step anymore, right?
Can we assert here, that m_animator is null? Are we properly destructing the animator at some point?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:449
&gt; +        static_cast&lt;SVGAnimatedLengthAnimator*&gt;(m_animator.get())-&gt;setSVGLengthMode(lengthModeForAnimatedLengthAttribute(attributeName()));

I&apos;m wondering whether this logic could be folded into the SVGAnimator::create code, by just passing the attributeName() as another constructor parameter.
If other types don&apos;t need to know the attribute name they can just ignore the third ctor param...

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:492
&gt; +        m_animator = SVGAnimator::create(AnimatedLength, targetElement);
&gt; +        static_cast&lt;SVGAnimatedLengthAnimator*&gt;(m_animator.get())-&gt;setSVGLengthMode(lengthModeForAnimatedLengthAttribute(attributeName()));

Ditto.

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:545
&gt; +        m_animatedType = SVGAnimatedType::create(AnimatedLength);
&gt; +        m_animatedType-&gt;setLength(new SVGLength(lengthModeForAnimatedLengthAttribute(attributeName()), baseString));

How about adding SVGAnimatedType::createLength() which takes another LengthMode and const String&amp; parameter, and hides this code?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:584
&gt; +    // TODO: Distance calculation should be done in SVGAnimatedTypeAnimator.

Can&apos;t you fix this directly, and add a calculateDistance method? Or is it too much work, to move from from the current approach?

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:36
&gt; +    OwnPtr&lt;SVGAnimatedType&gt; type = SVGAnimatedType::create(AnimatedLength);
&gt; +    type-&gt;setLength(new SVGLength(m_lengthMode, string));

Using SVGAnimatedType::createLength(m_lengthMode, string) seems better here. See suggestion above.

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:60
&gt; +void SVGAnimatedLengthAnimator::calculateAnimatedValue(SVGSMILElement* smilElement, float percentage, unsigned repeat,

s/repeat/repeatCount/ ?

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:62
&gt; +                                                       bool fromPropertyInherits, bool toPropertyInherits)

s/fromPropertyInherits/inheritFromValue/ ?

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:82
&gt; +        SVGLength tempFrom = SVGLength(m_lengthMode, fromLengthString);

These temporary objects aren&apos;t good, I&apos;d say try following:
static inline SVGLength&amp; sharedSVGLength(LengthMode mode, const String&amp; valueAsString)
{
    DEFINE_STATIC_LOCAL(SVGLength, sharedLength, ());
    sharedLength.setValueAsString(mode, valueAsString);
    return sharedLength;
}

Of course you&apos;ll need to add setValueAsString(LengthMode, const String&amp;) which does the same as the ctor SVGLength(LengthMode, const String&amp;).
This way you can just use:
fromLength = sharedSVGLength(m_lengthMode, fromLengthString).value(m_contextElement);
here, and avoid the cost of creating/destructing a SVGLength object.

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:89
&gt; +        SVGLength tempTo = SVGLength(m_lengthMode, toLengthString);
&gt; +        toLength = tempTo.value(m_contextElement); 

Ditto.

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:106
&gt; +        animated-&gt;length().setValue(number, m_contextElement, ec);

I&apos;d store SVGLength&amp; animatedLength = animated-&gt;length(); in a local variable on top.

&gt; Source/WebCore/svg/SVGAnimatedLength.h:52
&gt; +    virtual void calculateAnimatedValue(SVGSMILElement*, float percentage, unsigned repeat,
&gt; +                                        OwnPtr&lt;SVGAnimatedType&gt;&amp; fromValue, OwnPtr&lt;SVGAnimatedType&gt;&amp; toValue, OwnPtr&lt;SVGAnimatedType&gt;&amp; animatedValue,
&gt; +                                        bool fromPropertyInherits, bool toPropertyInherits);

Same parameter renamings should be done here.

&gt; Source/WebCore/svg/SVGAnimatedType.h:50
&gt; +    void setLength(SVGLength* length)
&gt; +    {
&gt; +        ASSERT(m_type == AnimatedLength);
&gt; +        m_data.length = length;
&gt; +    }

If you add a createLength() function here, you can completely remove setLength().

&gt; Source/WebCore/svg/SVGAnimatedType.h:57
&gt; +    

You have to manually destruct the object here, the SVGAnimatedType dtor is missing, which invokes the correct operator delete, based on the m_type.
Currently you&apos;re leaking.

&gt; Source/WebCore/svg/SVGAnimationElement.cpp:163
&gt; +        for (unsigned i = 0; i &lt; m_values.size(); ++i)
&gt; +            m_values[i] = m_values[i].stripWhiteSpace();

Why is this needed?

&gt; LayoutTests/svg/animations/script-tests/svglength-animation-LengthModeWidth.js:37
&gt; +    shouldBeCloseEnough(&quot;rect.width.baseVal.value&quot;, &quot;200&quot;, 0.01);

I&apos;d remove the baseVal checks from all tests, only check the animVal, otherwhise they are wrong as soon as we implement animVal support for real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411979</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-29 10:24:04 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 95264 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95264&amp;action=review
&gt; 
&gt; It&apos;s a great start, I still have some comments though that lead to r-:
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +
&gt; &gt; +        The goal is to move the main animation logic for SVG units from SVGAnimateElement into the corresponding SVGAnimated* files.
&gt; &gt; +        Starting with SVGLength on this patch. SVGAnimateElement will just work with the generic type SVGAnimatedType. SVGAnimator
&gt; &gt; +        coordinates the connection from SVGAnimatedType to the SVG unit animators like SVGAnimatedLengthAnimator in SVGAnimatedLength.h.
&gt; &gt; +
&gt; 
&gt; I think you should make it much more clear, that you&apos;re going away from any-&gt;string-&gt;any operation mode for animations, but rather directly animate &quot;any&quot; w/o string roundtrips.
We stil do the any-&gt;string-&gt;any operation. This is just another step toward avoiding this operation. But sure, I can comment about this.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:125
&gt; &gt; +static inline SVGLengthMode lengthModeForAnimatedLengthAttribute(const QualifiedName&amp; attrName)
&gt; 
&gt; Does this method really belong here? How about moving it to SVGLength as static function?
Will try it.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:448
&gt; &gt; +        m_animator = SVGAnimator::create(AnimatedLength, targetElement);
&gt; 
&gt; This is just called, once right? We&apos;re not recreating SVGAnimator on every animation step anymore, right?
&gt; Can we assert here, that m_animator is null? Are we properly destructing the animator at some point?
Will do it.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:449
&gt; &gt; +        static_cast&lt;SVGAnimatedLengthAnimator*&gt;(m_animator.get())-&gt;setSVGLengthMode(lengthModeForAnimatedLengthAttribute(attributeName()));
&gt; 
&gt; I&apos;m wondering whether this logic could be folded into the SVGAnimator::create code, by just passing the attributeName() as another constructor parameter.
&gt; If other types don&apos;t need to know the attribute name they can just ignore the third ctor param...
with moving lengthModeForAnimatedLengthAttribute we could do that, yes.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:492
&gt; &gt; +        m_animator = SVGAnimator::create(AnimatedLength, targetElement);
&gt; &gt; +        static_cast&lt;SVGAnimatedLengthAnimator*&gt;(m_animator.get())-&gt;setSVGLengthMode(lengthModeForAnimatedLengthAttribute(attributeName()));
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:545
&gt; &gt; +        m_animatedType = SVGAnimatedType::create(AnimatedLength);
&gt; &gt; +        m_animatedType-&gt;setLength(new SVGLength(lengthModeForAnimatedLengthAttribute(attributeName()), baseString));
&gt; 
&gt; How about adding SVGAnimatedType::createLength() which takes another LengthMode and const String&amp; parameter, and hides this code?
Ok.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimateElement.cpp:584
&gt; &gt; +    // TODO: Distance calculation should be done in SVGAnimatedTypeAnimator.
&gt; 
&gt; Can&apos;t you fix this directly, and add a calculateDistance method? Or is it too much work, to move from from the current approach?
No. This doesn&apos;t work right now. At this point the animator was not created and we can&apos;t move this operation to SVGAnimatedTypeAnimator. I&apos;ll fix this after the moving patches.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:36
&gt; &gt; +    OwnPtr&lt;SVGAnimatedType&gt; type = SVGAnimatedType::create(AnimatedLength);
&gt; &gt; +    type-&gt;setLength(new SVGLength(m_lengthMode, string));
&gt; 
&gt; Using SVGAnimatedType::createLength(m_lengthMode, string) seems better here. See suggestion above.
Yes.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:60
&gt; &gt; +void SVGAnimatedLengthAnimator::calculateAnimatedValue(SVGSMILElement* smilElement, float percentage, unsigned repeat,
&gt; 
&gt; s/repeat/repeatCount/ ?
Ok. I&apos;ll do that.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:62
&gt; &gt; +                                                       bool fromPropertyInherits, bool toPropertyInherits)
&gt; 
&gt; s/fromPropertyInherits/inheritFromValue/ ?
This is not quite correct. The boolean just informs if the property can inherit or not.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:82
&gt; &gt; +        SVGLength tempFrom = SVGLength(m_lengthMode, fromLengthString);
&gt; 
&gt; These temporary objects aren&apos;t good, I&apos;d say try following:
&gt; static inline SVGLength&amp; sharedSVGLength(LengthMode mode, const String&amp; valueAsString)
&gt; {
&gt;     DEFINE_STATIC_LOCAL(SVGLength, sharedLength, ());
&gt;     sharedLength.setValueAsString(mode, valueAsString);
&gt;     return sharedLength;
&gt; }
Ok. I&apos;ll give it a try.

&gt; 
&gt; Of course you&apos;ll need to add setValueAsString(LengthMode, const String&amp;) which does the same as the ctor SVGLength(LengthMode, const String&amp;).
&gt; This way you can just use:
&gt; fromLength = sharedSVGLength(m_lengthMode, fromLengthString).value(m_contextElement);
&gt; here, and avoid the cost of creating/destructing a SVGLength object.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:89
&gt; &gt; +        SVGLength tempTo = SVGLength(m_lengthMode, toLengthString);
&gt; &gt; +        toLength = tempTo.value(m_contextElement); 
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.cpp:106
&gt; &gt; +        animated-&gt;length().setValue(number, m_contextElement, ec);
&gt; 
&gt; I&apos;d store SVGLength&amp; animatedLength = animated-&gt;length(); in a local variable on top.
Ok.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedLength.h:52
&gt; &gt; +    virtual void calculateAnimatedValue(SVGSMILElement*, float percentage, unsigned repeat,
&gt; &gt; +                                        OwnPtr&lt;SVGAnimatedType&gt;&amp; fromValue, OwnPtr&lt;SVGAnimatedType&gt;&amp; toValue, OwnPtr&lt;SVGAnimatedType&gt;&amp; animatedValue,
&gt; &gt; +                                        bool fromPropertyInherits, bool toPropertyInherits);
&gt; 
&gt; Same parameter renamings should be done here.
I try to find a better name.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedType.h:50
&gt; &gt; +    void setLength(SVGLength* length)
&gt; &gt; +    {
&gt; &gt; +        ASSERT(m_type == AnimatedLength);
&gt; &gt; +        m_data.length = length;
&gt; &gt; +    }
&gt; 
&gt; If you add a createLength() function here, you can completely remove setLength().
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedType.h:57
&gt; &gt; +    
&gt; 
&gt; You have to manually destruct the object here, the SVGAnimatedType dtor is missing, which invokes the correct operator delete, based on the m_type.
&gt; Currently you&apos;re leaking.
Oh, good catch.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimationElement.cpp:163
&gt; &gt; +        for (unsigned i = 0; i &lt; m_values.size(); ++i)
&gt; &gt; +            m_values[i] = m_values[i].stripWhiteSpace();
&gt; 
&gt; Why is this needed?
I described it in the ChangeLog. Take this example: values=&quot;  3px ;   4px;5px&quot; This would be splitted into the following strings: &quot;  3px&quot;, &quot;   4px&quot; and &quot;5px&quot;. For SVGLength just the last value is correct. So we have to delete all whitespaces before and after the value. This was done in SVGAnimateElement for every value in the past. Even for &quot;from&quot;, &quot;to&quot; and &quot;by&quot;. But that is incorrect. If we have from=&quot;    4px&quot;, the parser should treat this as a failure, like we do it for x=&quot;   4px&quot;.

&gt; 
&gt; &gt; LayoutTests/svg/animations/script-tests/svglength-animation-LengthModeWidth.js:37
&gt; &gt; +    shouldBeCloseEnough(&quot;rect.width.baseVal.value&quot;, &quot;200&quot;, 0.01);
&gt; 
&gt; I&apos;d remove the baseVal checks from all tests, only check the animVal, otherwhise they are wrong as soon as we implement animVal support for real.
Correct. Thats why I&apos;d leave them in. This way we have of course to change a lot of tests once we differ between them, but we will have a lot of tests that make sure that they are set correctly.
Btw. we do it that way on all animation tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419270</commentid>
    <comment_count>20</comment_count>
      <attachid>95264</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-11 23:50:14 -0700</bug_when>
    <thetext>Comment on attachment 95264
Patch

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

Uploading a new patch which addresses your comments above today.

&gt;&gt;&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:62
&gt;&gt;&gt; +                                                       bool fromPropertyInherits, bool toPropertyInherits)
&gt;&gt; 
&gt;&gt; s/fromPropertyInherits/inheritFromValue/ ?
&gt; 
&gt; This is not quite correct. The boolean just informs if the property can inherit or not.

I think that the naming is meaningful enough. I don&apos;t think that it needs a change.

&gt;&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:106
&gt;&gt; +        animated-&gt;length().setValue(number, m_contextElement, ec);
&gt; 
&gt; I&apos;d store SVGLength&amp; animatedLength = animated-&gt;length(); in a local variable on top.

I do it, but I don&apos;t think that it makes much sense, since it is called once anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419289</commentid>
    <comment_count>21</comment_count>
      <attachid>96878</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-12 04:57:01 -0700</bug_when>
    <thetext>Created attachment 96878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419301</commentid>
    <comment_count>22</comment_count>
      <attachid>96878</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-12 09:21:51 -0700</bug_when>
    <thetext>Comment on attachment 96878
Patch

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

Next round of comments, sorry:

&gt; Source/WebCore/ChangeLog:8
&gt; +        The goal is to move the main animation logic for each SVG unit from SVGAnimateElement into the corresponding SVGAnimated* files.

s/SVG unit/SVG primitive datatype/ (after all &apos;SVGLength&apos; is not a &apos;unit&apos;).

&gt; Source/WebCore/ChangeLog:20
&gt; +        We don&apos;t support animations between different units right now: from=&quot;20px&quot; to=&quot;20%&quot; for example. The second benefit is, that we do not
&gt; +        rewrite the parsing code for parsing the values in the attributes &apos;from&apos;, &apos;to&apos; and &apos;values&apos;. 

I don&apos;t understand the second benefit &quot;that we do not rewrite the parsing code for parsing the values&quot; ?

&gt; Source/WebCore/ChangeLog:21
&gt; +        The main benefit: Animate SVG values directly will be easier to implement, once moving the code was finished.

s/Animate/Animated/. I think this is confusing  -- you are referring to animVal support here, and how it&apos;s now easier to implement it as we&apos;re actually animating SVGLengths instead of number+units, so we could use that later on as &quot;animVal&apos; for the SVG DOM, right? Can you please rephrase this.

&gt; Source/WebCore/ChangeLog:23
&gt; +        The current patch is starting with SVGLength. SVGAnimator coordinates the connection from SVGAnimatedType to the SVG unit animators

The current patch converts SVGLength to the new concept. (The patch is startin... is like &quot;Dieser Zug endet hier&quot; ;-)

&gt; Source/WebCore/ChangeLog:24
&gt; +        The current patch is starting with SVGLength. SVGAnimator coordinates the connection from SVGAnimatedType to the SVG unit animators
&gt; +        like SVGAnimatedLengthAnimator in SVGAnimatedLength.h.

SVGAnimator coordinates the connection?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:-74
&gt; -    else if (parse.endsWith(&quot;px&quot;) || parse.endsWith(&quot;pt&quot;) || parse.endsWith(&quot;em&quot;))
&gt; -        unitLength = 2;

What is this about??

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:458
&gt; +        if (!m_animator)
&gt; +            m_animator = SVGAnimator::create(targetElement, m_animatedAttributeType, attributeName());
&gt; +        m_animator-&gt;calculateFromAndByValues(m_fromType, m_toType, fromString, byString);

Can&apos;t you move these in an ensureAnimator() method?
so you could use
ensureAnimator()-&gt;calculateFromAndByValues(...)

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:509
&gt; +        m_animatedType = SVGAnimatedType::createLength(new SVGLength(SVGLength::lengthModeForAnimatedLengthAttribute(attributeName()), baseString));

This detail should be hidden, the SVGLength construction, it should be encapsulated.
Suggestion:
m_animatedType = SVGAnimatedLength::createLength(SVGLength::lengthModeForAnimatedLengthAttribute(attributeName()), baseString).

Then SVGAnimatedLength::createLength does what you do now. That just hides the &quot;new&quot; and &quot;delete&quot;. We want to avoid to expose that we&apos;re initentionally _Not_ using smart pointers for this SVGLength object, as it lives within an union.

EEEK I&apos;ve just seen you have &quot;PassOwnPtr&lt;SVGAnimatedType&gt; SVGAnimatedLengthAnimator::constructFromString(const String&amp; string)&quot;.
Why don&apos;t you just use that?

m_animatedType = m_animator-&gt;constructFromString(baseString)?

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:573
&gt; +        if (!m_animator)
&gt; +            m_animator = SVGAnimator::create(targetElement, m_animatedAttributeType, attributeName());

return ensureAnimator()-&gt;calculateDistance(this, fromString, toString);

&gt; Source/WebCore/svg/SVGAnimatedType.h:36
&gt; +    static PassOwnPtr&lt;SVGAnimatedType&gt; createLength(SVGLength* length)
&gt; +    {
&gt; +        return adoptPtr(new SVGAnimatedType(AnimatedLength, length));
&gt; +    }

This should be removed.

&gt; Source/WebCore/svg/SVGAnimatedType.h:40
&gt; +        delete m_data.length;

Add the same assertion regarding m_type here, as longs as we don&apos;t support other types.

&gt; Source/WebCore/svg/SVGAnimatedType.h:66
&gt; +        // FIXME: More SVGUnits need to be added step by step.

s/SVGUnits/SVG primitive types/

&gt; Source/WebCore/svg/SVGAnimationElement.cpp:163
&gt; +        for (unsigned i = 0; i &lt; m_values.size(); ++i)
&gt; +            m_values[i] = m_values[i].stripWhiteSpace();

I&apos;d still love to see a comment here, best with a spec link.

&gt; Source/WebCore/svg/SVGAnimator.h:28
&gt; +class SVGAnimator {

I think SVGAnimator sounds way too generic how about &quot;SVGAnimatedTypeAnimatorFactory&quot; or short &quot;SVGAnimatorFactory&quot;

&gt; Source/WebCore/svg/SVGLength.cpp:140
&gt; +    setValueAsString(valueAsString, ec);

ASSERT(!ec) ? what to do if an exception is raised? is that possible?

&gt; Source/WebCore/svg/SVGLength.h:91
&gt; +    void setValueAsString(const String&amp;, SVGLengthMode);

Hm, for consistency - pass on the Ec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419303</commentid>
    <comment_count>23</comment_count>
      <attachid>96878</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-12 09:52:56 -0700</bug_when>
    <thetext>Comment on attachment 96878
Patch

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

&gt;&gt; Source/WebCore/svg/SVGAnimateElement.cpp:-74
&gt;&gt; -        unitLength = 2;
&gt; 
&gt; What is this about??

I commented in the ChangeLog. This is ainmation the parsing code for SVGLength values :-)

&gt;&gt; Source/WebCore/svg/SVGAnimateElement.cpp:458
&gt;&gt; +        m_animator-&gt;calculateFromAndByValues(m_fromType, m_toType, fromString, byString);
&gt; 
&gt; Can&apos;t you move these in an ensureAnimator() method?
&gt; so you could use
&gt; ensureAnimator()-&gt;calculateFromAndByValues(...)

Can be an inline function, yes. But ensureAnimator would still need the argument m_animatedAttributeType, otherwise we would call determineAnimatedAttributeType twice. The first time to get the correct animation typ, the second time for the animator. We can remove it, once all svg units are supported natively.

&gt;&gt; Source/WebCore/svg/SVGAnimateElement.cpp:509
&gt;&gt; +        m_animatedType = SVGAnimatedType::createLength(new SVGLength(SVGLength::lengthModeForAnimatedLengthAttribute(attributeName()), baseString));
&gt; 
&gt; This detail should be hidden, the SVGLength construction, it should be encapsulated.
&gt; Suggestion:
&gt; m_animatedType = SVGAnimatedLength::createLength(SVGLength::lengthModeForAnimatedLengthAttribute(attributeName()), baseString).
&gt; 
&gt; Then SVGAnimatedLength::createLength does what you do now. That just hides the &quot;new&quot; and &quot;delete&quot;. We want to avoid to expose that we&apos;re initentionally _Not_ using smart pointers for this SVGLength object, as it lives within an union.
&gt; 
&gt; EEEK I&apos;ve just seen you have &quot;PassOwnPtr&lt;SVGAnimatedType&gt; SVGAnimatedLengthAnimator::constructFromString(const String&amp; string)&quot;.
&gt; Why don&apos;t you just use that?
&gt; 
&gt; m_animatedType = m_animator-&gt;constructFromString(baseString)?

The animator may does not exist. Have to check if all necessary values exist. Investigate in this.

To constructFromString: it also calls createLength(SVGLength::lengthModeForAnimatedLengthAttribute(attributeName()), baseString) in the background. (see comment about createLength later)

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:36
&gt;&gt; +    }
&gt; 
&gt; This should be removed.

Why removed? This is still needed? we call it in constructFromString as well. So we still need it. Or do you suggest something different?

&gt;&gt; Source/WebCore/svg/SVGAnimationElement.cpp:163
&gt;&gt; +            m_values[i] = m_values[i].stripWhiteSpace();
&gt; 
&gt; I&apos;d still love to see a comment here, best with a spec link.

sure

&gt;&gt; Source/WebCore/svg/SVGAnimator.h:28
&gt;&gt; +class SVGAnimator {
&gt; 
&gt; I think SVGAnimator sounds way too generic how about &quot;SVGAnimatedTypeAnimatorFactory&quot; or short &quot;SVGAnimatorFactory&quot;

Hopefully the last renaming. It&apos;s not fun to edit all build systems ;)

&gt;&gt; Source/WebCore/svg/SVGLength.cpp:140
&gt;&gt; +    setValueAsString(valueAsString, ec);
&gt; 
&gt; ASSERT(!ec) ? what to do if an exception is raised? is that possible?

It is not possible that we fail here. The string is generated from the computedValue of an existing CSS property (for supporting inheritance). so we can assert here.

&gt;&gt; Source/WebCore/svg/SVGLength.h:91
&gt;&gt; +    void setValueAsString(const String&amp;, SVGLengthMode);
&gt; 
&gt; Hm, for consistency - pass on the Ec?

Would not be interesting for our needs. I wouldn&apos;t pass an EC. See comment above. It&apos;s just used to get a SVGLength from a computed CSS property value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419314</commentid>
    <comment_count>24</comment_count>
      <attachid>96884</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-12 11:52:23 -0700</bug_when>
    <thetext>Created attachment 96884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419329</commentid>
    <comment_count>25</comment_count>
      <attachid>96884</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-12 12:54:34 -0700</bug_when>
    <thetext>Comment on attachment 96884
Patch

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

Almost there.... but the ChangeLog is so confusing, I&apos;d like to see a new version.

&gt; Source/WebCore/ChangeLog:15
&gt; +        This and the next patches will just fix the number + unit parsing. We will work with the SVG units directly internaly.

typo: internally.

&gt; Source/WebCore/ChangeLog:18
&gt; +        There are some benefits with the new infrastructure. At first, the current parsing in the animation code just respects a few units (5 for SVGlength).

typo: SVGLength.

&gt; Source/WebCore/ChangeLog:22
&gt; +        We don&apos;t support animations between different units right now: from=&quot;20px&quot; to=&quot;20%&quot; for example. The second benefit is, that we do not
&gt; +        rewrite the parsing code for parsing the values in the attributes &apos;from&apos;, &apos;to&apos; and &apos;values&apos;, see parseNumberValueAndUnit in SVGAnimateElement. 
&gt; +        The main benefit: Because we use SVG primitive datatype for animations, it will be easier to support animVal and therefore can avoid converting values
&gt; +        to string.

I still understand the ChangeLog, also it&apos;s not using proper english. &quot;rewrite the parsing code for parsing the values&quot;??
I also don&apos;t know whether we&apos;re supporting anims between different units now with your patch or not.
Please post a new ChangeLog at least...

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:453
&gt; +        ensureAnimator(m_animatedAttributeType)-&gt;calculateFromAndByValues(m_fromType, m_toType, fromString, byString);

Why does everyone have to pass m_animatedAttirbuteType?? Just let ensureAnimator read m_animatedAttributeType directly.

&gt; Source/WebCore/svg/SVGAnimatorFactory.h:29
&gt; +    WTF_MAKE_FAST_ALLOCATED;

This class is never allocated. I&apos;d remove this and rather provide an unimplemented private constructor, so no-one can ever create an object of type SVGAnimatorFactory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419435</commentid>
    <comment_count>26</comment_count>
      <attachid>96919</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-12 22:35:51 -0700</bug_when>
    <thetext>Created attachment 96919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419438</commentid>
    <comment_count>27</comment_count>
      <attachid>96919</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-12 22:51:13 -0700</bug_when>
    <thetext>Comment on attachment 96919
Patch

Attachment 96919 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8837036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419444</commentid>
    <comment_count>28</comment_count>
      <attachid>96919</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-06-12 23:17:44 -0700</bug_when>
    <thetext>Comment on attachment 96919
Patch

Attachment 96919 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8837040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419451</commentid>
    <comment_count>29</comment_count>
      <attachid>96927</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-12 23:49:51 -0700</bug_when>
    <thetext>Created attachment 96927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419586</commentid>
    <comment_count>30</comment_count>
      <attachid>96927</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-13 09:09:12 -0700</bug_when>
    <thetext>Comment on attachment 96927
Patch

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

Great patch, r=me with some final comments:

&gt; Source/WebCore/ChangeLog:8
&gt; +        For SMIL animations of attributes or CSS properties in SVG we have a lot of transformations of the values. At first the target element

When running SMIL animations  within SVG, we unnecessarily transform the underlying SVG primitive datatype to strings, number+units, and back.
s/At first/As first step/

&gt; Source/WebCore/ChangeLog:10
&gt; +        seperate it into a number and its unit. In the further steps we just animate the number. This number gets transformed back to a string

s/separate/split/

&gt; Source/WebCore/ChangeLog:16
&gt; +        This patch does not attend to the string transformations, but addresses the parsing of the string back to a number and unit in the

s/attend/attempt to change/?

This is invalid english :(

&gt; Source/WebCore/ChangeLog:19
&gt; +        SVG animation code. We shouldn&apos;t add an own parser to SVGAnimateElement but should use the responsible parsers of the SVG primitive datatypes.
&gt; +        Also the current parser of SVGAnimateElement does not handle most unit types, nor is it possible to animate lists like SVGLengthList with the
&gt; +        parsed content. An animation of values with different unit types is not possible:

We shoulnd&apos;t add an own parser to???
There&apos;s no need to write a new parser in SVGAnimateElement to parse SVG primitive datatypes, we can instead reuse the existing ones.

&gt; Source/WebCore/ChangeLog:25
&gt; +        For the example above we would animate the rect width from 20px to 10px in 4 seconds and jump to the 10% of the view port at the end of the

s/view port/viewport/

&gt; Source/WebCore/ChangeLog:39
&gt; +        With this patch I add the AnimatorFactory and convert SVGLength animation to the new concept.

SVGAnimatorFactory.

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:75
&gt; +    // FIXME: avoid string parsing.

s/avoid/Avoid/

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:96
&gt; +        number = percentage &lt; 0.5f ? fromLength : toLength;

s/.f//

&gt; Source/WebCore/svg/SVGAnimatedLength.cpp:106
&gt; +        float animatedLength = animated-&gt;length().value(m_contextElement);

use animatedSVGLength here.

&gt; Source/WebCore/svg/SVGLength.cpp:586
&gt; +    if (s_lengthModeMap.isEmpty()) {

I didn&apos;t ask before, but I guess you double-checked this is complete?

&gt; Source/WebCore/svg/SVGLength.h:26
&gt; +#include &quot;QualifiedName.h&quot;

Remove this included, just use a class forward here for QualifiedName.

&gt; Source/WebCore/svg/SVGLength.h:105
&gt; +    static SVGLengthMode lengthModeForAnimatedLengthAttribute(const QualifiedName&amp; attrName);

s/ attrName// doesn&apos;t add a lot of value.

&gt; LayoutTests/svg/animations/svglength-animation-values-expected.txt:13
&gt; +PASS rect.width.animVal.value is 151.18
&gt; +PASS rect.width.baseVal.value is 151.18

I hope results like this are stable across platforms... we&apos;ll see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419737</commentid>
    <comment_count>31</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-13 11:49:11 -0700</bug_when>
    <thetext>Committed r88663: &lt;http://trac.webkit.org/changeset/88663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419759</commentid>
    <comment_count>32</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-13 12:13:17 -0700</bug_when>
    <thetext>Committed r88670: &lt;http://trac.webkit.org/changeset/88670&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94624</attachid>
            <date>2011-05-24 09:13:47 -0700</date>
            <delta_ts>2011-05-28 05:02:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>svg-animation-length.patch</filename>
            <type>text/plain</type>
            <size>38763</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDg3MDI3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05NTUsNiArOTU1LDEwIEBACiAJ
CTQzOTA0NkU4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxTdWJTdXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkQ0MTJEQTI1RTgw
MEFGODBBMiAvKiBSZW5kZXJNYXRoTUxTdWJTdXAuaCAqLzsgfTsKIAkJNDM5MDQ2RTkxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZENTEyREEyNUU4MDBBRjgwQTIgLyog
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCAqLzsgfTsKIAkJNDM5MDQ2RUExMkRBMjVFODAwQUY4
MEEyIC8qIFJlbmRlck1hdGhNTFVuZGVyT3Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2RDYxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTFVuZGVyT3Zlci5oICovOyB9OworCQk0M0EzRjBCODEzOEIwNEY1MDAyRkNGQzggLyogU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDNBM0YwQjcxMzhCMDRGNTAwMkZDRkM4IC8qIFNWR0FuaW1hdGVkTGVu
Z3RoQW5pbWF0b3IuaCAqLzsgfTsKKwkJNDNBM0YwQkMxMzhCMDUxNDAwMkZDRkM4IC8qIFNWR0Fu
aW1hdGVkVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDNBM0YwQjkxMzhCMDUxNDAwMkZDRkM4IC8qIFNWR0FuaW1hdGVkVHlwZS5oICovOyB9Owor
CQk0M0EzRjBCRDEzOEIwNTE0MDAyRkNGQzggLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQTNGMEJBMTM4
QjA1MTQwMDJGQ0ZDOCAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovOyB9OworCQk0M0Ez
RjBCRTEzOEIwNTE0MDAyRkNGQzggLyogU1ZHQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQTNGMEJCMTM4QjA1MTQwMDJGQ0ZDOCAvKiBT
VkdBbmltYXRvci5oICovOyB9OwogCQk0M0MwOTJCQzEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDNDMDkyQkExMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QuaCAqLzsgfTsKIAkJNDQxNTI5MkUwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MTUyOTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQxNTI5MkYw
RTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQxNTI5MkQwRTFBRThBMDAwQzRB
MkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICovOyB9OwpAQCAtNzQ1NSw2ICs3NDU5
LDEwIEBACiAJCTQzOTA0NkQ0MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxTdWJTdXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVuZGVyTWF0aE1MU3ViU3VwLmg7
IHBhdGggPSBtYXRobWwvUmVuZGVyTWF0aE1MU3ViU3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzOTA0NkQ1MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxVbmRlck92
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVuZGVyTWF0aE1M
VW5kZXJPdmVyLmNwcDsgcGF0aCA9IG1hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzkwNDZENjEyREEyNUU4MDBBRjgwQTIgLyog
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFJlbmRlck1hdGhNTFVuZGVyT3Zlci5oOyBwYXRoID0gbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVy
T3Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0EzRjBCNzEzOEIwNEY1MDAy
RkNGQzggLyogU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQzQTNGMEI5MTM4QjA1MTQwMDJGQ0ZDOCAvKiBTVkdBbmltYXRlZFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQTNGMEJBMTM4QjA1MTQwMDJGQ0ZDOCAv
KiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0M0EzRjBCQjEzOEIwNTE0MDAyRkNGQzggLyogU1ZHQW5pbWF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQzA5MkJB
MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcxMTks
NiArMTcxMjcsNyBAQAogCQkJCTA4OTAyMUE4MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRl
ZExlbmd0aC5oICovLAogCQkJCUIyMjI3N0VBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRl
ZExlbmd0aC5pZGwgKi8sCiAJCQkJMDg5MDIxQUMxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5oICovLAorCQkJCTQzQTNGMEI3MTM4QjA0RjUwMDJGQ0ZDOCAvKiBTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3RUIwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwgKi8sCiAJCQkJMDhCMzVCMTIxMjdCNkE3QzAw
NTMxNEREIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmggKi8sCiAJCQkJQjIyMjc3RUMwRDAwQkYxRjAw
NzFCNzgyIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAqLywKQEAgLTE3MTMyLDYgKzE3MTQxLDgg
QEAKIAkJCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRs
ICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCAqLywKIAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmlkbCAqLywKKwkJCQk0M0EzRjBCOTEzOEIwNTE0MDAyRkNGQzggLyogU1ZH
QW5pbWF0ZWRUeXBlLmggKi8sCisJCQkJNDNBM0YwQkExMzhCMDUxNDAwMkZDRkM4IC8qIFNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLApAQCAtMTcxNDMsNiArMTcxNTQsNyBAQAogCQkJ
CUIyMjI3ODAxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzgwMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5oICov
LAogCQkJCUIyMjI3ODAzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50Lmlk
bCAqLywKKwkJCQk0M0EzRjBCQjEzOEIwNTE0MDAyRkNGQzggLyogU1ZHQW5pbWF0b3IuaCAqLywK
IAkJCQlCMjIyNzgwNDBEMDBCRjFGMDA3MUI3ODIgLyogc3ZnYXR0cnMuaW4gKi8sCiAJCQkJQjIy
Mjc4MDUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0NpcmNsZUVsZW1lbnQuY3BwICovLAogCQkJCUIy
MjI3ODA2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdDaXJjbGVFbGVtZW50LmggKi8sCkBAIC0yMjgy
OCw2ICsyMjg0MCwxMCBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAv
KiBYU1NGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERD
RSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDNBM0YwQjgxMzhCMDRGNTAwMkZD
RkM4IC8qIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQz
QTNGMEJDMTM4QjA1MTQwMDJGQ0ZDOCAvKiBTVkdBbmltYXRlZFR5cGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQzQTNGMEJEMTM4QjA1MTQwMDJGQ0ZDOCAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDNBM0YwQkUxMzhCMDUxNDAwMkZDRkM4IC8qIFNWR0Fu
aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVFbGVtZW50LmNwcAkocmV2aXNpb24gODcwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdG9yLmgiCiAj
aW5jbHVkZSAiU1ZHQ29sb3IuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNW
R1BhcnNlclV0aWxpdGllcy5oIgpAQCAtODksNyArOTEsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZU51
bWJlclZhbHVlQW5kVW5pdChjb25zCiAgICAgcmV0dXJuIG9rOwogfQogCi1zdGF0aWMgaW5saW5l
IHZvaWQgYWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIENv
bG9yJiBjb2xvcikKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckN1cnJlbnRDb2xv
cihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYgY29sb3IpCiB7CiAgICAgQVNTRVJU
KHRhcmdldEVsZW1lbnQpOwogICAgIApAQCAtOTksNyArMTAxLDEzIEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBhZGp1c3RGb3JDdXJyZW50Q29sb3IKICAgICAgICAgY29sb3IgPSBDb2xvcigpOwogfQog
Ci1zdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3RyaW5nJiB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXRQcm9wZXJ0eVZhbHVlKFNWR0VsZW1lbnQqIHN2
Z1BhcmVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3RyaW5nJiB2YWx1
ZSkKK3sKKyAgICBBU1NFUlQoc3ZnUGFyZW50LT5pc1N0eWxlZCgpKTsKKyAgICB2YWx1ZSA9IGNv
bXB1dGVkU3R5bGUoc3ZnUGFyZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShjc3NQcm9wZXJ0eUlEKGF0
dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKTsKK30KKwordm9pZCBTVkdBbmltYXRlRWxlbWVudDo6
YWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhN
RTogQXQgdGhlIG1vbWVudCB0aGUgY29tcHV0ZWQgc3R5bGUgZ2V0cyByZXR1cm5lZCBhcyBhIFN0
cmluZyBhbmQgbmVlZHMgdG8gZ2V0IHBhcnNlZCBhZ2Fpbi4KICAgICAvLyBJbiB0aGUgZnV0dXJl
IHdlIG1pZ2h0IHdhbnQgdG8gd29yayB3aXRoIHRoZSB2YWx1ZSB0eXBlIGRpcmVjdGx5IHRvIGF2
b2lkIHRoZSBTdHJpbmcgcGFyc2luZy4KQEAgLTExMSw3ICsxMTksNDIgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIGFkanVzdEZvckluaGVyaXRhbmNlKAogCiAgICAgU1ZHRWxlbWVudCogc3ZnUGFyZW50
ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KHBhcmVudCk7CiAgICAgaWYgKHN2Z1BhcmVudC0+
aXNTdHlsZWQoKSkKLSAgICAgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCktPmdl
dFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKSk7
CisgICAgICAgIGdldFByb3BlcnR5VmFsdWUoc3ZnUGFyZW50LCBhdHRyaWJ1dGVOYW1lLCB2YWx1
ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCit7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFNWR0xlbmd0aE1vZGU+IExlbmd0aE1vZGVG
b3JMZW5ndGhBdHRyaWJ1dGVNYXA7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGhNb2Rl
Rm9yTGVuZ3RoQXR0cmlidXRlTWFwLCBzX2xlbmd0aE1vZGVNYXAsKCkpOworICAgIAorICAgIGlm
IChzX2xlbmd0aE1vZGVNYXAuaXNFbXB0eSgpKSB7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6OnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1v
ZGVNYXAuc2V0KFNWR05hbWVzOjp5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmN4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAg
ICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6Y3lBdHRyLCBMZW5ndGhNb2RlSGVp
Z2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZHhBdHRyLCBMZW5n
dGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeUF0
dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05h
bWVzOjpmeEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6OmZ5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3Ro
TW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnJBdHRyLCBMZW5ndGhNb2RlT3RoZXIpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp3aWR0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7
CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmhlaWdodEF0dHIsIExlbmd0
aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp4MUF0
dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6OngyQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNl
dChTVkdOYW1lczo6eTFBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhN
b2RlTWFwLnNldChTVkdOYW1lczo6eTJBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAg
c19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6cmVmWEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7
CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnJlZllBdHRyLCBMZW5ndGhN
b2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6bWFya2Vy
V2lkdGhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0
KFNWR05hbWVzOjptYXJrZXJIZWlnaHRBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsgICAgICAgIAor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0ciwgTGVu
Z3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6c3Rh
cnRPZmZzZXRBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgIH0KKyAgICAKKyAgICBpZiAoc19s
ZW5ndGhNb2RlTWFwLmNvbnRhaW5zKGF0dHJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHNfbGVuZ3Ro
TW9kZU1hcC5nZXQoYXR0ck5hbWUpOworICAgIAorICAgIHJldHVybiBMZW5ndGhNb2RlT3RoZXI7
CiB9CiAKIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNv
bnN0CkBAIC0xMzYsMTYgKzE3OSwxNyBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0
ZUVsZW1lbnQ6CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46
CiAgICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhM
aXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlcjoKICAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoK
ICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKKyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKKyAg
ICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgogICAg
ICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAg
ICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAg
ICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRlZE51bWJlcjsKICAgICBj
YXNlIEFuaW1hdGVkUGF0aDoKQEAgLTE3MSwxNCArMjE1LDkgQEAgdm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgIEFTU0VSVChyZXN1bHRFbGVtZW50KTsKICAgICBi
b29sIGlzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA9IHBlcmNlbnRhZ2UgPCAwLjVmOwogICAgIEFu
aW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSA9IHRoaXMtPmFuaW1hdGlvbk1vZGUoKTsKLSAgICBT
VkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gMDsKLSAgICAvLyBBdm9pZCB0YXJnZXRFbGVtZW50
KCkgY2FsbCBpZiBwb3NzaWJsZS4gSXQgbWlnaHQgc2xvdyBkb3duIGFuaW1hdGlvbnMuCi0gICAg
aWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSB8fCBtX3RvUHJvcGVy
dHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlCi0gICAgICAgIHx8IG1fZnJvbVByb3BlcnR5VmFs
dWVUeXBlID09IEN1cnJlbnRDb2xvclZhbHVlIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBD
dXJyZW50Q29sb3JWYWx1ZSkgewotICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0
RWxlbWVudCgpOwotICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRF
bGVtZW50KCk7CisgICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpCiAgICAgICAgIHBlcmNlbnRh
Z2UgPSAxOwpAQCAtMTg5LDcgKzIyOCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUFuaW1hdGUKICAgICAvLyBDYW4ndCBhY2N1bXVsYXRlIG92ZXIgYSBzdHJpbmcgcHJvcGVy
dHkuCiAgICAgaWYgKHJlc3VsdHMtPm1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
U3RyaW5nICYmIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlICE9IEFuaW1hdGVkU3RyaW5nKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
TnVtYmVyKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXI6IHsKICAgICAgICAgLy8gVG8gYW5pbWF0aW9uIHVzZXMgY29udHJp
YnV0aW9ucyBmcm9tIHRoZSBsb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFzIHRoZSBiYXNlIHZh
bHVlLgogICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKICAgICAgICAg
ICAgIG1fZnJvbU51bWJlciA9IHJlc3VsdHMtPm1fYW5pbWF0ZWROdW1iZXI7CkBAIC0yMjMsNyAr
MjYzLDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAg
ICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZE51bWJlciA9IG51bWJlcjsKICAgICAgICAgcmV0dXJu
OwogICAgIH0gCi0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29s
b3IpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6IHsKICAgICAgICAgaWYgKGFuaW1hdGlvbk1v
ZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zyb21Db2xvciA9IHJlc3VsdHMtPm1f
YW5pbWF0ZWRDb2xvcjsKIApAQCAtMjU2LDcgKzI5Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1l
bnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xv
ciA9IGNvbG9yOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0
cmlidXRlVHlwZSA9PSBBbmltYXRlZFBhdGgpIHsKKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewog
ICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikgewogICAgICAgICAgICAg
QVNTRVJUKHJlc3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlcik7CiAgICAgICAgICAgICBtX2Zy
b21QYXRoID0gcmVzdWx0cy0+bV9hbmltYXRlZFBhdGhQb2ludGVyLT5jb3B5KCk7CkBAIC0yODks
NyArMzI5LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKSB7CisgICAgY2FzZSBBbmltYXRlZFBvaW50czogewog
ICAgICAgICBpZiAoIXBlcmNlbnRhZ2UpCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVk
UG9pbnRzID0gbV9mcm9tUG9pbnRzOwogICAgICAgICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEp
CkBAIC0zMDYsNiArMzQ2LDE2IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFu
aW1hdGUKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQW5pbWF0
ZWRMZW5ndGg6IHsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0b3IpOworICAgICAgICAvLyBUYXJn
ZXQgZWxlbWVudCBtaWdodCBoYXZlIGNoYW5nZWQuCisgICAgICAgIG1fYW5pbWF0b3ItPnNldENv
bnRleHRFbGVtZW50KHRhcmdldEVsZW1lbnQpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxh
dGVBbmltYXRlZFZhbHVlKHRoaXMsIHBlcmNlbnRhZ2UsIHJlcGVhdCwgbV9mcm9tVHlwZSwgbV90
b1R5cGUsIHJlc3VsdHMtPm1fYW5pbWF0ZWRUeXBlLCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9
PSBJbmhlcml0VmFsdWUsIG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAg
IH0KICAgICBBU1NFUlQoYW5pbWF0aW9uTW9kZSA9PSBGcm9tVG9BbmltYXRpb24gfHwgYW5pbWF0
aW9uTW9kZSA9PSBUb0FuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2RlID09IFZhbHVlc0FuaW1hdGlv
bik7CiAgICAgLy8gUmVwbGFjZSAnY3VycmVudENvbG9yJyAvICdpbmhlcml0JyBieSB0aGVpciBj
b21wdXRlZCBwcm9wZXJ0eSB2YWx1ZXMuCiAgICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBl
ID09IEluaGVyaXRWYWx1ZSkKQEAgLTM0Nyw3ICszOTcsOCBAQCBib29sIFNWR0FuaW1hdGVFbGVt
ZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAKICAgICAvLyBGSVhNRTogTmVlZHMgbW9yZSBzb2xpZCB3
YXkgZGV0ZXJtaW5lIHRhcmdldCBhdHRyaWJ1dGUgdHlwZS4KICAgICBtX2FuaW1hdGVkQXR0cmli
dXRlVHlwZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsK
LSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAg
IHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29s
b3I6IHsKICAgICAgICAgYm9vbCBmcm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlz
Q3VycmVudENvbG9yKGZyb21TdHJpbmcpOwogICAgICAgICBib29sIHRvSXNDdXJyZW50Q29sb3Ig
PSBhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKHRvU3RyaW5nKTsKICAgICAgICAgaWYgKGZy
b21Jc0N1cnJlbnRDb2xvcikKQEAgLTM2MiwxNCArNDEzLDE4IEBAIGJvb2wgU1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgYm9vbCB0b0lzVmFsaWQgPSBtX3RvQ29s
b3IuaXNWYWxpZCgpIHx8IHRvSXNDdXJyZW50Q29sb3IgfHwgbV90b1Byb3BlcnR5VmFsdWVUeXBl
ID09IEluaGVyaXRWYWx1ZTsKICAgICAgICAgaWYgKChmcm9tSXNWYWxpZCAmJiB0b0lzVmFsaWQp
IHx8ICh0b0lzVmFsaWQgJiYgYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXI6IHsKICAgICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAg
ICAgIGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdCh0b1N0cmluZywgbV90b051bWJlciwgbV9u
dW1iZXJVbml0KSkgewogICAgICAgICAgICAgLy8gRm9yIHRvLWFuaW1hdGlvbnMgdGhlIGZyb20g
bnVtYmVyIGlzIGNhbGN1bGF0ZWQgbGF0ZXIKICAgICAgICAgICAgIGlmIChhbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gfHwgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywg
bV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBB
bmltYXRlZFBhdGgpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQ
YXRoOiB7CiAgICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBh
cnNlckZhY3Rvcnk6OnNlbGYoKTsKICAgICAgICAgaWYgKGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU3RyaW5nKHRvU3RyaW5nLCBtX3RvUGF0aCwgVW5hbHRlcmVkUGFyc2luZykp
IHsKICAgICAgICAgICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBj
YWxjdWxhdGVkIGxhdGVyCkBAIC0zNzgsMTMgKzQzMywyNSBAQCBib29sIFNWR0FuaW1hdGVFbGVt
ZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIH0KICAgICAgICAgbV9mcm9tUGF0aC5jbGVh
cigpOwogICAgICAgICBtX3RvUGF0aC5jbGVhcigpOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpIHsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFy
KCk7CiAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRzLCBmcm9t
U3RyaW5nKSkgewogICAgICAgICAgICAgbV90b1BvaW50cy5jbGVhcigpOwogICAgICAgICAgICAg
aWYgKHBvaW50c0xpc3RGcm9tU1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1h
dG9yOjpjcmVhdGUoQW5pbWF0ZWRMZW5ndGgsIHRhcmdldEVsZW1lbnQpOworICAgICAgICBzdGF0
aWNfY2FzdDxTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKj4obV9hbmltYXRvci5nZXQoKSktPnNl
dFNWR0xlbmd0aE1vZGUobGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUoKSkpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1
ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBtX2Zyb21TdHJpbmcgPSBmcm9tU3RyaW5nOwogICAgIG1fdG9TdHJpbmcgPSB0b1N0cmlu
ZzsKQEAgLTQwMiw3ICs0NjksOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVG
cm9tQW5kCiAKICAgICBBU1NFUlQoIWhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwogICAg
IG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
KHRhcmdldEVsZW1lbnQpOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZENvbG9yKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAg
IGNhc2UgQW5pbWF0ZWRDb2xvcjogewogICAgICAgICBib29sIGZyb21Jc0N1cnJlbnRDb2xvciA9
IGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoZnJvbVN0cmluZyk7CiAgICAgICAgIGJvb2wg
YnlJc0N1cnJlbnRDb2xvciA9IGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoYnlTdHJpbmcp
OwogICAgICAgICBpZiAoZnJvbUlzQ3VycmVudENvbG9yKQpAQCAtNDE3LDcgKzQ4NSwxNiBAQCBi
b29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGlmICgoIW1f
ZnJvbUNvbG9yLmlzVmFsaWQoKSAmJiAhZnJvbUlzQ3VycmVudENvbG9yKQogICAgICAgICAgICAg
fHwgKCFtX3RvQ29sb3IuaXNWYWxpZCgpICYmICFieUlzQ3VycmVudENvbG9yKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgY2FzZSBBbmltYXRlZExlbmd0aDogeworICAgICAgICBtX2FuaW1hdG9yID0gU1ZH
QW5pbWF0b3I6OmNyZWF0ZShBbmltYXRlZExlbmd0aCwgdGFyZ2V0RWxlbWVudCk7CisgICAgICAg
IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IqPihtX2FuaW1hdG9yLmdldCgp
KS0+c2V0U1ZHTGVuZ3RoTW9kZShsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSgpKSk7CisgICAgICAgIG1fYW5pbWF0b3ItPmNhbGN1bGF0ZUZyb21BbmRC
eVZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwgZnJvbVN0cmluZywgYnlTdHJpbmcpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIH0KKyAgICBkZWZhdWx0OgogICAgICAgICBtX251bWJl
clVuaXQgPSBTdHJpbmcoKTsKICAgICAgICAgbV9mcm9tTnVtYmVyID0gMDsKICAgICAgICAgaWYg
KCFmcm9tU3RyaW5nLmlzRW1wdHkoKSAmJiAhcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0
cmluZywgbV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQpAQCAtNDM2LDEzICs1MTMsMTUgQEAg
dm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgIG1fYW5pbWF0ZWRT
dHJpbmcgPSBiYXNlU3RyaW5nOwogICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBsYXN0VHlwZSA9
IG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0g
ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwotICAgIGlmICht
X2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAgc3dpdGNoICht
X2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAg
ICAgbV9hbmltYXRlZENvbG9yID0gYmFzZVN0cmluZy5pc0VtcHR5KCkgPyBDb2xvcigpIDogU1ZH
Q29sb3I6OmNvbG9yRnJvbVJHQkNvbG9yU3RyaW5nKGJhc2VTdHJpbmcpOwogICAgICAgICBpZiAo
aXNDb250cmlidXRpbmcoZWxhcHNlZCgpKSkgewogICAgICAgICAgICAgbV9hbmltYXRlZEF0dHJp
YnV0ZVR5cGUgPSBsYXN0VHlwZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAg
IH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1iZXIpIHsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgaWYgKGJh
c2VTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2FuaW1hdGVkTnVtYmVyID0gMDsK
ICAgICAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwpAQCAtNDUwLDE1ICs1MjksMjQg
QEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgICAgICB9CiAg
ICAgICAgIGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdChiYXNlU3RyaW5nLCBtX2FuaW1hdGVk
TnVtYmVyLCBtX251bWJlclVuaXQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoLmNs
ZWFyKCk7CiAgICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBh
cnNlckZhY3Rvcnk6OnNlbGYoKTsKICAgICAgICAgZmFjdG9yeS0+YnVpbGRTVkdQYXRoQnl0ZVN0
cmVhbUZyb21TdHJpbmcoYmFzZVN0cmluZywgbV9hbmltYXRlZFBhdGgsIFVuYWx0ZXJlZFBhcnNp
bmcpOwogICAgICAgICBtX2FuaW1hdGVkUGF0aFBvaW50ZXIgPSBtX2FuaW1hdGVkUGF0aC5nZXQo
KTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWRQb2ludHMpIHsKKyAgICB9CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoK
ICAgICAgICAgbV9hbmltYXRlZFBvaW50cy5jbGVhcigpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBBbmltYXRlZExlbmd0aDogeworICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlKEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUt
Pmxlbmd0aCgpID0gbmV3IFNWR0xlbmd0aChsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSgpKSwgYmFzZVN0cmluZyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIG1fYW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlID0gQW5pbWF0ZWRTdHJpbmc7CiB9CkBAIC00ODMsNiArNTcxLDggQEAgdm9p
ZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBvaW50cykKICAgICAg
ICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy5pc0VtcHR5KCkgPyBtX2FuaW1hdGVk
U3RyaW5nIDogbV9hbmltYXRlZFBvaW50cy52YWx1ZUFzU3RyaW5nKCk7CisgICAgZWxzZSBpZiAo
bV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpCisgICAgICAgIHZhbHVl
VG9BcHBseSA9IG1fYW5pbWF0ZWRUeXBlLT5sZW5ndGgoKS0+dmFsdWVBc1N0cmluZygpOwogICAg
IGVsc2UKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKICAgICAKQEAg
LTQ5MSw2ICs1ODEsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1Rh
CiAgICAgCiBmbG9hdCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3Qg
U3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQogeworICAgIC8vIFRP
RE86IERpc3RhbmNlIGNhbGN1bGF0aW9uIHNob3VsZCBiZSBkb25lIGluIFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yLgogICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRF
bGVtZW50KCk7CiAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQogICAgICAgICByZXR1cm4gLTE7CkBA
IC01MTQsOCArNjA1LDE0IEBAIGZsb2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0
YW4KICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2Uo
ZnJvbSwgdG8pLmRpc3RhbmNlKCk7CiAgICAgfQorICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSA9PSBBbmltYXRlZExlbmd0aCkgeworICAgICAgICBTVkdMZW5ndGhNb2RlIGxlbmd0aE1v
ZGUgPSBsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgp
KTsKKyAgICAgICAgU1ZHTGVuZ3RoIGZyb20gPSBTVkdMZW5ndGgobGVuZ3RoTW9kZSwgZnJvbVN0
cmluZyk7CisgICAgICAgIFNWR0xlbmd0aCB0byA9IFNWR0xlbmd0aChsZW5ndGhNb2RlLCB0b1N0
cmluZyk7CisgICAgICAgIHJldHVybiBmYWJzZih0by52YWx1ZSh0YXJnZXRFbGVtZW50KSAtIGZy
b20udmFsdWUodGFyZ2V0RWxlbWVudCkpOworICAgIH0KICAgICByZXR1cm4gLTE7CiB9Ci0gICAK
KwogfQogI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuaAkocmV2aXNpb24gODcwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYsMTIgQEAKIAogI2lu
Y2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkVHlwZS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKICNpbmNsdWRlICJTVkdQb2ludExp
c3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDYgKzQyLDkgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgpOwor
ICAgIAorICAgIHN0YXRpYyB2b2lkIGFkanVzdEZvckN1cnJlbnRDb2xvcihTVkdFbGVtZW50KiB0
YXJnZXRFbGVtZW50LCBDb2xvciYpOworICAgIHZvaWQgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIFN0cmluZyYgdmFs
dWUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CkBAIC04Miw2ICs4OCwxMiBAQCBwcml2YXRlOgogICAgIFNWR1Bv
aW50TGlzdCBtX2Zyb21Qb2ludHM7CiAgICAgU1ZHUG9pbnRMaXN0IG1fdG9Qb2ludHM7CiAgICAg
U1ZHUG9pbnRMaXN0IG1fYW5pbWF0ZWRQb2ludHM7CisgICAgCisgICAgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4gbV9mcm9tVHlwZTsKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvVHlw
ZTsKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX2FuaW1hdGVkVHlwZTsKKyAgICAKKyAg
ICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+IG1fYW5pbWF0b3I7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRM
ZW5ndGhBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yX2gK
KyNkZWZpbmUgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcl9oCisKKyNpZiBFTkFCTEUoU1ZHKQor
I2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvciA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVB
bmltYXRvciB7CisKK3B1YmxpYzoKKyAgICBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KQorICAgICAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
KEFuaW1hdGVkTGVuZ3RoLCBjb250ZXh0RWxlbWVudCkKKyAgICAgICAgLCBtX2xlbmd0aE1vZGUo
TGVuZ3RoTW9kZU90aGVyKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yKCkgeyB9CisgICAgCisgICAgdmlydHVhbCBQYXNzT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAg
ICB7CisgICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IHR5cGUgPSBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZShBbmltYXRlZExlbmd0aCk7CisgICAgICAgIHR5cGUtPmxlbmd0aCgpID0gbmV3
IFNWR0xlbmd0aChtX2xlbmd0aE1vZGUsIHN0cmluZyk7CisgICAgICAgIHJldHVybiB0eXBlLnJl
bGVhc2UoKTsKKyAgICB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRU
b1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIHRvLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJp
bmcpCisgICAgeworICAgICAgICBmcm9tID0gY29uc3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5n
KTsKKyAgICAgICAgdG8gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKHRvU3RyaW5nKTsKKyAgICB9Cisg
ICAgCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBT
dHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisKKyAgICAgICAgZnJvbSA9IGNvbnN0cnVjdEZy
b21TdHJpbmcoZnJvbVN0cmluZyk7CisgICAgICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyhi
eVN0cmluZyk7CisgICAgICAgIAorICAgICAgICBTVkdMZW5ndGgqIGZyb21MZW5ndGggPSBmcm9t
LT5sZW5ndGgoKTsKKyAgICAgICAgU1ZHTGVuZ3RoKiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgoKTsK
KyAgICAgICAgQVNTRVJUKGZyb21MZW5ndGgpOworICAgICAgICBBU1NFUlQodG9MZW5ndGgpOwor
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgdG9MZW5ndGgtPnNldFZhbHVl
KHRvTGVuZ3RoLT52YWx1ZShtX2NvbnRleHRFbGVtZW50KSArIGZyb21MZW5ndGgtPnZhbHVlKG1f
Y29udGV4dEVsZW1lbnQpLCBtX2NvbnRleHRFbGVtZW50LCBlYyk7CisgICAgICAgIEFTU0VSVCgh
ZWMpOworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShTVkdTTUlMRWxlbWVudCogc21pbEVsZW1lbnQsIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9vbCB0b1Byb3BlcnR5
SW5oZXJpdHMpCisgICAgeworICAgICAgICBBU1NFUlQoc21pbEVsZW1lbnQpOworICAgICAgICBB
U1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmlt
YXRpb25FbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVu
dCk7CisKKyAgICAgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlID0gYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpOworICAgICAgICAvLyBUbyBhbmltYXRpb24gdXNlcyBjb250
cmlidXRpb25zIGZyb20gdGhlIGxvd2VyIHByaW9yaXR5IGFuaW1hdGlvbnMgYXMgdGhlIGJhc2Ug
dmFsdWUuCisgICAgICAgIC8vIEZJWE1FOiBhdm9pZCBzdHJpbmcgcGFyc2luZy4KKyAgICAgICAg
aWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCisgICAgICAgICAgICBmcm9tID0gY29u
c3RydWN0RnJvbVN0cmluZyhhbmltYXRlZC0+bGVuZ3RoKCktPnZhbHVlQXNTdHJpbmcoKSk7CisK
KyAgICAgICAgLy8gUmVwbGFjZSAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkg
dmFsdWVzLgorICAgICAgICBmbG9hdCBudW1iZXI7CisgICAgICAgIGZsb2F0IGZyb21MZW5ndGgg
PSBmcm9tLT5sZW5ndGgoKS0+dmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgICAgIGZsb2F0
IHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpLT52YWx1ZShtX2NvbnRleHRFbGVtZW50KTsKKworICAg
ICAgICBpZiAoZnJvbVByb3BlcnR5SW5oZXJpdHMpIHsKKyAgICAgICAgICAgIFN0cmluZyBmcm9t
TGVuZ3RoU3RyaW5nOworICAgICAgICAgICAgYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5o
ZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRlTmFt
ZSgpLCBmcm9tTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAgICAgIFNWR0xlbmd0aCB0ZW1wRnJvbSA9
IFNWR0xlbmd0aChtX2xlbmd0aE1vZGUsIGZyb21MZW5ndGhTdHJpbmcpOworICAgICAgICAgICAg
ZnJvbUxlbmd0aCA9IHRlbXBGcm9tLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOworICAgICAgICB9
CisgICAgICAgIGlmICh0b1Byb3BlcnR5SW5oZXJpdHMpIHsKKyAgICAgICAgICAgIFN0cmluZyB0
b0xlbmd0aFN0cmluZzsKKyAgICAgICAgICAgIGFuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvcklu
aGVyaXRhbmNlKG1fY29udGV4dEVsZW1lbnQsIGFuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5h
bWUoKSwgdG9MZW5ndGhTdHJpbmcpOworICAgICAgICAgICAgU1ZHTGVuZ3RoIHRlbXBUbyA9IFNW
R0xlbmd0aChtX2xlbmd0aE1vZGUsIHRvTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAgICAgIHRvTGVu
Z3RoID0gdGVtcFRvLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOyAKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChhbmltYXRpb25FbGVtZW50LT5jYWxjTW9kZSgpID09IENhbGNNb2RlRGlzY3JldGUp
CisgICAgICAgICAgICBudW1iZXIgPSBwZXJjZW50YWdlIDwgMC41ZiA/IGZyb21MZW5ndGggOiB0
b0xlbmd0aDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbnVtYmVyID0gKHRvTGVuZ3RoIC0g
ZnJvbUxlbmd0aCkgKiBwZXJjZW50YWdlICsgZnJvbUxlbmd0aDsKKworICAgICAgICAvLyBGSVhN
RTogVGhpcyBpcyBub3QgY29ycmVjdCBmb3IgdmFsdWVzIGFuaW1hdGlvbi4KKyAgICAgICAgaWYg
KGFuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXQpCisgICAgICAgICAg
ICBudW1iZXIgKz0gdG9MZW5ndGggKiByZXBlYXQ7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgICAgICBpZiAoYW5pbWF0aW9uRWxlbWVudC0+aXNBZGRpdGl2ZSgpICYmIGFuaW1h
dGlvbk1vZGUgIT0gVG9BbmltYXRpb24pIHsKKyAgICAgICAgICAgIGZsb2F0IGFuaW1hdGVkTGVu
Z3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpLT52YWx1ZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAg
ICAgICAgIGFuaW1hdGVkTGVuZ3RoICs9IG51bWJlcjsKKyAgICAgICAgICAgIGFuaW1hdGVkLT5s
ZW5ndGgoKS0+c2V0VmFsdWUoYW5pbWF0ZWRMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQsIGVjKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhbmltYXRlZC0+bGVuZ3RoKCktPnNldFZhbHVl
KG51bWJlciwgbV9jb250ZXh0RWxlbWVudCwgZWMpOworICAgICAgICBBU1NFUlQoIWVjKTsKKyAg
ICB9CisKKyAgICB2b2lkIHNldFNWR0xlbmd0aE1vZGUoU1ZHTGVuZ3RoTW9kZSBtb2RlKSB7IG1f
bGVuZ3RoTW9kZSA9IG1vZGU7IH0KKworcHJpdmF0ZToKKyAgICBTVkdMZW5ndGhNb2RlIG1fbGVu
Z3RoTW9kZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyAgICAKKyNlbmRpZiAvLyBF
TkFCTEUoU1ZHKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3JfaApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZFR5cGVfaAorI2RlZmluZSBT
VkdBbmltYXRlZFR5cGVfaAorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdBbmltYXRl
RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNWR0FuaW1hdGVkVHlwZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUo
QW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFNWR0FuaW1hdGVkVHlwZSh0eXBlKSk7CisgICAgfQorICAgIAorICAgIEFuaW1hdGVk
QXR0cmlidXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgCisgICAg
U1ZHTGVuZ3RoKiYgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRMZW5ndGgpOworICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aDsKKyAgICB9CisgICAg
Citwcml2YXRlOgorICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlw
ZSkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIEFuaW1h
dGVkQXR0cmlidXRlVHlwZSBtX3R5cGU7CisgICAgCisgICAgdW5pb24gRGF0YVVuaW9uIHsKKyAg
ICAgICAgRGF0YVVuaW9uKCkKKyAgICAgICAgICAgIDogbGVuZ3RoKDApCisgICAgICAgIHsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IE1vcmUgU1ZHVW5pdHMgbmVlZCB0
byBiZSBhZGRlZCBzdGVwIGJ5IHN0ZXAuCisgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOworICAg
IH0gbV9kYXRhOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShTVkcpCisjZW5kaWYgLy8gU1ZHQW5pbWF0ZWRUeXBlX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3JfaAorI2RlZmluZSBTVkdBbmltYXRlZFR5cGVBbmltYXRvcl9oCisKKyNpZiBF
TkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZS5oIgorI2luY2x1ZGUgIlNWR0xl
bmd0aC5oIgorI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlZFR5cGVB
bmltYXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoKSB7IH0KKyAgICB2aXJ0dWFsIFBhc3NPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpID0g
MDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0
cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIGNv
bnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBm
cm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZCByZXBlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+
JiB0bywgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wg
dG9Qcm9wZXJ0eUluaGVyaXRzKSA9IDA7CisKKyAgICB2b2lkIHNldENvbnRleHRFbGVtZW50KFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KSB7IG1fY29udGV4dEVsZW1lbnQgPSBjb250ZXh0RWxl
bWVudDsgfQorICAgIAorcHJvdGVjdGVkOgorICAgIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFu
aW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlLCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKKyAg
ICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRF
bGVtZW50KQorICAgIHsKKyAgICB9CisKKyAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgbV90eXBl
OworICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5jcHAJKHJldmlzaW9uIDg3MDI3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgdm9pZCBT
VkdBbmltYXRpb25FbGVtZW50OjpwYXJzZU1hcHBlZEF0dAogCiAgICAgaWYgKGF0dHItPm5hbWUo
KSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgewogICAgICAgICBhdHRyLT52YWx1ZSgpLnN0cmlu
ZygpLnNwbGl0KCc7JywgbV92YWx1ZXMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBtX3ZhbHVlc1tpXSA9IG1fdmFs
dWVzW2ldLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
NDgsNyArMjUwLDcgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjplbmRFbGVtZW50QXQoZgog
ICAgIGFkZEVuZFRpbWUoZWxhcHNlZCgpICsgb2Zmc2V0KTsKIH0KIAotU1ZHQW5pbWF0aW9uRWxl
bWVudDo6QW5pbWF0aW9uTW9kZSBTVkdBbmltYXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKCkg
Y29uc3QKK0FuaW1hdGlvbk1vZGUgU1ZHQW5pbWF0aW9uRWxlbWVudDo6YW5pbWF0aW9uTW9kZSgp
IGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtc21pbC1hbmlt
YXRpb24tMjAwMTA5MDQvI0FuaW1GdW5jVmFsdWVzCiAgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnNldFRhZykpCkBAIC0yNjQsNyArMjY2LDcgQEAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6QW5p
bWF0aW9uTW9kZSBTVkdBbgogICAgIHJldHVybiBOb0FuaW1hdGlvbjsKIH0KIAotU1ZHQW5pbWF0
aW9uRWxlbWVudDo6Q2FsY01vZGUgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2FsY01vZGUoKSBjb25z
dAorQ2FsY01vZGUgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2FsY01vZGUoKSBjb25zdAogeyAgICAK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgi
ZGlzY3JldGUiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGxpbmVhciwgKCJsaW5lYXIiKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmgJKHJldmlzaW9uIDg3MDI3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOCBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KKyAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsNyArMzcsMjQgQEAKICNpbmNsdWRlICJVbml0QmV6
aWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKworZW51bSBBbmltYXRpb25Nb2Rl
IHsKKyAgICBOb0FuaW1hdGlvbiwKKyAgICBGcm9tVG9BbmltYXRpb24sCisgICAgRnJvbUJ5QW5p
bWF0aW9uLAorICAgIFRvQW5pbWF0aW9uLAorICAgIEJ5QW5pbWF0aW9uLAorICAgIFZhbHVlc0Fu
aW1hdGlvbiwKKyAgICBQYXRoQW5pbWF0aW9uIC8vIFVzZWQgYnkgQW5pbWF0ZU1vdGlvbi4KK307
CisKK2VudW0gQ2FsY01vZGUgeworICAgIENhbGNNb2RlRGlzY3JldGUsCisgICAgQ2FsY01vZGVM
aW5lYXIsCisgICAgQ2FsY01vZGVQYWNlZCwKKyAgICBDYWxjTW9kZVNwbGluZQorfTsKKwogY2xh
c3MgQ29uZGl0aW9uRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIFRpbWVDb250YWluZXI7CiAKQEAgLTQ5
LDcgKzY3LDcgQEAgcHVibGljOgogICAgIGZsb2F0IGdldFN0YXJ0VGltZSgpIGNvbnN0OwogICAg
IGZsb2F0IGdldEN1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgZmxvYXQgZ2V0U2ltcGxlRHVyYXRp
b24oRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIAorCiAgICAgLy8gRWxlbWVudFRpbWVDb250
cm9sCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBi
ZWdpbkVsZW1lbnRBdChmbG9hdCBvZmZzZXQpOwpAQCAtNTgsMzYgKzc2LDM2IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGlzVGFyZ2V0QXR0cmlidXRlQ1NTUHJvcGVydHkoU1ZHRWxlbWVu
dCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAorICAgIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0
OworICAgIGJvb2wgaXNBY2N1bXVsYXRlZCgpIGNvbnN0OworICAgIEFuaW1hdGlvbk1vZGUgYW5p
bWF0aW9uTW9kZSgpIGNvbnN0OworICAgIENhbGNNb2RlIGNhbGNNb2RlKCkgY29uc3Q7CisKIHBy
b3RlY3RlZDoKICAgICBTVkdBbmltYXRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0
ZSopOwogCi0gICAgZW51bSBDYWxjTW9kZSB7IENhbGNNb2RlRGlzY3JldGUsIENhbGNNb2RlTGlu
ZWFyLCBDYWxjTW9kZVBhY2VkLCBDYWxjTW9kZVNwbGluZSB9OwotICAgIENhbGNNb2RlIGNhbGNN
b2RlKCkgY29uc3Q7Ci0gICAgCi0gICAgZW51bSBBdHRyaWJ1dGVUeXBlIHsgQXR0cmlidXRlVHlw
ZUNTUywgQXR0cmlidXRlVHlwZVhNTCwgQXR0cmlidXRlVHlwZUF1dG8gfTsKKyAgICBlbnVtIEF0
dHJpYnV0ZVR5cGUgeworICAgICAgICBBdHRyaWJ1dGVUeXBlQ1NTLAorICAgICAgICBBdHRyaWJ1
dGVUeXBlWE1MLAorICAgICAgICBBdHRyaWJ1dGVUeXBlQXV0bworICAgIH07CiAgICAgQXR0cmli
dXRlVHlwZSBhdHRyaWJ1dGVUeXBlKCkgY29uc3Q7Ci0gICAgCisKICAgICBTdHJpbmcgdG9WYWx1
ZSgpIGNvbnN0OwogICAgIFN0cmluZyBieVZhbHVlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGZyb21W
YWx1ZSgpIGNvbnN0OwotICAgIAotICAgIGVudW0gQW5pbWF0aW9uTW9kZSB7IE5vQW5pbWF0aW9u
LCBUb0FuaW1hdGlvbiwgQnlBbmltYXRpb24sIFZhbHVlc0FuaW1hdGlvbiwgRnJvbVRvQW5pbWF0
aW9uLCBGcm9tQnlBbmltYXRpb24sIFBhdGhBbmltYXRpb24gfTsKLSAgICBBbmltYXRpb25Nb2Rl
IGFuaW1hdGlvbk1vZGUoKSBjb25zdDsKLSAgICAKKwogICAgIFN0cmluZyB0YXJnZXRBdHRyaWJ1
dGVCYXNlVmFsdWUoKSBjb25zdDsKICAgICB2b2lkIHNldFRhcmdldEF0dHJpYnV0ZUFuaW1hdGVk
VmFsdWUoY29uc3QgU3RyaW5nJik7Ci0gICAgCi0gICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7
Ci0gICAgYm9vbCBpc0FjY3VtdWxhdGVkKCkgY29uc3Q7CiAKICAgICAvLyBmcm9tIFNWR1NNSUxF
bGVtZW50CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0ZWRBY3RpdmVJbnRlcnZhbCgpOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb24oZmxvYXQgcGVyY2VudCwgdW5zaWduZWQgcmVwZWF0
LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGVuZGVk
QWN0aXZlSW50ZXJ2YWwoKTsKLSAgICAKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBib29sIHByZXNlcnZlRGVjbHMpOwogICAgIHZpcnR1
YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTk3
LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0LCBTVkdTTUlMRWxlbWVudCog
cmVzdWx0RWxlbWVudCkgPSAwOwogICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2Uo
Y29uc3QgU3RyaW5nJiAvKmZyb21TdHJpbmcqLywgY29uc3QgU3RyaW5nJiAvKnRvU3RyaW5nKi8p
IHsgcmV0dXJuIC0xLmY7IH0KICAgICB2aXJ0dWFsIFBhdGggYW5pbWF0aW9uUGF0aCgpIGNvbnN0
IHsgcmV0dXJuIFBhdGgoKTsgfQotICAgIAorCiAgICAgdm9pZCBjdXJyZW50VmFsdWVzRm9yVmFs
dWVzQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQsIGZsb2F0JiBlZmZlY3RpdmVQZXJjZW50LCBTdHJp
bmcmIGZyb20sIFN0cmluZyYgdG8pIGNvbnN0OwogICAgIHZvaWQgY2FsY3VsYXRlS2V5VGltZXNG
b3JDYWxjTW9kZVBhY2VkKCk7CiAgICAgZmxvYXQgY2FsY3VsYXRlUGVyY2VudEZyb21LZXlQb2lu
dHMoZmxvYXQgcGVyY2VudCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3IuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvci5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR0FuaW1h
dG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0b3JfaAorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRl
ICJTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK2NsYXNzIFNWR0FuaW1hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGVBbmltYXRvcj4gY3Jl
YXRlKEFuaW1hdGVkQXR0cmlidXRlVHlwZSwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCisg
ICAgeworICAgICAgICAvLyBGSVhNRTogQXQgdGhlIG1vbWVudCBqdXN0IFNWR0xlbmd0aCBpcyBz
dXBwb3J0ZWQuCisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhB
bmltYXRvcihjb250ZXh0RWxlbWVudCkpOworICAgIH0KK307CisgICAgCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmIC8vIFNWR0FuaW1hdG9y
X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95258</attachid>
            <date>2011-05-28 05:02:19 -0700</date>
            <delta_ts>2011-05-28 08:29:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110528140214.patch</filename>
            <type>text/plain</type>
            <size>115549</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDUtMjggIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBUaGUgZ29hbCBpcyB0byBtb3ZlIHRoZSBtYWlu
IGFuaW1hdGlvbiBsb2dpYyBmb3IgU1ZHIHVuaXRzIGZyb20gU1ZHQW5pbWF0ZUVsZW1lbnQgaW50
byB0aGUgY29ycmVzcG9uZGluZyBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAgIFN0YXJ0aW5n
IHdpdGggU1ZHTGVuZ3RoIG9uIHRoaXMgcGF0Y2guIFNWR0FuaW1hdGVFbGVtZW50IHdpbGwganVz
dCB3b3JrIHdpdGggdGhlIGdlbmVyaWMgdHlwZSBTVkdBbmltYXRlZFR5cGUuIFNWR0FuaW1hdG9y
CisgICAgICAgIGNvb3JkaW5hdGVzIHRoZSBjb25uZWN0aW9uIGZyb20gU1ZHQW5pbWF0ZWRUeXBl
IHRvIHRoZSBTVkcgdW5pdCBhbmltYXRvcnMgbGlrZSBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
IGluIFNWR0FuaW1hdGVkTGVuZ3RoLmguCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCisgICAgICAgICAgICAg
ICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1s
CisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVXaWR0aC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5o
dG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51
bWJlci10by1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1jbS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVt
YmVyLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGMuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzIHRvIGJ1aWxkIHN5c3Rl
bS4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJv
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8u
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOiBBZGRlZCBTVkdBbmltYXRlZExlbmd0aC5jcHAg
Zm9yIFdpbiBhbmQgb3RoZXIgYnVpbGQgc3lzdGVtcy4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVz
dEZvckN1cnJlbnRDb2xvcik6IE1hZGUgYWRqdXN0Rm9yQ3VycmVudENvbG9yIHB1YmxpYyBhcyBw
cmVwZXJhdGlvbiBmb3IgU1ZHQW5pbWF0ZWRDb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OmdldFBy
b3BlcnR5VmFsdWUpOiBJbmxpbmUgZnVuY3Rpb24gdG8gZ2V0IGNvbXB1dGVkU3R5bGUgb2YgQ1NT
IHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZv
ckluaGVyaXRhbmNlKTogTWFkZSBhZGp1c3RGb3JJbmhlcml0YW5jZSBhcyBwcmVwZXJhdGlvbiBm
b3IgU1ZHQW5pbWF0ZWQqIGZpbGVzLgorICAgICAgICAoV2ViQ29yZTo6bGVuZ3RoTW9kZUZvckFu
aW1hdGVkTGVuZ3RoQXR0cmlidXRlKTogR2V0IExlbmd0aE1vZGUgZm9yIFNWR0xlbmd0aCBkZXBl
bmRpbmcgb24gdGhlIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OmRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSk6IFNWR0xlbmd0aCBuZWVk
IHNwZWNpYWwgaGFuZGxpbmcgdmlhIFNWR0FuaW1hdG9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTogQ2xlYW51cC4gTWFr
ZSB1c2Ugb2YgU1ZHQW5pbWF0b3IgZm9yIFNWR0xlbmd0aC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFz
ZVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6YXBw
bHlSZXN1bHRzVG9UYXJnZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVF
bGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5oOiBBZGRlZCBu
ZXcgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvciB3aGljaCBpcyByZXNwb25zaWJsZSBm
b3IgdGhlIGFjdHVhbCBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzZXRTVkdMZW5ndGhNb2RlKToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0IHR5cGUg
Zm9yIGFuaW1hdGlvbnMgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRMZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOiBBZGRlZC4gQmFzZSBjbGFzcyBmb3IgU1ZHQW5p
bWF0ZWRMZW5ndGhBbmltYXRvciBhbmQgZnV0dXJlIFNWRyB1bml0IGFuaW1hdG9ycy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnNldENv
bnRleHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
OjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcik6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBXZSBkbyBub3QgdXNlIHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0IGZv
ciBTVkdMZW5ndGggbm93LiBIYXZlIHRvIHN0cmlwIHdoaXRlIHNwYWNlcyBoZXJlLiBXaGl0ZXNw
YWNlcyBzaG91bGRuJ3QKKyAgICAgICAgICBiZSBzdHJpcHBlZCBvbiAnZnJvbScsICd0bycgYW5k
ICdieScuIFRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBTVkdMZW5ndGggYW55bW9yZS4gQWRkZWQg
bmV3IHRlc3RzIHRvIGNoZWNrIHRoaXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKTogRW51bSBpcyBhY2Nlc3NpYmxlIGluIFdl
YkNvcmUgbmFtZXNwYWNlIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmNhbGNNb2RlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRvcjo6Y3JlYXRlKToKKwogMjAxMS0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2MzksNiArMTYzOSw3IEBA
IElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAogICAg
ICAgICBzdmcvU1ZHQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50
LmNwcAorICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAgICAgICAgIHN2Zy9TVkdB
bmltYXRlRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtMTA1NSw2ICsxMDU1LDkgQEAKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0ZWRSZWN0LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFN0cmluZy5o
JywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmgnLAorICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZFR5cGUuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yLmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRvci5oJywKICAg
ICAgICAgICAgICdzdmcvU1ZHQ29sb3IuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0RvY3VtZW50
RXh0ZW5zaW9ucy5oJywKICAgICAgICAgICAgICdzdmcvU1ZHRWxlbWVudC5oJywKQEAgLTU2NzEs
NiArNTY3NCw3IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuZ2xlLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODc2
MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjMx
NiwxMCArMjMxNiwxMyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRSZWN0Lmgg
XAogICAgIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGUuaCBcCisgICAgc3ZnL1NWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggXAogICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKICAg
ICBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmggXAorICAgIHN2
Zy9TVkdBbmltYXRvci5oIFwKICAgICBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIFwKICAgICBzdmcv
U1ZHQ2xpcFBhdGhFbGVtZW50LmggXAogICAgIHN2Zy9TVkdDb2xvci5oIFwKQEAgLTMyNTksNiAr
MzI2Miw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICAgICAg
ICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmds
ZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAor
ICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKICAgICAgICAgICAgICAg
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02NTA2Niw2ICs2NTA2Niwx
NCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRUeXBlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC02NTA4Miw2ICs2NTA5MCwxMCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5p
bWF0b3IuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3ZnXFNWR0NpcmNsZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTAzLDYgKzkwMywxMCBAQAogCQk0MUY1ODRDNzEw
NDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8q
IEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJNDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1
IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlh
Q29udHJvbHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVy
TWVkaWFDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAq
LzsgfTsKKwkJNDMzMjM4QUExMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMzIzOEE2
MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgKi87IH07CisJCTQzMzIz
OEFCMTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAv
KiBTVkdBbmltYXRlZFR5cGUuaCAqLzsgfTsKKwkJNDMzMjM4QUMxMzkxMTgwNDAwNDhBNTdDIC8q
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzMyMzhBODEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuaCAqLzsgfTsKKwkJNDMzMjM4QUQxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0Fu
aW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzMyMzhBOTEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCAqLzsgfTsKIAkJNDM1OEU4
NkExMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY3MTM2MEEyMTYw
MEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCTQzNThFODZC
MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4NjgxMzYwQTIxNjAw
RTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0gKi87IH07CiAJCTQzNThFODZD
MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY5MTM2
MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLzsg
fTsKQEAgLTc0MTksNiArNzQyMywxMCBAQAogCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyog
SlNNZXNzYWdlUG9ydEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U01lc3NhZ2VQb3J0Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEz
MDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVu
ZGVyTWVkaWFDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE2
MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRl
ZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE4MTM5MTE4MDQwMDQ4QTU3
QyAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MzMyMzhBOTEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM1OEU4NjcxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2
ODEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY5MTM2MEEyMTYwMEU0
NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI1OCw2ICsxNzI2Niw3IEBACiAJCQkJ
QjIyMjc3RTgwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICov
LAogCQkJCTA4MjNEMTU4MTI3QUQ2QUMwMDBFQkM5NSAvKiBTVkdBbmltYXRlZEludGVnZXIuaCAq
LywKIAkJCQlCMjIyNzdFOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlk
bCAqLywKKwkJCQk0MzMyMzhBNjEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRMZW5ndGgu
Y3BwICovLAogCQkJCTA4OTAyMUE4MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0
aC5oICovLAogCQkJCUIyMjI3N0VBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZExlbmd0
aC5pZGwgKi8sCiAJCQkJMDg5MDIxQUMxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5oICovLApAQCAtMTcyNzQsNiArMTcyODMsOCBAQAogCQkJCUIyMjI3N0Y2MEQwMEJG
MUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8sCiAJCQkJMDgyNTA5MzgxMjhC
RDREODAwRTJFRDhFIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3
N0Y4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAor
CQkJCTQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKKwkJ
CQk0MzMyMzhBODEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAq
LywKIAkJCQlCMjIyNzdGOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5o
ICovLAogCQkJCUIyMjI3N0ZCMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5p
ZGwgKi8sCkBAIC0xNzI4NSw2ICsxNzI5Niw3IEBACiAJCQkJQjIyMjc4MDEwRDAwQkYxRjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3ODAyMEQwMEJGMUYw
MDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4MDMwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuaWRsICovLAorCQkJCTQzMzIzOEE5MTM5
MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRvci5oICovLAogCQkJCUIyMjI3ODA0MEQwMEJGMUYw
MDcxQjc4MiAvKiBzdmdhdHRycy5pbiAqLywKIAkJCQlCMjIyNzgwNTBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQ2lyY2xlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4MDYwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0NpcmNsZUVsZW1lbnQuaCAqLywKQEAgLTIzMDA4LDYgKzIzMDIwLDkgQEAKIAkJCQlC
MTJEMjM2RTEzNTYwMzREMDAyQTI4RDQgLyogSlNNdWx0aXBsZVRyYWNrTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEMwRTMzNEQxMzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFuc2FjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEMwRTMzNEYxMzhBOTJDNzAwOERBOTRGIC8qIExldmVs
REJXcml0ZUJhdGNoLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzMyMzhBQjEzOTExODA0MDA0OEE1
N0MgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzMyMzhBQzEzOTEx
ODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQzMzIzOEFEMTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yNTcwNCw2ICsyNTcxOSw3IEBACiAJCQkJQjEyRDIzNkQxMzU2MDM0RDAwMkEyOEQ0
IC8qIEpTTXVsdGlwbGVUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEMwRTMzNEMx
MzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4QzBFMzM0RTEzOEE5MkM3MDA4REE5NEYgLyogTGV2ZWxEQldyaXRlQmF0Y2guY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDMzMjM4QUExMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVk
TGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
bEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUu
Y3BwCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTVkdBbHRHbHlw
aEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5jcHAiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVy
c2lvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKQEAg
LTg5LDcgKzkxLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoY29ucwog
ICAgIHJldHVybiBvazsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZvckN1cnJlbnRD
b2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYgY29sb3IpCit2b2lkIFNWR0Fu
aW1hdGVFbGVtZW50OjphZGp1c3RGb3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxl
bWVudCwgQ29sb3ImIGNvbG9yKQogewogICAgIEFTU0VSVCh0YXJnZXRFbGVtZW50KTsKICAgICAK
QEAgLTk5LDcgKzEwMSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9yQ3VycmVudENv
bG9yCiAgICAgICAgIGNvbG9yID0gQ29sb3IoKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFk
anVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCitzdGF0aWMgaW5saW5lIHZv
aWQgZ2V0UHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBzdmdQYXJlbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJUKHN2Z1Bh
cmVudC0+aXNTdHlsZWQoKSk7CisgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCkt
PmdldFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgp
KSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRhbmNlKFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21lbnQgdGhlIGNv
bXB1dGVkIHN0eWxlIGdldHMgcmV0dXJuZWQgYXMgYSBTdHJpbmcgYW5kIG5lZWRzIHRvIGdldCBw
YXJzZWQgYWdhaW4uCiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50IHRvIHdvcmsg
d2l0aCB0aGUgdmFsdWUgdHlwZSBkaXJlY3RseSB0byBhdm9pZCB0aGUgU3RyaW5nIHBhcnNpbmcu
CkBAIC0xMTEsNyArMTE5LDQyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb3JJbmhlcml0
YW5jZSgKIAogICAgIFNWR0VsZW1lbnQqIHN2Z1BhcmVudCA9IHN0YXRpY19jYXN0PFNWR0VsZW1l
bnQqPihwYXJlbnQpOwogICAgIGlmIChzdmdQYXJlbnQtPmlzU3R5bGVkKCkpCi0gICAgICAgIHZh
bHVlID0gY29tcHV0ZWRTdHlsZShzdmdQYXJlbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKGNzc1Byb3Bl
cnR5SUQoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSkpOworICAgICAgICBnZXRQcm9wZXJ0eVZh
bHVlKHN2Z1BhcmVudCwgYXR0cmlidXRlTmFtZSwgdmFsdWUpOworfQorCitzdGF0aWMgaW5saW5l
IFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZp
ZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5ndGhNb2RlRm9yTGVuZ3RoQXR0cmlidXRlTWFwOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwg
c19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAgCisgICAgaWYgKHNfbGVuZ3RoTW9kZU1hcC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eEF0dHIsIExl
bmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnlB
dHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdO
YW1lczo6Y3hBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjpjeUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0
aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmR5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7
CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmZ4QXR0ciwgTGVuZ3RoTW9k
ZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZnlBdHRyLCBM
ZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6
ckF0dHIsIExlbmd0aE1vZGVPdGhlcik7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZH
TmFtZXM6OndpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2Rl
TWFwLnNldChTVkdOYW1lczo6aGVpZ2h0QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OngxQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsK
KyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eDJBdHRyLCBMZW5ndGhNb2Rl
V2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5MUF0dHIsIExl
bmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5
MkF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNW
R05hbWVzOjpyZWZYQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2Rl
TWFwLnNldChTVkdOYW1lczo6cmVmWUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjptYXJrZXJXaWR0aEF0dHIsIExlbmd0aE1vZGVX
aWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6Om1hcmtlckhlaWdo
dEF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOyAgICAgICAgCisgICAgICAgIHNfbGVuZ3RoTW9kZU1h
cC5zZXQoU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAg
ICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIsIExlbmd0aE1v
ZGVXaWR0aCk7CisgICAgfQorICAgIAorICAgIGlmIChzX2xlbmd0aE1vZGVNYXAuY29udGFpbnMo
YXR0ck5hbWUpKQorICAgICAgICByZXR1cm4gc19sZW5ndGhNb2RlTWFwLmdldChhdHRyTmFtZSk7
CisgICAgCisgICAgcmV0dXJuIExlbmd0aE1vZGVPdGhlcjsKIH0KIAogYm9vbCBTVkdBbmltYXRl
RWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29uc3QKQEAgLTEzNiwxNiArMTc5LDE3
IEBAIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkRW51
bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6CiAgICAgY2FzZSBBbmltYXRl
ZE51bWJlckxpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgorICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvOgogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6
CiAgICAgICAgIHJldHVybiBBbmltYXRlZFN0cmluZzsKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRMZW5ndGg7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xl
OgogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAg
ICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyOwog
ICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgpAQCAtMTU0LDggKzE5OCw4IEBAIEFuaW1hdGVkQXR0cmli
dXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9pbnRz
OwogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29sb3I7
Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246CiAgICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxp
c3Q6CisgICAgY2FzZSBBbmltYXRlZFVua25vd246CiAgICAgICAgIC8vIEFuaW1hdGlvbnMgb2Yg
dHJhbnNmb3JtIGxpc3RzIGFyZSBub3QgYWxsb3dlZCBmb3IgPGFuaW1hdGU+IG9yIDxzZXQ+CiAg
ICAgICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0bWwjQW5pbWF0aW9u
QXR0cmlidXRlc0FuZFByb3BlcnRpZXMKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsK
QEAgLTE3MSwxNCArMjE1LDkgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5p
bWF0ZQogICAgIEFTU0VSVChyZXN1bHRFbGVtZW50KTsKICAgICBib29sIGlzSW5GaXJzdEhhbGZP
ZkFuaW1hdGlvbiA9IHBlcmNlbnRhZ2UgPCAwLjVmOwogICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0
aW9uTW9kZSA9IHRoaXMtPmFuaW1hdGlvbk1vZGUoKTsKLSAgICBTVkdFbGVtZW50KiB0YXJnZXRF
bGVtZW50ID0gMDsKLSAgICAvLyBBdm9pZCB0YXJnZXRFbGVtZW50KCkgY2FsbCBpZiBwb3NzaWJs
ZS4gSXQgbWlnaHQgc2xvdyBkb3duIGFuaW1hdGlvbnMuCi0gICAgaWYgKG1fZnJvbVByb3BlcnR5
VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5o
ZXJpdFZhbHVlCi0gICAgICAgIHx8IG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEN1cnJlbnRD
b2xvclZhbHVlIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkg
ewotICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwotICAgICAg
ICBpZiAoIXRhcmdldEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7CisgICAgaWYg
KCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnNldFRhZykpCiAgICAgICAgIHBlcmNlbnRhZ2UgPSAxOwpAQCAtMTg5LDcg
KzIyOCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAv
LyBDYW4ndCBhY2N1bXVsYXRlIG92ZXIgYSBzdHJpbmcgcHJvcGVydHkuCiAgICAgaWYgKHJlc3Vs
dHMtPm1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkU3RyaW5nICYmIG1fYW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlICE9IEFuaW1hdGVkU3RyaW5nKQogICAgICAgICByZXR1cm47Ci0gICAg
aWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7CisgICAgc3dp
dGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6
IHsKICAgICAgICAgLy8gVG8gYW5pbWF0aW9uIHVzZXMgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBs
b3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFzIHRoZSBiYXNlIHZhbHVlLgogICAgICAgICBpZiAo
YW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKICAgICAgICAgICAgIG1fZnJvbU51bWJlciA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWROdW1iZXI7CkBAIC0yMjMsNyArMjYzLDcgQEAgdm9pZCBTVkdB
bmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICAgICAgcmVzdWx0cy0+bV9h
bmltYXRlZE51bWJlciA9IG51bWJlcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0gCi0gICAgaWYg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBjYXNlIEFu
aW1hdGVkQ29sb3I6IHsKICAgICAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24p
CiAgICAgICAgICAgICBtX2Zyb21Db2xvciA9IHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xvcjsKIApA
QCAtMjU2LDcgKzI5Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1h
dGUKICAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xvciA9IGNvbG9yOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZFBhdGgpIHsKKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBpZiAoYW5pbWF0
aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikgewogICAgICAgICAgICAgQVNTRVJUKHJlc3VsdHMtPm1f
YW5pbWF0ZWRQYXRoUG9pbnRlcik7CiAgICAgICAgICAgICBtX2Zyb21QYXRoID0gcmVzdWx0cy0+
bV9hbmltYXRlZFBhdGhQb2ludGVyLT5jb3B5KCk7CkBAIC0yODksNyArMzI5LDcgQEAgdm9pZCBT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
UG9pbnRzKSB7CisgICAgY2FzZSBBbmltYXRlZFBvaW50czogewogICAgICAgICBpZiAoIXBlcmNl
bnRhZ2UpCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gbV9mcm9tUG9p
bnRzOwogICAgICAgICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEpCkBAIC0zMDYsNiArMzQ2LDE2
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAg
ICAgQVNTRVJUKG1fYW5pbWF0b3IpOworICAgICAgICAvLyBUYXJnZXQgZWxlbWVudCBtaWdodCBo
YXZlIGNoYW5nZWQuCisgICAgICAgIG1fYW5pbWF0b3ItPnNldENvbnRleHRFbGVtZW50KHRhcmdl
dEVsZW1lbnQpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVBbmltYXRlZFZhbHVlKHRo
aXMsIHBlcmNlbnRhZ2UsIHJlcGVhdCwgbV9mcm9tVHlwZSwgbV90b1R5cGUsIHJlc3VsdHMtPm1f
YW5pbWF0ZWRUeXBlLCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUsIG1f
dG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBBU1NFUlQoYW5p
bWF0aW9uTW9kZSA9PSBGcm9tVG9BbmltYXRpb24gfHwgYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1h
dGlvbiB8fCBhbmltYXRpb25Nb2RlID09IFZhbHVlc0FuaW1hdGlvbik7CiAgICAgLy8gUmVwbGFj
ZSAnY3VycmVudENvbG9yJyAvICdpbmhlcml0JyBieSB0aGVpciBjb21wdXRlZCBwcm9wZXJ0eSB2
YWx1ZXMuCiAgICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSkK
QEAgLTM0Nyw3ICszOTcsOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9t
QW5kCiAKICAgICAvLyBGSVhNRTogTmVlZHMgbW9yZSBzb2xpZCB3YXkgZGV0ZXJtaW5lIHRhcmdl
dCBhdHRyaWJ1dGUgdHlwZS4KICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWlu
ZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAgICBpZiAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3aXRjaCAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6IHsKICAgICAgICAgYm9v
bCBmcm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGZyb21T
dHJpbmcpOwogICAgICAgICBib29sIHRvSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlz
Q3VycmVudENvbG9yKHRvU3RyaW5nKTsKICAgICAgICAgaWYgKGZyb21Jc0N1cnJlbnRDb2xvcikK
QEAgLTM2MiwxNCArNDEzLDE4IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZy
b21BbmQKICAgICAgICAgYm9vbCB0b0lzVmFsaWQgPSBtX3RvQ29sb3IuaXNWYWxpZCgpIHx8IHRv
SXNDdXJyZW50Q29sb3IgfHwgbV90b1Byb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZTsK
ICAgICAgICAgaWYgKChmcm9tSXNWYWxpZCAmJiB0b0lzVmFsaWQpIHx8ICh0b0lzVmFsaWQgJiYg
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uKSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1i
ZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6IHsK
ICAgICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAgICAgIGlmIChwYXJzZU51bWJl
clZhbHVlQW5kVW5pdCh0b1N0cmluZywgbV90b051bWJlciwgbV9udW1iZXJVbml0KSkgewogICAg
ICAgICAgICAgLy8gRm9yIHRvLWFuaW1hdGlvbnMgdGhlIGZyb20gbnVtYmVyIGlzIGNhbGN1bGF0
ZWQgbGF0ZXIKICAgICAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
fHwgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251
bWJlclVuaXQpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0gICAg
fSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBhdGgpIHsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAgICAgICAgIFNW
R1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYo
KTsKICAgICAgICAgaWYgKGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5n
KHRvU3RyaW5nLCBtX3RvUGF0aCwgVW5hbHRlcmVkUGFyc2luZykpIHsKICAgICAgICAgICAgIC8v
IEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxhdGVyCkBA
IC0zNzgsMTMgKzQzMywyNSBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9t
QW5kCiAgICAgICAgIH0KICAgICAgICAgbV9mcm9tUGF0aC5jbGVhcigpOwogICAgICAgICBtX3Rv
UGF0aC5jbGVhcigpOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0g
QW5pbWF0ZWRQb2ludHMpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0
ZWRQb2ludHM6IHsKICAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFyKCk7CiAgICAgICAgIGlmIChw
b2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRzLCBmcm9tU3RyaW5nKSkgewogICAgICAg
ICAgICAgbV90b1BvaW50cy5jbGVhcigpOwogICAgICAgICAgICAgaWYgKHBvaW50c0xpc3RGcm9t
U1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1hdG9yOjpjcmVhdGUoQW5pbWF0
ZWRMZW5ndGgsIHRhcmdldEVsZW1lbnQpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yKj4obV9hbmltYXRvci5nZXQoKSktPnNldFNWR0xlbmd0aE1vZGUobGVu
Z3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUoKSkpOworICAg
ICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90
b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBtX2Zyb21TdHJpbmcg
PSBmcm9tU3RyaW5nOwogICAgIG1fdG9TdHJpbmcgPSB0b1N0cmluZzsKQEAgLTQwMiw3ICs0Njks
OCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAKICAgICBBU1NF
UlQoIWhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwot
ICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAg
c3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xv
cjogewogICAgICAgICBib29sIGZyb21Jc0N1cnJlbnRDb2xvciA9IGF0dHJpYnV0ZVZhbHVlSXND
dXJyZW50Q29sb3IoZnJvbVN0cmluZyk7CiAgICAgICAgIGJvb2wgYnlJc0N1cnJlbnRDb2xvciA9
IGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoYnlTdHJpbmcpOwogICAgICAgICBpZiAoZnJv
bUlzQ3VycmVudENvbG9yKQpAQCAtNDE3LDcgKzQ4NSwxNiBAQCBib29sIFNWR0FuaW1hdGVFbGVt
ZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGlmICgoIW1fZnJvbUNvbG9yLmlzVmFsaWQo
KSAmJiAhZnJvbUlzQ3VycmVudENvbG9yKQogICAgICAgICAgICAgfHwgKCFtX3RvQ29sb3IuaXNW
YWxpZCgpICYmICFieUlzQ3VycmVudENvbG9yKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDogeworICAgICAgICBtX2FuaW1hdG9yID0gU1ZHQW5pbWF0b3I6OmNyZWF0ZShB
bmltYXRlZExlbmd0aCwgdGFyZ2V0RWxlbWVudCk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3IqPihtX2FuaW1hdG9yLmdldCgpKS0+c2V0U1ZHTGVuZ3RoTW9k
ZShsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgpKSk7
CisgICAgICAgIG1fYW5pbWF0b3ItPmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBl
LCBtX3RvVHlwZSwgZnJvbVN0cmluZywgYnlTdHJpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIH0KKyAgICBkZWZhdWx0OgogICAgICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsK
ICAgICAgICAgbV9mcm9tTnVtYmVyID0gMDsKICAgICAgICAgaWYgKCFmcm9tU3RyaW5nLmlzRW1w
dHkoKSAmJiAhcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVy
LCBtX251bWJlclVuaXQpKQpAQCAtNDM2LDEzICs1MTMsMTUgQEAgdm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgIG1fYW5pbWF0ZWRTdHJpbmcgPSBiYXNlU3RyaW5n
OwogICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBsYXN0VHlwZSA9IG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgbV9hbmltYXRlZENvbG9y
ID0gYmFzZVN0cmluZy5pc0VtcHR5KCkgPyBDb2xvcigpIDogU1ZHQ29sb3I6OmNvbG9yRnJvbVJH
QkNvbG9yU3RyaW5nKGJhc2VTdHJpbmcpOwogICAgICAgICBpZiAoaXNDb250cmlidXRpbmcoZWxh
cHNlZCgpKSkgewogICAgICAgICAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBsYXN0VHlw
ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgaWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBtX2FuaW1hdGVkTnVtYmVyID0gMDsKICAgICAgICAgICAgIG1fbnVt
YmVyVW5pdCA9IFN0cmluZygpOwpAQCAtNDUwLDE1ICs1MjksMjQgQEAgdm9pZCBTVkdBbmltYXRl
RWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgICAgICB9CiAgICAgICAgIGlmIChwYXJzZU51
bWJlclZhbHVlQW5kVW5pdChiYXNlU3RyaW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVu
aXQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJp
YnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5p
bWF0ZWRQYXRoOiB7CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoLmNsZWFyKCk7CiAgICAgICAgIFNW
R1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYo
KTsKICAgICAgICAgZmFjdG9yeS0+YnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoYmFz
ZVN0cmluZywgbV9hbmltYXRlZFBhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2Fu
aW1hdGVkUGF0aFBvaW50ZXIgPSBtX2FuaW1hdGVkUGF0aC5nZXQoKTsKICAgICAgICAgcmV0dXJu
OwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2lu
dHMpIHsKKyAgICB9CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAgICAgICAgbV9hbmltYXRl
ZFBvaW50cy5jbGVhcigpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBbmltYXRlZExlbmd0
aDogeworICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKEFu
aW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUtPnNldExlbmd0aChuZXcgU1ZH
TGVuZ3RoKGxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1l
KCkpLCBiYXNlU3RyaW5nKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gQW5p
bWF0ZWRTdHJpbmc7CiB9CkBAIC00ODMsNiArNTcxLDggQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVu
dDo6YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2FuaW1hdGVk
QXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBvaW50cykKICAgICAgICAgdmFsdWVUb0FwcGx5ID0g
bV9hbmltYXRlZFBvaW50cy5pc0VtcHR5KCkgPyBtX2FuaW1hdGVkU3RyaW5nIDogbV9hbmltYXRl
ZFBvaW50cy52YWx1ZUFzU3RyaW5nKCk7CisgICAgZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0
ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpCisgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0
ZWRUeXBlLT5sZW5ndGgoKS52YWx1ZUFzU3RyaW5nKCk7CiAgICAgZWxzZQogICAgICAgICB2YWx1
ZVRvQXBwbHkgPSBtX2FuaW1hdGVkU3RyaW5nOwogICAgIApAQCAtNDkxLDYgKzU4MSw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGEKICAgICAKIGZsb2F0IFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCiB7CisgICAgLy8gVE9ETzogRGlzdGFuY2UgY2FsY3Vs
YXRpb24gc2hvdWxkIGJlIGRvbmUgaW4gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuCiAgICAgU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKICAgICBpZiAo
IXRhcmdldEVsZW1lbnQpCiAgICAgICAgIHJldHVybiAtMTsKQEAgLTUxNCw4ICs2MDUsMTQgQEAg
ZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbgogICAgICAgICAgICAgcmV0
dXJuIC0xOwogICAgICAgICByZXR1cm4gQ29sb3JEaXN0YW5jZShmcm9tLCB0bykuZGlzdGFuY2Uo
KTsKICAgICB9CisgICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTGVu
Z3RoKSB7CisgICAgICAgIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSA9IGxlbmd0aE1vZGVGb3JB
bmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKCkpOworICAgICAgICBTVkdMZW5n
dGggZnJvbSA9IFNWR0xlbmd0aChsZW5ndGhNb2RlLCBmcm9tU3RyaW5nKTsKKyAgICAgICAgU1ZH
TGVuZ3RoIHRvID0gU1ZHTGVuZ3RoKGxlbmd0aE1vZGUsIHRvU3RyaW5nKTsKKyAgICAgICAgcmV0
dXJuIGZhYnNmKHRvLnZhbHVlKHRhcmdldEVsZW1lbnQpIC0gZnJvbS52YWx1ZSh0YXJnZXRFbGVt
ZW50KSk7CisgICAgfQogICAgIHJldHVybiAtMTsKIH0KLSAgIAorCiB9CiAjZW5kaWYgLy8gRU5B
QkxFKFNWRykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZp
c2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTMgQEAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFC
TEUoU1ZHX0FOSU1BVElPTikKIAogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0u
aCIKICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDYg
KzQyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFs
IH5TVkdBbmltYXRlRWxlbWVudCgpOworICAgIAorICAgIHN0YXRpYyB2b2lkIGFkanVzdEZvckN1
cnJlbnRDb2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYpOworICAgIHZvaWQg
YWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYsIFN0cmluZyYgdmFsdWUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CkBAIC04Miw2ICs4OCwx
MiBAQCBwcml2YXRlOgogICAgIFNWR1BvaW50TGlzdCBtX2Zyb21Qb2ludHM7CiAgICAgU1ZHUG9p
bnRMaXN0IG1fdG9Qb2ludHM7CiAgICAgU1ZHUG9pbnRMaXN0IG1fYW5pbWF0ZWRQb2ludHM7Cisg
ICAgCisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9mcm9tVHlwZTsKKyAgICBPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvVHlwZTsKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBt
X2FuaW1hdGVkVHlwZTsKKyAgICAKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+
IG1fYW5pbWF0b3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiAr
MjMsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmYuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxl
bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDcgKzM2LDI4IEBAIERFQ0xB
UkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHQW5pbWF0ZWRMZW4KICNkZWZpbmUgREVGSU5FX0FOSU1B
VEVEX0xFTkdUSChPd25lclR5cGUsIERPTUF0dHJpYnV0ZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQ
cm9wZXJ0eSkgXAogREVGSU5FX0FOSU1BVEVEX1BST1BFUlRZKE93bmVyVHlwZSwgRE9NQXR0cmli
dXRlLCBET01BdHRyaWJ1dGUubG9jYWxOYW1lKCksIFNWR0FuaW1hdGVkTGVuZ3RoLCBTVkdMZW5n
dGgsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCiAKKyNpZiBFTkFCTEUoU1ZHX0FOSU1B
VElPTikKK2NsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgOiBwdWJsaWMgU1ZHQW5pbWF0
ZWRUeXBlQW5pbWF0b3IgeworICAgIAorcHVibGljOgorICAgIFNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3IoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOworICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoKSB7IH0KKworICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmlt
YXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpOworCisg
ICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93
blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGJ5U3RyaW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShTVkdTTUlMRWxlbWVudCosIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgYW5pbWF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMp
OworCisgICAgdm9pZCBzZXRTVkdMZW5ndGhNb2RlKFNWR0xlbmd0aE1vZGUgbW9kZSkgeyBtX2xl
bmd0aE1vZGUgPSBtb2RlOyB9CisKK3ByaXZhdGU6CisgICAgU1ZHTGVuZ3RoTW9kZSBtX2xlbmd0
aE1vZGU7Cit9OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKFNW
R19BTklNQVRJT04pCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZFR5cGVfaAorI2RlZmluZSBTVkdBbmlt
YXRlZFR5cGVfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGguaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlZFR5cGUgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFR5cGUodHlwZSkpOworICAgIH0K
KyAgICAKKyAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQorICAgIAorICAgIFNWR0xlbmd0aCYgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOworICAgICAgICByZXR1cm4gKm1fZGF0YS5s
ZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBzZXRMZW5ndGgoU1ZHTGVuZ3RoKiBsZW5ndGgpCisg
ICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAg
bV9kYXRhLmxlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisgICAgCitwcml2YXRlOgorICAgIFNWR0Fu
aW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSkKKyAgICAgICAgOiBtX3R5cGUo
dHlwZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBtX3R5
cGU7CisgICAgCisgICAgdW5pb24gRGF0YVVuaW9uIHsKKyAgICAgICAgRGF0YVVuaW9uKCkKKyAg
ICAgICAgICAgIDogbGVuZ3RoKDApCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLy8gRklYTUU6IE1vcmUgU1ZHVW5pdHMgbmVlZCB0byBiZSBhZGRlZCBzdGVwIGJ5IHN0
ZXAuCisgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOworICAgIH0gbV9kYXRhOworfTsKKyAgICAK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJM
RShTVkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVkVHlwZV9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3JfaAorCisj
aWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGVBbmltYXRvcigpIHsgfQorICAgIHZpcnR1YWwgUGFz
c093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JikgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMo
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0
bywgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJp
bmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVudCosIGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIHRvLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywg
Ym9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpID0gMDsKKworICAgIHZvaWQgc2V0Q29udGV4dEVsZW1l
bnQoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpIHsgbV9jb250ZXh0RWxlbWVudCA9IGNvbnRl
eHRFbGVtZW50OyB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IoQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoY29u
dGV4dEVsZW1lbnQpCisgICAgeworICAgIH0KKworICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBt
X3R5cGU7CisgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5J
TUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yX2gKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDg3NjA5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTksNiArMTU5LDggQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZU1h
cHBlZEF0dAogCiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikg
ewogICAgICAgICBhdHRyLT52YWx1ZSgpLnN0cmluZygpLnNwbGl0KCc7JywgbV92YWx1ZXMpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpCisg
ICAgICAgICAgICBtX3ZhbHVlc1tpXSA9IG1fdmFsdWVzW2ldLnN0cmlwV2hpdGVTcGFjZSgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNDgsNyArMjUwLDcgQEAgdm9pZCBTVkdBbmlt
YXRpb25FbGVtZW50OjplbmRFbGVtZW50QXQoZgogICAgIGFkZEVuZFRpbWUoZWxhcHNlZCgpICsg
b2Zmc2V0KTsKIH0KIAotU1ZHQW5pbWF0aW9uRWxlbWVudDo6QW5pbWF0aW9uTW9kZSBTVkdBbmlt
YXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKCkgY29uc3QKK0FuaW1hdGlvbk1vZGUgU1ZHQW5p
bWF0aW9uRWxlbWVudDo6YW5pbWF0aW9uTW9kZSgpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwMS9SRUMtc21pbC1hbmltYXRpb24tMjAwMTA5MDQvI0FuaW1GdW5jVmFs
dWVzCiAgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpCkBAIC0yNjQsNyArMjY2
LDcgQEAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6QW5pbWF0aW9uTW9kZSBTVkdBbgogICAgIHJldHVy
biBOb0FuaW1hdGlvbjsKIH0KIAotU1ZHQW5pbWF0aW9uRWxlbWVudDo6Q2FsY01vZGUgU1ZHQW5p
bWF0aW9uRWxlbWVudDo6Y2FsY01vZGUoKSBjb25zdAorQ2FsY01vZGUgU1ZHQW5pbWF0aW9uRWxl
bWVudDo6Y2FsY01vZGUoKSBjb25zdAogeyAgICAKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgiZGlzY3JldGUiKSk7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpbmVhciwgKCJsaW5lYXIiKSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHJldmlzaW9uIDg3NjA5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8
ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIE1jQ29ybWFjayA8
Y2FtQG1jYy5pZC5hdT4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYs
NyArMzcsMjQgQEAKICNpbmNsdWRlICJVbml0QmV6aWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICAKKworZW51bSBBbmltYXRpb25Nb2RlIHsKKyAgICBOb0FuaW1hdGlvbiwKKyAgICBG
cm9tVG9BbmltYXRpb24sCisgICAgRnJvbUJ5QW5pbWF0aW9uLAorICAgIFRvQW5pbWF0aW9uLAor
ICAgIEJ5QW5pbWF0aW9uLAorICAgIFZhbHVlc0FuaW1hdGlvbiwKKyAgICBQYXRoQW5pbWF0aW9u
IC8vIFVzZWQgYnkgQW5pbWF0ZU1vdGlvbi4KK307CisKK2VudW0gQ2FsY01vZGUgeworICAgIENh
bGNNb2RlRGlzY3JldGUsCisgICAgQ2FsY01vZGVMaW5lYXIsCisgICAgQ2FsY01vZGVQYWNlZCwK
KyAgICBDYWxjTW9kZVNwbGluZQorfTsKKwogY2xhc3MgQ29uZGl0aW9uRXZlbnRMaXN0ZW5lcjsK
IGNsYXNzIFRpbWVDb250YWluZXI7CiAKQEAgLTQ5LDcgKzY3LDcgQEAgcHVibGljOgogICAgIGZs
b2F0IGdldFN0YXJ0VGltZSgpIGNvbnN0OwogICAgIGZsb2F0IGdldEN1cnJlbnRUaW1lKCkgY29u
c3Q7CiAgICAgZmxvYXQgZ2V0U2ltcGxlRHVyYXRpb24oRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owot
ICAgIAorCiAgICAgLy8gRWxlbWVudFRpbWVDb250cm9sCiAgICAgdmlydHVhbCB2b2lkIGJlZ2lu
RWxlbWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkVsZW1lbnRBdChmbG9hdCBvZmZzZXQp
OwpAQCAtNTgsMzYgKzc2LDM2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzVGFyZ2V0
QXR0cmlidXRlQ1NTUHJvcGVydHkoU1ZHRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
IAorICAgIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0OworICAgIGJvb2wgaXNBY2N1bXVsYXRlZCgp
IGNvbnN0OworICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSgpIGNvbnN0OworICAgIENh
bGNNb2RlIGNhbGNNb2RlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBTVkdBbmltYXRpb25F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgYm9vbCBpc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCi0gICAgZW51bSBDYWxjTW9kZSB7
IENhbGNNb2RlRGlzY3JldGUsIENhbGNNb2RlTGluZWFyLCBDYWxjTW9kZVBhY2VkLCBDYWxjTW9k
ZVNwbGluZSB9OwotICAgIENhbGNNb2RlIGNhbGNNb2RlKCkgY29uc3Q7Ci0gICAgCi0gICAgZW51
bSBBdHRyaWJ1dGVUeXBlIHsgQXR0cmlidXRlVHlwZUNTUywgQXR0cmlidXRlVHlwZVhNTCwgQXR0
cmlidXRlVHlwZUF1dG8gfTsKKyAgICBlbnVtIEF0dHJpYnV0ZVR5cGUgeworICAgICAgICBBdHRy
aWJ1dGVUeXBlQ1NTLAorICAgICAgICBBdHRyaWJ1dGVUeXBlWE1MLAorICAgICAgICBBdHRyaWJ1
dGVUeXBlQXV0bworICAgIH07CiAgICAgQXR0cmlidXRlVHlwZSBhdHRyaWJ1dGVUeXBlKCkgY29u
c3Q7Ci0gICAgCisKICAgICBTdHJpbmcgdG9WYWx1ZSgpIGNvbnN0OwogICAgIFN0cmluZyBieVZh
bHVlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGZyb21WYWx1ZSgpIGNvbnN0OwotICAgIAotICAgIGVu
dW0gQW5pbWF0aW9uTW9kZSB7IE5vQW5pbWF0aW9uLCBUb0FuaW1hdGlvbiwgQnlBbmltYXRpb24s
IFZhbHVlc0FuaW1hdGlvbiwgRnJvbVRvQW5pbWF0aW9uLCBGcm9tQnlBbmltYXRpb24sIFBhdGhB
bmltYXRpb24gfTsKLSAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUoKSBjb25zdDsKLSAg
ICAKKwogICAgIFN0cmluZyB0YXJnZXRBdHRyaWJ1dGVCYXNlVmFsdWUoKSBjb25zdDsKICAgICB2
b2lkIHNldFRhcmdldEF0dHJpYnV0ZUFuaW1hdGVkVmFsdWUoY29uc3QgU3RyaW5nJik7Ci0gICAg
Ci0gICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0FjY3VtdWxhdGVkKCkg
Y29uc3Q7CiAKICAgICAvLyBmcm9tIFNWR1NNSUxFbGVtZW50CiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0ZWRBY3RpdmVJbnRlcnZhbCgpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb24o
ZmxvYXQgcGVyY2VudCwgdW5zaWduZWQgcmVwZWF0LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxl
bWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGVuZGVkQWN0aXZlSW50ZXJ2YWwoKTsKLSAgICAKKwog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBi
b29sIHByZXNlcnZlRGVjbHMpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5
KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTk3LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5z
aWduZWQgcmVwZWF0LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCkgPSAwOwogICAgIHZp
cnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiAvKmZyb21TdHJpbmcq
LywgY29uc3QgU3RyaW5nJiAvKnRvU3RyaW5nKi8pIHsgcmV0dXJuIC0xLmY7IH0KICAgICB2aXJ0
dWFsIFBhdGggYW5pbWF0aW9uUGF0aCgpIGNvbnN0IHsgcmV0dXJuIFBhdGgoKTsgfQotICAgIAor
CiAgICAgdm9pZCBjdXJyZW50VmFsdWVzRm9yVmFsdWVzQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQs
IGZsb2F0JiBlZmZlY3RpdmVQZXJjZW50LCBTdHJpbmcmIGZyb20sIFN0cmluZyYgdG8pIGNvbnN0
OwogICAgIHZvaWQgY2FsY3VsYXRlS2V5VGltZXNGb3JDYWxjTW9kZVBhY2VkKCk7CiAgICAgZmxv
YXQgY2FsY3VsYXRlUGVyY2VudEZyb21LZXlQb2ludHMoZmxvYXQgcGVyY2VudCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaWZuZGVmIFNWR0FuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0b3Jf
aAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRMZW5ndGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3Mg
U1ZHQW5pbWF0b3IgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yPiBjcmVhdGUoQW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBhbmltYXRpb24gc3VwcG9ydCBmb3IgYWxs
IFNWRyB1bml0cy4KKyAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGVUeXBlKSB7CisgICAgICAgIGNh
c2UgQW5pbWF0ZWRMZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQpKTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVtZW50KSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjZW5kaWYgLy8gU1ZH
QW5pbWF0b3JfaApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODc2MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTEtMDUtMjggIERpcmsg
U2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBh
bmltYXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sg
Y29ycmVjdCBiZWhhdmlvciBvZiBTVkdMZW5ndGggYW5pbWF0aW9ucy4KKworICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVI
ZWlnaHQuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToK
KyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVP
dGhlci5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgor
ICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdp
ZHRoLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6Cisg
ICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTEuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanM6IEFkZGVkLgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToK
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAg
IChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxl
Myk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanM6IEFkZGVkLgorICAgICAgICAoc2Ft
cGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgor
ICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVU
ZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1udW1iZXIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAg
ICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3Qp
OgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBjLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2Ft
cGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wZXJjZW50YWdlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2Ft
cGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wdC5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgor
ICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanM6
IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAg
KHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qczogQWRkZWQuCisg
ICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6
CisgICAgICAgIChzYW1wbGU0KToKKyAgICAgICAgKHNhbXBsZTUpOgorICAgICAgICAoZXhlY3V0
ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVu
Z3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1M
ZW5ndGhNb2RlV2lkdGguaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUt
MS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2Vu
dGFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFs
dWVzLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTI4ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5v
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkLiBUZXN0IGV4
cGVjdGF0aW9ucyB1cGRhdGUgYWZ0ZXIgcjg3NjA1CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWln
aHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5n
dGhNb2RlSGVpZ2h0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0
LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZh
bHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyBy
ZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFs
LnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFT
UyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVP
dGhlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2lyY2xlLnIuYW5p
bVZhbC52YWx1ZSBpcyAxMAorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDEwCitQQVNT
IGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMTMyLjQ3NQorUEFTUyBjaXJjbGUuci5iYXNlVmFs
LnZhbHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSBpcyAyNTQuOQor
UEFTUyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDI1NC45CitQQVNTIGNpcmNsZS5yLmFuaW1W
YWwudmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAxMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRl
c3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1p
YyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5n
dGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xl
bmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjAwCitQQVNTIHJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAzMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIGlzIDMwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9k
ZVdpZHRoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9o
MT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdp
ZHRoLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGgg
aW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGJldHdlZW4gbnVtYmVyIGFuZCB1bml0LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQg
dmFsdWU6IE5vIHNwYWNlcyBiZWZvcmUgdmFsdWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFs
aWQtdmFsdWUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQt
dmFsdWUtMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdB
bmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcg
MS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGFm
dGVyIG51bWJlciBhbmQgdW5pdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRl
c3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1p
YyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1i
ZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8t
bnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwv
aDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1u
dW1iZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1jbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSBpcyAxNDQuNDkKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDE0NC40OQorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTg4Ljk4CitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxODguOTgKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tY20uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNt
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWVtcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZW1zLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tZW1zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZXhzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1pbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gaW5jaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAx
NzAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE3MAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAy
NDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8taW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5p
bWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEu
MSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tbnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkg
QEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gbnVtYmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIw
MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gcGMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTcw
CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjQw
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LXBjLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1h
dGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1wYy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMzUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAzNTAKK1BB
U1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDYwMAorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgNjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGVyY2VudGFnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24g
dGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wZXJjZW50YWdlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTYxLjE1CitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxNjEuMTUKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE4OC45
NworUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk3CitQQVNTIHJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHgtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9u
IHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1weC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0
aCBhbmltYXRpb24gc2V0IHdpdGggJ3ZhbHVlcycsIGRpZmZlcmVudCB1bml0cyBhbmQgZGlmZmVy
ZW50IGNvdW50IG9mIHNwYWNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMzAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEzMAorUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTUxLjE4CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTEu
MTgKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDU3NgorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgNTc2CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAy
NjYuNworUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjY2LjcKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12
YWx1ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVl
cy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVp
Z2h0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBA
CitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVIZWln
aHQuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50City
b290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjYwMCIpOworcm9vdFNWR0VsZW1l
bnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNDAwIik7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1l
bnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAi
MTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIs
ICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5p
bWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiaGVpZ2h0Iik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAi
NHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoInRvIiwgIjUwJSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RT
VkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAor
ZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25z
CisgICAgc2hvdWxkQmUoInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQuYW5p
bVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0
LmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1w
bGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFs
dWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQu
YmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3Qo
KSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25J
ZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24i
LCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAg
ICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3Qi
LCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlT3RoZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3Ro
ZXIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZU90aGVyLiIpOworY3JlYXRlU1ZHVGVzdENh
c2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0
IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgY2lyY2xlID0gY3JlYXRl
U1ZHRWxlbWVudCgiY2lyY2xlIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJpZCIsICJjaXJjbGUi
KTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoImN4IiwgIjUwIik7CitjaXJjbGUuc2V0QXR0cmlidXRl
KCJjeSIsICI1MCIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiciIsICIxMCIpOworY2lyY2xlLnNl
dEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgib25jbGlj
ayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgi
YW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiciIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRz
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoInRvIiwgIjUwJSIpOworY2lyY2xlLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNW
R0VsZW1lbnQuYXBwZW5kQ2hpbGQoY2lyY2xlKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwgIjEwIik7CisgICAgc2hv
dWxkQmUoImNpcmNsZS5yLmJhc2VWYWwudmFsdWUiLCAiMTAiKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5hbmltVmFsLnZhbHVl
IiwgIjEzMi40NzUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5i
YXNlVmFsLnZhbHVlIiwgIjEzMi40NzUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwgIjI1
NC45IiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5iYXNlVmFsLnZh
bHVlIiwgIjI1NC45IiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAg
Y29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwg
ZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAg
ICJjaXJjbGUiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJjaXJj
bGUiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJjaXJjbGUiLCBz
YW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJjaXJjbGUiLCBzYW1wbGUx
XQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKwor
Ly8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAs
IDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0
aW9uLUxlbmd0aE1vZGVXaWR0aC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0
aC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlV2lkdGguIik7CitjcmVhdGVTVkdUZXN0Q2Fz
ZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1
dGUoIndpZHRoIiwgIjYwMCIpOworcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQi
LCAiNDAwIik7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3Zh
ciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0
ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNTAlIik7City
ZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVj
dCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAg
IC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAi
LCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMzAwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjMwMCIsIDAuMDEpOwor
fQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9
IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxi
YWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25U
ZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNl
dFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxp
ZC12YWx1ZS0xLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5n
dGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQg
dmFsdWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4iKTsKK2NyZWF0ZVNWR1Rl
c3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0
ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCAgIHB4Iik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgidG8iLCAiMjAwICAgcHgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACitkZXNjcmlwdGlvbigiVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGJlZm9y
ZSB2YWx1ZS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1l
bnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAi
MTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0
ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmlt
YXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIiAgIDEw
MHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiICAgMjAwcHgiKTsKK3JlY3QuYXBw
ZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKwor
Ly8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hl
Y2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAg
Y29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwg
ZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAg
ICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIs
IHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUx
XQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKwor
Ly8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAs
IDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ4IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxp
ZCB2YWx1ZTogTm8gc3BhY2VzIGFmdGVyIG51bWJlciBhbmQgdW5pdC4iKTsKK2NyZWF0ZVNWR1Rl
c3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0
ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4ICAgIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgidG8iLCAiMjAwcHggICAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXIt
dG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigi
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0
Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNl
dEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7
CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVU
ZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJl
Z2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0
byIsICIyMDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5h
cHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNh
bXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3Vs
ZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAx
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIs
IHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUy
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAg
IHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFz
eW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWNtLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNl
dHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4Iiwg
IjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIg
YW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVO
YW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNWNtIik7City
ZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVj
dCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAg
IC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE0NC40OSIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
NDQuNDkiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTg4Ljk4IiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE4OC45
OCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBl
Y3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQs
IHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBz
YW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBy
dW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3lu
Yword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tZW1zLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gZW1zLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8g
U2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngi
LCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVu
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVh
dGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5p
bWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBw
eCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwZW0iKTsKK3JlY3QuYXBwZW5kQ2hp
bGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0
dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5p
dGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
MDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQor
CitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9u
IGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAv
LyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAz
Ljk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAi
cmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWV4cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUg
QEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBleHMu
Iik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIg
cmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIs
ICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJm
b250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0
ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiNDBleCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVt
ZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rp
b24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAg
c2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRC
ZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1w
bGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29u
c3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxl
bWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJy
ZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNh
bXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOwor
CisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRl
c3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8taW4uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGluY2guIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOwor
CisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJl
Y3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0
ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAi
Z3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsK
KwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0
cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNs
aWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIu
NWluIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5k
Q2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUx
KCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE3MCIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIxNzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjI0MCIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNh
bXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5B
bmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYwor
d2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVy
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdM
ZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gbnVtYmVyLiIpOworY3JlYXRlU1ZHVGVzdENhc2Uo
KTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50
KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxs
IiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgp
Iik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIs
ICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIs
ICIyMDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBl
bmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBs
ZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwg
c2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1
bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5j
Cit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLXBjLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmlt
YXRpb24gZnJvbSBweCB0byBwYy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVw
IHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5p
bWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1l
IiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJm
cm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMTVwYyIpOworcmVj
dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3Qp
OworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAv
LyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNzAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTcwIiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wZXJjZW50YWdlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFn
ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuIik7CitjcmVhdGVTVkdUZXN0
Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNl
dEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7
CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVU
ZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJl
Z2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
InRvIiwgIjIwMCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVu
dC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUo
InJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxl
MigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUi
LCAiMzUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjM1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICI2MDAiLCAw
LjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICI2MDAiLCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50
SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3Qi
LCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxl
Ml0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBT
ZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIs
ICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJp
YnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4i
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFy
IGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRl
TmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiZnJvbSIsICIxMDBwdCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjVjbSIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNjEuMTUiLCAwLjAx
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MTYxLjE1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4OCw5NyIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxODgu
OTciLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tcHguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFu
aW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0
dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7City
ZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAi
MCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBh
bmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5h
bWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMDBweCIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
K30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMg
PSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxs
YmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVl
cy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBzZXQgd2l0aCAn
dmFsdWVzJywgZGlmZmVyZW50IHVuaXRzIGFuZCBkaWZmZXJlbnQgY291bnQgb2Ygc3BhY2VzLiIp
OworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJl
Y3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAi
cmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
IndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25j
bGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVu
dCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1
ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsICIxMDBweDsgIDEzMCAg
OzRjbSAgOzZpbjsgMjAwcHQiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZH
RWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1
bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwor
ICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24g
c2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUiLCAiMTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIiwgIjEzMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkg
eworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIx
NTEuMTgiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTUxLjE4IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjU3NiIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICI1NzYiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNSgpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjY2LjciLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjY2
LjciLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMS4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJyZWN0Iiwgc2FtcGxlNF0sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTVdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0
KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRp
bWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95261</attachid>
            <date>2011-05-28 08:29:27 -0700</date>
            <delta_ts>2011-05-28 09:45:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110528172921.patch</filename>
            <type>text/plain</type>
            <size>120666</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDUtMjggIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBUaGUgZ29hbCBpcyB0byBtb3ZlIHRoZSBtYWlu
IGFuaW1hdGlvbiBsb2dpYyBmb3IgU1ZHIHVuaXRzIGZyb20gU1ZHQW5pbWF0ZUVsZW1lbnQgaW50
byB0aGUgY29ycmVzcG9uZGluZyBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAgIFN0YXJ0aW5n
IHdpdGggU1ZHTGVuZ3RoIG9uIHRoaXMgcGF0Y2guIFNWR0FuaW1hdGVFbGVtZW50IHdpbGwganVz
dCB3b3JrIHdpdGggdGhlIGdlbmVyaWMgdHlwZSBTVkdBbmltYXRlZFR5cGUuIFNWR0FuaW1hdG9y
CisgICAgICAgIGNvb3JkaW5hdGVzIHRoZSBjb25uZWN0aW9uIGZyb20gU1ZHQW5pbWF0ZWRUeXBl
IHRvIHRoZSBTVkcgdW5pdCBhbmltYXRvcnMgbGlrZSBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
IGluIFNWR0FuaW1hdGVkTGVuZ3RoLmguCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCisgICAgICAgICAgICAg
ICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1s
CisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVXaWR0aC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5o
dG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51
bWJlci10by1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1jbS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVt
YmVyLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGMuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzIHRvIGJ1aWxkIHN5c3Rl
bS4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJv
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8u
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOiBBZGRlZCBTVkdBbmltYXRlZExlbmd0aC5jcHAg
Zm9yIFdpbiBhbmQgb3RoZXIgYnVpbGQgc3lzdGVtcy4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVz
dEZvckN1cnJlbnRDb2xvcik6IE1hZGUgYWRqdXN0Rm9yQ3VycmVudENvbG9yIHB1YmxpYyBhcyBw
cmVwZXJhdGlvbiBmb3IgU1ZHQW5pbWF0ZWRDb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OmdldFBy
b3BlcnR5VmFsdWUpOiBJbmxpbmUgZnVuY3Rpb24gdG8gZ2V0IGNvbXB1dGVkU3R5bGUgb2YgQ1NT
IHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZv
ckluaGVyaXRhbmNlKTogTWFkZSBhZGp1c3RGb3JJbmhlcml0YW5jZSBhcyBwcmVwZXJhdGlvbiBm
b3IgU1ZHQW5pbWF0ZWQqIGZpbGVzLgorICAgICAgICAoV2ViQ29yZTo6bGVuZ3RoTW9kZUZvckFu
aW1hdGVkTGVuZ3RoQXR0cmlidXRlKTogR2V0IExlbmd0aE1vZGUgZm9yIFNWR0xlbmd0aCBkZXBl
bmRpbmcgb24gdGhlIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OmRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSk6IFNWR0xlbmd0aCBuZWVk
IHNwZWNpYWwgaGFuZGxpbmcgdmlhIFNWR0FuaW1hdG9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTogQ2xlYW51cC4gTWFr
ZSB1c2Ugb2YgU1ZHQW5pbWF0b3IgZm9yIFNWR0xlbmd0aC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFz
ZVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6YXBw
bHlSZXN1bHRzVG9UYXJnZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVF
bGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5oOiBBZGRlZCBu
ZXcgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvciB3aGljaCBpcyByZXNwb25zaWJsZSBm
b3IgdGhlIGFjdHVhbCBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzZXRTVkdMZW5ndGhNb2RlKToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0IHR5cGUg
Zm9yIGFuaW1hdGlvbnMgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRMZW5ndGgpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOiBBZGRlZC4gQmFzZSBjbGFzcyBmb3IgU1ZHQW5p
bWF0ZWRMZW5ndGhBbmltYXRvciBhbmQgZnV0dXJlIFNWRyB1bml0IGFuaW1hdG9ycy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnNldENv
bnRleHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
OjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcik6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBXZSBkbyBub3QgdXNlIHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0IGZv
ciBTVkdMZW5ndGggbm93LiBIYXZlIHRvIHN0cmlwIHdoaXRlIHNwYWNlcyBoZXJlLiBXaGl0ZXNw
YWNlcyBzaG91bGRuJ3QKKyAgICAgICAgICBiZSBzdHJpcHBlZCBvbiAnZnJvbScsICd0bycgYW5k
ICdieScuIFRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBTVkdMZW5ndGggYW55bW9yZS4gQWRkZWQg
bmV3IHRlc3RzIHRvIGNoZWNrIHRoaXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKTogRW51bSBpcyBhY2Nlc3NpYmxlIGluIFdl
YkNvcmUgbmFtZXNwYWNlIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmNhbGNNb2RlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRvcjo6Y3JlYXRlKToKKwogMjAxMS0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2MzksNiArMTYzOSw3IEBA
IElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAogICAg
ICAgICBzdmcvU1ZHQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50
LmNwcAorICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAgICAgICAgIHN2Zy9TVkdB
bmltYXRlRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtMTA1NSw2ICsxMDU1LDkgQEAKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0ZWRSZWN0LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFN0cmluZy5o
JywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmgnLAorICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZFR5cGUuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yLmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRvci5oJywKICAg
ICAgICAgICAgICdzdmcvU1ZHQ29sb3IuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0RvY3VtZW50
RXh0ZW5zaW9ucy5oJywKICAgICAgICAgICAgICdzdmcvU1ZHRWxlbWVudC5oJywKQEAgLTU2NzEs
NiArNTY3NCw3IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuZ2xlLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODc2
MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjMx
NiwxMCArMjMxNiwxMyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRSZWN0Lmgg
XAogICAgIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGUuaCBcCisgICAgc3ZnL1NWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggXAogICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKICAg
ICBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmggXAorICAgIHN2
Zy9TVkdBbmltYXRvci5oIFwKICAgICBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIFwKICAgICBzdmcv
U1ZHQ2xpcFBhdGhFbGVtZW50LmggXAogICAgIHN2Zy9TVkdDb2xvci5oIFwKQEAgLTMyNTksNiAr
MzI2Miw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICAgICAg
ICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmds
ZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAor
ICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKICAgICAgICAgICAgICAg
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02NTA2Niw2ICs2NTA2Niwx
NCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRUeXBlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC02NTA4Miw2ICs2NTA5MCwxMCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5p
bWF0b3IuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3ZnXFNWR0NpcmNsZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTAzLDYgKzkwMywxMCBAQAogCQk0MUY1ODRDNzEw
NDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8q
IEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJNDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1
IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlh
Q29udHJvbHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVy
TWVkaWFDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAq
LzsgfTsKKwkJNDMzMjM4QUExMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMzIzOEE2
MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgKi87IH07CisJCTQzMzIz
OEFCMTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAv
KiBTVkdBbmltYXRlZFR5cGUuaCAqLzsgfTsKKwkJNDMzMjM4QUMxMzkxMTgwNDAwNDhBNTdDIC8q
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzMyMzhBODEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuaCAqLzsgfTsKKwkJNDMzMjM4QUQxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0Fu
aW1hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzMyMzhBOTEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCAqLzsgfTsKIAkJNDM1OEU4
NkExMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY3MTM2MEEyMTYw
MEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCTQzNThFODZC
MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4NjgxMzYwQTIxNjAw
RTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0gKi87IH07CiAJCTQzNThFODZD
MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY5MTM2
MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLzsg
fTsKQEAgLTc0MTksNiArNzQyMywxMCBAQAogCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyog
SlNNZXNzYWdlUG9ydEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U01lc3NhZ2VQb3J0Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEz
MDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVu
ZGVyTWVkaWFDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE2
MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRl
ZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMzIzOEE4MTM5MTE4MDQwMDQ4QTU3
QyAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MzMyMzhBOTEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM1OEU4NjcxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2
ODEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY5MTM2MEEyMTYwMEU0
NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI1OCw2ICsxNzI2Niw3IEBACiAJCQkJ
QjIyMjc3RTgwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICov
LAogCQkJCTA4MjNEMTU4MTI3QUQ2QUMwMDBFQkM5NSAvKiBTVkdBbmltYXRlZEludGVnZXIuaCAq
LywKIAkJCQlCMjIyNzdFOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlk
bCAqLywKKwkJCQk0MzMyMzhBNjEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRMZW5ndGgu
Y3BwICovLAogCQkJCTA4OTAyMUE4MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0
aC5oICovLAogCQkJCUIyMjI3N0VBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZExlbmd0
aC5pZGwgKi8sCiAJCQkJMDg5MDIxQUMxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5oICovLApAQCAtMTcyNzQsNiArMTcyODMsOCBAQAogCQkJCUIyMjI3N0Y2MEQwMEJG
MUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8sCiAJCQkJMDgyNTA5MzgxMjhC
RDREODAwRTJFRDhFIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3
N0Y4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAor
CQkJCTQzMzIzOEE3MTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKKwkJ
CQk0MzMyMzhBODEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAq
LywKIAkJCQlCMjIyNzdGOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5o
ICovLAogCQkJCUIyMjI3N0ZCMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5p
ZGwgKi8sCkBAIC0xNzI4NSw2ICsxNzI5Niw3IEBACiAJCQkJQjIyMjc4MDEwRDAwQkYxRjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3ODAyMEQwMEJGMUYw
MDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4MDMwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuaWRsICovLAorCQkJCTQzMzIzOEE5MTM5
MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRvci5oICovLAogCQkJCUIyMjI3ODA0MEQwMEJGMUYw
MDcxQjc4MiAvKiBzdmdhdHRycy5pbiAqLywKIAkJCQlCMjIyNzgwNTBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQ2lyY2xlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4MDYwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0NpcmNsZUVsZW1lbnQuaCAqLywKQEAgLTIzMDA4LDYgKzIzMDIwLDkgQEAKIAkJCQlC
MTJEMjM2RTEzNTYwMzREMDAyQTI4RDQgLyogSlNNdWx0aXBsZVRyYWNrTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEMwRTMzNEQxMzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFuc2FjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEMwRTMzNEYxMzhBOTJDNzAwOERBOTRGIC8qIExldmVs
REJXcml0ZUJhdGNoLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzMyMzhBQjEzOTExODA0MDA0OEE1
N0MgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzMyMzhBQzEzOTEx
ODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQzMzIzOEFEMTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yNTcwNCw2ICsyNTcxOSw3IEBACiAJCQkJQjEyRDIzNkQxMzU2MDM0RDAwMkEyOEQ0
IC8qIEpTTXVsdGlwbGVUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEMwRTMzNEMx
MzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4QzBFMzM0RTEzOEE5MkM3MDA4REE5NEYgLyogTGV2ZWxEQldyaXRlQmF0Y2guY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDMzMjM4QUExMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVk
TGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
bEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUu
Y3BwCShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTVkdBbHRHbHlw
aEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5jcHAiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVy
c2lvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKQEAg
LTg5LDcgKzkxLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoY29ucwog
ICAgIHJldHVybiBvazsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZvckN1cnJlbnRD
b2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYgY29sb3IpCit2b2lkIFNWR0Fu
aW1hdGVFbGVtZW50OjphZGp1c3RGb3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxl
bWVudCwgQ29sb3ImIGNvbG9yKQogewogICAgIEFTU0VSVCh0YXJnZXRFbGVtZW50KTsKICAgICAK
QEAgLTk5LDcgKzEwMSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9yQ3VycmVudENv
bG9yCiAgICAgICAgIGNvbG9yID0gQ29sb3IoKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFk
anVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCitzdGF0aWMgaW5saW5lIHZv
aWQgZ2V0UHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBzdmdQYXJlbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJUKHN2Z1Bh
cmVudC0+aXNTdHlsZWQoKSk7CisgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCkt
PmdldFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgp
KSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRhbmNlKFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21lbnQgdGhlIGNv
bXB1dGVkIHN0eWxlIGdldHMgcmV0dXJuZWQgYXMgYSBTdHJpbmcgYW5kIG5lZWRzIHRvIGdldCBw
YXJzZWQgYWdhaW4uCiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50IHRvIHdvcmsg
d2l0aCB0aGUgdmFsdWUgdHlwZSBkaXJlY3RseSB0byBhdm9pZCB0aGUgU3RyaW5nIHBhcnNpbmcu
CkBAIC0xMTEsNyArMTE5LDQyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb3JJbmhlcml0
YW5jZSgKIAogICAgIFNWR0VsZW1lbnQqIHN2Z1BhcmVudCA9IHN0YXRpY19jYXN0PFNWR0VsZW1l
bnQqPihwYXJlbnQpOwogICAgIGlmIChzdmdQYXJlbnQtPmlzU3R5bGVkKCkpCi0gICAgICAgIHZh
bHVlID0gY29tcHV0ZWRTdHlsZShzdmdQYXJlbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKGNzc1Byb3Bl
cnR5SUQoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSkpOworICAgICAgICBnZXRQcm9wZXJ0eVZh
bHVlKHN2Z1BhcmVudCwgYXR0cmlidXRlTmFtZSwgdmFsdWUpOworfQorCitzdGF0aWMgaW5saW5l
IFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZp
ZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5ndGhNb2RlRm9yTGVuZ3RoQXR0cmlidXRlTWFwOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwg
c19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAgCisgICAgaWYgKHNfbGVuZ3RoTW9kZU1hcC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eEF0dHIsIExl
bmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnlB
dHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdO
YW1lczo6Y3hBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjpjeUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0
aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmR5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7
CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmZ4QXR0ciwgTGVuZ3RoTW9k
ZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZnlBdHRyLCBM
ZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6
ckF0dHIsIExlbmd0aE1vZGVPdGhlcik7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZH
TmFtZXM6OndpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2Rl
TWFwLnNldChTVkdOYW1lczo6aGVpZ2h0QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OngxQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsK
KyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eDJBdHRyLCBMZW5ndGhNb2Rl
V2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5MUF0dHIsIExl
bmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5
MkF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNW
R05hbWVzOjpyZWZYQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2Rl
TWFwLnNldChTVkdOYW1lczo6cmVmWUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjptYXJrZXJXaWR0aEF0dHIsIExlbmd0aE1vZGVX
aWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6Om1hcmtlckhlaWdo
dEF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOyAgICAgICAgCisgICAgICAgIHNfbGVuZ3RoTW9kZU1h
cC5zZXQoU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAg
ICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIsIExlbmd0aE1v
ZGVXaWR0aCk7CisgICAgfQorICAgIAorICAgIGlmIChzX2xlbmd0aE1vZGVNYXAuY29udGFpbnMo
YXR0ck5hbWUpKQorICAgICAgICByZXR1cm4gc19sZW5ndGhNb2RlTWFwLmdldChhdHRyTmFtZSk7
CisgICAgCisgICAgcmV0dXJuIExlbmd0aE1vZGVPdGhlcjsKIH0KIAogYm9vbCBTVkdBbmltYXRl
RWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29uc3QKQEAgLTEzNiwxNiArMTc5LDE3
IEBAIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkRW51
bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6CiAgICAgY2FzZSBBbmltYXRl
ZE51bWJlckxpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgorICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvOgogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6
CiAgICAgICAgIHJldHVybiBBbmltYXRlZFN0cmluZzsKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRMZW5ndGg7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xl
OgogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAg
ICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyOwog
ICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgpAQCAtMTU0LDggKzE5OCw4IEBAIEFuaW1hdGVkQXR0cmli
dXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9pbnRz
OwogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29sb3I7
Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246CiAgICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxp
c3Q6CisgICAgY2FzZSBBbmltYXRlZFVua25vd246CiAgICAgICAgIC8vIEFuaW1hdGlvbnMgb2Yg
dHJhbnNmb3JtIGxpc3RzIGFyZSBub3QgYWxsb3dlZCBmb3IgPGFuaW1hdGU+IG9yIDxzZXQ+CiAg
ICAgICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0bWwjQW5pbWF0aW9u
QXR0cmlidXRlc0FuZFByb3BlcnRpZXMKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsK
QEAgLTE3MSwxNCArMjE1LDkgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5p
bWF0ZQogICAgIEFTU0VSVChyZXN1bHRFbGVtZW50KTsKICAgICBib29sIGlzSW5GaXJzdEhhbGZP
ZkFuaW1hdGlvbiA9IHBlcmNlbnRhZ2UgPCAwLjVmOwogICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0
aW9uTW9kZSA9IHRoaXMtPmFuaW1hdGlvbk1vZGUoKTsKLSAgICBTVkdFbGVtZW50KiB0YXJnZXRF
bGVtZW50ID0gMDsKLSAgICAvLyBBdm9pZCB0YXJnZXRFbGVtZW50KCkgY2FsbCBpZiBwb3NzaWJs
ZS4gSXQgbWlnaHQgc2xvdyBkb3duIGFuaW1hdGlvbnMuCi0gICAgaWYgKG1fZnJvbVByb3BlcnR5
VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5o
ZXJpdFZhbHVlCi0gICAgICAgIHx8IG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEN1cnJlbnRD
b2xvclZhbHVlIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkg
ewotICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwotICAgICAg
ICBpZiAoIXRhcmdldEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7CisgICAgaWYg
KCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnNldFRhZykpCiAgICAgICAgIHBlcmNlbnRhZ2UgPSAxOwpAQCAtMTg5LDcg
KzIyOCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAv
LyBDYW4ndCBhY2N1bXVsYXRlIG92ZXIgYSBzdHJpbmcgcHJvcGVydHkuCiAgICAgaWYgKHJlc3Vs
dHMtPm1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkU3RyaW5nICYmIG1fYW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlICE9IEFuaW1hdGVkU3RyaW5nKQogICAgICAgICByZXR1cm47Ci0gICAg
aWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7CisgICAgc3dp
dGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6
IHsKICAgICAgICAgLy8gVG8gYW5pbWF0aW9uIHVzZXMgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBs
b3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFzIHRoZSBiYXNlIHZhbHVlLgogICAgICAgICBpZiAo
YW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKICAgICAgICAgICAgIG1fZnJvbU51bWJlciA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWROdW1iZXI7CkBAIC0yMjMsNyArMjYzLDcgQEAgdm9pZCBTVkdB
bmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICAgICAgcmVzdWx0cy0+bV9h
bmltYXRlZE51bWJlciA9IG51bWJlcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0gCi0gICAgaWYg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBjYXNlIEFu
aW1hdGVkQ29sb3I6IHsKICAgICAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24p
CiAgICAgICAgICAgICBtX2Zyb21Db2xvciA9IHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xvcjsKIApA
QCAtMjU2LDcgKzI5Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1h
dGUKICAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xvciA9IGNvbG9yOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZFBhdGgpIHsKKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBpZiAoYW5pbWF0
aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikgewogICAgICAgICAgICAgQVNTRVJUKHJlc3VsdHMtPm1f
YW5pbWF0ZWRQYXRoUG9pbnRlcik7CiAgICAgICAgICAgICBtX2Zyb21QYXRoID0gcmVzdWx0cy0+
bV9hbmltYXRlZFBhdGhQb2ludGVyLT5jb3B5KCk7CkBAIC0yODksNyArMzI5LDcgQEAgdm9pZCBT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
UG9pbnRzKSB7CisgICAgY2FzZSBBbmltYXRlZFBvaW50czogewogICAgICAgICBpZiAoIXBlcmNl
bnRhZ2UpCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gbV9mcm9tUG9p
bnRzOwogICAgICAgICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEpCkBAIC0zMDYsNiArMzQ2LDE2
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAg
ICAgQVNTRVJUKG1fYW5pbWF0b3IpOworICAgICAgICAvLyBUYXJnZXQgZWxlbWVudCBtaWdodCBo
YXZlIGNoYW5nZWQuCisgICAgICAgIG1fYW5pbWF0b3ItPnNldENvbnRleHRFbGVtZW50KHRhcmdl
dEVsZW1lbnQpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVBbmltYXRlZFZhbHVlKHRo
aXMsIHBlcmNlbnRhZ2UsIHJlcGVhdCwgbV9mcm9tVHlwZSwgbV90b1R5cGUsIHJlc3VsdHMtPm1f
YW5pbWF0ZWRUeXBlLCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUsIG1f
dG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBBU1NFUlQoYW5p
bWF0aW9uTW9kZSA9PSBGcm9tVG9BbmltYXRpb24gfHwgYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1h
dGlvbiB8fCBhbmltYXRpb25Nb2RlID09IFZhbHVlc0FuaW1hdGlvbik7CiAgICAgLy8gUmVwbGFj
ZSAnY3VycmVudENvbG9yJyAvICdpbmhlcml0JyBieSB0aGVpciBjb21wdXRlZCBwcm9wZXJ0eSB2
YWx1ZXMuCiAgICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSkK
QEAgLTM0Nyw3ICszOTcsOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9t
QW5kCiAKICAgICAvLyBGSVhNRTogTmVlZHMgbW9yZSBzb2xpZCB3YXkgZGV0ZXJtaW5lIHRhcmdl
dCBhdHRyaWJ1dGUgdHlwZS4KICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWlu
ZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAgICBpZiAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3aXRjaCAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6IHsKICAgICAgICAgYm9v
bCBmcm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGZyb21T
dHJpbmcpOwogICAgICAgICBib29sIHRvSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlz
Q3VycmVudENvbG9yKHRvU3RyaW5nKTsKICAgICAgICAgaWYgKGZyb21Jc0N1cnJlbnRDb2xvcikK
QEAgLTM2MiwxNCArNDEzLDE4IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZy
b21BbmQKICAgICAgICAgYm9vbCB0b0lzVmFsaWQgPSBtX3RvQ29sb3IuaXNWYWxpZCgpIHx8IHRv
SXNDdXJyZW50Q29sb3IgfHwgbV90b1Byb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZTsK
ICAgICAgICAgaWYgKChmcm9tSXNWYWxpZCAmJiB0b0lzVmFsaWQpIHx8ICh0b0lzVmFsaWQgJiYg
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uKSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1i
ZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6IHsK
ICAgICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAgICAgIGlmIChwYXJzZU51bWJl
clZhbHVlQW5kVW5pdCh0b1N0cmluZywgbV90b051bWJlciwgbV9udW1iZXJVbml0KSkgewogICAg
ICAgICAgICAgLy8gRm9yIHRvLWFuaW1hdGlvbnMgdGhlIGZyb20gbnVtYmVyIGlzIGNhbGN1bGF0
ZWQgbGF0ZXIKICAgICAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
fHwgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251
bWJlclVuaXQpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0gICAg
fSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBhdGgpIHsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAgICAgICAgIFNW
R1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYo
KTsKICAgICAgICAgaWYgKGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5n
KHRvU3RyaW5nLCBtX3RvUGF0aCwgVW5hbHRlcmVkUGFyc2luZykpIHsKICAgICAgICAgICAgIC8v
IEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxhdGVyCkBA
IC0zNzgsMTMgKzQzMywyNSBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9t
QW5kCiAgICAgICAgIH0KICAgICAgICAgbV9mcm9tUGF0aC5jbGVhcigpOwogICAgICAgICBtX3Rv
UGF0aC5jbGVhcigpOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0g
QW5pbWF0ZWRQb2ludHMpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0
ZWRQb2ludHM6IHsKICAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFyKCk7CiAgICAgICAgIGlmIChw
b2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRzLCBmcm9tU3RyaW5nKSkgewogICAgICAg
ICAgICAgbV90b1BvaW50cy5jbGVhcigpOwogICAgICAgICAgICAgaWYgKHBvaW50c0xpc3RGcm9t
U1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1hdG9yOjpjcmVhdGUoQW5pbWF0
ZWRMZW5ndGgsIHRhcmdldEVsZW1lbnQpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yKj4obV9hbmltYXRvci5nZXQoKSktPnNldFNWR0xlbmd0aE1vZGUobGVu
Z3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUoKSkpOworICAg
ICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90
b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBtX2Zyb21TdHJpbmcg
PSBmcm9tU3RyaW5nOwogICAgIG1fdG9TdHJpbmcgPSB0b1N0cmluZzsKQEAgLTQwMiw3ICs0Njks
OCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAKICAgICBBU1NF
UlQoIWhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwot
ICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAg
c3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xv
cjogewogICAgICAgICBib29sIGZyb21Jc0N1cnJlbnRDb2xvciA9IGF0dHJpYnV0ZVZhbHVlSXND
dXJyZW50Q29sb3IoZnJvbVN0cmluZyk7CiAgICAgICAgIGJvb2wgYnlJc0N1cnJlbnRDb2xvciA9
IGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoYnlTdHJpbmcpOwogICAgICAgICBpZiAoZnJv
bUlzQ3VycmVudENvbG9yKQpAQCAtNDE3LDcgKzQ4NSwxNiBAQCBib29sIFNWR0FuaW1hdGVFbGVt
ZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGlmICgoIW1fZnJvbUNvbG9yLmlzVmFsaWQo
KSAmJiAhZnJvbUlzQ3VycmVudENvbG9yKQogICAgICAgICAgICAgfHwgKCFtX3RvQ29sb3IuaXNW
YWxpZCgpICYmICFieUlzQ3VycmVudENvbG9yKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDogeworICAgICAgICBtX2FuaW1hdG9yID0gU1ZHQW5pbWF0b3I6OmNyZWF0ZShB
bmltYXRlZExlbmd0aCwgdGFyZ2V0RWxlbWVudCk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3IqPihtX2FuaW1hdG9yLmdldCgpKS0+c2V0U1ZHTGVuZ3RoTW9k
ZShsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgpKSk7
CisgICAgICAgIG1fYW5pbWF0b3ItPmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBl
LCBtX3RvVHlwZSwgZnJvbVN0cmluZywgYnlTdHJpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIH0KKyAgICBkZWZhdWx0OgogICAgICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsK
ICAgICAgICAgbV9mcm9tTnVtYmVyID0gMDsKICAgICAgICAgaWYgKCFmcm9tU3RyaW5nLmlzRW1w
dHkoKSAmJiAhcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVy
LCBtX251bWJlclVuaXQpKQpAQCAtNDM2LDEzICs1MTMsMTUgQEAgdm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgIG1fYW5pbWF0ZWRTdHJpbmcgPSBiYXNlU3RyaW5n
OwogICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBsYXN0VHlwZSA9IG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgbV9hbmltYXRlZENvbG9y
ID0gYmFzZVN0cmluZy5pc0VtcHR5KCkgPyBDb2xvcigpIDogU1ZHQ29sb3I6OmNvbG9yRnJvbVJH
QkNvbG9yU3RyaW5nKGJhc2VTdHJpbmcpOwogICAgICAgICBpZiAoaXNDb250cmlidXRpbmcoZWxh
cHNlZCgpKSkgewogICAgICAgICAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBsYXN0VHlw
ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgaWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBtX2FuaW1hdGVkTnVtYmVyID0gMDsKICAgICAgICAgICAgIG1fbnVt
YmVyVW5pdCA9IFN0cmluZygpOwpAQCAtNDUwLDE1ICs1MjksMjQgQEAgdm9pZCBTVkdBbmltYXRl
RWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgICAgICB9CiAgICAgICAgIGlmIChwYXJzZU51
bWJlclZhbHVlQW5kVW5pdChiYXNlU3RyaW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVu
aXQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJp
YnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5p
bWF0ZWRQYXRoOiB7CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoLmNsZWFyKCk7CiAgICAgICAgIFNW
R1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYo
KTsKICAgICAgICAgZmFjdG9yeS0+YnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoYmFz
ZVN0cmluZywgbV9hbmltYXRlZFBhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2Fu
aW1hdGVkUGF0aFBvaW50ZXIgPSBtX2FuaW1hdGVkUGF0aC5nZXQoKTsKICAgICAgICAgcmV0dXJu
OwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2lu
dHMpIHsKKyAgICB9CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAgICAgICAgbV9hbmltYXRl
ZFBvaW50cy5jbGVhcigpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBbmltYXRlZExlbmd0
aDogeworICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKEFu
aW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUtPnNldExlbmd0aChuZXcgU1ZH
TGVuZ3RoKGxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1l
KCkpLCBiYXNlU3RyaW5nKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gQW5p
bWF0ZWRTdHJpbmc7CiB9CkBAIC00ODMsNiArNTcxLDggQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVu
dDo6YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2FuaW1hdGVk
QXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBvaW50cykKICAgICAgICAgdmFsdWVUb0FwcGx5ID0g
bV9hbmltYXRlZFBvaW50cy5pc0VtcHR5KCkgPyBtX2FuaW1hdGVkU3RyaW5nIDogbV9hbmltYXRl
ZFBvaW50cy52YWx1ZUFzU3RyaW5nKCk7CisgICAgZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0
ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpCisgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0
ZWRUeXBlLT5sZW5ndGgoKS52YWx1ZUFzU3RyaW5nKCk7CiAgICAgZWxzZQogICAgICAgICB2YWx1
ZVRvQXBwbHkgPSBtX2FuaW1hdGVkU3RyaW5nOwogICAgIApAQCAtNDkxLDYgKzU4MSw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGEKICAgICAKIGZsb2F0IFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCiB7CisgICAgLy8gVE9ETzogRGlzdGFuY2UgY2FsY3Vs
YXRpb24gc2hvdWxkIGJlIGRvbmUgaW4gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuCiAgICAgU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKICAgICBpZiAo
IXRhcmdldEVsZW1lbnQpCiAgICAgICAgIHJldHVybiAtMTsKQEAgLTUxNCw4ICs2MDUsMTQgQEAg
ZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbgogICAgICAgICAgICAgcmV0
dXJuIC0xOwogICAgICAgICByZXR1cm4gQ29sb3JEaXN0YW5jZShmcm9tLCB0bykuZGlzdGFuY2Uo
KTsKICAgICB9CisgICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTGVu
Z3RoKSB7CisgICAgICAgIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSA9IGxlbmd0aE1vZGVGb3JB
bmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKCkpOworICAgICAgICBTVkdMZW5n
dGggZnJvbSA9IFNWR0xlbmd0aChsZW5ndGhNb2RlLCBmcm9tU3RyaW5nKTsKKyAgICAgICAgU1ZH
TGVuZ3RoIHRvID0gU1ZHTGVuZ3RoKGxlbmd0aE1vZGUsIHRvU3RyaW5nKTsKKyAgICAgICAgcmV0
dXJuIGZhYnNmKHRvLnZhbHVlKHRhcmdldEVsZW1lbnQpIC0gZnJvbS52YWx1ZSh0YXJnZXRFbGVt
ZW50KSk7CisgICAgfQogICAgIHJldHVybiAtMTsKIH0KLSAgIAorCiB9CiAjZW5kaWYgLy8gRU5B
QkxFKFNWRykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZp
c2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTMgQEAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFC
TEUoU1ZHX0FOSU1BVElPTikKIAogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0u
aCIKICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDYg
KzQyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFs
IH5TVkdBbmltYXRlRWxlbWVudCgpOworICAgIAorICAgIHN0YXRpYyB2b2lkIGFkanVzdEZvckN1
cnJlbnRDb2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYpOworICAgIHZvaWQg
YWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYsIFN0cmluZyYgdmFsdWUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CkBAIC04Miw2ICs4OCwx
MiBAQCBwcml2YXRlOgogICAgIFNWR1BvaW50TGlzdCBtX2Zyb21Qb2ludHM7CiAgICAgU1ZHUG9p
bnRMaXN0IG1fdG9Qb2ludHM7CiAgICAgU1ZHUG9pbnRMaXN0IG1fYW5pbWF0ZWRQb2ludHM7Cisg
ICAgCisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9mcm9tVHlwZTsKKyAgICBPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvVHlwZTsKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBt
X2FuaW1hdGVkVHlwZTsKKyAgICAKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+
IG1fYW5pbWF0b3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRM
ZW5ndGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQorICAgIDogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoQW5pbWF0ZWRMZW5ndGgsIGNvbnRleHRF
bGVtZW50KQorICAgICwgbV9sZW5ndGhNb2RlKExlbmd0aE1vZGVPdGhlcikKK3sKK30KKworUGFz
c093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4gdHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKEFuaW1hdGVkTGVuZ3Ro
KTsKKyAgICB0eXBlLT5zZXRMZW5ndGgobmV3IFNWR0xlbmd0aChtX2xlbmd0aE1vZGUsIHN0cmlu
ZykpOworICAgIHJldHVybiB0eXBlLnJlbGVhc2UoKTsKK30KKwordm9pZCBTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBm
cm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQoreworICAgIGZyb20gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0
b1N0cmluZyk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRl
RnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiBieVN0cmluZykKK3sKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgCisgICAg
ZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGJ5U3RyaW5nKTsKKyAgICAKKyAgICBTVkdMZW5ndGgmIGZyb21MZW5ndGgg
PSBmcm9tLT5sZW5ndGgoKTsKKyAgICBTVkdMZW5ndGgmIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgp
OworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVu
Z3RoLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpICsgZnJvbUxlbmd0aC52YWx1ZShtX2NvbnRleHRF
bGVtZW50KSwgbV9jb250ZXh0RWxlbWVudCwgZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCit2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZH
U01JTEVsZW1lbnQqIHNtaWxFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBl
YXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+
JiB0bywgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5
SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKQoreworICAgIEFTU0VSVChzbWlsRWxl
bWVudCk7CisgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVt
ZW50KiBhbmltYXRpb25FbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihz
bWlsRWxlbWVudCk7CisgICAgCisgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlID0gYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpOworICAgIC8vIFRvIGFuaW1hdGlvbiB1c2Vz
IGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUg
YmFzZSB2YWx1ZS4KKyAgICAvLyBGSVhNRTogYXZvaWQgc3RyaW5nIHBhcnNpbmcuCisgICAgaWYg
KGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCisgICAgICAgIGZyb20gPSBjb25zdHJ1Y3RG
cm9tU3RyaW5nKGFuaW1hdGVkLT5sZW5ndGgoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgIAorICAg
IC8vIFJlcGxhY2UgJ2luaGVyaXQnIGJ5IHRoZWlyIGNvbXB1dGVkIHByb3BlcnR5IHZhbHVlcy4K
KyAgICBmbG9hdCBudW1iZXI7CisgICAgZmxvYXQgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgp
LnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOworICAgIGZsb2F0IHRvTGVuZ3RoID0gdG8tPmxlbmd0
aCgpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOworICAgIAorICAgIGlmIChmcm9tUHJvcGVydHlJ
bmhlcml0cykgeworICAgICAgICBTdHJpbmcgZnJvbUxlbmd0aFN0cmluZzsKKyAgICAgICAgYW5p
bWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5p
bWF0aW9uRWxlbWVudC0+YXR0cmlidXRlTmFtZSgpLCBmcm9tTGVuZ3RoU3RyaW5nKTsKKyAgICAg
ICAgU1ZHTGVuZ3RoIHRlbXBGcm9tID0gU1ZHTGVuZ3RoKG1fbGVuZ3RoTW9kZSwgZnJvbUxlbmd0
aFN0cmluZyk7CisgICAgICAgIGZyb21MZW5ndGggPSB0ZW1wRnJvbS52YWx1ZShtX2NvbnRleHRF
bGVtZW50KTsKKyAgICB9CisgICAgaWYgKHRvUHJvcGVydHlJbmhlcml0cykgeworICAgICAgICBT
dHJpbmcgdG9MZW5ndGhTdHJpbmc7CisgICAgICAgIGFuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZv
ckluaGVyaXRhbmNlKG1fY29udGV4dEVsZW1lbnQsIGFuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0
ZU5hbWUoKSwgdG9MZW5ndGhTdHJpbmcpOworICAgICAgICBTVkdMZW5ndGggdGVtcFRvID0gU1ZH
TGVuZ3RoKG1fbGVuZ3RoTW9kZSwgdG9MZW5ndGhTdHJpbmcpOworICAgICAgICB0b0xlbmd0aCA9
IHRlbXBUby52YWx1ZShtX2NvbnRleHRFbGVtZW50KTsgCisgICAgfQorICAgIAorICAgIGlmIChh
bmltYXRpb25FbGVtZW50LT5jYWxjTW9kZSgpID09IENhbGNNb2RlRGlzY3JldGUpCisgICAgICAg
IG51bWJlciA9IHBlcmNlbnRhZ2UgPCAwLjVmID8gZnJvbUxlbmd0aCA6IHRvTGVuZ3RoOworICAg
IGVsc2UKKyAgICAgICAgbnVtYmVyID0gKHRvTGVuZ3RoIC0gZnJvbUxlbmd0aCkgKiBwZXJjZW50
YWdlICsgZnJvbUxlbmd0aDsKKyAgICAKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29ycmVj
dCBmb3IgdmFsdWVzIGFuaW1hdGlvbi4KKyAgICBpZiAoYW5pbWF0aW9uRWxlbWVudC0+aXNBY2N1
bXVsYXRlZCgpICYmIHJlcGVhdCkKKyAgICAgICAgbnVtYmVyICs9IHRvTGVuZ3RoICogcmVwZWF0
OworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlmIChhbmltYXRpb25FbGVtZW50LT5p
c0FkZGl0aXZlKCkgJiYgYW5pbWF0aW9uTW9kZSAhPSBUb0FuaW1hdGlvbikgeworICAgICAgICBm
bG9hdCBhbmltYXRlZExlbmd0aCA9IGFuaW1hdGVkLT5sZW5ndGgoKS52YWx1ZShtX2NvbnRleHRF
bGVtZW50KTsKKyAgICAgICAgYW5pbWF0ZWRMZW5ndGggKz0gbnVtYmVyOworICAgICAgICBhbmlt
YXRlZC0+bGVuZ3RoKCkuc2V0VmFsdWUoYW5pbWF0ZWRMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQs
IGVjKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5pbWF0ZWQtPmxlbmd0aCgpLnNldFZhbHVlKG51
bWJlciwgbV9jb250ZXh0RWxlbWVudCwgZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5oCShyZXZpc2lvbiA4NzYwOSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MSw2ICsyMSw3IEBACiAjZGVmaW5lIFNWR0FuaW1hdGVkTGVuZ3RoX2gKIAogI2lmIEVOQUJMRShT
VkcpCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogCkBAIC0zNSw3ICsz
NiwyOCBAQCBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR0FuaW1hdGVkTGVuCiAjZGVmaW5l
IERFRklORV9BTklNQVRFRF9MRU5HVEgoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIFVwcGVyUHJv
cGVydHksIExvd2VyUHJvcGVydHkpIFwKIERFRklORV9BTklNQVRFRF9QUk9QRVJUWShPd25lclR5
cGUsIERPTUF0dHJpYnV0ZSwgRE9NQXR0cmlidXRlLmxvY2FsTmFtZSgpLCBTVkdBbmltYXRlZExl
bmd0aCwgU1ZHTGVuZ3RoLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KQogCisjaWYgRU5B
QkxFKFNWR19BTklNQVRJT04pCitjbGFzcyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yIDogcHVi
bGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICAKK3B1YmxpYzoKKyAgICBTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKKyAgICB2aXJ0
dWFsIH5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKCkgeyB9CisKKyAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1
ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRl
ZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpOworICAgIHZpcnR1
YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVy
Y2VudGFnZSwgdW5zaWduZWQgcmVwZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdB
bmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZyb21Q
cm9wZXJ0eUluaGVyaXRzLCBib29sIHRvUHJvcGVydHlJbmhlcml0cyk7CisKKyAgICB2b2lkIHNl
dFNWR0xlbmd0aE1vZGUoU1ZHTGVuZ3RoTW9kZSBtb2RlKSB7IG1fbGVuZ3RoTW9kZSA9IG1vZGU7
IH0KKworcHJpdmF0ZToKKyAgICBTVkdMZW5ndGhNb2RlIG1fbGVuZ3RoTW9kZTsKK307CiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWZuZGVmIFNWR0FuaW1hdGVkVHlwZV9oCisjZGVmaW5lIFNWR0FuaW1hdGVkVHlwZV9oCisKKyNp
ZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdMZW5n
dGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlZFR5cGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFR5cGUodHlwZSkp
OworICAgIH0KKyAgICAKKyAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorICAgIAorICAgIFNWR0xlbmd0aCYgbGVuZ3RoKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOworICAgICAgICByZXR1cm4g
Km1fZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBzZXRMZW5ndGgoU1ZHTGVuZ3RoKiBs
ZW5ndGgpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsK
KyAgICAgICAgbV9kYXRhLmxlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSkKKyAgICAgICAg
OiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIEFuaW1hdGVkQXR0cmlidXRl
VHlwZSBtX3R5cGU7CisgICAgCisgICAgdW5pb24gRGF0YVVuaW9uIHsKKyAgICAgICAgRGF0YVVu
aW9uKCkKKyAgICAgICAgICAgIDogbGVuZ3RoKDApCisgICAgICAgIHsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgLy8gRklYTUU6IE1vcmUgU1ZHVW5pdHMgbmVlZCB0byBiZSBhZGRlZCBz
dGVwIGJ5IHN0ZXAuCisgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOworICAgIH0gbV9kYXRhOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcp
ICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVkVHlwZV9oCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3JfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGVBbmltYXRvcigpIHsgfQorICAgIHZp
cnR1YWwgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJikgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5k
VG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3Ry
aW5nJiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kQnlW
YWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5
cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWRWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGZyb21Qcm9wZXJ0eUluaGVyaXRzLCBib29sIHRvUHJvcGVy
dHlJbmhlcml0cykgPSAwOworCisgICAgdm9pZCBzZXRDb250ZXh0RWxlbWVudChTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCkgeyBtX2NvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1lbnQ7IH0K
KyAgICAKK3Byb3RlY3RlZDoKKyAgICBTVkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRlZEF0
dHJpYnV0ZVR5cGUgdHlwZSwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCisgICAgICAgIDog
bV90eXBlKHR5cGUpCisgICAgICAgICwgbV9jb250ZXh0RWxlbWVudChjb250ZXh0RWxlbWVudCkK
KyAgICB7CisgICAgfQorCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIG1fdHlwZTsKKyAgICBT
VkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjZW5k
aWYgLy8gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3JfaApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2
ICsxNTksOCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0CiAKICAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKSB7CiAgICAgICAgIGF0
dHItPnZhbHVlKCkuc3RyaW5nKCkuc3BsaXQoJzsnLCBtX3ZhbHVlcyk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG1f
dmFsdWVzW2ldID0gbV92YWx1ZXNbaV0uc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTI0OCw3ICsyNTAsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmVuZEVsZW1lbnRBdChmCiAgICAgYWRkRW5kVGltZShlbGFwc2VkKCkgKyBvZmZzZXQpOwogfQog
Ci1TVkdBbmltYXRpb25FbGVtZW50OjpBbmltYXRpb25Nb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmFuaW1hdGlvbk1vZGUoKSBjb25zdAorQW5pbWF0aW9uTW9kZSBTVkdBbmltYXRpb25FbGVtZW50
OjphbmltYXRpb25Nb2RlKCkgY29uc3QKIHsKICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDAxL1JFQy1zbWlsLWFuaW1hdGlvbi0yMDAxMDkwNC8jQW5pbUZ1bmNWYWx1ZXMKICAgICBpZiAo
aGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSkKQEAgLTI2NCw3ICsyNjYsNyBAQCBTVkdBbmlt
YXRpb25FbGVtZW50OjpBbmltYXRpb25Nb2RlIFNWR0FuCiAgICAgcmV0dXJuIE5vQW5pbWF0aW9u
OwogfQogCi1TVkdBbmltYXRpb25FbGVtZW50OjpDYWxjTW9kZSBTVkdBbmltYXRpb25FbGVtZW50
OjpjYWxjTW9kZSgpIGNvbnN0CitDYWxjTW9kZSBTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjTW9k
ZSgpIGNvbnN0CiB7ICAgIAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgbGluZWFyLCAoImxpbmVhciIpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYg
KzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1
PgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNiw3ICszNywyNCBAQAog
I2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCitl
bnVtIEFuaW1hdGlvbk1vZGUgeworICAgIE5vQW5pbWF0aW9uLAorICAgIEZyb21Ub0FuaW1hdGlv
biwKKyAgICBGcm9tQnlBbmltYXRpb24sCisgICAgVG9BbmltYXRpb24sCisgICAgQnlBbmltYXRp
b24sCisgICAgVmFsdWVzQW5pbWF0aW9uLAorICAgIFBhdGhBbmltYXRpb24gLy8gVXNlZCBieSBB
bmltYXRlTW90aW9uLgorfTsKKworZW51bSBDYWxjTW9kZSB7CisgICAgQ2FsY01vZGVEaXNjcmV0
ZSwKKyAgICBDYWxjTW9kZUxpbmVhciwKKyAgICBDYWxjTW9kZVBhY2VkLAorICAgIENhbGNNb2Rl
U3BsaW5lCit9OworCiBjbGFzcyBDb25kaXRpb25FdmVudExpc3RlbmVyOwogY2xhc3MgVGltZUNv
bnRhaW5lcjsKIApAQCAtNDksNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgZ2V0U3RhcnRU
aW1lKCkgY29uc3Q7CiAgICAgZmxvYXQgZ2V0Q3VycmVudFRpbWUoKSBjb25zdDsKICAgICBmbG9h
dCBnZXRTaW1wbGVEdXJhdGlvbihFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgCisKICAgICAv
LyBFbGVtZW50VGltZUNvbnRyb2wKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5FbGVtZW50KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVudEF0KGZsb2F0IG9mZnNldCk7CkBAIC01OCwzNiAr
NzYsMzYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNUYXJnZXRBdHRyaWJ1dGVDU1NQ
cm9wZXJ0eShTVkdFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCisgICAgYm9vbCBp
c0FkZGl0aXZlKCkgY29uc3Q7CisgICAgYm9vbCBpc0FjY3VtdWxhdGVkKCkgY29uc3Q7CisgICAg
QW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3Q7CisgICAgQ2FsY01vZGUgY2FsY01v
ZGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFNWR0FuaW1hdGlvbkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKLSAgICBlbnVtIENhbGNNb2RlIHsgQ2FsY01vZGVEaXNj
cmV0ZSwgQ2FsY01vZGVMaW5lYXIsIENhbGNNb2RlUGFjZWQsIENhbGNNb2RlU3BsaW5lIH07Ci0g
ICAgQ2FsY01vZGUgY2FsY01vZGUoKSBjb25zdDsKLSAgICAKLSAgICBlbnVtIEF0dHJpYnV0ZVR5
cGUgeyBBdHRyaWJ1dGVUeXBlQ1NTLCBBdHRyaWJ1dGVUeXBlWE1MLCBBdHRyaWJ1dGVUeXBlQXV0
byB9OworICAgIGVudW0gQXR0cmlidXRlVHlwZSB7CisgICAgICAgIEF0dHJpYnV0ZVR5cGVDU1Ms
CisgICAgICAgIEF0dHJpYnV0ZVR5cGVYTUwsCisgICAgICAgIEF0dHJpYnV0ZVR5cGVBdXRvCisg
ICAgfTsKICAgICBBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUoKSBjb25zdDsKLSAgICAKKwog
ICAgIFN0cmluZyB0b1ZhbHVlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGJ5VmFsdWUoKSBjb25zdDsK
ICAgICBTdHJpbmcgZnJvbVZhbHVlKCkgY29uc3Q7Ci0gICAgCi0gICAgZW51bSBBbmltYXRpb25N
b2RlIHsgTm9BbmltYXRpb24sIFRvQW5pbWF0aW9uLCBCeUFuaW1hdGlvbiwgVmFsdWVzQW5pbWF0
aW9uLCBGcm9tVG9BbmltYXRpb24sIEZyb21CeUFuaW1hdGlvbiwgUGF0aEFuaW1hdGlvbiB9Owot
ICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSgpIGNvbnN0OwotICAgIAorCiAgICAgU3Ry
aW5nIHRhcmdldEF0dHJpYnV0ZUJhc2VWYWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGFyZ2V0
QXR0cmlidXRlQW5pbWF0ZWRWYWx1ZShjb25zdCBTdHJpbmcmKTsKLSAgICAKLSAgICBib29sIGlz
QWRkaXRpdmUoKSBjb25zdDsKLSAgICBib29sIGlzQWNjdW11bGF0ZWQoKSBjb25zdDsKIAogICAg
IC8vIGZyb20gU1ZHU01JTEVsZW1lbnQKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRlZEFjdGl2ZUlu
dGVydmFsKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbihmbG9hdCBwZXJjZW50
LCB1bnNpZ25lZCByZXBlYXQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50KTsKICAgICB2
aXJ0dWFsIHZvaWQgZW5kZWRBY3RpdmVJbnRlcnZhbCgpOwotICAgIAorCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVE
ZWNscyk7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwpAQCAtOTcsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXQs
IFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50KSA9IDA7CiAgICAgdmlydHVhbCBmbG9hdCBj
YWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIC8qZnJvbVN0cmluZyovLCBjb25zdCBTdHJp
bmcmIC8qdG9TdHJpbmcqLykgeyByZXR1cm4gLTEuZjsgfQogICAgIHZpcnR1YWwgUGF0aCBhbmlt
YXRpb25QYXRoKCkgY29uc3QgeyByZXR1cm4gUGF0aCgpOyB9Ci0gICAgCisKICAgICB2b2lkIGN1
cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmltYXRpb24oZmxvYXQgcGVyY2VudCwgZmxvYXQmIGVmZmVj
dGl2ZVBlcmNlbnQsIFN0cmluZyYgZnJvbSwgU3RyaW5nJiB0bykgY29uc3Q7CiAgICAgdm9pZCBj
YWxjdWxhdGVLZXlUaW1lc0ZvckNhbGNNb2RlUGFjZWQoKTsKICAgICBmbG9hdCBjYWxjdWxhdGVQ
ZXJjZW50RnJvbUtleVBvaW50cyhmbG9hdCBwZXJjZW50KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgU1ZHQW5pbWF0b3JfaAorI2RlZmluZSBTVkdBbmltYXRvcl9oCisKKyNpZiBFTkFC
TEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmltYXRlZExl
bmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdBbmltYXRvciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+IGNyZWF0ZShBbmltYXRlZEF0dHJpYnV0ZVR5
cGUgYXR0cmlidXRlVHlwZSwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCisgICAgeworICAg
ICAgICAvLyBGSVhNRTogQWRkIGFuaW1hdGlvbiBzdXBwb3J0IGZvciBhbGwgU1ZHIHVuaXRzLgor
ICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZVR5cGUpIHsKKyAgICAgICAgY2FzZSBBbmltYXRlZExl
bmd0aDoKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhB
bmltYXRvcihjb250ZXh0RWxlbWVudCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQpKTsKKyAgICAgICAgfQorICAg
IH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNlbmRpZiAvLyBTVkdBbmltYXRvcl9oCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA4NzYwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBAQAorMjAxMS0wNS0yOCAgRGlyayBTY2h1bHplICA8a3Jp
dEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNWR0FuaW1hdGlvbiBzaG91bGQgdXNlIGRpcmVjdCB1bml0IGFuaW1hdGlvbiBmb3Ig
U1ZHTGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTM2OAorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0byBjaGVjayBjb3JyZWN0IGJlaGF2
aW9yIG9mIFNWR0xlbmd0aCBhbmltYXRpb25zLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qczogQWRk
ZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2Ft
cGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanM6IEFkZGVk
LgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBs
ZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoZXhlY3V0
ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToK
KyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgor
ICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanM6IEFkZGVkLgorICAg
ICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgor
ICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzOiBBZGRlZC4KKyAgICAgICAgKHNh
bXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAg
KGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6
CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0
ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWV4cy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAg
ICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8taW4uanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1w
bGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LW51bWJlci5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIp
OgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMu
anM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAg
ICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2Uu
anM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAg
ICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBs
ZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKHNh
bXBsZTQpOgorICAgICAgICAoc2FtcGxlNSk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1M
ZW5ndGhNb2RlT3RoZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0
aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLWludmFsaWQtdmFsdWUtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10
by1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWVtcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wZXJjZW50YWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cHgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDUtMjggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQuIFRlc3QgZXhwZWN0YXRpb25zIHVw
ZGF0ZSBhZnRlciByODc2MDUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlSGVpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVIZWlnaHQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3QuaGVpZ2h0LmFuaW1W
YWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3QuaGVpZ2h0LmJh
c2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMjAw
CitQQVNTIHJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3QuaGVpZ2h0
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5n
dGhNb2RlSGVpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVIZWlnaHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90
aGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZU90aGVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjaXJjbGUuci5hbmltVmFsLnZhbHVlIGlz
IDEwCitQQVNTIGNpcmNsZS5yLmJhc2VWYWwudmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYW5p
bVZhbC52YWx1ZSBpcyAxMzIuNDc1CitQQVNTIGNpcmNsZS5yLmJhc2VWYWwudmFsdWUgaXMgMTMy
LjQ3NQorUEFTUyBjaXJjbGUuci5hbmltVmFsLnZhbHVlIGlzIDI1NC45CitQQVNTIGNpcmNsZS5y
LmJhc2VWYWwudmFsdWUgaXMgMjU0LjkKK1BBU1MgY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSBpcyAx
MAorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDEwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxl
bmd0aE1vZGVPdGhlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVPdGhlci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5n
dGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBvbiBMZW5ndGhNb2RlV2lkdGguCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDMwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMzAwCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZVdpZHRoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52
YWxpZC12YWx1ZS0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1h
dGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVl
OiBObyBzcGFjZXMgYmV0d2VlbiBudW1iZXIgYW5kIHVuaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LWludmFsaWQtdmFsdWUtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxo
MT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3Bh
Y2VzIGJlZm9yZSB2YWx1ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1pbnZhbGlkLXZhbHVlLTIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlk
LXZhbHVlLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0
aCBhbmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVlOiBObyBzcGFjZXMgYWZ0ZXIgbnVtYmVyIGFu
ZCB1bml0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFs
aWQtdmFsdWUtMy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51
bWJlci10by1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBA
CitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1h
dGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFT
UyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tbnVtYmVyLXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNt
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3Qg
U1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDE0NC40OQorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTQ0LjQ5CitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxODguOTgKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDE4OC45OAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1jbS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBlbXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tZW1zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tZXhzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
OSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gZnJvbSBweCB0byBleHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTUw
CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjAw
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tZXhzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0Fu
aW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAx
LjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1pbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLWluLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEu
MSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJv
bSBweCB0byBpbmNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE3MAorUEFTUyByZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTcwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAyNDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWluLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5p
bWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8taW4uanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVt
YmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBw
eCB0byBudW1iZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tbnVtYmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVt
YmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1h
dGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLXBjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEu
MSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJv
bSBweCB0byBwYy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE3MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyNDAKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1h
dGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXBjLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGVyY2VudGFnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAK
K1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIGZyb20gcHggdG8gcGVyY2VudGFnZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAz
NTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDM1MAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgNjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyA2
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdl
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2Uu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cwor
CitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxNjEuMTUKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE2
MS4xNQorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTg4Ljk3CitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxODguOTcKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cHgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLXB4Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi12YWx1ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACitTVkcg
MS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBz
ZXQgd2l0aCAndmFsdWVzJywgZGlmZmVyZW50IHVuaXRzIGFuZCBkaWZmZXJlbnQgY291bnQgb2Yg
c3BhY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEzMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTMwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAx
NTEuMTgKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MS4xOAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgNTc2CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyA1NzYKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDI2Ni43CitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyNjYuNworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tdmFsdWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVIZWlnaHQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKK2Rlc2NyaXB0aW9u
KCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZUhlaWdodC4iKTsKK2NyZWF0
ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3Jvb3RTVkdFbGVtZW50
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiNjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICI0MDAiKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3Qg
PSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVj
dCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndp
ZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1z
aXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0
KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiYXR0cmlidXRlTmFtZSIsICJoZWlnaHQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdp
biIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8i
LCAiNTAlIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBw
ZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1w
bGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRC
ZSgicmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVj
dC5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIiwg
IjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmJhc2VW
YWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVl
IiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25z
dCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVt
ZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJl
Y3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisK
KyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVz
dCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1v
ZGVPdGhlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1h
dGlvbiBvbiBMZW5ndGhNb2RlT3RoZXIuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBT
ZXR1cCB0ZXN0IGRvY3VtZW50Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwg
IjYwMCIpOworcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNDAwIik7CisK
Ky8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBjaXJjbGUgPSBjcmVhdGVTVkdFbGVtZW50KCJj
aXJjbGUiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoImlkIiwgImNpcmNsZSIpOworY2lyY2xlLnNl
dEF0dHJpYnV0ZSgiY3giLCAiNTAiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoImN5IiwgIjUwIik7
CitjaXJjbGUuc2V0QXR0cmlidXRlKCJyIiwgIjEwIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJm
aWxsIiwgImdyZWVuIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVU
ZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJyIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4i
LCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAi
NTAlIik7CitjaXJjbGUuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBl
bmRDaGlsZChjaXJjbGUpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2Ft
cGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmUoImNpcmNsZS5yLmFuaW1WYWwudmFsdWUiLCAiMTAiKTsKKyAgICBzaG91bGRCZSgiY2lyY2xl
LnIuYmFzZVZhbC52YWx1ZSIsICIxMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goImNpcmNsZS5yLmFuaW1WYWwudmFsdWUiLCAiMTMyLjQ3NSIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImNpcmNsZS5yLmJhc2VWYWwudmFsdWUi
LCAiMTMyLjQ3NSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goImNpcmNsZS5yLmFuaW1WYWwudmFsdWUiLCAiMjU0LjkiLCAwLjEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImNpcmNsZS5yLmJhc2VWYWwudmFsdWUiLCAiMjU0Ljki
LCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNh
bXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgImNpcmNsZSIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgImNpcmNsZSIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgImNpcmNsZSIsIHNhbXBsZTNdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgImNpcmNsZSIsIHNhbXBsZTFdCisgICAgXTsKKwor
ICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0
IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9k
ZVdpZHRoLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU5IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIG9uIExlbmd0aE1vZGVXaWR0aC4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNl
dHVwIHRlc3QgZG9jdW1lbnQKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAi
NjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICI0MDAiKTsKKwor
Ly8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
IngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdy
ZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBj
cmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAi
YW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0
aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIx
MDAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI1MCUiKTsKK3JlY3QuYXBwZW5kQ2hp
bGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0
dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5p
dGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
MDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworfQor
CitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIzMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMzAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9u
IGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAv
LyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAz
Ljk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAi
cmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0xLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACitkZXNjcmlw
dGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3Bh
Y2VzIGJldHdlZW4gbnVtYmVyIGFuZCB1bml0LiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKwor
Ly8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
IngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdy
ZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisK
K3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJp
YnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGlj
ayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImZyb20iLCAiMTAwICAgcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIy
MDAgICBweCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFw
cGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2Ft
cGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkg
eworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMCIpOworfQorCitmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8g
W2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBb
ImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4w
ICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhw
ZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91
dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVlOiBObyBzcGFjZXMgYmVmb3JlIHZhbHVlLiIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3Qg
PSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVj
dCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndp
ZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGlj
ayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgi
YW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIs
ICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiICAgMTAwcHgiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJ0byIsICIgICAyMDBweCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmlt
YXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmlt
YXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2Vu
ZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIx
MDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOwor
fQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUi
LCAiMCIpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNh
bXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKwor
ICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0
IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKK2Rlc2Ny
aXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVlOiBObyBz
cGFjZXMgYWZ0ZXIgbnVtYmVyIGFuZCB1bml0LiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKwor
Ly8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
IngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdy
ZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisK
K3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJp
YnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGlj
ayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImZyb20iLCAiMTAwcHggICAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIy
MDBweCAgICIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFw
cGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2Ft
cGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkg
eworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMCIpOworfQorCitmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8g
W2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBb
ImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4w
ICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhw
ZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91
dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVt
YmVyLXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0
aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8v
IFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVl
biIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2
YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1
dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
K30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMg
PSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxs
YmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tY20uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9t
IHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1
bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJp
YnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIs
ICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0
dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3Jl
YXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFu
aW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAw
cHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI1Y20iKTsKK3JlY3QuYXBwZW5kQ2hp
bGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0
dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5p
dGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
MDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTQ0LjQ5IiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE0NC40OSIsIDAuMDEp
OworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxODguOTgiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTg4Ljk4IiwgMC4wMSk7Cit9
CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJh
Y2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRl
c3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0
VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1lbXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJv
bSBweCB0byBlbXMuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRv
Y3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0
IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJmb250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xp
Y2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQo
ImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIi
LCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgidG8iLCAiMjBlbSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsK
K3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24g
dGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25k
aXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsK
KyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitm
dW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3Qo
KSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25J
ZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24i
LCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAg
ICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3Qi
LCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tZXhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWV4cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorZGVzY3JpcHRp
b24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGV4cy4iKTsKK2NyZWF0ZVNW
R1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRl
U1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIx
MDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJp
YnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIx
MHB4Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisK
K3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJp
YnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGlj
ayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI0MGV4
Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hp
bGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkg
eworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZh
bHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBs
ZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUx
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1pbi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9u
IGZyb20gcHggdG8gaW5jaC4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRl
c3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJo
ZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0
ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJp
ZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwg
IndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9t
IiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMi41aW4iKTsKK3JlY3Qu
YXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsK
KworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8g
Q2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTcwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE3MCIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7Cit9CisK
K2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWwor
ICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2td
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
NC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3Qo
ZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGlt
ZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1udW1iZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuanMJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRp
b24gZnJvbSBweCB0byBudW1iZXIuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1
cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFu
aW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFt
ZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCIpOworcmVj
dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3Qp
OworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAv
LyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUwIiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cGMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5qcwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4
IHRvIHBjLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVu
dAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIx
MDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJp
YnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRl
U1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1h
dGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIxNXBjIik7CityZWN0LmFwcGVuZENoaWxk
KGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVw
IGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRp
YWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAw
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE3MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNzAiLCAwLjAxKTsKK30KKwor
ZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8g
W2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBb
ImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45
OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJl
Y3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFs
dWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdn
ZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNl
bnRhZ2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIGZyb20gcHggdG8gcGVyY2VudGFnZS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8v
IFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVl
biIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2
YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1
dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwJSIp
OworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxk
KHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsK
KyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIzNTAiLCAwLjAx
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MzUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjYwMCIsIDAuMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjYwMCIsIDAuMSk7
Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVz
ID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2Fs
bGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlv
blRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cu
c2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLXB0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJv
bSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9j
dW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQi
LCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNy
ZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJh
bmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRo
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEw
MHB0Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNWNtIik7CityZWN0LmFwcGVuZENo
aWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNl
dHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGlu
aXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE2MS4xNSIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNjEuMTUiLCAwLjAx
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTg4Ljk3IiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE4OC45NyIsIDAuMDEpOwor
fQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9
IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxi
YWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25U
ZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNl
dFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1weC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20g
cHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3Vt
ZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVh
dGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5p
bWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBw
eCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMHB4Iik7CityZWN0LmFwcGVuZENo
aWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNl
dHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGlu
aXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlv
biBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAg
Ly8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAg
ICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
My45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAg
InJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVk
VmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRy
aWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi12YWx1ZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tdmFsdWVzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACitkZXNj
cmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHNldCB3aXRoICd2YWx1ZXMnLCBkaWZm
ZXJlbnQgdW5pdHMgYW5kIGRpZmZlcmVudCBjb3VudCBvZiBzcGFjZXMuIik7CitjcmVhdGVTVkdU
ZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgidmFsdWVzIiwgIjEwMHB4OyAgMTMwICA7NGNtICA7NmluOyAy
MDBwdCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVu
ZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxl
MSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUo
InJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMzAi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMTMwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MS4xOCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
NTEuMTgiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNCgpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiNTc2IiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjU3NiIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU1KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyNjYuNyIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyNjYuNyIsIDAuMDEpOwor
fQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9
IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxi
YWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAxLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDMuMCwgICAgInJlY3QiLCBzYW1wbGU0XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5
OTksICJyZWN0Iiwgc2FtcGxlNV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVj
dCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1
ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dl
clVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95264</attachid>
            <date>2011-05-28 09:45:43 -0700</date>
            <delta_ts>2011-06-12 04:56:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110528184538.patch</filename>
            <type>text/plain</type>
            <size>122044</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTEtMDUtMjggIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBUaGUgZ29hbCBpcyB0byBtb3ZlIHRoZSBtYWlu
IGFuaW1hdGlvbiBsb2dpYyBmb3IgU1ZHIHVuaXRzIGZyb20gU1ZHQW5pbWF0ZUVsZW1lbnQgaW50
byB0aGUgY29ycmVzcG9uZGluZyBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAgIFN0YXJ0aW5n
IHdpdGggU1ZHTGVuZ3RoIG9uIHRoaXMgcGF0Y2guIFNWR0FuaW1hdGVFbGVtZW50IHdpbGwganVz
dCB3b3JrIHdpdGggdGhlIGdlbmVyaWMgdHlwZSBTVkdBbmltYXRlZFR5cGUuIFNWR0FuaW1hdG9y
CisgICAgICAgIGNvb3JkaW5hdGVzIHRoZSBjb25uZWN0aW9uIGZyb20gU1ZHQW5pbWF0ZWRUeXBl
IHRvIHRoZSBTVkcgdW5pdCBhbmltYXRvcnMgbGlrZSBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
IGluIFNWR0FuaW1hdGVkTGVuZ3RoLmguCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCisgICAgICAgICAgICAg
ICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1s
CisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVXaWR0aC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5o
dG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51
bWJlci10by1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1jbS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCisgICAgICAgICAg
ICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVt
YmVyLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGMuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzIHRvIGJ1aWxkIHN5c3Rl
bS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQWxs
SW5PbmUuY3BwOiBBZGRlZCBTVkdBbmltYXRlZExlbmd0aC5jcHAgZm9yIFdpbiBhbmQgb3RoZXIg
YnVpbGQgc3lzdGVtcy4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckN1cnJlbnRDb2xvcik6
IE1hZGUgYWRqdXN0Rm9yQ3VycmVudENvbG9yIHB1YmxpYyBhcyBwcmVwZXJhdGlvbiBmb3IgU1ZH
QW5pbWF0ZWRDb2xvci4KKyAgICAgICAgKFdlYkNvcmU6OmdldFByb3BlcnR5VmFsdWUpOiBJbmxp
bmUgZnVuY3Rpb24gdG8gZ2V0IGNvbXB1dGVkU3R5bGUgb2YgQ1NTIHByb3BlcnR5LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRhbmNlKTogTWFk
ZSBhZGp1c3RGb3JJbmhlcml0YW5jZSBhcyBwcmVwZXJhdGlvbiBmb3IgU1ZHQW5pbWF0ZWQqIGZp
bGVzLgorICAgICAgICAoV2ViQ29yZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmli
dXRlKTogR2V0IExlbmd0aE1vZGUgZm9yIFNWR0xlbmd0aCBkZXBlbmRpbmcgb24gdGhlIGF0dHJp
YnV0ZSBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmRldGVybWlu
ZUFuaW1hdGVkQXR0cmlidXRlVHlwZSk6IFNWR0xlbmd0aCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcg
dmlhIFNWR0FuaW1hdG9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTogQ2xlYW51cC4gTWFrZSB1c2Ugb2YgU1ZHQW5pbWF0
b3IgZm9yIFNWR0xlbmd0aC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50Ojpj
YWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVE
aXN0YW5jZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5oOiBBZGRlZCBuZXcgY2xhc3MgU1ZHQW5pbWF0
ZWRMZW5ndGhBbmltYXRvciB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGFjdHVhbCBhbmlt
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjp+U1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpzZXRTVkdMZW5ndGhNb2RlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0IHR5cGUgZm9yIGFuaW1hdGlvbnMgaW4g
U1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjpzZXRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oOiBBZGRlZC4gQmFzZSBjbGFzcyBmb3IgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRv
ciBhbmQgZnV0dXJlIFNWRyB1bml0IGFuaW1hdG9ycy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnNldENvbnRleHRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpTVkdBbmltYXRlZFR5cGVB
bmltYXRvcik6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBX
ZSBkbyBub3QgdXNlIHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0IGZvciBTVkdMZW5ndGggbm93LiBI
YXZlIHRvIHN0cmlwIHdoaXRlIHNwYWNlcyBoZXJlLiBXaGl0ZXNwYWNlcyBzaG91bGRuJ3QKKyAg
ICAgICAgICBiZSBzdHJpcHBlZCBvbiAnZnJvbScsICd0bycgYW5kICdieScuIFRoaXMgaXMgbm90
IHRoZSBjYXNlIGZvciBTVkdMZW5ndGggYW55bW9yZS4gQWRkZWQgbmV3IHRlc3RzIHRvIGNoZWNr
IHRoaXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojph
bmltYXRpb25Nb2RlKTogRW51bSBpcyBhY2Nlc3NpYmxlIGluIFdlYkNvcmUgbmFtZXNwYWNlIG5v
dy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGNNb2RlKTogRGl0
dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRvcjo6Y3Jl
YXRlKToKKwogMjAxMS0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2MzksNiArMTYzOSw3IEBAIElGIChFTkFCTEVfU1ZHKQog
ICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5nbGUu
Y3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAorICAgICAgICBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAK
ICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHJldmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzMxNSw2ICszMzE1LDcgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaCBcCiAJU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmggXApAQCAtMzMyMyw2ICszMzI0LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXAorCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuaCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIFwKQEAgLTMzMzEsNiArMzMz
NCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaCBc
CisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEwNTUsNiArMTA1NSw5IEBACiAgICAgICAg
ICAgICAnc3ZnL1NWR0FuaW1hdGVkUmVjdC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0
ZWRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5o
JywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRUeXBlLmgnLAorICAgICAgICAgICAgJ3N2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0
b3IuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0NvbG9yLmgnLAogICAgICAgICAgICAgJ3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0VsZW1lbnQuaCcs
CkBAIC01NjcxLDYgKzU2NzQsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmdsZS5jcHAnLAog
ICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNw
cCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgnLAogICAgICAgICAgICAg
J3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJl
dmlzaW9uIDg3NjA5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29w
eSkKQEAgLTIzMTYsMTAgKzIzMTYsMTMgQEAgSEVBREVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1h
dGVkUmVjdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCiAgICAgc3ZnL1NWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorICAg
IHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmggXAogICAgIHN2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5o
IFwKKyAgICBzdmcvU1ZHQW5pbWF0b3IuaCBcCiAgICAgc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBc
CiAgICAgc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQ29sb3IuaCBcCkBA
IC0zMjU5LDYgKzMyNjIsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAg
ICAgICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBz
dmcvU1ZHQW5nbGUuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1l
bnQuY3BwIFwKKyAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAgICAg
ICAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjUwNjYs
NiArNjUwNjYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkVHlwZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNW
R0FuaW1hdGVFbGVtZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNjUwODIsNiArNjUwOTAs
MTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3ZnXFNWR0FuaW1hdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN2Z1xTVkdDaXJjbGVFbGVtZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkwMyw2ICs5MDMsMTAgQEAKIAkJ
NDFGNTg0QzcxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjU4NEM2MTA0NjUyQ0Iw
MDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi87IH07CiAJCTQxRkEzMDNFMTMxNkMy
OUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBS
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsgfTsKIAkJNDFGQTMwM0YxMzE2QzI5QzAwQzBCRkM1
IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNv
bnRyb2xzLmggKi87IH07CisJCTQzMzIzOEFBMTM5MTE4MDQwMDQ4QTU3QyAvKiBTVkdBbmltYXRl
ZExlbmd0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MzMyMzhBNjEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovOyB9
OworCQk0MzMyMzhBQjEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMyMzhBNzEzOTExODA0
MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlLmggKi87IH07CisJCTQzMzIzOEFDMTM5MTE4MDQw
MDQ4QTU3QyAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzMjM4QTgxMzkxMTgwNDAwNDhBNTdDIC8qIFNW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi87IH07CisJCTQzMzIzOEFEMTM5MTE4MDQwMDQ4QTU3
QyAvKiBTVkdBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDMzMjM4QTkxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdG9yLmggKi87IH07
CiAJCTQzNThFODZBMTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2
NzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oICovOyB9Owog
CQk0MzU4RTg2QjEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY4
MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tICovOyB9Owog
CQk0MzU4RTg2QzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVy
bmFsLmggKi87IH07CkBAIC03NDE5LDYgKzc0MjMsMTAgQEAKIAkJNDFGNTg0QzYxMDQ2NTJDQjAw
OUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNNZXNzYWdlUG9ydEN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0QxMzE2QzI5QzAwQzBC
RkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MzMyMzhBNjEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzMyMzhBNzEzOTExODA0MDA0OEE1N0MgLyog
U1ZHQW5pbWF0ZWRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Fu
aW1hdGVkVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzMyMzhBODEzOTEx
ODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDMzMjM4QTkxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY3MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01T
VkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM1OEU4NjgxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdGRURyb3BT
aGFkb3dFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2OTEz
NjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyNTgsNiArMTcyNjYs
NyBAQAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEVudW1lcmF0
aW9uLmlkbCAqLywKIAkJCQkwODIzRDE1ODEyN0FENkFDMDAwRUJDOTUgLyogU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmggKi8sCiAJCQkJQjIyMjc3RTkwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVk
SW50ZWdlci5pZGwgKi8sCisJCQkJNDMzMjM4QTYxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1h
dGVkTGVuZ3RoLmNwcCAqLywKIAkJCQkwODkwMjFBODEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5p
bWF0ZWRMZW5ndGguaCAqLywKIAkJCQlCMjIyNzdFQTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5p
bWF0ZWRMZW5ndGguaWRsICovLAogCQkJCTA4OTAyMUFDMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdB
bmltYXRlZExlbmd0aExpc3QuaCAqLywKQEAgLTE3Mjc0LDYgKzE3MjgzLDggQEAKIAkJCQlCMjIy
NzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovLAogCQkJCTA4
MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCAqLywK
IAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmlkbCAqLywKKwkJCQk0MzMyMzhBNzEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0ZWRUeXBl
LmggKi8sCisJCQkJNDMzMjM4QTgxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVkVHlwZUFu
aW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVF
bGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0
ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0
ZUVsZW1lbnQuaWRsICovLApAQCAtMTcyODUsNiArMTcyOTYsNyBAQAogCQkJCUIyMjI3ODAxMEQw
MEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzgw
MjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5oICovLAogCQkJCUIyMjI3
ODAzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmlkbCAqLywKKwkJCQk0
MzMyMzhBOTEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCAqLywKIAkJCQlCMjIyNzgw
NDBEMDBCRjFGMDA3MUI3ODIgLyogc3ZnYXR0cnMuaW4gKi8sCiAJCQkJQjIyMjc4MDUwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0NpcmNsZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3ODA2MEQwMEJG
MUYwMDcxQjc4MiAvKiBTVkdDaXJjbGVFbGVtZW50LmggKi8sCkBAIC0yMzAwOCw2ICsyMzAyMCw5
IEBACiAJCQkJQjEyRDIzNkUxMzU2MDM0RDAwMkEyOEQ0IC8qIEpTTXVsdGlwbGVUcmFja0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCThDMEUzMzREMTM4QTkyQzcwMDhEQTk0RiAvKiBMZXZlbERC
VHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCThDMEUzMzRGMTM4QTkyQzcwMDhEQTk0
RiAvKiBMZXZlbERCV3JpdGVCYXRjaC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDMzMjM4QUIxMzkx
MTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVkVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDMz
MjM4QUMxMzkxMTgwNDAwNDhBNTdDIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MzMyMzhBRDEzOTExODA0MDA0OEE1N0MgLyogU1ZHQW5pbWF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjU3MDQsNiArMjU3MTksNyBAQAogCQkJCUIxMkQyMzZEMTM1NjAz
NEQwMDJBMjhENCAvKiBKU011bHRpcGxlVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CThDMEUzMzRDMTM4QTkyQzcwMDhEQTk0RiAvKiBMZXZlbERCVHJhbnNhY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOEMwRTMzNEUxMzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJXcml0ZUJh
dGNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzMzIzOEFBMTM5MTE4MDQwMDQ4QTU3QyAvKiBT
VkdBbmltYXRlZExlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsbEluT25lLmNwcAkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
U1ZHQWx0R2x5cGhFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA4NzYwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYgKzMyLDcgQEAKICNpbmNsdWRlICJG
bG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTVkdD
b2xvci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0
aWVzLmgiCkBAIC04OSw3ICs5MSw3IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFsdWVBbmRV
bml0KGNvbnMKICAgICByZXR1cm4gb2s7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RG
b3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImIGNvbG9yKQor
dm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQq
IHRhcmdldEVsZW1lbnQsIENvbG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVu
dCk7CiAgICAgCkBAIC05OSw3ICsxMDEsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZv
ckN1cnJlbnRDb2xvcgogICAgICAgICBjb2xvciA9IENvbG9yKCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCBhZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBTdHJpbmcmIHZhbHVlKQorc3RhdGlj
IGlubGluZSB2b2lkIGdldFByb3BlcnR5VmFsdWUoU1ZHRWxlbWVudCogc3ZnUGFyZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBTdHJpbmcmIHZhbHVlKQoreworICAgIEFT
U0VSVChzdmdQYXJlbnQtPmlzU3R5bGVkKCkpOworICAgIHZhbHVlID0gY29tcHV0ZWRTdHlsZShz
dmdQYXJlbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKGNzc1Byb3BlcnR5SUQoYXR0cmlidXRlTmFtZS5s
b2NhbE5hbWUoKSkpOworfQorCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphZGp1c3RGb3JJbmhl
cml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBTdHJpbmcmIHZhbHVlKQogewogICAgIC8vIEZJWE1FOiBBdCB0aGUgbW9t
ZW50IHRoZSBjb21wdXRlZCBzdHlsZSBnZXRzIHJldHVybmVkIGFzIGEgU3RyaW5nIGFuZCBuZWVk
cyB0byBnZXQgcGFyc2VkIGFnYWluLgogICAgIC8vIEluIHRoZSBmdXR1cmUgd2UgbWlnaHQgd2Fu
dCB0byB3b3JrIHdpdGggdGhlIHZhbHVlIHR5cGUgZGlyZWN0bHkgdG8gYXZvaWQgdGhlIFN0cmlu
ZyBwYXJzaW5nLgpAQCAtMTExLDcgKzExOSw0MiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0
Rm9ySW5oZXJpdGFuY2UoCiAKICAgICBTVkdFbGVtZW50KiBzdmdQYXJlbnQgPSBzdGF0aWNfY2Fz
dDxTVkdFbGVtZW50Kj4ocGFyZW50KTsKICAgICBpZiAoc3ZnUGFyZW50LT5pc1N0eWxlZCgpKQot
ICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkU3R5bGUoc3ZnUGFyZW50KS0+Z2V0UHJvcGVydHlWYWx1
ZShjc3NQcm9wZXJ0eUlEKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKTsKKyAgICAgICAgZ2V0
UHJvcGVydHlWYWx1ZShzdmdQYXJlbnQsIGF0dHJpYnV0ZU5hbWUsIHZhbHVlKTsKK30KKworc3Rh
dGljIGlubGluZSBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKK3sKKyAgICB0eXBlZGVmIEhhc2hN
YXA8UXVhbGlmaWVkTmFtZSwgU1ZHTGVuZ3RoTW9kZT4gTGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJp
YnV0ZU1hcDsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aE1vZGVGb3JMZW5ndGhBdHRy
aWJ1dGVNYXAsIHNfbGVuZ3RoTW9kZU1hcCwgKCkpOworICAgIAorICAgIGlmIChzX2xlbmd0aE1v
ZGVNYXAuaXNFbXB0eSgpKSB7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6
OnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNW
R05hbWVzOjp5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1h
cC5zZXQoU1ZHTmFtZXM6OmN4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5n
dGhNb2RlTWFwLnNldChTVkdOYW1lczo6Y3lBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAg
ICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZHhBdHRyLCBMZW5ndGhNb2RlV2lkdGgp
OworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeUF0dHIsIExlbmd0aE1v
ZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpmeEF0dHIs
IExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6
OmZ5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQo
U1ZHTmFtZXM6OnJBdHRyLCBMZW5ndGhNb2RlT3RoZXIpOworICAgICAgICBzX2xlbmd0aE1vZGVN
YXAuc2V0KFNWR05hbWVzOjp3aWR0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmhlaWdodEF0dHIsIExlbmd0aE1vZGVIZWlnaHQp
OworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp4MUF0dHIsIExlbmd0aE1v
ZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OngyQXR0ciwg
TGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6
eTFBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChT
VkdOYW1lczo6eTJBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2Rl
TWFwLnNldChTVkdOYW1lczo6cmVmWEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnJlZllBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsK
KyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6bWFya2VyV2lkdGhBdHRyLCBM
ZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpt
YXJrZXJIZWlnaHRBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsgICAgICAgIAorICAgICAgICBzX2xl
bmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0ciwgTGVuZ3RoTW9kZVdpZHRo
KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6c3RhcnRPZmZzZXRBdHRy
LCBMZW5ndGhNb2RlV2lkdGgpOworICAgIH0KKyAgICAKKyAgICBpZiAoc19sZW5ndGhNb2RlTWFw
LmNvbnRhaW5zKGF0dHJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHNfbGVuZ3RoTW9kZU1hcC5nZXQo
YXR0ck5hbWUpOworICAgIAorICAgIHJldHVybiBMZW5ndGhNb2RlT3RoZXI7CiB9CiAKIGJvb2wg
U1ZHQW5pbWF0ZUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CkBAIC0xMzYs
MTYgKzE3OSwxNyBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CiAgICAgY2FzZSBB
bmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXJMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbzoKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICBjYXNlIEFuaW1h
dGVkU3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwogICAgIGNhc2UgQW5p
bWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVk
TGVuZ3RoOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZE51bWJlcjsKICAgICBjYXNlIEFuaW1hdGVkUGF0aDoKQEAgLTE1NCw4ICsxOTgsOCBAQCBBbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZFBvaW50czsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZENvbG9yOwotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgIGNhc2UgQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0OgorICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgICAgICAvLyBBbmlt
YXRpb25zIG9mIHRyYW5zZm9ybSBsaXN0cyBhcmUgbm90IGFsbG93ZWQgZm9yIDxhbmltYXRlPiBv
ciA8c2V0PgogICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5odG1s
I0FuaW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCiAgICAgICAgIHJldHVybiBBbmltYXRl
ZFVua25vd247CkBAIC0xNzEsMTQgKzIxNSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUFuaW1hdGUKICAgICBBU1NFUlQocmVzdWx0RWxlbWVudCk7CiAgICAgYm9vbCBpc0lu
Rmlyc3RIYWxmT2ZBbmltYXRpb24gPSBwZXJjZW50YWdlIDwgMC41ZjsKICAgICBBbmltYXRpb25N
b2RlIGFuaW1hdGlvbk1vZGUgPSB0aGlzLT5hbmltYXRpb25Nb2RlKCk7Ci0gICAgU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCA9IDA7Ci0gICAgLy8gQXZvaWQgdGFyZ2V0RWxlbWVudCgpIGNhbGwg
aWYgcG9zc2libGUuIEl0IG1pZ2h0IHNsb3cgZG93biBhbmltYXRpb25zLgotICAgIGlmIChtX2Zy
b21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUgfHwgbV90b1Byb3BlcnR5VmFsdWVU
eXBlID09IEluaGVyaXRWYWx1ZQotICAgICAgICB8fCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9
PSBDdXJyZW50Q29sb3JWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gQ3VycmVudENv
bG9yVmFsdWUpIHsKLSAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQo
KTsKLSAgICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgp
OworICAgIGlmICghdGFyZ2V0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
IChoYXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQogICAgICAgICBwZXJjZW50YWdlID0gMTsK
QEAgLTE4OSw3ICsyMjgsOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmlt
YXRlCiAgICAgLy8gQ2FuJ3QgYWNjdW11bGF0ZSBvdmVyIGEgc3RyaW5nIHByb3BlcnR5LgogICAg
IGlmIChyZXN1bHRzLT5tX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFN0cmluZyAm
JiBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSAhPSBBbmltYXRlZFN0cmluZykKICAgICAgICAgcmV0
dXJuOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikg
eworICAgIHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyOiB7CiAgICAgICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMg
ZnJvbSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KICAg
ICAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zy
b21OdW1iZXIgPSByZXN1bHRzLT5tX2FuaW1hdGVkTnVtYmVyOwpAQCAtMjIzLDcgKzI2Myw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJl
c3VsdHMtPm1fYW5pbWF0ZWROdW1iZXIgPSBudW1iZXI7CiAgICAgICAgIHJldHVybjsKICAgICB9
IAotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7Cisg
ICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlID09IFRv
QW5pbWF0aW9uKQogICAgICAgICAgICAgbV9mcm9tQ29sb3IgPSByZXN1bHRzLT5tX2FuaW1hdGVk
Q29sb3I7CiAKQEAgLTI1Niw3ICsyOTYsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxj
dWxhdGVBbmltYXRlCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkQ29sb3IgPSBjb2xv
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgY2FzZSBBbmltYXRlZFBhdGg6IHsKICAgICAgICAg
aWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHRzLT5tX2FuaW1hdGVkUGF0aFBvaW50ZXIpOwogICAgICAgICAgICAgbV9mcm9tUGF0aCA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlci0+Y29weSgpOwpAQCAtMjg5LDcgKzMyOSw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9
PSBBbmltYXRlZFBvaW50cykgeworICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAg
aWYgKCFwZXJjZW50YWdlKQogICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cyA9
IG1fZnJvbVBvaW50czsKICAgICAgICAgZWxzZSBpZiAocGVyY2VudGFnZSA9PSAxKQpAQCAtMzA2
LDYgKzM0NiwxNiBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKKyAgICAgICAgLy8gVGFyZ2V0IGVsZW1l
bnQgbWlnaHQgaGF2ZSBjaGFuZ2VkLgorICAgICAgICBtX2FuaW1hdG9yLT5zZXRDb250ZXh0RWxl
bWVudCh0YXJnZXRFbGVtZW50KTsKKyAgICAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZSh0aGlzLCBwZXJjZW50YWdlLCByZXBlYXQsIG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBy
ZXN1bHRzLT5tX2FuaW1hdGVkVHlwZSwgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJp
dFZhbHVlLCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CiAgICAg
QVNTRVJUKGFuaW1hdGlvbk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1vZGUg
PT0gVG9BbmltYXRpb24gfHwgYW5pbWF0aW9uTW9kZSA9PSBWYWx1ZXNBbmltYXRpb24pOwogICAg
IC8vIFJlcGxhY2UgJ2N1cnJlbnRDb2xvcicgLyAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQg
cHJvcGVydHkgdmFsdWVzLgogICAgIGlmIChtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhl
cml0VmFsdWUpCkBAIC0zNDcsNyArMzk3LDggQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2Fs
Y3VsYXRlRnJvbUFuZAogCiAgICAgLy8gRklYTUU6IE5lZWRzIG1vcmUgc29saWQgd2F5IGRldGVy
bWluZSB0YXJnZXQgYXR0cmlidXRlIHR5cGUuCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2gg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAg
ICAgICAgIGJvb2wgZnJvbUlzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRD
b2xvcihmcm9tU3RyaW5nKTsKICAgICAgICAgYm9vbCB0b0lzQ3VycmVudENvbG9yID0gYXR0cmli
dXRlVmFsdWVJc0N1cnJlbnRDb2xvcih0b1N0cmluZyk7CiAgICAgICAgIGlmIChmcm9tSXNDdXJy
ZW50Q29sb3IpCkBAIC0zNjIsMTQgKzQxMywxOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50Ojpj
YWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGJvb2wgdG9Jc1ZhbGlkID0gbV90b0NvbG9yLmlzVmFs
aWQoKSB8fCB0b0lzQ3VycmVudENvbG9yIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhl
cml0VmFsdWU7CiAgICAgICAgIGlmICgoZnJvbUlzVmFsaWQgJiYgdG9Jc1ZhbGlkKSB8fCAodG9J
c1ZhbGlkICYmIGFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbikpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFu
aW1hdGVkTnVtYmVyKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVk
TnVtYmVyOiB7CiAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAgICAgICBpZiAo
cGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQodG9TdHJpbmcsIG1fdG9OdW1iZXIsIG1fbnVtYmVyVW5p
dCkpIHsKICAgICAgICAgICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBp
cyBjYWxjdWxhdGVkIGxhdGVyCiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uIHx8IHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIG1fZnJvbU51
bWJlciwgbV9udW1iZXJVbml0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQ
YXRoKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewog
ICAgICAgICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0
b3J5OjpzZWxmKCk7CiAgICAgICAgIGlmIChmYWN0b3J5LT5idWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVN0cmluZyh0b1N0cmluZywgbV90b1BhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpKSB7CiAgICAg
ICAgICAgICAvLyBGb3IgdG8tYW5pbWF0aW9ucyB0aGUgZnJvbSBudW1iZXIgaXMgY2FsY3VsYXRl
ZCBsYXRlcgpAQCAtMzc4LDEzICs0MzMsMjUgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2Fs
Y3VsYXRlRnJvbUFuZAogICAgICAgICB9CiAgICAgICAgIG1fZnJvbVBhdGguY2xlYXIoKTsKICAg
ICAgICAgbV90b1BhdGguY2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIEFuaW1hdGVkUG9pbnRzOiB7CiAgICAgICAgIG1fZnJvbVBvaW50cy5jbGVhcigpOwogICAg
ICAgICBpZiAocG9pbnRzTGlzdEZyb21TVkdEYXRhKG1fZnJvbVBvaW50cywgZnJvbVN0cmluZykp
IHsKICAgICAgICAgICAgIG1fdG9Qb2ludHMuY2xlYXIoKTsKICAgICAgICAgICAgIGlmIChwb2lu
dHNMaXN0RnJvbVNWR0RhdGEobV90b1BvaW50cywgdG9TdHJpbmcpKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IEFuaW1hdGVkTGVuZ3RoOiB7CisgICAgICAgIG1fYW5pbWF0b3IgPSBTVkdBbmltYXRvcjo6Y3Jl
YXRlKEFuaW1hdGVkTGVuZ3RoLCB0YXJnZXRFbGVtZW50KTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcio+KG1fYW5pbWF0b3IuZ2V0KCkpLT5zZXRTVkdMZW5n
dGhNb2RlKGxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1l
KCkpKTsKKyAgICAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKG1fZnJv
bVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCB0b1N0cmluZyk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgbV9m
cm9tU3RyaW5nID0gZnJvbVN0cmluZzsKICAgICBtX3RvU3RyaW5nID0gdG9TdHJpbmc7CkBAIC00
MDIsNyArNDY5LDggQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAog
CiAgICAgQVNTRVJUKCFoYXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKTsKICAgICBtX2FuaW1h
dGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRF
bGVtZW50KTsKLSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xv
cikgeworICAgIHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFu
aW1hdGVkQ29sb3I6IHsKICAgICAgICAgYm9vbCBmcm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1
dGVWYWx1ZUlzQ3VycmVudENvbG9yKGZyb21TdHJpbmcpOwogICAgICAgICBib29sIGJ5SXNDdXJy
ZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGJ5U3RyaW5nKTsKICAgICAg
ICAgaWYgKGZyb21Jc0N1cnJlbnRDb2xvcikKQEAgLTQxNyw3ICs0ODUsMTYgQEAgYm9vbCBTVkdB
bmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICBpZiAoKCFtX2Zyb21Db2xv
ci5pc1ZhbGlkKCkgJiYgIWZyb21Jc0N1cnJlbnRDb2xvcikKICAgICAgICAgICAgIHx8ICghbV90
b0NvbG9yLmlzVmFsaWQoKSAmJiAhYnlJc0N1cnJlbnRDb2xvcikpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1hdG9y
OjpjcmVhdGUoQW5pbWF0ZWRMZW5ndGgsIHRhcmdldEVsZW1lbnQpOworICAgICAgICBzdGF0aWNf
Y2FzdDxTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKj4obV9hbmltYXRvci5nZXQoKSktPnNldFNW
R0xlbmd0aE1vZGUobGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUoKSkpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMo
bV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIGJ5U3RyaW5nKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICB9CisgICAgZGVmYXVsdDoKICAgICAgICAgbV9udW1iZXJVbml0ID0g
U3RyaW5nKCk7CiAgICAgICAgIG1fZnJvbU51bWJlciA9IDA7CiAgICAgICAgIGlmICghZnJvbVN0
cmluZy5pc0VtcHR5KCkgJiYgIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIG1f
ZnJvbU51bWJlciwgbV9udW1iZXJVbml0KSkKQEAgLTQzNiwxMyArNTEzLDE1IEBAIHZvaWQgU1ZH
QW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICBtX2FuaW1hdGVkU3RyaW5nID0g
YmFzZVN0cmluZzsKICAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgbGFzdFR5cGUgPSBtX2FuaW1h
dGVkQXR0cmlidXRlVHlwZTsKICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWlu
ZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAgICBpZiAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3aXRjaCAobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgICAgIG1fYW5p
bWF0ZWRDb2xvciA9IGJhc2VTdHJpbmcuaXNFbXB0eSgpID8gQ29sb3IoKSA6IFNWR0NvbG9yOjpj
b2xvckZyb21SR0JDb2xvclN0cmluZyhiYXNlU3RyaW5nKTsKICAgICAgICAgaWYgKGlzQ29udHJp
YnV0aW5nKGVsYXBzZWQoKSkpIHsKICAgICAgICAgICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
ID0gbGFzdFR5cGU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9IGVsc2Ug
aWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIGlmIChiYXNlU3RyaW5n
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgbV9hbmltYXRlZE51bWJlciA9IDA7CiAgICAgICAg
ICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsKQEAgLTQ1MCwxNSArNTI5LDI0IEBAIHZvaWQg
U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICAgICAgfQogICAgICAgICBp
ZiAocGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoYmFzZVN0cmluZywgbV9hbmltYXRlZE51bWJlciwg
bV9udW1iZXJVbml0KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKG1fYW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkUGF0aCkgeworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBtX2FuaW1hdGVkUGF0aC5jbGVhcigpOwog
ICAgICAgICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0
b3J5OjpzZWxmKCk7CiAgICAgICAgIGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U3RyaW5nKGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWRQYXRoLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAg
ICAgICAgbV9hbmltYXRlZFBhdGhQb2ludGVyID0gbV9hbmltYXRlZFBhdGguZ2V0KCk7CiAgICAg
ICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFu
aW1hdGVkUG9pbnRzKSB7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgICAg
IG1fYW5pbWF0ZWRQb2ludHMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQW5p
bWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShBbmltYXRlZExlbmd0aCk7CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5zZXRMZW5n
dGgobmV3IFNWR0xlbmd0aChsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSgpKSwgYmFzZVN0cmluZykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSA9IEFuaW1hdGVkU3RyaW5nOwogfQpAQCAtNDgzLDYgKzU3MSw4IEBAIHZvaWQgU1ZHQW5p
bWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGEKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAo
bV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpCiAgICAgICAgIHZhbHVl
VG9BcHBseSA9IG1fYW5pbWF0ZWRQb2ludHMuaXNFbXB0eSgpID8gbV9hbmltYXRlZFN0cmluZyA6
IG1fYW5pbWF0ZWRQb2ludHMudmFsdWVBc1N0cmluZygpOworICAgIGVsc2UgaWYgKG1fYW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTGVuZ3RoKQorICAgICAgICB2YWx1ZVRvQXBwbHkg
PSBtX2FuaW1hdGVkVHlwZS0+bGVuZ3RoKCkudmFsdWVBc1N0cmluZygpOwogICAgIGVsc2UKICAg
ICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKICAgICAKQEAgLTQ5MSw2ICs1
ODEsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhCiAgICAgCiBm
bG9hdCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBm
cm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQogeworICAgIC8vIFRPRE86IERpc3Rh
bmNlIGNhbGN1bGF0aW9uIHNob3VsZCBiZSBkb25lIGluIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LgogICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7
CiAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQogICAgICAgICByZXR1cm4gLTE7CkBAIC01MTQsOCAr
NjA1LDE0IEBAIGZsb2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICAg
ICAgICAgIHJldHVybiAtMTsKICAgICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwgdG8p
LmRpc3RhbmNlKCk7CiAgICAgfQorICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBB
bmltYXRlZExlbmd0aCkgeworICAgICAgICBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUgPSBsZW5n
dGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgpKTsKKyAgICAg
ICAgU1ZHTGVuZ3RoIGZyb20gPSBTVkdMZW5ndGgobGVuZ3RoTW9kZSwgZnJvbVN0cmluZyk7Cisg
ICAgICAgIFNWR0xlbmd0aCB0byA9IFNWR0xlbmd0aChsZW5ndGhNb2RlLCB0b1N0cmluZyk7Cisg
ICAgICAgIHJldHVybiBmYWJzZih0by52YWx1ZSh0YXJnZXRFbGVtZW50KSAtIGZyb20udmFsdWUo
dGFyZ2V0RWxlbWVudCkpOworICAgIH0KICAgICByZXR1cm4gLTE7CiB9Ci0gICAKKwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuaAkocmV2aXNpb24gODc2MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAjaWYgRU5BQkxFKFNW
RykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCiAKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkVHlwZS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhC
eXRlU3RyZWFtLmgiCiAjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zOSw2ICs0Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmlt
YXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAg
ICAgdmlydHVhbCB+U1ZHQW5pbWF0ZUVsZW1lbnQoKTsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBh
ZGp1c3RGb3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImKTsK
KyAgICB2b2lkIGFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmLCBTdHJpbmcmIHZhbHVlKTsKIAogcHJvdGVjdGVkOgogICAg
IFNWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpAQCAt
ODIsNiArODgsMTIgQEAgcHJpdmF0ZToKICAgICBTVkdQb2ludExpc3QgbV9mcm9tUG9pbnRzOwog
ICAgIFNWR1BvaW50TGlzdCBtX3RvUG9pbnRzOwogICAgIFNWR1BvaW50TGlzdCBtX2FuaW1hdGVk
UG9pbnRzOworICAgIAorICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IG1fZnJvbVR5cGU7Cisg
ICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV90b1R5cGU7CisgICAgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4gbV9hbmltYXRlZFR5cGU7CisgICAgCisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yPiBtX2FuaW1hdG9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkTGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQW5pbWF0ZWRM
ZW5ndGhBbmltYXRvcjo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCkKKyAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFuaW1hdGVkTGVuZ3Ro
LCBjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fbGVuZ3RoTW9kZShMZW5ndGhNb2RlT3RoZXIpCit7
Cit9CisKK1Bhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIE93
blB0cjxTVkdBbmltYXRlZFR5cGU+IHR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShBbmlt
YXRlZExlbmd0aCk7CisgICAgdHlwZS0+c2V0TGVuZ3RoKG5ldyBTVkdMZW5ndGgobV9sZW5ndGhN
b2RlLCBzdHJpbmcpKTsKKyAgICByZXR1cm4gdHlwZS5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxT
VkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIGNvbnN0
IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKK3sKKyAgICBmcm9t
ID0gY29uc3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5nKTsKKyAgICB0byA9IGNvbnN0cnVjdEZy
b21TdHJpbmcodG9TdHJpbmcpOworfQorCit2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6
OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNv
bnN0IFN0cmluZyYgYnlTdHJpbmcpCit7CisgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwor
ICAgIAorICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRv
ID0gY29uc3RydWN0RnJvbVN0cmluZyhieVN0cmluZyk7CisgICAgCisgICAgU1ZHTGVuZ3RoJiBm
cm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCk7CisgICAgU1ZHTGVuZ3RoJiB0b0xlbmd0aCA9IHRv
LT5sZW5ndGgoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB0b0xlbmd0aC5zZXRW
YWx1ZSh0b0xlbmd0aC52YWx1ZShtX2NvbnRleHRFbGVtZW50KSArIGZyb21MZW5ndGgudmFsdWUo
bV9jb250ZXh0RWxlbWVudCksIG1fY29udGV4dEVsZW1lbnQsIGVjKTsKKyAgICBBU1NFUlQoIWVj
KTsKK30KKwordm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKFNWR1NNSUxFbGVtZW50KiBzbWlsRWxlbWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5z
aWduZWQgcmVwZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgdG8sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZy
b21Qcm9wZXJ0eUluaGVyaXRzLCBib29sIHRvUHJvcGVydHlJbmhlcml0cykKK3sKKyAgICBBU1NF
UlQoc21pbEVsZW1lbnQpOworICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKKyAgICBTVkdB
bmltYXRlRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVF
bGVtZW50Kj4oc21pbEVsZW1lbnQpOworICAgIAorICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9u
TW9kZSA9IGFuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKTsKKyAgICAvLyBUbyBhbmlt
YXRpb24gdXNlcyBjb250cmlidXRpb25zIGZyb20gdGhlIGxvd2VyIHByaW9yaXR5IGFuaW1hdGlv
bnMgYXMgdGhlIGJhc2UgdmFsdWUuCisgICAgLy8gRklYTUU6IGF2b2lkIHN0cmluZyBwYXJzaW5n
LgorICAgIGlmIChhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uKQorICAgICAgICBmcm9tID0g
Y29uc3RydWN0RnJvbVN0cmluZyhhbmltYXRlZC0+bGVuZ3RoKCkudmFsdWVBc1N0cmluZygpKTsK
KyAgICAKKyAgICAvLyBSZXBsYWNlICdpbmhlcml0JyBieSB0aGVpciBjb21wdXRlZCBwcm9wZXJ0
eSB2YWx1ZXMuCisgICAgZmxvYXQgbnVtYmVyOworICAgIGZsb2F0IGZyb21MZW5ndGggPSBmcm9t
LT5sZW5ndGgoKS52YWx1ZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICBmbG9hdCB0b0xlbmd0aCA9
IHRvLT5sZW5ndGgoKS52YWx1ZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAKKyAgICBpZiAoZnJv
bVByb3BlcnR5SW5oZXJpdHMpIHsKKyAgICAgICAgU3RyaW5nIGZyb21MZW5ndGhTdHJpbmc7Cisg
ICAgICAgIGFuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlKG1fY29udGV4dEVs
ZW1lbnQsIGFuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgZnJvbUxlbmd0aFN0cmlu
Zyk7CisgICAgICAgIFNWR0xlbmd0aCB0ZW1wRnJvbSA9IFNWR0xlbmd0aChtX2xlbmd0aE1vZGUs
IGZyb21MZW5ndGhTdHJpbmcpOworICAgICAgICBmcm9tTGVuZ3RoID0gdGVtcEZyb20udmFsdWUo
bV9jb250ZXh0RWxlbWVudCk7CisgICAgfQorICAgIGlmICh0b1Byb3BlcnR5SW5oZXJpdHMpIHsK
KyAgICAgICAgU3RyaW5nIHRvTGVuZ3RoU3RyaW5nOworICAgICAgICBhbmltYXRpb25FbGVtZW50
LT5hZGp1c3RGb3JJbmhlcml0YW5jZShtX2NvbnRleHRFbGVtZW50LCBhbmltYXRpb25FbGVtZW50
LT5hdHRyaWJ1dGVOYW1lKCksIHRvTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAgU1ZHTGVuZ3RoIHRl
bXBUbyA9IFNWR0xlbmd0aChtX2xlbmd0aE1vZGUsIHRvTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAg
dG9MZW5ndGggPSB0ZW1wVG8udmFsdWUobV9jb250ZXh0RWxlbWVudCk7IAorICAgIH0KKyAgICAK
KyAgICBpZiAoYW5pbWF0aW9uRWxlbWVudC0+Y2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRl
KQorICAgICAgICBudW1iZXIgPSBwZXJjZW50YWdlIDwgMC41ZiA/IGZyb21MZW5ndGggOiB0b0xl
bmd0aDsKKyAgICBlbHNlCisgICAgICAgIG51bWJlciA9ICh0b0xlbmd0aCAtIGZyb21MZW5ndGgp
ICogcGVyY2VudGFnZSArIGZyb21MZW5ndGg7CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgaXMg
bm90IGNvcnJlY3QgZm9yIHZhbHVlcyBhbmltYXRpb24uCisgICAgaWYgKGFuaW1hdGlvbkVsZW1l
bnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXQpCisgICAgICAgIG51bWJlciArPSB0b0xlbmd0
aCAqIHJlcGVhdDsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpZiAoYW5pbWF0aW9u
RWxlbWVudC0+aXNBZGRpdGl2ZSgpICYmIGFuaW1hdGlvbk1vZGUgIT0gVG9BbmltYXRpb24pIHsK
KyAgICAgICAgZmxvYXQgYW5pbWF0ZWRMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCkudmFsdWUo
bV9jb250ZXh0RWxlbWVudCk7CisgICAgICAgIGFuaW1hdGVkTGVuZ3RoICs9IG51bWJlcjsKKyAg
ICAgICAgYW5pbWF0ZWQtPmxlbmd0aCgpLnNldFZhbHVlKGFuaW1hdGVkTGVuZ3RoLCBtX2NvbnRl
eHRFbGVtZW50LCBlYyk7CisgICAgfSBlbHNlCisgICAgICAgIGFuaW1hdGVkLT5sZW5ndGgoKS5z
ZXRWYWx1ZShudW1iZXIsIG1fY29udGV4dEVsZW1lbnQsIGVjKTsKKyAgICBBU1NFUlQoIWVjKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAkocmV2aXNpb24gODc2
MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAkod29ya2luZyBj
b3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTVkdBbmltYXRlZExlbmd0aF9oCiAKICNp
ZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKIApA
QCAtMzUsNyArMzYsMjggQEAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdBbmltYXRlZExl
bgogI2RlZmluZSBERUZJTkVfQU5JTUFURURfTEVOR1RIKE93bmVyVHlwZSwgRE9NQXR0cmlidXRl
LCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBERUZJTkVfQU5JTUFURURfUFJPUEVS
VFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZS5sb2NhbE5hbWUoKSwgU1ZH
QW5pbWF0ZWRMZW5ndGgsIFNWR0xlbmd0aCwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkK
IAorI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvciA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CisgICAgCitwdWJsaWM6Cisg
ICAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7
CisgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcigpIHsgfQorCisgICAgdmly
dHVhbCBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMo
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0
cmluZyk7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9W
YWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVudCos
IGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IGFuaW1hdGVkVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpOworCisg
ICAgdm9pZCBzZXRTVkdMZW5ndGhNb2RlKFNWR0xlbmd0aE1vZGUgbW9kZSkgeyBtX2xlbmd0aE1v
ZGUgPSBtb2RlOyB9CisKK3ByaXZhdGU6CisgICAgU1ZHTGVuZ3RoTW9kZSBtX2xlbmd0aE1vZGU7
Cit9OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKFNWR19BTklN
QVRJT04pCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZFR5cGVfaAorI2RlZmluZSBTVkdBbmltYXRlZFR5
cGVfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU1ZHTGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHQW5pbWF0
ZWRUeXBlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShBbmltYXRlZEF0dHJpYnV0ZVR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRU
eXBlKHR5cGUpKTsKKyAgICB9CisgICAgCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICAKKyAgICBTVkdMZW5ndGgmIGxlbmd0aCgp
CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAg
ICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOworICAgIH0KKworICAgIHZvaWQgc2V0TGVuZ3RoKFNW
R0xlbmd0aCogbGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZExlbmd0aCk7CisgICAgICAgIG1fZGF0YS5sZW5ndGggPSBsZW5ndGg7CisgICAgfQorICAgIAor
cHJpdmF0ZToKKyAgICBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUp
CisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgeworICAgIH0KKyAgICAKKyAgICBBbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgbV90eXBlOworICAgIAorICAgIHVuaW9uIERhdGFVbmlvbiB7CisgICAg
ICAgIERhdGFVbmlvbigpCisgICAgICAgICAgICA6IGxlbmd0aCgwKQorICAgICAgICB7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZJWE1FOiBNb3JlIFNWR1VuaXRzIG5lZWQgdG8g
YmUgYWRkZWQgc3RlcCBieSBzdGVwLgorICAgICAgICBTVkdMZW5ndGgqIGxlbmd0aDsKKyAgICB9
IG1fZGF0YTsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNlbmRpZiAvLyBTVkdBbmltYXRl
ZFR5cGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBTVkdBbmltYXRlZFR5cGVBbmltYXRvcl9oCisjZGVmaW5lIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yX2gKKworI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9O
KQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZS5oIgorI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoKSB7
IH0KKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3Vs
YXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93
blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRl
RnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNv
bnN0IFN0cmluZyYgdG9TdHJpbmcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVudCosIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJl
cGVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1
ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkVmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9v
bCB0b1Byb3BlcnR5SW5oZXJpdHMpID0gMDsKKworICAgIHZvaWQgc2V0Q29udGV4dEVsZW1lbnQo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpIHsgbV9jb250ZXh0RWxlbWVudCA9IGNvbnRleHRF
bGVtZW50OyB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Io
QW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQor
ICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4
dEVsZW1lbnQpCisgICAgeworICAgIH0KKworICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBtX3R5
cGU7CisgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFU
SU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDg3NjA5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTksNiArMTU5LDggQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dAogCiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgewog
ICAgICAgICBhdHRyLT52YWx1ZSgpLnN0cmluZygpLnNwbGl0KCc7JywgbV92YWx1ZXMpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAg
ICAgICAgICBtX3ZhbHVlc1tpXSA9IG1fdmFsdWVzW2ldLnN0cmlwV2hpdGVTcGFjZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNDgsNyArMjUwLDcgQEAgdm9pZCBTVkdBbmltYXRp
b25FbGVtZW50OjplbmRFbGVtZW50QXQoZgogICAgIGFkZEVuZFRpbWUoZWxhcHNlZCgpICsgb2Zm
c2V0KTsKIH0KIAotU1ZHQW5pbWF0aW9uRWxlbWVudDo6QW5pbWF0aW9uTW9kZSBTVkdBbmltYXRp
b25FbGVtZW50OjphbmltYXRpb25Nb2RlKCkgY29uc3QKK0FuaW1hdGlvbk1vZGUgU1ZHQW5pbWF0
aW9uRWxlbWVudDo6YW5pbWF0aW9uTW9kZSgpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL3d3dy53
My5vcmcvVFIvMjAwMS9SRUMtc21pbC1hbmltYXRpb24tMjAwMTA5MDQvI0FuaW1GdW5jVmFsdWVz
CiAgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpCkBAIC0yNjQsNyArMjY2LDcg
QEAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6QW5pbWF0aW9uTW9kZSBTVkdBbgogICAgIHJldHVybiBO
b0FuaW1hdGlvbjsKIH0KIAotU1ZHQW5pbWF0aW9uRWxlbWVudDo6Q2FsY01vZGUgU1ZHQW5pbWF0
aW9uRWxlbWVudDo6Y2FsY01vZGUoKSBjb25zdAorQ2FsY01vZGUgU1ZHQW5pbWF0aW9uRWxlbWVu
dDo6Y2FsY01vZGUoKSBjb25zdAogeyAgICAKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgiZGlzY3JldGUiKSk7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpbmVhciwgKCJsaW5lYXIiKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHJldmlzaW9uIDg3NjA5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIE1jQ29ybWFjayA8Y2Ft
QG1jYy5pZC5hdT4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsNyAr
MzcsMjQgQEAKICNpbmNsdWRlICJVbml0QmV6aWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LSAgICAKKworZW51bSBBbmltYXRpb25Nb2RlIHsKKyAgICBOb0FuaW1hdGlvbiwKKyAgICBGcm9t
VG9BbmltYXRpb24sCisgICAgRnJvbUJ5QW5pbWF0aW9uLAorICAgIFRvQW5pbWF0aW9uLAorICAg
IEJ5QW5pbWF0aW9uLAorICAgIFZhbHVlc0FuaW1hdGlvbiwKKyAgICBQYXRoQW5pbWF0aW9uIC8v
IFVzZWQgYnkgQW5pbWF0ZU1vdGlvbi4KK307CisKK2VudW0gQ2FsY01vZGUgeworICAgIENhbGNN
b2RlRGlzY3JldGUsCisgICAgQ2FsY01vZGVMaW5lYXIsCisgICAgQ2FsY01vZGVQYWNlZCwKKyAg
ICBDYWxjTW9kZVNwbGluZQorfTsKKwogY2xhc3MgQ29uZGl0aW9uRXZlbnRMaXN0ZW5lcjsKIGNs
YXNzIFRpbWVDb250YWluZXI7CiAKQEAgLTQ5LDcgKzY3LDcgQEAgcHVibGljOgogICAgIGZsb2F0
IGdldFN0YXJ0VGltZSgpIGNvbnN0OwogICAgIGZsb2F0IGdldEN1cnJlbnRUaW1lKCkgY29uc3Q7
CiAgICAgZmxvYXQgZ2V0U2ltcGxlRHVyYXRpb24oRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAg
IAorCiAgICAgLy8gRWxlbWVudFRpbWVDb250cm9sCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxl
bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkVsZW1lbnRBdChmbG9hdCBvZmZzZXQpOwpA
QCAtNTgsMzYgKzc2LDM2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIGlzVGFyZ2V0QXR0
cmlidXRlQ1NTUHJvcGVydHkoU1ZHRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAor
ICAgIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0OworICAgIGJvb2wgaXNBY2N1bXVsYXRlZCgpIGNv
bnN0OworICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSgpIGNvbnN0OworICAgIENhbGNN
b2RlIGNhbGNNb2RlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBTVkdBbmltYXRpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgYm9vbCBpc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCi0gICAgZW51bSBDYWxjTW9kZSB7IENh
bGNNb2RlRGlzY3JldGUsIENhbGNNb2RlTGluZWFyLCBDYWxjTW9kZVBhY2VkLCBDYWxjTW9kZVNw
bGluZSB9OwotICAgIENhbGNNb2RlIGNhbGNNb2RlKCkgY29uc3Q7Ci0gICAgCi0gICAgZW51bSBB
dHRyaWJ1dGVUeXBlIHsgQXR0cmlidXRlVHlwZUNTUywgQXR0cmlidXRlVHlwZVhNTCwgQXR0cmli
dXRlVHlwZUF1dG8gfTsKKyAgICBlbnVtIEF0dHJpYnV0ZVR5cGUgeworICAgICAgICBBdHRyaWJ1
dGVUeXBlQ1NTLAorICAgICAgICBBdHRyaWJ1dGVUeXBlWE1MLAorICAgICAgICBBdHRyaWJ1dGVU
eXBlQXV0bworICAgIH07CiAgICAgQXR0cmlidXRlVHlwZSBhdHRyaWJ1dGVUeXBlKCkgY29uc3Q7
Ci0gICAgCisKICAgICBTdHJpbmcgdG9WYWx1ZSgpIGNvbnN0OwogICAgIFN0cmluZyBieVZhbHVl
KCkgY29uc3Q7CiAgICAgU3RyaW5nIGZyb21WYWx1ZSgpIGNvbnN0OwotICAgIAotICAgIGVudW0g
QW5pbWF0aW9uTW9kZSB7IE5vQW5pbWF0aW9uLCBUb0FuaW1hdGlvbiwgQnlBbmltYXRpb24sIFZh
bHVlc0FuaW1hdGlvbiwgRnJvbVRvQW5pbWF0aW9uLCBGcm9tQnlBbmltYXRpb24sIFBhdGhBbmlt
YXRpb24gfTsKLSAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUoKSBjb25zdDsKLSAgICAK
KwogICAgIFN0cmluZyB0YXJnZXRBdHRyaWJ1dGVCYXNlVmFsdWUoKSBjb25zdDsKICAgICB2b2lk
IHNldFRhcmdldEF0dHJpYnV0ZUFuaW1hdGVkVmFsdWUoY29uc3QgU3RyaW5nJik7Ci0gICAgCi0g
ICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0FjY3VtdWxhdGVkKCkgY29u
c3Q7CiAKICAgICAvLyBmcm9tIFNWR1NNSUxFbGVtZW50CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0
ZWRBY3RpdmVJbnRlcnZhbCgpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb24oZmxv
YXQgcGVyY2VudCwgdW5zaWduZWQgcmVwZWF0LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVu
dCk7CiAgICAgdmlydHVhbCB2b2lkIGVuZGVkQWN0aXZlSW50ZXJ2YWwoKTsKLSAgICAKKwogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBib29s
IHByZXNlcnZlRGVjbHMpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTk3LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWdu
ZWQgcmVwZWF0LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCkgPSAwOwogICAgIHZpcnR1
YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiAvKmZyb21TdHJpbmcqLywg
Y29uc3QgU3RyaW5nJiAvKnRvU3RyaW5nKi8pIHsgcmV0dXJuIC0xLmY7IH0KICAgICB2aXJ0dWFs
IFBhdGggYW5pbWF0aW9uUGF0aCgpIGNvbnN0IHsgcmV0dXJuIFBhdGgoKTsgfQotICAgIAorCiAg
ICAgdm9pZCBjdXJyZW50VmFsdWVzRm9yVmFsdWVzQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQsIGZs
b2F0JiBlZmZlY3RpdmVQZXJjZW50LCBTdHJpbmcmIGZyb20sIFN0cmluZyYgdG8pIGNvbnN0Owog
ICAgIHZvaWQgY2FsY3VsYXRlS2V5VGltZXNGb3JDYWxjTW9kZVBhY2VkKCk7CiAgICAgZmxvYXQg
Y2FsY3VsYXRlUGVyY2VudEZyb21LZXlQb2ludHMoZmxvYXQgcGVyY2VudCkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWZuZGVmIFNWR0FuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0b3JfaAor
CisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRMZW5ndGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgU1ZH
QW5pbWF0b3IgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yPiBjcmVhdGUoQW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQor
ICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBhbmltYXRpb24gc3VwcG9ydCBmb3IgYWxsIFNW
RyB1bml0cy4KKyAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGVUeXBlKSB7CisgICAgICAgIGNhc2Ug
QW5pbWF0ZWRMZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQpKTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVtZW50KSk7CisgICAg
ICAgIH0KKyAgICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjZW5kaWYgLy8gU1ZHQW5p
bWF0b3JfaApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODc2MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTEtMDUtMjggIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgY29y
cmVjdCBiZWhhdmlvciBvZiBTVkdMZW5ndGggYW5pbWF0aW9ucy4KKworICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWln
aHQuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAg
ICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhl
ci5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAg
ICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRo
LmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAg
ICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEu
anM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAg
ICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanM6IEFkZGVkLgorICAgICAgICAo
c2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1p
bnZhbGlkLXZhbHVlLTMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChz
YW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChz
YW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qczogQWRkZWQuCisg
ICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6
CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0
LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzOiBBZGRlZC4KKyAgICAgICAg
KHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAg
ICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxl
MSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhl
Y3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAg
ICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0
KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1udW1iZXIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAg
IChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXBjLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxl
Mik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
ZXJjZW50YWdlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxl
Mik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
dC5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAg
ICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanM6IEFk
ZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNh
bXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChzYW1wbGU0KToKKyAgICAgICAgKHNhbXBsZTUpOgorICAgICAgICAoZXhlY3V0ZVRl
c3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZUhlaWdodC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5n
dGhNb2RlV2lkdGguaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1
ZS0zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1udW1iZXItdG8tbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWluLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFn
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVz
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTI4ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkLiBUZXN0IGV4cGVj
dGF0aW9ucyB1cGRhdGUgYWZ0ZXIgcjg3NjA1CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhN
b2RlSGVpZ2h0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0Lmhl
aWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0
LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZh
bHVlIGlzIDIwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyBy
ZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxl
bmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVPdGhl
ci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2lyY2xlLnIuYW5pbVZh
bC52YWx1ZSBpcyAxMAorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDEwCitQQVNTIGNp
cmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMTMyLjQ3NQorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZh
bHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSBpcyAyNTQuOQorUEFT
UyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDI1NC45CitQQVNTIGNpcmNsZS5yLmFuaW1WYWwu
dmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAxMAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlT3RoZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlV2lkdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0
aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAzMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDMwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdp
ZHRoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRo
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUt
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEgZHlu
YW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52
YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGJldHdlZW4gbnVtYmVyIGFuZCB1bml0LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDAK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1p
bnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMgYW5p
bWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFs
dWU6IE5vIHNwYWNlcyBiZWZvcmUgdmFsdWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQt
dmFsdWUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmlt
YXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGFmdGVy
IG51bWJlciBhbmQgdW5pdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1pbnZhbGlkLXZhbHVlLTMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXIt
dG8tbnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xl
bmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBp
cyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBp
cyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVt
YmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1i
ZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1jbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAxNDQuNDkKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDE0NC40OQorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTg4Ljk4CitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxODguOTgKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tY20uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwv
aDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLWVtcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMK
KworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZW1zLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAw
CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUw
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAw
CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
ZW1zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBT
VkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZXhzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWV4cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1pbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkg
QEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gaW5jaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNzAK
K1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE3MAorUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyNDAK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1pbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
aW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0
aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
bnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAK
K1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIGZyb20gcHggdG8gbnVtYmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxo
MT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkg
QEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gcGMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTcwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjQwCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tcGMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBj
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdU
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlv
blRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHlu
YW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wYy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBl
cmNlbnRhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMzUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAzNTAKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDYwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgNjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cGVyY2VudGFnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
ZXJjZW50YWdlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTYxLjE1CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAxNjEuMTUKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE4OC45Nwor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk3CitQQVNTIHJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24g
dGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHgtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1weC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gc2V0IHdpdGggJ3ZhbHVlcycsIGRpZmZlcmVudCB1bml0cyBhbmQgZGlmZmVyZW50
IGNvdW50IG9mIHNwYWNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMzAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEzMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTUxLjE4CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTEuMTgK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDU3NgorUEFTUyByZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgNTc2CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyNjYu
NworUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjY2LjcKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanMJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACitk
ZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVIZWlnaHQu
Iik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cityb290
U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjYwMCIpOworcm9vdFNWR0VsZW1lbnQu
c2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNDAwIik7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQK
K3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0
ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiaGVpZ2h0Iik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoInRvIiwgIjUwJSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdF
bGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVu
Y3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisg
ICAgc2hvdWxkQmUoInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hv
dWxkQmUoInJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQuYW5pbVZh
bC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0Lmhl
aWdodC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUz
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUi
LCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQuYmFz
ZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwg
dGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAw
LjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAi
cmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBz
YW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0K
KyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8v
IEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAz
MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1MZW5ndGhNb2RlT3RoZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xl
bmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZU90aGVyLiIpOworY3JlYXRlU1ZHVGVzdENhc2Uo
KTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgY2lyY2xlID0gY3JlYXRlU1ZH
RWxlbWVudCgiY2lyY2xlIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJpZCIsICJjaXJjbGUiKTsK
K2NpcmNsZS5zZXRBdHRyaWJ1dGUoImN4IiwgIjUwIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJj
eSIsICI1MCIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiciIsICIxMCIpOworY2lyY2xlLnNldEF0
dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgib25jbGljayIs
ICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5p
bWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiciIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoInRvIiwgIjUwJSIpOworY2lyY2xlLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0Vs
ZW1lbnQuYXBwZW5kQ2hpbGQoY2lyY2xlKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1
bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwor
ICAgIHNob3VsZEJlKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwgIjEwIik7CisgICAgc2hvdWxk
QmUoImNpcmNsZS5yLmJhc2VWYWwudmFsdWUiLCAiMTAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxl
MigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwg
IjEzMi40NzUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5iYXNl
VmFsLnZhbHVlIiwgIjEzMi40NzUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwgIjI1NC45
IiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5iYXNlVmFsLnZhbHVl
IiwgIjI1NC45IiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29u
c3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxl
bWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJj
aXJjbGUiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJjaXJjbGUi
LCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJjaXJjbGUiLCBzYW1w
bGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJjaXJjbGUiLCBzYW1wbGUxXQor
ICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8g
QmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUw
KSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVXaWR0aC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlV2lkdGguIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgp
OworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUo
IndpZHRoIiwgIjYwMCIpOworcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAi
NDAwIik7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
ZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBh
bmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5h
bWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNTAlIik7CityZWN0
LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7
CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8v
IENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAw
LjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMzAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjMwMCIsIDAuMDEpOworfQor
CitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsK
KyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNr
XQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0
KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRp
bWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0xLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBA
QAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFs
dWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4iKTsKK2NyZWF0ZVNWR1Rlc3RD
YXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
ZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRl
c3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCAgIHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiMjAwICAgcHgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZH
RWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1
bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwor
ICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24g
c2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjAi
KTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKwor
ZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10K
KyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24taW52YWxpZC12YWx1ZS0yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1
ZS0yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACitkZXNjcmlwdGlvbigiVGVzdCBT
VkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGJlZm9yZSB2
YWx1ZS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQK
K3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNW
R0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRp
b24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIiAgIDEwMHB4
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiICAgMjAwcHgiKTsKK3JlY3QuYXBwZW5k
Q2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8g
U2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sg
aW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29u
c3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxl
bWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJy
ZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNh
bXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQor
ICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8g
QmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMw
KSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlk
LXZhbHVlLTMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4
IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2
YWx1ZTogTm8gc3BhY2VzIGFmdGVyIG51bWJlciBhbmQgdW5pdC4iKTsKK2NyZWF0ZVNWR1Rlc3RD
YXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
ZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRl
c3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4ICAgIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiMjAwcHggICAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZH
RWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1
bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwor
ICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24g
c2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjAi
KTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKwor
ZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10K
KyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLW51bWJlci10by1udW1iZXIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8t
bnVtYmVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2Fz
ZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1l
bnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0
dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZp
bGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0
KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2lu
IiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIs
ICIyMDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBl
bmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBs
ZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwg
c2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1
bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5j
Cit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWNtLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmlt
YXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVw
IHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5p
bWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1l
IiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJm
cm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNWNtIik7CityZWN0
LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7
CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8v
IENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE0NC40OSIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNDQu
NDkiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTg4Ljk4IiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE4OC45OCIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNh
bXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5B
bmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYwor
d2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tZW1zLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gZW1zLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0
dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7City
ZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAi
MCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVT
VkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0
aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwZW0iKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAi
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitm
dW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4
ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBb
YW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5
OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVj
dCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1
ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dl
clVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWV4cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1leHMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAK
K2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBleHMuIik7
CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVj
dCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmb250
LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRl
c3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
dG8iLCAiNDBleCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24g
c2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUy
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0
Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBs
ZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisg
ICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3Qg
YXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8taW4uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIGluY2guIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisv
LyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3Qi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgi
eCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3Jl
ZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwor
dmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmli
dXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNr
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIuNWlu
Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hp
bGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkg
eworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE3MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxNzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjI0MCIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZh
bHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBs
ZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUx
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5n
dGggYW5pbWF0aW9uIGZyb20gcHggdG8gbnVtYmVyLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsK
KworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJj
bGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIy
MDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2Ft
cGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBs
ZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFu
aW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3
aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBjLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuanMJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRp
b24gZnJvbSBweCB0byBwYy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRl
c3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJo
ZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0
ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJp
ZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwg
IndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9t
IiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMTVwYyIpOworcmVjdC5h
cHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOwor
CisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBD
aGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNzAiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTcwIiwgMC4w
MSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKK30KKwor
ZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10K
KyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0
LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChl
eHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1l
b3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wZXJjZW50YWdlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuIik7CitjcmVhdGVTVkdUZXN0Q2Fz
ZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1l
bnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0
dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZp
bGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0
KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2lu
IiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRv
IiwgIjIwMCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5h
cHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNh
bXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3Vs
ZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MzUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjM1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICI2MDAiLCAwLjEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICI2
MDAiLCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBl
Y3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQs
IHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBz
YW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBy
dW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3lu
Yword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1
cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFu
aW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFt
ZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZnJvbSIsICIxMDBwdCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjVjbSIpOworcmVj
dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3Qp
OworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAv
LyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNjEuMTUiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTYx
LjE1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4OC45NyIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxODguOTci
LCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0
ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBz
YW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVu
QW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMK
K3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tcHguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1h
dGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAg
dGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7City
ZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmlt
YXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUi
LCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZy
b20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMDBweCIpOworcmVj
dC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3Qp
OworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAv
LyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUwIiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBzZXQgd2l0aCAndmFs
dWVzJywgZGlmZmVyZW50IHVuaXRzIGFuZCBkaWZmZXJlbnQgY291bnQgb2Ygc3BhY2VzLiIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3Qg
PSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVj
dCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndp
ZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGlj
ayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgi
YW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIs
ICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsICIxMDBweDsgIDEzMCAgOzRj
bSAgOzZpbjsgMjAwcHQiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxl
bWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0
aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAg
IHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIiwgIjEzMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNTEu
MTgiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUiLCAiMTUxLjE4IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjU3NiIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICI1NzYiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNSgpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjY2LjciLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjY2Ljci
LCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0
ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBz
YW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMS4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAzLjAsICAgICJyZWN0Iiwgc2FtcGxlNF0sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTVdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQu
MCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4
cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVv
dXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96878</attachid>
            <date>2011-06-12 04:57:01 -0700</date>
            <delta_ts>2011-06-12 11:52:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110612135658.patch</filename>
            <type>text/plain</type>
            <size>126956</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTEtMDYtMTIgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBUaGUgZ29hbCBpcyB0byBtb3ZlIHRoZSBtYWlu
IGFuaW1hdGlvbiBsb2dpYyBmb3IgZWFjaCBTVkcgdW5pdCBmcm9tIFNWR0FuaW1hdGVFbGVtZW50
IGludG8gdGhlIGNvcnJlc3BvbmRpbmcgU1ZHQW5pbWF0ZWQqIGZpbGVzLgorICAgICAgICBTVkdB
bmltYXRlRWxlbWVudCB3aWxsIGp1c3Qgd29yayB3aXRoIHRoZSBnZW5lcmljIHR5cGUgU1ZHQW5p
bWF0ZWRUeXBlLiBCZWZvcmUgdGhpcyBwYXRjaCB3ZSBhc2tlZCB0aGUgdGFyZ2V0IGVsZW1lbnQg
Zm9yIGl0cworICAgICAgICBiYXNlIHZhbHVlLCB3aGljaCB3YXMgdHJhbnNmb3JtZWQgaW50byBh
IHN0cmluZy4gV2UgcGFyc2VkIHRoYXQgc3RyaW5nIGludG8gYSBudW1iZXIgYW5kIGl0cyB1bml0
LiBBZnRlciB0aGF0IHdlIGFuaW1hdGVkIHRoZSBudW1iZXIgaW4gdGhlCisgICAgICAgIGZvbGxv
d2luZyBhbmltYXRpb24gc3RlcHMsIHRyYW5zZm9ybWVkIHRoaXMgbnVtYmVyIHRvIGEgc3RyaW5n
LCBhZGRlZCB0aGUgdW5pdCBhbmQgcGFzc2VkIHRoaXMgc3RyaW5nIGJhY2sgdG8gdGhlIHRhcmdl
dCBlbGVtZW50LgorICAgICAgICBUaGUgdGFyZ2V0IGVsZW1lbnQgcGFyc2VkIHRoZSBzdHJpbmcg
YWdhaW4gYW5kIGFycmFuZ2VzIHRoZSByZWxheW91dCBhbmQgcmVwYWludGluZy4KKyAgICAgICAg
SW4gc2hvcnQ6IFNWR1ZhbHVlIC0+IHN0cmluZyAtPiBudW1iZXIgKyB1bml0IGZvciBhbmltYXRp
b24gLT4gc3RyaW5nIC0+IG5ldyBTVkdWYWx1ZS4KKworICAgICAgICBUaGlzIGFuZCB0aGUgbmV4
dCBwYXRjaGVzIHdpbGwganVzdCBmaXggdGhlIG51bWJlciArIHVuaXQgcGFyc2luZy4gV2Ugd2ls
bCB3b3JrIHdpdGggdGhlIFNWRyB1bml0cyBkaXJlY3RseSBpbnRlcm5hbHkuCisgICAgICAgIElu
IHNob3J0OiBTVkdWYWx1ZSAtPiBzdHJpbmcgLT4gU1ZHVmFsdWUgZm9yIGFuaW1hdGlvbiAtPiBz
dHJpbmcgLT4gbmV3IFNWR1ZhbHVlCisKKyAgICAgICAgVGhlcmUgYXJlIHNvbWUgYmVuZWZpdHMg
d2l0aCB0aGUgbmV3IGluZnJhc3RydWN0dXJlLiBBdCBmaXJzdCwgdGhlIGN1cnJlbnQgcGFyc2lu
ZyBpbiB0aGUgYW5pbWF0aW9uIGNvZGUganVzdCByZXNwZWN0cyBhIGZldyB1bml0cyAoNSBmb3Ig
U1ZHbGVuZ3RoKS4KKyAgICAgICAgV2UgZG9uJ3Qgc3VwcG9ydCBhbmltYXRpb25zIGJldHdlZW4g
ZGlmZmVyZW50IHVuaXRzIHJpZ2h0IG5vdzogZnJvbT0iMjBweCIgdG89IjIwJSIgZm9yIGV4YW1w
bGUuIFRoZSBzZWNvbmQgYmVuZWZpdCBpcywgdGhhdCB3ZSBkbyBub3QKKyAgICAgICAgcmV3cml0
ZSB0aGUgcGFyc2luZyBjb2RlIGZvciBwYXJzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIGF0dHJpYnV0
ZXMgJ2Zyb20nLCAndG8nIGFuZCAndmFsdWVzJy4gCisgICAgICAgIFRoZSBtYWluIGJlbmVmaXQ6
IEFuaW1hdGUgU1ZHIHZhbHVlcyBkaXJlY3RseSB3aWxsIGJlIGVhc2llciB0byBpbXBsZW1lbnQs
IG9uY2UgbW92aW5nIHRoZSBjb2RlIHdhcyBmaW5pc2hlZC4KKworICAgICAgICBUaGUgY3VycmVu
dCBwYXRjaCBpcyBzdGFydGluZyB3aXRoIFNWR0xlbmd0aC4gU1ZHQW5pbWF0b3IgY29vcmRpbmF0
ZXMgdGhlIGNvbm5lY3Rpb24gZnJvbSBTVkdBbmltYXRlZFR5cGUgdG8gdGhlIFNWRyB1bml0IGFu
aW1hdG9ycworICAgICAgICBsaWtlIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgaW4gU1ZHQW5p
bWF0ZWRMZW5ndGguaC4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwKKyAgICAgICAg
ICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRo
Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0xLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwKKyAgICAg
ICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51
bWJlci5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWNtLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tZW1zLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAorICAgICAgICAgICAg
ICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAor
ICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
Yy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwKKyAgICAgICAgICAgICAgIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwKKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OiBBZGRlZCBuZXcgZmlsZXMgdG8gYnVpbGQgc3lzdGVtLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbGxJbk9uZS5jcHA6
IEFkZGVkIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBmb3IgV2luIGFuZCBvdGhlciBidWlsZCBzeXN0
ZW1zLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXJzZU51bWJlclZhbHVlQW5kVW5pdCk6IFJlbW92ZSBwYXJzaW5nIGNvZGUgZm9yIFNW
R0xlbmd0aC4gVXNlIFNWR0xlbmd0aCBwYXJzZXIgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKTogTWFkZSBhZGp1c3RG
b3JDdXJyZW50Q29sb3IgcHVibGljIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZENvbG9y
LgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHlWYWx1ZSk6IElubGluZSBmdW5jdGlvbiB0
byBnZXQgY29tcHV0ZWRTdHlsZSBvZiBDU1MgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9ySW5oZXJpdGFuY2UpOiBNYWRlIGFkanVzdEZvcklu
aGVyaXRhbmNlIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlKTogU1ZHTGVuZ3RoIG5lZWQgc3BlY2lhbCBoYW5kbGluZyB2aWEgU1ZHQW5pbWF0b3Igbm93
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUpOiBDbGVhbnVwLiBNYWtlIHVzZSBvZiBTVkdBbmltYXRvciBmb3IgU1ZHTGVuZ3RoLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1Zh
bHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUZyb21BbmRCeVZhbHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKTogRGl0dG8uCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0
aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNoYXJlZFNWR0xlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmg6IEFkZGVkIG5ldyBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yIHdoaWNoIGlz
IHJlc3BvbnNpYmxlIGZvciB0aGUgYWN0dWFsIGFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6On5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0
IHR5cGUgZm9yIGFuaW1hdGlvbnMgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDogQWRkZWQuIEJh
c2UgY2xhc3MgZm9yIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgYW5kIGZ1dHVyZSBTVkcgdW5p
dCBhbmltYXRvcnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6
flNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yOjpzZXRDb250ZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IpOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogV2UgZG8gbm90IHVzZSBwYXJzZU51
bWJlclZhbHVlQW5kVW5pdCBmb3IgU1ZHTGVuZ3RoIG5vdy4gSGF2ZSB0byBzdHJpcCB3aGl0ZSBz
cGFjZXMgaGVyZS4gV2hpdGVzcGFjZXMgc2hvdWxkbid0CisgICAgICAgICAgYmUgc3RyaXBwZWQg
b24gJ2Zyb20nLCAndG8nIGFuZCAnYnknLiBUaGlzIGlzIG5vdCB0aGUgY2FzZSBmb3IgU1ZHTGVu
Z3RoIGFueW1vcmUuIEFkZGVkIG5ldyB0ZXN0cyB0byBjaGVjayB0aGlzIGJlaGF2aW9yLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6YW5pbWF0aW9uTW9kZSk6IEVudW0g
aXMgYWNjZXNzaWJsZSBpbiBXZWJDb3JlIG5hbWVzcGFjZSBub3cuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjTW9kZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9T
VkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdG9yLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogc3Zn
L1NWR0xlbmd0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlQXNT
dHJpbmcpOiBOZXcgc2V0dGVyIHdpdGggc3RyaW5nIGFuZCBTVkdMZW5ndGhNb2RlLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1
dGUpOiBHZXQgTGVuZ3RoTW9kZSBmb3IgU1ZHTGVuZ3RoIGRlcGVuZGluZyBvbiB0aGUgYXR0cmli
dXRlIG5hbWUuCisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorCiAyMDExLTA2LTExICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEph
bWVzIFJvYmluc29uLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDg4NjExKQor
KysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2NDIs
NiArMTY0Miw3IEBAIElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVt
ZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmNwcAorICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAgICAg
ICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3Bw
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDg4NjExKQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzMy
MCw2ICszMzIwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaCBc
CisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aExpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVt
YmVyLmggXApAQCAtMzMyOCw2ICszMzI5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFN0cmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaCBcCisJ
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuY3BwIFwKQEAgLTMzMzYsNiArMzMzOSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNp
b24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTEwNTQsNiArMTA1NCw5IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUmVjdC5o
JywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCcsCiAgICAgICAgICAgICAn
c3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWRUeXBlLmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
JywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0b3IuaCcsCiAgICAgICAgICAgICAnc3ZnL1NW
R0NvbG9yLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaCcsCiAg
ICAgICAgICAgICAnc3ZnL1NWR0VsZW1lbnQuaCcsCkBAIC01Njc2LDYgKzU2NzksNyBAQAogICAg
ICAgICAgICAgJ3N2Zy9TVkdBbmdsZS5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1l
bnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAg
ICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzMTcsMTAgKzIzMTcsMTMgQEAg
SEVBREVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwKICAgICBzdmcvU1ZHQW5p
bWF0ZWRTdHJpbmcuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKyAg
ICBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRv
ci5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwK
ICAgICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0b3IuaCBc
CiAgICAgc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oIFwKICAgICBzdmcvU1ZHQ29sb3IuaCBcCkBAIC0zMjY0LDYgKzMyNjcsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgICAgICAgc3ZnL1NWR0FsdEdseXBo
RWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5nbGUuY3BwIFwKICAgICAgICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKyAgICAgICAgICAgICAgc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxl
bWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
IFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2
aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjUyNDYsNiArNjUyNDYsMTQgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkVHlw
ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVFbGVtZW50LmgiCiAJCQkJPgog
CQkJPC9GaWxlPgpAQCAtNjUyNjIsNiArNjUyNzAsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdG9yLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdDaXJjbGVF
bGVtZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODg2MTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTkyNiw2ICs5MjYsMTAgQEAKIAkJNDFGNTg0QzcxMDQ2NTJDQjAwOUNBQTY0IC8q
IEpTTWVzc2FnZVBvcnRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRjU4NEM2MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3Vz
dG9tLmggKi87IH07CiAJCTQxRkEzMDNFMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNv
bnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsg
fTsKIAkJNDFGQTMwM0YxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMx
NkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi87IH07CisJCTQzNTg1NERE
MTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4NTREOTEzQTREREMwMDA4N0ZGODIg
LyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovOyB9OworCQk0MzU4NTRERTEzQTREREMwMDA4N0ZG
ODIgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBl
LmggKi87IH07CisJCTQzNTg1NERGMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi87
IH07CisJCTQzNTg1NEUwMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1ODU0REMxM0E0RERDMDAw
ODdGRjgyIC8qIFNWR0FuaW1hdG9yLmggKi87IH07CiAJCTQzNThFODZBMTM2MEEyMTYwMEU0NzQ4
QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2NzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZH
RkVEcm9wU2hhZG93RWxlbWVudC5oICovOyB9OwogCQk0MzU4RTg2QjEzNjBBMjE2MDBFNDc0OEMg
LyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY4MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdG
RURyb3BTaGFkb3dFbGVtZW50Lm1tICovOyB9OwogCQk0MzU4RTg2QzEzNjBBMjE2MDBFNDc0OEMg
LyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyog
RE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmggKi87IH07CkBAIC03NDg4LDYgKzc0
OTIsMTAgQEAKIAkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0
b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdlUG9ydEN1c3Rv
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJG
QzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzU4NTREOTEzQTREREMwMDA4N0ZGODIg
LyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MzU4NTREQjEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM1ODU0REMx
M0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0FuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
NThFODY3MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM1OEU4NjgxMzYwQTIxNjAwRTQ3NDhD
IC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVE
cm9wU2hhZG93RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTczOTcsNiArMTc0MDUsNyBAQAogCQkJCUIyMjI3N0U4MEQwMEJGMUYw
MDcxQjc4MiAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLywKIAkJCQkwODIzRDE1ODEy
N0FENkFDMDAwRUJDOTUgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi8sCiAJCQkJQjIyMjc3RTkw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkSW50ZWdlci5pZGwgKi8sCisJCQkJNDM1ODU0
RDkxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLywKIAkJCQkwODkw
MjFBODEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLywKIAkJCQlCMjIy
NzdFQTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaWRsICovLAogCQkJCTA4
OTAyMUFDMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCAqLywKQEAg
LTE3NDEzLDYgKzE3NDIyLDggQEAKIAkJCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZH
QW5pbWF0ZWRTdHJpbmcuaWRsICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCAqLywKIAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLywKKwkJCQk0MzU4NTREQTEzQTRE
REMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlLmggKi8sCisJCQkJNDM1ODU0REIxM0E0RERD
MDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3Rjkw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdG
QTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdG
QjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLApAQCAtMTc0MjQs
NiArMTc0MzUsNyBAQAogCQkJCUIyMjI3ODAxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRp
b25FbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzgwMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5p
bWF0aW9uRWxlbWVudC5oICovLAogCQkJCUIyMjI3ODAzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRpb25FbGVtZW50LmlkbCAqLywKKwkJCQk0MzU4NTREQzEzQTREREMwMDA4N0ZGODIgLyog
U1ZHQW5pbWF0b3IuaCAqLywKIAkJCQlCMjIyNzgwNDBEMDBCRjFGMDA3MUI3ODIgLyogc3ZnYXR0
cnMuaW4gKi8sCiAJCQkJQjIyMjc4MDUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0NpcmNsZUVsZW1l
bnQuY3BwICovLAogCQkJCUIyMjI3ODA2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdDaXJjbGVFbGVt
ZW50LmggKi8sCkBAIC0yMzE3Myw2ICsyMzE4NSw5IEBACiAJCQkJRkRGMDlEQzkxMzk5QjYyMjAw
Njg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBODVC
NkMxMzhENTczQTAwRUNCN0IzIC8qIFN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OUE4NUI3ODEzOEQ1OEVFMDBFQ0I3QjMgLyogSlNTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDM1ODU0REUxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDM1ODU0REYxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzU4NTRFMDEzQTREREMwMDA4N0ZGODIg
LyogU1ZHQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU5MDYsNiArMjU5MjEsNyBAQAog
CQkJCUZERjA5REM4MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDlBODVCNkIxMzhENTczQTAwRUNCN0IzIC8qIFN0cmVhbUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QTg1Qjc3MTM4RDU4RUUwMEVDQjdCMyAvKiBKU1N0
cmVhbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzNTg1NEREMTNBNEREQzAwMDg3RkY4
MiAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsbEluT25lLmNwcAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRMZW5ndGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuY3BwCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0b3IuaCIKICNpbmNsdWRl
ICJTVkdDb2xvci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCkBAIC03MCw4ICs3Miw2IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFs
dWVBbmRVbml0KGNvbnMKICAgICBTdHJpbmcgcGFyc2UgPSBpbi5zdHJpcFdoaXRlU3BhY2UoKTsK
ICAgICBpZiAocGFyc2UuZW5kc1dpdGgoIiUiKSkKICAgICAgICAgdW5pdExlbmd0aCA9IDE7Ci0g
ICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgoInB4IikgfHwgcGFyc2UuZW5kc1dpdGgoInB0Iikg
fHwgcGFyc2UuZW5kc1dpdGgoImVtIikpCi0gICAgICAgIHVuaXRMZW5ndGggPSAyOwogICAgIGVs
c2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJkZWciKSB8fCBwYXJzZS5lbmRzV2l0aCgicmFkIikpCiAg
ICAgICAgIHVuaXRMZW5ndGggPSAzOwogICAgIGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJncmFk
IikpCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0
KGNvbnMKICAgICByZXR1cm4gb2s7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb3JD
dXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImIGNvbG9yKQordm9p
ZCBTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQqIHRh
cmdldEVsZW1lbnQsIENvbG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7
CiAgICAgCkBAIC05OSw3ICs5OSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9yQ3Vy
cmVudENvbG9yCiAgICAgICAgIGNvbG9yID0gQ29sb3IoKTsKIH0KIAotc3RhdGljIGlubGluZSB2
b2lkIGFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCitzdGF0aWMgaW5s
aW5lIHZvaWQgZ2V0UHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBzdmdQYXJlbnQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJU
KHN2Z1BhcmVudC0+aXNTdHlsZWQoKSk7CisgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1Bh
cmVudCktPmdldFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2Fs
TmFtZSgpKSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRh
bmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21lbnQg
dGhlIGNvbXB1dGVkIHN0eWxlIGdldHMgcmV0dXJuZWQgYXMgYSBTdHJpbmcgYW5kIG5lZWRzIHRv
IGdldCBwYXJzZWQgYWdhaW4uCiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50IHRv
IHdvcmsgd2l0aCB0aGUgdmFsdWUgdHlwZSBkaXJlY3RseSB0byBhdm9pZCB0aGUgU3RyaW5nIHBh
cnNpbmcuCkBAIC0xMTEsNyArMTE3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZvcklu
aGVyaXRhbmNlKAogCiAgICAgU1ZHRWxlbWVudCogc3ZnUGFyZW50ID0gc3RhdGljX2Nhc3Q8U1ZH
RWxlbWVudCo+KHBhcmVudCk7CiAgICAgaWYgKHN2Z1BhcmVudC0+aXNTdHlsZWQoKSkKLSAgICAg
ICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCktPmdldFByb3BlcnR5VmFsdWUoY3Nz
UHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKSk7CisgICAgICAgIGdldFByb3Bl
cnR5VmFsdWUoc3ZnUGFyZW50LCBhdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgU1ZH
QW5pbWF0ZUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CkBAIC0xMzYsMTYg
KzE0MiwxNyBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAg
c3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CiAgICAgY2FzZSBBbmlt
YXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXJMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
cjoKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbzoKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICBjYXNlIEFuaW1hdGVk
U3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgY2FzZSBBbmltYXRl
ZExlbmd0aDoKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwogICAgIGNhc2UgQW5pbWF0
ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTGVu
Z3RoOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRlZE51
bWJlcjsKICAgICBjYXNlIEFuaW1hdGVkUGF0aDoKQEAgLTE1NCw4ICsxNjEsOCBAQCBBbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZFBvaW50czsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZENvbG9yOwotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgIGNhc2UgQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0OgorICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgICAgICAvLyBBbmltYXRp
b25zIG9mIHRyYW5zZm9ybSBsaXN0cyBhcmUgbm90IGFsbG93ZWQgZm9yIDxhbmltYXRlPiBvciA8
c2V0PgogICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5odG1sI0Fu
aW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCiAgICAgICAgIHJldHVybiBBbmltYXRlZFVu
a25vd247CkBAIC0xNzEsMTQgKzE3OCw5IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUFuaW1hdGUKICAgICBBU1NFUlQocmVzdWx0RWxlbWVudCk7CiAgICAgYm9vbCBpc0luRmly
c3RIYWxmT2ZBbmltYXRpb24gPSBwZXJjZW50YWdlIDwgMC41ZjsKICAgICBBbmltYXRpb25Nb2Rl
IGFuaW1hdGlvbk1vZGUgPSB0aGlzLT5hbmltYXRpb25Nb2RlKCk7Ci0gICAgU1ZHRWxlbWVudCog
dGFyZ2V0RWxlbWVudCA9IDA7Ci0gICAgLy8gQXZvaWQgdGFyZ2V0RWxlbWVudCgpIGNhbGwgaWYg
cG9zc2libGUuIEl0IG1pZ2h0IHNsb3cgZG93biBhbmltYXRpb25zLgotICAgIGlmIChtX2Zyb21Q
cm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUgfHwgbV90b1Byb3BlcnR5VmFsdWVUeXBl
ID09IEluaGVyaXRWYWx1ZQotICAgICAgICB8fCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBD
dXJyZW50Q29sb3JWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gQ3VycmVudENvbG9y
VmFsdWUpIHsKLSAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsK
LSAgICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwor
ICAgIGlmICghdGFyZ2V0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmICho
YXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQogICAgICAgICBwZXJjZW50YWdlID0gMTsKQEAg
LTE4OSw3ICsxOTEsOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRl
CiAgICAgLy8gQ2FuJ3QgYWNjdW11bGF0ZSBvdmVyIGEgc3RyaW5nIHByb3BlcnR5LgogICAgIGlm
IChyZXN1bHRzLT5tX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFN0cmluZyAmJiBt
X2FuaW1hdGVkQXR0cmlidXRlVHlwZSAhPSBBbmltYXRlZFN0cmluZykKICAgICAgICAgcmV0dXJu
OwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikgewor
ICAgIHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVk
TnVtYmVyOiB7CiAgICAgICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMgZnJv
bSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KICAgICAg
ICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zyb21O
dW1iZXIgPSByZXN1bHRzLT5tX2FuaW1hdGVkTnVtYmVyOwpAQCAtMjIzLDcgKzIyNiw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJlc3Vs
dHMtPm1fYW5pbWF0ZWROdW1iZXIgPSBudW1iZXI7CiAgICAgICAgIHJldHVybjsKICAgICB9IAot
ICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAg
Y2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlID09IFRvQW5p
bWF0aW9uKQogICAgICAgICAgICAgbV9mcm9tQ29sb3IgPSByZXN1bHRzLT5tX2FuaW1hdGVkQ29s
b3I7CiAKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxh
dGVBbmltYXRlCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkQ29sb3IgPSBjb2xvcjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgY2FzZSBBbmltYXRlZFBhdGg6IHsKICAgICAgICAgaWYg
KGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChyZXN1
bHRzLT5tX2FuaW1hdGVkUGF0aFBvaW50ZXIpOwogICAgICAgICAgICAgbV9mcm9tUGF0aCA9IHJl
c3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlci0+Y29weSgpOwpAQCAtMjg5LDcgKzI5Miw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBB
bmltYXRlZFBvaW50cykgeworICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAgaWYg
KCFwZXJjZW50YWdlKQogICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cyA9IG1f
ZnJvbVBvaW50czsKICAgICAgICAgZWxzZSBpZiAocGVyY2VudGFnZSA9PSAxKQpAQCAtMzA2LDYg
KzMwOSwxNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOiB7
CisgICAgICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdHMtPm1f
YW5pbWF0ZWRUeXBlKTsKKyAgICAgICAgLy8gVGFyZ2V0IGVsZW1lbnQgbWlnaHQgaGF2ZSBjaGFu
Z2VkLgorICAgICAgICBtX2FuaW1hdG9yLT5zZXRDb250ZXh0RWxlbWVudCh0YXJnZXRFbGVtZW50
KTsKKyAgICAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSh0aGlzLCBwZXJj
ZW50YWdlLCByZXBlYXQsIG1fZnJvbVR5cGUsIG1fdG9UeXBlLCByZXN1bHRzLT5tX2FuaW1hdGVk
VHlwZSwgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlLCBtX3RvUHJvcGVy
dHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CiAgICAgQVNTRVJUKGFuaW1hdGlvbk1v
ZGUgPT0gRnJvbVRvQW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24gfHwg
YW5pbWF0aW9uTW9kZSA9PSBWYWx1ZXNBbmltYXRpb24pOwogICAgIC8vIFJlcGxhY2UgJ2N1cnJl
bnRDb2xvcicgLyAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVzLgog
ICAgIGlmIChtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpCkBAIC0zNDcs
NyArMzYxLDggQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogCiAg
ICAgLy8gRklYTUU6IE5lZWRzIG1vcmUgc29saWQgd2F5IGRldGVybWluZSB0YXJnZXQgYXR0cmli
dXRlIHR5cGUuCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmltYXRl
ZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGJvb2wgZnJvbUlz
Q3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihmcm9tU3RyaW5nKTsK
ICAgICAgICAgYm9vbCB0b0lzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRD
b2xvcih0b1N0cmluZyk7CiAgICAgICAgIGlmIChmcm9tSXNDdXJyZW50Q29sb3IpCkBAIC0zNjIs
MTQgKzM3NywxOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAg
ICAgICAgIGJvb2wgdG9Jc1ZhbGlkID0gbV90b0NvbG9yLmlzVmFsaWQoKSB8fCB0b0lzQ3VycmVu
dENvbG9yIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWU7CiAgICAgICAg
IGlmICgoZnJvbUlzVmFsaWQgJiYgdG9Jc1ZhbGlkKSB8fCAodG9Jc1ZhbGlkICYmIGFuaW1hdGlv
bk1vZGUoKSA9PSBUb0FuaW1hdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOiB7CiAgICAgICAg
IG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAgICAgICBpZiAocGFyc2VOdW1iZXJWYWx1ZUFu
ZFVuaXQodG9TdHJpbmcsIG1fdG9OdW1iZXIsIG1fbnVtYmVyVW5pdCkpIHsKICAgICAgICAgICAg
IC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxhdGVy
CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uIHx8IHBhcnNl
TnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJVbml0
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBTVkdQYXRoUGFy
c2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0b3J5OjpzZWxmKCk7CiAgICAg
ICAgIGlmIChmYWN0b3J5LT5idWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyh0b1N0cmlu
ZywgbV90b1BhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpKSB7CiAgICAgICAgICAgICAvLyBGb3IgdG8t
YW5pbWF0aW9ucyB0aGUgZnJvbSBudW1iZXIgaXMgY2FsY3VsYXRlZCBsYXRlcgpAQCAtMzc4LDEz
ICszOTcsMjYgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAg
ICAgICB9CiAgICAgICAgIG1fZnJvbVBhdGguY2xlYXIoKTsKICAgICAgICAgbV90b1BhdGguY2xl
YXIoKTsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
UG9pbnRzKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUG9pbnRz
OiB7CiAgICAgICAgIG1fZnJvbVBvaW50cy5jbGVhcigpOwogICAgICAgICBpZiAocG9pbnRzTGlz
dEZyb21TVkdEYXRhKG1fZnJvbVBvaW50cywgZnJvbVN0cmluZykpIHsKICAgICAgICAgICAgIG1f
dG9Qb2ludHMuY2xlYXIoKTsKICAgICAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEo
bV90b1BvaW50cywgdG9TdHJpbmcpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOiB7
CisgICAgICAgIC8vIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyBnZXRzIGNhbGxlZCBtdWx0aXBs
ZSB0aW1lcyB2b3IgdmFsdWVzIGFuaW1hdGlvbi4KKyAgICAgICAgaWYgKCFtX2FuaW1hdG9yKQor
ICAgICAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1hdG9yOjpjcmVhdGUodGFyZ2V0RWxlbWVu
dCwgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUsIGF0dHJpYnV0ZU5hbWUoKSk7CisgICAgICAgIG1f
YW5pbWF0b3ItPmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwg
ZnJvbVN0cmluZywgdG9TdHJpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIG1fZnJvbVN0cmluZyA9IGZyb21T
dHJpbmc7CiAgICAgbV90b1N0cmluZyA9IHRvU3RyaW5nOwpAQCAtNDAyLDcgKzQzNCw4IEBAIGJv
b2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKIAogICAgIEFTU0VSVCghaGFz
VGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSk7CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2gg
KG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAg
ICAgICAgIGJvb2wgZnJvbUlzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRD
b2xvcihmcm9tU3RyaW5nKTsKICAgICAgICAgYm9vbCBieUlzQ3VycmVudENvbG9yID0gYXR0cmli
dXRlVmFsdWVJc0N1cnJlbnRDb2xvcihieVN0cmluZyk7CiAgICAgICAgIGlmIChmcm9tSXNDdXJy
ZW50Q29sb3IpCkBAIC00MTcsNyArNDUwLDE2IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUZyb21BbmQKICAgICAgICAgaWYgKCghbV9mcm9tQ29sb3IuaXNWYWxpZCgpICYmICFm
cm9tSXNDdXJyZW50Q29sb3IpCiAgICAgICAgICAgICB8fCAoIW1fdG9Db2xvci5pc1ZhbGlkKCkg
JiYgIWJ5SXNDdXJyZW50Q29sb3IpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ZWxzZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVu
Z3RoOiB7CisgICAgICAgIGlmICghbV9hbmltYXRvcikKKyAgICAgICAgICAgIG1fYW5pbWF0b3Ig
PSBTVkdBbmltYXRvcjo6Y3JlYXRlKHRhcmdldEVsZW1lbnQsIG1fYW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlLCBhdHRyaWJ1dGVOYW1lKCkpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVGcm9t
QW5kQnlWYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIGJ5U3RyaW5nKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB9CisgICAgZGVmYXVsdDoKICAgICAgICAgbV9u
dW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fZnJvbU51bWJlciA9IDA7CiAgICAgICAg
IGlmICghZnJvbVN0cmluZy5pc0VtcHR5KCkgJiYgIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZy
b21TdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJVbml0KSkKQEAgLTQzNiwxMyArNDc4LDE1
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICBtX2FuaW1h
dGVkU3RyaW5nID0gYmFzZVN0cmluZzsKICAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgbGFzdFR5
cGUgPSBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZTsKICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlw
ZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAgICBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3aXRj
aCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAg
ICAgICAgIG1fYW5pbWF0ZWRDb2xvciA9IGJhc2VTdHJpbmcuaXNFbXB0eSgpID8gQ29sb3IoKSA6
IFNWR0NvbG9yOjpjb2xvckZyb21SR0JDb2xvclN0cmluZyhiYXNlU3RyaW5nKTsKICAgICAgICAg
aWYgKGlzQ29udHJpYnV0aW5nKGVsYXBzZWQoKSkpIHsKICAgICAgICAgICAgIG1fYW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlID0gbGFzdFR5cGU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVy
KSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIGlm
IChiYXNlU3RyaW5nLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgbV9hbmltYXRlZE51bWJlciA9
IDA7CiAgICAgICAgICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsKQEAgLTQ1MCwxNSArNDk0
LDIzIEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICAgICAg
fQogICAgICAgICBpZiAocGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoYmFzZVN0cmluZywgbV9hbmlt
YXRlZE51bWJlciwgbV9udW1iZXJVbml0KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVs
c2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkUGF0aCkgeworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBtX2FuaW1hdGVkUGF0
aC5jbGVhcigpOwogICAgICAgICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1Bh
dGhQYXJzZXJGYWN0b3J5OjpzZWxmKCk7CiAgICAgICAgIGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU3RyaW5nKGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWRQYXRoLCBVbmFsdGVyZWRQ
YXJzaW5nKTsKICAgICAgICAgbV9hbmltYXRlZFBhdGhQb2ludGVyID0gbV9hbmltYXRlZFBhdGgu
Z2V0KCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKSB7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQb2lu
dHM6CiAgICAgICAgIG1fYW5pbWF0ZWRQb2ludHMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChuZXcgU1ZHTGVuZ3RoKFNWR0xlbmd0aDo6bGVuZ3Ro
TW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUoKSksIGJhc2VTdHJp
bmcpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBBbmltYXRlZFN0cmluZzsK
IH0KQEAgLTQ4Myw2ICs1MzUsOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3Vs
dHNUb1RhCiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
ID09IEFuaW1hdGVkUG9pbnRzKQogICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2FuaW1hdGVkUG9p
bnRzLmlzRW1wdHkoKSA/IG1fYW5pbWF0ZWRTdHJpbmcgOiBtX2FuaW1hdGVkUG9pbnRzLnZhbHVl
QXNTdHJpbmcoKTsKKyAgICBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZExlbmd0aCkKKyAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFR5cGUtPmxlbmd0
aCgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICBlbHNlCiAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1f
YW5pbWF0ZWRTdHJpbmc7CiAgICAgCkBAIC01MTQsOCArNTY4LDEzIEBAIGZsb2F0IFNWR0FuaW1h
dGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAg
ICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwgdG8pLmRpc3RhbmNlKCk7CiAgICAgfQorICAg
IGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkgeworICAgICAg
ICBpZiAoIW1fYW5pbWF0b3IpCisgICAgICAgICAgICBtX2FuaW1hdG9yID0gU1ZHQW5pbWF0b3I6
OmNyZWF0ZSh0YXJnZXRFbGVtZW50LCBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSwgYXR0cmlidXRl
TmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0b3ItPmNhbGN1bGF0ZURpc3RhbmNlKHRo
aXMsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKKyAgICB9CiAgICAgcmV0dXJuIC0xOwogfQotICAg
CisKIH0KICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVFbGVtZW50LmgJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogI2lm
IEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQogCiAjaW5jbHVkZSAiQ29sb3Iu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzksNiArNDIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKIAogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVFbGVtZW50KCk7CisgICAgCisgICAgc3Rh
dGljIHZvaWQgYWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQs
IENvbG9yJik7CisgICAgdm9pZCBhZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJn
ZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgU3RyaW5nJiB2YWx1ZSk7CiAKIHByb3Rl
Y3RlZDoKICAgICBTVkdBbmltYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKQEAgLTgyLDYgKzg4LDEyIEBAIHByaXZhdGU6CiAgICAgU1ZHUG9pbnRMaXN0IG1fZnJv
bVBvaW50czsKICAgICBTVkdQb2ludExpc3QgbV90b1BvaW50czsKICAgICBTVkdQb2ludExpc3Qg
bV9hbmltYXRlZFBvaW50czsKKyAgICAKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX2Zy
b21UeXBlOworICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IG1fdG9UeXBlOworICAgIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+IG1fYW5pbWF0ZWRUeXBlOworICAgIAorICAgIE93blB0cjxTVkdB
bmltYXRlZFR5cGVBbmltYXRvcj4gbV9hbmltYXRvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
CisgICAgOiBTVkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRlZExlbmd0aCwgY29udGV4dEVs
ZW1lbnQpCisgICAgLCBtX2xlbmd0aE1vZGUoU1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUg
U1ZHTGVuZ3RoJiBzaGFyZWRTVkdMZW5ndGgoU1ZHTGVuZ3RoTW9kZSBtb2RlLCBjb25zdCBTdHJp
bmcmIHZhbHVlQXNTdHJpbmcpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTVkdMZW5ndGgs
IHNoYXJlZExlbmd0aCwgKCkpOworICAgIHNoYXJlZExlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZh
bHVlQXNTdHJpbmcsIG1vZGUpOworICAgIHJldHVybiBzaGFyZWRMZW5ndGg7Cit9CisKK1Bhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChuZXcgU1ZHTGVuZ3RoKG1fbGVuZ3RoTW9kZSwgc3RyaW5n
KSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFu
ZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0
cmluZykKK3sKKyAgICBmcm9tID0gY29uc3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5nKTsKKyAg
ICB0byA9IGNvbnN0cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOworfQorCit2b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJp
bmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpCit7CisgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOworICAgIAorICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZy
b21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyhieVN0cmluZyk7CisgICAg
CisgICAgU1ZHTGVuZ3RoJiBmcm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCk7CisgICAgU1ZHTGVu
Z3RoJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICB0b0xlbmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShtX2NvbnRleHRFbGVtZW50KSAr
IGZyb21MZW5ndGgudmFsdWUobV9jb250ZXh0RWxlbWVudCksIG1fY29udGV4dEVsZW1lbnQsIGVj
KTsKKyAgICBBU1NFUlQoIWVjKTsKK30KKwordm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiBzbWlsRWxlbWVudCwgZmxv
YXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIGFuaW1hdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0
eUluaGVyaXRzKQoreworICAgIEFTU0VSVChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmltYXRpb25FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVudCk7CisgICAgCisgICAg
QW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlID0gYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpOworICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUg
bG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KKyAgICAvLyBGSVhN
RTogYXZvaWQgc3RyaW5nIHBhcnNpbmcuCisgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9Bbmlt
YXRpb24pCisgICAgICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGFuaW1hdGVkLT5sZW5n
dGgoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgIAorICAgIC8vIFJlcGxhY2UgJ2luaGVyaXQnIGJ5
IHRoZWlyIGNvbXB1dGVkIHByb3BlcnR5IHZhbHVlcy4KKyAgICBmbG9hdCBudW1iZXI7CisgICAg
ZmxvYXQgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQp
OworICAgIGZsb2F0IHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1l
bnQpOworICAgIAorICAgIGlmIChmcm9tUHJvcGVydHlJbmhlcml0cykgeworICAgICAgICBTdHJp
bmcgZnJvbUxlbmd0aFN0cmluZzsKKyAgICAgICAgYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9y
SW5oZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRl
TmFtZSgpLCBmcm9tTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAgZnJvbUxlbmd0aCA9IHNoYXJlZFNW
R0xlbmd0aChtX2xlbmd0aE1vZGUsIGZyb21MZW5ndGhTdHJpbmcpLnZhbHVlKG1fY29udGV4dEVs
ZW1lbnQpOworICAgIH0KKyAgICBpZiAodG9Qcm9wZXJ0eUluaGVyaXRzKSB7CisgICAgICAgIFN0
cmluZyB0b0xlbmd0aFN0cmluZzsKKyAgICAgICAgYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9y
SW5oZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRl
TmFtZSgpLCB0b0xlbmd0aFN0cmluZyk7CisgICAgICAgIHRvTGVuZ3RoID0gc2hhcmVkU1ZHTGVu
Z3RoKG1fbGVuZ3RoTW9kZSwgdG9MZW5ndGhTdHJpbmcpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQp
OyAKKyAgICB9CisgICAgCisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmNhbGNNb2RlKCkgPT0g
Q2FsY01vZGVEaXNjcmV0ZSkKKyAgICAgICAgbnVtYmVyID0gcGVyY2VudGFnZSA8IDAuNWYgPyBm
cm9tTGVuZ3RoIDogdG9MZW5ndGg7CisgICAgZWxzZQorICAgICAgICBudW1iZXIgPSAodG9MZW5n
dGggLSBmcm9tTGVuZ3RoKSAqIHBlcmNlbnRhZ2UgKyBmcm9tTGVuZ3RoOworICAgIAorICAgIC8v
IEZJWE1FOiBUaGlzIGlzIG5vdCBjb3JyZWN0IGZvciB2YWx1ZXMgYW5pbWF0aW9uLgorICAgIGlm
IChhbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQpCisgICAg
ICAgIG51bWJlciArPSB0b0xlbmd0aCAqIHJlcGVhdENvdW50OworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIFNWR0xlbmd0aCYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVu
Z3RoKCk7CisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiBhbmltYXRp
b25Nb2RlICE9IFRvQW5pbWF0aW9uKSB7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkTGVuZ3RoID0g
YW5pbWF0ZWQtPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOworICAgICAgICBhbmlt
YXRlZExlbmd0aCArPSBudW1iZXI7CisgICAgICAgIGFuaW1hdGVkU1ZHTGVuZ3RoLnNldFZhbHVl
KGFuaW1hdGVkTGVuZ3RoLCBtX2NvbnRleHRFbGVtZW50LCBlYyk7CisgICAgfSBlbHNlCisgICAg
ICAgIGFuaW1hdGVkU1ZHTGVuZ3RoLnNldFZhbHVlKG51bWJlciwgbV9jb250ZXh0RWxlbWVudCwg
ZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCitmbG9hdCBTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjpjYWxjdWxhdGVEaXN0YW5jZShTVkdTTUlMRWxlbWVudCogc21pbEVsZW1lbnQsIGNvbnN0
IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKK3sKKyAgICBBU1NF
UlQoc21pbEVsZW1lbnQpOworICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKKyAgICBTVkdB
bmltYXRlRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVF
bGVtZW50Kj4oc21pbEVsZW1lbnQpOyAgICAKKyAgICBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUg
PSBTVkdMZW5ndGg6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhbmltYXRp
b25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCkpOworICAgIFNWR0xlbmd0aCBmcm9tID0gU1ZHTGVu
Z3RoKGxlbmd0aE1vZGUsIGZyb21TdHJpbmcpOworICAgIFNWR0xlbmd0aCB0byA9IFNWR0xlbmd0
aChsZW5ndGhNb2RlLCB0b1N0cmluZyk7CisgICAgcmV0dXJuIGZhYnNmKHRvLnZhbHVlKG1fY29u
dGV4dEVsZW1lbnQpIC0gZnJvbS52YWx1ZShtX2NvbnRleHRFbGVtZW50KSk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgJKHJldmlzaW9uIDg4NjExKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNkZWZpbmUgU1ZHQW5pbWF0ZWRMZW5ndGhfaAogCiAjaWYgRU5BQkxFKFNW
RykKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAKQEAgLTM1LDcgKzM2
LDI3IEBAIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHQW5pbWF0ZWRMZW4KICNkZWZpbmUg
REVGSU5FX0FOSU1BVEVEX0xFTkdUSChPd25lclR5cGUsIERPTUF0dHJpYnV0ZSwgVXBwZXJQcm9w
ZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAogREVGSU5FX0FOSU1BVEVEX1BST1BFUlRZKE93bmVyVHlw
ZSwgRE9NQXR0cmlidXRlLCBET01BdHRyaWJ1dGUubG9jYWxOYW1lKCksIFNWR0FuaW1hdGVkTGVu
Z3RoLCBTVkdMZW5ndGgsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCiAKKyNpZiBFTkFC
TEUoU1ZHX0FOSU1BVElPTikKK2NsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgOiBwdWJs
aWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgeworICAgIAorcHVibGljOgorICAgIFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKCkgeyB9
CisKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21B
bmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHRvU3RyaW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFs
dWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRl
ZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYg
YnlTdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NN
SUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIE93blB0cjxT
VkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0
eUluaGVyaXRzKTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxF
bGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5n
KTsKKworcHJpdmF0ZToKKyAgICBTVkdMZW5ndGhNb2RlIG1fbGVuZ3RoTW9kZTsKK307CiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWZuZGVmIFNWR0FuaW1hdGVkVHlwZV9oCisjZGVmaW5lIFNWR0FuaW1hdGVkVHlwZV9oCisKKyNp
ZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdMZW5n
dGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlZFR5cGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKFNWR0xlbmd0aCogbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRM
ZW5ndGgsIGxlbmd0aCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVHlwZSgp
CisgICAgeworICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKKyAgICB9CisgICAgCisgICAg
QW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAg
ICAKKyAgICBTVkdMZW5ndGgmIGxlbmd0aCgpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOworICAg
IH0KKyAgICAKK3ByaXZhdGU6CisgICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkQXR0cmlidXRl
VHlwZSB0eXBlLCBTVkdMZW5ndGgqIGxlbmd0aCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAg
ICB7CisgICAgICAgIG1fZGF0YS5sZW5ndGggPSBsZW5ndGg7CisgICAgfQorICAgIAorICAgIEFu
aW1hdGVkQXR0cmlidXRlVHlwZSBtX3R5cGU7CisgICAgCisgICAgdW5pb24gRGF0YVVuaW9uIHsK
KyAgICAgICAgRGF0YVVuaW9uKCkKKyAgICAgICAgICAgIDogbGVuZ3RoKDApCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IE1vcmUgU1ZHVW5pdHMgbmVl
ZCB0byBiZSBhZGRlZCBzdGVwIGJ5IHN0ZXAuCisgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOwor
ICAgIH0gbV9kYXRhOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0Fu
aW1hdGVkVHlwZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGVBbmltYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3JfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklN
QVRJT04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHU01JTEVs
ZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGVBbmltYXRv
cigpIHsgfQorICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1
ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0
cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxj
dWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWdu
ZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIHRvVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5o
ZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKSA9IDA7CisgICAgdmlydHVhbCBmbG9hdCBj
YWxjdWxhdGVEaXN0YW5jZShTVkdTTUlMRWxlbWVudCosIGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworCisgICAgdm9pZCBzZXRDb250ZXh0RWxl
bWVudChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkgeyBtX2NvbnRleHRFbGVtZW50ID0gY29u
dGV4dEVsZW1lbnQ7IH0KKyAgICAKK3Byb3RlY3RlZDoKKyAgICBTVkdBbmltYXRlZFR5cGVBbmlt
YXRvcihBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9jb250ZXh0RWxlbWVudChj
b250ZXh0RWxlbWVudCkKKyAgICB7CisgICAgfQorCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
IG1fdHlwZTsKKyAgICBTVkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19B
TklNQVRJT04pCisjZW5kaWYgLy8gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3JfaApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gODg2MTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OSw2ICsxNTksOCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0CiAKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp2YWx1ZXNBdHRy
KSB7CiAgICAgICAgIGF0dHItPnZhbHVlKCkuc3RyaW5nKCkuc3BsaXQoJzsnLCBtX3ZhbHVlcyk7
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkK
KyAgICAgICAgICAgIG1fdmFsdWVzW2ldID0gbV92YWx1ZXNbaV0uc3RyaXBXaGl0ZVNwYWNlKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI0OCw3ICsyNTAsNyBAQCB2b2lkIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OmVuZEVsZW1lbnRBdChmCiAgICAgYWRkRW5kVGltZShlbGFwc2VkKCkg
KyBvZmZzZXQpOwogfQogCi1TVkdBbmltYXRpb25FbGVtZW50OjpBbmltYXRpb25Nb2RlIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OmFuaW1hdGlvbk1vZGUoKSBjb25zdAorQW5pbWF0aW9uTW9kZSBTVkdB
bmltYXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKCkgY29uc3QKIHsKICAgICAvLyBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDAxL1JFQy1zbWlsLWFuaW1hdGlvbi0yMDAxMDkwNC8jQW5pbUZ1bmNW
YWx1ZXMKICAgICBpZiAoaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSkKQEAgLTI2NCw3ICsy
NjYsNyBAQCBTVkdBbmltYXRpb25FbGVtZW50OjpBbmltYXRpb25Nb2RlIFNWR0FuCiAgICAgcmV0
dXJuIE5vQW5pbWF0aW9uOwogfQogCi1TVkdBbmltYXRpb25FbGVtZW50OjpDYWxjTW9kZSBTVkdB
bmltYXRpb25FbGVtZW50OjpjYWxjTW9kZSgpIGNvbnN0CitDYWxjTW9kZSBTVkdBbmltYXRpb25F
bGVtZW50OjpjYWxjTW9kZSgpIGNvbnN0CiB7ICAgIAogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIpKTsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGluZWFyLCAoImxpbmVhciIpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gODg2
MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVs
IDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gTWNDb3JtYWNr
IDxjYW1AbWNjLmlkLmF1PgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0z
Niw3ICszNywyNCBAQAogI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAorCitlbnVtIEFuaW1hdGlvbk1vZGUgeworICAgIE5vQW5pbWF0aW9uLAorICAg
IEZyb21Ub0FuaW1hdGlvbiwKKyAgICBGcm9tQnlBbmltYXRpb24sCisgICAgVG9BbmltYXRpb24s
CisgICAgQnlBbmltYXRpb24sCisgICAgVmFsdWVzQW5pbWF0aW9uLAorICAgIFBhdGhBbmltYXRp
b24gLy8gVXNlZCBieSBBbmltYXRlTW90aW9uLgorfTsKKworZW51bSBDYWxjTW9kZSB7CisgICAg
Q2FsY01vZGVEaXNjcmV0ZSwKKyAgICBDYWxjTW9kZUxpbmVhciwKKyAgICBDYWxjTW9kZVBhY2Vk
LAorICAgIENhbGNNb2RlU3BsaW5lCit9OworCiBjbGFzcyBDb25kaXRpb25FdmVudExpc3RlbmVy
OwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIApAQCAtNDksNyArNjcsNyBAQCBwdWJsaWM6CiAgICAg
ZmxvYXQgZ2V0U3RhcnRUaW1lKCkgY29uc3Q7CiAgICAgZmxvYXQgZ2V0Q3VycmVudFRpbWUoKSBj
b25zdDsKICAgICBmbG9hdCBnZXRTaW1wbGVEdXJhdGlvbihFeGNlcHRpb25Db2RlJikgY29uc3Q7
Ci0gICAgCisKICAgICAvLyBFbGVtZW50VGltZUNvbnRyb2wKICAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5FbGVtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVudEF0KGZsb2F0IG9mZnNl
dCk7CkBAIC01OCwzNiArNzYsMzYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNUYXJn
ZXRBdHRyaWJ1dGVDU1NQcm9wZXJ0eShTVkdFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCisgICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7CisgICAgYm9vbCBpc0FjY3VtdWxhdGVk
KCkgY29uc3Q7CisgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3Q7CisgICAg
Q2FsY01vZGUgY2FsY01vZGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFNWR0FuaW1hdGlv
bkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICBib29sIGlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKLSAgICBlbnVtIENhbGNNb2Rl
IHsgQ2FsY01vZGVEaXNjcmV0ZSwgQ2FsY01vZGVMaW5lYXIsIENhbGNNb2RlUGFjZWQsIENhbGNN
b2RlU3BsaW5lIH07Ci0gICAgQ2FsY01vZGUgY2FsY01vZGUoKSBjb25zdDsKLSAgICAKLSAgICBl
bnVtIEF0dHJpYnV0ZVR5cGUgeyBBdHRyaWJ1dGVUeXBlQ1NTLCBBdHRyaWJ1dGVUeXBlWE1MLCBB
dHRyaWJ1dGVUeXBlQXV0byB9OworICAgIGVudW0gQXR0cmlidXRlVHlwZSB7CisgICAgICAgIEF0
dHJpYnV0ZVR5cGVDU1MsCisgICAgICAgIEF0dHJpYnV0ZVR5cGVYTUwsCisgICAgICAgIEF0dHJp
YnV0ZVR5cGVBdXRvCisgICAgfTsKICAgICBBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUoKSBj
b25zdDsKLSAgICAKKwogICAgIFN0cmluZyB0b1ZhbHVlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGJ5
VmFsdWUoKSBjb25zdDsKICAgICBTdHJpbmcgZnJvbVZhbHVlKCkgY29uc3Q7Ci0gICAgCi0gICAg
ZW51bSBBbmltYXRpb25Nb2RlIHsgTm9BbmltYXRpb24sIFRvQW5pbWF0aW9uLCBCeUFuaW1hdGlv
biwgVmFsdWVzQW5pbWF0aW9uLCBGcm9tVG9BbmltYXRpb24sIEZyb21CeUFuaW1hdGlvbiwgUGF0
aEFuaW1hdGlvbiB9OwotICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSgpIGNvbnN0Owot
ICAgIAorCiAgICAgU3RyaW5nIHRhcmdldEF0dHJpYnV0ZUJhc2VWYWx1ZSgpIGNvbnN0OwogICAg
IHZvaWQgc2V0VGFyZ2V0QXR0cmlidXRlQW5pbWF0ZWRWYWx1ZShjb25zdCBTdHJpbmcmKTsKLSAg
ICAKLSAgICBib29sIGlzQWRkaXRpdmUoKSBjb25zdDsKLSAgICBib29sIGlzQWNjdW11bGF0ZWQo
KSBjb25zdDsKIAogICAgIC8vIGZyb20gU1ZHU01JTEVsZW1lbnQKICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRlZEFjdGl2ZUludGVydmFsKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlv
bihmbG9hdCBwZXJjZW50LCB1bnNpZ25lZCByZXBlYXQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRF
bGVtZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZW5kZWRBY3RpdmVJbnRlcnZhbCgpOwotICAgIAor
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSos
IGJvb2wgcHJlc2VydmVEZWNscyk7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVy
dHkoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtOTcsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1
bnNpZ25lZCByZXBlYXQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50KSA9IDA7CiAgICAg
dmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIC8qZnJvbVN0cmlu
ZyovLCBjb25zdCBTdHJpbmcmIC8qdG9TdHJpbmcqLykgeyByZXR1cm4gLTEuZjsgfQogICAgIHZp
cnR1YWwgUGF0aCBhbmltYXRpb25QYXRoKCkgY29uc3QgeyByZXR1cm4gUGF0aCgpOyB9Ci0gICAg
CisKICAgICB2b2lkIGN1cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmltYXRpb24oZmxvYXQgcGVyY2Vu
dCwgZmxvYXQmIGVmZmVjdGl2ZVBlcmNlbnQsIFN0cmluZyYgZnJvbSwgU3RyaW5nJiB0bykgY29u
c3Q7CiAgICAgdm9pZCBjYWxjdWxhdGVLZXlUaW1lc0ZvckNhbGNNb2RlUGFjZWQoKTsKICAgICBm
bG9hdCBjYWxjdWxhdGVQZXJjZW50RnJvbUtleVBvaW50cyhmbG9hdCBwZXJjZW50KSBjb25zdDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0b3JfaAorI2RlZmluZSBTVkdBbmltYXRv
cl9oCisKKyNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRl
ICJTVkdBbmltYXRlZExlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFz
cyBTVkdBbmltYXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+IGNyZWF0ZShTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5
cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICAv
LyBGSVhNRTogQWRkIGFuaW1hdGlvbiBzdXBwb3J0IGZvciBhbGwgU1ZHIHVuaXRzLgorICAgICAg
ICBzd2l0Y2ggKGF0dHJpYnV0ZVR5cGUpIHsKKyAgICAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRv
cihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUpKTsKKyAgICAgICAgfQorICAgIH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNl
bmRpZiAvLyBTVkdBbmltYXRvcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAkocmV2
aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSwxNCBAQCBTVkdMZW5ndGg6OlNWR0xlbmd0aChTVkdMZW5n
dGhNb2RlIG1vZGUsCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgc2V0VmFsdWVBc1N0
cmluZyh2YWx1ZUFzU3RyaW5nLCBlYyk7CiB9CisgICAgCit2b2lkIFNWR0xlbmd0aDo6c2V0VmFs
dWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlQXNTdHJpbmcsIFNWR0xlbmd0aE1vZGUgbW9k
ZSkKK3sKKyAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IDA7CisgICAgbV91bml0ID0gc3Rv
cmVVbml0KG1vZGUsIExlbmd0aFR5cGVOdW1iZXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIHNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0cmluZywgZWMpOworfQogCiBTVkdMZW5n
dGg6OlNWR0xlbmd0aChjb25zdCBTVkdMZW5ndGgmIG90aGVyKQogICAgIDogbV92YWx1ZUluU3Bl
Y2lmaWVkVW5pdHMob3RoZXIubV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC01NjksNiArNTc3
LDQxIEBAIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IFNWR0xlbmd0aDoKICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShsZW5ndGgudmFsdWVJblNwZWNpZmllZFVuaXRz
KCksIGNzc1R5cGUpOwogfQogCitTVkdMZW5ndGhNb2RlIFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZv
ckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQor
eworICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5n
dGhNb2RlRm9yTGVuZ3RoQXR0cmlidXRlTWFwOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVu
Z3RoTW9kZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAg
CisgICAgaWYgKHNfbGVuZ3RoTW9kZU1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgc19sZW5ndGhN
b2RlTWFwLnNldChTVkdOYW1lczo6eEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAg
ICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6Y3hBdHRyLCBMZW5ndGhNb2RlV2lk
dGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpjeUF0dHIsIExlbmd0
aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeEF0
dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6OmR5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6OmZ4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhN
b2RlTWFwLnNldChTVkdOYW1lczo6ZnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAg
c19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ckF0dHIsIExlbmd0aE1vZGVPdGhlcik7Cisg
ICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OndpZHRoQXR0ciwgTGVuZ3RoTW9k
ZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6aGVpZ2h0QXR0
ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6OngxQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNl
dChTVkdOYW1lczo6eDJBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1v
ZGVNYXAuc2V0KFNWR05hbWVzOjp5MUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5MkF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOwor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpyZWZYQXR0ciwgTGVuZ3RoTW9k
ZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6cmVmWUF0dHIs
IExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVz
OjptYXJrZXJXaWR0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9k
ZU1hcC5zZXQoU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOyAg
ICAgICAgCisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnRleHRMZW5ndGhB
dHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05h
bWVzOjpzdGFydE9mZnNldEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgfQorICAgIAorICAg
IGlmIChzX2xlbmd0aE1vZGVNYXAuY29udGFpbnMoYXR0ck5hbWUpKQorICAgICAgICByZXR1cm4g
c19sZW5ndGhNb2RlTWFwLmdldChhdHRyTmFtZSk7CisgICAgCisgICAgcmV0dXJuIExlbmd0aE1v
ZGVPdGhlcjsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJl
dmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU1ZH
UHJvcGVydHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODgsOCBA
QCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogICAgIHZvaWQg
c2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KKyAgICB2
b2lkIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiwgU1ZHTGVuZ3RoTW9kZSk7CisgICAg
CiAgICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNvbnZlcnRU
b1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
LCBFeGNlcHRpb25Db2RlJik7CiAKQEAgLTEwMCw2ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgU1ZHTGVuZ3RoIGZyb21DU1NQcmltaXRpdmVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZSop
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB0b0NTU1ByaW1pdGl2
ZVZhbHVlKGNvbnN0IFNWR0xlbmd0aCYpOworICAgIHN0YXRpYyBTVkdMZW5ndGhNb2RlIGxlbmd0
aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBkZXRlcm1pbmVWaWV3cG9ydChjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaHQpIGNvbnN0OwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gODg2MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTEtMDYtMTIgIERpcmsgU2NodWx6ZSAgPGtyaXRA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmltYXRpb24gZm9yIFNW
R0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjEzNjgKKworICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgY29ycmVjdCBiZWhhdmlv
ciBvZiBTVkdMZW5ndGggYW5pbWF0aW9ucy4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanM6IEFkZGVk
LgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBs
ZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxl
Myk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUz
KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanM6IEFkZGVkLgor
ICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVU
ZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6Cisg
ICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qczogQWRkZWQuCisgICAgICAgIChzYW1w
bGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChl
eGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgor
ICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVU
ZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1leHMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAg
IChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWluLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxl
Mik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1u
dW1iZXIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToK
KyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxl
Myk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanM6IEFkZGVkLgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAg
ICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUx
KToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChzYW1w
bGU0KToKKyAgICAgICAgKHNhbXBsZTUpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVu
Z3RoTW9kZU90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGgu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8t
bnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1lbXMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1pbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcGMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcGVyY2VudGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1weC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA2LTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENocm9taXVtIHJlYmFzZWxpbmUgYWZ0ZXIgcjg1NTYwLgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlSGVpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24g
b24gTGVuZ3RoTW9kZUhlaWdodC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxNTAK
K1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC5oZWlnaHQu
YW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAy
MDAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWln
aHQuYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWln
aHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdo
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1MZW5ndGhNb2RlT3RoZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3Ro
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5n
dGhNb2RlT3RoZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNpcmNs
ZS5yLmFuaW1WYWwudmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAx
MAorUEFTUyBjaXJjbGUuci5hbmltVmFsLnZhbHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIu
YmFzZVZhbC52YWx1ZSBpcyAxMzIuNDc1CitQQVNTIGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMg
MjU0LjkKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAyNTQuOQorUEFTUyBjaXJjbGUu
ci5hbmltVmFsLnZhbHVlIGlzIDEwCitQQVNTIGNpcmNsZS5yLmJhc2VWYWwudmFsdWUgaXMgMTAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1v
ZGVPdGhlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVP
dGhlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmlt
YXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVXaWR0aC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMzAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAzMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxl
bmd0aE1vZGVXaWR0aC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVXaWR0aC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZh
bHVlLTEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gx
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTEuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24taW52YWxpZC12YWx1ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1
ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorU1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBp
bnZhbGlkIHZhbHVlOiBObyBzcGFjZXMgYmVmb3JlIHZhbHVlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1p
bnZhbGlkLXZhbHVlLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMv
cmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZh
bHVlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNw
YWNlcyBhZnRlciBudW1iZXIgYW5kIHVuaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQt
dmFsdWUtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmlt
YXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tbnVtYmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BB
U1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVt
YmVyLXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24g
dGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1i
ZXItdG8tbnVtYmVyLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTQ0LjQ5CitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxNDQuNDkKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE4OC45
OAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk4CitQQVNTIHJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tY20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1jbS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1lbXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0
aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGVtcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWVtcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwv
aDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1leHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3Rz
CisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGV4cy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1
MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LWV4cy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGluY2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTcwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUgaXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWluLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgx
PlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIG51bWJlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBjLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDE3MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTcwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyNDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNv
dXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9T
VkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5T
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitU
ZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDM1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MzUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyA2MDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDYwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5p
bWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGVyY2VudGFnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRv
IGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE2MS4xNQorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTYxLjE1CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBp
cyAxODguOTcKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE4OC45NworUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENh
c2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tcHQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1weC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFu
aW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tcHguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwv
aDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVl
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjMgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBT
VkdMZW5ndGggYW5pbWF0aW9uIHNldCB3aXRoICd2YWx1ZXMnLCBkaWZmZXJlbnQgdW5pdHMgYW5k
IGRpZmZlcmVudCBjb3VudCBvZiBzcGFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTMwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMzAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDE1MS4xOAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTUxLjE4CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyA1NzYKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDU3NgorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMjY2LjcKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI2Ni43CitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tdmFsdWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi12YWx1ZXMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZUhlaWdodC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1OSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhN
b2RlSGVpZ2h0LiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1
bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RT
VkdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0
IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJmb250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9u
Y2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgImhlaWdodCIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJ0byIsICI1MCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7
Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9u
IHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29u
ZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwMCIp
OworICAgIHNob3VsZEJlKCJyZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQor
CitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVp
Z2h0LmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LmhlaWdodC5hbmlt
VmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qu
aGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5p
bWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTks
ICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIs
IHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMp
OworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVw
ZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZU90aGVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACitkZXNjcmlwdGlvbigi
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVPdGhlci4iKTsKK2NyZWF0ZVNW
R1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3Jvb3RTVkdFbGVtZW50LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiNjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUo
ImhlaWdodCIsICI0MDAiKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGNpcmNsZSA9
IGNyZWF0ZVNWR0VsZW1lbnQoImNpcmNsZSIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiaWQiLCAi
Y2lyY2xlIik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJjeCIsICI1MCIpOworY2lyY2xlLnNldEF0
dHJpYnV0ZSgiY3kiLCAiNTAiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoInIiLCAiMTAiKTsKK2Np
cmNsZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUo
Im9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24i
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInIiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1
ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJ0byIsICI1MCUiKTsKK2NpcmNsZS5hcHBlbmRDaGlsZChhbmltYXRlKTsK
K3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKGNpcmNsZSk7CisKKy8vIFNldHVwIGFuaW1hdGlv
biB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNv
bmRpdGlvbnMKKyAgICBzaG91bGRCZSgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIxMCIpOwor
ICAgIHNob3VsZEJlKCJjaXJjbGUuci5iYXNlVmFsLnZhbHVlIiwgIjEwIik7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZh
bC52YWx1ZSIsICIxMzIuNDc1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2ly
Y2xlLnIuYmFzZVZhbC52YWx1ZSIsICIxMzIuNDc1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZhbC52YWx1
ZSIsICIyNTQuOSIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYmFz
ZVZhbC52YWx1ZSIsICIyNTQuOSIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
eworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQs
IHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
MC4wLCAgICAiY2lyY2xlIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAg
ICAiY2lyY2xlIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAiY2ly
Y2xlIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAiY2lyY2xlIiwg
c2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7
Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBk
YXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlV2lkdGguanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLiIpOworY3JlYXRlU1ZH
VGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0
QXR0cmlidXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNy
ZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgi
LCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmb250LXNpemUi
LCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIp
OworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJh
dHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAi
Y2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjUw
JSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENo
aWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgp
IHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUi
LCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjMwMCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIzMDAiLCAw
LjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRW
YWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1w
bGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxl
MV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5p
bWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dp
bmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LWludmFsaWQtdmFsdWUtMS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBp
bnZhbGlkIHZhbHVlOiBObyBzcGFjZXMgYmV0d2VlbiBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVh
dGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNy
ZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgi
LCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwg
ImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmlt
YXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRz
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAgICBweCIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCAgIHB4Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUp
Oworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlv
biB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNv
bmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIp
OworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIw
Iik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxl
Q2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMi5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorZGVzY3JpcHRp
b24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNl
cyBiZWZvcmUgdmFsdWUuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0
IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUg
PSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQi
LCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3
aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIs
ICIgICAxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIiAgIDIwMHB4Iik7City
ZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVj
dCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAg
IC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
eworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQs
IHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
MC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAg
InJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwg
c2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7
Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBk
YXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24taW52YWxpZC12YWx1ZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRo
IGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBhZnRlciBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVh
dGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNy
ZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgi
LCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwg
ImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmlt
YXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRz
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCAgICIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoInRvIiwgIjIwMHB4ICAgIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUp
Oworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlv
biB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNv
bmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIp
OworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIw
Iik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxl
Q2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
bnVtYmVyLXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRl
U1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVh
dGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0
ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgidG8iLCAiMjAwIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0Vs
ZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5j
dGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAg
ICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3Vs
ZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBj
b25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBl
bGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAg
InJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwg
c2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4g
dGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDAp
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNt
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdM
ZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOwor
CisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJl
Y3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0
ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAi
Z3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsK
KwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0
cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNs
aWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjVj
bSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENo
aWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgp
IHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNDQuNDki
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMTQ0LjQ5IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4OC45OCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxODguOTgiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29u
c3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxl
bWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJy
ZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNh
bXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOwor
CisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRl
c3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVt
cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGVtcy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7
CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgi
cmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIs
ICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRl
ID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlk
IiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAi
d2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20i
LCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMGVtIik7CityZWN0LmFw
cGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisK
Ky8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENo
ZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAx
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworfQorCitm
dW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAg
ICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQor
ICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQu
MCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4
cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVv
dXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhz
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU1IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHgg
dG8gZXhzLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVu
dAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIx
MDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJp
YnV0ZSgiZm9udC1zaXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwg
ImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmlt
YXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRz
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoInRvIiwgIjQwZXgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUz
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRp
bWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4w
LCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJl
Y3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2Ft
cGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisg
ICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBC
ZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzAp
IiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWlu
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8taW4uanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0
IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBpbmNoLiIpOworY3JlYXRlU1ZHVGVzdENh
c2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVt
ZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJm
aWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVz
dCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdp
biIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0
byIsICIyLjVpbiIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24g
c2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUy
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIxNzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTcwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIyNDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0
Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBs
ZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisg
ICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3Qg
YXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LW51bWJlci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRl
c3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIG51bWJlci4iKTsKK2NyZWF0ZVNWR1Rl
c3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0
ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiMjAwIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBs
ZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25z
dCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVt
ZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJl
Y3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisK
KyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVz
dCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1wYy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5n
dGggYW5pbWF0aW9uIGZyb20gcHggdG8gcGMuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisv
LyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3Qi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgi
eCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3Jl
ZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwor
dmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmli
dXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNr
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjE1cGMi
KTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGls
ZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7
CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTcwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwg
IjE3MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjQwIiwgMC4w
MSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxl
Q2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1h
dGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5k
b3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBl
cmNlbnRhZ2UuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLiIpOworY3JlYXRl
U1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVh
dGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0
ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJ0byIsICIyMDAlIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNW
R0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0Citm
dW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMK
KyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIiwgIjM1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIzNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
NjAwIiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUiLCAiNjAwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAg
Y29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwg
ZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAg
ICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIs
IHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUz
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBd
OworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2lu
IHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAw
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
dC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsK
KworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJj
bGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiMTAwcHQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI1
Y20iKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTYxLjE1
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjE2MS4xNSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxODguOTciLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUi
LCAiMTg4Ljk3IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVs
ZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAi
cmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBz
YW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsK
KworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0
ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHgu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xl
bmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisK
Ky8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVj
dCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJn
cmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOwor
Cit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRy
aWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xp
Y2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAw
cHgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2Ft
cGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBs
ZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFu
aW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3
aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi12YWx1ZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNjUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gc2V0
IHdpdGggJ3ZhbHVlcycsIGRpZmZlcmVudCB1bml0cyBhbmQgZGlmZmVyZW50IGNvdW50IG9mIHNw
YWNlcy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQK
K3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNW
R0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRp
b24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCAiMTAwcHg7
ICAxMzAgIDs0Y20gIDs2aW47IDIwMHB0Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOwor
cm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0
ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRp
dGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOwor
ICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1
bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjEzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTUxLjE4IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIiwgIjE1MS4xOCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU0
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICI1NzYiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiNTc2IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTUoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI2Ni43Iiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjI2Ni43IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVs
ZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAi
cmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEuMCwgICAgInJlY3QiLCBz
YW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlM10s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy4wLCAgICAicmVjdCIsIHNhbXBsZTRdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGU1XSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0
aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRv
dy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96884</attachid>
            <date>2011-06-12 11:52:23 -0700</date>
            <delta_ts>2011-06-12 22:35:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110612205218.patch</filename>
            <type>text/plain</type>
            <size>127634</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTEtMDYtMTIgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAgICBUaGUgZ29hbCBpcyB0byBtb3ZlIHRoZSBtYWlu
IGFuaW1hdGlvbiBsb2dpYyBmb3IgZWFjaCBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlIGZyb20gU1ZH
QW5pbWF0ZUVsZW1lbnQgaW50byB0aGUgY29ycmVzcG9uZGluZyBTVkdBbmltYXRlZCogZmlsZXMu
CisgICAgICAgIFNWR0FuaW1hdGVFbGVtZW50IHdpbGwganVzdCB3b3JrIHdpdGggdGhlIGdlbmVy
aWMgdHlwZSBTVkdBbmltYXRlZFR5cGUuIEJlZm9yZSB0aGlzIHBhdGNoIHdlIGFza2VkIHRoZSB0
YXJnZXQgZWxlbWVudCBmb3IgaXRzCisgICAgICAgIGJhc2UgdmFsdWUsIHdoaWNoIHdhcyB0cmFu
c2Zvcm1lZCBpbnRvIGEgc3RyaW5nLiBXZSBwYXJzZWQgdGhhdCBzdHJpbmcgaW50byBhIG51bWJl
ciBhbmQgaXRzIHVuaXQuIEFmdGVyIHRoYXQgd2UgYW5pbWF0ZWQgdGhlIG51bWJlciBpbiB0aGUK
KyAgICAgICAgZm9sbG93aW5nIGFuaW1hdGlvbiBzdGVwcywgdHJhbnNmb3JtZWQgdGhpcyBudW1i
ZXIgdG8gYSBzdHJpbmcsIGFkZGVkIHRoZSB1bml0IGFuZCBwYXNzZWQgdGhpcyBzdHJpbmcgYmFj
ayB0byB0aGUgdGFyZ2V0IGVsZW1lbnQuCisgICAgICAgIFRoZSB0YXJnZXQgZWxlbWVudCBwYXJz
ZWQgdGhlIHN0cmluZyBhZ2FpbiBhbmQgYXJyYW5nZXMgdGhlIHJlbGF5b3V0IGFuZCByZXBhaW50
aW5nLgorICAgICAgICBJbiBzaG9ydDogU1ZHVmFsdWUgLT4gc3RyaW5nIC0+IG51bWJlciArIHVu
aXQgZm9yIGFuaW1hdGlvbiAtPiBzdHJpbmcgLT4gbmV3IFNWR1ZhbHVlLgorCisgICAgICAgIFRo
aXMgYW5kIHRoZSBuZXh0IHBhdGNoZXMgd2lsbCBqdXN0IGZpeCB0aGUgbnVtYmVyICsgdW5pdCBw
YXJzaW5nLiBXZSB3aWxsIHdvcmsgd2l0aCB0aGUgU1ZHIHVuaXRzIGRpcmVjdGx5IGludGVybmFs
eS4KKyAgICAgICAgSW4gc2hvcnQ6IFNWR1ZhbHVlIC0+IHN0cmluZyAtPiBTVkdWYWx1ZSBmb3Ig
YW5pbWF0aW9uIC0+IHN0cmluZyAtPiBuZXcgU1ZHVmFsdWUKKworICAgICAgICBUaGVyZSBhcmUg
c29tZSBiZW5lZml0cyB3aXRoIHRoZSBuZXcgaW5mcmFzdHJ1Y3R1cmUuIEF0IGZpcnN0LCB0aGUg
Y3VycmVudCBwYXJzaW5nIGluIHRoZSBhbmltYXRpb24gY29kZSBqdXN0IHJlc3BlY3RzIGEgZmV3
IHVuaXRzICg1IGZvciBTVkdsZW5ndGgpLgorICAgICAgICBXZSBkb24ndCBzdXBwb3J0IGFuaW1h
dGlvbnMgYmV0d2VlbiBkaWZmZXJlbnQgdW5pdHMgcmlnaHQgbm93OiBmcm9tPSIyMHB4IiB0bz0i
MjAlIiBmb3IgZXhhbXBsZS4gVGhlIHNlY29uZCBiZW5lZml0IGlzLCB0aGF0IHdlIGRvIG5vdAor
ICAgICAgICByZXdyaXRlIHRoZSBwYXJzaW5nIGNvZGUgZm9yIHBhcnNpbmcgdGhlIHZhbHVlcyBp
biB0aGUgYXR0cmlidXRlcyAnZnJvbScsICd0bycgYW5kICd2YWx1ZXMnLCBzZWUgcGFyc2VOdW1i
ZXJWYWx1ZUFuZFVuaXQgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuIAorICAgICAgICBUaGUgbWFpbiBi
ZW5lZml0OiBCZWNhdXNlIHdlIHVzZSBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlIGZvciBhbmltYXRp
b25zLCBpdCB3aWxsIGJlIGVhc2llciB0byBzdXBwb3J0IGFuaW1WYWwgYW5kIHRoZXJlZm9yZSBj
YW4gYXZvaWQgY29udmVydGluZyB2YWx1ZXMKKyAgICAgICAgdG8gc3RyaW5nLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY29udmVydHMgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB0byB0aGUgbmV3IGNvbmNl
cHQuCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZUhlaWdodC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1sCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCisgICAg
ICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5odG1sCisgICAgICAgICAgICAgICBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAor
ICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1j
bS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWVtcy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0bWwKKyAgICAgICAgICAg
ICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbAorICAg
ICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJj
ZW50YWdlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tcHQuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDogQWRkZWQgbmV3IGZpbGVzIHRvIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOiBBZGRlZCBTVkdB
bmltYXRlZExlbmd0aC5jcHAgZm9yIFdpbiBhbmQgb3RoZXIgYnVpbGQgc3lzdGVtcy4KKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VO
dW1iZXJWYWx1ZUFuZFVuaXQpOiBSZW1vdmUgcGFyc2luZyBjb2RlIGZvciBTVkdMZW5ndGguIFVz
ZSBTVkdMZW5ndGggcGFyc2VyIGRpcmVjdGx5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OmFkanVzdEZvckN1cnJlbnRDb2xvcik6IE1hZGUgYWRqdXN0Rm9yQ3VycmVudENv
bG9yIHB1YmxpYyBhcyBwcmVwZXJhdGlvbiBmb3IgU1ZHQW5pbWF0ZWRDb2xvci4KKyAgICAgICAg
KFdlYkNvcmU6OmdldFByb3BlcnR5VmFsdWUpOiBJbmxpbmUgZnVuY3Rpb24gdG8gZ2V0IGNvbXB1
dGVkU3R5bGUgb2YgQ1NTIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmFkanVzdEZvckluaGVyaXRhbmNlKTogTWFkZSBhZGp1c3RGb3JJbmhlcml0YW5jZSBh
cyBwcmVwZXJhdGlvbiBmb3IgU1ZHQW5pbWF0ZWQqIGZpbGVzLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZUVsZW1lbnQ6OmRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSk6IFNWR0xl
bmd0aCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgdmlhIFNWR0FuaW1hdG9yIG5vdy4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTogQ2xl
YW51cC4gTWFrZSB1c2Ugb2YgU1ZHQW5pbWF0b3IgZm9yIFNWR0xlbmd0aC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5k
QnlWYWx1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50Ojpy
ZXNldFRvQmFzZVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxl
bWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZSk6IERpdHRvLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRTVkdM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y29u
c3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2Fs
Y3VsYXRlRGlzdGFuY2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5oOiBBZGRl
ZCBuZXcgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvciB3aGljaCBpcyByZXNwb25zaWJs
ZSBmb3IgdGhlIGFjdHVhbCBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcik6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkVHlwZS5oOiBBZGRlZC4gR2VuZXJpYyBTVkcgdW5pdCB0eXBlIGZvciBh
bmltYXRpb25zIGluIFNWR0FuaW1hdGVFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmg6IEFkZGVkLiBCYXNlIGNsYXNzIGZv
ciBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yIGFuZCBmdXR1cmUgU1ZHIHVuaXQgYW5pbWF0b3Jz
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6On5TVkdBbmltYXRl
ZFR5cGVBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRv
cjo6c2V0Q29udGV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3I6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IFdlIGRvIG5vdCB1c2UgcGFyc2VOdW1iZXJWYWx1ZUFu
ZFVuaXQgZm9yIFNWR0xlbmd0aCBub3cuIEhhdmUgdG8gc3RyaXAgd2hpdGUgc3BhY2VzIGhlcmUu
IFdoaXRlc3BhY2VzIHNob3VsZG4ndAorICAgICAgICAgIGJlIHN0cmlwcGVkIG9uICdmcm9tJywg
J3RvJyBhbmQgJ2J5Jy4gVGhpcyBpcyBub3QgdGhlIGNhc2UgZm9yIFNWR0xlbmd0aCBhbnltb3Jl
LiBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgdGhpcyBiZWhhdmlvci4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFuaW1hdGlvbk1vZGUpOiBFbnVtIGlzIGFjY2Vzc2li
bGUgaW4gV2ViQ29yZSBuYW1lc3BhY2Ugbm93LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
aW9uRWxlbWVudDo6Y2FsY01vZGUpOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgICog
c3ZnL1NWR0xlbmd0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVl
QXNTdHJpbmcpOiBOZXcgc2V0dGVyIHdpdGggc3RyaW5nIGFuZCBTVkdMZW5ndGhNb2RlLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRy
aWJ1dGUpOiBHZXQgTGVuZ3RoTW9kZSBmb3IgU1ZHTGVuZ3RoIGRlcGVuZGluZyBvbiB0aGUgYXR0
cmlidXRlIG5hbWUuCisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorCiAyMDExLTA2LTExICBN
aWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEphbWVzIFJvYmluc29uLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDg4NjEx
KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2
NDIsNiArMTY0Miw3IEBAIElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcAorICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAg
ICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDg4NjExKQor
KysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAt
MzMyMCw2ICszMzIwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIu
aCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZExlbmd0aExpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyLmggXApAQCAtMzMyOCw2ICszMzI5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaCBc
CisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIFwKQEAgLTMzMzYsNiArMzMzOSw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdG9yRmFjdG9yeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDU0LDYgKzEwNTQsOSBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlZFJlY3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgnLAogICAg
ICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCcsCisgICAgICAgICAgICAn
c3ZnL1NWR0FuaW1hdGVkVHlwZS5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oJywKICAg
ICAgICAgICAgICdzdmcvU1ZHQ29sb3IuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0RvY3VtZW50
RXh0ZW5zaW9ucy5oJywKICAgICAgICAgICAgICdzdmcvU1ZHRWxlbWVudC5oJywKQEAgLTU2NzYs
NiArNTY3OSw3IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuZ2xlLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODg2
MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjMx
NywxMCArMjMxNywxMyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRSZWN0Lmgg
XAogICAgIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGUuaCBcCisgICAgc3ZnL1NWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggXAogICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKICAg
ICBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmggXAorICAgIHN2
Zy9TVkdBbmltYXRvckZhY3RvcnkuaCBcCiAgICAgc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBcCiAg
ICAgc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQ29sb3IuaCBcCkBAIC0z
MjY0LDYgKzMyNjcsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAg
ICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcv
U1ZHQW5nbGUuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
Y3BwIFwKKyAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAgICAgICAg
ICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjUyNDYsNiAr
NjUyNDYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3ZnXFNWR0FuaW1hdGVkVHlwZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0Fu
aW1hdGVFbGVtZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNjUyNjIsNiArNjUyNzAsMTAg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Zn
XFNWR0FuaW1hdG9yRmFjdG9yeS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQ2lyY2xlRWxlbWVudC5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MjYsNiArOTI2LDEwIEBA
CiAJCTQxRjU4NEM3MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1ODRDNjEwNDY1
MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovOyB9OwogCQk0MUZBMzAzRTEz
MTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUg
LyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi87IH07CiAJCTQxRkEzMDNGMTMxNkMyOUMwMEMw
QkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVk
aWFDb250cm9scy5oICovOyB9OworCQk0MzRDN0QzNzEzQTU0MDM3MDBBMEQ4NjYgLyogU1ZHQW5p
bWF0b3JGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MzRDN0QzNjEzQTU0MDM3MDBBMEQ4NjYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi87
IH07CisJCTQzNTg1NEREMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZExlbmd0aC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4NTREOTEz
QTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovOyB9OworCQk0MzU4NTRE
RTEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyog
U1ZHQW5pbWF0ZWRUeXBlLmggKi87IH07CisJCTQzNTg1NERGMTNBNEREQzAwMDg3RkY4MiAvKiBT
VkdBbmltYXRlZFR5cGVBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yLmggKi87IH07CiAJCTQzNThFODZBMTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdG
RURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MzU4RTg2NzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC5oICovOyB9OwogCQk0MzU4RTg2QjEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzNThFODY4MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dF
bGVtZW50Lm1tICovOyB9OwogCQk0MzU4RTg2QzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVE
cm9wU2hhZG93RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9w
U2hhZG93RWxlbWVudEludGVybmFsLmggKi87IH07CkBAIC03NDg4LDYgKzc0OTIsMTAgQEAKIAkJ
NDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdlUG9ydEN1c3RvbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVy
TWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFG
QTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MzRDN0QzNjEzQTU0MDM3MDBBMEQ4NjYgLyogU1ZHQW5pbWF0
b3JGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9y
RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzU4NTREOTEzQTREREMw
MDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzU4NTREQjEzQTREREMwMDA4N0ZGODIgLyogU1ZH
QW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDM1OEU4NjcxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2ODEzNjBBMjE2MDBFNDc0
OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY5MTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdG
RURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzM5Nyw2ICsxNzQwNSw3IEBACiAJCQkJQjIyMjc3RTgwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICovLAogCQkJCTA4MjNEMTU4
MTI3QUQ2QUMwMDBFQkM5NSAvKiBTVkdBbmltYXRlZEludGVnZXIuaCAqLywKIAkJCQlCMjIyNzdF
OTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCAqLywKKwkJCQk0MzU4
NTREOTEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovLAogCQkJCTA4
OTAyMUE4MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aC5oICovLAogCQkJCUIy
MjI3N0VBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZExlbmd0aC5pZGwgKi8sCiAJCQkJ
MDg5MDIxQUMxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oICovLApA
QCAtMTc0MTMsNiArMTc0MjIsOCBAQAogCQkJCUIyMjI3N0Y2MEQwMEJGMUYwMDcxQjc4MiAvKiBT
VkdBbmltYXRlZFN0cmluZy5pZGwgKi8sCiAJCQkJMDgyNTA5MzgxMjhCRDREODAwRTJFRDhFIC8q
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcx
Qjc4MiAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAorCQkJCTQzNTg1NERBMTNB
NEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKKwkJCQk0MzU4NTREQjEzQTRE
REMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLywKIAkJCQlCMjIyNzdG
OTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3
N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5oICovLAogCQkJCUIyMjI3
N0ZCMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5pZGwgKi8sCkBAIC0xNzQy
NCw2ICsxNzQzNSw3IEBACiAJCQkJQjIyMjc4MDEwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGlvbkVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3ODAyMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRpb25FbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4MDMwRDAwQkYxRjAwNzFCNzgyIC8qIFNW
R0FuaW1hdGlvbkVsZW1lbnQuaWRsICovLAorCQkJCTQzNEM3RDM2MTNBNTQwMzcwMEEwRDg2NiAv
KiBTVkdBbmltYXRvckZhY3RvcnkuaCAqLywKIAkJCQlCMjIyNzgwNDBEMDBCRjFGMDA3MUI3ODIg
Lyogc3ZnYXR0cnMuaW4gKi8sCiAJCQkJQjIyMjc4MDUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0Np
cmNsZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3ODA2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdD
aXJjbGVFbGVtZW50LmggKi8sCkBAIC0yMzE3Myw2ICsyMzE4NSw5IEBACiAJCQkJRkRGMDlEQzkx
Mzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDlBODVCNkMxMzhENTczQTAwRUNCN0IzIC8qIFN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUE4NUI3ODEzOEQ1OEVFMDBFQ0I3QjMgLyogSlNTdHJlYW1FdmVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDM1ODU0REUxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlw
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDM1ODU0REYxM0E0RERDMDAwODdGRjgyIC8qIFNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzRDN0QzNzEzQTU0MDM3
MDBBMEQ4NjYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1OTA2
LDYgKzI1OTIxLDcgQEAKIAkJCQlGREYwOURDODEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRG
aWx0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QTg1QjZCMTM4RDU3M0EwMEVDQjdC
MyAvKiBTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUE4NUI3NzEzOEQ1OEVF
MDBFQ0I3QjMgLyogSlNTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MzU4NTRE
RDEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDg4NjExKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIlNWR0FsdEdseXBoRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHQW5nbGUuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIgorI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50LmNwcAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw2
ICszMiw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiUXVhbGlm
aWVkTmFtZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlNWR0FuaW1h
dG9yRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKQEAgLTcwLDggKzcyLDYgQEAgc3Rh
dGljIGJvb2wgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoY29ucwogICAgIFN0cmluZyBwYXJzZSA9
IGluLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgIGlmIChwYXJzZS5lbmRzV2l0aCgiJSIpKQogICAg
ICAgICB1bml0TGVuZ3RoID0gMTsKLSAgICBlbHNlIGlmIChwYXJzZS5lbmRzV2l0aCgicHgiKSB8
fCBwYXJzZS5lbmRzV2l0aCgicHQiKSB8fCBwYXJzZS5lbmRzV2l0aCgiZW0iKSkKLSAgICAgICAg
dW5pdExlbmd0aCA9IDI7CiAgICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgoImRlZyIpIHx8IHBh
cnNlLmVuZHNXaXRoKCJyYWQiKSkKICAgICAgICAgdW5pdExlbmd0aCA9IDM7CiAgICAgZWxzZSBp
ZiAocGFyc2UuZW5kc1dpdGgoImdyYWQiKSkKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGJvb2wg
cGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoY29ucwogICAgIHJldHVybiBvazsKIH0KIAotc3RhdGlj
IGlubGluZSB2b2lkIGFkanVzdEZvckN1cnJlbnRDb2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVt
ZW50LCBDb2xvciYgY29sb3IpCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphZGp1c3RGb3JDdXJy
ZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImIGNvbG9yKQogewogICAg
IEFTU0VSVCh0YXJnZXRFbGVtZW50KTsKICAgICAKQEAgLTk5LDcgKzk5LDEzIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBhZGp1c3RGb3JDdXJyZW50Q29sb3IKICAgICAgICAgY29sb3IgPSBDb2xvcigp
OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3Ry
aW5nJiB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXRQcm9wZXJ0eVZhbHVlKFNWR0VsZW1l
bnQqIHN2Z1BhcmVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3RyaW5n
JiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoc3ZnUGFyZW50LT5pc1N0eWxlZCgpKTsKKyAgICB2YWx1
ZSA9IGNvbXB1dGVkU3R5bGUoc3ZnUGFyZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShjc3NQcm9wZXJ0
eUlEKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKTsKK30KKwordm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6YWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAv
LyBGSVhNRTogQXQgdGhlIG1vbWVudCB0aGUgY29tcHV0ZWQgc3R5bGUgZ2V0cyByZXR1cm5lZCBh
cyBhIFN0cmluZyBhbmQgbmVlZHMgdG8gZ2V0IHBhcnNlZCBhZ2Fpbi4KICAgICAvLyBJbiB0aGUg
ZnV0dXJlIHdlIG1pZ2h0IHdhbnQgdG8gd29yayB3aXRoIHRoZSB2YWx1ZSB0eXBlIGRpcmVjdGx5
IHRvIGF2b2lkIHRoZSBTdHJpbmcgcGFyc2luZy4KQEAgLTExMSw3ICsxMTcsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoCiAKICAgICBTVkdFbGVtZW50KiBzdmdQ
YXJlbnQgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4ocGFyZW50KTsKICAgICBpZiAoc3ZnUGFy
ZW50LT5pc1N0eWxlZCgpKQotICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkU3R5bGUoc3ZnUGFyZW50
KS0+Z2V0UHJvcGVydHlWYWx1ZShjc3NQcm9wZXJ0eUlEKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1l
KCkpKTsKKyAgICAgICAgZ2V0UHJvcGVydHlWYWx1ZShzdmdQYXJlbnQsIGF0dHJpYnV0ZU5hbWUs
IHZhbHVlKTsKIH0KIAogYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVU
eXBlKCkgY29uc3QKQEAgLTEzNiwxNiArMTQyLDE3IEBAIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBT
VkdBbmltYXRlRWxlbWVudDoKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEFuaW1hdGVk
Qm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRl
ZExlbmd0aExpc3Q6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6CiAgICAgY2FzZSBBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0Ogog
ICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgIGNhc2UgQW5pbWF0ZWRS
ZWN0OgogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6CiAgICAgICAgIHJldHVybiBBbmltYXRlZFN0
cmluZzsKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRM
ZW5ndGg7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2Vy
OgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAg
ICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyOwogICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgpAQCAt
MTU0LDggKzE2MSw4IEBAIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoK
ICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9pbnRzOwogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoK
ICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29sb3I7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246
CiAgICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6CisgICAgY2FzZSBBbmltYXRlZFVua25v
d246CiAgICAgICAgIC8vIEFuaW1hdGlvbnMgb2YgdHJhbnNmb3JtIGxpc3RzIGFyZSBub3QgYWxs
b3dlZCBmb3IgPGFuaW1hdGU+IG9yIDxzZXQ+CiAgICAgICAgIC8vIGh0dHA6Ly93d3cudzMub3Jn
L1RSL1NWRy9hbmltYXRlLmh0bWwjQW5pbWF0aW9uQXR0cmlidXRlc0FuZFByb3BlcnRpZXMKICAg
ICAgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsKQEAgLTE3MSwxNCArMTc4LDkgQEAgdm9pZCBT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgIEFTU0VSVChyZXN1bHRFbGVt
ZW50KTsKICAgICBib29sIGlzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA9IHBlcmNlbnRhZ2UgPCAw
LjVmOwogICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSA9IHRoaXMtPmFuaW1hdGlvbk1v
ZGUoKTsKLSAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gMDsKLSAgICAvLyBBdm9pZCB0
YXJnZXRFbGVtZW50KCkgY2FsbCBpZiBwb3NzaWJsZS4gSXQgbWlnaHQgc2xvdyBkb3duIGFuaW1h
dGlvbnMuCi0gICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSB8
fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlCi0gICAgICAgIHx8IG1fZnJv
bVByb3BlcnR5VmFsdWVUeXBlID09IEN1cnJlbnRDb2xvclZhbHVlIHx8IG1fdG9Qcm9wZXJ0eVZh
bHVlVHlwZSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkgewotICAgICAgICB0YXJnZXRFbGVtZW50ID0g
dGhpcy0+dGFyZ2V0RWxlbWVudCgpOwotICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0
aGlzLT50YXJnZXRFbGVtZW50KCk7CisgICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpCiAgICAg
ICAgIHBlcmNlbnRhZ2UgPSAxOwpAQCAtMTg5LDcgKzE5MSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAvLyBDYW4ndCBhY2N1bXVsYXRlIG92ZXIgYSBz
dHJpbmcgcHJvcGVydHkuCiAgICAgaWYgKHJlc3VsdHMtPm1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
ID09IEFuaW1hdGVkU3RyaW5nICYmIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlICE9IEFuaW1hdGVk
U3RyaW5nKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
ID09IEFuaW1hdGVkTnVtYmVyKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlw
ZSkgeworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6IHsKICAgICAgICAgLy8gVG8gYW5pbWF0aW9u
IHVzZXMgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBsb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFz
IHRoZSBiYXNlIHZhbHVlLgogICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlv
bikKICAgICAgICAgICAgIG1fZnJvbU51bWJlciA9IHJlc3VsdHMtPm1fYW5pbWF0ZWROdW1iZXI7
CkBAIC0yMjMsNyArMjI2LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5p
bWF0ZQogICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZE51bWJlciA9IG51bWJlcjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0gCi0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09
IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6IHsKICAgICAgICAgaWYg
KGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zyb21Db2xvciA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWRDb2xvcjsKIApAQCAtMjU2LDcgKzI1OSw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJlc3VsdHMtPm1f
YW5pbWF0ZWRDb2xvciA9IGNvbG9yOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmICht
X2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBhdGgpIHsKKyAgICBjYXNlIEFuaW1h
dGVkUGF0aDogewogICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikgewog
ICAgICAgICAgICAgQVNTRVJUKHJlc3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlcik7CiAgICAg
ICAgICAgICBtX2Zyb21QYXRoID0gcmVzdWx0cy0+bV9hbmltYXRlZFBhdGhQb2ludGVyLT5jb3B5
KCk7CkBAIC0yODksNyArMjkyLDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRl
QW5pbWF0ZQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKG1fYW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKSB7CisgICAgY2FzZSBBbmltYXRl
ZFBvaW50czogewogICAgICAgICBpZiAoIXBlcmNlbnRhZ2UpCiAgICAgICAgICAgICByZXN1bHRz
LT5tX2FuaW1hdGVkUG9pbnRzID0gbV9mcm9tUG9pbnRzOwogICAgICAgICBlbHNlIGlmIChwZXJj
ZW50YWdlID09IDEpCkBAIC0zMDYsNiArMzA5LDE3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6
OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQorICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0b3IpOworICAg
ICAgICBBU1NFUlQocmVzdWx0cy0+bV9hbmltYXRlZFR5cGUpOworICAgICAgICAvLyBUYXJnZXQg
ZWxlbWVudCBtaWdodCBoYXZlIGNoYW5nZWQuCisgICAgICAgIG1fYW5pbWF0b3ItPnNldENvbnRl
eHRFbGVtZW50KHRhcmdldEVsZW1lbnQpOworICAgICAgICBtX2FuaW1hdG9yLT5jYWxjdWxhdGVB
bmltYXRlZFZhbHVlKHRoaXMsIHBlcmNlbnRhZ2UsIHJlcGVhdCwgbV9mcm9tVHlwZSwgbV90b1R5
cGUsIHJlc3VsdHMtPm1fYW5pbWF0ZWRUeXBlLCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJ
bmhlcml0VmFsdWUsIG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
ICAgICBBU1NFUlQoYW5pbWF0aW9uTW9kZSA9PSBGcm9tVG9BbmltYXRpb24gfHwgYW5pbWF0aW9u
TW9kZSA9PSBUb0FuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2RlID09IFZhbHVlc0FuaW1hdGlvbik7
CiAgICAgLy8gUmVwbGFjZSAnY3VycmVudENvbG9yJyAvICdpbmhlcml0JyBieSB0aGVpciBjb21w
dXRlZCBwcm9wZXJ0eSB2YWx1ZXMuCiAgICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09
IEluaGVyaXRWYWx1ZSkKQEAgLTM0Nyw3ICszNjEsOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50
OjpjYWxjdWxhdGVGcm9tQW5kCiAKICAgICAvLyBGSVhNRTogTmVlZHMgbW9yZSBzb2xpZCB3YXkg
ZGV0ZXJtaW5lIHRhcmdldCBhdHRyaWJ1dGUgdHlwZS4KICAgICBtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAg
ICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3
aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6
IHsKICAgICAgICAgYm9vbCBmcm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3Vy
cmVudENvbG9yKGZyb21TdHJpbmcpOwogICAgICAgICBib29sIHRvSXNDdXJyZW50Q29sb3IgPSBh
dHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKHRvU3RyaW5nKTsKICAgICAgICAgaWYgKGZyb21J
c0N1cnJlbnRDb2xvcikKQEAgLTM2MiwxNCArMzc3LDE4IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1l
bnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgYm9vbCB0b0lzVmFsaWQgPSBtX3RvQ29sb3Iu
aXNWYWxpZCgpIHx8IHRvSXNDdXJyZW50Q29sb3IgfHwgbV90b1Byb3BlcnR5VmFsdWVUeXBlID09
IEluaGVyaXRWYWx1ZTsKICAgICAgICAgaWYgKChmcm9tSXNWYWxpZCAmJiB0b0lzVmFsaWQpIHx8
ICh0b0lzVmFsaWQgJiYgYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PT0gQW5pbWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5p
bWF0ZWROdW1iZXI6IHsKICAgICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAgICAg
IGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdCh0b1N0cmluZywgbV90b051bWJlciwgbV9udW1i
ZXJVbml0KSkgewogICAgICAgICAgICAgLy8gRm9yIHRvLWFuaW1hdGlvbnMgdGhlIGZyb20gbnVt
YmVyIGlzIGNhbGN1bGF0ZWQgbGF0ZXIKICAgICAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gfHwgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9m
cm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZFBhdGgpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRQYXRo
OiB7CiAgICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNl
ckZhY3Rvcnk6OnNlbGYoKTsKICAgICAgICAgaWYgKGZhY3RvcnktPmJ1aWxkU1ZHUGF0aEJ5dGVT
dHJlYW1Gcm9tU3RyaW5nKHRvU3RyaW5nLCBtX3RvUGF0aCwgVW5hbHRlcmVkUGFyc2luZykpIHsK
ICAgICAgICAgICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxj
dWxhdGVkIGxhdGVyCkBAIC0zNzgsMTMgKzM5NywyMyBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50
OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIH0KICAgICAgICAgbV9mcm9tUGF0aC5jbGVhcigp
OwogICAgICAgICBtX3RvUGF0aC5jbGVhcigpOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0
dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpIHsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFyKCk7
CiAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRzLCBmcm9tU3Ry
aW5nKSkgewogICAgICAgICAgICAgbV90b1BvaW50cy5jbGVhcigpOwogICAgICAgICAgICAgaWYg
KHBvaW50c0xpc3RGcm9tU1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAgICAgZW5zdXJlQW5pbWF0b3IobV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUpLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90
b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBtX2Zyb21TdHJpbmcg
PSBmcm9tU3RyaW5nOwogICAgIG1fdG9TdHJpbmcgPSB0b1N0cmluZzsKQEAgLTQwMiw3ICs0MzEs
OCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAKICAgICBBU1NF
UlQoIWhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1lbnQpOwot
ICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CisgICAg
c3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xv
cjogewogICAgICAgICBib29sIGZyb21Jc0N1cnJlbnRDb2xvciA9IGF0dHJpYnV0ZVZhbHVlSXND
dXJyZW50Q29sb3IoZnJvbVN0cmluZyk7CiAgICAgICAgIGJvb2wgYnlJc0N1cnJlbnRDb2xvciA9
IGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoYnlTdHJpbmcpOwogICAgICAgICBpZiAoZnJv
bUlzQ3VycmVudENvbG9yKQpAQCAtNDE3LDcgKzQ0NywxNCBAQCBib29sIFNWR0FuaW1hdGVFbGVt
ZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGlmICgoIW1fZnJvbUNvbG9yLmlzVmFsaWQo
KSAmJiAhZnJvbUlzQ3VycmVudENvbG9yKQogICAgICAgICAgICAgfHwgKCFtX3RvQ29sb3IuaXNW
YWxpZCgpICYmICFieUlzQ3VycmVudENvbG9yKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDogeworICAgICAgICBlbnN1cmVBbmltYXRvcihtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSktPmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwgZnJv
bVN0cmluZywgYnlTdHJpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIH0KKyAgICBk
ZWZhdWx0OgogICAgICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsKICAgICAgICAgbV9mcm9t
TnVtYmVyID0gMDsKICAgICAgICAgaWYgKCFmcm9tU3RyaW5nLmlzRW1wdHkoKSAmJiAhcGFyc2VO
dW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQp
KQpAQCAtNDM2LDEzICs0NzMsMTUgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jh
c2VWYWx1ZQogICAgIG1fYW5pbWF0ZWRTdHJpbmcgPSBiYXNlU3RyaW5nOwogICAgIEFuaW1hdGVk
QXR0cmlidXRlVHlwZSBsYXN0VHlwZSA9IG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlOwogICAgIG1f
YW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRh
cmdldEVsZW1lbnQpOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRl
ZENvbG9yKSB7CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNh
c2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgbV9hbmltYXRlZENvbG9yID0gYmFzZVN0cmluZy5p
c0VtcHR5KCkgPyBDb2xvcigpIDogU1ZHQ29sb3I6OmNvbG9yRnJvbVJHQkNvbG9yU3RyaW5nKGJh
c2VTdHJpbmcpOwogICAgICAgICBpZiAoaXNDb250cmlidXRpbmcoZWxhcHNlZCgpKSkgewogICAg
ICAgICAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBsYXN0VHlwZTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRl
ZE51bWJlcjoKICAgICAgICAgaWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBtX2FuaW1hdGVkTnVtYmVyID0gMDsKICAgICAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmlu
ZygpOwpAQCAtNDUwLDE1ICs0ODksMjMgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRU
b0Jhc2VWYWx1ZQogICAgICAgICB9CiAgICAgICAgIGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5p
dChiYXNlU3RyaW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVuaXQpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5p
bWF0ZWRQYXRoKSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAg
ICAgICAgIG1fYW5pbWF0ZWRQYXRoLmNsZWFyKCk7CiAgICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0
b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYoKTsKICAgICAgICAgZmFj
dG9yeS0+YnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoYmFzZVN0cmluZywgbV9hbmlt
YXRlZFBhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2FuaW1hdGVkUGF0aFBvaW50
ZXIgPSBtX2FuaW1hdGVkUGF0aC5nZXQoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpIHsKKyAgICB9Cisg
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAgICAgICAgbV9hbmltYXRlZFBvaW50cy5jbGVhcigp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBbmltYXRlZExlbmd0aDogeworICAgICAgICBt
X2FuaW1hdGVkVHlwZSA9IGVuc3VyZUFuaW1hdG9yKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKS0+
Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgbV9hbmltYXRlZEF0dHJp
YnV0ZVR5cGUgPSBBbmltYXRlZFN0cmluZzsKIH0KQEAgLTQ4Myw2ICs1MzAsOCBAQCB2b2lkIFNW
R0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhCiAgICAgICAgIH0KICAgICB9IGVsc2Ug
aWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKQogICAgICAgICB2
YWx1ZVRvQXBwbHkgPSBtX2FuaW1hdGVkUG9pbnRzLmlzRW1wdHkoKSA/IG1fYW5pbWF0ZWRTdHJp
bmcgOiBtX2FuaW1hdGVkUG9pbnRzLnZhbHVlQXNTdHJpbmcoKTsKKyAgICBlbHNlIGlmIChtX2Fu
aW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkKKyAgICAgICAgdmFsdWVUb0Fw
cGx5ID0gbV9hbmltYXRlZFR5cGUtPmxlbmd0aCgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICBlbHNl
CiAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRTdHJpbmc7CiAgICAgCkBAIC01MTQs
OCArNTYzLDE3IEBAIGZsb2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAg
ICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwg
dG8pLmRpc3RhbmNlKCk7CiAgICAgfQorICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9
PSBBbmltYXRlZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIGVuc3VyZUFuaW1hdG9yKG1fYW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlKS0+Y2FsY3VsYXRlRGlzdGFuY2UodGhpcywgZnJvbVN0cmluZywgdG9T
dHJpbmcpOwogICAgIHJldHVybiAtMTsKIH0KLSAgIAorCitTVkdBbmltYXRlZFR5cGVBbmltYXRv
ciogU1ZHQW5pbWF0ZUVsZW1lbnQ6OmVuc3VyZUFuaW1hdG9yKEFuaW1hdGVkQXR0cmlidXRlVHlw
ZSBhbmltYXRlZEF0dHJpYnV0ZVR5cGUpCit7CisgICAgaWYgKCFtX2FuaW1hdG9yKQorICAgICAg
ICBtX2FuaW1hdG9yID0gU1ZHQW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUodGFyZ2V0RWxlbWVudCgp
LCBhbmltYXRlZEF0dHJpYnV0ZVR5cGUsIGF0dHJpYnV0ZU5hbWUoKSk7CisgICAgcmV0dXJuIG1f
YW5pbWF0b3IuZ2V0KCk7Cit9CisKIH0KICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9uIDg4NjExKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDEwICsyNSwxMyBAQAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQog
CiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKKyNpbmNs
dWRlICJTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgogI2luY2x1ZGUgIlNWR1Bv
aW50TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArNDIsOSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVFbGVtZW50
KCk7CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1l
bnQqIHRhcmdldEVsZW1lbnQsIENvbG9yJik7CisgICAgdm9pZCBhZGp1c3RGb3JJbmhlcml0YW5j
ZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgU3RyaW5n
JiB2YWx1ZSk7CiAKIHByb3RlY3RlZDoKICAgICBTVkdBbmltYXRlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTUxLDYgKzU3LDggQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKIAogcHJpdmF0ZToKKyAgICBTVkdBbmltYXRlZFR5
cGVBbmltYXRvciogZW5zdXJlQW5pbWF0b3IoQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKTsKKyAgICAK
ICAgICAvLyBJZiB3ZSBoYXZlICdjdXJyZW50Q29sb3InIG9yICdpbmhlcml0JyBhcyBhbmltYXRp
b24gdmFsdWUsIHdlIG5lZWQgdG8gZ3JhYiB0aGUgdmFsdWUgZHVyaW5nIHRoZSBhbmltYXRpb24K
ICAgICAvLyBzaW5jZSB0aGUgdmFsdWUgY2FuIGJlIGFuaW1hdGVkIGl0c2VsZi4KICAgICBlbnVt
IEFuaW1hdGVkUHJvcGVydHlWYWx1ZVR5cGUgewpAQCAtODIsNiArOTAsMTIgQEAgcHJpdmF0ZToK
ICAgICBTVkdQb2ludExpc3QgbV9mcm9tUG9pbnRzOwogICAgIFNWR1BvaW50TGlzdCBtX3RvUG9p
bnRzOwogICAgIFNWR1BvaW50TGlzdCBtX2FuaW1hdGVkUG9pbnRzOworICAgIAorICAgIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+IG1fZnJvbVR5cGU7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4gbV90b1R5cGU7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9hbmltYXRlZFR5cGU7
CisgICAgCisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yPiBtX2FuaW1hdG9yOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGguY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpICYmIEVO
QUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6U1ZHQW5pbWF0
ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFu
aW1hdGVkTGVuZ3RoLCBjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fbGVuZ3RoTW9kZShTVkdMZW5n
dGg6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkK
K3sKK30KKworc3RhdGljIGlubGluZSBTVkdMZW5ndGgmIHNoYXJlZFNWR0xlbmd0aChTVkdMZW5n
dGhNb2RlIG1vZGUsIGNvbnN0IFN0cmluZyYgdmFsdWVBc1N0cmluZykKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFNWR0xlbmd0aCwgc2hhcmVkTGVuZ3RoLCAoKSk7CisgICAgc2hhcmVkTGVu
Z3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0cmluZywgbW9kZSk7CisgICAgcmV0dXJuIHNo
YXJlZExlbmd0aDsKK30KKworUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
TGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKG5ldyBTVkdMZW5n
dGgobV9sZW5ndGhNb2RlLCBzdHJpbmcpKTsKK30KKwordm9pZCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQoreworICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0b1N0cmlu
Zyk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFu
ZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0
cmluZykKK3sKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgCisgICAgZnJvbSA9
IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGJ5U3RyaW5nKTsKKyAgICAKKyAgICBTVkdMZW5ndGgmIGZyb21MZW5ndGggPSBmcm9t
LT5sZW5ndGgoKTsKKyAgICBTVkdMZW5ndGgmIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOworICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVuZ3RoLnZh
bHVlKG1fY29udGV4dEVsZW1lbnQpICsgZnJvbUxlbmd0aC52YWx1ZShtX2NvbnRleHRFbGVtZW50
KSwgbV9jb250ZXh0RWxlbWVudCwgZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCit2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVs
ZW1lbnQqIHNtaWxFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3Vu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IHRvLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJ
bmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpCit7CisgICAgQVNTRVJUKHNtaWxFbGVt
ZW50KTsKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgU1ZHQW5pbWF0ZUVsZW1l
bnQqIGFuaW1hdGlvbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlRWxlbWVudCo+KHNt
aWxFbGVtZW50KTsKKyAgICAKKyAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUgPSBhbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCk7CisgICAgLy8gVG8gYW5pbWF0aW9uIHVzZXMg
Y29udHJpYnV0aW9ucyBmcm9tIHRoZSBsb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFzIHRoZSBi
YXNlIHZhbHVlLgorICAgIC8vIEZJWE1FOiBhdm9pZCBzdHJpbmcgcGFyc2luZy4KKyAgICBpZiAo
YW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKKyAgICAgICAgZnJvbSA9IGNvbnN0cnVjdEZy
b21TdHJpbmcoYW5pbWF0ZWQtPmxlbmd0aCgpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgCisgICAg
Ly8gUmVwbGFjZSAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVzLgor
ICAgIGZsb2F0IG51bWJlcjsKKyAgICBmbG9hdCBmcm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCku
dmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgZmxvYXQgdG9MZW5ndGggPSB0by0+bGVuZ3Ro
KCkudmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgCisgICAgaWYgKGZyb21Qcm9wZXJ0eUlu
aGVyaXRzKSB7CisgICAgICAgIFN0cmluZyBmcm9tTGVuZ3RoU3RyaW5nOworICAgICAgICBhbmlt
YXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZShtX2NvbnRleHRFbGVtZW50LCBhbmlt
YXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIGZyb21MZW5ndGhTdHJpbmcpOworICAgICAg
ICBmcm9tTGVuZ3RoID0gc2hhcmVkU1ZHTGVuZ3RoKG1fbGVuZ3RoTW9kZSwgZnJvbUxlbmd0aFN0
cmluZykudmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgfQorICAgIGlmICh0b1Byb3BlcnR5
SW5oZXJpdHMpIHsKKyAgICAgICAgU3RyaW5nIHRvTGVuZ3RoU3RyaW5nOworICAgICAgICBhbmlt
YXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZShtX2NvbnRleHRFbGVtZW50LCBhbmlt
YXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHRvTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAg
dG9MZW5ndGggPSBzaGFyZWRTVkdMZW5ndGgobV9sZW5ndGhNb2RlLCB0b0xlbmd0aFN0cmluZyku
dmFsdWUobV9jb250ZXh0RWxlbWVudCk7IAorICAgIH0KKyAgICAKKyAgICBpZiAoYW5pbWF0aW9u
RWxlbWVudC0+Y2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRlKQorICAgICAgICBudW1iZXIg
PSBwZXJjZW50YWdlIDwgMC41ZiA/IGZyb21MZW5ndGggOiB0b0xlbmd0aDsKKyAgICBlbHNlCisg
ICAgICAgIG51bWJlciA9ICh0b0xlbmd0aCAtIGZyb21MZW5ndGgpICogcGVyY2VudGFnZSArIGZy
b21MZW5ndGg7CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGNvcnJlY3QgZm9yIHZh
bHVlcyBhbmltYXRpb24uCisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQo
KSAmJiByZXBlYXRDb3VudCkKKyAgICAgICAgbnVtYmVyICs9IHRvTGVuZ3RoICogcmVwZWF0Q291
bnQ7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgU1ZHTGVuZ3RoJiBhbmltYXRlZFNW
R0xlbmd0aCA9IGFuaW1hdGVkLT5sZW5ndGgoKTsKKyAgICBpZiAoYW5pbWF0aW9uRWxlbWVudC0+
aXNBZGRpdGl2ZSgpICYmIGFuaW1hdGlvbk1vZGUgIT0gVG9BbmltYXRpb24pIHsKKyAgICAgICAg
ZmxvYXQgYW5pbWF0ZWRMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCkudmFsdWUobV9jb250ZXh0
RWxlbWVudCk7CisgICAgICAgIGFuaW1hdGVkTGVuZ3RoICs9IG51bWJlcjsKKyAgICAgICAgYW5p
bWF0ZWRTVkdMZW5ndGguc2V0VmFsdWUoYW5pbWF0ZWRMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQs
IGVjKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5pbWF0ZWRTVkdMZW5ndGguc2V0VmFsdWUobnVt
YmVyLCBtX2NvbnRleHRFbGVtZW50LCBlYyk7CisgICAgQVNTRVJUKCFlYyk7Cit9CisKK2Zsb2F0
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVt
ZW50KiBzbWlsRWxlbWVudCwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHRvU3RyaW5nKQoreworICAgIEFTU0VSVChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmltYXRpb25FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVudCk7ICAgIAorICAgIFNW
R0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSA9IFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlKGFuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSk7CisgICAg
U1ZHTGVuZ3RoIGZyb20gPSBTVkdMZW5ndGgobGVuZ3RoTW9kZSwgZnJvbVN0cmluZyk7CisgICAg
U1ZHTGVuZ3RoIHRvID0gU1ZHTGVuZ3RoKGxlbmd0aE1vZGUsIHRvU3RyaW5nKTsKKyAgICByZXR1
cm4gZmFic2YodG8udmFsdWUobV9jb250ZXh0RWxlbWVudCkgLSBmcm9tLnZhbHVlKG1fY29udGV4
dEVsZW1lbnQpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNW
R19BTklNQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGgu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAko
cmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGgu
aAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTVkdBbmltYXRlZExl
bmd0aF9oCiAKICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdM
ZW5ndGguaCIKIApAQCAtMzUsNyArMzYsMjcgQEAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShT
VkdBbmltYXRlZExlbgogI2RlZmluZSBERUZJTkVfQU5JTUFURURfTEVOR1RIKE93bmVyVHlwZSwg
RE9NQXR0cmlidXRlLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBERUZJTkVfQU5J
TUFURURfUFJPUEVSVFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZS5sb2Nh
bE5hbWUoKSwgU1ZHQW5pbWF0ZWRMZW5ndGgsIFNWR0xlbmd0aCwgVXBwZXJQcm9wZXJ0eSwgTG93
ZXJQcm9wZXJ0eSkKIAorI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorY2xhc3MgU1ZHQW5pbWF0
ZWRMZW5ndGhBbmltYXRvciA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CisgICAg
CitwdWJsaWM6CisgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoKSB7IH0KKworICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmlt
YXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+
JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJp
bmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworICAgIHZpcnR1YWwgdm9p
ZCBjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21W
YWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJv
bVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmluZyk7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkVmFsdWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJ
bmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpOworICAgIHZpcnR1YWwgZmxvYXQgY2Fs
Y3VsYXRlRGlzdGFuY2UoU1ZHU01JTEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworCitwcml2YXRlOgorICAgIFNWR0xlbmd0aE1vZGUg
bV9sZW5ndGhNb2RlOworfTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVO
QUJMRShTVkdfQU5JTUFUSU9OKQogI2VuZGlmIC8vIEVOQUJMRShTVkcpCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0ZWRUeXBlX2gKKyNkZWZpbmUg
U1ZHQW5pbWF0ZWRUeXBlX2gKKworI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFU
SU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNWR0FuaW1hdGVkVHlwZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgo
U1ZHTGVuZ3RoKiBsZW5ndGgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNW
R0FuaW1hdGVkVHlwZShBbmltYXRlZExlbmd0aCwgbGVuZ3RoKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRMZW5ndGgpOworICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKKyAgICB9Cisg
ICAgCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICAKKyAgICBTVkdMZW5ndGgmIGxlbmd0aCgpCisgICAgeworICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuICptX2RhdGEubGVu
Z3RoOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVk
QXR0cmlidXRlVHlwZSB0eXBlLCBTVkdMZW5ndGgqIGxlbmd0aCkKKyAgICAgICAgOiBtX3R5cGUo
dHlwZSkKKyAgICB7CisgICAgICAgIG1fZGF0YS5sZW5ndGggPSBsZW5ndGg7CisgICAgfQorICAg
IAorICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBtX3R5cGU7CisgICAgCisgICAgdW5pb24gRGF0
YVVuaW9uIHsKKyAgICAgICAgRGF0YVVuaW9uKCkKKyAgICAgICAgICAgIDogbGVuZ3RoKDApCisg
ICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IE1vcmUgU1ZH
IHByaW1pdGl2ZSB0eXBlcyBuZWVkIHRvIGJlIGFkZGVkIHN0ZXAgYnkgc3RlcC4KKyAgICAgICAg
U1ZHTGVuZ3RoKiBsZW5ndGg7CisgICAgfSBtX2RhdGE7Cit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJ
T04pCisjZW5kaWYgLy8gU1ZHQW5pbWF0ZWRUeXBlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3JfaAorI2RlZmluZSBTVkdBbmltYXRlZFR5cGVBbmltYXRvcl9oCisKKyNpZiBFTkFCTEUoU1ZH
KSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIK
KyNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Ig
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwgflNW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yKCkgeyB9CisgICAgdmlydHVhbCBQYXNzT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwg
Y29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IGFuaW1hdGVkVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpID0gMDsK
KyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50KiwgY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7CisKKyAg
ICB2b2lkIHNldENvbnRleHRFbGVtZW50KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KSB7IG1f
Y29udGV4dEVsZW1lbnQgPSBjb250ZXh0RWxlbWVudDsgfQorICAgIAorcHJvdGVjdGVkOgorICAg
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlLCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAg
LCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50KQorICAgIHsKKyAgICB9CisKKyAgICBB
bmltYXRlZEF0dHJpYnV0ZVR5cGUgbV90eXBlOworICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVs
ZW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNlbmRpZiAvLyBTVkdBbmltYXRlZFR5cGVB
bmltYXRvcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCwxMiBAQCB2b2lkIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0CiAgICAgfQogCiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgeworICAgICAgICAvLyBQZXIgdGhlIFNNSUwg
c3BlY2lmaWNhdGlvbiwgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGUgc3BhY2UsCisgICAgICAg
IC8vIGFuZCB3aGl0ZSBzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIHNlbWljb2xvbiBzZXBhcmF0b3Jz
LCBpcyBhbGxvd2VkIGFuZCB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgIC8vIGh0dHA6Ly93d3cu
dzMub3JnL1RSL1NWRzExL2FuaW1hdGUuaHRtbCNWYWx1ZXNBdHRyaWJ1dGUKICAgICAgICAgYXR0
ci0+dmFsdWUoKS5zdHJpbmcoKS5zcGxpdCgnOycsIG1fdmFsdWVzKTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92
YWx1ZXNbaV0gPSBtX3ZhbHVlc1tpXS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMjQ4LDcgKzI1Myw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
ZW5kRWxlbWVudEF0KGYKICAgICBhZGRFbmRUaW1lKGVsYXBzZWQoKSArIG9mZnNldCk7CiB9CiAK
LVNWR0FuaW1hdGlvbkVsZW1lbnQ6OkFuaW1hdGlvbk1vZGUgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
YW5pbWF0aW9uTW9kZSgpIGNvbnN0CitBbmltYXRpb25Nb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmFuaW1hdGlvbk1vZGUoKSBjb25zdAogewogICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDEvUkVDLXNtaWwtYW5pbWF0aW9uLTIwMDEwOTA0LyNBbmltRnVuY1ZhbHVlcwogICAgIGlmICho
YXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQpAQCAtMjY0LDcgKzI2OSw3IEBAIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OkFuaW1hdGlvbk1vZGUgU1ZHQW4KICAgICByZXR1cm4gTm9BbmltYXRpb247
CiB9CiAKLVNWR0FuaW1hdGlvbkVsZW1lbnQ6OkNhbGNNb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmNhbGNNb2RlKCkgY29uc3QKK0NhbGNNb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGNNb2Rl
KCkgY29uc3QKIHsgICAgCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGRpc2NyZXRlLCAoImRpc2NyZXRlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBsaW5lYXIsICgibGluZWFyIikpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQsNiAr
NCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+
CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDcgKzM3LDI0IEBACiAj
aW5jbHVkZSAiVW5pdEJlemllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKK2Vu
dW0gQW5pbWF0aW9uTW9kZSB7CisgICAgTm9BbmltYXRpb24sCisgICAgRnJvbVRvQW5pbWF0aW9u
LAorICAgIEZyb21CeUFuaW1hdGlvbiwKKyAgICBUb0FuaW1hdGlvbiwKKyAgICBCeUFuaW1hdGlv
biwKKyAgICBWYWx1ZXNBbmltYXRpb24sCisgICAgUGF0aEFuaW1hdGlvbiAvLyBVc2VkIGJ5IEFu
aW1hdGVNb3Rpb24uCit9OworCitlbnVtIENhbGNNb2RlIHsKKyAgICBDYWxjTW9kZURpc2NyZXRl
LAorICAgIENhbGNNb2RlTGluZWFyLAorICAgIENhbGNNb2RlUGFjZWQsCisgICAgQ2FsY01vZGVT
cGxpbmUKK307CisKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7CiBjbGFzcyBUaW1lQ29u
dGFpbmVyOwogCkBAIC00OSw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBnZXRTdGFydFRp
bWUoKSBjb25zdDsKICAgICBmbG9hdCBnZXRDdXJyZW50VGltZSgpIGNvbnN0OwogICAgIGZsb2F0
IGdldFNpbXBsZUR1cmF0aW9uKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICAKKwogICAgIC8v
IEVsZW1lbnRUaW1lQ29udHJvbAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkVsZW1lbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgYmVnaW5FbGVtZW50QXQoZmxvYXQgb2Zmc2V0KTsKQEAgLTU4LDM2ICs3
NiwzNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBpc1RhcmdldEF0dHJpYnV0ZUNTU1By
b3BlcnR5KFNWR0VsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKKyAgICBib29sIGlz
QWRkaXRpdmUoKSBjb25zdDsKKyAgICBib29sIGlzQWNjdW11bGF0ZWQoKSBjb25zdDsKKyAgICBB
bmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUoKSBjb25zdDsKKyAgICBDYWxjTW9kZSBjYWxjTW9k
ZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0aW9uRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIAotICAgIGVudW0gQ2FsY01vZGUgeyBDYWxjTW9kZURpc2Ny
ZXRlLCBDYWxjTW9kZUxpbmVhciwgQ2FsY01vZGVQYWNlZCwgQ2FsY01vZGVTcGxpbmUgfTsKLSAg
ICBDYWxjTW9kZSBjYWxjTW9kZSgpIGNvbnN0OwotICAgIAotICAgIGVudW0gQXR0cmlidXRlVHlw
ZSB7IEF0dHJpYnV0ZVR5cGVDU1MsIEF0dHJpYnV0ZVR5cGVYTUwsIEF0dHJpYnV0ZVR5cGVBdXRv
IH07CisgICAgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKyAgICAgICAgQXR0cmlidXRlVHlwZUNTUywK
KyAgICAgICAgQXR0cmlidXRlVHlwZVhNTCwKKyAgICAgICAgQXR0cmlidXRlVHlwZUF1dG8KKyAg
ICB9OwogICAgIEF0dHJpYnV0ZVR5cGUgYXR0cmlidXRlVHlwZSgpIGNvbnN0OwotICAgIAorCiAg
ICAgU3RyaW5nIHRvVmFsdWUoKSBjb25zdDsKICAgICBTdHJpbmcgYnlWYWx1ZSgpIGNvbnN0Owog
ICAgIFN0cmluZyBmcm9tVmFsdWUoKSBjb25zdDsKLSAgICAKLSAgICBlbnVtIEFuaW1hdGlvbk1v
ZGUgeyBOb0FuaW1hdGlvbiwgVG9BbmltYXRpb24sIEJ5QW5pbWF0aW9uLCBWYWx1ZXNBbmltYXRp
b24sIEZyb21Ub0FuaW1hdGlvbiwgRnJvbUJ5QW5pbWF0aW9uLCBQYXRoQW5pbWF0aW9uIH07Ci0g
ICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3Q7Ci0gICAgCisKICAgICBTdHJp
bmcgdGFyZ2V0QXR0cmlidXRlQmFzZVZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUYXJnZXRB
dHRyaWJ1dGVBbmltYXRlZFZhbHVlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAgIGJvb2wgaXNB
ZGRpdGl2ZSgpIGNvbnN0OwotICAgIGJvb2wgaXNBY2N1bXVsYXRlZCgpIGNvbnN0OwogCiAgICAg
Ly8gZnJvbSBTVkdTTUlMRWxlbWVudAogICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50
ZXJ2YWwoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQs
IHVuc2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpOwogICAgIHZp
cnR1YWwgdm9pZCBlbmRlZEFjdGl2ZUludGVydmFsKCk7Ci0gICAgCisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURl
Y2xzKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZp
ZWROYW1lJik7CkBAIC05Nyw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdCwg
U1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpID0gMDsKICAgICB2aXJ0dWFsIGZsb2F0IGNh
bGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgLypmcm9tU3RyaW5nKi8sIGNvbnN0IFN0cmlu
ZyYgLyp0b1N0cmluZyovKSB7IHJldHVybiAtMS5mOyB9CiAgICAgdmlydHVhbCBQYXRoIGFuaW1h
dGlvblBhdGgoKSBjb25zdCB7IHJldHVybiBQYXRoKCk7IH0KLSAgICAKKwogICAgIHZvaWQgY3Vy
cmVudFZhbHVlc0ZvclZhbHVlc0FuaW1hdGlvbihmbG9hdCBwZXJjZW50LCBmbG9hdCYgZWZmZWN0
aXZlUGVyY2VudCwgU3RyaW5nJiBmcm9tLCBTdHJpbmcmIHRvKSBjb25zdDsKICAgICB2b2lkIGNh
bGN1bGF0ZUtleVRpbWVzRm9yQ2FsY01vZGVQYWNlZCgpOwogICAgIGZsb2F0IGNhbGN1bGF0ZVBl
cmNlbnRGcm9tS2V5UG9pbnRzKGZsb2F0IHBlcmNlbnQpIGNvbnN0OwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRvckZhY3RvcnlfaAorI2RlZmlu
ZSBTVkdBbmltYXRvckZhY3RvcnlfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19B
TklNQVRJT04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorY2xhc3MgU1ZHQW5pbWF0b3JGYWN0b3J5IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRl
ZFR5cGVBbmltYXRvcj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgYXR0cmlidXRlVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgYW5pbWF0aW9uIHN1cHBvcnQg
Zm9yIGFsbCBTVkcgdW5pdHMuCisgICAgICAgIHN3aXRjaCAoYXR0cmlidXRlVHlwZSkgeworICAg
ICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
KSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRv
cihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOworICAgICAgICB9CisgICAgfQorfTsK
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpICYm
IEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdG9yRmFjdG9yeV9oCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSwx
NSBAQCBTVkdMZW5ndGg6OlNWR0xlbmd0aChTVkdMZW5ndGhNb2RlIG1vZGUsCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBlYyk7
CiB9CisgICAgCit2b2lkIFNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcm
IHZhbHVlQXNTdHJpbmcsIFNWR0xlbmd0aE1vZGUgbW9kZSkKK3sKKyAgICBtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cyA9IDA7CisgICAgbV91bml0ID0gc3RvcmVVbml0KG1vZGUsIExlbmd0aFR5cGVO
dW1iZXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHNldFZhbHVlQXNTdHJpbmco
dmFsdWVBc1N0cmluZywgZWMpOworICAgIEFTU0VSVCghZWMpOworfQogCiBTVkdMZW5ndGg6OlNW
R0xlbmd0aChjb25zdCBTVkdMZW5ndGgmIG90aGVyKQogICAgIDogbV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMob3RoZXIubV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC01NjksNiArNTc4LDQxIEBA
IFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IFNWR0xlbmd0aDoKICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShsZW5ndGgudmFsdWVJblNwZWNpZmllZFVuaXRzKCksIGNz
c1R5cGUpOwogfQogCitTVkdMZW5ndGhNb2RlIFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1h
dGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAg
IHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5ndGhNb2Rl
Rm9yTGVuZ3RoQXR0cmlidXRlTWFwOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoTW9k
ZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAgCisgICAg
aWYgKHNfbGVuZ3RoTW9kZU1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFw
LnNldChTVkdOYW1lczo6eEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3Ro
TW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAg
c19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6Y3hBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpjeUF0dHIsIExlbmd0aE1vZGVI
ZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeEF0dHIsIExl
bmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmR5
QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZH
TmFtZXM6OmZ4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFw
LnNldChTVkdOYW1lczo6ZnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5n
dGhNb2RlTWFwLnNldChTVkdOYW1lczo6ckF0dHIsIExlbmd0aE1vZGVPdGhlcik7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OndpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRo
KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6aGVpZ2h0QXR0ciwgTGVu
Z3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6Ongx
QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdO
YW1lczo6eDJBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjp5MUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0
aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp5MkF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAg
ICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpyZWZYQXR0ciwgTGVuZ3RoTW9kZVdpZHRo
KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6cmVmWUF0dHIsIExlbmd0
aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjptYXJr
ZXJXaWR0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOyAgICAgICAg
CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyLCBM
ZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpz
dGFydE9mZnNldEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgfQorICAgIAorICAgIGlmIChz
X2xlbmd0aE1vZGVNYXAuY29udGFpbnMoYXR0ck5hbWUpKQorICAgICAgICByZXR1cm4gc19sZW5n
dGhNb2RlTWFwLmdldChhdHRyTmFtZSk7CisgICAgCisgICAgcmV0dXJuIExlbmd0aE1vZGVPdGhl
cjsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGgu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9u
IDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVy
dHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODgsOCBAQCBwdWJs
aWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFs
dWVBc1N0cmluZyhjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KKyAgICB2b2lkIHNl
dFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiwgU1ZHTGVuZ3RoTW9kZSk7CisgICAgCiAgICAg
dm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBmbG9hdCB2YWx1ZUlu
U3BlY2lmaWVkVW5pdHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0LCBFeGNl
cHRpb25Db2RlJik7CiAKQEAgLTEwMCw2ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
U1ZHTGVuZ3RoIGZyb21DU1NQcmltaXRpdmVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZSopOwogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB0b0NTU1ByaW1pdGl2ZVZhbHVl
KGNvbnN0IFNWR0xlbmd0aCYpOworICAgIHN0YXRpYyBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGVG
b3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSk7
CiAKIHByaXZhdGU6CiAgICAgYm9vbCBkZXRlcm1pbmVWaWV3cG9ydChjb25zdCBTVkdFbGVtZW50
KiBjb250ZXh0LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaHQpIGNvbnN0OwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gODg2MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMzEgQEAKKzIwMTEtMDYtMTIgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
VkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmltYXRpb24gZm9yIFNWR0xlbmd0
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjgK
KworICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgY29ycmVjdCBiZWhhdmlvciBvZiBT
VkdMZW5ndGggYW5pbWF0aW9ucy4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanM6IEFkZGVkLgorICAg
ICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgor
ICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanM6IEFkZGVkLgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToK
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAg
IChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanM6
IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAg
KGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHNh
bXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAg
KGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToK
KyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRl
VGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tZW1zLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAg
ICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToK
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1leHMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1w
bGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LWluLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6Cisg
ICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIu
anM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAg
ICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanM6IEFkZGVkLgorICAgICAgICAoc2Ft
cGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAg
ICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChzYW1wbGU0KToK
KyAgICAgICAgKHNhbXBsZTUpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tTGVuZ3RoTW9kZUhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9k
ZU90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tY20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1lbXMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1pbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cGMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cGVyY2VudGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1weC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWw6IEFkZGVkLgorCiAy
MDExLTA2LTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENo
cm9taXVtIHJlYmFzZWxpbmUgYWZ0ZXIgcjg1NTYwLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVp
Z2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVu
Z3RoTW9kZUhlaWdodC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVj
dC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1Mg
cmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZh
bC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BB
U1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1MZW5ndGhNb2RlT3RoZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2Rl
T3RoZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNpcmNsZS5yLmFu
aW1WYWwudmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAxMAorUEFT
UyBjaXJjbGUuci5hbmltVmFsLnZhbHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIuYmFzZVZh
bC52YWx1ZSBpcyAxMzIuNDc1CitQQVNTIGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMjU0LjkK
K1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAyNTQuOQorUEFTUyBjaXJjbGUuci5hbmlt
VmFsLnZhbHVlIGlzIDEwCitQQVNTIGNpcmNsZS5yLmJhc2VWYWwudmFsdWUgaXMgMTAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhl
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25U
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVu
Z3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdM
ZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVXaWR0aC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMzAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAzMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1v
ZGVXaWR0aC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwv
aDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVX
aWR0aC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZh
bHVlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRo
IGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBp
cyAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24taW52YWxpZC12YWx1ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorU1ZHIDEuMSBkeW5hbWlj
IGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlk
IHZhbHVlOiBObyBzcGFjZXMgYmVmb3JlIHZhbHVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlk
LXZhbHVlLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9z
dmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisK
K1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBh
ZnRlciBudW1iZXIgYW5kIHVuaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUt
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25U
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVt
YmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBT
VkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRv
LW51bWJlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8
L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8t
bnVtYmVyLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24g
dGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBp
cyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUgaXMgMTQ0LjQ5CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSBpcyAxNDQuNDkKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE4OC45OAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk4CitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1j
bS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1lbXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGVtcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLWVtcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1l
eHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rl
c3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGV4cy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFT
UyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1leHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIGluY2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTcwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MjQwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLWluLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0Fu
aW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAx
LjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLW51bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5
IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFu
aW1hdGlvbiBmcm9tIHB4IHRvIG51bWJlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAx
NTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAy
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXBjLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBjLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE3
MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTcwCitQQVNTIHJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAyNDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI0
MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmlt
YXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tcGMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDM1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMzUwCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyA2MDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDYwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLXBlcmNlbnRhZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9u
IHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGVyY2VudGFnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5p
bWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE2MS4xNQorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgMTYxLjE1CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxODgu
OTcKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE4OC45NworUEFTUyByZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBp
cyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4
LXRvLXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0
aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcHQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1weC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlv
biB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcHguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjMgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5n
dGggYW5pbWF0aW9uIHNldCB3aXRoICd2YWx1ZXMnLCBkaWZmZXJlbnQgdW5pdHMgYW5kIGRpZmZl
cmVudCBjb3VudCBvZiBzcGFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTMwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMzAKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDE1MS4xOAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUx
LjE4CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyA1NzYKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDU3NgorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MjY2LjcKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI2Ni43CitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
dmFsdWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24g
dGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1
ZXMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhl
aWdodC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBA
QAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlSGVp
Z2h0LiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAor
cm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVt
ZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3Vt
ZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJmb250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2si
LCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFu
aW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgImhlaWdodCIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwg
IjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJ0byIsICI1MCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJyZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAg
IHNob3VsZEJlKCJyZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5j
dGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmFu
aW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVj
dC5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LmhlaWdodC5hbmltVmFsLnZh
bHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0
LmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9u
SWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwg
ICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0
Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBs
ZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQor
CisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1
MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90
aGVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACitkZXNjcmlwdGlvbigiVGVzdCBT
VkdMZW5ndGggYW5pbWF0aW9uIG9uIExlbmd0aE1vZGVPdGhlci4iKTsKK2NyZWF0ZVNWR1Rlc3RD
YXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJp
YnV0ZSgid2lkdGgiLCAiNjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdo
dCIsICI0MDAiKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGNpcmNsZSA9IGNyZWF0
ZVNWR0VsZW1lbnQoImNpcmNsZSIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiaWQiLCAiY2lyY2xl
Iik7CitjaXJjbGUuc2V0QXR0cmlidXRlKCJjeCIsICI1MCIpOworY2lyY2xlLnNldEF0dHJpYnV0
ZSgiY3kiLCAiNTAiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoInIiLCAiMTAiKTsKK2NpcmNsZS5z
ZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoIm9uY2xp
Y2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQo
ImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInIiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0
cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJ0byIsICI1MCUiKTsKK2NpcmNsZS5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RT
VkdFbGVtZW50LmFwcGVuZENoaWxkKGNpcmNsZSk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0
CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlv
bnMKKyAgICBzaG91bGRCZSgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIxMCIpOworICAgIHNo
b3VsZEJlKCJjaXJjbGUuci5iYXNlVmFsLnZhbHVlIiwgIjEwIik7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZhbC52YWx1
ZSIsICIxMzIuNDc1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIu
YmFzZVZhbC52YWx1ZSIsICIxMzIuNDc1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIy
NTQuOSIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYmFzZVZhbC52
YWx1ZSIsICIyNTQuOSIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUs
IGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAg
ICAiY2lyY2xlIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAiY2ly
Y2xlIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAiY2lyY2xlIiwg
c2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAiY2lyY2xlIiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlV2lkdGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lk
dGguanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLiIpOworY3JlYXRlU1ZHVGVzdENh
c2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0
IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmb250LXNpemUiLCAiMTBw
eCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2
YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1
dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJmcm9tIiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjUwJSIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjMwMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIzMDAiLCAwLjAxKTsK
K30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMg
PSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxs
YmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFs
aWQtdmFsdWUtMS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlk
IHZhbHVlOiBObyBzcGFjZXMgYmV0d2VlbiBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVhdGVTVkdU
ZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAgICBweCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoInRvIiwgIjIwMCAgIHB4Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9v
dFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0
CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlv
bnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAg
IHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9
CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJh
Y2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5p
bWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dp
bmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQt
dmFsdWUtMi5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oIlRl
c3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZWZv
cmUgdmFsdWUuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3Vt
ZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVh
dGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5p
bWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIgICAx
MDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIiAgIDIwMHB4Iik7CityZWN0LmFw
cGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisK
Ky8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENo
ZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUs
IGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAg
ICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3Qi
LCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52
YWxpZC12YWx1ZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFs
aWQgdmFsdWU6IE5vIHNwYWNlcyBhZnRlciBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVhdGVTVkdU
ZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0
LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCAgICIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoInRvIiwgIjIwMHB4ICAgIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9v
dFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0
CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlv
bnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAg
IHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9
CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJh
Y2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5p
bWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dp
bmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVy
LXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24o
IlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVz
dENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdF
bGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRl
VGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJi
ZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
dG8iLCAiMjAwIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQu
YXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBz
YW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91
bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwg
IjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50
SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3Qi
LCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxl
Ml0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1jbS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBT
ZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIs
ICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJp
YnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4i
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFy
IGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRl
TmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjVjbSIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNDQuNDkiLCAwLjAx
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MTQ0LjQ5IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4OC45OCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxODgu
OTgiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWVtcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIGVtcy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8v
IFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVl
biIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0
dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3Jl
YXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFu
aW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAw
cHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMGVtIik7CityZWN0LmFwcGVuZENo
aWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNl
dHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGlu
aXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZh
bHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAi
MTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlv
biBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAg
Ly8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAg
ICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
My45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAg
InJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVk
VmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRy
aWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1leHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1
IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZXhz
LiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFy
IHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQi
LCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
Zm9udC1zaXplIiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoInRvIiwgIjQwZXgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxl
bWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0
aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAg
IHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVs
ZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAi
cmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBz
YW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsK
KworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0
ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4u
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xl
bmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBpbmNoLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsK
KworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJj
bGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIy
LjVpbiIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVu
ZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxl
MSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUo
InJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNzAi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiMTcwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyNDAi
LCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0
ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBz
YW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVu
QW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMK
K3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJl
ci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIG51bWJlci4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNl
KCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVu
dCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmls
bCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3Qo
KSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4i
LCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8i
LCAiMjAwIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBw
ZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1w
bGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRC
ZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1
MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIw
MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBl
Y3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQs
IHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBz
YW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBy
dW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3lu
Yword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wYy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gcGMuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1
cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIw
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFu
aW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFt
ZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjE1cGMiKTsKK3Jl
Y3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0
KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAg
Ly8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTcwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE3MCIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7Cit9
CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJh
Y2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRl
c3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0
VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGVyY2VudGFnZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRh
Z2UuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNW
R0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLiIpOworY3JlYXRlU1ZHVGVz
dENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdF
bGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRl
VGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJi
ZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJ0byIsICIyMDAlIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBs
ZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IiwgIjM1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIzNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiNjAwIiwg
MC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUi
LCAiNjAwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0
Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBs
ZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisg
ICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3Qg
YXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8g
U2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7
CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngi
LCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVu
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3Zh
ciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0
ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImZyb20iLCAiMTAwcHQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI1Y20iKTsK
K3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChy
ZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7Cisg
ICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTYxLjE1IiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwg
IjE2MS4xNSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxODguOTciLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTg4
Ljk3IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIs
IHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUy
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAg
IHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFz
eW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLXB4LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNl
dHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4Iiwg
IjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIg
YW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVO
YW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwcHgiKTsK
K3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChy
ZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7Cisg
ICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1
MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7
Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVz
ID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2Fs
bGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlv
blRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cu
c2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1
ZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNjUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gc2V0IHdpdGgg
J3ZhbHVlcycsIGRpZmZlcmVudCB1bml0cyBhbmQgZGlmZmVyZW50IGNvdW50IG9mIHNwYWNlcy4i
KTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBy
ZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwg
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9u
Y2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJk
dXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCAiMTAwcHg7ICAxMzAg
IDs0Y20gIDs2aW47IDIwMHB0Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNW
R0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0Citm
dW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMK
KyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIiwgIjEzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MTUxLjE4IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjE1MS4xOCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU0KCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICI1NzYi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUiLCAiNTc2IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTUoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI2Ni43IiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjI2
Ni43IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIs
IHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEuMCwgICAgInJlY3QiLCBzYW1wbGUy
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlM10sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMy4wLCAgICAicmVjdCIsIHNhbXBsZTRdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGU1XSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96919</attachid>
            <date>2011-06-12 22:35:51 -0700</date>
            <delta_ts>2011-06-12 23:49:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110613073547.patch</filename>
            <type>text/plain</type>
            <size>128446</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE0IEBACisyMDExLTA2LTEyICBEaXJrIFNj
aHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU1ZHQW5pbWF0aW9uIHNob3VsZCB1c2UgZGlyZWN0IHVuaXQgYW5p
bWF0aW9uIGZvciBTVkdMZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYxMzY4CisKKyAgICAgICAgRm9yIFNNSUwgYW5pbWF0aW9ucyBvZiBhdHRy
aWJ1dGVzIG9yIENTUyBwcm9wZXJ0aWVzIGluIFNWRyB3ZSBoYXZlIGEgbG90IG9mIHRyYW5zZm9y
bWF0aW9ucyBvZiB0aGUgdmFsdWVzLiBBdCBmaXJzdCB0aGUgdGFyZ2V0IGVsZW1lbnQKKyAgICAg
ICAgZ2V0cyBhc2tlZCBmb3IgaXRzIGN1cnJlbnQgdmFsdWUuIFRoaXMgdmFsdWUgZ2V0cyB0cmFu
c2Zvcm1lZCB0byBhIHN0cmluZy4gSW4gU1ZHQW5pbWF0ZUVsZW1lbnQgd2UgdHJ5IHRvIHBhcnNl
IHRoaXMgc3RyaW5nIGFnYWluIGFuZAorICAgICAgICBzZXBlcmF0ZSBpdCBpbnRvIGEgbnVtYmVy
IGFuZCBpdHMgdW5pdC4gSW4gdGhlIGZ1cnRoZXIgc3RlcHMgd2UganVzdCBhbmltYXRlIHRoZSBu
dW1iZXIuIFRoaXMgbnVtYmVyIGdldHMgdHJhbnNmb3JtZWQgYmFjayB0byBhIHN0cmluZworICAg
ICAgICB0b2dldGhlciB3aXRoIHRoZSBwYXJzZWQgdW5pdC4gVGhlIHN0cmluZyBnZXRzIHBhc3Nl
ZCBiYWNrIHRvIHRoZSB0YXJnZXQgZWxlbWVudCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHBh
cnNpbmcgdGhlIHBhc3NlZCBzdHJpbmcgYmFjaworICAgICAgICB0byBhIHZhbHVlIGFzIGEgU1ZH
IHByaW1pdGl2ZSBkYXRhdHlwZSAobGlrZSBTVkdMZW5ndGgsIFNWR051bWJlciwgU1ZHQW5nbGUs
IFNWR0NvbG9yLCAuLi4pLCByZWxheW91dCBhbmQgcmVyZW5kZXJpbmcuCisKKyAgICAgICAgSW4g
c2hvcnQ6IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgLT4gc3RyaW5nIC0+IG51bWJlciArIHVuaXQg
YW5pbWF0aW9uIC0+IHN0cmluZyAtPiBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggZG9lcyBub3QgYXR0ZW5kIHRvIHRoZSBzdHJpbmcgdHJhbnNmb3JtYXRpb25z
LCBidXQgYWRkcmVzc2VzIHRoZSBwYXJzaW5nIG9mIHRoZSBzdHJpbmcgYmFjayB0byBhIG51bWJl
ciBhbmQgdW5pdCBpbiB0aGUKKyAgICAgICAgU1ZHIGFuaW1hdGlvbiBjb2RlLiBXZSBzaG91bGRu
J3QgYWRkIGFuIG93biBwYXJzZXIgdG8gU1ZHQW5pbWF0ZUVsZW1lbnQgYnV0IHNob3VsZCB1c2Ug
dGhlIHJlc3BvbnNpYmxlIHBhcnNlcnMgb2YgdGhlIFNWRyBwcmltaXRpdmUgZGF0YXR5cGVzLgor
ICAgICAgICBBbHNvIHRoZSBjdXJyZW50IHBhcnNlciBvZiBTVkdBbmltYXRlRWxlbWVudCBkb2Vz
IG5vdCBoYW5kbGUgbW9zdCB1bml0IHR5cGVzLCBub3IgaXMgaXQgcG9zc2libGUgdG8gYW5pbWF0
ZSBsaXN0cyBsaWtlIFNWR0xlbmd0aExpc3Qgd2l0aCB0aGUKKyAgICAgICAgcGFyc2VkIGNvbnRl
bnQuIEFuIGFuaW1hdGlvbiBvZiB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgdW5pdCB0eXBlcyBpcyBu
b3QgcG9zc2libGU6CisKKyAgICAgICAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4KKyAg
ICAgICAgICAgIDxhbmltYXRlIGFuaW1hdGVBdHRyaWJ1dGU9IndpZHRoIiBmcm9tPSIyMHB4IiB0
bz0iMTAlIiBkdXI9IjRzIi8+CisgICAgICAgIDwvcmVjdD4KKworICAgICAgICBGb3IgdGhlIGV4
YW1wbGUgYWJvdmUgd2Ugd291bGQgYW5pbWF0ZSB0aGUgcmVjdCB3aWR0aCBmcm9tIDIwcHggdG8g
MTBweCBpbiA0IHNlY29uZHMgYW5kIGp1bXAgdG8gdGhlIDEwJSBvZiB0aGUgdmlldyBwb3J0IGF0
IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbi4KKyAgICAgICAgV2l0aCB1c2luZyB0
aGUgcGFyc2VycyBvZiBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlcyB3ZSB3aWxsIGFsc28gdXNlIHRo
ZSBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlcyBpbiB0aGUgYW5pbWF0aW9uIGNvZGUgaXRzZWxmLiBB
bmQgdGhhdCBtYWtlcworICAgICAgICBpdCBwb3NzaWJsZSB0byBkbyBzdWNoIGFuaW1hdGlvbnMu
CisKKyAgICAgICAgSW4gc2hvcnQ6IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgLT4gc3RyaW5nIC0+
IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgYW5pbWF0aW9uIC0+IHN0cmluZyAtPiBTVkcgcHJpbWl0
aXZlIGRhdGF0eXBlLgorCisgICAgICAgIEl0IHdpbGwgYmUgZWFzaWVyIHRvIGF2b2lkIHRoZSBz
dHJpbmcgdHJhbnNmb3JtYXRpb24gb25jZSBhbGwgU1ZHIHByaW1pdGl2ZSBkYXRhdHlwZXMgYXJl
IHN1cHBvcnRlZC4KKworICAgICAgICBUbyBoaWRlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBhbmlt
YXRpb24gY29kZSwgdGhlIGFjdHVhbCBjYWxjdWxhdGlvbnMgb2YgU1ZHIGFuaW1hdGlvbiBzcGVj
aWZpYyB2YWx1ZXMgd2FzIG1vdmVkIHRvIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgIFNWR0Fu
aW1hdGVkKiBmaWxlcyAoU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGZvciBTVkdMZW5ndGgpLiBTVkdB
bmltYXRlRWxlbWVudCBpdHNlbGYganVzdCB3b3JrcyB3aXRoIHRoZSBuZXcgYWRkZWQgZ2VuZXJp
YyBkYXRhdHlwZSBTVkdBbmltYXRpb25UeXBlLgorICAgICAgICBTVkdBbmltYXRvckZhY3Rvcnkg
Y3JlYXRlcyB0aGUgU1ZHIHByaW1pdGl2ZSBkYXRhdHlwZSBzcGVjaWZpYyBhbmltYXRvcnMuIFRo
aXMgbWFrZXMgdGhlIG1haW4gYW5pbWF0aW9uIGNvZGUgYSBsb3QgbW9yZSByZWFkYWJsZSBhbmQg
CisgICAgICAgIG1haW50YWluYWJsZS4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2ggSSBhZGQg
dGhlIEFuaW1hdG9yRmFjdG9yeSBhbmQgY29udmVydCBTVkdMZW5ndGggYW5pbWF0aW9uIHRvIHRo
ZSBuZXcgY29uY2VwdC4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwKKyAgICAgICAg
ICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRo
Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0xLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwKKyAgICAg
ICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51
bWJlci5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWNtLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tZW1zLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAorICAgICAgICAgICAg
ICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAor
ICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
Yy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwKKyAgICAgICAgICAgICAgIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwKKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OiBBZGRlZCBuZXcgZmlsZXMgdG8gYnVpbGQgc3lzdGVtLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbGxJbk9uZS5jcHA6
IEFkZGVkIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBmb3IgV2luIGFuZCBvdGhlciBidWlsZCBzeXN0
ZW1zLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXJzZU51bWJlclZhbHVlQW5kVW5pdCk6IFJlbW92ZSBwYXJzaW5nIGNvZGUgZm9yIFNW
R0xlbmd0aC4gVXNlIFNWR0xlbmd0aCBwYXJzZXIgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKTogTWFkZSBhZGp1c3RG
b3JDdXJyZW50Q29sb3IgcHVibGljIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZENvbG9y
LgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHlWYWx1ZSk6IElubGluZSBmdW5jdGlvbiB0
byBnZXQgY29tcHV0ZWRTdHlsZSBvZiBDU1MgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9ySW5oZXJpdGFuY2UpOiBNYWRlIGFkanVzdEZvcklu
aGVyaXRhbmNlIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlKTogU1ZHTGVuZ3RoIG5lZWQgc3BlY2lhbCBoYW5kbGluZyB2aWEgU1ZHQW5pbWF0b3Igbm93
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUpOiBDbGVhbnVwLiBNYWtlIHVzZSBvZiBTVkdBbmltYXRvciBmb3IgU1ZHTGVuZ3RoLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1Zh
bHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUZyb21BbmRCeVZhbHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKTogRGl0dG8uCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0
aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNoYXJlZFNWR0xlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmg6IEFkZGVkIG5ldyBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yIHdoaWNoIGlz
IHJlc3BvbnNpYmxlIGZvciB0aGUgYWN0dWFsIGFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6On5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0
IHR5cGUgZm9yIGFuaW1hdGlvbnMgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDogQWRkZWQuIEJh
c2UgY2xhc3MgZm9yIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgYW5kIGZ1dHVyZSBTVkcgdW5p
dCBhbmltYXRvcnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6
flNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yOjpzZXRDb250ZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IpOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogV2UgZG8gbm90IHVzZSBwYXJzZU51
bWJlclZhbHVlQW5kVW5pdCBmb3IgU1ZHTGVuZ3RoIG5vdy4gSGF2ZSB0byBzdHJpcCB3aGl0ZSBz
cGFjZXMgaGVyZS4gV2hpdGVzcGFjZXMgc2hvdWxkbid0CisgICAgICAgICAgYmUgc3RyaXBwZWQg
b24gdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOiAnZnJvbScsICd0bycgYW5kICdieScuIFRoaXMg
aXMgbm90IHRoZSBjYXNlIGZvciBTVkdMZW5ndGggYW55bW9yZS4gQWRkZWQgbmV3IHRlc3RzIHRv
IGNoZWNrIHRoaXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVt
ZW50OjphbmltYXRpb25Nb2RlKTogRW51bSBpcyBhY2Nlc3NpYmxlIGluIFdlYkNvcmUgbmFtZXNw
YWNlIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGNNb2Rl
KTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5nKTogTmV3IHNldHRl
ciB3aXRoIHN0cmluZyBhbmQgU1ZHTGVuZ3RoTW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xl
bmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKTogR2V0IExlbmd0aE1v
ZGUgZm9yIFNWR0xlbmd0aCBkZXBlbmRpbmcgb24gdGhlIGF0dHJpYnV0ZSBuYW1lLgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGguaDoKKwogMjAxMS0wNi0xMSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fi
b2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQyLDYgKzE2NDIsNyBAQCBJRiAo
RU5BQkxFX1NWRykKICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKICAgICAgICAg
c3ZnL1NWR0FuZ2xlLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAK
KyAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMzMjAsNiArMzMyMCw3IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVh
bi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oIFwKQEAgLTMzMjgs
NiArMzMyOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUmVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
aCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
aCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBcCkBA
IC0zMzM2LDYgKzMzMzksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaCBc
CiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xp
cFBhdGhFbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA4ODYxMSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTA1NCw2
ICsxMDU0LDkgQEAKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRSZWN0LmgnLAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZFN0cmluZy5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0LmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFR5cGUu
aCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgnLAorICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Nv
bG9yLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaCcsCiAgICAg
ICAgICAgICAnc3ZnL1NWR0VsZW1lbnQuaCcsCkBAIC01Njc2LDYgKzU2NzksNyBAQAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmdsZS5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
aCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5j
cHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzMTcsMTAgKzIzMTcsMTMgQEAgSEVB
REVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZWRTdHJpbmcuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKyAgICBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
IFwKICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKICAg
ICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5
LmggXAogICAgIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmggXAogICAgIHN2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0NvbG9yLmggXApAQCAtMzI2NCw2ICszMjY3LDcgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAgIHN2Zy9TVkdBbHRH
bHlwaEVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuZ2xlLmNwcCBcCiAgICAg
ICAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBcCisgICAgICAgICAgICAg
IHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAg
XApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTY1MjQ2LDYgKzY1MjQ2LDE0IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRl
ZFR5cGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3ZnXFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRlRWxlbWVudC5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KQEAgLTY1MjYyLDYgKzY1MjcwLDEwIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRvckZhY3Rvcnku
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Zn
XFNWR0NpcmNsZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4
ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiwxMCBAQAogCQk0MUY1ODRDNzEwNDY1MkNC
MDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVz
c2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJNDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1IC8qIFJl
bmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJv
bHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFD
b250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLzsgfTsK
KwkJNDM0QzdEMzcxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0QzdEMzYxM0E1NDAz
NzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovOyB9OworCQk0MzU4NTRERDEzQTRE
REMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1ODU0RDkxM0E0RERDMDAwODdGRjgyIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoLmNwcCAqLzsgfTsKKwkJNDM1ODU0REUxM0E0RERDMDAwODdGRjgyIC8q
IFNWR0FuaW1hdGVkVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM1ODU0REExM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZS5oICov
OyB9OworCQk0MzU4NTRERjEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNTg1
NERCMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovOyB9Owog
CQk0MzU4RTg2QTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4Njcx
MzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJ
NDM1OEU4NkIxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2ODEz
NjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLzsgfTsKIAkJ
NDM1OEU4NkMxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1
OEU4NjkxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRlcm5h
bC5oICovOyB9OwpAQCAtNzQ4OCw2ICs3NDkyLDEwIEBACiAJCTQxRjU4NEM2MTA0NjUyQ0IwMDlD
QUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVzc2FnZVBvcnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEzMDNEMTMxNkMyOUMwMEMwQkZD
NSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDM0QzdEMzYxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM1ODU0RDkxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1h
dGVkTGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0Fu
aW1hdGVkTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM1ODU0REEx
M0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY3MTM2MEEyMTYwMEU0
NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM1OEU4NjgxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcz
OTcsNiArMTc0MDUsNyBAQAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmlkbCAqLywKIAkJCQkwODIzRDE1ODEyN0FENkFDMDAwRUJDOTUgLyog
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi8sCiAJCQkJQjIyMjc3RTkwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkSW50ZWdlci5pZGwgKi8sCisJCQkJNDM1ODU0RDkxM0E0RERDMDAwODdGRjgy
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLywKIAkJCQkwODkwMjFBODEyNkVGNURFMDA5MkQ1
RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLywKIAkJCQlCMjIyNzdFQTBEMDBCRjFGMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaWRsICovLAogCQkJCTA4OTAyMUFDMTI2RUY1RTkwMDky
RDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCAqLywKQEAgLTE3NDEzLDYgKzE3NDIyLDgg
QEAKIAkJCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRs
ICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCAqLywKIAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmlkbCAqLywKKwkJCQk0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyogU1ZH
QW5pbWF0ZWRUeXBlLmggKi8sCisJCQkJNDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLApAQCAtMTc0MjQsNiArMTc0MzUsNyBAQAogCQkJ
CUIyMjI3ODAxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzgwMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5oICov
LAogCQkJCUIyMjI3ODAzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50Lmlk
bCAqLywKKwkJCQk0MzRDN0QzNjEzQTU0MDM3MDBBMEQ4NjYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5
LmggKi8sCiAJCQkJQjIyMjc4MDQwRDAwQkYxRjAwNzFCNzgyIC8qIHN2Z2F0dHJzLmluICovLAog
CQkJCUIyMjI3ODA1MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdDaXJjbGVFbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzgwNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQ2lyY2xlRWxlbWVudC5oICovLApA
QCAtMjMxNzMsNiArMjMxODUsOSBAQAogCQkJCUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBK
U0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QTg1QjZDMTM4RDU3M0Ew
MEVDQjdCMyAvKiBTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBODVCNzgxMzhE
NThFRTAwRUNCN0IzIC8qIEpTU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzNTg1
NERFMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQzNTg1NERGMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDM0QzdEMzcxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1h
dG9yRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNTkwNiw2ICsyNTkyMSw3IEBACiAJCQkJ
RkRGMDlEQzgxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0OUE4NUI2QjEzOEQ1NzNBMDBFQ0I3QjMgLyogU3RyZWFtRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBODVCNzcxMzhENThFRTAwRUNCN0IzIC8qIEpTU3RyZWFt
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDM1ODU0REQxM0E0RERDMDAwODdGRjgyIC8q
IFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJTVkdBbHRHbHlwaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNs
dWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZExl
bmd0aC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5j
cHAJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRvckZhY3RvcnkuaCIKICNpbmNs
dWRlICJTVkdDb2xvci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFy
c2VyVXRpbGl0aWVzLmgiCkBAIC03MCw4ICs3Miw2IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVy
VmFsdWVBbmRVbml0KGNvbnMKICAgICBTdHJpbmcgcGFyc2UgPSBpbi5zdHJpcFdoaXRlU3BhY2Uo
KTsKICAgICBpZiAocGFyc2UuZW5kc1dpdGgoIiUiKSkKICAgICAgICAgdW5pdExlbmd0aCA9IDE7
Ci0gICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgoInB4IikgfHwgcGFyc2UuZW5kc1dpdGgoInB0
IikgfHwgcGFyc2UuZW5kc1dpdGgoImVtIikpCi0gICAgICAgIHVuaXRMZW5ndGggPSAyOwogICAg
IGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJkZWciKSB8fCBwYXJzZS5lbmRzV2l0aCgicmFkIikp
CiAgICAgICAgIHVuaXRMZW5ndGggPSAzOwogICAgIGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJn
cmFkIikpCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFsdWVBbmRV
bml0KGNvbnMKICAgICByZXR1cm4gb2s7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RG
b3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImIGNvbG9yKQor
dm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQq
IHRhcmdldEVsZW1lbnQsIENvbG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVu
dCk7CiAgICAgCkBAIC05OSw3ICs5OSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9y
Q3VycmVudENvbG9yCiAgICAgICAgIGNvbG9yID0gQ29sb3IoKTsKIH0KIAotc3RhdGljIGlubGlu
ZSB2b2lkIGFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCitzdGF0aWMg
aW5saW5lIHZvaWQgZ2V0UHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBzdmdQYXJlbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNT
RVJUKHN2Z1BhcmVudC0+aXNTdHlsZWQoKSk7CisgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2
Z1BhcmVudCktPmdldFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxv
Y2FsTmFtZSgpKSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVy
aXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21l
bnQgdGhlIGNvbXB1dGVkIHN0eWxlIGdldHMgcmV0dXJuZWQgYXMgYSBTdHJpbmcgYW5kIG5lZWRz
IHRvIGdldCBwYXJzZWQgYWdhaW4uCiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50
IHRvIHdvcmsgd2l0aCB0aGUgdmFsdWUgdHlwZSBkaXJlY3RseSB0byBhdm9pZCB0aGUgU3RyaW5n
IHBhcnNpbmcuCkBAIC0xMTEsNyArMTE3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZv
ckluaGVyaXRhbmNlKAogCiAgICAgU1ZHRWxlbWVudCogc3ZnUGFyZW50ID0gc3RhdGljX2Nhc3Q8
U1ZHRWxlbWVudCo+KHBhcmVudCk7CiAgICAgaWYgKHN2Z1BhcmVudC0+aXNTdHlsZWQoKSkKLSAg
ICAgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCktPmdldFByb3BlcnR5VmFsdWUo
Y3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKSk7CisgICAgICAgIGdldFBy
b3BlcnR5VmFsdWUoc3ZnUGFyZW50LCBhdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wg
U1ZHQW5pbWF0ZUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CkBAIC0xMzYs
MTYgKzE0MiwxNyBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CiAgICAgY2FzZSBB
bmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXJMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbzoKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICBjYXNlIEFuaW1h
dGVkU3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwogICAgIGNhc2UgQW5p
bWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVk
TGVuZ3RoOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZE51bWJlcjsKICAgICBjYXNlIEFuaW1hdGVkUGF0aDoKQEAgLTE1NCw4ICsxNjEsOCBAQCBBbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZFBvaW50czsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZENvbG9yOwotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgIGNhc2UgQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0OgorICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgICAgICAvLyBBbmlt
YXRpb25zIG9mIHRyYW5zZm9ybSBsaXN0cyBhcmUgbm90IGFsbG93ZWQgZm9yIDxhbmltYXRlPiBv
ciA8c2V0PgogICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5odG1s
I0FuaW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCiAgICAgICAgIHJldHVybiBBbmltYXRl
ZFVua25vd247CkBAIC0xNzEsMTQgKzE3OCw5IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUFuaW1hdGUKICAgICBBU1NFUlQocmVzdWx0RWxlbWVudCk7CiAgICAgYm9vbCBpc0lu
Rmlyc3RIYWxmT2ZBbmltYXRpb24gPSBwZXJjZW50YWdlIDwgMC41ZjsKICAgICBBbmltYXRpb25N
b2RlIGFuaW1hdGlvbk1vZGUgPSB0aGlzLT5hbmltYXRpb25Nb2RlKCk7Ci0gICAgU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCA9IDA7Ci0gICAgLy8gQXZvaWQgdGFyZ2V0RWxlbWVudCgpIGNhbGwg
aWYgcG9zc2libGUuIEl0IG1pZ2h0IHNsb3cgZG93biBhbmltYXRpb25zLgotICAgIGlmIChtX2Zy
b21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUgfHwgbV90b1Byb3BlcnR5VmFsdWVU
eXBlID09IEluaGVyaXRWYWx1ZQotICAgICAgICB8fCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9
PSBDdXJyZW50Q29sb3JWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gQ3VycmVudENv
bG9yVmFsdWUpIHsKLSAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQo
KTsKLSAgICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgp
OworICAgIGlmICghdGFyZ2V0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
IChoYXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQogICAgICAgICBwZXJjZW50YWdlID0gMTsK
QEAgLTE4OSw3ICsxOTEsOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmlt
YXRlCiAgICAgLy8gQ2FuJ3QgYWNjdW11bGF0ZSBvdmVyIGEgc3RyaW5nIHByb3BlcnR5LgogICAg
IGlmIChyZXN1bHRzLT5tX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFN0cmluZyAm
JiBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSAhPSBBbmltYXRlZFN0cmluZykKICAgICAgICAgcmV0
dXJuOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikg
eworICAgIHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyOiB7CiAgICAgICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMg
ZnJvbSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KICAg
ICAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zy
b21OdW1iZXIgPSByZXN1bHRzLT5tX2FuaW1hdGVkTnVtYmVyOwpAQCAtMjIzLDcgKzIyNiw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJl
c3VsdHMtPm1fYW5pbWF0ZWROdW1iZXIgPSBudW1iZXI7CiAgICAgICAgIHJldHVybjsKICAgICB9
IAotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7Cisg
ICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlID09IFRv
QW5pbWF0aW9uKQogICAgICAgICAgICAgbV9mcm9tQ29sb3IgPSByZXN1bHRzLT5tX2FuaW1hdGVk
Q29sb3I7CiAKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxj
dWxhdGVBbmltYXRlCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkQ29sb3IgPSBjb2xv
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgY2FzZSBBbmltYXRlZFBhdGg6IHsKICAgICAgICAg
aWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHRzLT5tX2FuaW1hdGVkUGF0aFBvaW50ZXIpOwogICAgICAgICAgICAgbV9mcm9tUGF0aCA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlci0+Y29weSgpOwpAQCAtMjg5LDcgKzI5Miw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9
PSBBbmltYXRlZFBvaW50cykgeworICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAg
aWYgKCFwZXJjZW50YWdlKQogICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cyA9
IG1fZnJvbVBvaW50czsKICAgICAgICAgZWxzZSBpZiAocGVyY2VudGFnZSA9PSAxKQpAQCAtMzA2
LDYgKzMwOSwxNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdHMt
Pm1fYW5pbWF0ZWRUeXBlKTsKKyAgICAgICAgLy8gVGFyZ2V0IGVsZW1lbnQgbWlnaHQgaGF2ZSBj
aGFuZ2VkLgorICAgICAgICBtX2FuaW1hdG9yLT5zZXRDb250ZXh0RWxlbWVudCh0YXJnZXRFbGVt
ZW50KTsKKyAgICAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSh0aGlzLCBw
ZXJjZW50YWdlLCByZXBlYXQsIG1fZnJvbVR5cGUsIG1fdG9UeXBlLCByZXN1bHRzLT5tX2FuaW1h
dGVkVHlwZSwgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlLCBtX3RvUHJv
cGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CiAgICAgQVNTRVJUKGFuaW1hdGlv
bk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24g
fHwgYW5pbWF0aW9uTW9kZSA9PSBWYWx1ZXNBbmltYXRpb24pOwogICAgIC8vIFJlcGxhY2UgJ2N1
cnJlbnRDb2xvcicgLyAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVz
LgogICAgIGlmIChtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpCkBAIC0z
NDcsNyArMzYxLDggQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAog
CiAgICAgLy8gRklYTUU6IE5lZWRzIG1vcmUgc29saWQgd2F5IGRldGVybWluZSB0YXJnZXQgYXR0
cmlidXRlIHR5cGUuCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmlt
YXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRy
aWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRy
aWJ1dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGJvb2wgZnJv
bUlzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihmcm9tU3RyaW5n
KTsKICAgICAgICAgYm9vbCB0b0lzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJl
bnRDb2xvcih0b1N0cmluZyk7CiAgICAgICAgIGlmIChmcm9tSXNDdXJyZW50Q29sb3IpCkBAIC0z
NjIsMTQgKzM3NywxOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5k
CiAgICAgICAgIGJvb2wgdG9Jc1ZhbGlkID0gbV90b0NvbG9yLmlzVmFsaWQoKSB8fCB0b0lzQ3Vy
cmVudENvbG9yIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWU7CiAgICAg
ICAgIGlmICgoZnJvbUlzVmFsaWQgJiYgdG9Jc1ZhbGlkKSB8fCAodG9Jc1ZhbGlkICYmIGFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOiB7CiAgICAg
ICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAgICAgICBpZiAocGFyc2VOdW1iZXJWYWx1
ZUFuZFVuaXQodG9TdHJpbmcsIG1fdG9OdW1iZXIsIG1fbnVtYmVyVW5pdCkpIHsKICAgICAgICAg
ICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxh
dGVyCiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uIHx8IHBh
cnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJV
bml0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgIH0gZWxz
ZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBTVkdQYXRo
UGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0b3J5OjpzZWxmKCk7CiAg
ICAgICAgIGlmIChmYWN0b3J5LT5idWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyh0b1N0
cmluZywgbV90b1BhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpKSB7CiAgICAgICAgICAgICAvLyBGb3Ig
dG8tYW5pbWF0aW9ucyB0aGUgZnJvbSBudW1iZXIgaXMgY2FsY3VsYXRlZCBsYXRlcgpAQCAtMzc4
LDEzICszOTcsMjMgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAog
ICAgICAgICB9CiAgICAgICAgIG1fZnJvbVBhdGguY2xlYXIoKTsKICAgICAgICAgbV90b1BhdGgu
Y2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1h
dGVkUG9pbnRzKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUG9p
bnRzOiB7CiAgICAgICAgIG1fZnJvbVBvaW50cy5jbGVhcigpOwogICAgICAgICBpZiAocG9pbnRz
TGlzdEZyb21TVkdEYXRhKG1fZnJvbVBvaW50cywgZnJvbVN0cmluZykpIHsKICAgICAgICAgICAg
IG1fdG9Qb2ludHMuY2xlYXIoKTsKICAgICAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0Rh
dGEobV90b1BvaW50cywgdG9TdHJpbmcpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIGVuc3VyZUFuaW1hdG9yKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKS0+Y2Fs
Y3VsYXRlRnJvbUFuZFRvVmFsdWVzKG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCB0
b1N0cmluZyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgbV9mcm9tU3RyaW5nID0gZnJvbVN0cmluZzsKICAgICBt
X3RvU3RyaW5nID0gdG9TdHJpbmc7CkBAIC00MDIsNyArNDMxLDggQEAgYm9vbCBTVkdBbmltYXRl
RWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogCiAgICAgQVNTRVJUKCFoYXNUYWdOYW1lKFNWR05h
bWVzOjpzZXRUYWcpKTsKICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWluZUFu
aW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKLSAgICBpZiAobV9hbmltYXRlZEF0
dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikgeworICAgIHN3aXRjaCAobV9hbmltYXRlZEF0
dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1hdGVkQ29sb3I6IHsKICAgICAgICAgYm9vbCBm
cm9tSXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGZyb21TdHJp
bmcpOwogICAgICAgICBib29sIGJ5SXNDdXJyZW50Q29sb3IgPSBhdHRyaWJ1dGVWYWx1ZUlzQ3Vy
cmVudENvbG9yKGJ5U3RyaW5nKTsKICAgICAgICAgaWYgKGZyb21Jc0N1cnJlbnRDb2xvcikKQEAg
LTQxNyw3ICs0NDcsMTQgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFu
ZAogICAgICAgICBpZiAoKCFtX2Zyb21Db2xvci5pc1ZhbGlkKCkgJiYgIWZyb21Jc0N1cnJlbnRD
b2xvcikKICAgICAgICAgICAgIHx8ICghbV90b0NvbG9yLmlzVmFsaWQoKSAmJiAhYnlJc0N1cnJl
bnRDb2xvcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSBlbHNlIHsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKKyAgICAg
ICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKG1fZnJvbVR5cGUs
IG1fdG9UeXBlLCBmcm9tU3RyaW5nLCBieVN0cmluZyk7CisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgfQorICAgIGRlZmF1bHQ6CiAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwog
ICAgICAgICBtX2Zyb21OdW1iZXIgPSAwOwogICAgICAgICBpZiAoIWZyb21TdHJpbmcuaXNFbXB0
eSgpICYmICFwYXJzZU51bWJlclZhbHVlQW5kVW5pdChmcm9tU3RyaW5nLCBtX2Zyb21OdW1iZXIs
IG1fbnVtYmVyVW5pdCkpCkBAIC00MzYsMTMgKzQ3MywxNSBAQCB2b2lkIFNWR0FuaW1hdGVFbGVt
ZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgbV9hbmltYXRlZFN0cmluZyA9IGJhc2VTdHJpbmc7
CiAgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIGxhc3RUeXBlID0gbV9hbmltYXRlZEF0dHJpYnV0
ZVR5cGU7CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmltYXRlZEF0
dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOgogICAgICAgICBtX2FuaW1hdGVkQ29sb3Ig
PSBiYXNlU3RyaW5nLmlzRW1wdHkoKSA/IENvbG9yKCkgOiBTVkdDb2xvcjo6Y29sb3JGcm9tUkdC
Q29sb3JTdHJpbmcoYmFzZVN0cmluZyk7CiAgICAgICAgIGlmIChpc0NvbnRyaWJ1dGluZyhlbGFw
c2VkKCkpKSB7CiAgICAgICAgICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9IGxhc3RUeXBl
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChtX2FuaW1h
dGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikgeworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFuaW1hdGVkTnVtYmVyOgogICAgICAgICBpZiAoYmFzZVN0cmluZy5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIG1fYW5pbWF0ZWROdW1iZXIgPSAwOwogICAgICAgICAgICAgbV9udW1i
ZXJVbml0ID0gU3RyaW5nKCk7CkBAIC00NTAsMTUgKzQ4OSwyMyBAQCB2b2lkIFNWR0FuaW1hdGVF
bGVtZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgICAgIH0KICAgICAgICAgaWYgKHBhcnNlTnVt
YmVyVmFsdWVBbmRVbml0KGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWROdW1iZXIsIG1fbnVtYmVyVW5p
dCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmli
dXRlVHlwZSA9PSBBbmltYXRlZFBhdGgpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmlt
YXRlZFBhdGg6IHsKICAgICAgICAgbV9hbmltYXRlZFBhdGguY2xlYXIoKTsKICAgICAgICAgU1ZH
UGF0aFBhcnNlckZhY3RvcnkqIGZhY3RvcnkgPSBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6c2VsZigp
OwogICAgICAgICBmYWN0b3J5LT5idWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhiYXNl
U3RyaW5nLCBtX2FuaW1hdGVkUGF0aCwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIG1fYW5p
bWF0ZWRQYXRoUG9pbnRlciA9IG1fYW5pbWF0ZWRQYXRoLmdldCgpOwogICAgICAgICByZXR1cm47
Ci0gICAgfSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFBvaW50
cykgeworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgICAgICBtX2FuaW1hdGVk
UG9pbnRzLmNsZWFyKCk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0
RnJvbVN0cmluZyhiYXNlU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PSBBbmltYXRlZFN0cmluZzsKIH0KQEAgLTQ4Myw2ICs1MzAsOCBAQCB2b2lkIFNWR0FuaW1hdGVF
bGVtZW50OjphcHBseVJlc3VsdHNUb1RhCiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fYW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkUG9pbnRzKQogICAgICAgICB2YWx1ZVRvQXBw
bHkgPSBtX2FuaW1hdGVkUG9pbnRzLmlzRW1wdHkoKSA/IG1fYW5pbWF0ZWRTdHJpbmcgOiBtX2Fu
aW1hdGVkUG9pbnRzLnZhbHVlQXNTdHJpbmcoKTsKKyAgICBlbHNlIGlmIChtX2FuaW1hdGVkQXR0
cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkKKyAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9h
bmltYXRlZFR5cGUtPmxlbmd0aCgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICBlbHNlCiAgICAgICAg
IHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRTdHJpbmc7CiAgICAgCkBAIC01MTQsOCArNTYzLDE3
IEBAIGZsb2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICAgICAgICAg
IHJldHVybiAtMTsKICAgICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwgdG8pLmRpc3Rh
bmNlKCk7CiAgICAgfQorICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRl
ZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1bGF0ZURpc3Rh
bmNlKHRoaXMsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKICAgICByZXR1cm4gLTE7CiB9Ci0gICAK
KworU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IqIFNWR0FuaW1hdGVFbGVtZW50OjplbnN1cmVBbmlt
YXRvcigpCit7CisgICAgaWYgKCFtX2FuaW1hdG9yKQorICAgICAgICBtX2FuaW1hdG9yID0gU1ZH
QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUodGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGVkQXR0cmli
dXRlVHlwZSwgYXR0cmlidXRlTmFtZSgpKTsKKyAgICByZXR1cm4gbV9hbmltYXRvci5nZXQoKTsK
K30KKwogfQogI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuaAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsOCBAQAogI2lm
IEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQogCiAjaW5jbHVkZSAiQ29sb3Iu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgpAQCAtMzks
NiArNDEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1
YWwgflNWR0FuaW1hdGVFbGVtZW50KCk7CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRqdXN0Rm9y
Q3VycmVudENvbG9yKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIENvbG9yJik7CisgICAgdm9p
ZCBhZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiwgU3RyaW5nJiB2YWx1ZSk7CiAKIHByb3RlY3RlZDoKICAgICBTVkdBbmlt
YXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTUxLDYgKzU2
LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKIAogcHJpdmF0
ZToKKyAgICBTVkdBbmltYXRlZFR5cGVBbmltYXRvciogZW5zdXJlQW5pbWF0b3IoKTsKKyAgICAK
ICAgICAvLyBJZiB3ZSBoYXZlICdjdXJyZW50Q29sb3InIG9yICdpbmhlcml0JyBhcyBhbmltYXRp
b24gdmFsdWUsIHdlIG5lZWQgdG8gZ3JhYiB0aGUgdmFsdWUgZHVyaW5nIHRoZSBhbmltYXRpb24K
ICAgICAvLyBzaW5jZSB0aGUgdmFsdWUgY2FuIGJlIGFuaW1hdGVkIGl0c2VsZi4KICAgICBlbnVt
IEFuaW1hdGVkUHJvcGVydHlWYWx1ZVR5cGUgewpAQCAtODIsNiArODksMTIgQEAgcHJpdmF0ZToK
ICAgICBTVkdQb2ludExpc3QgbV9mcm9tUG9pbnRzOwogICAgIFNWR1BvaW50TGlzdCBtX3RvUG9p
bnRzOwogICAgIFNWR1BvaW50TGlzdCBtX2FuaW1hdGVkUG9pbnRzOworICAgIAorICAgIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+IG1fZnJvbVR5cGU7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4gbV90b1R5cGU7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9hbmltYXRlZFR5cGU7
CisgICAgCisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yPiBtX2FuaW1hdG9yOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGguY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpICYmIEVO
QUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6U1ZHQW5pbWF0
ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFu
aW1hdGVkTGVuZ3RoLCBjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fbGVuZ3RoTW9kZShTVkdMZW5n
dGg6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkK
K3sKK30KKworc3RhdGljIGlubGluZSBTVkdMZW5ndGgmIHNoYXJlZFNWR0xlbmd0aChTVkdMZW5n
dGhNb2RlIG1vZGUsIGNvbnN0IFN0cmluZyYgdmFsdWVBc1N0cmluZykKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFNWR0xlbmd0aCwgc2hhcmVkTGVuZ3RoLCAoKSk7CisgICAgc2hhcmVkTGVu
Z3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0cmluZywgbW9kZSk7CisgICAgcmV0dXJuIHNo
YXJlZExlbmd0aDsKK30KKworUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
TGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKG5ldyBTVkdMZW5n
dGgobV9sZW5ndGhNb2RlLCBzdHJpbmcpKTsKK30KKwordm9pZCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQoreworICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0b1N0cmlu
Zyk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFu
ZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0
cmluZykKK3sKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgCisgICAgZnJvbSA9
IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGJ5U3RyaW5nKTsKKyAgICAKKyAgICBTVkdMZW5ndGgmIGZyb21MZW5ndGggPSBmcm9t
LT5sZW5ndGgoKTsKKyAgICBTVkdMZW5ndGgmIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOworICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVuZ3RoLnZh
bHVlKG1fY29udGV4dEVsZW1lbnQpICsgZnJvbUxlbmd0aC52YWx1ZShtX2NvbnRleHRFbGVtZW50
KSwgbV9jb250ZXh0RWxlbWVudCwgZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCit2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVs
ZW1lbnQqIHNtaWxFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3Vu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IHRvLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJ
bmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpCit7CisgICAgQVNTRVJUKHNtaWxFbGVt
ZW50KTsKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgU1ZHQW5pbWF0ZUVsZW1l
bnQqIGFuaW1hdGlvbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlRWxlbWVudCo+KHNt
aWxFbGVtZW50KTsKKyAgICAKKyAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUgPSBhbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCk7CisgICAgLy8gVG8gYW5pbWF0aW9uIHVzZXMg
Y29udHJpYnV0aW9ucyBmcm9tIHRoZSBsb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFzIHRoZSBi
YXNlIHZhbHVlLgorICAgIC8vIEZJWE1FOiBhdm9pZCBzdHJpbmcgcGFyc2luZy4KKyAgICBpZiAo
YW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKKyAgICAgICAgZnJvbSA9IGNvbnN0cnVjdEZy
b21TdHJpbmcoYW5pbWF0ZWQtPmxlbmd0aCgpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgCisgICAg
Ly8gUmVwbGFjZSAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVzLgor
ICAgIGZsb2F0IG51bWJlcjsKKyAgICBmbG9hdCBmcm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCku
dmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgZmxvYXQgdG9MZW5ndGggPSB0by0+bGVuZ3Ro
KCkudmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgCisgICAgaWYgKGZyb21Qcm9wZXJ0eUlu
aGVyaXRzKSB7CisgICAgICAgIFN0cmluZyBmcm9tTGVuZ3RoU3RyaW5nOworICAgICAgICBhbmlt
YXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZShtX2NvbnRleHRFbGVtZW50LCBhbmlt
YXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIGZyb21MZW5ndGhTdHJpbmcpOworICAgICAg
ICBmcm9tTGVuZ3RoID0gc2hhcmVkU1ZHTGVuZ3RoKG1fbGVuZ3RoTW9kZSwgZnJvbUxlbmd0aFN0
cmluZykudmFsdWUobV9jb250ZXh0RWxlbWVudCk7CisgICAgfQorICAgIGlmICh0b1Byb3BlcnR5
SW5oZXJpdHMpIHsKKyAgICAgICAgU3RyaW5nIHRvTGVuZ3RoU3RyaW5nOworICAgICAgICBhbmlt
YXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZShtX2NvbnRleHRFbGVtZW50LCBhbmlt
YXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHRvTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAg
dG9MZW5ndGggPSBzaGFyZWRTVkdMZW5ndGgobV9sZW5ndGhNb2RlLCB0b0xlbmd0aFN0cmluZyku
dmFsdWUobV9jb250ZXh0RWxlbWVudCk7IAorICAgIH0KKyAgICAKKyAgICBpZiAoYW5pbWF0aW9u
RWxlbWVudC0+Y2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRlKQorICAgICAgICBudW1iZXIg
PSBwZXJjZW50YWdlIDwgMC41ZiA/IGZyb21MZW5ndGggOiB0b0xlbmd0aDsKKyAgICBlbHNlCisg
ICAgICAgIG51bWJlciA9ICh0b0xlbmd0aCAtIGZyb21MZW5ndGgpICogcGVyY2VudGFnZSArIGZy
b21MZW5ndGg7CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGNvcnJlY3QgZm9yIHZh
bHVlcyBhbmltYXRpb24uCisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQo
KSAmJiByZXBlYXRDb3VudCkKKyAgICAgICAgbnVtYmVyICs9IHRvTGVuZ3RoICogcmVwZWF0Q291
bnQ7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgU1ZHTGVuZ3RoJiBhbmltYXRlZFNW
R0xlbmd0aCA9IGFuaW1hdGVkLT5sZW5ndGgoKTsKKyAgICBpZiAoYW5pbWF0aW9uRWxlbWVudC0+
aXNBZGRpdGl2ZSgpICYmIGFuaW1hdGlvbk1vZGUgIT0gVG9BbmltYXRpb24pIHsKKyAgICAgICAg
ZmxvYXQgYW5pbWF0ZWRMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCkudmFsdWUobV9jb250ZXh0
RWxlbWVudCk7CisgICAgICAgIGFuaW1hdGVkTGVuZ3RoICs9IG51bWJlcjsKKyAgICAgICAgYW5p
bWF0ZWRTVkdMZW5ndGguc2V0VmFsdWUoYW5pbWF0ZWRMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQs
IGVjKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5pbWF0ZWRTVkdMZW5ndGguc2V0VmFsdWUobnVt
YmVyLCBtX2NvbnRleHRFbGVtZW50LCBlYyk7CisgICAgQVNTRVJUKCFlYyk7Cit9CisKK2Zsb2F0
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVt
ZW50KiBzbWlsRWxlbWVudCwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHRvU3RyaW5nKQoreworICAgIEFTU0VSVChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmltYXRpb25FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVudCk7ICAgIAorICAgIFNW
R0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSA9IFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlKGFuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSk7CisgICAg
U1ZHTGVuZ3RoIGZyb20gPSBTVkdMZW5ndGgobGVuZ3RoTW9kZSwgZnJvbVN0cmluZyk7CisgICAg
U1ZHTGVuZ3RoIHRvID0gU1ZHTGVuZ3RoKGxlbmd0aE1vZGUsIHRvU3RyaW5nKTsKKyAgICByZXR1
cm4gZmFic2YodG8udmFsdWUobV9jb250ZXh0RWxlbWVudCkgLSBmcm9tLnZhbHVlKG1fY29udGV4
dEVsZW1lbnQpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNW
R19BTklNQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGgu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaAko
cmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGgu
aAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTVkdBbmltYXRlZExl
bmd0aF9oCiAKICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdM
ZW5ndGguaCIKIApAQCAtMzUsNyArMzYsMjcgQEAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShT
VkdBbmltYXRlZExlbgogI2RlZmluZSBERUZJTkVfQU5JTUFURURfTEVOR1RIKE93bmVyVHlwZSwg
RE9NQXR0cmlidXRlLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBERUZJTkVfQU5J
TUFURURfUFJPUEVSVFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZS5sb2Nh
bE5hbWUoKSwgU1ZHQW5pbWF0ZWRMZW5ndGgsIFNWR0xlbmd0aCwgVXBwZXJQcm9wZXJ0eSwgTG93
ZXJQcm9wZXJ0eSkKIAorI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorY2xhc3MgU1ZHQW5pbWF0
ZWRMZW5ndGhBbmltYXRvciA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CisgICAg
CitwdWJsaWM6CisgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1YWwgflNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoKSB7IH0KKworICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmlt
YXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+
JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJp
bmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworICAgIHZpcnR1YWwgdm9p
ZCBjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21W
YWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJv
bVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmluZyk7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkVmFsdWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJ
bmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpOworICAgIHZpcnR1YWwgZmxvYXQgY2Fs
Y3VsYXRlRGlzdGFuY2UoU1ZHU01JTEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworCitwcml2YXRlOgorICAgIFNWR0xlbmd0aE1vZGUg
bV9sZW5ndGhNb2RlOworfTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVO
QUJMRShTVkdfQU5JTUFUSU9OKQogI2VuZGlmIC8vIEVOQUJMRShTVkcpCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0ZWRUeXBlX2gKKyNkZWZpbmUg
U1ZHQW5pbWF0ZWRUeXBlX2gKKworI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFU
SU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNWR0FuaW1hdGVkVHlwZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgo
U1ZHTGVuZ3RoKiBsZW5ndGgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNW
R0FuaW1hdGVkVHlwZShBbmltYXRlZExlbmd0aCwgbGVuZ3RoKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRMZW5ndGgpOworICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKKyAgICB9Cisg
ICAgCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICAKKyAgICBTVkdMZW5ndGgmIGxlbmd0aCgpCisgICAgeworICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuICptX2RhdGEubGVu
Z3RoOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVk
QXR0cmlidXRlVHlwZSB0eXBlLCBTVkdMZW5ndGgqIGxlbmd0aCkKKyAgICAgICAgOiBtX3R5cGUo
dHlwZSkKKyAgICB7CisgICAgICAgIG1fZGF0YS5sZW5ndGggPSBsZW5ndGg7CisgICAgfQorICAg
IAorICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSBtX3R5cGU7CisgICAgCisgICAgdW5pb24gRGF0
YVVuaW9uIHsKKyAgICAgICAgRGF0YVVuaW9uKCkKKyAgICAgICAgICAgIDogbGVuZ3RoKDApCisg
ICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IE1vcmUgU1ZH
IHByaW1pdGl2ZSB0eXBlcyBuZWVkIHRvIGJlIGFkZGVkIHN0ZXAgYnkgc3RlcC4KKyAgICAgICAg
U1ZHTGVuZ3RoKiBsZW5ndGg7CisgICAgfSBtX2RhdGE7Cit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJ
T04pCisjZW5kaWYgLy8gU1ZHQW5pbWF0ZWRUeXBlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3JfaAorI2RlZmluZSBTVkdBbmltYXRlZFR5cGVBbmltYXRvcl9oCisKKyNpZiBFTkFCTEUoU1ZH
KSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIK
KyNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Ig
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwgflNW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yKCkgeyB9CisgICAgdmlydHVhbCBQYXNzT3duUHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwg
Y29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IGFuaW1hdGVkVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9vbCB0b1Byb3BlcnR5SW5oZXJpdHMpID0gMDsK
KyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50KiwgY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSA9IDA7CisKKyAg
ICB2b2lkIHNldENvbnRleHRFbGVtZW50KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KSB7IG1f
Y29udGV4dEVsZW1lbnQgPSBjb250ZXh0RWxlbWVudDsgfQorICAgIAorcHJvdGVjdGVkOgorICAg
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlLCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAg
LCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50KQorICAgIHsKKyAgICB9CisKKyAgICBB
bmltYXRlZEF0dHJpYnV0ZVR5cGUgbV90eXBlOworICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVs
ZW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNlbmRpZiAvLyBTVkdBbmltYXRlZFR5cGVB
bmltYXRvcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCwxMiBAQCB2b2lkIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0CiAgICAgfQogCiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgeworICAgICAgICAvLyBQZXIgdGhlIFNNSUwg
c3BlY2lmaWNhdGlvbiwgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGUgc3BhY2UsCisgICAgICAg
IC8vIGFuZCB3aGl0ZSBzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIHNlbWljb2xvbiBzZXBhcmF0b3Jz
LCBpcyBhbGxvd2VkIGFuZCB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgIC8vIGh0dHA6Ly93d3cu
dzMub3JnL1RSL1NWRzExL2FuaW1hdGUuaHRtbCNWYWx1ZXNBdHRyaWJ1dGUKICAgICAgICAgYXR0
ci0+dmFsdWUoKS5zdHJpbmcoKS5zcGxpdCgnOycsIG1fdmFsdWVzKTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92
YWx1ZXNbaV0gPSBtX3ZhbHVlc1tpXS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMjQ4LDcgKzI1Myw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
ZW5kRWxlbWVudEF0KGYKICAgICBhZGRFbmRUaW1lKGVsYXBzZWQoKSArIG9mZnNldCk7CiB9CiAK
LVNWR0FuaW1hdGlvbkVsZW1lbnQ6OkFuaW1hdGlvbk1vZGUgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
YW5pbWF0aW9uTW9kZSgpIGNvbnN0CitBbmltYXRpb25Nb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmFuaW1hdGlvbk1vZGUoKSBjb25zdAogewogICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDEvUkVDLXNtaWwtYW5pbWF0aW9uLTIwMDEwOTA0LyNBbmltRnVuY1ZhbHVlcwogICAgIGlmICho
YXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQpAQCAtMjY0LDcgKzI2OSw3IEBAIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OkFuaW1hdGlvbk1vZGUgU1ZHQW4KICAgICByZXR1cm4gTm9BbmltYXRpb247
CiB9CiAKLVNWR0FuaW1hdGlvbkVsZW1lbnQ6OkNhbGNNb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmNhbGNNb2RlKCkgY29uc3QKK0NhbGNNb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGNNb2Rl
KCkgY29uc3QKIHsgICAgCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGRpc2NyZXRlLCAoImRpc2NyZXRlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBsaW5lYXIsICgibGluZWFyIikpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQsNiAr
NCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+
CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDcgKzM3LDI0IEBACiAj
aW5jbHVkZSAiVW5pdEJlemllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKK2Vu
dW0gQW5pbWF0aW9uTW9kZSB7CisgICAgTm9BbmltYXRpb24sCisgICAgRnJvbVRvQW5pbWF0aW9u
LAorICAgIEZyb21CeUFuaW1hdGlvbiwKKyAgICBUb0FuaW1hdGlvbiwKKyAgICBCeUFuaW1hdGlv
biwKKyAgICBWYWx1ZXNBbmltYXRpb24sCisgICAgUGF0aEFuaW1hdGlvbiAvLyBVc2VkIGJ5IEFu
aW1hdGVNb3Rpb24uCit9OworCitlbnVtIENhbGNNb2RlIHsKKyAgICBDYWxjTW9kZURpc2NyZXRl
LAorICAgIENhbGNNb2RlTGluZWFyLAorICAgIENhbGNNb2RlUGFjZWQsCisgICAgQ2FsY01vZGVT
cGxpbmUKK307CisKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7CiBjbGFzcyBUaW1lQ29u
dGFpbmVyOwogCkBAIC00OSw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBnZXRTdGFydFRp
bWUoKSBjb25zdDsKICAgICBmbG9hdCBnZXRDdXJyZW50VGltZSgpIGNvbnN0OwogICAgIGZsb2F0
IGdldFNpbXBsZUR1cmF0aW9uKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICAKKwogICAgIC8v
IEVsZW1lbnRUaW1lQ29udHJvbAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkVsZW1lbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgYmVnaW5FbGVtZW50QXQoZmxvYXQgb2Zmc2V0KTsKQEAgLTU4LDM2ICs3
NiwzNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBpc1RhcmdldEF0dHJpYnV0ZUNTU1By
b3BlcnR5KFNWR0VsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKKyAgICBib29sIGlz
QWRkaXRpdmUoKSBjb25zdDsKKyAgICBib29sIGlzQWNjdW11bGF0ZWQoKSBjb25zdDsKKyAgICBB
bmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUoKSBjb25zdDsKKyAgICBDYWxjTW9kZSBjYWxjTW9k
ZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0aW9uRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIAotICAgIGVudW0gQ2FsY01vZGUgeyBDYWxjTW9kZURpc2Ny
ZXRlLCBDYWxjTW9kZUxpbmVhciwgQ2FsY01vZGVQYWNlZCwgQ2FsY01vZGVTcGxpbmUgfTsKLSAg
ICBDYWxjTW9kZSBjYWxjTW9kZSgpIGNvbnN0OwotICAgIAotICAgIGVudW0gQXR0cmlidXRlVHlw
ZSB7IEF0dHJpYnV0ZVR5cGVDU1MsIEF0dHJpYnV0ZVR5cGVYTUwsIEF0dHJpYnV0ZVR5cGVBdXRv
IH07CisgICAgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKyAgICAgICAgQXR0cmlidXRlVHlwZUNTUywK
KyAgICAgICAgQXR0cmlidXRlVHlwZVhNTCwKKyAgICAgICAgQXR0cmlidXRlVHlwZUF1dG8KKyAg
ICB9OwogICAgIEF0dHJpYnV0ZVR5cGUgYXR0cmlidXRlVHlwZSgpIGNvbnN0OwotICAgIAorCiAg
ICAgU3RyaW5nIHRvVmFsdWUoKSBjb25zdDsKICAgICBTdHJpbmcgYnlWYWx1ZSgpIGNvbnN0Owog
ICAgIFN0cmluZyBmcm9tVmFsdWUoKSBjb25zdDsKLSAgICAKLSAgICBlbnVtIEFuaW1hdGlvbk1v
ZGUgeyBOb0FuaW1hdGlvbiwgVG9BbmltYXRpb24sIEJ5QW5pbWF0aW9uLCBWYWx1ZXNBbmltYXRp
b24sIEZyb21Ub0FuaW1hdGlvbiwgRnJvbUJ5QW5pbWF0aW9uLCBQYXRoQW5pbWF0aW9uIH07Ci0g
ICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3Q7Ci0gICAgCisKICAgICBTdHJp
bmcgdGFyZ2V0QXR0cmlidXRlQmFzZVZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUYXJnZXRB
dHRyaWJ1dGVBbmltYXRlZFZhbHVlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAgIGJvb2wgaXNB
ZGRpdGl2ZSgpIGNvbnN0OwotICAgIGJvb2wgaXNBY2N1bXVsYXRlZCgpIGNvbnN0OwogCiAgICAg
Ly8gZnJvbSBTVkdTTUlMRWxlbWVudAogICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50
ZXJ2YWwoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQs
IHVuc2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpOwogICAgIHZp
cnR1YWwgdm9pZCBlbmRlZEFjdGl2ZUludGVydmFsKCk7Ci0gICAgCisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURl
Y2xzKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZp
ZWROYW1lJik7CkBAIC05Nyw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdCwg
U1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpID0gMDsKICAgICB2aXJ0dWFsIGZsb2F0IGNh
bGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgLypmcm9tU3RyaW5nKi8sIGNvbnN0IFN0cmlu
ZyYgLyp0b1N0cmluZyovKSB7IHJldHVybiAtMS5mOyB9CiAgICAgdmlydHVhbCBQYXRoIGFuaW1h
dGlvblBhdGgoKSBjb25zdCB7IHJldHVybiBQYXRoKCk7IH0KLSAgICAKKwogICAgIHZvaWQgY3Vy
cmVudFZhbHVlc0ZvclZhbHVlc0FuaW1hdGlvbihmbG9hdCBwZXJjZW50LCBmbG9hdCYgZWZmZWN0
aXZlUGVyY2VudCwgU3RyaW5nJiBmcm9tLCBTdHJpbmcmIHRvKSBjb25zdDsKICAgICB2b2lkIGNh
bGN1bGF0ZUtleVRpbWVzRm9yQ2FsY01vZGVQYWNlZCgpOwogICAgIGZsb2F0IGNhbGN1bGF0ZVBl
cmNlbnRGcm9tS2V5UG9pbnRzKGZsb2F0IHBlcmNlbnQpIGNvbnN0OwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRvckZhY3RvcnlfaAorI2RlZmlu
ZSBTVkdBbmltYXRvckZhY3RvcnlfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19B
TklNQVRJT04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorY2xhc3MgU1ZHQW5pbWF0b3JGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGVBbmltYXRvcj4gY3JlYXRlKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgYXR0cmlidXRlVHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIC8vIEZJ
WE1FOiBBZGQgYW5pbWF0aW9uIHN1cHBvcnQgZm9yIGFsbCBTVkcgdW5pdHMuCisgICAgICAgIHN3
aXRjaCAoYXR0cmlidXRlVHlwZSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSkpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIFNWR0FuaW1hdG9yRmFjdG9y
eSgpIHsgfQorCit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjZW5kaWYgLy8gU1ZHQW5pbWF0
b3JGYWN0b3J5X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguY3BwCShyZXZpc2lvbiA4ODYx
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzEsNiArMTMxLDE1IEBAIFNWR0xlbmd0aDo6U1ZHTGVuZ3RoKFNWR0xlbmd0aE1vZGUgbW9k
ZSwKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBzZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
QXNTdHJpbmcsIGVjKTsKIH0KKyAgICAKK3ZvaWQgU1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5n
KGNvbnN0IFN0cmluZyYgdmFsdWVBc1N0cmluZywgU1ZHTGVuZ3RoTW9kZSBtb2RlKQoreworICAg
IG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gMDsKKyAgICBtX3VuaXQgPSBzdG9yZVVuaXQobW9k
ZSwgTGVuZ3RoVHlwZU51bWJlcik7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgc2V0
VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBlYyk7CisgICAgQVNTRVJUKCFlYyk7Cit9CiAK
IFNWR0xlbmd0aDo6U1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0aCYgb3RoZXIpCiAgICAgOiBtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cyhvdGhlci5tX3ZhbHVlSW5TcGVjaWZpZWRVbml0cykKQEAgLTU2
OSw2ICs1NzgsNDEgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gU1ZHTGVuZ3RoOgog
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGxlbmd0aC52YWx1ZUluU3BlY2lm
aWVkVW5pdHMoKSwgY3NzVHlwZSk7CiB9CiAKK1NWR0xlbmd0aE1vZGUgU1ZHTGVuZ3RoOjpsZW5n
dGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCit7CisgICAgdHlwZWRlZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFNWR0xlbmd0aE1v
ZGU+IExlbmd0aE1vZGVGb3JMZW5ndGhBdHRyaWJ1dGVNYXA7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChMZW5ndGhNb2RlRm9yTGVuZ3RoQXR0cmlidXRlTWFwLCBzX2xlbmd0aE1vZGVNYXAsICgp
KTsKKyAgICAKKyAgICBpZiAoc19sZW5ndGhNb2RlTWFwLmlzRW1wdHkoKSkgeworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAg
ICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eUF0dHIsIExlbmd0aE1vZGVIZWln
aHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpjeEF0dHIsIExlbmd0
aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmN5QXR0
ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6OmR4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNl
dChTVkdOYW1lczo6ZHlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhN
b2RlTWFwLnNldChTVkdOYW1lczo6ZnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpmeUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOwor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpyQXR0ciwgTGVuZ3RoTW9kZU90
aGVyKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6d2lkdGhBdHRyLCBM
ZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpo
ZWlnaHRBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNl
dChTVkdOYW1lczo6eDFBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1v
ZGVNYXAuc2V0KFNWR05hbWVzOjp4MkF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnkxQXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7Cisg
ICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnkyQXR0ciwgTGVuZ3RoTW9kZUhl
aWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnJlZlhBdHRyLCBM
ZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpy
ZWZZQXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQo
U1ZHTmFtZXM6Om1hcmtlcldpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19s
ZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0ciwgTGVuZ3RoTW9kZUhl
aWdodCk7ICAgICAgICAKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6dGV4
dExlbmd0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKHNfbGVuZ3RoTW9kZU1hcC5jb250YWlucyhhdHRyTmFtZSkpCisgICAgICAg
IHJldHVybiBzX2xlbmd0aE1vZGVNYXAuZ2V0KGF0dHJOYW1lKTsKKyAgICAKKyAgICByZXR1cm4g
TGVuZ3RoTW9kZU90aGVyOworfQorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5n
dGguaAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Nyw3
ICs4OCw4IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
LQorICAgIHZvaWQgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmLCBTVkdMZW5ndGhNb2Rl
KTsKKyAgICAKICAgICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQs
IGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
Y29udmVydFRvU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQsIGNvbnN0IFNWR0VsZW1lbnQq
IGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtMTAwLDYgKzEwMiw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBTVkdMZW5ndGggZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHRvQ1NT
UHJpbWl0aXZlVmFsdWUoY29uc3QgU1ZHTGVuZ3RoJik7CisgICAgc3RhdGljIFNWR0xlbmd0aE1v
ZGUgbGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKTsKIAogcHJpdmF0ZToKICAgICBib29sIGRldGVybWluZVZpZXdwb3J0KGNv
bnN0IFNWR0VsZW1lbnQqIGNvbnRleHQsIGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdodCkgY29u
c3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4ODYxMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBAQAorMjAxMS0wNi0xMiAgRGlyayBTY2h1bHpl
ICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNWR0FuaW1hdGlvbiBzaG91bGQgdXNlIGRpcmVjdCB1bml0IGFuaW1hdGlv
biBmb3IgU1ZHTGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MTM2OAorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0byBjaGVjayBjb3JyZWN0
IGJlaGF2aW9yIG9mIFNWR0xlbmd0aCBhbmltYXRpb25zLgorCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5q
czogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAg
ICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanM6
IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAg
KHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qczog
QWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qczogQWRkZWQuCisgICAgICAgIChzYW1w
bGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFs
aWQtdmFsdWUtMy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBs
ZTIpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanM6IEFkZGVk
LgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBs
ZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuanM6IEFkZGVkLgorICAgICAgICAoc2Ft
cGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToK
KyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRl
VGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8taW4uanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAg
IChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLW51bWJlci5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNh
bXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToK
KyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNl
bnRhZ2UuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToK
KyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxl
Myk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAg
ICAgKHNhbXBsZTQpOgorICAgICAgICAoc2FtcGxlNSk6CisgICAgICAgIChleGVjdXRlVGVzdCk6
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2Rl
SGVpZ2h0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1v
ZGVXaWR0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52
YWxpZC12YWx1ZS0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51
bWJlci10by1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbDogQWRkZWQu
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8taW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1u
dW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wZXJjZW50YWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcHgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRt
bDogQWRkZWQuCisKIDIwMTEtMDYtMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQ2hyb21pdW0gcmViYXNlbGluZSBhZnRlciByODU1NjAuCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWln
aHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5
IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFu
aW1hdGlvbiBvbiBMZW5ndGhNb2RlSGVpZ2h0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lmhl
aWdodC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVl
IGlzIDE1MAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0
LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LmhlaWdodC5iYXNlVmFsLnZh
bHVlIGlzIDIwMAorUEFTUyByZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZUhlaWdodC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlSGVpZ2h0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0
aE1vZGVPdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NW
RyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9u
IG9uIExlbmd0aE1vZGVPdGhlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSBpcyAxMAorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZh
bHVlIGlzIDEwCitQQVNTIGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMTMyLjQ3NQorUEFTUyBj
aXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIuYW5pbVZhbC52
YWx1ZSBpcyAyNTQuOQorUEFTUyBjaXJjbGUuci5iYXNlVmFsLnZhbHVlIGlzIDI1NC45CitQQVNT
IGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1
ZSBpcyAxMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZU90aGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVu
Z3RoTW9kZU90aGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgx
PlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdp
ZHRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAzMDAKK1BBU1MgcmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDMwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tTGVuZ3RoTW9kZVdpZHRoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5p
bWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tTGVuZ3RoTW9kZVdpZHRoLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTcgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGJldHdlZW4gbnVtYmVyIGFu
ZCB1bml0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFs
aWQtdmFsdWUtMS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZh
bGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZWZvcmUgdmFsdWUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMAor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1
ZTogTm8gc3BhY2VzIGFmdGVyIG51bWJlciBhbmQgdW5pdC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52
YWxpZC12YWx1ZS0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgx
PlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1u
dW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlz
IDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENh
c2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFu
aW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0
aW9uLW51bWJlci10by1udW1iZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1j
bS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNt
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5h
bWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0
byBjbS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAw
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNDQuNDkKK1BBU1MgcmVjdC53aWR0
aC5iYXNlVmFsLnZhbHVlIGlzIDE0NC40OQorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUg
aXMgMTg4Ljk4CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxODguOTgKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1jbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWlj
IGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWNtLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1p
YyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8g
ZW1zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAK
K1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAK
K1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVt
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tZW1zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9u
IHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tZW1zLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZXhzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFs
dWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tZXhzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9o
MT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8taW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gaW5jaC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE3MAor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAyNDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1pbi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4u
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gbnVtYmVyLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmlt
VmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUwCitQ
QVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQ
QVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
bnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gcGMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTcwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BB
U1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUgaXMgMjQwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLXBjLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2Vu
dGFnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMzUwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAzNTAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDYwMAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgNjAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFn
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdl
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdU
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlv
blRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHlu
YW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAx
LjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZy
b20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTYxLjE1CitQQVNTIHJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNjEuMTUKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDE4OC45NworUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk3
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LXB0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1h
dGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1wdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LXB4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cHgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4
IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAy
MDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LXB4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9u
IHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcHguanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cwor
CitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gc2V0IHdpdGggJ3ZhbHVlcycsIGRpZmZlcmVudCB1
bml0cyBhbmQgZGlmZmVyZW50IGNvdW50IG9mIHNwYWNlcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMzAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEzMAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTUxLjE4CitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxNTEuMTgKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDU3Ngor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgNTc2CitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAyNjYuNworUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjY2
LjcKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi12YWx1ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rl
c3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9u
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5h
bWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXZhbHVlcy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1MZW5ndGhNb2RlSGVpZ2h0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDU5IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIG9u
IExlbmd0aE1vZGVIZWlnaHQuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0
ZXN0IGRvY3VtZW50Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjYwMCIp
Oworcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNDAwIik7CisKKy8vIFNl
dHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4Iiwg
IjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0dHJp
YnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRl
U1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1h
dGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiaGVpZ2h0Iik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjUwJSIpOworcmVjdC5hcHBlbmRDaGlsZChh
bmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBh
bmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFs
L2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAw
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQor
CitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVp
Z2h0LmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAg
IC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAg
ICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAg
ICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3Rl
ZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0
cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1MZW5ndGhNb2RlT3RoZXIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKK2Rlc2Ny
aXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZU90aGVyLiIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIg
Y2lyY2xlID0gY3JlYXRlU1ZHRWxlbWVudCgiY2lyY2xlIik7CitjaXJjbGUuc2V0QXR0cmlidXRl
KCJpZCIsICJjaXJjbGUiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoImN4IiwgIjUwIik7CitjaXJj
bGUuc2V0QXR0cmlidXRlKCJjeSIsICI1MCIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiciIsICIx
MCIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworY2lyY2xlLnNldEF0
dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3Jl
YXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFu
aW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiciIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMCIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjUwJSIpOworY2lyY2xlLmFwcGVuZENoaWxkKGFu
aW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoY2lyY2xlKTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJjaXJjbGUuci5hbmltVmFsLnZhbHVlIiwg
IjEwIik7CisgICAgc2hvdWxkQmUoImNpcmNsZS5yLmJhc2VWYWwudmFsdWUiLCAiMTAiKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUu
ci5hbmltVmFsLnZhbHVlIiwgIjEzMi40NzUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJjaXJjbGUuci5iYXNlVmFsLnZhbHVlIiwgIjEzMi40NzUiLCAwLjAxKTsKK30KKworZnVu
Y3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJjbGUuci5hbmlt
VmFsLnZhbHVlIiwgIjI1NC45IiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJjaXJj
bGUuci5iYXNlVmFsLnZhbHVlIiwgIjI1NC45IiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0
ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmlt
YXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmlt
YXRpb24iLCAwLjAsICAgICJjaXJjbGUiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCAyLjAsICAgICJjaXJjbGUiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5
OTksICJjaXJjbGUiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJj
aXJjbGUiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVk
VmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRy
aWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9z
dmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVXaWR0aC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlV2lkdGguIik7Citj
cmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cityb290U1ZHRWxl
bWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjYwMCIpOworcm9vdFNWR0VsZW1lbnQuc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiNDAwIik7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBy
ZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwg
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZv
bnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRl
VGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJi
ZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
dG8iLCAiNTAlIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQu
YXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBz
YW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91
bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMzAwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwg
IjMwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50
SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3Qi
LCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxl
Ml0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24taW52YWxpZC12YWx1ZS0xLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFs
dWUtMS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4i
KTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBy
ZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwg
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9u
Y2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJk
dXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMCAgIHB4Iik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwICAgcHgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAi
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4g
dGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDAp
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24taW52YWxpZC12YWx1ZS0yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACitk
ZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIHdpdGggaW52YWxpZCB2YWx1ZTog
Tm8gc3BhY2VzIGJlZm9yZSB2YWx1ZS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNl
dHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4Iiwg
IjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIg
YW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVO
YW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJmcm9tIiwgIiAgIDEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiICAgMjAw
cHgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAg
ICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRC
ZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0
ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmlt
YXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmlt
YXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
Mi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAg
InJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVk
VmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRy
aWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12
YWx1ZS0zLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ4IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIHdpdGggaW52YWxpZCB2YWx1ZTogTm8gc3BhY2VzIGFmdGVyIG51bWJlciBhbmQgdW5pdC4i
KTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBy
ZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwg
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9u
Y2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJk
dXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4ICAgIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwcHggICAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAi
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4g
dGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDAp
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVt
YmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLW51bWJlci10by1udW1iZXIuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBA
CitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7
CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVj
dCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNs
aWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50
KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVy
IiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJ0byIsICIyMDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7City
b290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRl
c3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0
aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7Cisg
ICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVu
Y3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFu
aW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1w
bGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
eworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQs
IHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
MC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAg
InJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwg
c2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFd
CisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisv
LyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwg
MzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRv
LWNtLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tY20uanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RD
YXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
ZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRl
c3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
dG8iLCAiNWNtIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQu
YXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBz
YW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91
bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjE0NC40OSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIxNDQuNDkiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTg4
Ljk4IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjE4OC45OCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
KyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0
aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAu
MCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJy
ZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNh
bXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQor
ICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8g
QmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMw
KSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1l
bXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tZW1zLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACitkZXNjcmlwdGlvbigi
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZW1zLiIpOworY3JlYXRlU1ZHVGVz
dENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdF
bGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgIjEwcHgi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFy
IGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRl
TmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwZW0iKTsK
K3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChy
ZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7Cisg
ICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1
MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7
Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVz
ID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2Fs
bGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAor
ICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlv
blRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cu
c2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1leHMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24g
ZnJvbSBweCB0byBleHMuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0
IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJmb250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9u
Y2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJk
dXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiNDBleCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRl
KTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRp
b24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBj
b25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAi
KTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQor
CitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIiwgIjIwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRp
b25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRp
b24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4w
LCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJl
Y3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2Ft
cGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9
CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRl
KDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8taW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uanMJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1pbi5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRp
b24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGluY2guIik7CitjcmVhdGVT
VkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0
ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7City
ZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAi
MTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4
ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRl
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoInRvIiwgIjIuNWluIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNW
R0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0Citm
dW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMK
KyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNo
b3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIiwgIjE3MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICIxNzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIiwgIjI0MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAg
ICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1l
LCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwg
ICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0
Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBs
ZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAg
IF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVn
aW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIs
IDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1i
ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlw
dGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gbnVtYmVyLiIpOworY3Jl
YXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBj
cmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRo
IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIs
ICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5p
bWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0
cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJ0byIsICIyMDAiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAg
c2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUz
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRp
bWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4w
LCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJl
Y3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2Ft
cGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisg
ICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBC
ZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzAp
IiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBj
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tcGMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0
IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBwYy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNl
KCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVu
dCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmls
bCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3Qo
KSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4i
LCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8i
LCAiMTVwYyIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFw
cGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2Ft
cGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkg
eworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIx
NzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUiLCAiMTcwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIy
NDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tcGVyY2VudGFnZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIHBlcmNlbnRhZ2UuIik7
CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVj
dCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNs
aWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50
KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVy
IiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7
Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9u
IHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29u
ZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7
CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKwor
ZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUiLCAiMzUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjM1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBz
YW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSIsICI2MDAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGgu
YmFzZVZhbC52YWx1ZSIsICI2MDAiLCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgp
IHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklk
LCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIs
IDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAg
ICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIs
IHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUx
XQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKwor
Ly8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAs
IDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1wdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXB0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigi
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0
Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNl
dEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7
CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUo
ImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVU
ZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJl
Z2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBwdCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
InRvIiwgIjVjbSIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24g
c2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUy
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIxNjEuMTUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUiLCAiMTYxLjE1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4
OC45NyIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSIsICIxODguOTciLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwg
dGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAw
LjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAi
cmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBz
YW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0K
KyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8v
IEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAz
MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cHguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1weC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRl
c3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENh
c2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVt
ZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJm
aWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVz
dCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdp
biIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0
byIsICIyMDBweCIpOworcmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKHJlY3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24g
c2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hv
dWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUy
KCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIs
ICIxNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjIwMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIyMDAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0
Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBs
ZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisg
ICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3Qg
YXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLXZhbHVlcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1h
dGlvbiBzZXQgd2l0aCAndmFsdWVzJywgZGlmZmVyZW50IHVuaXRzIGFuZCBkaWZmZXJlbnQgY291
bnQgb2Ygc3BhY2VzLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBk
b2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0
dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdo
dCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNl
dEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0g
Y3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwg
ImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lk
dGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIs
ICIxMDBweDsgIDEzMCAgOzRjbSAgOzZpbjsgMjAwcHQiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5p
bWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5p
bWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9l
bmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsK
K30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0
LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjEzMCIsIDAuMDEpOworfQorCitmdW5j
dGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSIsICIxNTEuMTgiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTUxLjE4IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTQoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIiwgIjU3NiIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lk
dGguYmFzZVZhbC52YWx1ZSIsICI1NzYiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNSgp
IHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MjY2LjciLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VW
YWwudmFsdWUiLCAiMjY2LjciLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwg
dGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAw
LjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMS4wLCAgICAi
cmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBz
YW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJyZWN0Iiwgc2FtcGxlNF0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTVdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBy
dW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3lu
Yword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96927</attachid>
            <date>2011-06-12 23:49:51 -0700</date>
            <delta_ts>2011-06-13 09:09:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61368-20110613084946.patch</filename>
            <type>text/plain</type>
            <size>128423</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE0IEBACisyMDExLTA2LTEyICBEaXJrIFNj
aHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU1ZHQW5pbWF0aW9uIHNob3VsZCB1c2UgZGlyZWN0IHVuaXQgYW5p
bWF0aW9uIGZvciBTVkdMZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYxMzY4CisKKyAgICAgICAgRm9yIFNNSUwgYW5pbWF0aW9ucyBvZiBhdHRy
aWJ1dGVzIG9yIENTUyBwcm9wZXJ0aWVzIGluIFNWRyB3ZSBoYXZlIGEgbG90IG9mIHRyYW5zZm9y
bWF0aW9ucyBvZiB0aGUgdmFsdWVzLiBBdCBmaXJzdCB0aGUgdGFyZ2V0IGVsZW1lbnQKKyAgICAg
ICAgZ2V0cyBhc2tlZCBmb3IgaXRzIGN1cnJlbnQgdmFsdWUuIFRoaXMgdmFsdWUgZ2V0cyB0cmFu
c2Zvcm1lZCB0byBhIHN0cmluZy4gSW4gU1ZHQW5pbWF0ZUVsZW1lbnQgd2UgdHJ5IHRvIHBhcnNl
IHRoaXMgc3RyaW5nIGFnYWluIGFuZAorICAgICAgICBzZXBlcmF0ZSBpdCBpbnRvIGEgbnVtYmVy
IGFuZCBpdHMgdW5pdC4gSW4gdGhlIGZ1cnRoZXIgc3RlcHMgd2UganVzdCBhbmltYXRlIHRoZSBu
dW1iZXIuIFRoaXMgbnVtYmVyIGdldHMgdHJhbnNmb3JtZWQgYmFjayB0byBhIHN0cmluZworICAg
ICAgICB0b2dldGhlciB3aXRoIHRoZSBwYXJzZWQgdW5pdC4gVGhlIHN0cmluZyBnZXRzIHBhc3Nl
ZCBiYWNrIHRvIHRoZSB0YXJnZXQgZWxlbWVudCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHBh
cnNpbmcgdGhlIHBhc3NlZCBzdHJpbmcgYmFjaworICAgICAgICB0byBhIHZhbHVlIGFzIGEgU1ZH
IHByaW1pdGl2ZSBkYXRhdHlwZSAobGlrZSBTVkdMZW5ndGgsIFNWR051bWJlciwgU1ZHQW5nbGUs
IFNWR0NvbG9yLCAuLi4pLCByZWxheW91dCBhbmQgcmVyZW5kZXJpbmcuCisKKyAgICAgICAgSW4g
c2hvcnQ6IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgLT4gc3RyaW5nIC0+IG51bWJlciArIHVuaXQg
YW5pbWF0aW9uIC0+IHN0cmluZyAtPiBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggZG9lcyBub3QgYXR0ZW5kIHRvIHRoZSBzdHJpbmcgdHJhbnNmb3JtYXRpb25z
LCBidXQgYWRkcmVzc2VzIHRoZSBwYXJzaW5nIG9mIHRoZSBzdHJpbmcgYmFjayB0byBhIG51bWJl
ciBhbmQgdW5pdCBpbiB0aGUKKyAgICAgICAgU1ZHIGFuaW1hdGlvbiBjb2RlLiBXZSBzaG91bGRu
J3QgYWRkIGFuIG93biBwYXJzZXIgdG8gU1ZHQW5pbWF0ZUVsZW1lbnQgYnV0IHNob3VsZCB1c2Ug
dGhlIHJlc3BvbnNpYmxlIHBhcnNlcnMgb2YgdGhlIFNWRyBwcmltaXRpdmUgZGF0YXR5cGVzLgor
ICAgICAgICBBbHNvIHRoZSBjdXJyZW50IHBhcnNlciBvZiBTVkdBbmltYXRlRWxlbWVudCBkb2Vz
IG5vdCBoYW5kbGUgbW9zdCB1bml0IHR5cGVzLCBub3IgaXMgaXQgcG9zc2libGUgdG8gYW5pbWF0
ZSBsaXN0cyBsaWtlIFNWR0xlbmd0aExpc3Qgd2l0aCB0aGUKKyAgICAgICAgcGFyc2VkIGNvbnRl
bnQuIEFuIGFuaW1hdGlvbiBvZiB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgdW5pdCB0eXBlcyBpcyBu
b3QgcG9zc2libGU6CisKKyAgICAgICAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4KKyAg
ICAgICAgICAgIDxhbmltYXRlIGFuaW1hdGVBdHRyaWJ1dGU9IndpZHRoIiBmcm9tPSIyMHB4IiB0
bz0iMTAlIiBkdXI9IjRzIi8+CisgICAgICAgIDwvcmVjdD4KKworICAgICAgICBGb3IgdGhlIGV4
YW1wbGUgYWJvdmUgd2Ugd291bGQgYW5pbWF0ZSB0aGUgcmVjdCB3aWR0aCBmcm9tIDIwcHggdG8g
MTBweCBpbiA0IHNlY29uZHMgYW5kIGp1bXAgdG8gdGhlIDEwJSBvZiB0aGUgdmlldyBwb3J0IGF0
IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbi4KKyAgICAgICAgV2l0aCB1c2luZyB0
aGUgcGFyc2VycyBvZiBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlcyB3ZSB3aWxsIGFsc28gdXNlIHRo
ZSBTVkcgcHJpbWl0aXZlIGRhdGF0eXBlcyBpbiB0aGUgYW5pbWF0aW9uIGNvZGUgaXRzZWxmLiBB
bmQgdGhhdCBtYWtlcworICAgICAgICBpdCBwb3NzaWJsZSB0byBkbyBzdWNoIGFuaW1hdGlvbnMu
CisKKyAgICAgICAgSW4gc2hvcnQ6IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgLT4gc3RyaW5nIC0+
IFNWRyBwcmltaXRpdmUgZGF0YXR5cGUgYW5pbWF0aW9uIC0+IHN0cmluZyAtPiBTVkcgcHJpbWl0
aXZlIGRhdGF0eXBlLgorCisgICAgICAgIEl0IHdpbGwgYmUgZWFzaWVyIHRvIGF2b2lkIHRoZSBz
dHJpbmcgdHJhbnNmb3JtYXRpb24gb25jZSBhbGwgU1ZHIHByaW1pdGl2ZSBkYXRhdHlwZXMgYXJl
IHN1cHBvcnRlZC4KKworICAgICAgICBUbyBoaWRlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBhbmlt
YXRpb24gY29kZSwgdGhlIGFjdHVhbCBjYWxjdWxhdGlvbnMgb2YgU1ZHIGFuaW1hdGlvbiBzcGVj
aWZpYyB2YWx1ZXMgd2FzIG1vdmVkIHRvIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgIFNWR0Fu
aW1hdGVkKiBmaWxlcyAoU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGZvciBTVkdMZW5ndGgpLiBTVkdB
bmltYXRlRWxlbWVudCBpdHNlbGYganVzdCB3b3JrcyB3aXRoIHRoZSBuZXcgYWRkZWQgZ2VuZXJp
YyBkYXRhdHlwZSBTVkdBbmltYXRpb25UeXBlLgorICAgICAgICBTVkdBbmltYXRvckZhY3Rvcnkg
Y3JlYXRlcyB0aGUgU1ZHIHByaW1pdGl2ZSBkYXRhdHlwZSBzcGVjaWZpYyBhbmltYXRvcnMuIFRo
aXMgbWFrZXMgdGhlIG1haW4gYW5pbWF0aW9uIGNvZGUgYSBsb3QgbW9yZSByZWFkYWJsZSBhbmQg
CisgICAgICAgIG1haW50YWluYWJsZS4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2ggSSBhZGQg
dGhlIEFuaW1hdG9yRmFjdG9yeSBhbmQgY29udmVydCBTVkdMZW5ndGggYW5pbWF0aW9uIHRvIHRo
ZSBuZXcgY29uY2VwdC4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0bWwKKyAgICAgICAg
ICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRo
Lmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0xLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLmh0bWwKKyAgICAg
ICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51
bWJlci5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWNtLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tZW1zLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uaHRtbAorICAgICAgICAgICAg
ICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuaHRtbAor
ICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1w
Yy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4Lmh0bWwKKyAgICAgICAgICAgICAgIHN2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwKKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OiBBZGRlZCBuZXcgZmlsZXMgdG8gYnVpbGQgc3lzdGVtLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbGxJbk9uZS5jcHA6
IEFkZGVkIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBmb3IgV2luIGFuZCBvdGhlciBidWlsZCBzeXN0
ZW1zLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXJzZU51bWJlclZhbHVlQW5kVW5pdCk6IFJlbW92ZSBwYXJzaW5nIGNvZGUgZm9yIFNW
R0xlbmd0aC4gVXNlIFNWR0xlbmd0aCBwYXJzZXIgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKTogTWFkZSBhZGp1c3RG
b3JDdXJyZW50Q29sb3IgcHVibGljIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZENvbG9y
LgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHlWYWx1ZSk6IElubGluZSBmdW5jdGlvbiB0
byBnZXQgY29tcHV0ZWRTdHlsZSBvZiBDU1MgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9ySW5oZXJpdGFuY2UpOiBNYWRlIGFkanVzdEZvcklu
aGVyaXRhbmNlIGFzIHByZXBlcmF0aW9uIGZvciBTVkdBbmltYXRlZCogZmlsZXMuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlKTogU1ZHTGVuZ3RoIG5lZWQgc3BlY2lhbCBoYW5kbGluZyB2aWEgU1ZHQW5pbWF0b3Igbm93
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUpOiBDbGVhbnVwLiBNYWtlIHVzZSBvZiBTVkdBbmltYXRvciBmb3IgU1ZHTGVuZ3RoLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1Zh
bHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUZyb21BbmRCeVZhbHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKTogRGl0dG8uCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0
aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNoYXJlZFNWR0xlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmg6IEFkZGVkIG5ldyBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yIHdoaWNoIGlz
IHJlc3BvbnNpYmxlIGZvciB0aGUgYWN0dWFsIGFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6On5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6IEFkZGVkLiBHZW5lcmljIFNWRyB1bml0
IHR5cGUgZm9yIGFuaW1hdGlvbnMgaW4gU1ZHQW5pbWF0ZUVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDogQWRkZWQuIEJh
c2UgY2xhc3MgZm9yIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgYW5kIGZ1dHVyZSBTVkcgdW5p
dCBhbmltYXRvcnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6
flNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yOjpzZXRDb250ZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IpOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogV2UgZG8gbm90IHVzZSBwYXJzZU51
bWJlclZhbHVlQW5kVW5pdCBmb3IgU1ZHTGVuZ3RoIG5vdy4gSGF2ZSB0byBzdHJpcCB3aGl0ZSBz
cGFjZXMgaGVyZS4gV2hpdGVzcGFjZXMgc2hvdWxkbid0CisgICAgICAgICAgYmUgc3RyaXBwZWQg
b24gdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOiAnZnJvbScsICd0bycgYW5kICdieScuIFRoaXMg
aXMgbm90IHRoZSBjYXNlIGZvciBTVkdMZW5ndGggYW55bW9yZS4gQWRkZWQgbmV3IHRlc3RzIHRv
IGNoZWNrIHRoaXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVt
ZW50OjphbmltYXRpb25Nb2RlKTogRW51bSBpcyBhY2Nlc3NpYmxlIGluIFdlYkNvcmUgbmFtZXNw
YWNlIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNhbGNNb2Rl
KTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5nKTogTmV3IHNldHRl
ciB3aXRoIHN0cmluZyBhbmQgU1ZHTGVuZ3RoTW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xl
bmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKTogR2V0IExlbmd0aE1v
ZGUgZm9yIFNWR0xlbmd0aCBkZXBlbmRpbmcgb24gdGhlIGF0dHJpYnV0ZSBuYW1lLgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGguaDoKKwogMjAxMS0wNi0xMSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fi
b2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQyLDYgKzE2NDIsNyBAQCBJRiAo
RU5BQkxFX1NWRykKICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKICAgICAgICAg
c3ZnL1NWR0FuZ2xlLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAK
KyAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMzMjAsNiArMzMyMCw3IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVh
bi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oIFwKQEAgLTMzMjgs
NiArMzMyOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUmVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
aCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
aCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBcCkBA
IC0zMzM2LDYgKzMzMzksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaCBc
CiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xp
cFBhdGhFbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA4ODYxMSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTA1NCw2
ICsxMDU0LDkgQEAKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRSZWN0LmgnLAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZFN0cmluZy5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0LmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFR5cGUu
aCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgnLAorICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Nv
bG9yLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaCcsCiAgICAg
ICAgICAgICAnc3ZnL1NWR0VsZW1lbnQuaCcsCkBAIC01Njc2LDYgKzU2NzksNyBAQAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmdsZS5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
aCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5j
cHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzMTcsMTAgKzIzMTcsMTMgQEAgSEVB
REVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZWRTdHJpbmcuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKyAgICBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
IFwKICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKICAg
ICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5
LmggXAogICAgIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmggXAogICAgIHN2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0NvbG9yLmggXApAQCAtMzI2NCw2ICszMjY3LDcgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAgIHN2Zy9TVkdBbHRH
bHlwaEVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuZ2xlLmNwcCBcCiAgICAg
ICAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBcCisgICAgICAgICAgICAg
IHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAg
XApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTY1MjQ2LDYgKzY1MjQ2LDE0IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRl
ZFR5cGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3ZnXFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRlRWxlbWVudC5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KQEAgLTY1MjYyLDYgKzY1MjcwLDEwIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRvckZhY3Rvcnku
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Zn
XFNWR0NpcmNsZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4
ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiwxMCBAQAogCQk0MUY1ODRDNzEwNDY1MkNC
MDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVz
c2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJNDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1IC8qIFJl
bmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJv
bHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFD
b250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLzsgfTsK
KwkJNDM0QzdEMzcxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0QzdEMzYxM0E1NDAz
NzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovOyB9OworCQk0MzU4NTRERDEzQTRE
REMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1ODU0RDkxM0E0RERDMDAwODdGRjgyIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoLmNwcCAqLzsgfTsKKwkJNDM1ODU0REUxM0E0RERDMDAwODdGRjgyIC8q
IFNWR0FuaW1hdGVkVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM1ODU0REExM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZS5oICov
OyB9OworCQk0MzU4NTRERjEzQTREREMwMDA4N0ZGODIgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNTg1
NERCMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovOyB9Owog
CQk0MzU4RTg2QTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4Njcx
MzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJ
NDM1OEU4NkIxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2ODEz
NjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLzsgfTsKIAkJ
NDM1OEU4NkMxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1
OEU4NjkxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRlcm5h
bC5oICovOyB9OwpAQCAtNzQ4OCw2ICs3NDkyLDEwIEBACiAJCTQxRjU4NEM2MTA0NjUyQ0IwMDlD
QUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVzc2FnZVBvcnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEzMDNEMTMxNkMyOUMwMEMwQkZD
NSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDM0QzdEMzYxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM1ODU0RDkxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1h
dGVkTGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0Fu
aW1hdGVkTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM1ODU0REEx
M0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY3MTM2MEEyMTYwMEU0
NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM1OEU4NjgxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzU4RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcz
OTcsNiArMTc0MDUsNyBAQAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmlkbCAqLywKIAkJCQkwODIzRDE1ODEyN0FENkFDMDAwRUJDOTUgLyog
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmggKi8sCiAJCQkJQjIyMjc3RTkwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkSW50ZWdlci5pZGwgKi8sCisJCQkJNDM1ODU0RDkxM0E0RERDMDAwODdGRjgy
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLywKIAkJCQkwODkwMjFBODEyNkVGNURFMDA5MkQ1
RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLywKIAkJCQlCMjIyNzdFQTBEMDBCRjFGMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaWRsICovLAogCQkJCTA4OTAyMUFDMTI2RUY1RTkwMDky
RDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCAqLywKQEAgLTE3NDEzLDYgKzE3NDIyLDgg
QEAKIAkJCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRs
ICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCAqLywKIAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmlkbCAqLywKKwkJCQk0MzU4NTREQTEzQTREREMwMDA4N0ZGODIgLyogU1ZH
QW5pbWF0ZWRUeXBlLmggKi8sCisJCQkJNDM1ODU0REIxM0E0RERDMDAwODdGRjgyIC8qIFNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLApAQCAtMTc0MjQsNiArMTc0MzUsNyBAQAogCQkJ
CUIyMjI3ODAxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzgwMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5oICov
LAogCQkJCUIyMjI3ODAzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRpb25FbGVtZW50Lmlk
bCAqLywKKwkJCQk0MzRDN0QzNjEzQTU0MDM3MDBBMEQ4NjYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5
LmggKi8sCiAJCQkJQjIyMjc4MDQwRDAwQkYxRjAwNzFCNzgyIC8qIHN2Z2F0dHJzLmluICovLAog
CQkJCUIyMjI3ODA1MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdDaXJjbGVFbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzgwNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQ2lyY2xlRWxlbWVudC5oICovLApA
QCAtMjMxNzMsNiArMjMxODUsOSBAQAogCQkJCUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBK
U0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QTg1QjZDMTM4RDU3M0Ew
MEVDQjdCMyAvKiBTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBODVCNzgxMzhE
NThFRTAwRUNCN0IzIC8qIEpTU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzNTg1
NERFMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQzNTg1NERGMTNBNEREQzAwMDg3RkY4MiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDM0QzdEMzcxM0E1NDAzNzAwQTBEODY2IC8qIFNWR0FuaW1h
dG9yRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNTkwNiw2ICsyNTkyMSw3IEBACiAJCQkJ
RkRGMDlEQzgxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0OUE4NUI2QjEzOEQ1NzNBMDBFQ0I3QjMgLyogU3RyZWFtRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBODVCNzcxMzhENThFRTAwRUNCN0IzIC8qIEpTU3RyZWFt
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDM1ODU0REQxM0E0RERDMDAwODdGRjgyIC8q
IFNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA4ODYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJTVkdBbHRHbHlwaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNs
dWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZExl
bmd0aC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5j
cHAJKHJldmlzaW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRvckZhY3RvcnkuaCIKICNpbmNs
dWRlICJTVkdDb2xvci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFy
c2VyVXRpbGl0aWVzLmgiCkBAIC03MCw4ICs3Miw2IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVy
VmFsdWVBbmRVbml0KGNvbnMKICAgICBTdHJpbmcgcGFyc2UgPSBpbi5zdHJpcFdoaXRlU3BhY2Uo
KTsKICAgICBpZiAocGFyc2UuZW5kc1dpdGgoIiUiKSkKICAgICAgICAgdW5pdExlbmd0aCA9IDE7
Ci0gICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgoInB4IikgfHwgcGFyc2UuZW5kc1dpdGgoInB0
IikgfHwgcGFyc2UuZW5kc1dpdGgoImVtIikpCi0gICAgICAgIHVuaXRMZW5ndGggPSAyOwogICAg
IGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJkZWciKSB8fCBwYXJzZS5lbmRzV2l0aCgicmFkIikp
CiAgICAgICAgIHVuaXRMZW5ndGggPSAzOwogICAgIGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJn
cmFkIikpCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFsdWVBbmRV
bml0KGNvbnMKICAgICByZXR1cm4gb2s7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RG
b3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29sb3ImIGNvbG9yKQor
dm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQq
IHRhcmdldEVsZW1lbnQsIENvbG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVu
dCk7CiAgICAgCkBAIC05OSw3ICs5OSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9y
Q3VycmVudENvbG9yCiAgICAgICAgIGNvbG9yID0gQ29sb3IoKTsKIH0KIAotc3RhdGljIGlubGlu
ZSB2b2lkIGFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCitzdGF0aWMg
aW5saW5lIHZvaWQgZ2V0UHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBzdmdQYXJlbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNT
RVJUKHN2Z1BhcmVudC0+aXNTdHlsZWQoKSk7CisgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2
Z1BhcmVudCktPmdldFByb3BlcnR5VmFsdWUoY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxv
Y2FsTmFtZSgpKSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFkanVzdEZvckluaGVy
aXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21l
bnQgdGhlIGNvbXB1dGVkIHN0eWxlIGdldHMgcmV0dXJuZWQgYXMgYSBTdHJpbmcgYW5kIG5lZWRz
IHRvIGdldCBwYXJzZWQgYWdhaW4uCiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50
IHRvIHdvcmsgd2l0aCB0aGUgdmFsdWUgdHlwZSBkaXJlY3RseSB0byBhdm9pZCB0aGUgU3RyaW5n
IHBhcnNpbmcuCkBAIC0xMTEsNyArMTE3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkanVzdEZv
ckluaGVyaXRhbmNlKAogCiAgICAgU1ZHRWxlbWVudCogc3ZnUGFyZW50ID0gc3RhdGljX2Nhc3Q8
U1ZHRWxlbWVudCo+KHBhcmVudCk7CiAgICAgaWYgKHN2Z1BhcmVudC0+aXNTdHlsZWQoKSkKLSAg
ICAgICAgdmFsdWUgPSBjb21wdXRlZFN0eWxlKHN2Z1BhcmVudCktPmdldFByb3BlcnR5VmFsdWUo
Y3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKSk7CisgICAgICAgIGdldFBy
b3BlcnR5VmFsdWUoc3ZnUGFyZW50LCBhdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wg
U1ZHQW5pbWF0ZUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CkBAIC0xMzYs
MTYgKzE0MiwxNyBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CiAgICAgY2FzZSBB
bmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXJMaXN0OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbzoKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICBjYXNlIEFuaW1h
dGVkU3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwogICAgIGNhc2UgQW5p
bWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVk
TGVuZ3RoOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZE51bWJlcjsKICAgICBjYXNlIEFuaW1hdGVkUGF0aDoKQEAgLTE1NCw4ICsxNjEsOCBAQCBBbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZFBvaW50czsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZENvbG9yOwotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgIGNhc2UgQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0OgorICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgogICAgICAgICAvLyBBbmlt
YXRpb25zIG9mIHRyYW5zZm9ybSBsaXN0cyBhcmUgbm90IGFsbG93ZWQgZm9yIDxhbmltYXRlPiBv
ciA8c2V0PgogICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5odG1s
I0FuaW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCiAgICAgICAgIHJldHVybiBBbmltYXRl
ZFVua25vd247CkBAIC0xNzEsMTQgKzE3OCw5IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUFuaW1hdGUKICAgICBBU1NFUlQocmVzdWx0RWxlbWVudCk7CiAgICAgYm9vbCBpc0lu
Rmlyc3RIYWxmT2ZBbmltYXRpb24gPSBwZXJjZW50YWdlIDwgMC41ZjsKICAgICBBbmltYXRpb25N
b2RlIGFuaW1hdGlvbk1vZGUgPSB0aGlzLT5hbmltYXRpb25Nb2RlKCk7Ci0gICAgU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCA9IDA7Ci0gICAgLy8gQXZvaWQgdGFyZ2V0RWxlbWVudCgpIGNhbGwg
aWYgcG9zc2libGUuIEl0IG1pZ2h0IHNsb3cgZG93biBhbmltYXRpb25zLgotICAgIGlmIChtX2Zy
b21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUgfHwgbV90b1Byb3BlcnR5VmFsdWVU
eXBlID09IEluaGVyaXRWYWx1ZQotICAgICAgICB8fCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9
PSBDdXJyZW50Q29sb3JWYWx1ZSB8fCBtX3RvUHJvcGVydHlWYWx1ZVR5cGUgPT0gQ3VycmVudENv
bG9yVmFsdWUpIHsKLSAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQo
KTsKLSAgICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgp
OworICAgIGlmICghdGFyZ2V0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
IChoYXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpKQogICAgICAgICBwZXJjZW50YWdlID0gMTsK
QEAgLTE4OSw3ICsxOTEsOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmlt
YXRlCiAgICAgLy8gQ2FuJ3QgYWNjdW11bGF0ZSBvdmVyIGEgc3RyaW5nIHByb3BlcnR5LgogICAg
IGlmIChyZXN1bHRzLT5tX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZFN0cmluZyAm
JiBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSAhPSBBbmltYXRlZFN0cmluZykKICAgICAgICAgcmV0
dXJuOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikg
eworICAgIHN3aXRjaCAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUpIHsKKyAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyOiB7CiAgICAgICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMg
ZnJvbSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KICAg
ICAgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pCiAgICAgICAgICAgICBtX2Zy
b21OdW1iZXIgPSByZXN1bHRzLT5tX2FuaW1hdGVkTnVtYmVyOwpAQCAtMjIzLDcgKzIyNiw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgICAgIHJl
c3VsdHMtPm1fYW5pbWF0ZWROdW1iZXIgPSBudW1iZXI7CiAgICAgICAgIHJldHVybjsKICAgICB9
IAotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7Cisg
ICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGlmIChhbmltYXRpb25Nb2RlID09IFRv
QW5pbWF0aW9uKQogICAgICAgICAgICAgbV9mcm9tQ29sb3IgPSByZXN1bHRzLT5tX2FuaW1hdGVk
Q29sb3I7CiAKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxj
dWxhdGVBbmltYXRlCiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkQ29sb3IgPSBjb2xv
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgY2FzZSBBbmltYXRlZFBhdGg6IHsKICAgICAgICAg
aWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHRzLT5tX2FuaW1hdGVkUGF0aFBvaW50ZXIpOwogICAgICAgICAgICAgbV9mcm9tUGF0aCA9
IHJlc3VsdHMtPm1fYW5pbWF0ZWRQYXRoUG9pbnRlci0+Y29weSgpOwpAQCAtMjg5LDcgKzI5Miw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9
PSBBbmltYXRlZFBvaW50cykgeworICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKICAgICAgICAg
aWYgKCFwZXJjZW50YWdlKQogICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cyA9
IG1fZnJvbVBvaW50czsKICAgICAgICAgZWxzZSBpZiAocGVyY2VudGFnZSA9PSAxKQpAQCAtMzA2
LDYgKzMwOSwxNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdHMt
Pm1fYW5pbWF0ZWRUeXBlKTsKKyAgICAgICAgLy8gVGFyZ2V0IGVsZW1lbnQgbWlnaHQgaGF2ZSBj
aGFuZ2VkLgorICAgICAgICBtX2FuaW1hdG9yLT5zZXRDb250ZXh0RWxlbWVudCh0YXJnZXRFbGVt
ZW50KTsKKyAgICAgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSh0aGlzLCBw
ZXJjZW50YWdlLCByZXBlYXQsIG1fZnJvbVR5cGUsIG1fdG9UeXBlLCByZXN1bHRzLT5tX2FuaW1h
dGVkVHlwZSwgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlLCBtX3RvUHJv
cGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CiAgICAgQVNTRVJUKGFuaW1hdGlv
bk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24g
fHwgYW5pbWF0aW9uTW9kZSA9PSBWYWx1ZXNBbmltYXRpb24pOwogICAgIC8vIFJlcGxhY2UgJ2N1
cnJlbnRDb2xvcicgLyAnaW5oZXJpdCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVz
LgogICAgIGlmIChtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpCkBAIC0z
NDcsNyArMzYxLDggQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAog
CiAgICAgLy8gRklYTUU6IE5lZWRzIG1vcmUgc29saWQgd2F5IGRldGVybWluZSB0YXJnZXQgYXR0
cmlidXRlIHR5cGUuCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmlt
YXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRy
aWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpIHsKKyAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRy
aWJ1dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGJvb2wgZnJv
bUlzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihmcm9tU3RyaW5n
KTsKICAgICAgICAgYm9vbCB0b0lzQ3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJl
bnRDb2xvcih0b1N0cmluZyk7CiAgICAgICAgIGlmIChmcm9tSXNDdXJyZW50Q29sb3IpCkBAIC0z
NjIsMTQgKzM3NywxOCBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5k
CiAgICAgICAgIGJvb2wgdG9Jc1ZhbGlkID0gbV90b0NvbG9yLmlzVmFsaWQoKSB8fCB0b0lzQ3Vy
cmVudENvbG9yIHx8IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWU7CiAgICAg
ICAgIGlmICgoZnJvbUlzVmFsaWQgJiYgdG9Jc1ZhbGlkKSB8fCAodG9Jc1ZhbGlkICYmIGFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOiB7CiAgICAg
ICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAgICAgICBpZiAocGFyc2VOdW1iZXJWYWx1
ZUFuZFVuaXQodG9TdHJpbmcsIG1fdG9OdW1iZXIsIG1fbnVtYmVyVW5pdCkpIHsKICAgICAgICAg
ICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRoZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxh
dGVyCiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uIHx8IHBh
cnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJV
bml0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgIH0gZWxz
ZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBTVkdQYXRo
UGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0b3J5OjpzZWxmKCk7CiAg
ICAgICAgIGlmIChmYWN0b3J5LT5idWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyh0b1N0
cmluZywgbV90b1BhdGgsIFVuYWx0ZXJlZFBhcnNpbmcpKSB7CiAgICAgICAgICAgICAvLyBGb3Ig
dG8tYW5pbWF0aW9ucyB0aGUgZnJvbSBudW1iZXIgaXMgY2FsY3VsYXRlZCBsYXRlcgpAQCAtMzc4
LDEzICszOTcsMjMgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAog
ICAgICAgICB9CiAgICAgICAgIG1fZnJvbVBhdGguY2xlYXIoKTsKICAgICAgICAgbV90b1BhdGgu
Y2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1h
dGVkUG9pbnRzKSB7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkUG9p
bnRzOiB7CiAgICAgICAgIG1fZnJvbVBvaW50cy5jbGVhcigpOwogICAgICAgICBpZiAocG9pbnRz
TGlzdEZyb21TVkdEYXRhKG1fZnJvbVBvaW50cywgZnJvbVN0cmluZykpIHsKICAgICAgICAgICAg
IG1fdG9Qb2ludHMuY2xlYXIoKTsKICAgICAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0Rh
dGEobV90b1BvaW50cywgdG9TdHJpbmcpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OiB7CisgICAgICAgIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyht
X2Zyb21UeXBlLCBtX3RvVHlwZSwgZnJvbVN0cmluZywgdG9TdHJpbmcpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IG1fZnJvbVN0cmluZyA9IGZyb21TdHJpbmc7CiAgICAgbV90b1N0cmluZyA9IHRvU3RyaW5nOwpA
QCAtNDAyLDcgKzQzMSw4IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21B
bmQKIAogICAgIEFTU0VSVCghaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSk7CiAgICAgbV9h
bmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFy
Z2V0RWxlbWVudCk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
Q29sb3IpIHsKKyAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKSB7CisgICAgY2Fz
ZSBBbmltYXRlZENvbG9yOiB7CiAgICAgICAgIGJvb2wgZnJvbUlzQ3VycmVudENvbG9yID0gYXR0
cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihmcm9tU3RyaW5nKTsKICAgICAgICAgYm9vbCBieUlz
Q3VycmVudENvbG9yID0gYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihieVN0cmluZyk7CiAg
ICAgICAgIGlmIChmcm9tSXNDdXJyZW50Q29sb3IpCkBAIC00MTcsNyArNDQ3LDE0IEBAIGJvb2wg
U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgaWYgKCghbV9mcm9t
Q29sb3IuaXNWYWxpZCgpICYmICFmcm9tSXNDdXJyZW50Q29sb3IpCiAgICAgICAgICAgICB8fCAo
IW1fdG9Db2xvci5pc1ZhbGlkKCkgJiYgIWJ5SXNDdXJyZW50Q29sb3IpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOiB7CisgICAgICAgIGVuc3VyZUFuaW1hdG9yKCktPmNh
bGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwgZnJvbVN0cmluZywg
YnlTdHJpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIH0KKyAgICBkZWZhdWx0Ogog
ICAgICAgICBtX251bWJlclVuaXQgPSBTdHJpbmcoKTsKICAgICAgICAgbV9mcm9tTnVtYmVyID0g
MDsKICAgICAgICAgaWYgKCFmcm9tU3RyaW5nLmlzRW1wdHkoKSAmJiAhcGFyc2VOdW1iZXJWYWx1
ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQpAQCAtNDM2
LDEzICs0NzMsMTUgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQog
ICAgIG1fYW5pbWF0ZWRTdHJpbmcgPSBiYXNlU3RyaW5nOwogICAgIEFuaW1hdGVkQXR0cmlidXRl
VHlwZSBsYXN0VHlwZSA9IG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlOwogICAgIG1fYW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlID0gZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKHRhcmdldEVsZW1l
bnQpOwotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7
CisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0
ZWRDb2xvcjoKICAgICAgICAgbV9hbmltYXRlZENvbG9yID0gYmFzZVN0cmluZy5pc0VtcHR5KCkg
PyBDb2xvcigpIDogU1ZHQ29sb3I6OmNvbG9yRnJvbVJHQkNvbG9yU3RyaW5nKGJhc2VTdHJpbmcp
OwogICAgICAgICBpZiAoaXNDb250cmlidXRpbmcoZWxhcHNlZCgpKSkgewogICAgICAgICAgICAg
bV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBsYXN0VHlwZTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5p
bWF0ZWROdW1iZXIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
ICAgICAgICAgaWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2FuaW1h
dGVkTnVtYmVyID0gMDsKICAgICAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwpAQCAt
NDUwLDE1ICs0ODksMjMgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1
ZQogICAgICAgICB9CiAgICAgICAgIGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdChiYXNlU3Ry
aW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVuaXQpKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRo
KSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAgICAgICAgIG1f
YW5pbWF0ZWRQYXRoLmNsZWFyKCk7CiAgICAgICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0
b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNlbGYoKTsKICAgICAgICAgZmFjdG9yeS0+YnVp
bGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoYmFzZVN0cmluZywgbV9hbmltYXRlZFBhdGgs
IFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2FuaW1hdGVkUGF0aFBvaW50ZXIgPSBtX2Fu
aW1hdGVkUGF0aC5nZXQoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9hbmlt
YXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpIHsKKyAgICB9CisgICAgY2FzZSBB
bmltYXRlZFBvaW50czoKICAgICAgICAgbV9hbmltYXRlZFBvaW50cy5jbGVhcigpOwogICAgICAg
ICByZXR1cm47CisgICAgY2FzZSBBbmltYXRlZExlbmd0aDogeworICAgICAgICBtX2FuaW1hdGVk
VHlwZSA9IGVuc3VyZUFuaW1hdG9yKCktPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVN0cmluZyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID0gQW5pbWF0ZWRTdHJpbmc7CiB9CkBA
IC00ODMsNiArNTMwLDggQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9U
YQogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBB
bmltYXRlZFBvaW50cykKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy5p
c0VtcHR5KCkgPyBtX2FuaW1hdGVkU3RyaW5nIDogbV9hbmltYXRlZFBvaW50cy52YWx1ZUFzU3Ry
aW5nKCk7CisgICAgZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRM
ZW5ndGgpCisgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRUeXBlLT5sZW5ndGgoKS52
YWx1ZUFzU3RyaW5nKCk7CiAgICAgZWxzZQogICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2FuaW1h
dGVkU3RyaW5nOwogICAgIApAQCAtNTE0LDggKzU2MywxNyBAQCBmbG9hdCBTVkdBbmltYXRlRWxl
bWVudDo6Y2FsY3VsYXRlRGlzdGFuCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIHJl
dHVybiBDb2xvckRpc3RhbmNlKGZyb20sIHRvKS5kaXN0YW5jZSgpOwogICAgIH0KKyAgICBpZiAo
bV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpCisgICAgICAgIHJldHVy
biBlbnN1cmVBbmltYXRvcigpLT5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLCBmcm9tU3RyaW5nLCB0
b1N0cmluZyk7CiAgICAgcmV0dXJuIC0xOwogfQotICAgCisKK1NWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yKiBTVkdBbmltYXRlRWxlbWVudDo6ZW5zdXJlQW5pbWF0b3IoKQoreworICAgIGlmICghbV9h
bmltYXRvcikKKyAgICAgICAgbV9hbmltYXRvciA9IFNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRl
KHRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUsIGF0dHJpYnV0ZU5hbWUo
KSk7CisgICAgcmV0dXJuIG1fYW5pbWF0b3IuZ2V0KCk7Cit9CisKIH0KICNlbmRpZiAvLyBFTkFC
TEUoU1ZHKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlz
aW9uIDg4NjExKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUo
U1ZHX0FOSU1BVElPTikKIAogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIK
ICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKQEAgLTM5LDYgKzQxLDkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgp
OworICAgIAorICAgIHN0YXRpYyB2b2lkIGFkanVzdEZvckN1cnJlbnRDb2xvcihTVkdFbGVtZW50
KiB0YXJnZXRFbGVtZW50LCBDb2xvciYpOworICAgIHZvaWQgYWRqdXN0Rm9ySW5oZXJpdGFuY2Uo
U1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIFN0cmluZyYg
dmFsdWUpOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CkBAIC01MSw2ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywg
Y29uc3QgU3RyaW5nJiB0b1N0cmluZyk7CiAKIHByaXZhdGU6CisgICAgU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IqIGVuc3VyZUFuaW1hdG9yKCk7CisgICAgCiAgICAgLy8gSWYgd2UgaGF2ZSAnY3Vy
cmVudENvbG9yJyBvciAnaW5oZXJpdCcgYXMgYW5pbWF0aW9uIHZhbHVlLCB3ZSBuZWVkIHRvIGdy
YWIgdGhlIHZhbHVlIGR1cmluZyB0aGUgYW5pbWF0aW9uCiAgICAgLy8gc2luY2UgdGhlIHZhbHVl
IGNhbiBiZSBhbmltYXRlZCBpdHNlbGYuCiAgICAgZW51bSBBbmltYXRlZFByb3BlcnR5VmFsdWVU
eXBlIHsKQEAgLTgyLDYgKzg5LDEyIEBAIHByaXZhdGU6CiAgICAgU1ZHUG9pbnRMaXN0IG1fZnJv
bVBvaW50czsKICAgICBTVkdQb2ludExpc3QgbV90b1BvaW50czsKICAgICBTVkdQb2ludExpc3Qg
bV9hbmltYXRlZFBvaW50czsKKyAgICAKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX2Zy
b21UeXBlOworICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IG1fdG9UeXBlOworICAgIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+IG1fYW5pbWF0ZWRUeXBlOworICAgIAorICAgIE93blB0cjxTVkdB
bmltYXRlZFR5cGVBbmltYXRvcj4gbV9hbmltYXRvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
CisgICAgOiBTVkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRlZExlbmd0aCwgY29udGV4dEVs
ZW1lbnQpCisgICAgLCBtX2xlbmd0aE1vZGUoU1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUg
U1ZHTGVuZ3RoJiBzaGFyZWRTVkdMZW5ndGgoU1ZHTGVuZ3RoTW9kZSBtb2RlLCBjb25zdCBTdHJp
bmcmIHZhbHVlQXNTdHJpbmcpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTVkdMZW5ndGgs
IHNoYXJlZExlbmd0aCwgKCkpOworICAgIHNoYXJlZExlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZh
bHVlQXNTdHJpbmcsIG1vZGUpOworICAgIHJldHVybiBzaGFyZWRMZW5ndGg7Cit9CisKK1Bhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChuZXcgU1ZHTGVuZ3RoKG1fbGVuZ3RoTW9kZSwgc3RyaW5n
KSk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFu
ZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0
cmluZykKK3sKKyAgICBmcm9tID0gY29uc3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5nKTsKKyAg
ICB0byA9IGNvbnN0cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOworfQorCit2b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJp
bmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpCit7CisgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOworICAgIAorICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZy
b21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyhieVN0cmluZyk7CisgICAg
CisgICAgU1ZHTGVuZ3RoJiBmcm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCk7CisgICAgU1ZHTGVu
Z3RoJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICB0b0xlbmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShtX2NvbnRleHRFbGVtZW50KSAr
IGZyb21MZW5ndGgudmFsdWUobV9jb250ZXh0RWxlbWVudCksIG1fY29udGV4dEVsZW1lbnQsIGVj
KTsKKyAgICBBU1NFUlQoIWVjKTsKK30KKwordm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiBzbWlsRWxlbWVudCwgZmxv
YXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIGFuaW1hdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0
eUluaGVyaXRzKQoreworICAgIEFTU0VSVChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmltYXRpb25FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVudCk7CisgICAgCisgICAg
QW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlID0gYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpOworICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMgZnJvbSB0aGUg
bG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KKyAgICAvLyBGSVhN
RTogYXZvaWQgc3RyaW5nIHBhcnNpbmcuCisgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gVG9Bbmlt
YXRpb24pCisgICAgICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGFuaW1hdGVkLT5sZW5n
dGgoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgIAorICAgIC8vIFJlcGxhY2UgJ2luaGVyaXQnIGJ5
IHRoZWlyIGNvbXB1dGVkIHByb3BlcnR5IHZhbHVlcy4KKyAgICBmbG9hdCBudW1iZXI7CisgICAg
ZmxvYXQgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQp
OworICAgIGZsb2F0IHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1l
bnQpOworICAgIAorICAgIGlmIChmcm9tUHJvcGVydHlJbmhlcml0cykgeworICAgICAgICBTdHJp
bmcgZnJvbUxlbmd0aFN0cmluZzsKKyAgICAgICAgYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9y
SW5oZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRl
TmFtZSgpLCBmcm9tTGVuZ3RoU3RyaW5nKTsKKyAgICAgICAgZnJvbUxlbmd0aCA9IHNoYXJlZFNW
R0xlbmd0aChtX2xlbmd0aE1vZGUsIGZyb21MZW5ndGhTdHJpbmcpLnZhbHVlKG1fY29udGV4dEVs
ZW1lbnQpOworICAgIH0KKyAgICBpZiAodG9Qcm9wZXJ0eUluaGVyaXRzKSB7CisgICAgICAgIFN0
cmluZyB0b0xlbmd0aFN0cmluZzsKKyAgICAgICAgYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9y
SW5oZXJpdGFuY2UobV9jb250ZXh0RWxlbWVudCwgYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRl
TmFtZSgpLCB0b0xlbmd0aFN0cmluZyk7CisgICAgICAgIHRvTGVuZ3RoID0gc2hhcmVkU1ZHTGVu
Z3RoKG1fbGVuZ3RoTW9kZSwgdG9MZW5ndGhTdHJpbmcpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQp
OyAKKyAgICB9CisgICAgCisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmNhbGNNb2RlKCkgPT0g
Q2FsY01vZGVEaXNjcmV0ZSkKKyAgICAgICAgbnVtYmVyID0gcGVyY2VudGFnZSA8IDAuNWYgPyBm
cm9tTGVuZ3RoIDogdG9MZW5ndGg7CisgICAgZWxzZQorICAgICAgICBudW1iZXIgPSAodG9MZW5n
dGggLSBmcm9tTGVuZ3RoKSAqIHBlcmNlbnRhZ2UgKyBmcm9tTGVuZ3RoOworICAgIAorICAgIC8v
IEZJWE1FOiBUaGlzIGlzIG5vdCBjb3JyZWN0IGZvciB2YWx1ZXMgYW5pbWF0aW9uLgorICAgIGlm
IChhbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQpCisgICAg
ICAgIG51bWJlciArPSB0b0xlbmd0aCAqIHJlcGVhdENvdW50OworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIFNWR0xlbmd0aCYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVu
Z3RoKCk7CisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiBhbmltYXRp
b25Nb2RlICE9IFRvQW5pbWF0aW9uKSB7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkTGVuZ3RoID0g
YW5pbWF0ZWQtPmxlbmd0aCgpLnZhbHVlKG1fY29udGV4dEVsZW1lbnQpOworICAgICAgICBhbmlt
YXRlZExlbmd0aCArPSBudW1iZXI7CisgICAgICAgIGFuaW1hdGVkU1ZHTGVuZ3RoLnNldFZhbHVl
KGFuaW1hdGVkTGVuZ3RoLCBtX2NvbnRleHRFbGVtZW50LCBlYyk7CisgICAgfSBlbHNlCisgICAg
ICAgIGFuaW1hdGVkU1ZHTGVuZ3RoLnNldFZhbHVlKG51bWJlciwgbV9jb250ZXh0RWxlbWVudCwg
ZWMpOworICAgIEFTU0VSVCghZWMpOworfQorCitmbG9hdCBTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjpjYWxjdWxhdGVEaXN0YW5jZShTVkdTTUlMRWxlbWVudCogc21pbEVsZW1lbnQsIGNvbnN0
IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKK3sKKyAgICBBU1NF
UlQoc21pbEVsZW1lbnQpOworICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKKyAgICBTVkdB
bmltYXRlRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVF
bGVtZW50Kj4oc21pbEVsZW1lbnQpOyAgICAKKyAgICBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUg
PSBTVkdMZW5ndGg6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhbmltYXRp
b25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCkpOworICAgIFNWR0xlbmd0aCBmcm9tID0gU1ZHTGVu
Z3RoKGxlbmd0aE1vZGUsIGZyb21TdHJpbmcpOworICAgIFNWR0xlbmd0aCB0byA9IFNWR0xlbmd0
aChsZW5ndGhNb2RlLCB0b1N0cmluZyk7CisgICAgcmV0dXJuIGZhYnNmKHRvLnZhbHVlKG1fY29u
dGV4dEVsZW1lbnQpIC0gZnJvbS52YWx1ZShtX2NvbnRleHRFbGVtZW50KSk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgJKHJldmlzaW9uIDg4NjExKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNkZWZpbmUgU1ZHQW5pbWF0ZWRMZW5ndGhfaAogCiAjaWYgRU5BQkxFKFNW
RykKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAKQEAgLTM1LDcgKzM2
LDI3IEBAIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHQW5pbWF0ZWRMZW4KICNkZWZpbmUg
REVGSU5FX0FOSU1BVEVEX0xFTkdUSChPd25lclR5cGUsIERPTUF0dHJpYnV0ZSwgVXBwZXJQcm9w
ZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAogREVGSU5FX0FOSU1BVEVEX1BST1BFUlRZKE93bmVyVHlw
ZSwgRE9NQXR0cmlidXRlLCBET01BdHRyaWJ1dGUubG9jYWxOYW1lKCksIFNWR0FuaW1hdGVkTGVu
Z3RoLCBTVkdMZW5ndGgsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCiAKKyNpZiBFTkFC
TEUoU1ZHX0FOSU1BVElPTikKK2NsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IgOiBwdWJs
aWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgeworICAgIAorcHVibGljOgorICAgIFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3IoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKCkgeyB9
CisKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21B
bmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHRvU3RyaW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFs
dWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRl
ZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYg
YnlTdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NN
SUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIE93blB0cjxT
VkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0
eUluaGVyaXRzKTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxF
bGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5n
KTsKKworcHJpdmF0ZToKKyAgICBTVkdMZW5ndGhNb2RlIG1fbGVuZ3RoTW9kZTsKK307CiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWZuZGVmIFNWR0FuaW1hdGVkVHlwZV9oCisjZGVmaW5lIFNWR0FuaW1hdGVkVHlwZV9oCisKKyNp
ZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdMZW5n
dGguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlZFR5cGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKFNWR0xlbmd0aCogbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRM
ZW5ndGgsIGxlbmd0aCkpOworICAgIH0KKworICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVHlwZSgp
CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAg
ICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7CisgICAgfQorICAgIAorICAgIEFuaW1hdGVkQXR0cmli
dXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgCisgICAgU1ZHTGVu
Z3RoJiBsZW5ndGgoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExl
bmd0aCk7CisgICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKKyAgICB9CisgICAgCitwcml2
YXRlOgorICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSwgU1ZH
TGVuZ3RoKiBsZW5ndGgpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgeworICAgICAgICBt
X2RhdGEubGVuZ3RoID0gbGVuZ3RoOworICAgIH0KKyAgICAKKyAgICBBbmltYXRlZEF0dHJpYnV0
ZVR5cGUgbV90eXBlOworICAgIAorICAgIHVuaW9uIERhdGFVbmlvbiB7CisgICAgICAgIERhdGFV
bmlvbigpCisgICAgICAgICAgICA6IGxlbmd0aCgwKQorICAgICAgICB7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIC8vIEZJWE1FOiBNb3JlIFNWRyBwcmltaXRpdmUgdHlwZXMgbmVlZCB0
byBiZSBhZGRlZCBzdGVwIGJ5IHN0ZXAuCisgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOworICAg
IH0gbV9kYXRhOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1h
dGVkVHlwZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWZuZGVmIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yX2gKKyNkZWZpbmUgU1ZHQW5pbWF0
ZWRUeXBlQW5pbWF0b3JfaAorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJ
T04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlLmgiCisjaW5jbHVkZSAiU1ZHU01JTEVsZW1l
bnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGVBbmltYXRvcigp
IHsgfQorICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJikgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBjYWxj
dWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxh
dGVGcm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywg
Y29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQg
cmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IHRvVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJp
dHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKSA9IDA7CisgICAgdmlydHVhbCBmbG9hdCBjYWxj
dWxhdGVEaXN0YW5jZShTVkdTTUlMRWxlbWVudCosIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywg
Y29uc3QgU3RyaW5nJiB0b1N0cmluZykgPSAwOworCisgICAgdm9pZCBzZXRDb250ZXh0RWxlbWVu
dChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkgeyBtX2NvbnRleHRFbGVtZW50ID0gY29udGV4
dEVsZW1lbnQ7IH0KKyAgICAKK3Byb3RlY3RlZDoKKyAgICBTVkdBbmltYXRlZFR5cGVBbmltYXRv
cihBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQp
CisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9jb250ZXh0RWxlbWVudChjb250
ZXh0RWxlbWVudCkKKyAgICB7CisgICAgfQorCisgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIG1f
dHlwZTsKKyAgICBTVkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklN
QVRJT04pCisjZW5kaWYgLy8gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3JfaApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gODg2MTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OCw3ICsxNTgsMTIgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZU1h
cHBlZEF0dAogICAgIH0KIAogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZhbHVl
c0F0dHIpIHsKKyAgICAgICAgLy8gUGVyIHRoZSBTTUlMIHNwZWNpZmljYXRpb24sIGxlYWRpbmcg
YW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlLAorICAgICAgICAvLyBhbmQgd2hpdGUgc3BhY2UgYmVm
b3JlIGFuZCBhZnRlciBzZW1pY29sb24gc2VwYXJhdG9ycywgaXMgYWxsb3dlZCBhbmQgd2lsbCBi
ZSBpZ25vcmVkLgorICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9hbmltYXRl
Lmh0bWwjVmFsdWVzQXR0cmlidXRlCiAgICAgICAgIGF0dHItPnZhbHVlKCkuc3RyaW5nKCkuc3Bs
aXQoJzsnLCBtX3ZhbHVlcyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3Zh
bHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG1fdmFsdWVzW2ldID0gbV92YWx1ZXNbaV0u
c3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI0OCw3ICsy
NTMsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmVuZEVsZW1lbnRBdChmCiAgICAgYWRk
RW5kVGltZShlbGFwc2VkKCkgKyBvZmZzZXQpOwogfQogCi1TVkdBbmltYXRpb25FbGVtZW50OjpB
bmltYXRpb25Nb2RlIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFuaW1hdGlvbk1vZGUoKSBjb25zdAor
QW5pbWF0aW9uTW9kZSBTVkdBbmltYXRpb25FbGVtZW50OjphbmltYXRpb25Nb2RlKCkgY29uc3QK
IHsKICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1zbWlsLWFuaW1hdGlvbi0y
MDAxMDkwNC8jQW5pbUZ1bmNWYWx1ZXMKICAgICBpZiAoaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0
VGFnKSkKQEAgLTI2NCw3ICsyNjksNyBAQCBTVkdBbmltYXRpb25FbGVtZW50OjpBbmltYXRpb25N
b2RlIFNWR0FuCiAgICAgcmV0dXJuIE5vQW5pbWF0aW9uOwogfQogCi1TVkdBbmltYXRpb25FbGVt
ZW50OjpDYWxjTW9kZSBTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjTW9kZSgpIGNvbnN0CitDYWxj
TW9kZSBTVkdBbmltYXRpb25FbGVtZW50OjpjYWxjTW9kZSgpIGNvbnN0CiB7ICAgIAogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0
ZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGluZWFy
LCAoImxpbmVhciIpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuaAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0zNiw3ICszNywyNCBAQAogI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCitlbnVtIEFuaW1hdGlvbk1vZGUgeworICAg
IE5vQW5pbWF0aW9uLAorICAgIEZyb21Ub0FuaW1hdGlvbiwKKyAgICBGcm9tQnlBbmltYXRpb24s
CisgICAgVG9BbmltYXRpb24sCisgICAgQnlBbmltYXRpb24sCisgICAgVmFsdWVzQW5pbWF0aW9u
LAorICAgIFBhdGhBbmltYXRpb24gLy8gVXNlZCBieSBBbmltYXRlTW90aW9uLgorfTsKKworZW51
bSBDYWxjTW9kZSB7CisgICAgQ2FsY01vZGVEaXNjcmV0ZSwKKyAgICBDYWxjTW9kZUxpbmVhciwK
KyAgICBDYWxjTW9kZVBhY2VkLAorICAgIENhbGNNb2RlU3BsaW5lCit9OworCiBjbGFzcyBDb25k
aXRpb25FdmVudExpc3RlbmVyOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIApAQCAtNDksNyArNjcs
NyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgZ2V0U3RhcnRUaW1lKCkgY29uc3Q7CiAgICAgZmxvYXQg
Z2V0Q3VycmVudFRpbWUoKSBjb25zdDsKICAgICBmbG9hdCBnZXRTaW1wbGVEdXJhdGlvbihFeGNl
cHRpb25Db2RlJikgY29uc3Q7Ci0gICAgCisKICAgICAvLyBFbGVtZW50VGltZUNvbnRyb2wKICAg
ICB2aXJ0dWFsIHZvaWQgYmVnaW5FbGVtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxl
bWVudEF0KGZsb2F0IG9mZnNldCk7CkBAIC01OCwzNiArNzYsMzYgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgaXNUYXJnZXRBdHRyaWJ1dGVDU1NQcm9wZXJ0eShTVkdFbGVtZW50KiwgY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogCisgICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0FjY3VtdWxhdGVkKCkgY29uc3Q7CisgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25N
b2RlKCkgY29uc3Q7CisgICAgQ2FsY01vZGUgY2FsY01vZGUoKSBjb25zdDsKKwogcHJvdGVjdGVk
OgogICAgIFNWR0FuaW1hdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAK
LSAgICBlbnVtIENhbGNNb2RlIHsgQ2FsY01vZGVEaXNjcmV0ZSwgQ2FsY01vZGVMaW5lYXIsIENh
bGNNb2RlUGFjZWQsIENhbGNNb2RlU3BsaW5lIH07Ci0gICAgQ2FsY01vZGUgY2FsY01vZGUoKSBj
b25zdDsKLSAgICAKLSAgICBlbnVtIEF0dHJpYnV0ZVR5cGUgeyBBdHRyaWJ1dGVUeXBlQ1NTLCBB
dHRyaWJ1dGVUeXBlWE1MLCBBdHRyaWJ1dGVUeXBlQXV0byB9OworICAgIGVudW0gQXR0cmlidXRl
VHlwZSB7CisgICAgICAgIEF0dHJpYnV0ZVR5cGVDU1MsCisgICAgICAgIEF0dHJpYnV0ZVR5cGVY
TUwsCisgICAgICAgIEF0dHJpYnV0ZVR5cGVBdXRvCisgICAgfTsKICAgICBBdHRyaWJ1dGVUeXBl
IGF0dHJpYnV0ZVR5cGUoKSBjb25zdDsKLSAgICAKKwogICAgIFN0cmluZyB0b1ZhbHVlKCkgY29u
c3Q7CiAgICAgU3RyaW5nIGJ5VmFsdWUoKSBjb25zdDsKICAgICBTdHJpbmcgZnJvbVZhbHVlKCkg
Y29uc3Q7Ci0gICAgCi0gICAgZW51bSBBbmltYXRpb25Nb2RlIHsgTm9BbmltYXRpb24sIFRvQW5p
bWF0aW9uLCBCeUFuaW1hdGlvbiwgVmFsdWVzQW5pbWF0aW9uLCBGcm9tVG9BbmltYXRpb24sIEZy
b21CeUFuaW1hdGlvbiwgUGF0aEFuaW1hdGlvbiB9OwotICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0
aW9uTW9kZSgpIGNvbnN0OwotICAgIAorCiAgICAgU3RyaW5nIHRhcmdldEF0dHJpYnV0ZUJhc2VW
YWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGFyZ2V0QXR0cmlidXRlQW5pbWF0ZWRWYWx1ZShj
b25zdCBTdHJpbmcmKTsKLSAgICAKLSAgICBib29sIGlzQWRkaXRpdmUoKSBjb25zdDsKLSAgICBi
b29sIGlzQWNjdW11bGF0ZWQoKSBjb25zdDsKIAogICAgIC8vIGZyb20gU1ZHU01JTEVsZW1lbnQK
ICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRlZEFjdGl2ZUludGVydmFsKCk7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUFuaW1hdGlvbihmbG9hdCBwZXJjZW50LCB1bnNpZ25lZCByZXBlYXQsIFNWR1NN
SUxFbGVtZW50KiByZXN1bHRFbGVtZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZW5kZWRBY3RpdmVJ
bnRlcnZhbCgpOwotICAgIAorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtOTcsNyArMTE1
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShm
bG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRF
bGVtZW50KSA9IDA7CiAgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBT
dHJpbmcmIC8qZnJvbVN0cmluZyovLCBjb25zdCBTdHJpbmcmIC8qdG9TdHJpbmcqLykgeyByZXR1
cm4gLTEuZjsgfQogICAgIHZpcnR1YWwgUGF0aCBhbmltYXRpb25QYXRoKCkgY29uc3QgeyByZXR1
cm4gUGF0aCgpOyB9Ci0gICAgCisKICAgICB2b2lkIGN1cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmlt
YXRpb24oZmxvYXQgcGVyY2VudCwgZmxvYXQmIGVmZmVjdGl2ZVBlcmNlbnQsIFN0cmluZyYgZnJv
bSwgU3RyaW5nJiB0bykgY29uc3Q7CiAgICAgdm9pZCBjYWxjdWxhdGVLZXlUaW1lc0ZvckNhbGNN
b2RlUGFjZWQoKTsKICAgICBmbG9hdCBjYWxjdWxhdGVQZXJjZW50RnJvbUtleVBvaW50cyhmbG9h
dCBwZXJjZW50KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZh
Y3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0
b3J5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0
b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
Zm5kZWYgU1ZHQW5pbWF0b3JGYWN0b3J5X2gKKyNkZWZpbmUgU1ZHQW5pbWF0b3JGYWN0b3J5X2gK
KworI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkTGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFNW
R0FuaW1hdG9yRmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgQW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogQWRkIGFuaW1hdGlvbiBzdXBw
b3J0IGZvciBhbGwgU1ZHIHVuaXRzLgorICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZVR5cGUpIHsK
KyAgICAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpKTsKKyAgICAgICAgfQorICAgIH0K
KworcHJpdmF0ZToKKyAgICBTVkdBbmltYXRvckZhY3RvcnkoKSB7IH0KKworfTsKKyAgICAKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShT
VkdfQU5JTUFUSU9OKQorI2VuZGlmIC8vIFNWR0FuaW1hdG9yRmFjdG9yeV9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmNwcAkocmV2aXNpb24gODg2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSwxNSBAQCBTVkdM
ZW5ndGg6OlNWR0xlbmd0aChTVkdMZW5ndGhNb2RlIG1vZGUsCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBlYyk7CiB9CisgICAg
Cit2b2lkIFNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlQXNT
dHJpbmcsIFNWR0xlbmd0aE1vZGUgbW9kZSkKK3sKKyAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0
cyA9IDA7CisgICAgbV91bml0ID0gc3RvcmVVbml0KG1vZGUsIExlbmd0aFR5cGVOdW1iZXIpOwor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0
cmluZywgZWMpOworICAgIEFTU0VSVCghZWMpOworfQogCiBTVkdMZW5ndGg6OlNWR0xlbmd0aChj
b25zdCBTVkdMZW5ndGgmIG90aGVyKQogICAgIDogbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMob3Ro
ZXIubV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC01NjksNiArNTc4LDQxIEBAIFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IFNWR0xlbmd0aDoKICAgICByZXR1cm4gQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZShsZW5ndGgudmFsdWVJblNwZWNpZmllZFVuaXRzKCksIGNzc1R5cGUpOwog
fQogCitTVkdMZW5ndGhNb2RlIFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3Ro
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoreworICAgIHR5cGVkZWYg
SGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5ndGhNb2RlRm9yTGVuZ3Ro
QXR0cmlidXRlTWFwOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoTW9kZUZvckxlbmd0
aEF0dHJpYnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAgCisgICAgaWYgKHNfbGVu
Z3RoTW9kZU1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdO
YW1lczo6eEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5z
ZXQoU1ZHTmFtZXM6OnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhN
b2RlTWFwLnNldChTVkdOYW1lczo6Y3hBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBz
X2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpjeUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOwor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpkeEF0dHIsIExlbmd0aE1vZGVX
aWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmR5QXR0ciwgTGVu
Z3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OmZ4
QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdO
YW1lczo6ZnlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFw
LnNldChTVkdOYW1lczo6ckF0dHIsIExlbmd0aE1vZGVPdGhlcik7CisgICAgICAgIHNfbGVuZ3Ro
TW9kZU1hcC5zZXQoU1ZHTmFtZXM6OndpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAg
ICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6aGVpZ2h0QXR0ciwgTGVuZ3RoTW9kZUhl
aWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OngxQXR0ciwgTGVu
Z3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eDJB
dHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05h
bWVzOjp5MUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjp5MkF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0
aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpyZWZYQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAg
ICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6cmVmWUF0dHIsIExlbmd0aE1vZGVIZWln
aHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjptYXJrZXJXaWR0aEF0
dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6Om1hcmtlckhlaWdodEF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOyAgICAgICAgCisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyLCBMZW5ndGhNb2Rl
V2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpzdGFydE9mZnNl
dEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgfQorICAgIAorICAgIGlmIChzX2xlbmd0aE1v
ZGVNYXAuY29udGFpbnMoYXR0ck5hbWUpKQorICAgICAgICByZXR1cm4gc19sZW5ndGhNb2RlTWFw
LmdldChhdHRyTmFtZSk7CisgICAgCisgICAgcmV0dXJuIExlbmd0aE1vZGVPdGhlcjsKK30KKwog
fQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDg4NjExKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsNyArODgsOCBAQCBwdWJsaWM6CiAKICAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFsdWVBc1N0cmlu
Zyhjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KKyAgICB2b2lkIHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiwgU1ZHTGVuZ3RoTW9kZSk7CisgICAgCiAgICAgdm9pZCBuZXdW
YWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRz
KHVuc2lnbmVkIHNob3J0LCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0LCBFeGNlcHRpb25Db2Rl
Jik7CiAKQEAgLTEwMCw2ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU1ZHTGVuZ3Ro
IGZyb21DU1NQcmltaXRpdmVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZSopOwogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB0b0NTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IFNW
R0xlbmd0aCYpOworICAgIHN0YXRpYyBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGVGb3JBbmltYXRl
ZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSk7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBkZXRlcm1pbmVWaWV3cG9ydChjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaHQpIGNvbnN0OwpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
ODg2MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMzEgQEAKKzIwMTEtMDYtMTIgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkdBbmltYXRp
b24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmltYXRpb24gZm9yIFNWR0xlbmd0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjgKKworICAgICAg
ICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgY29ycmVjdCBiZWhhdmlvciBvZiBTVkdMZW5ndGgg
YW5pbWF0aW9ucy4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuanM6IEFkZGVkLgorICAgICAgICAoc2Ft
cGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5qczogQWRkZWQuCisgICAgICAgIChzYW1w
bGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChl
eGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdpZHRoLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBs
ZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4
ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxl
MSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlk
LXZhbHVlLTIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUy
KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMuanM6IEFkZGVkLgor
ICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKGV4ZWN1dGVU
ZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgor
ICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVU
ZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1jbS5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAg
KHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6Cisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
cHgtdG8tZW1zLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxl
Mik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1l
eHMuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAg
ICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChz
YW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXIuanM6IEFkZGVk
LgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBs
ZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50YWdlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAg
ICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qczogQWRkZWQuCisgICAgICAgIChzYW1w
bGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChl
eGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tcHguanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6Cisg
ICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRl
c3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXZhbHVlcy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNh
bXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChzYW1wbGU0KToKKyAgICAgICAg
KHNhbXBsZTUpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZUhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZVdpZHRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
Y20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1leHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1p
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xl
bmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFn
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1weC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTEx
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENocm9taXVtIHJl
YmFzZWxpbmUgYWZ0ZXIgcjg1NTYwLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxl
bmd0aE1vZGVIZWlnaHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFu
aW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gb24gTGVuZ3RoTW9kZUhl
aWdodC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC5oZWlnaHQu
YW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAx
MDAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC5oZWln
aHQuYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBp
cyAyMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC5o
ZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC5oZWlnaHQuYmFzZVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVIZWlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVIZWlnaHQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZUhlaWdodC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlT3RoZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9u
IHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlT3RoZXIuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNpcmNsZS5yLmFuaW1WYWwudmFs
dWUgaXMgMTAKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAxMAorUEFTUyBjaXJjbGUu
ci5hbmltVmFsLnZhbHVlIGlzIDEzMi40NzUKK1BBU1MgY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSBp
cyAxMzIuNDc1CitQQVNTIGNpcmNsZS5yLmFuaW1WYWwudmFsdWUgaXMgMjU0LjkKK1BBU1MgY2ly
Y2xlLnIuYmFzZVZhbC52YWx1ZSBpcyAyNTQuOQorUEFTUyBjaXJjbGUuci5hbmltVmFsLnZhbHVl
IGlzIDEwCitQQVNTIGNpcmNsZS5yLmJhc2VWYWwudmFsdWUgaXMgMTAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tTGVuZ3RoTW9kZU90aGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVPdGhlci5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0
aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZU90aGVyLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZVdp
ZHRoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LUxlbmd0aE1vZGVXaWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkg
QEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIG9uIExlbmd0aE1vZGVXaWR0aC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAy
MDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMzAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAz
MDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1pbnZhbGlkLXZhbHVlLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQg
dmFsdWU6IE5vIHNwYWNlcyBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24taW52YWxpZC12YWx1ZS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24taW52YWxpZC12YWx1ZS0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxp
ZC12YWx1ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlv
biB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVlOiBO
byBzcGFjZXMgYmVmb3JlIHZhbHVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVl
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTIu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rl
c3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9u
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5h
bWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdsZW5ndGgt
YW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWlu
dmFsaWQtdmFsdWUtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE3IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBhZnRlciBudW1i
ZXIgYW5kIHVuaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24taW52YWxpZC12YWx1ZS0zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0
aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
aW52YWxpZC12YWx1ZS0zLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51
bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tbnVtYmVyLXRvLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTUw
CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDIwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjAw
CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1udW1iZXItdG8tbnVtYmVyLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgt
dG8tY20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTQ0LjQ5CitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNDQu
NDkKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE4OC45OAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMTg4Ljk4CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tY20uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWNtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1l
bXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rl
c3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGVtcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFT
UyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFT
UyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3Ro
LWFuaW1hdGlvbi1weC10by1lbXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLWV4cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVu
Z3RoLWFuaW1hdGlvbi1weC10by1leHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGV4cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBp
cyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0Lndp
ZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBp
cyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1weC10by1leHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1leHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWV4cy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8taW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBmcm9tIHB4IHRvIGluY2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTcwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxNzAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDI0MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMjQwCitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8taW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRl
c3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1p
YyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1pbi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJl
ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcg
MS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBm
cm9tIHB4IHRvIG51bWJlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxNTAKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1Mg
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwu
dmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1weC10by1udW1iZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10
by1udW1iZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBjLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcGMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBmcm9tIHB4IHRvIHBjLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDE3MAorUEFTUyBy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTcwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAyNDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI0MAorUEFTUyBy
ZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXBjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENh
c2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmlt
YXRpb24tcHgtdG8tcGMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wZXJjZW50
YWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1wZXJjZW50YWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
OSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDM1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMzUwCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyA2MDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDYwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNl
bnRhZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2VudGFnZS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9o
MT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcGVyY2Vu
dGFnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0
aW9uLXB4LXRvLXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDE2MS4xNQorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUg
aXMgMTYxLjE1CitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxODguOTcKK1BBU1Mg
cmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE4OC45NworUEFTUyByZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi1weC10by1wdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3Rz
PC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1weC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cwor
CitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxNTAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDE1MAor
UEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGguYmFz
ZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1weC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHgu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tcHgtdG8tcHguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0
aC1hbmltYXRpb24tdmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAK
K1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0
aW9uIHNldCB3aXRoICd2YWx1ZXMnLCBkaWZmZXJlbnQgdW5pdHMgYW5kIGRpZmZlcmVudCBjb3Vu
dCBvZiBzcGFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IGlzIDEwMAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTMwCitQQVNTIHJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMzAKK1BBU1MgcmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IGlzIDE1MS4xOAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgMTUxLjE4CitQQVNT
IHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyA1NzYKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFs
LnZhbHVlIGlzIDU3NgorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjY2LjcKK1BB
U1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDI2Ni43CitQQVNTIHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFu
aW1hdGlvbi12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tdmFsdWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gx
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZUhlaWdodC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlSGVpZ2h0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24t
TGVuZ3RoTW9kZUhlaWdodC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBvbiBMZW5ndGhNb2RlSGVpZ2h0LiIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgIjQwMCIpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIg
cmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIs
ICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJm
b250LXNpemUiLCAiMTBweCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0
ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgImhlaWdodCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJ0byIsICI1MCUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVu
dC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNo
b3VsZEJlKCJyZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJl
KCJyZWN0LmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1w
bGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmFuaW1WYWwudmFs
dWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC5oZWlnaHQu
YmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjIw
MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3QuaGVpZ2h0LmJhc2VWYWwu
dmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUs
IGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAg
ICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3Qi
LCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxl
M10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAg
XTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdp
biB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwg
MCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlT3RoZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVu
Z3RoTW9kZU90aGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3RoTW9kZU90aGVyLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGgg
YW5pbWF0aW9uIG9uIExlbmd0aE1vZGVPdGhlci4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisK
Ky8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lk
dGgiLCAiNjAwIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICI0MDAi
KTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGNpcmNsZSA9IGNyZWF0ZVNWR0VsZW1l
bnQoImNpcmNsZSIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiaWQiLCAiY2lyY2xlIik7CitjaXJj
bGUuc2V0QXR0cmlidXRlKCJjeCIsICI1MCIpOworY2lyY2xlLnNldEF0dHJpYnV0ZSgiY3kiLCAi
NTAiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoInIiLCAiMTAiKTsKK2NpcmNsZS5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK2NpcmNsZS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhl
Y3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInIiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJi
ZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0
byIsICI1MCUiKTsKK2NpcmNsZS5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKGNpcmNsZSk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIxMCIpOworICAgIHNob3VsZEJlKCJj
aXJjbGUuci5iYXNlVmFsLnZhbHVlIiwgIjEwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIxMzIu
NDc1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYmFzZVZhbC52
YWx1ZSIsICIxMzIuNDc1IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYW5pbVZhbC52YWx1ZSIsICIyNTQuOSIsIDAu
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiY2lyY2xlLnIuYmFzZVZhbC52YWx1ZSIsICIy
NTQuOSIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAiY2lyY2xl
Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAiY2lyY2xlIiwgc2Ft
cGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAiY2lyY2xlIiwgc2FtcGxlM10s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAiY2lyY2xlIiwgc2FtcGxlMV0KKyAgICBd
OworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2lu
IHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCA1MCkiLCAw
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLUxlbmd0aE1vZGVXaWR0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5n
dGhNb2RlV2lkdGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhNb2RlV2lkdGguanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gb24gTGVuZ3RoTW9kZVdpZHRoLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKwor
Ly8gU2V0dXAgdGVzdCBkb2N1bWVudAorcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0
aCIsICI2MDAiKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjQwMCIp
OworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQo
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJp
YnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0
LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwi
LCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmb250LXNpemUiLCAiMTBweCIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0
ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJp
ZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwg
IndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9t
IiwgIjEwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjUwJSIpOworcmVjdC5hcHBl
bmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisv
LyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVj
ayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7
Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjMwMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIzMDAiLCAwLjAxKTsKK30KKworZnVu
Y3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAg
ICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAg
ICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAg
LCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBl
Y3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0
KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUt
MS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1h
dGlvbi1pbnZhbGlkLXZhbHVlLTEuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gd2l0aCBpbnZhbGlkIHZhbHVlOiBO
byBzcGFjZXMgYmV0d2VlbiBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgp
OworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQo
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJp
YnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0
LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwi
LCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCki
KTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwg
ImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAgICBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRv
IiwgIjIwMCAgIHB4Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBs
ZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIwIik7Cisg
ICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0
aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAg
ICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1ZS0yLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LWludmFsaWQtdmFsdWUtMi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMi5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVu
Z3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6IE5vIHNwYWNlcyBiZWZvcmUgdmFsdWUu
Iik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIg
cmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIs
ICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0
ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJv
bmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVt
ZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIgICAxMDBweCIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIiAgIDIwMHB4Iik7CityZWN0LmFwcGVuZENoaWxk
KGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVw
IGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRp
YWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVl
IiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAw
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52
YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIs
IHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUy
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBd
OworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2lu
IHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAw
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24taW52YWxpZC12YWx1
ZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLWludmFsaWQtdmFsdWUtMy5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLWludmFsaWQtdmFsdWUtMy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAor
ZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiB3aXRoIGludmFsaWQgdmFsdWU6
IE5vIHNwYWNlcyBhZnRlciBudW1iZXIgYW5kIHVuaXQuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgp
OworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQo
InJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJp
YnV0ZSgieCIsICIwIik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0
LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwi
LCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCki
KTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwg
ImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCAgICIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRv
IiwgIjIwMHB4ICAgIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBs
ZTIoKSB7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIwIik7Cisg
ICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0
aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAg
ICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVz
dChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRU
aW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJlci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1udW1iZXItdG8tbnVtYmVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tbnVtYmVyLXRvLW51bWJl
ci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsK
KworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJj
bGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAw
Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hp
bGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkg
eworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVj
dC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRo
LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZh
bHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBs
ZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUx
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1jbS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1jbS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWNtLmpzCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9u
IGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0
IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7City
ZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Qu
c2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUg
PSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQi
LCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3
aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIs
ICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjVjbSIpOworcmVjdC5hcHBl
bmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCisv
LyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVj
ayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNDQuNDkiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTQ0LjQ5Iiwg
MC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE4OC45OCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxODguOTgiLCAwLjAx
KTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1
ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVD
YWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAg
ICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0
aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRv
dy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0
LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZW1zLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLWVtcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWVtcy5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBmcm9tIHB4IHRvIGVtcy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRl
c3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJo
ZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVj
dC5zZXRBdHRyaWJ1dGUoImZvbnQtc2l6ZSIsICIxMHB4Iik7CityZWN0LnNldEF0dHJpYnV0ZSgi
b25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxl
bWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMGVtIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1h
dGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1h
dGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5k
IGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEw
MCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9
CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIxNTAiLCAwLjAxKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1h
dGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1h
dGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAy
LjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAi
cmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInJlY3QiLCBz
YW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsK
K30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRh
dGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlv
bi1weC10by1leHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tZXhzLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1h
bmltYXRpb24tcHgtdG8tZXhzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACitkZXNj
cmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gZXhzLiIpOworY3Jl
YXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBj
cmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRo
IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZm9udC1zaXpl
IiwgIjEwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCki
KTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YXR0cmlidXRlTmFtZSIsICJ3aWR0aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwg
ImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZnJvbSIsICIxMDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwg
IjQwZXgiKTsKK3JlY3QuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBl
bmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBs
ZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJl
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qu
d2lkdGguYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjE1MCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwg
c2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1
bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5j
Cit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLWluLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5p
bWF0aW9uLXB4LXRvLWluLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8taW4uanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmlt
YXRpb24gZnJvbSBweCB0byBpbmNoLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0
dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7City
ZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAi
MCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBh
bmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5h
bWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyLjVpbiIpOwor
cmVjdC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJl
Y3QpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lk
dGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxNzAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTcw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI0MCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsK
K30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMg
PSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxs
YmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxlMV0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tbnVtYmVyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLW51bWJlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLW51bWJlci5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFu
aW1hdGlvbiBmcm9tIHB4IHRvIG51bWJlci4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8v
IFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIp
OworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVl
biIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2
YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1
dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJmcm9tIiwgIjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwIik7
CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQo
cmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgewor
ICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicmVjdC53
aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIx
NTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIsIDAuMDEp
OworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVl
cyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNh
bGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInJlY3QiLCBzYW1wbGUxXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlMl0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicmVjdCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInJlY3QiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wYy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1w
eC10by1wYy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBjLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZy
b20gcHggdG8gcGMuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRv
Y3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgieCIsICIwIik7CityZWN0
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0
IiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0
QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBj
cmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAi
YW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0
aCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIx
MDBweCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjE1cGMiKTsKK3JlY3QuYXBwZW5k
Q2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8g
U2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sg
aW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIs
ICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTcwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE3MCIsIDAuMDEpOwor
fQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qu
d2lkdGguYW5pbVZhbC52YWx1ZSIsICIyNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjQwIiwgMC4wMSk7Cit9CisKK2Z1bmN0
aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAg
ICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAg
ICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24i
LCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwg
ICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0
ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgi
dHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5n
dGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8t
cGVyY2VudGFnZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXBlcmNlbnRhZ2UuanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBh
bmltYXRpb24gZnJvbSBweCB0byBwZXJjZW50YWdlLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsK
KworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1
dGUoIngiLCAiMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAid2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJj
bGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiMTAwcHgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIy
MDAlIik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5k
Q2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUx
KCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgi
cmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJyZWN0Lndp
ZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjM1MCIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIzNTAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiNjAwIiwgMC4xKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiNjAwIiwg
MC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRW
YWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1w
bGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxl
MV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicmVjdCIsIHNhbXBsZTJdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInJlY3QiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCA0LjAgLCAgICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5p
bWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dp
bmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRp
b24tcHgtdG8tcHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1weC10by1wdC5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVz
dCBkb2N1bWVudAordmFyIHJlY3QgPSBjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iik7CityZWN0LnNl
dEF0dHJpYnV0ZSgiaWQiLCAicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImhl
aWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CityZWN0
LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRl
ID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlk
IiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAi
d2lkdGgiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20i
LCAiMTAwcHQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICI1Y20iKTsKK3JlY3QuYXBw
ZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKwor
Ly8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hl
Y2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTYxLjE1IiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE2MS4xNSIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxODguOTciLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTg4Ljk3IiwgMC4w
MSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxl
Q2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1h
dGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5k
b3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9uLXB4LXRvLXB4LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdsZW5ndGgtYW5pbWF0aW9u
LXB4LXRvLXB4LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2xlbmd0aC1hbmltYXRpb24tcHgtdG8tcHguanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24g
ZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3Qg
ZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRB
dHRyaWJ1dGUoImlkIiwgInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWln
aHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5z
ZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9
IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIs
ICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndp
ZHRoIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwg
IjEwMHB4Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwcHgiKTsKK3JlY3QuYXBw
ZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKwor
Ly8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hl
Y2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1W
YWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIsIDAuMDEp
OworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIyMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMjAwIiwgMC4wMSk7Cit9CisKK2Z1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAg
ICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4w
ICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhw
ZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91
dCgidHJpZ2dlclVwZGF0ZSg1MCwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmds
ZW5ndGgtYW5pbWF0aW9uLXZhbHVlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
bGVuZ3RoLWFuaW1hdGlvbi12YWx1ZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAK
K2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gc2V0IHdpdGggJ3ZhbHVlcycs
IGRpZmZlcmVudCB1bml0cyBhbmQgZGlmZmVyZW50IGNvdW50IG9mIHNwYWNlcy4iKTsKK2NyZWF0
ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3Jl
YXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3QiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJ4IiwgIjAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIs
ICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0
dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAi
ZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1h
dGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIndpZHRoIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCAiMTAwcHg7ICAxMzAgIDs0Y20gIDs2
aW47IDIwMHB0Iik7CityZWN0LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQu
YXBwZW5kQ2hpbGQocmVjdCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBz
YW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91
bGRCZSgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJy
ZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwg
IjEzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYmFzZVZh
bC52YWx1ZSIsICIxMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUxLjE4Iiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVl
IiwgIjE1MS4xOCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU0KCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICI1NzYiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUiLCAiNTc2
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTUoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjI2Ni43IiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjI2Ni43IiwgMC4w
MSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxl
Q2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDEuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMy4wLCAgICAicmVjdCIsIHNhbXBsZTRdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDMuOTk5OSwgInJlY3QiLCBzYW1wbGU1XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAg
ICJyZWN0Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3Rl
ZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0
cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
Owo=
</data>
<flag name="review"
          id="90724"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>