<?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>52984</bug_id>
          
          <creation_ts>2011-01-23 15:10:40 -0800</creation_ts>
          <short_desc>SVG animation of Paths with segments of different coordinate modes on begin and end</short_desc>
          <delta_ts>2011-01-27 16:06:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/SVG/profiles/1.1F2/test/svg/animate-elem-83-t.svg</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>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>338768</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-23 15:10:40 -0800</bug_when>
    <thetext>SVG animation of Paths with segments of different coordinate modes on begin and end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339129</commentid>
    <comment_count>1</comment_count>
      <attachid>79944</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-24 11:32:49 -0800</bug_when>
    <thetext>Created attachment 79944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339553</commentid>
    <comment_count>2</comment_count>
      <attachid>79944</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-01-25 02:04:29 -0800</bug_when>
    <thetext>Comment on attachment 79944
Patch

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

&gt; Source/WebCore/svg/SVGPathBlender.cpp:62
&gt; +float SVGPathBlender::blendAnimatedHorizontalFloat(float fromX, float toX)
&gt;  {
&gt; -    return FloatPoint((to.x() - from.x()) * m_progress + from.x(), (to.y() - from.y()) * m_progress + from.y());
&gt; +    if (m_fromMode == m_toMode)
&gt; +        return blendAnimatedFloat(fromX, toX);
&gt; +
&gt; +    // Transform toY to the coordinate mode of fromY
&gt; +    float animX = blendAnimatedFloat(fromX, m_fromMode == AbsoluteCoordinates ? m_toCurrentPoint.x() + toX : toX - m_toCurrentPoint.x());
&gt; +    
&gt; +    if (m_progress &lt; 0.5)
&gt; +        return animX;
&gt; +    
&gt; +    // Transform the animated point to the coordinate mode, needed for the current progress.
&gt; +    float currentX = blendAnimatedFloat(m_fromCurrentPoint.x(), m_toCurrentPoint.x());
&gt; +    return m_toMode == AbsoluteCoordinates ? animX + currentX : animX - currentX;
&gt; +}

Ouch, the whole code is duplicated again for blendanimatedVerticalFloat
at least use sth like
enum FloatBlendMode { BlendHorizontal, BlendVertical };
static inline float blendAnimatedFloat(float from, float to, FloatBlendMode mode) { ... }
and call it from blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat to share code.

&gt; Source/WebCore/svg/SVGPathBlender.cpp:257
&gt; +                      m_progress &lt; 0.5 ? m_fromMode : m_toMode);

Could the question m_progress &lt; 0.5 be stored in a local variable?

&gt; Source/WebCore/svg/SVGPathBlender.cpp:283
&gt; +        SVGPathSegment fromSegment;
&gt; +        SVGPathSegment toSegment;
&gt; +        if (!encodeCommand(fromCommand, fromSegment, m_fromMode)
&gt; +            || !encodeCommand(toCommand, toSegment, m_toMode)
&gt; +            || fromSegment != toSegment)

Ok i see the idea behind SVGPathSegment, but I think it could be done more easily:

enum SVGPathSegType {
    PathSegUnknown = 0,
    PathSegClosePath = 1,
    PathSegMoveToAbs = 2,
    PathSegMoveToRel = 3,
    PathSegLineToAbs = 4,
    PathSegLineToRel = 5,
    PathSegCurveToCubicAbs = 6,
    PathSegCurveToCubicRel = 7,
    PathSegCurveToQuadraticAbs = 8,
    PathSegCurveToQuadraticRel = 9,
    PathSegArcAbs = 10,
    PathSegArcRel = 11,
    PathSegLineToHorizontalAbs = 12,
    PathSegLineToHorizontalRel = 13,
    PathSegLineToVerticalAbs = 14,
    PathSegLineToVerticalRel = 15,
    PathSegCurveToCubicSmoothAbs = 16,
    PathSegCurveToCubicSmoothRel = 17,
    PathSegCurveToQuadraticSmoothAbs = 18,
    PathSegCurveToQuadraticSmoothRel = 19
};

given the nature of this SVGPathSegType enum.

static inline bool isAbsoluteCommand(const SVGPathSegType&amp; type)
{
    if (type &lt; PathSegMoveToAbs)
        return true;
    // Even number = absolute command
    if (!(type % 2))
        return true;
    return false;
}

Even number == absolute coordinate, odd number == relative. And by definition abs=true for PathSegUnknown and ClosePath.

static inline bool isSegmentEqual(const SVGPathSegType&amp; fromType, const SVGPathSegType&amp; toType)
{
    if (fromType == toType &amp;&amp; (fromType == PathSegUnknown || fromType == PathSegClosePath))
        return true;
    int from = fromType;
    int to = toType;
    if (isAbsoluteCommand(from))
        return from == to - !isAbsoluteCommand(to);
     return from - isAbsoluteCommand(to) == to;
}

This helper function would avoid the need for a SVGPathSegType -&gt; (mode | segment) decomposition. Insstead you can figure out the same from the SVGPathSegType enum, potenttially faster, but maybe more complex.
What do you think?

&gt; Source/WebCore/svg/SVGPathBlender.cpp:337
&gt; +bool SVGPathBlender::encodeCommand(const SVGPathSegType&amp; segType, SVGPathSegment&amp; segment, PathCoordinateMode&amp; mode)

encodeCommand? At least sth. like decomposePathSegType(), or even more explicit naming. (If we need this at all)

&gt; LayoutTests/svg/animations/resources/SVGAnimationTestCase.js:10
&gt; +function shouldBeCloseEnough(_a, _b, tolerance)

Why this copy? Also has wrong format. (8 space indentation?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339569</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-25 03:12:21 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 79944 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79944&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:62
&gt; &gt; +float SVGPathBlender::blendAnimatedHorizontalFloat(float fromX, float toX)
&gt; &gt;  {
&gt; &gt; -    return FloatPoint((to.x() - from.x()) * m_progress + from.x(), (to.y() - from.y()) * m_progress + from.y());
&gt; &gt; +    if (m_fromMode == m_toMode)
&gt; &gt; +        return blendAnimatedFloat(fromX, toX);
&gt; &gt; +
&gt; &gt; +    // Transform toY to the coordinate mode of fromY
&gt; &gt; +    float animX = blendAnimatedFloat(fromX, m_fromMode == AbsoluteCoordinates ? m_toCurrentPoint.x() + toX : toX - m_toCurrentPoint.x());
&gt; &gt; +    
&gt; &gt; +    if (m_progress &lt; 0.5)
&gt; &gt; +        return animX;
&gt; &gt; +    
&gt; &gt; +    // Transform the animated point to the coordinate mode, needed for the current progress.
&gt; &gt; +    float currentX = blendAnimatedFloat(m_fromCurrentPoint.x(), m_toCurrentPoint.x());
&gt; &gt; +    return m_toMode == AbsoluteCoordinates ? animX + currentX : animX - currentX;
&gt; &gt; +}
&gt; 
&gt; Ouch, the whole code is duplicated again for blendanimatedVerticalFloat
&gt; at least use sth like
&gt; enum FloatBlendMode { BlendHorizontal, BlendVertical };
&gt; static inline float blendAnimatedFloat(float from, float to, FloatBlendMode mode) { ... }
&gt; and call it from blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat to share code.
blendAnimatedFloat() is also used for normal blendings like raduis that are independent of the current coordinate as well. So either we need to define another function beside  blendAnimatedFloat() that is doing your suggestion, or we make a common function for blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat named blendAnimatedDirectionFloat(), this would take your enum and we either take m_fromCurrentPoint.x(), m_toCurrentPoint.x() or m_fromCurrentPoint.y(), m_toCurrentPoint.y(). Another problem with your static inline would be the access to the member variables of the class.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:257
&gt; &gt; +                      m_progress &lt; 0.5 ? m_fromMode : m_toMode);
&gt; 
&gt; Could the question m_progress &lt; 0.5 be stored in a local variable?
We could also use a member variable called isInFirstHalfOfAnimation and set it just once if you want.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:283
&gt; &gt; +        SVGPathSegment fromSegment;
&gt; &gt; +        SVGPathSegment toSegment;
&gt; &gt; +        if (!encodeCommand(fromCommand, fromSegment, m_fromMode)
&gt; &gt; +            || !encodeCommand(toCommand, toSegment, m_toMode)
&gt; &gt; +            || fromSegment != toSegment)
&gt; 
&gt; Ok i see the idea behind SVGPathSegment, but I think it could be done more easily:
&gt; 
&gt; enum SVGPathSegType {
&gt;     PathSegUnknown = 0,
&gt;     PathSegClosePath = 1,
&gt;     PathSegMoveToAbs = 2,
&gt;     PathSegMoveToRel = 3,
&gt;     PathSegLineToAbs = 4,
&gt;     PathSegLineToRel = 5,
&gt;     PathSegCurveToCubicAbs = 6,
&gt;     PathSegCurveToCubicRel = 7,
&gt;     PathSegCurveToQuadraticAbs = 8,
&gt;     PathSegCurveToQuadraticRel = 9,
&gt;     PathSegArcAbs = 10,
&gt;     PathSegArcRel = 11,
&gt;     PathSegLineToHorizontalAbs = 12,
&gt;     PathSegLineToHorizontalRel = 13,
&gt;     PathSegLineToVerticalAbs = 14,
&gt;     PathSegLineToVerticalRel = 15,
&gt;     PathSegCurveToCubicSmoothAbs = 16,
&gt;     PathSegCurveToCubicSmoothRel = 17,
&gt;     PathSegCurveToQuadraticSmoothAbs = 18,
&gt;     PathSegCurveToQuadraticSmoothRel = 19
&gt; };
&gt; 
&gt; given the nature of this SVGPathSegType enum.
&gt; 
&gt; static inline bool isAbsoluteCommand(const SVGPathSegType&amp; type)
&gt; {
&gt;     if (type &lt; PathSegMoveToAbs)
&gt;         return true;
&gt;     // Even number = absolute command
&gt;     if (!(type % 2))
&gt;         return true;
&gt;     return false;
&gt; }
&gt; 
&gt; Even number == absolute coordinate, odd number == relative. And by definition abs=true for PathSegUnknown and ClosePath.
&gt; 
&gt; static inline bool isSegmentEqual(const SVGPathSegType&amp; fromType, const SVGPathSegType&amp; toType)
&gt; {
&gt;     if (fromType == toType &amp;&amp; (fromType == PathSegUnknown || fromType == PathSegClosePath))
&gt;         return true;
&gt;     int from = fromType;
&gt;     int to = toType;
&gt;     if (isAbsoluteCommand(from))
&gt;         return from == to - !isAbsoluteCommand(to);
&gt;      return from - isAbsoluteCommand(to) == to;
&gt; }
Should work, yes
.
&gt; 
&gt; This helper function would avoid the need for a SVGPathSegType -&gt; (mode | segment) decomposition. Insstead you can figure out the same from the SVGPathSegType enum, potenttially faster, but maybe more complex.
&gt; What do you think?
Yes, we could make a switch and check the values one by another. If complex means a lot of code lines, yes. Not sure what is better here. On the other hand we want it as fast as possible. What&apos;s your opinion? :-P

&gt; 
&gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:337
&gt; &gt; +bool SVGPathBlender::encodeCommand(const SVGPathSegType&amp; segType, SVGPathSegment&amp; segment, PathCoordinateMode&amp; mode)
&gt; 
&gt; encodeCommand? At least sth. like decomposePathSegType(), or even more explicit naming. (If we need this at all)
Not needed anymore, yes.

&gt; 
&gt; &gt; LayoutTests/svg/animations/resources/SVGAnimationTestCase.js:10
&gt; &gt; +function shouldBeCloseEnough(_a, _b, tolerance)
&gt; 
&gt; Why this copy? Also has wrong format. (8 space indentation?)

Why is it a copy? It is just similar to shouldBe, but with a third parameter: the tolerance level. But with this function we can save a lot of unnecessary code in the tests, just take a look at the other animation tests. And I couldn&apos;t find a function with similar abilities in js-pre...

The indentations are tabs that need to be replaced by spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339607</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-01-25 05:31:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 79944 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79944&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:62
&gt; &gt; &gt; +float SVGPathBlender::blendAnimatedHorizontalFloat(float fromX, float toX)
&gt; &gt; &gt;  {
&gt; &gt; &gt; -    return FloatPoint((to.x() - from.x()) * m_progress + from.x(), (to.y() - from.y()) * m_progress + from.y());
&gt; &gt; &gt; +    if (m_fromMode == m_toMode)
&gt; &gt; &gt; +        return blendAnimatedFloat(fromX, toX);
&gt; &gt; &gt; +
&gt; &gt; &gt; +    // Transform toY to the coordinate mode of fromY
&gt; &gt; &gt; +    float animX = blendAnimatedFloat(fromX, m_fromMode == AbsoluteCoordinates ? m_toCurrentPoint.x() + toX : toX - m_toCurrentPoint.x());
&gt; &gt; &gt; +    
&gt; &gt; &gt; +    if (m_progress &lt; 0.5)
&gt; &gt; &gt; +        return animX;
&gt; &gt; &gt; +    
&gt; &gt; &gt; +    // Transform the animated point to the coordinate mode, needed for the current progress.
&gt; &gt; &gt; +    float currentX = blendAnimatedFloat(m_fromCurrentPoint.x(), m_toCurrentPoint.x());
&gt; &gt; &gt; +    return m_toMode == AbsoluteCoordinates ? animX + currentX : animX - currentX;
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; Ouch, the whole code is duplicated again for blendanimatedVerticalFloat
&gt; &gt; at least use sth like
&gt; &gt; enum FloatBlendMode { BlendHorizontal, BlendVertical };
&gt; &gt; static inline float blendAnimatedFloat(float from, float to, FloatBlendMode mode) { ... }
&gt; &gt; and call it from blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat to share code.
&gt; blendAnimatedFloat() is also used for normal blendings like raduis that are independent of the current coordinate as well. So either we need to define another function beside  blendAnimatedFloat() that is doing your suggestion, or we make a common function for blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat named blendAnimatedDirectionFloat(), this would take your enum and we either take m_fromCurrentPoint.x(), m_toCurrentPoint.x() or m_fromCurrentPoint.y(), m_toCurrentPoint.y(). Another problem with your static inline would be the access to the member variables of the class.
Well you can pass a FloatPoint&amp; reference to the function.

&gt; &gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:257
&gt; &gt; &gt; +                      m_progress &lt; 0.5 ? m_fromMode : m_toMode);
&gt; &gt; 
&gt; &gt; Could the question m_progress &lt; 0.5 be stored in a local variable?
&gt; We could also use a member variable called isInFirstHalfOfAnimation and set it just once if you want.
&gt; 
Okay.

&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:283
&gt; &gt; &gt; +        SVGPathSegment fromSegment;
&gt; &gt; &gt; +        SVGPathSegment toSegment;
&gt; &gt; &gt; +        if (!encodeCommand(fromCommand, fromSegment, m_fromMode)
&gt; &gt; &gt; +            || !encodeCommand(toCommand, toSegment, m_toMode)
&gt; &gt; &gt; +            || fromSegment != toSegment)
&gt; &gt; 
&gt; &gt; Ok i see the idea behind SVGPathSegment, but I think it could be done more easily:
&gt; &gt; 
&gt; &gt; enum SVGPathSegType {
&gt; &gt;     PathSegUnknown = 0,
&gt; &gt;     PathSegClosePath = 1,
&gt; &gt;     PathSegMoveToAbs = 2,
&gt; &gt;     PathSegMoveToRel = 3,
&gt; &gt;     PathSegLineToAbs = 4,
&gt; &gt;     PathSegLineToRel = 5,
&gt; &gt;     PathSegCurveToCubicAbs = 6,
&gt; &gt;     PathSegCurveToCubicRel = 7,
&gt; &gt;     PathSegCurveToQuadraticAbs = 8,
&gt; &gt;     PathSegCurveToQuadraticRel = 9,
&gt; &gt;     PathSegArcAbs = 10,
&gt; &gt;     PathSegArcRel = 11,
&gt; &gt;     PathSegLineToHorizontalAbs = 12,
&gt; &gt;     PathSegLineToHorizontalRel = 13,
&gt; &gt;     PathSegLineToVerticalAbs = 14,
&gt; &gt;     PathSegLineToVerticalRel = 15,
&gt; &gt;     PathSegCurveToCubicSmoothAbs = 16,
&gt; &gt;     PathSegCurveToCubicSmoothRel = 17,
&gt; &gt;     PathSegCurveToQuadraticSmoothAbs = 18,
&gt; &gt;     PathSegCurveToQuadraticSmoothRel = 19
&gt; &gt; };
&gt; &gt; 
&gt; &gt; given the nature of this SVGPathSegType enum.
&gt; &gt; 
&gt; &gt; static inline bool isAbsoluteCommand(const SVGPathSegType&amp; type)
&gt; &gt; {
&gt; &gt;     if (type &lt; PathSegMoveToAbs)
&gt; &gt;         return true;
&gt; &gt;     // Even number = absolute command
&gt; &gt;     if (!(type % 2))
&gt; &gt;         return true;
&gt; &gt;     return false;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; Even number == absolute coordinate, odd number == relative. And by definition abs=true for PathSegUnknown and ClosePath.
&gt; &gt; 
&gt; &gt; static inline bool isSegmentEqual(const SVGPathSegType&amp; fromType, const SVGPathSegType&amp; toType)
&gt; &gt; {
&gt; &gt;     if (fromType == toType &amp;&amp; (fromType == PathSegUnknown || fromType == PathSegClosePath))
&gt; &gt;         return true;
&gt; &gt;     int from = fromType;
&gt; &gt;     int to = toType;
&gt; &gt;     if (isAbsoluteCommand(from))
&gt; &gt;         return from == to - !isAbsoluteCommand(to);
&gt; &gt;      return from - isAbsoluteCommand(to) == to;
&gt; &gt; }
&gt; Should work, yes
&gt; .
&gt; &gt; 
&gt; &gt; This helper function would avoid the need for a SVGPathSegType -&gt; (mode | segment) decomposition. Insstead you can figure out the same from the SVGPathSegType enum, potenttially faster, but maybe more complex.
&gt; &gt; What do you think?
&gt; Yes, we could make a switch and check the values one by another. If complex means a lot of code lines, yes. Not sure what is better here. On the other hand we want it as fast as possible. What&apos;s your opinion? :-P
Well try with my suggestion, and see what you like more.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/svg/SVGPathBlender.cpp:337
&gt; &gt; &gt; +bool SVGPathBlender::encodeCommand(const SVGPathSegType&amp; segType, SVGPathSegment&amp; segment, PathCoordinateMode&amp; mode)
&gt; &gt; 
&gt; &gt; encodeCommand? At least sth. like decomposePathSegType(), or even more explicit naming. (If we need this at all)
&gt; Not needed anymore, yes.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/svg/animations/resources/SVGAnimationTestCase.js:10
&gt; &gt; &gt; +function shouldBeCloseEnough(_a, _b, tolerance)
&gt; &gt; 
&gt; &gt; Why this copy? Also has wrong format. (8 space indentation?)
&gt; 
&gt; Why is it a copy? It is just similar to shouldBe, but with a third parameter: the tolerance level. But with this function we can save a lot of unnecessary code in the tests, just take a look at the other animation tests. And I couldn&apos;t find a function with similar abilities in js-pre...
Ok, I think we have a &quot;isCloseEnough&quot; method somewhere.. can&apos;t find atm.
&gt; 
&gt; The indentations are tabs that need to be replaced by spaces.
Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339834</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-25 12:18:15 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; blendAnimatedFloat() is also used for normal blendings like raduis that are independent of the current coordinate as well. So either we need to define another function beside  blendAnimatedFloat() that is doing your suggestion, or we make a common function for blendAnimatedVerticalFloat / blendAnimatedHorizontalFloat named blendAnimatedDirectionFloat(), this would take your enum and we either take m_fromCurrentPoint.x(), m_toCurrentPoint.x() or m_fromCurrentPoint.y(), m_toCurrentPoint.y(). Another problem with your static inline would be the access to the member variables of the class.
&gt; Well you can pass a FloatPoint&amp; reference to the function.
Sure. I can do it. But it must not make the code more readable ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339892</commentid>
    <comment_count>6</comment_count>
      <attachid>80113</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-25 13:39:26 -0800</bug_when>
    <thetext>Created attachment 80113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340799</commentid>
    <comment_count>7</comment_count>
      <attachid>80113</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-01-27 02:28:47 -0800</bug_when>
    <thetext>Comment on attachment 80113
Patch

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

Almost r+, I&apos;ll have to recheck the &quot;from == to - 1&quot; stuff, leaving r? until I rechecked it, mom.

&gt; Source/WebCore/svg/SVGPathBlender.cpp:64
&gt; +    float fromDimensionalValue = blendMode == BlendHorizontal ? m_fromCurrentPoint.x() : m_fromCurrentPoint.y();
&gt; +    float toDimensionalValue = blendMode == BlendHorizontal ? m_toCurrentPoint.x() : m_toCurrentPoint.y();
&gt; +
&gt; +    // Transform toY to the coordinate mode of fromY
&gt; +    float animValue = blendAnimatedFloat(from, m_fromMode == AbsoluteCoordinates ? to + toDimensionalValue : to - toDimensionalValue, m_progress);
&gt; +    
&gt; +    if (m_isInFirstHalfOfAnimation)
&gt; +        return animValue;
&gt; +    
&gt; +    // Transform the animated point to the coordinate mode, needed for the current progress.
&gt; +    float currentValue = blendAnimatedFloat(fromDimensionalValue, toDimensionalValue, m_progress);
&gt; +    return m_toMode == AbsoluteCoordinates ? animValue + currentValue : animValue - currentValue;

s/DimensionalValue/Value/, I don&apos;t think the &apos;dimensional&apos; prefix is of any benefit.

&gt; Source/WebCore/svg/SVGPathBlender.cpp:259
&gt; +    if (type &lt; PathSegMoveToAbs)
&gt; +        return AbsoluteCoordinates;
&gt; +
&gt; +    // Odd number = relative command
&gt; +    if (type % 2)
&gt; +        return RelativeCoordinates;
&gt; +
&gt; +    return AbsoluteCoordinates;

I&apos;d rewrite this as:
if (type &gt;= PathSegMoveToAbs &amp;&amp; type % 2)
        return RelativeCoordinates;
return AbsoluteCoordinates.

&gt; Source/WebCore/svg/SVGPathBlender.cpp:273
&gt; +    if (fromMode == toMode)
&gt; +        return from == to;
&gt; +    if (fromMode == AbsoluteCoordinates)
&gt; +        return from == to - 1;
&gt; +    return to == from - 1;

I don&apos;t get this part, I need to recheck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340801</commentid>
    <comment_count>8</comment_count>
      <attachid>80113</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-01-27 02:33:14 -0800</bug_when>
    <thetext>Comment on attachment 80113
Patch

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

r=me.

&gt;&gt; Source/WebCore/svg/SVGPathBlender.cpp:273
&gt;&gt; +    return to == from - 1;
&gt; 
&gt; I don&apos;t get this part, I need to recheck.

I orignally proposed:

    if (isAbsoluteCommand(from))
        return from == to - !isAbsoluteCommand(to);
     return from - isAbsoluteCommand(to) == to;

if from is absolute, then from == to (if to is absolute) OR from == to - 1 (if to is relative).
If from is relative, then from == to (if to is relative) OR from -1 == to (if to is absolute).

I see that your if (fromMode == toMode) covers the case when boths modes are either abs or relative, that is correct.
iAh, just realized the code is identical :-) good work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341003</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-27 13:03:59 -0800</bug_when>
    <thetext>Committed r76830: &lt;http://trac.webkit.org/changeset/76830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341048</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 14:21:36 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76830 might have broken GTK Linux 32-bit Release
The following tests are not passing:
svg/animations/animate-text-nested-transforms.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341082</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-27 15:28:11 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; http://trac.webkit.org/changeset/76830 might have broken GTK Linux 32-bit Release
&gt; The following tests are not passing:
&gt; svg/animations/animate-text-nested-transforms.html

Landed rebaseline in http://trac.webkit.org/changeset/76846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341084</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-27 15:33:31 -0800</bug_when>
    <thetext>Committed r76846: &lt;http://trac.webkit.org/changeset/76846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341096</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 16:06:49 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76846 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79944</attachid>
            <date>2011-01-24 11:32:49 -0800</date>
            <delta_ts>2011-01-25 13:39:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52984-20110124203244.patch</filename>
            <type>text/plain</type>
            <size>80695</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NTMwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDEtMjQgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkcgYW5pbWF0aW9uIG9mIFBhdGhzIHdpdGggc2VnbWVudHMgb2Yg
ZGlmZmVyZW50IGNvb3JkaW5hdGUgbW9kZXMgb24gYmVnaW4gYW5kIGVuZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI5ODQKKworICAgICAgICBBdCB0
aGUgbW9tZW50IHdlIGp1c3Qgc3VwcG9ydCBTVkcgcGF0aCBhbmltYXRpb25zLCBpZiB0aGUgbnVt
YmVyIG9mIHNlZ21lbnRzIG9uIHRoZSBnaXZlbiBzdGFydCBwYXRoCisgICAgICAgIGlzIHRoZSBz
YW1lIGFzIHRoZSBudW1iZXIgb2Ygc2VnbWVudHMgb24gdGhlIGdpdmVuIGVuZCBwYXRoLiBCdXQg
YSBzZWdtZW50IG9uIGEgZ2l2ZW4gcG9zaXRpb24gbXVzdCBiZSBpZGVudGljYWwKKyAgICAgICAg
b24gYm90aCBwYXRocyBhcyB3ZWxsLiBOb3Qgb25seSB0aGUgc2VnbWVudCB0eXBlLCBhbHNvIHRo
ZSBjb29yZGluYXRlIG1vZGUgb2YgdGhlIHNlZ21lbnRzIG11c3QgYmUgaWRlbnRpY2FsLgorICAg
ICAgICBJZiBNb3ZlVG9SZWwgaXMgb24gdGhlIHNlY29uZCBwb3NpdGlvbiBvbiB0aGUgc3RhcnQg
cGF0aCBhIE1vdmVUb1JlbCBtdXN0IGJlIG9uIHRoZSBzZWNvbmQgcG9zaXRpb24KKyAgICAgICAg
b2YgdGhlIGVuZCBwYXRoIHRvby4gQWNjb3JkaW5nIHRvIHRoZSBTVkcgc3BlYywgYXQgbGVhc3Qg
dGhlIGNvb3JkaW5hdGUgbW9kZSBjYW4gZGlmZmVyLiBNZWFucywgaWYgd2UgaGF2ZSBNb3ZlVG9S
ZWwKKyAgICAgICAgaW4gdGhlIHN0YXJ0IHBhdGgsIHdlIGNhbiB1c2UgTW92ZVRvQWJzIG9uIHRo
ZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBlbmQgcGF0aC4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHRoZSBibGVuZGluZyBjb2RlIHRvIGZvbGxvdyB0aGUgc3BlYyBoZXJlLiBJdCB3YXMgbmVj
ZXNzYXJ5IHRvIHRyYWNrIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mCisgICAgICAgIGJvdGggcGF0
aHMsIHRyYW5zZm9ybSBjb29yZGluYXRlcyB0byB0aGUgc2FtZSBjb29yZGluYXRlIG1vZGUgYW5k
IHRyYW5zZm9ybSB0aGUgcmVzdWx0aW5nIGFuaW1hdGlvbiBjb29yZGluYXRlIGJhY2sKKyAgICAg
ICAgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSBvZiBlaXRoZXIgdGhlIHN0YXJ0IG9yIHRoZSBlbmQg
cGF0aC4gV2hpY2ggbW9kZSBpcyB0YWtlbiBkZXBlbmRzIG9uIHRoZSBwcm9ncmVzcyBvZiB0aGUK
KyAgICAgICAgYW5pbWF0aW9uLgorCisgICAgICAgIFRoaXMgYWxzbyBmaXhlcyBzdWJ0ZXN0cyA0
IHRvIDYgb24gdGhlIGZvbGxvd2luZyB0ZXN0IG9mIHRoZSBXM0MgU1ZHIHRlc3Qgc3VpdGU6IGFu
aW1hdGUtZWxlbS04My10LnN2ZworCisgICAgICAgIFRlc3RzOiBzdmcvYW5pbWF0aW9ucy9hbmlt
YXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRp
b25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVy
c2UuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1h
dGlvbi1sTC12Vi1oSC1pbnZlcnNlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aEJsZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGbG9hdFBvaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkSG9yaXpv
bnRhbEZsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1h
dGVkVmVydGljYWxGbG9hdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRBbmltYXRlZEZsb2F0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6
OmJsZW5kTW92ZVRvU2VnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6
YmxlbmRMaW5lVG9TZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpi
bGVuZExpbmVUb0hvcml6b250YWxTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhC
bGVuZGVyOjpibGVuZExpbmVUb1ZlcnRpY2FsU2VnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoQmxlbmRlcjo6YmxlbmRDdXJ2ZVRvQ3ViaWNTZWdtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEN1cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXRpY1NlZ21l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRy
YXRpY1Ntb290aFNlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJs
ZW5kQXJjVG9TZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVu
ZEFuaW1hdGVkUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6ZW5jb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6Y2xlYW51cCk6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhCbGVuZGVyLmg6CisKIDIwMTEtMDEtMjQgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBT
ZW1pa2hhdHNreS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcAkocmV2
aXNpb24gNzYyODIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzQsMTQgKzM0LDczIEBAIFNWR1Bh
dGhCbGVuZGVyOjpTVkdQYXRoQmxlbmRlcigpCiB7CiB9CiAKKy8vIEhlbHBlciBmdW5jdGlvbgor
aW5saW5lIEZsb2F0UG9pbnQgYmxlbmRGbG9hdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNv
bnN0IEZsb2F0UG9pbnQmIGIsIGZsb2F0IHByb2dyZXNzKQoreworICAgIHJldHVybiBGbG9hdFBv
aW50KChiLngoKSAtIGEueCgpKSAqIHByb2dyZXNzICsgYS54KCksIChiLnkoKSAtIGEueSgpKSAq
IHByb2dyZXNzICsgYS55KCkpOworfQorCiBmbG9hdCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmlt
YXRlZEZsb2F0KGZsb2F0IGZyb20sIGZsb2F0IHRvKQogewogICAgIHJldHVybiAodG8gLSBmcm9t
KSAqIG1fcHJvZ3Jlc3MgKyBmcm9tOwogfQogCi1GbG9hdFBvaW50IFNWR1BhdGhCbGVuZGVyOjpi
bGVuZEFuaW1hdGVkRmxvYXRQb2ludChGbG9hdFBvaW50JiBmcm9tLCBGbG9hdFBvaW50JiB0bykK
K2Zsb2F0IFNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkSG9yaXpvbnRhbEZsb2F0KGZsb2F0
IGZyb21YLCBmbG9hdCB0b1gpCiB7Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoKHRvLngoKSAtIGZy
b20ueCgpKSAqIG1fcHJvZ3Jlc3MgKyBmcm9tLngoKSwgKHRvLnkoKSAtIGZyb20ueSgpKSAqIG1f
cHJvZ3Jlc3MgKyBmcm9tLnkoKSk7CisgICAgaWYgKG1fZnJvbU1vZGUgPT0gbV90b01vZGUpCisg
ICAgICAgIHJldHVybiBibGVuZEFuaW1hdGVkRmxvYXQoZnJvbVgsIHRvWCk7CisKKyAgICAvLyBU
cmFuc2Zvcm0gdG9ZIHRvIHRoZSBjb29yZGluYXRlIG1vZGUgb2YgZnJvbVkKKyAgICBmbG9hdCBh
bmltWCA9IGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tWCwgbV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNv
b3JkaW5hdGVzID8gbV90b0N1cnJlbnRQb2ludC54KCkgKyB0b1ggOiB0b1ggLSBtX3RvQ3VycmVu
dFBvaW50LngoKSk7CisgICAgCisgICAgaWYgKG1fcHJvZ3Jlc3MgPCAwLjUpCisgICAgICAgIHJl
dHVybiBhbmltWDsKKyAgICAKKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGFuaW1hdGVkIHBvaW50IHRv
IHRoZSBjb29yZGluYXRlIG1vZGUsIG5lZWRlZCBmb3IgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MuCisg
ICAgZmxvYXQgY3VycmVudFggPSBibGVuZEFuaW1hdGVkRmxvYXQobV9mcm9tQ3VycmVudFBvaW50
LngoKSwgbV90b0N1cnJlbnRQb2ludC54KCkpOworICAgIHJldHVybiBtX3RvTW9kZSA9PSBBYnNv
bHV0ZUNvb3JkaW5hdGVzID8gYW5pbVggKyBjdXJyZW50WCA6IGFuaW1YIC0gY3VycmVudFg7Cit9
CisKK2Zsb2F0IFNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkVmVydGljYWxGbG9hdChmbG9h
dCBmcm9tWSwgZmxvYXQgdG9ZKQoreworICAgIGlmIChtX2Zyb21Nb2RlID09IG1fdG9Nb2RlKQor
ICAgICAgICByZXR1cm4gYmxlbmRBbmltYXRlZEZsb2F0KGZyb21ZLCB0b1kpOworICAgIAorICAg
IC8vIFRyYW5zZm9ybSB0b1kgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSBvZiBmcm9tWQorICAgIGZs
b2F0IGFuaW1ZID0gYmxlbmRBbmltYXRlZEZsb2F0KGZyb21ZLCBtX2Zyb21Nb2RlID09IEFic29s
dXRlQ29vcmRpbmF0ZXMgPyBtX3RvQ3VycmVudFBvaW50LnkoKSArIHRvWSA6IHRvWSAtIG1fdG9D
dXJyZW50UG9pbnQueSgpKTsKKyAgICAKKyAgICBpZiAobV9wcm9ncmVzcyA8IDAuNSkKKyAgICAg
ICAgcmV0dXJuIGFuaW1ZOworICAgIAorICAgIC8vIFRyYW5zZm9ybSB0aGUgYW5pbWF0ZWQgcG9p
bnQgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSwgbmVlZGVkIGZvciB0aGUgY3VycmVudCBwcm9ncmVz
cy4KKyAgICBmbG9hdCBjdXJyZW50WSA9IGJsZW5kQW5pbWF0ZWRGbG9hdChtX2Zyb21DdXJyZW50
UG9pbnQueSgpLCBtX3RvQ3VycmVudFBvaW50LnkoKSk7CisgICAgcmV0dXJuIG1fdG9Nb2RlID09
IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBhbmltWSArIGN1cnJlbnRZIDogYW5pbVkgLSBjdXJyZW50
WTsKK30KKworRmxvYXRQb2ludCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZEZsb2F0UG9p
bnQoY29uc3QgRmxvYXRQb2ludCYgZnJvbVBvaW50LCBjb25zdCBGbG9hdFBvaW50JiB0b1BvaW50
KQoreworICAgIGlmIChtX2Zyb21Nb2RlID09IG1fdG9Nb2RlKQorICAgICAgICByZXR1cm4gYmxl
bmRGbG9hdFBvaW50KGZyb21Qb2ludCwgdG9Qb2ludCwgbV9wcm9ncmVzcyk7CisKKyAgICAvLyBU
cmFuc2Zvcm0gdG9Qb2ludCB0byB0aGUgY29vcmRpbmF0ZSBtb2RlIG9mIGZyb21Qb2ludAorICAg
IEZsb2F0UG9pbnQgYW5pbWF0ZWRQb2ludCA9IHRvUG9pbnQ7CisgICAgaWYgKG1fZnJvbU1vZGUg
PT0gQWJzb2x1dGVDb29yZGluYXRlcykKKyAgICAgICAgYW5pbWF0ZWRQb2ludCArPSBtX3RvQ3Vy
cmVudFBvaW50OworICAgIGVsc2UKKyAgICAgICAgYW5pbWF0ZWRQb2ludC5tb3ZlKC1tX3RvQ3Vy
cmVudFBvaW50LngoKSwgLW1fdG9DdXJyZW50UG9pbnQueSgpKTsKKworICAgIGFuaW1hdGVkUG9p
bnQgPSBibGVuZEZsb2F0UG9pbnQoZnJvbVBvaW50LCBhbmltYXRlZFBvaW50LCBtX3Byb2dyZXNz
KTsKKworICAgIGlmIChtX3Byb2dyZXNzIDwgMC41KQorICAgICAgICByZXR1cm4gYW5pbWF0ZWRQ
b2ludDsKKworICAgIC8vIFRyYW5zZm9ybSB0aGUgYW5pbWF0ZWQgcG9pbnQgdG8gdGhlIGNvb3Jk
aW5hdGUgbW9kZSwgbmVlZGVkIGZvciB0aGUgY3VycmVudCBwcm9ncmVzcy4KKyAgICBGbG9hdFBv
aW50IGN1cnJlbnRQb2ludCA9IGJsZW5kRmxvYXRQb2ludChtX2Zyb21DdXJyZW50UG9pbnQsIG1f
dG9DdXJyZW50UG9pbnQsIG1fcHJvZ3Jlc3MpOworICAgIGlmIChtX3RvTW9kZSA9PSBBYnNvbHV0
ZUNvb3JkaW5hdGVzKQorICAgICAgICByZXR1cm4gYW5pbWF0ZWRQb2ludCArIGN1cnJlbnRQb2lu
dDsKKworICAgIGFuaW1hdGVkUG9pbnQubW92ZSgtY3VycmVudFBvaW50LngoKSwgLWN1cnJlbnRQ
b2ludC55KCkpOworICAgIHJldHVybiBhbmltYXRlZFBvaW50OwogfQogCiBib29sIFNWR1BhdGhC
bGVuZGVyOjpibGVuZE1vdmVUb1NlZ21lbnQoKQpAQCAtNTIsNyArMTExLDkgQEAgYm9vbCBTVkdQ
YXRoQmxlbmRlcjo6YmxlbmRNb3ZlVG9TZWdtZW50KAogICAgICAgICB8fCAhbV90b1NvdXJjZS0+
cGFyc2VNb3ZlVG9TZWdtZW50KHRvVGFyZ2V0UG9pbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBtX2NvbnN1bWVyLT5tb3ZlVG8oYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVRh
cmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwgZmFsc2UsIG1fbW9kZSk7CisgICAgbV9jb25zdW1l
ci0+bW92ZVRvKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2ludCwgdG9UYXJn
ZXRQb2ludCksIGZhbHNlLCBtX3Byb2dyZXNzIDwgMC41ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2Rl
KTsKKyAgICBtX2Zyb21DdXJyZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRp
bmF0ZXMgPyBmcm9tVGFyZ2V0UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0
UG9pbnQ7CisgICAgbV90b0N1cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRp
bmF0ZXMgPyB0b1RhcmdldFBvaW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY0LDcgKzEyNSw5IEBAIGJvb2wgU1ZHUGF0aEJs
ZW5kZXI6OmJsZW5kTGluZVRvU2VnbWVudCgKICAgICAgICAgfHwgIW1fdG9Tb3VyY2UtPnBhcnNl
TGluZVRvU2VnbWVudCh0b1RhcmdldFBvaW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgbV9jb25zdW1lci0+bGluZVRvKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQ
b2ludCwgdG9UYXJnZXRQb2ludCksIG1fbW9kZSk7CisgICAgbV9jb25zdW1lci0+bGluZVRvKGJs
ZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2ludCwgdG9UYXJnZXRQb2ludCksIG1f
cHJvZ3Jlc3MgPCAwLjUgPyBtX2Zyb21Nb2RlIDogbV90b01vZGUpOworICAgIG1fZnJvbUN1cnJl
bnRQb2ludCA9IG1fZnJvbU1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IGZyb21UYXJnZXRQ
b2ludCA6IG1fZnJvbUN1cnJlbnRQb2ludCArIGZyb21UYXJnZXRQb2ludDsKKyAgICBtX3RvQ3Vy
cmVudFBvaW50ID0gbV90b01vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHRvVGFyZ2V0UG9p
bnQgOiBtX3RvQ3VycmVudFBvaW50ICsgdG9UYXJnZXRQb2ludDsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtNzYsNyArMTM5LDkgQEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9I
b3Jpem9udAogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VMaW5lVG9Ib3Jpem9udGFsU2Vn
bWVudCh0b1gpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2NvbnN1bWVyLT5saW5l
VG9Ib3Jpem9udGFsKGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tWCwgdG9YKSwgbV9tb2RlKTsKKyAg
ICBtX2NvbnN1bWVyLT5saW5lVG9Ib3Jpem9udGFsKGJsZW5kQW5pbWF0ZWRIb3Jpem9udGFsRmxv
YXQoZnJvbVgsIHRvWCksIG1fcHJvZ3Jlc3MgPCAwLjUgPyBtX2Zyb21Nb2RlIDogbV90b01vZGUp
OworICAgIG1fZnJvbUN1cnJlbnRQb2ludC5zZXRYKG1fZnJvbU1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcyA/IGZyb21YIDogbV9mcm9tQ3VycmVudFBvaW50LngoKSArIGZyb21YKTsKKyAgICBt
X3RvQ3VycmVudFBvaW50LnNldFgobV90b01vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHRv
WCA6IG1fdG9DdXJyZW50UG9pbnQueCgpICsgdG9YKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtODgsNyArMTUzLDkgQEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9WZXJ0aWNh
bAogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VMaW5lVG9WZXJ0aWNhbFNlZ21lbnQodG9Z
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9jb25zdW1lci0+bGluZVRvVmVydGlj
YWwoYmxlbmRBbmltYXRlZEZsb2F0KGZyb21ZLCB0b1kpLCBtX21vZGUpOworICAgIG1fY29uc3Vt
ZXItPmxpbmVUb1ZlcnRpY2FsKGJsZW5kQW5pbWF0ZWRWZXJ0aWNhbEZsb2F0KGZyb21ZLCB0b1kp
LCBtX3Byb2dyZXNzIDwgMC41ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBtX2Zyb21D
dXJyZW50UG9pbnQuc2V0WShtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBmcm9t
WSA6IG1fZnJvbUN1cnJlbnRQb2ludC55KCkgKyBmcm9tWSk7CisgICAgbV90b0N1cnJlbnRQb2lu
dC5zZXRZKG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1kgOiBtX3RvQ3VycmVu
dFBvaW50LnkoKSArIHRvWSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEwNyw3ICsxNzQs
OSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEN1cnZlVG9DdWJpY1NlCiAgICAgbV9jb25z
dW1lci0+Y3VydmVUb0N1YmljKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21Qb2ludDEsIHRv
UG9pbnQxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmltYXRlZEZsb2F0
UG9pbnQoZnJvbVBvaW50MiwgdG9Qb2ludDIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBibGVuZEFuaW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRvVGFyZ2V0UG9pbnQp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21vZGUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3Byb2dyZXNzIDwgMC41ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsK
KyAgICBtX2Zyb21DdXJyZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMgPyBmcm9tVGFyZ2V0UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9p
bnQ7CisgICAgbV90b0N1cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMgPyB0b1RhcmdldFBvaW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEyMyw3ICsxOTIsOSBAQCBib29sIFNWR1BhdGhCbGVu
ZGVyOjpibGVuZEN1cnZlVG9DdWJpY1NtCiAKICAgICBtX2NvbnN1bWVyLT5jdXJ2ZVRvQ3ViaWNT
bW9vdGgoYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVBvaW50MiwgdG9Qb2ludDIpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZEFuaW1hdGVkRmxvYXRQb2ludChm
cm9tVGFyZ2V0UG9pbnQsIHRvVGFyZ2V0UG9pbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX21vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3Byb2dyZXNzIDwgMC41ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBtX2Zyb21DdXJy
ZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBmcm9tVGFyZ2V0
UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9pbnQ7CisgICAgbV90b0N1
cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1RhcmdldFBv
aW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTEzOSw3ICsyMTAsOSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEN1cnZl
VG9RdWFkcmF0CiAKICAgICBtX2NvbnN1bWVyLT5jdXJ2ZVRvUXVhZHJhdGljKGJsZW5kQW5pbWF0
ZWRGbG9hdFBvaW50KGZyb21Qb2ludDEsIHRvUG9pbnQxKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2ludCwgdG9U
YXJnZXRQb2ludCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21vZGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9ncmVzcyA8IDAuNSA/IG1fZnJv
bU1vZGUgOiBtX3RvTW9kZSk7CisgICAgbV9mcm9tQ3VycmVudFBvaW50ID0gbV9mcm9tTW9kZSA9
PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gZnJvbVRhcmdldFBvaW50IDogbV9mcm9tQ3VycmVudFBv
aW50ICsgZnJvbVRhcmdldFBvaW50OworICAgIG1fdG9DdXJyZW50UG9pbnQgPSBtX3RvTW9kZSA9
PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gdG9UYXJnZXRQb2ludCA6IG1fdG9DdXJyZW50UG9pbnQg
KyB0b1RhcmdldFBvaW50OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNTEsNyArMjI0LDkg
QEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRDdXJ2ZVRvUXVhZHJhdAogICAgICAgICB8fCAh
bV90b1NvdXJjZS0+cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU21vb3RoU2VnbWVudCh0b1RhcmdldFBv
aW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9jb25zdW1lci0+Y3VydmVUb1F1
YWRyYXRpY1Ntb290aChibGVuZEFuaW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRv
VGFyZ2V0UG9pbnQpLCBtX21vZGUpOworICAgIG1fY29uc3VtZXItPmN1cnZlVG9RdWFkcmF0aWNT
bW9vdGgoYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBv
aW50KSwgbV9wcm9ncmVzcyA8IDAuNSA/IG1fZnJvbU1vZGUgOiBtX3RvTW9kZSk7CisgICAgbV9m
cm9tQ3VycmVudFBvaW50ID0gbV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gZnJv
bVRhcmdldFBvaW50IDogbV9mcm9tQ3VycmVudFBvaW50ICsgZnJvbVRhcmdldFBvaW50OworICAg
IG1fdG9DdXJyZW50UG9pbnQgPSBtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gdG9U
YXJnZXRQb2ludCA6IG1fdG9DdXJyZW50UG9pbnQgKyB0b1RhcmdldFBvaW50OwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0xNzksNyArMjU0LDkgQEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRBcmNUb1NlZ21lbnQoKQogICAgICAgICAgICAgICAgICAgICAgIG1fcHJvZ3Jlc3MgPCAwLjUg
PyBmcm9tTGFyZ2VBcmMgOiB0b0xhcmdlQXJjLAogICAgICAgICAgICAgICAgICAgICAgIG1fcHJv
Z3Jlc3MgPCAwLjUgPyBmcm9tU3dlZXAgOiB0b1N3ZWVwLAogICAgICAgICAgICAgICAgICAgICAg
IGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2ludCwgdG9UYXJnZXRQb2ludCks
Ci0gICAgICAgICAgICAgICAgICAgICAgbV9tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICBt
X3Byb2dyZXNzIDwgMC41ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBtX2Zyb21DdXJy
ZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBmcm9tVGFyZ2V0
UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9pbnQ7CisgICAgbV90b0N1
cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1RhcmdldFBv
aW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTE5OCw2NSArMjc1LDUxIEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5p
bWF0ZWRQYXRoKGYKICAgICAgICAgU1ZHUGF0aFNlZ1R5cGUgdG9Db21tYW5kOwogICAgICAgICBp
ZiAoIW1fZnJvbVNvdXJjZS0+cGFyc2VTVkdTZWdtZW50VHlwZShmcm9tQ29tbWFuZCkgfHwgIW1f
dG9Tb3VyY2UtPnBhcnNlU1ZHU2VnbWVudFR5cGUodG9Db21tYW5kKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGZyb21Db21tYW5kICE9IHRvQ29tbWFuZCkKKworICAg
ICAgICBTVkdQYXRoU2VnbWVudCBmcm9tU2VnbWVudDsKKyAgICAgICAgU1ZHUGF0aFNlZ21lbnQg
dG9TZWdtZW50OworICAgICAgICBpZiAoIWVuY29kZUNvbW1hbmQoZnJvbUNvbW1hbmQsIGZyb21T
ZWdtZW50LCBtX2Zyb21Nb2RlKQorICAgICAgICAgICAgfHwgIWVuY29kZUNvbW1hbmQodG9Db21t
YW5kLCB0b1NlZ21lbnQsIG1fdG9Nb2RlKQorICAgICAgICAgICAgfHwgZnJvbVNlZ21lbnQgIT0g
dG9TZWdtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG1fbW9kZSA9
IEFic29sdXRlQ29vcmRpbmF0ZXM7Ci0gICAgICAgIHN3aXRjaCAoZnJvbUNvbW1hbmQpIHsKLSAg
ICAgICAgY2FzZSBQYXRoU2VnTW92ZVRvUmVsOgotICAgICAgICAgICAgbV9tb2RlID0gUmVsYXRp
dmVDb29yZGluYXRlczsKLSAgICAgICAgY2FzZSBQYXRoU2VnTW92ZVRvQWJzOgorICAgICAgICBz
d2l0Y2ggKGZyb21TZWdtZW50KSB7CisgICAgICAgIGNhc2UgTW92ZVRvU2VnbWVudDoKICAgICAg
ICAgICAgIGlmICghYmxlbmRNb3ZlVG9TZWdtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0xpbmVUb1Jl
bDoKLSAgICAgICAgICAgIG1fbW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7Ci0gICAgICAgIGNh
c2UgUGF0aFNlZ0xpbmVUb0FiczoKKyAgICAgICAgY2FzZSBMaW5lVG9TZWdtZW50OgogICAgICAg
ICAgICAgaWYgKCFibGVuZExpbmVUb1NlZ21lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQYXRoU2VnTGluZVRvSG9y
aXpvbnRhbFJlbDoKLSAgICAgICAgICAgIG1fbW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7Ci0g
ICAgICAgIGNhc2UgUGF0aFNlZ0xpbmVUb0hvcml6b250YWxBYnM6CisgICAgICAgIGNhc2UgTGlu
ZVRvSG9yaXpvbnRhbFNlZ21lbnQ6CiAgICAgICAgICAgICBpZiAoIWJsZW5kTGluZVRvSG9yaXpv
bnRhbFNlZ21lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBQYXRoU2VnTGluZVRvVmVydGljYWxSZWw6Ci0gICAgICAg
ICAgICBtX21vZGUgPSBSZWxhdGl2ZUNvb3JkaW5hdGVzOwotICAgICAgICBjYXNlIFBhdGhTZWdM
aW5lVG9WZXJ0aWNhbEFiczoKKyAgICAgICAgY2FzZSBMaW5lVG9WZXJ0aWNhbFNlZ21lbnQ6CiAg
ICAgICAgICAgICBpZiAoIWJsZW5kTGluZVRvVmVydGljYWxTZWdtZW50KCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGF0
aFNlZ0Nsb3NlUGF0aDoKKyAgICAgICAgY2FzZSBDbG9zZVNlZ21lbnQ6CiAgICAgICAgICAgICBt
X2NvbnN1bWVyLT5jbG9zZVBhdGgoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFBhdGhTZWdDdXJ2ZVRvQ3ViaWNSZWw6Ci0gICAgICAgICAgICBtX21vZGUgPSBSZWxhdGl2ZUNv
b3JkaW5hdGVzOwotICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNBYnM6CisgICAgICAg
IGNhc2UgQ3VydmVUb0N1YmljU2VnbWVudDoKICAgICAgICAgICAgIGlmICghYmxlbmRDdXJ2ZVRv
Q3ViaWNTZWdtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0N1cnZlVG9DdWJpY1Ntb290aFJlbDoKLSAg
ICAgICAgICAgIG1fbW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7Ci0gICAgICAgIGNhc2UgUGF0
aFNlZ0N1cnZlVG9DdWJpY1Ntb290aEFiczoKKyAgICAgICAgY2FzZSBDdXJ2ZVRvQ3ViaWNTbW9v
dGhTZWdtZW50OgogICAgICAgICAgICAgaWYgKCFibGVuZEN1cnZlVG9DdWJpY1Ntb290aFNlZ21l
bnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBQYXRoU2VnQ3VydmVUb1F1YWRyYXRpY1JlbDoKLSAgICAgICAgICAgIG1f
bW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0N1cnZlVG9R
dWFkcmF0aWNBYnM6CisgICAgICAgIGNhc2UgQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQ6CiAgICAg
ICAgICAgICBpZiAoIWJsZW5kQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQYXRo
U2VnQ3VydmVUb1F1YWRyYXRpY1Ntb290aFJlbDoKLSAgICAgICAgICAgIG1fbW9kZSA9IFJlbGF0
aXZlQ29vcmRpbmF0ZXM7Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0N1cnZlVG9RdWFkcmF0aWNTbW9v
dGhBYnM6CisgICAgICAgIGNhc2UgQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNlZ21lbnQ6CiAgICAg
ICAgICAgICBpZiAoIWJsZW5kQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNlZ21lbnQoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBQYXRoU2VnQXJjUmVsOgotICAgICAgICAgICAgbV9tb2RlID0gUmVsYXRpdmVDb29yZGluYXRl
czsKLSAgICAgICAgY2FzZSBQYXRoU2VnQXJjQWJzOgorICAgICAgICBjYXNlIEFyY1RvU2VnbWVu
dDoKICAgICAgICAgICAgIGlmICghYmxlbmRBcmNUb1NlZ21lbnQoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI3MCw2ICszMzMsNjUgQEAg
Ym9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZFBhdGgoZgogICAgIH0KICAgICByZXR1
cm4gdHJ1ZTsKIH0KKyAgICAKK2Jvb2wgU1ZHUGF0aEJsZW5kZXI6OmVuY29kZUNvbW1hbmQoY29u
c3QgU1ZHUGF0aFNlZ1R5cGUmIHNlZ1R5cGUsIFNWR1BhdGhTZWdtZW50JiBzZWdtZW50LCBQYXRo
Q29vcmRpbmF0ZU1vZGUmIG1vZGUpCit7CisgICAgbW9kZSA9IEFic29sdXRlQ29vcmRpbmF0ZXM7
CisgICAgc3dpdGNoIChzZWdUeXBlKSB7CisgICAgY2FzZSBQYXRoU2VnTW92ZVRvUmVsOgorICAg
ICAgICBtb2RlID0gUmVsYXRpdmVDb29yZGluYXRlczsKKyAgICBjYXNlIFBhdGhTZWdNb3ZlVG9B
YnM6CisgICAgICAgIHNlZ21lbnQgPSBNb3ZlVG9TZWdtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBhdGhTZWdMaW5lVG9SZWw6CisgICAgICAgIG1vZGUgPSBSZWxhdGl2ZUNvb3JkaW5h
dGVzOworICAgIGNhc2UgUGF0aFNlZ0xpbmVUb0FiczoKKyAgICAgICAgc2VnbWVudCA9IExpbmVU
b1NlZ21lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGF0aFNlZ0xpbmVUb0hvcml6b250
YWxSZWw6CisgICAgICAgIG1vZGUgPSBSZWxhdGl2ZUNvb3JkaW5hdGVzOworICAgIGNhc2UgUGF0
aFNlZ0xpbmVUb0hvcml6b250YWxBYnM6CisgICAgICAgIHNlZ21lbnQgPSBMaW5lVG9Ib3Jpem9u
dGFsU2VnbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXRoU2VnTGluZVRvVmVydGlj
YWxSZWw6CisgICAgICAgIG1vZGUgPSBSZWxhdGl2ZUNvb3JkaW5hdGVzOworICAgIGNhc2UgUGF0
aFNlZ0xpbmVUb1ZlcnRpY2FsQWJzOgorICAgICAgICBzZWdtZW50ID0gTGluZVRvVmVydGljYWxT
ZWdtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhdGhTZWdDbG9zZVBhdGg6CisgICAg
ICAgIHNlZ21lbnQgPSBDbG9zZVNlZ21lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGF0
aFNlZ0N1cnZlVG9DdWJpY1JlbDoKKyAgICAgICAgbW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7
CisgICAgY2FzZSBQYXRoU2VnQ3VydmVUb0N1YmljQWJzOgorICAgICAgICBzZWdtZW50ID0gQ3Vy
dmVUb0N1YmljU2VnbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXRoU2VnQ3VydmVU
b0N1YmljU21vb3RoUmVsOgorICAgICAgICBtb2RlID0gUmVsYXRpdmVDb29yZGluYXRlczsKKyAg
ICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNTbW9vdGhBYnM6CisgICAgICAgIHNlZ21lbnQgPSBD
dXJ2ZVRvQ3ViaWNTbW9vdGhTZWdtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhdGhT
ZWdDdXJ2ZVRvUXVhZHJhdGljUmVsOgorICAgICAgICBtb2RlID0gUmVsYXRpdmVDb29yZGluYXRl
czsKKyAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvUXVhZHJhdGljQWJzOgorICAgICAgICBzZWdtZW50
ID0gQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGF0
aFNlZ0N1cnZlVG9RdWFkcmF0aWNTbW9vdGhSZWw6CisgICAgICAgIG1vZGUgPSBSZWxhdGl2ZUNv
b3JkaW5hdGVzOworICAgIGNhc2UgUGF0aFNlZ0N1cnZlVG9RdWFkcmF0aWNTbW9vdGhBYnM6Cisg
ICAgICAgIHNlZ21lbnQgPSBDdXJ2ZVRvUXVhZHJhdGljU21vb3RoU2VnbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXRoU2VnQXJjUmVsOgorICAgICAgICBtb2RlID0gUmVsYXRpdmVD
b29yZGluYXRlczsKKyAgICBjYXNlIFBhdGhTZWdBcmNBYnM6CisgICAgICAgIHNlZ21lbnQgPSBB
cmNUb1NlZ21lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHNlZ21l
bnQgPSBVbmtub3duU2VnbWVudDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBTVkdQYXRoQmxlbmRlcjo6Y2xlYW51cCgpCiB7CkBAIC0y
ODEsNiArNDAzLDggQEAgdm9pZCBTVkdQYXRoQmxlbmRlcjo6Y2xlYW51cCgpCiAgICAgbV90b1Nv
dXJjZSA9IDA7CiAgICAgbV9mcm9tU291cmNlID0gMDsKICAgICBtX2NvbnN1bWVyID0gMDsKKyAg
ICBtX2Zyb21DdXJyZW50UG9pbnQgPSBGbG9hdFBvaW50KCk7CisgICAgbV90b0N1cnJlbnRQb2lu
dCA9IEZsb2F0UG9pbnQoKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhCbGVuZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVu
ZGVyLmgJKHJldmlzaW9uIDc2MjgyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVu
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDIwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorZW51bSBTVkdQYXRoU2VnbWVudCB7CisgICAgTW92ZVRvU2VnbWVudCwKKyAgICBM
aW5lVG9TZWdtZW50LAorICAgIExpbmVUb0hvcml6b250YWxTZWdtZW50LAorICAgIExpbmVUb1Zl
cnRpY2FsU2VnbWVudCwKKyAgICBDdXJ2ZVRvQ3ViaWNTZWdtZW50LAorICAgIEN1cnZlVG9DdWJp
Y1Ntb290aFNlZ21lbnQsCisgICAgQ3VydmVUb1F1YWRyYXRpY1NlZ21lbnQsCisgICAgQ3VydmVU
b1F1YWRyYXRpY1Ntb290aFNlZ21lbnQsCisgICAgQXJjVG9TZWdtZW50LAorICAgIENsb3NlU2Vn
bWVudCwKKyAgICBVbmtub3duU2VnbWVudAorfTsKKwogY2xhc3MgU1ZHUGF0aEJsZW5kZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNWR1BhdGhCbGVuZGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CkBAIC00NiwxMiArNjAsMjAgQEAgcHJpdmF0ZToKICAgICBib29s
IGJsZW5kQXJjVG9TZWdtZW50KCk7CiAKICAgICBmbG9hdCBibGVuZEFuaW1hdGVkRmxvYXQoZmxv
YXQsIGZsb2F0KTsKLSAgICBGbG9hdFBvaW50IGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KEZsb2F0
UG9pbnQmLCBGbG9hdFBvaW50Jik7CisgICAgZmxvYXQgYmxlbmRBbmltYXRlZEhvcml6b250YWxG
bG9hdChmbG9hdCwgZmxvYXQpOworICAgIGZsb2F0IGJsZW5kQW5pbWF0ZWRWZXJ0aWNhbEZsb2F0
KGZsb2F0LCBmbG9hdCk7CisgICAgRmxvYXRQb2ludCBibGVuZEFuaW1hdGVkRmxvYXRQb2ludChj
b25zdCBGbG9hdFBvaW50JiBmcm9tLCBjb25zdCBGbG9hdFBvaW50JiB0byk7CisgICAgYm9vbCBl
bmNvZGVDb21tYW5kKGNvbnN0IFNWR1BhdGhTZWdUeXBlJiwgU1ZHUGF0aFNlZ21lbnQmLCBQYXRo
Q29vcmRpbmF0ZU1vZGUmKTsKIAogICAgIFNWR1BhdGhTb3VyY2UqIG1fZnJvbVNvdXJjZTsKICAg
ICBTVkdQYXRoU291cmNlKiBtX3RvU291cmNlOwogICAgIFNWR1BhdGhDb25zdW1lciogbV9jb25z
dW1lcjsKLSAgICBQYXRoQ29vcmRpbmF0ZU1vZGUgbV9tb2RlOworICAgIAorICAgIEZsb2F0UG9p
bnQgbV9mcm9tQ3VycmVudFBvaW50OworICAgIEZsb2F0UG9pbnQgbV90b0N1cnJlbnRQb2ludDsK
KyAgICAKKyAgICBQYXRoQ29vcmRpbmF0ZU1vZGUgbV9mcm9tTW9kZTsKKyAgICBQYXRoQ29vcmRp
bmF0ZU1vZGUgbV90b01vZGU7CiAgICAgZmxvYXQgbV9wcm9ncmVzczsKIH07CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDc2NTMwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMDEtMjQgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
VkcgYW5pbWF0aW9uIG9mIFBhdGhzIHdpdGggc2VnbWVudHMgb2YgZGlmZmVyZW50IGNvb3JkaW5h
dGUgbW9kZXMgb24gYmVnaW4gYW5kIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTI5ODQKKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBjaGVjayB0
aGUgY29ycmVjdCBiZWhhdmlvciBvbiBwYXRoIGFuaW1hdGlvbnMsIHdoZXJlIHRoZSBjb29yZGlu
YXRlIG1vZGVzCisgICAgICAgIG9mIHRoZSBzdGFydCBwYXRoIGRpZmZlcnMgZnJvbSB0aGUgb25l
IG9uIHRoZSBlbmQgcGF0aC4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0
aC1hbmltYXRpb24tQ2MtU3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGgtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5p
bWF0aW9uLUxsLVZ2LUhoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLVFxLVR0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1Mt
aW52ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBh
dGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1h
dGlvbi1xUS10VC1pbnZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3Jlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qczoKKyAgICAgICAgKHNob3VsZEJlQ2xv
c2VFbm91Z2gpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRl
LXBhdGgtYW5pbWF0aW9uLUNjLVNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAg
ICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKHNhbXBsZTQpOgor
ICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLmpzOiBBZGRlZC4KKyAgICAgICAg
KHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAg
ICAgKHNhbXBsZTQpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLVFxLVR0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKHNhbXBsZTQpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWND
LXNTLWludmVyc2UuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1w
bGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoc2FtcGxlNCk6CisgICAgICAgIChl
eGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1h
dGUtcGF0aC1hbmltYXRpb24tbEwtdlYtaEgtaW52ZXJzZS5qczogQWRkZWQuCisgICAgICAgIChz
YW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAg
IChzYW1wbGU0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKHNhbXBsZTQpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgor
CiAyMDExLTAxLTI0ICBDaGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1T
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4NiBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0
IHBhdGggYW5pbWF0aW9uIHdoZXJlIGNvb3JkaW5hdGUgbW9kZXMgb2Ygc3RhcnQgYW5kIGVuZCBk
aWZmZXIuIFlvdSBzaG91bGQgc2VlIFBBU1MgbWVzc2FnZXMKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0y
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0MnCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS55IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBp
cyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTIwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueTIgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdTJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMjAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlzIDIwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS55MiBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnggaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0y
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBp
cyAnQycKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMjAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLngxIGlzIDEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSBp
cyAtMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDEwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiBpcyAtMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1MnCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0xMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueSBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgMzAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlzIDM1CitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBp
cyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0MAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnkxIGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBp
cyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIgaXMgMzAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3MnCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0xMAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMikueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LngyIGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiBpcyA1CitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJwor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLngyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIGlzIDQw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdzJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlz
IDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIg
aXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0yMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0MnCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAyMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueTIgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIGlzICdTJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAt
MjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMjAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS55MiBpcyA0MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0
aC1hbmltYXRpb24tQ2MtU3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNz
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdU
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlv
blRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHlu
YW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYW5pbWF0ZS1w
YXRoLWFuaW1hdGlvbi1DYy1Tcy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2
LUhoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24t
TGwtVnYtSGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACitTVkcg
MS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUg
Y29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUg
UEFTUyBtZXNzYWdlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
cGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnVicK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0gnCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS54IGlzIC0xNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBp
cyAtMTUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgJ0wnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDE1CitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1YnCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS55IGlzIDE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgz
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdIJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMykueCBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAx
NQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAxNQorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnbCcKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS55IGlzIC0xNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0
aFNlZ1R5cGVBc0xldHRlciBpcyAndicKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LnkgaXMgLTE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFz
TGV0dGVyIGlzICdoJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyAxNQor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAn
TScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2wnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS54IGlzIC02MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBp
cyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgJ3YnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC0zMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnaCcK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMCkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIgaXMgJ0wnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54
IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1YnCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdIJworUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMykueCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1MbC1Wdi1IaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1h
bmltYXRpb24tTGwtVnYtSGguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUt
cGF0aC1hbmltYXRpb24tUXEtVHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1w
YXRoLWFuaW1hdGlvbi1RcS1UdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjYgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBwYXRoIGFuaW1h
dGlvbiB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0IGFuZCBlbmQgZGlmZmVyLiBZb3Ug
c2hvdWxkIHNlZSBQQVNTIG1lc3NhZ2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdRJworUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueCBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAzMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdUJworUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0z
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1EnCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIyLjUKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEg
aXMgMjIuNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTMwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdUJwor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAt
MzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIg
aXMgJ3EnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDM3LjUKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLngxIGlzIDM3LjUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0zNy41
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRo
U2VnVHlwZUFzTGV0dGVyIGlzICdxJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eCBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAzMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBh
dGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAzMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnUScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMg
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnVCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55
IGlzIDMwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlv
bi1RcS1UdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1h
dGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0
aW9uLVFxLVR0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1jQy1zUy1pbnZlcnNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24t
Y0Mtc1MtaW52ZXJzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODYgQEAK
K1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBwYXRoIGFuaW1hdGlvbiB3
aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hvdWxk
IHNlZSBQQVNTIG1lc3NhZ2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJwor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLngyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIGlzIDQw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdzJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlz
IDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIg
aXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0yMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2MnCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54IGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAxMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLngyIGlzIDEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55MiBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVB
c0xldHRlciBpcyAncycKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnggaXMgLTEw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC0zMAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnkyIGlzIDUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdU
eXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlz
IC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0MnCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS55IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54
MSBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTEwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueTIgaXMgLTEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdTJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMikueCBpcyAtMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMTAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlzIDMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiBpcyAzNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnggaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlz
IC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRl
ciBpcyAnQycKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMjAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLngxIGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
MSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDIwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1MnCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMikueSBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgMjAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlzIDQwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRo
U2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyA0MAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngy
IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIGlzIDQwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdzJworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMiku
eDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlzIDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVy
c2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJz
ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRp
b25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FuaW1hdGUt
cGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0
aW9uLWxMLXZWLWhILWludmVyc2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tbEwtdlYtaEgtaW52ZXJz
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCisKK1Rlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFy
dCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFTUyBtZXNzYWdlcworCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCku
cGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgMzAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2wn
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIC02MAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3YnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0
aFNlZ1R5cGVBc0xldHRlciBpcyAnaCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMp
LnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIDE1CitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIDE1CitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdsJworUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnkgaXMgLTE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICd2JworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBp
cyAtMTUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgJ2gnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDE1CitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJwor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMTUKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdMJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueCBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdWJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAxNQorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnSCcKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnggaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVB
c0xldHRlciBpcyAnTCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMzAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnVicKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0gnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgzKS54IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54
IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIDMwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdsJworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAtNjAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICd2JworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMikueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdU
eXBlQXNMZXR0ZXIgaXMgJ2gnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlz
IDMwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1s
TC12Vi1oSC1pbnZlcnNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1oSC1pbnZlcnNlLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0
aW9uLWxMLXZWLWhILWludmVyc2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0
aW9uLXFRLXRULWludmVyc2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAorU1ZHIDEuMSBkeW5hbWlj
IGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IHBhdGggYW5pbWF0aW9uIHdoZXJlIGNvb3JkaW5hdGUg
bW9kZXMgb2Ygc3RhcnQgYW5kIGVuZCBkaWZmZXIuIFlvdSBzaG91bGQgc2VlIFBBU1MgbWVzc2Fn
ZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ3EnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDMw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5
cGVBc0xldHRlciBpcyAndCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnggaXMg
LTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdxJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueCBpcyAzNy41CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDMwCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAzNy41CitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICd0JworUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueCBpcyAtMzcuNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBp
cyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRl
ciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnUScKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMjIuNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAyMi41
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSBpcyAtMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ1QnCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMikueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0
aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnUScK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueDEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIC0zMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAn
VCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnggaXMgLTMwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkg
aXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIGlzICdxJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAzMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueDEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0zMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAzMAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tcVEtdFQtaW52ZXJzZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1h
dGlvbi1xUS10VC1pbnZlcnNlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2Fz
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMJKHJldmlzaW9uIDc2MjgyKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC03LDYgKzcsMjkgQEAgZnVuY3Rpb24gaXNDbG9zZUVub3VnaChhY3R1YWwsIGRl
c2lyZWQsIAogICAgIHJldHVybiBkaWZmIDw9IHRvbGVyYW5jZTsKIH0KIAorZnVuY3Rpb24gc2hv
dWxkQmVDbG9zZUVub3VnaChfYSwgX2IsIHRvbGVyYW5jZSkKK3sKKwlpZiAodHlwZW9mIF9hICE9
ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIiB8fCB0eXBlb2YgdG9sZXJhbmNlICE9
ICJudW1iZXIiKQorCQlkZWJ1ZygiV0FSTjogc2hvdWxkQmVDbG9zZUVub3VnaCgpIGV4cGVjdHMg
dHdvIHN0cmluZyBhbmQgb25lIG51bWJlciBhcmd1bWVudHMiKTsKKwl2YXIgZXhjZXB0aW9uOwor
CXZhciBfYXY7CisJdHJ5IHsKKwkJX2F2ID0gZXZhbChfYSk7CisJfSBjYXRjaCAoZSkgeworCQll
eGNlcHRpb24gPSBlOworCX0KKwl2YXIgX2J2ID0gZXZhbChfYik7CisJCisJaWYgKGV4Y2VwdGlv
bikKKwkJdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbik7CisJZWxzZSBpZiAoaXNDbG9zZUVub3VnaChfYXYsIF9idiwg
dG9sZXJhbmNlKSkKKwkJdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKwllbHNlIGlmICh0
eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKKwkJdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
IGNsb3NlIHRvICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKKwll
bHNlCisJCXRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBjbG9zZSB0byAiICsgX2J2ICsgIiAo
b2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiAr
IHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKwogZnVuY3Rpb24gbW92ZUFuaW1hdGlvblRpbWVsaW5l
QW5kU2FtcGxlKGluZGV4KQogewogICAgIHZhciBhbmltYXRpb25JZCA9IGV4cGVjdGVkUmVzdWx0
c1tpbmRleF1bMF07CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1D
Yy1Tcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDExMiBAQAorZGVzY3JpcHRpb24oIlRlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29v
cmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFT
UyBtZXNzYWdlcyIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKy8vIEZJWE1FOiBXZSBzaG91bGQg
bW92ZSB0byBhbmltYXRlZFBhdGhTZWdMaXN0LCBvbmNlIGl0IGlzIGltcGxlbWVudGVkLgorCisv
LyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgi
KTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgi
ZCIsICJNIC0yMCAtMjAgQyAyMCAtMjAgMjAgLTIwIDIwIDIwIFMgMjAgNDAgLTIwIDIwIFoiKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgi
b25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgidHJhbnNmb3Jt
IiwgInRyYW5zbGF0ZSg1MCwgNTApIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVu
dCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiZCIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImZyb20iLCAiTSAtMjAgLTIwIEMgMjAgLTIwIDIwIC0yMCAyMCAyMCBTIDIwIDQw
IC0yMCAyMCBaIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiTSAtMjAgLTIwIGMgMCA0
MCAwIDQwIDQwIDQwIHMgNDAgMCAwIC00MCB6Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3BhdGgu
YXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsK
KworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8g
Q2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRC
ZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTIwIik7CisgICAgc2hvdWxkQmUo
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0yMCIpOworICAgIHNob3VsZEJlKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInQyciKTsK
KyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMjAiKTsKKyAg
ICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMjAiKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjIwIik7CisgICAgc2hv
dWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSIsICItMjAiKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIiwgIjIwIik7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiIsICItMjAiKTsKKyAgICBzaG91bGRC
ZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ1Mn
Iik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0yMCIp
OworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIyMCIpOwor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiMjAiKTsKKyAg
ICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIiwgIjQwIik7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0yMCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0y
MCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0
aFNlZ1R5cGVBc0xldHRlciIsICInQyciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIyMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjIwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwg
IjEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnkxIiwgIi0xMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiIsICIxMCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiIsICItMTAiLCAwLjAx
KTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIiLCAiJ1MnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLngiLCAiLTEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiMzAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueTIiLCAiMzUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAi
J00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLngiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnkiLCAiNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiMzAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDIiLCAi
MTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueTIiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3MnIik7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTEwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnki
LCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLngyIiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIiwgIjUiLCAwLjAxKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlNCgpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIiwgIidjJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiNDAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55MSIsICI0MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54MiIsICIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIiwgIjQwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwg
IidzJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgyKS54IiwgIjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueSIsICItNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiNDAiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueTIiLCAiMCIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNh
bXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInBhdGgiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAxLjAsICAgICJwYXRoIiwgc2FtcGxlMl0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMy4wLCAgICAicGF0aCIsIHNhbXBsZTNdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInBhdGgiLCBzYW1wbGU0XSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJwYXRoIiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRp
b24tTGwtVnYtSGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1MbC1Wdi1IaC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5MiBAQAorZGVzY3JpcHRpb24oIlRlc3QgcGF0aCBhbmltYXRpb24g
d2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3Vs
ZCBzZWUgUEFTUyBtZXNzYWdlcyIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKy8vIEZJWE1FOiBX
ZSBzaG91bGQgbW92ZSB0byBhbmltYXRlZFBhdGhTZWdMaXN0LCBvbmNlIGl0IGlzIGltcGxlbWVu
dGVkLgorCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1l
bnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0
dHJpYnV0ZSgiZCIsICJNIC0zMCAtMzAgTCAzMCAwIFYgMzAgSCAwIFoiKTsKK3BhdGguc2V0QXR0
cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0
ZSg1MCwgNTApIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZy
b20iLCAiTSAtMzAgLTMwIEwgMzAgMCBWIDMwIEggMCBaIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiTSAzMCAzMCBsIC02MCAtMzAgdiAtMzAgaCAzMCBaIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAi
NHMiKTsKK3BhdGguYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsK
KyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTMwIik7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIpOworICAg
IHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRl
ciIsICInTCciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngi
LCAiMzAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAi
MCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5
cGVBc0xldHRlciIsICInViciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnkiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ0gnIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsK
KyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLngiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidM
JyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS54IiwgIjE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInViciKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIxNSIsIDAu
MDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5
cGVBc0xldHRlciIsICInSCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMykueCIsICIwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMo
KSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS54IiwgIjE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiMTUiLCAwLjAxKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAi
J2wnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLngiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIid2JyIpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIi0x
NSIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0
aFNlZ1R5cGVBc0xldHRlciIsICInaCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCIsICIxNSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBz
YW1wbGU0KCkgeworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0
aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIjMwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIiwgIidsJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS54IiwgIi02MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndici
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMiku
eSIsICItMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ2gnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLngiLCAiMzAiLCAwLjAxKTsKK30KKworZnVu
Y3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAg
ICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAg
ICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJwYXRoIiwgc2FtcGxlMV0sCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMS4wLCAgICAicGF0aCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDMuMCwgICAgInBhdGgiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5
OTksICJwYXRoIiwgc2FtcGxlNF0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicGF0
aCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1
ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dl
clVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgt
YW5pbWF0aW9uLVFxLVR0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLVFxLVR0LmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUt
cGF0aC1hbmltYXRpb24tUXEtVHQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTYgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0IHBhdGggYW5pbWF0aW9uIHdoZXJlIGNvb3JkaW5hdGUgbW9kZXMgb2Yg
c3RhcnQgYW5kIGVuZCBkaWZmZXIuIFlvdSBzaG91bGQgc2VlIFBBU1MgbWVzc2FnZXMiKTsKK2Ny
ZWF0ZVNWR1Rlc3RDYXNlKCk7CisvLyBGSVhNRTogV2Ugc2hvdWxkIG1vdmUgdG8gYW5pbWF0ZWRQ
YXRoU2VnTGlzdCwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZC4KKworLy8gU2V0dXAgdGVzdCBkb2N1
bWVudAordmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0dHJp
YnV0ZSgiaWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImQiLCAiTSAtMzAgLTMwIFEg
MzAgLTMwIDMwIDAgVCAtMzAgMzAgWiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3Jl
ZW4iKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKK3Bh
dGguc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDUwLCA1MCkiKTsKKwordmFy
IGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRl
TmFtZSIsICJkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICJNIC0zMCAtMzAgUSAz
MCAtMzAgMzAgMCBUIC0zMCAzMCBaIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiTSAt
MzAgLTMwIHEgMzAgMCAzMCAzMCB0IC0zMCAzMCB6Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3Bh
dGguYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRo
KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAg
Ly8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTMwIik7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInUSci
KTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMzAiKTsK
KyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIpOworICAg
IHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMzAiKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIiwgIi0zMCIpOworICAgIHNo
b3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIs
ICInVCciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAi
LTMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMw
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInUSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIyMi41IiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS54MSIsICIyMi41IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInVCciKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIs
ICItMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMikueSIsICIzMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgewor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xl
dHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkueCIsICItMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICItMzAiLCAwLjAxKTsKKyAgICBzaG91bGRC
ZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3En
Iik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LngiLCAiMzcuNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS55IiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjM3LjUiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiMCIs
IDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNl
Z1R5cGVBc0xldHRlciIsICIndCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueCIsICItMzcuNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMwIiwgMC4wMSk7Cit9
CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55Iiwg
Ii0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
cGF0aFNlZ1R5cGVBc0xldHRlciIsICIncSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjMwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngx
IiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkxIiwgIjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3QnIik7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTMwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LnkiLCAiMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29u
c3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxl
bWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJw
YXRoIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMS4wLCAgICAicGF0aCIsIHNh
bXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuMCwgICAgInBhdGgiLCBzYW1wbGUzXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJwYXRoIiwgc2FtcGxlNF0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgNC4wICwgICAicGF0aCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1
bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5j
Cit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1h
dGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9u
LWNDLXNTLWludmVyc2UuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEyIEBACitkZXNjcmlw
dGlvbigiVGVzdCBwYXRoIGFuaW1hdGlvbiB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0
IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hvdWxkIHNlZSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVT
VkdUZXN0Q2FzZSgpOworLy8gRklYTUU6IFdlIHNob3VsZCBtb3ZlIHRvIGFuaW1hdGVkUGF0aFNl
Z0xpc3QsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQuCisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQK
K3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk0gLTIwIC0yMCBjIDAgNDAg
MCA0MCA0MCA0MCBzIDQwIDAgMCAtNDAgeiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAi
Z3JlZW4iKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDUwLCA1MCkiKTsKKwor
dmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmli
dXRlTmFtZSIsICJkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICJNIC0yMCAtMjAg
YyAwIDQwIDAgNDAgNDAgNDAgcyA0MCAwIDAgLTQwIHoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJ0byIsICJNIC0yMCAtMjAgQyAyMCAtMjAgMjAgLTIwIDIwIDIwIFMgMjAgNDAgLTIwIDIwIFoi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImR1ciIsICI0cyIpOworcGF0aC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RT
VkdFbGVtZW50LmFwcGVuZENoaWxkKHBhdGgpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAor
ZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25z
CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFz
TGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueCIsICItMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnkiLCAiLTIwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueCIsICI0MCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueSIsICI0MCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueDEiLCAiMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEiLCAiNDAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLngyIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnkyIiwgIjQwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIiwgIidzJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMikueCIsICIwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS55IiwgIi00MCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueDIiLCAiNDAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnkyIiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKwlzaG91bGRCZSgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngi
LCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnkiLCAiNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueDEiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDIiLCAiMTAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueTIiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3MnIik7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTEwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiLTMw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLngyIiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIiwgIjUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMygpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIiwgIidDJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS54IiwgIjIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMTAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEi
LCAiLTEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLngyIiwgIjEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIiwgIi0xMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIn
UyciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueCIsICItMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueSIsICIxMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54MiIsICIzMCIsIDAuMDEpOworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiIsICIzNSIs
IDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU0KCkgeworICAgIHNob3VsZEJlKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICItMjAi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMCkueSIsICItMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ0MnIik7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMjAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSIsICIy
MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54MSIsICIyMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSIsICItMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDIiLCAiMjAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIi
LCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidTJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0yMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjIwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LngyIiwgIjIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnkyIiwgIjQwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVU
ZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0
aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgMC4wLCAgICAicGF0aCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEu
MCwgICAgInBhdGgiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJw
YXRoIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicGF0aCIsIHNh
bXBsZTRdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInBhdGgiLCBzYW1wbGUxXQor
ICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8g
QmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUw
KSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12
Vi1oSC1pbnZlcnNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
YW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1oSC1pbnZlcnNlLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDkyIEBACitkZXNjcmlwdGlvbigiVGVzdCBwYXRoIGFuaW1hdGlvbiB3aGVyZSBj
b29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hvdWxkIHNlZSBQ
QVNTIG1lc3NhZ2VzIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworLy8gRklYTUU6IFdlIHNob3Vs
ZCBtb3ZlIHRvIGFuaW1hdGVkUGF0aFNlZ0xpc3QsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQuCisK
Ky8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0
aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJkIiwgIk0gMzAgMzAgbCAtNjAgLTMwIHYgLTMwIGggMzAgWiIpOworcGF0aC5zZXRBdHRyaWJ1
dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDUw
LCA1MCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlTmFtZSIsICJkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIs
ICJNIDMwIDMwIGwgLTYwIC0zMCB2IC0zMCBoIDMwIFoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJ0byIsICJNIC0zMCAtMzAgTCAzMCAwIFYgMzAgSCAwIFoiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIp
OworcGF0aC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxk
KHBhdGgpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsK
KyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAg
IHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICIzMCIpOworICAgIHNo
b3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICIzMCIpOworICAgIHNob3Vs
ZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICIn
bCciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiLTYw
Iik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIi0zMCIp
OworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVB
c0xldHRlciIsICIndiciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnkiLCAiLTMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgz
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidoJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMykueCIsICIzMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgewor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xl
dHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkueCIsICIxNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIjE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUo
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidsJyIp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54
IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS55IiwgIi0xNSIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndiciKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICItMTUiLCAw
LjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdU
eXBlQXNMZXR0ZXIiLCAiJ2gnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDMpLngiLCAiMTUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxl
MygpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdU
eXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTE1IiwgMC4wMSk7CisgICAg
c2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVy
IiwgIidMJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54IiwgIjE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInViciKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIx
NSIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0
aFNlZ1R5cGVBc0xldHRlciIsICInSCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCIsICIwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTQoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRo
U2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xl
dHRlciIsICInTCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ1YnIik7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnki
LCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ0gnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLngiLCAiMCIsIDAuMDEpOworfQorCitmdW5jdGlv
biBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAg
Ly8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAg
ICBbImFuaW1hdGlvbiIsIDAuMCwgICAgInBhdGgiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCAxLjAsICAgICJwYXRoIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
My4wLCAgICAicGF0aCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwg
InBhdGgiLCBzYW1wbGU0XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJwYXRoIiwg
c2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7
Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBk
YXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tcVEtdFQtaW52ZXJzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNl
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5NiBAQAorZGVzY3JpcHRpb24oIlRlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUg
Y29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUg
UEFTUyBtZXNzYWdlcyIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKy8vIEZJWE1FOiBXZSBzaG91
bGQgbW92ZSB0byBhbmltYXRlZFBhdGhTZWdMaXN0LCBvbmNlIGl0IGlzIGltcGxlbWVudGVkLgor
CisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBh
dGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0
ZSgiZCIsICJNIC0zMCAtMzAgcSAzMCAwIDMwIDMwIHQgLTMwIDMwIHoiKTsKK3BhdGguc2V0QXR0
cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0
ZSg1MCwgNTApIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZy
b20iLCAiTSAtMzAgLTMwIHEgMzAgMCAzMCAzMCB0IC0zMCAzMCB6Iik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgidG8iLCAiTSAtMzAgLTMwIFEgMzAgLTMwIDMwIDAgVCAtMzAgMzAgWiIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiZHVyIiwgIjRzIik7CitwYXRoLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQocGF0aCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlv
biBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIi
LCAiJ00nIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54Iiwg
Ii0zMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICIt
MzAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdU
eXBlQXNMZXR0ZXIiLCAiJ3EnIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54IiwgIjMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS55IiwgIjMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS54MSIsICIzMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eTEiLCAiMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0
aFNlZ1R5cGVBc0xldHRlciIsICIndCciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLngiLCAiLTMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS55IiwgIjMwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisJc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidN
JyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICIncSciKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzNy41
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnkiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMzcuNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSIsICIwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIiwgIid0JyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS54IiwgIi0zNy41IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMzAiLCAwLjAxKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTMwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIiwgIidRJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54IiwgIjIyLjUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSIsICIwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjIyLjUi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidUJyIpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0zMCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55Iiwg
IjMwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7CisgICAgc2hvdWxkQmUoInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54Iiwg
Ii0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInUSciKTsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzMCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
IiwgIjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueDEiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidU
JyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVU
ZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0
aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgMC4wLCAgICAicGF0aCIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEu
MCwgICAgInBhdGgiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJw
YXRoIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicGF0aCIsIHNh
bXBsZTRdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInBhdGgiLCBzYW1wbGUxXQor
ICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8g
QmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUw
KSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80113</attachid>
            <date>2011-01-25 13:39:26 -0800</date>
            <delta_ts>2011-01-27 02:33:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52984-20110125223921.patch</filename>
            <type>text/plain</type>
            <size>82780</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NjM2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDEtMjUgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkcgYW5pbWF0aW9uIG9mIFBhdGhzIHdpdGggc2VnbWVudHMgb2Yg
ZGlmZmVyZW50IGNvb3JkaW5hdGUgbW9kZXMgb24gYmVnaW4gYW5kIGVuZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI5ODQKKworICAgICAgICBBdCB0
aGUgbW9tZW50IHdlIGp1c3Qgc3VwcG9ydCBTVkcgcGF0aCBhbmltYXRpb25zLCBpZiB0aGUgbnVt
YmVyIG9mIHNlZ21lbnRzIG9uIHRoZSBnaXZlbiBzdGFydCBwYXRoCisgICAgICAgIGlzIHRoZSBz
YW1lIGFzIHRoZSBudW1iZXIgb2Ygc2VnbWVudHMgb24gdGhlIGdpdmVuIGVuZCBwYXRoLiBCdXQg
YSBzZWdtZW50IG9uIGEgZ2l2ZW4gcG9zaXRpb24gbXVzdCBiZSBpZGVudGljYWwKKyAgICAgICAg
b24gYm90aCBwYXRocyBhcyB3ZWxsLiBOb3Qgb25seSB0aGUgc2VnbWVudCB0eXBlLCBhbHNvIHRo
ZSBjb29yZGluYXRlIG1vZGUgb2YgdGhlIHNlZ21lbnRzIG11c3QgYmUgaWRlbnRpY2FsLgorICAg
ICAgICBJZiBNb3ZlVG9SZWwgaXMgb24gdGhlIHNlY29uZCBwb3NpdGlvbiBvbiB0aGUgc3RhcnQg
cGF0aCBhIE1vdmVUb1JlbCBtdXN0IGJlIG9uIHRoZSBzZWNvbmQgcG9zaXRpb24KKyAgICAgICAg
b2YgdGhlIGVuZCBwYXRoIHRvby4gQWNjb3JkaW5nIHRvIHRoZSBTVkcgc3BlYywgYXQgbGVhc3Qg
dGhlIGNvb3JkaW5hdGUgbW9kZSBjYW4gZGlmZmVyLiBNZWFucywgaWYgd2UgaGF2ZSBNb3ZlVG9S
ZWwKKyAgICAgICAgaW4gdGhlIHN0YXJ0IHBhdGgsIHdlIGNhbiB1c2UgTW92ZVRvQWJzIG9uIHRo
ZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBlbmQgcGF0aC4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHRoZSBibGVuZGluZyBjb2RlIHRvIGZvbGxvdyB0aGUgc3BlYyBoZXJlLiBJdCB3YXMgbmVj
ZXNzYXJ5IHRvIHRyYWNrIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mCisgICAgICAgIGJvdGggcGF0
aHMsIHRyYW5zZm9ybSBjb29yZGluYXRlcyB0byB0aGUgc2FtZSBjb29yZGluYXRlIG1vZGUgYW5k
IHRyYW5zZm9ybSB0aGUgcmVzdWx0aW5nIGFuaW1hdGlvbiBjb29yZGluYXRlIGJhY2sKKyAgICAg
ICAgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSBvZiBlaXRoZXIgdGhlIHN0YXJ0IG9yIHRoZSBlbmQg
cGF0aC4gV2hpY2ggbW9kZSBpcyB0YWtlbiBkZXBlbmRzIG9uIHRoZSBwcm9ncmVzcyBvZiB0aGUK
KyAgICAgICAgYW5pbWF0aW9uLgorCisgICAgICAgIFRlc3RzOiBzdmcvYW5pbWF0aW9ucy9hbmlt
YXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRp
b25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVy
c2UuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1h
dGlvbi1sTC12Vi1oSC1pbnZlcnNlLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25z
L2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aEJsZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGbG9hdFBvaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kQW5pbWF0ZWRGbG9hdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRlZERpbWVuc2lvbmFsRmxvYXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZE1vdmVUb1NlZ21lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kTGluZVRvU2VnbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9Ib3Jpem9udGFsU2Vn
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRMaW5lVG9WZXJ0
aWNhbFNlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3Vy
dmVUb0N1YmljU2VnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRDdXJ2ZVRvQ3ViaWNTbW9vdGhTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhC
bGVuZGVyOjpibGVuZEN1cnZlVG9RdWFkcmF0aWNTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhCbGVuZGVyOjpibGVuZEN1cnZlVG9RdWFkcmF0aWNTbW9vdGhTZWdtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFyY1RvU2VnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb29yZGluYXRlTW9kZU9mQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
Ojppc1NlZ21lbnRFcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6Ymxl
bmRBbmltYXRlZFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmNsZWFu
dXApOgorICAgICAgICAqIHN2Zy9TVkdQYXRoQmxlbmRlci5oOgorCiAyMDExLTAxLTI1ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCShyZXZpc2lv
biA3NjYwNykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLCAyMDExLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNCwxNCArMzQsNjAgQEAgU1ZHUGF0aEJs
ZW5kZXI6OlNWR1BhdGhCbGVuZGVyKCkKIHsKIH0KIAotZmxvYXQgU1ZHUGF0aEJsZW5kZXI6OmJs
ZW5kQW5pbWF0ZWRGbG9hdChmbG9hdCBmcm9tLCBmbG9hdCB0bykKKy8vIEhlbHBlciBmdW5jdGlv
bnMKK3N0YXRpYyBpbmxpbmUgRmxvYXRQb2ludCBibGVuZEZsb2F0UG9pbnQoY29uc3QgRmxvYXRQ
b2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYiwgZmxvYXQgcHJvZ3Jlc3MpCiB7Ci0gICAgcmV0
dXJuICh0byAtIGZyb20pICogbV9wcm9ncmVzcyArIGZyb207CisgICAgcmV0dXJuIEZsb2F0UG9p
bnQoKGIueCgpIC0gYS54KCkpICogcHJvZ3Jlc3MgKyBhLngoKSwgKGIueSgpIC0gYS55KCkpICog
cHJvZ3Jlc3MgKyBhLnkoKSk7CiB9CiAKLUZsb2F0UG9pbnQgU1ZHUGF0aEJsZW5kZXI6OmJsZW5k
QW5pbWF0ZWRGbG9hdFBvaW50KEZsb2F0UG9pbnQmIGZyb20sIEZsb2F0UG9pbnQmIHRvKQorc3Rh
dGljIGlubGluZSBmbG9hdCBibGVuZEFuaW1hdGVkRmxvYXQoZmxvYXQgZnJvbSwgZmxvYXQgdG8s
IGZsb2F0IHByb2dyZXNzKQogewotICAgIHJldHVybiBGbG9hdFBvaW50KCh0by54KCkgLSBmcm9t
LngoKSkgKiBtX3Byb2dyZXNzICsgZnJvbS54KCksICh0by55KCkgLSBmcm9tLnkoKSkgKiBtX3By
b2dyZXNzICsgZnJvbS55KCkpOworICAgIHJldHVybiAodG8gLSBmcm9tKSAqIHByb2dyZXNzICsg
ZnJvbTsKK30KKworZmxvYXQgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWREaW1lbnNpb25h
bEZsb2F0KGZsb2F0IGZyb20sIGZsb2F0IHRvLCBGbG9hdEJsZW5kTW9kZSBibGVuZE1vZGUpCit7
CisgICAgaWYgKG1fZnJvbU1vZGUgPT0gbV90b01vZGUpCisgICAgICAgIHJldHVybiBibGVuZEFu
aW1hdGVkRmxvYXQoZnJvbSwgdG8sIG1fcHJvZ3Jlc3MpOworICAgIAorICAgIGZsb2F0IGZyb21E
aW1lbnNpb25hbFZhbHVlID0gYmxlbmRNb2RlID09IEJsZW5kSG9yaXpvbnRhbCA/IG1fZnJvbUN1
cnJlbnRQb2ludC54KCkgOiBtX2Zyb21DdXJyZW50UG9pbnQueSgpOworICAgIGZsb2F0IHRvRGlt
ZW5zaW9uYWxWYWx1ZSA9IGJsZW5kTW9kZSA9PSBCbGVuZEhvcml6b250YWwgPyBtX3RvQ3VycmVu
dFBvaW50LngoKSA6IG1fdG9DdXJyZW50UG9pbnQueSgpOworCisgICAgLy8gVHJhbnNmb3JtIHRv
WSB0byB0aGUgY29vcmRpbmF0ZSBtb2RlIG9mIGZyb21ZCisgICAgZmxvYXQgYW5pbVZhbHVlID0g
YmxlbmRBbmltYXRlZEZsb2F0KGZyb20sIG1fZnJvbU1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cyA/IHRvICsgdG9EaW1lbnNpb25hbFZhbHVlIDogdG8gLSB0b0RpbWVuc2lvbmFsVmFsdWUsIG1f
cHJvZ3Jlc3MpOworICAgIAorICAgIGlmIChtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbikKKyAg
ICAgICAgcmV0dXJuIGFuaW1WYWx1ZTsKKyAgICAKKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGFuaW1h
dGVkIHBvaW50IHRvIHRoZSBjb29yZGluYXRlIG1vZGUsIG5lZWRlZCBmb3IgdGhlIGN1cnJlbnQg
cHJvZ3Jlc3MuCisgICAgZmxvYXQgY3VycmVudFZhbHVlID0gYmxlbmRBbmltYXRlZEZsb2F0KGZy
b21EaW1lbnNpb25hbFZhbHVlLCB0b0RpbWVuc2lvbmFsVmFsdWUsIG1fcHJvZ3Jlc3MpOworICAg
IHJldHVybiBtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gYW5pbVZhbHVlICsgY3Vy
cmVudFZhbHVlIDogYW5pbVZhbHVlIC0gY3VycmVudFZhbHVlOworfQorCitGbG9hdFBvaW50IFNW
R1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkRmxvYXRQb2ludChjb25zdCBGbG9hdFBvaW50JiBm
cm9tUG9pbnQsIGNvbnN0IEZsb2F0UG9pbnQmIHRvUG9pbnQpCit7CisgICAgaWYgKG1fZnJvbU1v
ZGUgPT0gbV90b01vZGUpCisgICAgICAgIHJldHVybiBibGVuZEZsb2F0UG9pbnQoZnJvbVBvaW50
LCB0b1BvaW50LCBtX3Byb2dyZXNzKTsKKworICAgIC8vIFRyYW5zZm9ybSB0b1BvaW50IHRvIHRo
ZSBjb29yZGluYXRlIG1vZGUgb2YgZnJvbVBvaW50CisgICAgRmxvYXRQb2ludCBhbmltYXRlZFBv
aW50ID0gdG9Qb2ludDsKKyAgICBpZiAobV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
KQorICAgICAgICBhbmltYXRlZFBvaW50ICs9IG1fdG9DdXJyZW50UG9pbnQ7CisgICAgZWxzZQor
ICAgICAgICBhbmltYXRlZFBvaW50Lm1vdmUoLW1fdG9DdXJyZW50UG9pbnQueCgpLCAtbV90b0N1
cnJlbnRQb2ludC55KCkpOworCisgICAgYW5pbWF0ZWRQb2ludCA9IGJsZW5kRmxvYXRQb2ludChm
cm9tUG9pbnQsIGFuaW1hdGVkUG9pbnQsIG1fcHJvZ3Jlc3MpOworCisgICAgaWYgKG1faXNJbkZp
cnN0SGFsZk9mQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gYW5pbWF0ZWRQb2ludDsKKworICAg
IC8vIFRyYW5zZm9ybSB0aGUgYW5pbWF0ZWQgcG9pbnQgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSwg
bmVlZGVkIGZvciB0aGUgY3VycmVudCBwcm9ncmVzcy4KKyAgICBGbG9hdFBvaW50IGN1cnJlbnRQ
b2ludCA9IGJsZW5kRmxvYXRQb2ludChtX2Zyb21DdXJyZW50UG9pbnQsIG1fdG9DdXJyZW50UG9p
bnQsIG1fcHJvZ3Jlc3MpOworICAgIGlmIChtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
KQorICAgICAgICByZXR1cm4gYW5pbWF0ZWRQb2ludCArIGN1cnJlbnRQb2ludDsKKworICAgIGFu
aW1hdGVkUG9pbnQubW92ZSgtY3VycmVudFBvaW50LngoKSwgLWN1cnJlbnRQb2ludC55KCkpOwor
ICAgIHJldHVybiBhbmltYXRlZFBvaW50OwogfQogCiBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVu
ZE1vdmVUb1NlZ21lbnQoKQpAQCAtNTIsNyArOTgsOSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpi
bGVuZE1vdmVUb1NlZ21lbnQoCiAgICAgICAgIHx8ICFtX3RvU291cmNlLT5wYXJzZU1vdmVUb1Nl
Z21lbnQodG9UYXJnZXRQb2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fY29u
c3VtZXItPm1vdmVUbyhibGVuZEFuaW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRv
VGFyZ2V0UG9pbnQpLCBmYWxzZSwgbV9tb2RlKTsKKyAgICBtX2NvbnN1bWVyLT5tb3ZlVG8oYmxl
bmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwgZmFs
c2UsIG1faXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsK
KyAgICBtX2Zyb21DdXJyZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMgPyBmcm9tVGFyZ2V0UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9p
bnQ7CisgICAgbV90b0N1cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMgPyB0b1RhcmdldFBvaW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY0LDcgKzExMiw5IEBAIGJvb2wgU1ZHUGF0aEJsZW5k
ZXI6OmJsZW5kTGluZVRvU2VnbWVudCgKICAgICAgICAgfHwgIW1fdG9Tb3VyY2UtPnBhcnNlTGlu
ZVRvU2VnbWVudCh0b1RhcmdldFBvaW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
bV9jb25zdW1lci0+bGluZVRvKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2lu
dCwgdG9UYXJnZXRQb2ludCksIG1fbW9kZSk7CisgICAgbV9jb25zdW1lci0+bGluZVRvKGJsZW5k
QW5pbWF0ZWRGbG9hdFBvaW50KGZyb21UYXJnZXRQb2ludCwgdG9UYXJnZXRQb2ludCksIG1faXNJ
bkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBtX2Zy
b21DdXJyZW50UG9pbnQgPSBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBmcm9t
VGFyZ2V0UG9pbnQgOiBtX2Zyb21DdXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9pbnQ7CisgICAg
bV90b0N1cnJlbnRQb2ludCA9IG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1Rh
cmdldFBvaW50IDogbV90b0N1cnJlbnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTc2LDcgKzEyNiw5IEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5k
TGluZVRvSG9yaXpvbnQKICAgICAgICAgfHwgIW1fdG9Tb3VyY2UtPnBhcnNlTGluZVRvSG9yaXpv
bnRhbFNlZ21lbnQodG9YKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9jb25zdW1l
ci0+bGluZVRvSG9yaXpvbnRhbChibGVuZEFuaW1hdGVkRmxvYXQoZnJvbVgsIHRvWCksIG1fbW9k
ZSk7CisgICAgbV9jb25zdW1lci0+bGluZVRvSG9yaXpvbnRhbChibGVuZEFuaW1hdGVkRGltZW5z
aW9uYWxGbG9hdChmcm9tWCwgdG9YLCBCbGVuZEhvcml6b250YWwpLCBtX2lzSW5GaXJzdEhhbGZP
ZkFuaW1hdGlvbiA/IG1fZnJvbU1vZGUgOiBtX3RvTW9kZSk7CisgICAgbV9mcm9tQ3VycmVudFBv
aW50LnNldFgobV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gZnJvbVggOiBtX2Zy
b21DdXJyZW50UG9pbnQueCgpICsgZnJvbVgpOworICAgIG1fdG9DdXJyZW50UG9pbnQuc2V0WCht
X3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gdG9YIDogbV90b0N1cnJlbnRQb2ludC54
KCkgKyB0b1gpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC04OCw3ICsxNDAsOSBAQCBib29s
IFNWR1BhdGhCbGVuZGVyOjpibGVuZExpbmVUb1ZlcnRpY2FsCiAgICAgICAgIHx8ICFtX3RvU291
cmNlLT5wYXJzZUxpbmVUb1ZlcnRpY2FsU2VnbWVudCh0b1kpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBtX2NvbnN1bWVyLT5saW5lVG9WZXJ0aWNhbChibGVuZEFuaW1hdGVkRmxvYXQo
ZnJvbVksIHRvWSksIG1fbW9kZSk7CisgICAgbV9jb25zdW1lci0+bGluZVRvVmVydGljYWwoYmxl
bmRBbmltYXRlZERpbWVuc2lvbmFsRmxvYXQoZnJvbVksIHRvWSwgQmxlbmRWZXJ0aWNhbCksIG1f
aXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBt
X2Zyb21DdXJyZW50UG9pbnQuc2V0WShtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMg
PyBmcm9tWSA6IG1fZnJvbUN1cnJlbnRQb2ludC55KCkgKyBmcm9tWSk7CisgICAgbV90b0N1cnJl
bnRQb2ludC5zZXRZKG1fdG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1kgOiBtX3Rv
Q3VycmVudFBvaW50LnkoKSArIHRvWSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEwNyw3
ICsxNjEsOSBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEN1cnZlVG9DdWJpY1NlCiAgICAg
bV9jb25zdW1lci0+Y3VydmVUb0N1YmljKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21Qb2lu
dDEsIHRvUG9pbnQxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmltYXRl
ZEZsb2F0UG9pbnQoZnJvbVBvaW50MiwgdG9Qb2ludDIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBibGVuZEFuaW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRvVGFyZ2V0
UG9pbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21vZGUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IG1fZnJvbU1v
ZGUgOiBtX3RvTW9kZSk7CisgICAgbV9mcm9tQ3VycmVudFBvaW50ID0gbV9mcm9tTW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzID8gZnJvbVRhcmdldFBvaW50IDogbV9mcm9tQ3VycmVudFBvaW50
ICsgZnJvbVRhcmdldFBvaW50OworICAgIG1fdG9DdXJyZW50UG9pbnQgPSBtX3RvTW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzID8gdG9UYXJnZXRQb2ludCA6IG1fdG9DdXJyZW50UG9pbnQgKyB0
b1RhcmdldFBvaW50OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMjMsNyArMTc5LDkgQEAg
Ym9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRDdXJ2ZVRvQ3ViaWNTbQogCiAgICAgbV9jb25zdW1l
ci0+Y3VydmVUb0N1YmljU21vb3RoKGJsZW5kQW5pbWF0ZWRGbG9hdFBvaW50KGZyb21Qb2ludDIs
IHRvUG9pbnQyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmlt
YXRlZEZsb2F0UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9pc0luRmlyc3RIYWxmT2ZBbmltYXRpb24gPyBtX2Zyb21Nb2RlIDog
bV90b01vZGUpOworICAgIG1fZnJvbUN1cnJlbnRQb2ludCA9IG1fZnJvbU1vZGUgPT0gQWJzb2x1
dGVDb29yZGluYXRlcyA/IGZyb21UYXJnZXRQb2ludCA6IG1fZnJvbUN1cnJlbnRQb2ludCArIGZy
b21UYXJnZXRQb2ludDsKKyAgICBtX3RvQ3VycmVudFBvaW50ID0gbV90b01vZGUgPT0gQWJzb2x1
dGVDb29yZGluYXRlcyA/IHRvVGFyZ2V0UG9pbnQgOiBtX3RvQ3VycmVudFBvaW50ICsgdG9UYXJn
ZXRQb2ludDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTM5LDcgKzE5Nyw5IEBAIGJvb2wg
U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQ3VydmVUb1F1YWRyYXQKIAogICAgIG1fY29uc3VtZXItPmN1
cnZlVG9RdWFkcmF0aWMoYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVBvaW50MSwgdG9Qb2lu
dDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmltYXRlZEZsb2F0
UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IG1fZnJvbU1vZGUgOiBtX3RvTW9kZSk7Cisg
ICAgbV9mcm9tQ3VycmVudFBvaW50ID0gbV9mcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
ID8gZnJvbVRhcmdldFBvaW50IDogbV9mcm9tQ3VycmVudFBvaW50ICsgZnJvbVRhcmdldFBvaW50
OworICAgIG1fdG9DdXJyZW50UG9pbnQgPSBtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
ID8gdG9UYXJnZXRQb2ludCA6IG1fdG9DdXJyZW50UG9pbnQgKyB0b1RhcmdldFBvaW50OwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0xNTEsNyArMjExLDkgQEAgYm9vbCBTVkdQYXRoQmxlbmRl
cjo6YmxlbmRDdXJ2ZVRvUXVhZHJhdAogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VDdXJ2
ZVRvUXVhZHJhdGljU21vb3RoU2VnbWVudCh0b1RhcmdldFBvaW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgbV9jb25zdW1lci0+Y3VydmVUb1F1YWRyYXRpY1Ntb290aChibGVuZEFu
aW1hdGVkRmxvYXRQb2ludChmcm9tVGFyZ2V0UG9pbnQsIHRvVGFyZ2V0UG9pbnQpLCBtX21vZGUp
OworICAgIG1fY29uc3VtZXItPmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoYmxlbmRBbmltYXRlZEZs
b2F0UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwgbV9pc0luRmlyc3RIYWxm
T2ZBbmltYXRpb24gPyBtX2Zyb21Nb2RlIDogbV90b01vZGUpOworICAgIG1fZnJvbUN1cnJlbnRQ
b2ludCA9IG1fZnJvbU1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IGZyb21UYXJnZXRQb2lu
dCA6IG1fZnJvbUN1cnJlbnRQb2ludCArIGZyb21UYXJnZXRQb2ludDsKKyAgICBtX3RvQ3VycmVu
dFBvaW50ID0gbV90b01vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHRvVGFyZ2V0UG9pbnQg
OiBtX3RvQ3VycmVudFBvaW50ICsgdG9UYXJnZXRQb2ludDsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMTczLDE2ICsyMzUsNDQgQEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBcmNUb1Nl
Z21lbnQoKQogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VBcmNUb1NlZ21lbnQodG9SeCwg
dG9SeSwgdG9BbmdsZSwgdG9MYXJnZUFyYywgdG9Td2VlcCwgdG9UYXJnZXRQb2ludCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fY29uc3VtZXItPmFyY1RvKGJsZW5kQW5pbWF0ZWRG
bG9hdChmcm9tUngsIHRvUngpLAotICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRG
bG9hdChmcm9tUnksIHRvUnkpLAotICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRG
bG9hdChmcm9tQW5nbGUsIHRvQW5nbGUpLAotICAgICAgICAgICAgICAgICAgICAgIG1fcHJvZ3Jl
c3MgPCAwLjUgPyBmcm9tTGFyZ2VBcmMgOiB0b0xhcmdlQXJjLAotICAgICAgICAgICAgICAgICAg
ICAgIG1fcHJvZ3Jlc3MgPCAwLjUgPyBmcm9tU3dlZXAgOiB0b1N3ZWVwLAorICAgIG1fY29uc3Vt
ZXItPmFyY1RvKGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tUngsIHRvUngsIG1fcHJvZ3Jlc3MpLAor
ICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tUnksIHRvUnksIG1f
cHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9t
QW5nbGUsIHRvQW5nbGUsIG1fcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgIG1faXNJ
bkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gZnJvbUxhcmdlQXJjIDogdG9MYXJnZUFyYywKKyAgICAg
ICAgICAgICAgICAgICAgICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IGZyb21Td2VlcCA6
IHRvU3dlZXAsCiAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQo
ZnJvbVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwKLSAgICAgICAgICAgICAgICAgICAgICBt
X21vZGUpOworICAgICAgICAgICAgICAgICAgICAgIG1faXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9u
ID8gbV9mcm9tTW9kZSA6IG1fdG9Nb2RlKTsKKyAgICBtX2Zyb21DdXJyZW50UG9pbnQgPSBtX2Zy
b21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyBmcm9tVGFyZ2V0UG9pbnQgOiBtX2Zyb21D
dXJyZW50UG9pbnQgKyBmcm9tVGFyZ2V0UG9pbnQ7CisgICAgbV90b0N1cnJlbnRQb2ludCA9IG1f
dG9Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0b1RhcmdldFBvaW50IDogbV90b0N1cnJl
bnRQb2ludCArIHRvVGFyZ2V0UG9pbnQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBp
bmxpbmUgUGF0aENvb3JkaW5hdGVNb2RlIGNvb3JkaW5hdGVNb2RlT2ZDb21tYW5kKGNvbnN0IFNW
R1BhdGhTZWdUeXBlJiB0eXBlKQoreworICAgIGlmICh0eXBlIDwgUGF0aFNlZ01vdmVUb0FicykK
KyAgICAgICAgcmV0dXJuIEFic29sdXRlQ29vcmRpbmF0ZXM7CisKKyAgICAvLyBPZGQgbnVtYmVy
ID0gcmVsYXRpdmUgY29tbWFuZAorICAgIGlmICh0eXBlICUgMikKKyAgICAgICAgcmV0dXJuIFJl
bGF0aXZlQ29vcmRpbmF0ZXM7CisKKyAgICByZXR1cm4gQWJzb2x1dGVDb29yZGluYXRlczsKK30K
Kworc3RhdGljIGlubGluZSBib29sIGlzU2VnbWVudEVxdWFsKGNvbnN0IFNWR1BhdGhTZWdUeXBl
JiBmcm9tVHlwZSwgY29uc3QgU1ZHUGF0aFNlZ1R5cGUmIHRvVHlwZSwgY29uc3QgUGF0aENvb3Jk
aW5hdGVNb2RlJiBmcm9tTW9kZSwgY29uc3QgUGF0aENvb3JkaW5hdGVNb2RlJiB0b01vZGUpCit7
CisgICAgaWYgKGZyb21UeXBlID09IHRvVHlwZSAmJiAoZnJvbVR5cGUgPT0gUGF0aFNlZ1Vua25v
d24gfHwgZnJvbVR5cGUgPT0gUGF0aFNlZ0Nsb3NlUGF0aCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgdW5zaWduZWQgc2hvcnQgZnJvbSA9IGZyb21UeXBlOworICAgIHVuc2lnbmVkIHNo
b3J0IHRvID0gdG9UeXBlOworICAgIGlmIChmcm9tTW9kZSA9PSB0b01vZGUpCisgICAgICAgIHJl
dHVybiBmcm9tID09IHRvOworICAgIGlmIChmcm9tTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
KQorICAgICAgICByZXR1cm4gZnJvbSA9PSB0byAtIDE7CisgICAgcmV0dXJuIHRvID09IGZyb20g
LSAxOworfQorCiBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkUGF0aChmbG9hdCBw
cm9ncmVzcywgU1ZHUGF0aFNvdXJjZSogZnJvbVNvdXJjZSwgU1ZHUGF0aFNvdXJjZSogdG9Tb3Vy
Y2UsIFNWR1BhdGhDb25zdW1lciogY29uc3VtZXIpCiB7CiAgICAgQVNTRVJUKGZyb21Tb3VyY2Up
OwpAQCAtMTkxLDYgKzI4MSw3IEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWRQ
YXRoKGYKICAgICBtX2Zyb21Tb3VyY2UgPSBmcm9tU291cmNlOwogICAgIG1fdG9Tb3VyY2UgPSB0
b1NvdXJjZTsKICAgICBtX2NvbnN1bWVyID0gY29uc3VtZXI7CisgICAgbV9pc0luRmlyc3RIYWxm
T2ZBbmltYXRpb24gPSBwcm9ncmVzcyA8IDAuNWY7CiAKICAgICBtX3Byb2dyZXNzID0gcHJvZ3Jl
c3M7CiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTE5OCwzMSArMjg5LDI5IEBAIGJvb2wgU1ZHUGF0
aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWRQYXRoKGYKICAgICAgICAgU1ZHUGF0aFNlZ1R5cGUgdG9D
b21tYW5kOwogICAgICAgICBpZiAoIW1fZnJvbVNvdXJjZS0+cGFyc2VTVkdTZWdtZW50VHlwZShm
cm9tQ29tbWFuZCkgfHwgIW1fdG9Tb3VyY2UtPnBhcnNlU1ZHU2VnbWVudFR5cGUodG9Db21tYW5k
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGZyb21Db21tYW5kICE9
IHRvQ29tbWFuZCkKKworICAgICAgICBtX2Zyb21Nb2RlID0gY29vcmRpbmF0ZU1vZGVPZkNvbW1h
bmQoZnJvbUNvbW1hbmQpOworICAgICAgICBtX3RvTW9kZSA9IGNvb3JkaW5hdGVNb2RlT2ZDb21t
YW5kKHRvQ29tbWFuZCk7CisgICAgICAgIGlmICghaXNTZWdtZW50RXF1YWwoZnJvbUNvbW1hbmQs
IHRvQ29tbWFuZCwgbV9mcm9tTW9kZSwgbV90b01vZGUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIG1fbW9kZSA9IEFic29sdXRlQ29vcmRpbmF0ZXM7CiAgICAgICAgIHN3
aXRjaCAoZnJvbUNvbW1hbmQpIHsKICAgICAgICAgY2FzZSBQYXRoU2VnTW92ZVRvUmVsOgotICAg
ICAgICAgICAgbV9tb2RlID0gUmVsYXRpdmVDb29yZGluYXRlczsKICAgICAgICAgY2FzZSBQYXRo
U2VnTW92ZVRvQWJzOgogICAgICAgICAgICAgaWYgKCFibGVuZE1vdmVUb1NlZ21lbnQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBQYXRoU2VnTGluZVRvUmVsOgotICAgICAgICAgICAgbV9tb2RlID0gUmVsYXRpdmVDb29y
ZGluYXRlczsKICAgICAgICAgY2FzZSBQYXRoU2VnTGluZVRvQWJzOgogICAgICAgICAgICAgaWYg
KCFibGVuZExpbmVUb1NlZ21lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQYXRoU2VnTGluZVRvSG9yaXpvbnRhbFJl
bDoKLSAgICAgICAgICAgIG1fbW9kZSA9IFJlbGF0aXZlQ29vcmRpbmF0ZXM7CiAgICAgICAgIGNh
c2UgUGF0aFNlZ0xpbmVUb0hvcml6b250YWxBYnM6CiAgICAgICAgICAgICBpZiAoIWJsZW5kTGlu
ZVRvSG9yaXpvbnRhbFNlZ21lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQYXRoU2VnTGluZVRvVmVydGljYWxSZWw6
Ci0gICAgICAgICAgICBtX21vZGUgPSBSZWxhdGl2ZUNvb3JkaW5hdGVzOwogICAgICAgICBjYXNl
IFBhdGhTZWdMaW5lVG9WZXJ0aWNhbEFiczoKICAgICAgICAgICAgIGlmICghYmxlbmRMaW5lVG9W
ZXJ0aWNhbFNlZ21lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzEs
MzEgKzMyMCwyNiBAQCBib29sIFNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkUGF0aChmCiAg
ICAgICAgICAgICBtX2NvbnN1bWVyLT5jbG9zZVBhdGgoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNSZWw6Ci0gICAgICAgICAgICBtX21vZGUg
PSBSZWxhdGl2ZUNvb3JkaW5hdGVzOwogICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNB
YnM6CiAgICAgICAgICAgICBpZiAoIWJsZW5kQ3VydmVUb0N1YmljU2VnbWVudCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFBhdGhTZWdDdXJ2ZVRvQ3ViaWNTbW9vdGhSZWw6Ci0gICAgICAgICAgICBtX21vZGUgPSBSZWxh
dGl2ZUNvb3JkaW5hdGVzOwogICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNTbW9vdGhB
YnM6CiAgICAgICAgICAgICBpZiAoIWJsZW5kQ3VydmVUb0N1YmljU21vb3RoU2VnbWVudCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFBhdGhTZWdDdXJ2ZVRvUXVhZHJhdGljUmVsOgotICAgICAgICAgICAgbV9tb2RlID0g
UmVsYXRpdmVDb29yZGluYXRlczsKICAgICAgICAgY2FzZSBQYXRoU2VnQ3VydmVUb1F1YWRyYXRp
Y0FiczoKICAgICAgICAgICAgIGlmICghYmxlbmRDdXJ2ZVRvUXVhZHJhdGljU2VnbWVudCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFBhdGhTZWdDdXJ2ZVRvUXVhZHJhdGljU21vb3RoUmVsOgotICAgICAgICAgICAgbV9t
b2RlID0gUmVsYXRpdmVDb29yZGluYXRlczsKICAgICAgICAgY2FzZSBQYXRoU2VnQ3VydmVUb1F1
YWRyYXRpY1Ntb290aEFiczoKICAgICAgICAgICAgIGlmICghYmxlbmRDdXJ2ZVRvUXVhZHJhdGlj
U21vb3RoU2VnbWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFBhdGhTZWdBcmNSZWw6Ci0gICAgICAgICAgICBtX21v
ZGUgPSBSZWxhdGl2ZUNvb3JkaW5hdGVzOwogICAgICAgICBjYXNlIFBhdGhTZWdBcmNBYnM6CiAg
ICAgICAgICAgICBpZiAoIWJsZW5kQXJjVG9TZWdtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMjgxLDYgKzM2NSw4IEBAIHZvaWQgU1ZHUGF0aEJsZW5kZXI6OmNsZWFu
dXAoKQogICAgIG1fdG9Tb3VyY2UgPSAwOwogICAgIG1fZnJvbVNvdXJjZSA9IDA7CiAgICAgbV9j
b25zdW1lciA9IDA7CisgICAgbV9mcm9tQ3VycmVudFBvaW50ID0gRmxvYXRQb2ludCgpOworICAg
IG1fdG9DdXJyZW50UG9pbnQgPSBGbG9hdFBvaW50KCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoQmxlbmRlci5oCShyZXZpc2lvbiA3NjYwNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoQmxlbmRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiwxMSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gRmxvYXRCbGVuZE1vZGUgeworICAgIEJsZW5k
SG9yaXpvbnRhbCwKKyAgICBCbGVuZFZlcnRpY2FsCit9OworCiBjbGFzcyBTVkdQYXRoQmxlbmRl
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU1ZHUGF0aEJsZW5kZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTQ1LDE0ICs1MCwyMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgYmxlbmRDdXJ2ZVRvUXVhZHJhdGljU21vb3RoU2VnbWVudCgpOwogICAgIGJvb2wgYmxl
bmRBcmNUb1NlZ21lbnQoKTsKIAotICAgIGZsb2F0IGJsZW5kQW5pbWF0ZWRGbG9hdChmbG9hdCwg
ZmxvYXQpOwotICAgIEZsb2F0UG9pbnQgYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoRmxvYXRQb2lu
dCYsIEZsb2F0UG9pbnQmKTsKKyAgICBmbG9hdCBibGVuZEFuaW1hdGVkRGltZW5zaW9uYWxGbG9h
dChmbG9hdCwgZmxvYXQsIEZsb2F0QmxlbmRNb2RlKTsKKyAgICBGbG9hdFBvaW50IGJsZW5kQW5p
bWF0ZWRGbG9hdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGZyb20sIGNvbnN0IEZsb2F0UG9pbnQm
IHRvKTsKIAogICAgIFNWR1BhdGhTb3VyY2UqIG1fZnJvbVNvdXJjZTsKICAgICBTVkdQYXRoU291
cmNlKiBtX3RvU291cmNlOwogICAgIFNWR1BhdGhDb25zdW1lciogbV9jb25zdW1lcjsKLSAgICBQ
YXRoQ29vcmRpbmF0ZU1vZGUgbV9tb2RlOworCisgICAgRmxvYXRQb2ludCBtX2Zyb21DdXJyZW50
UG9pbnQ7CisgICAgRmxvYXRQb2ludCBtX3RvQ3VycmVudFBvaW50OworICAgIAorICAgIFBhdGhD
b29yZGluYXRlTW9kZSBtX2Zyb21Nb2RlOworICAgIFBhdGhDb29yZGluYXRlTW9kZSBtX3RvTW9k
ZTsKICAgICBmbG9hdCBtX3Byb2dyZXNzOworICAgIGJvb2wgbV9pc0luRmlyc3RIYWxmT2ZBbmlt
YXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
NjYzNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDY4IEBACisyMDExLTAxLTI1ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIGFuaW1hdGlv
biBvZiBQYXRocyB3aXRoIHNlZ21lbnRzIG9mIGRpZmZlcmVudCBjb29yZGluYXRlIG1vZGVzIG9u
IGJlZ2luIGFuZCBlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyOTg0CisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gY2hlY2sgdGhlIGNvcnJlY3Qg
YmVoYXZpb3Igb24gcGF0aCBhbmltYXRpb25zLCB3aGVyZSB0aGUgY29vcmRpbmF0ZSBtb2Rlcwor
ICAgICAgICBvZiB0aGUgc3RhcnQgcGF0aCBkaWZmZXJzIGZyb20gdGhlIG9uZSBvbiB0aGUgZW5k
IHBhdGguCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9u
LUNjLVNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1MbC1W
di1IaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgt
YW5pbWF0aW9uLVFxLVR0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgt
YW5pbWF0aW9uLWNDLXNTLWludmVyc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1oSC1pbnZlcnNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlv
bi1sTC12Vi1oSC1pbnZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQt
aW52ZXJzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBh
dGgtbmVzdGVkLXRyYW5zZm9ybXMuaHRtbDogQ2xlYW51cC4KKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9hbmltYXRlLXRleHQtbmVzdGVkLXRyYW5zZm9ybXMuaHRtbDogQ2xlYW51cC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanM6Cisg
ICAgICAgIChzaG91bGRCZUNsb3NlRW5vdWdoKTogRm9yIGRlYnVnIG91dHB1dCBvZiB2YWx1ZXMg
d2l0aCB0b2xlcmFuY2UgbGV2ZWwuCisgICAgICAgIChzdGFydFRlc3QpOgorICAgICAgICAoc2Ft
cGxlQW5pbWF0aW9uKToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToK
KyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChzYW1wbGU0
KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1MbC1Wdi1IaC5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChzYW1wbGU0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC5qczog
QWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAo
c2FtcGxlMyk6CisgICAgICAgIChzYW1wbGU0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlv
bi1jQy1zUy1pbnZlcnNlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAo
c2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKHNhbXBsZTQpOgorICAgICAg
ICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9h
bmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuanM6IEFkZGVkLgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAg
ICAgICAoc2FtcGxlNCk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJz
ZS5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAg
ICAgICAoc2FtcGxlMyk6CisgICAgICAgIChzYW1wbGU0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0
KToKKwogMjAxMS0wMS0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc2NjI1LgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NiBAQAorU1ZHIDEuMSBkeW5hbWljIGFu
aW1hdGlvbiB0ZXN0cworCitUZXN0IHBhdGggYW5pbWF0aW9uIHdoZXJlIGNvb3JkaW5hdGUgbW9k
ZXMgb2Ygc3RhcnQgYW5kIGVuZCBkaWZmZXIuIFlvdSBzaG91bGQgc2VlIFBBU1MgbWVzc2FnZXMK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS54IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCku
eSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ0MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIwCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDIwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueTEgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAyMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIgaXMgLTIwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdTJworUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDIpLnkgaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlz
IDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiBpcyA0MAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS55IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
cGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnQycKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLnggaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMjAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIGlzIDEwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS55MSBpcyAtMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLngyIGlzIDEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiBpcyAtMTAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMg
J1MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0xMAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueDIgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlz
IDM1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVy
IGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueSBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMTAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIDMwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueTIgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ3MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0x
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAtMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS55MiBpcyA1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBp
cyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueSBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eDEgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkyIGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdzJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueCBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnkyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgwKS54IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMg
J0MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54MSBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMg
LTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAyMAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdTJworUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMikueCBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LnkgaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIGlzIDIwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiBpcyA0MAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tQ2MtU3MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUNjLVNz
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LXBhdGgtYW5pbWF0aW9uLUNjLVNzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2LUhoLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDYxIEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3Qg
cGF0aCBhbmltYXRpb24gd2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRp
ZmZlci4gWW91IHNob3VsZCBzZWUgUEFTUyBtZXNzYWdlcworCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVB
c0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTCcKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNl
Z1R5cGVBc0xldHRlciBpcyAnVicKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkg
aXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgJ0gnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0xNQorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMTUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0wnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54IGlzIDE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMg
J1YnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDE1CitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdIJworUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMCkueCBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCku
eSBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xl
dHRlciBpcyAnbCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgLTMwCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIC0xNQorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAndicKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgLTE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdoJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMykueCBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0
aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgMzAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2wnCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIC02MAorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3YnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNl
Z1R5cGVBc0xldHRlciBpcyAnaCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLngg
aXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0
ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0wnCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS55IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ1YnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdIJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCBpcyAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1MbC1Wdi1IaC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tTGwtVnYtSGguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLUxsLVZ2
LUhoLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tUXEtVHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHMKKworVGVzdCBwYXRoIGFuaW1hdGlvbiB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0
IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hvdWxkIHNlZSBQQVNTIG1lc3NhZ2VzCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTMwCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdR
JworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAzMAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS54MSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgLTMw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlz
ICdUJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMzAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCku
eSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ1EnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIyLjUK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMjIuNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICdUJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBp
cyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMCkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3EnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS54IGlzIDM3LjUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMzAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIGlzIDM3LjUKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS54IGlzIC0zNy41CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55
IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdxJworUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMzAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNl
Z1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngg
aXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnUScKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eDEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIC0zMAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnVCcK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnggaXMgLTMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
YW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1RcS1UdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tUXEtVHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLVFxLVR0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tY0Mtc1MtaW52ZXJzZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1jQy1zUy1pbnZlcnNlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsODYgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
VGVzdCBwYXRoIGFuaW1hdGlvbiB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0IGFuZCBl
bmQgZGlmZmVyLiBZb3Ugc2hvdWxkIHNlZSBQQVNTIG1lc3NhZ2VzCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBp
cyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueSBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eDEgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkyIGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdzJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueCBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnkyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDAp
LnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgwKS54IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMjAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMg
J2MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDQwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS54MSBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMg
MzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDEwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAncycKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnggaXMgLTEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55
IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgMzAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIGlzIDUKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIgaXMgJ0MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IGlzIDIw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IGlzIDIwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAxMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEgaXMgLTEwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiBpcyAx
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIgaXMgLTEwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdTJworUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDIpLnkgaXMgMTAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngy
IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiBpcyAzNQorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTIwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0yMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnQycKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnggaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMjAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIGlzIDIwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSBpcyAtMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLngyIGlzIDIwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MiBpcyAt
MjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIg
aXMgJ1MnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0yMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAyMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMikueDIgaXMgMjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnky
IGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMjAKK1BB
U1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTIwCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdjJworUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueSBpcyA0MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgNDAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLngyIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLnkyIGlzIDQwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIGlzICdzJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAw
CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC00MAorUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueDIgaXMgNDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnkyIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgt
YW5pbWF0aW9uLWNDLXNTLWludmVyc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1h
bmltYXRpb24tY0Mtc1MtaW52ZXJzZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1MtaW52ZXJzZS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmlt
YXRpb24tbEwtdlYtaEgtaW52ZXJzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWlu
dmVyc2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACitTVkcgMS4x
IGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29v
cmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFT
UyBtZXNzYWdlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnkgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhT
ZWdUeXBlQXNMZXR0ZXIgaXMgJ2wnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54
IGlzIC02MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAtMzAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3YnCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnaCcKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDMpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS54IGlzIDE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlz
IDE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVy
IGlzICdsJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAtMzAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgLTE1CitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICd2JworUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueSBpcyAtMTUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2gnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgzKS54IGlzIDE1CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBp
cyAtMTUKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTE1CitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdMJworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIGlzICdWJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikueSBpcyAxNQorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVB
c0xldHRlciBpcyAnSCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnggaXMgMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAn
TScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnggaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkg
aXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRl
ciBpcyAnVicKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkgaXMgMzAKK1BBU1Mg
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ0gnCitQ
QVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54IGlzIDAKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ00nCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgwKS55IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlw
ZUFzTGV0dGVyIGlzICdsJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAt
NjAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgLTMwCitQQVNTIHBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICd2JworUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ2gnCitQQVNTIHBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgzKS54IGlzIDMwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1oSC1pbnZlcnNlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1o
SC1pbnZlcnNlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0
ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWxM
LXZWLWhILWludmVyc2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZl
cnNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLXFRLXRULWludmVyc2UtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1h
dGlvbi1xUS10VC1pbnZlcnNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
NiBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IHBhdGggYW5pbWF0
aW9uIHdoZXJlIGNvb3JkaW5hdGUgbW9kZXMgb2Ygc3RhcnQgYW5kIGVuZCBkaWZmZXIuIFlvdSBz
aG91bGQgc2VlIFBBU1MgbWVzc2FnZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMg
J00nCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IGlzIC0zMAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3EnCitQQVNTIHBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS54IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBpcyAzMAorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEgaXMgMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAndCcKK1BBU1MgcGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgy
KS55IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFz
TGV0dGVyIGlzICdNJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAK
K1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdxJworUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCBpcyAzNy41CitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS55IGlzIDMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSBp
cyAzNy41CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSBpcyAwCitQQVNTIHBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICd0JworUEFT
UyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCBpcyAtMzcuNQorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IGlzIC0z
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciBp
cyAnUScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnggaXMgMjIuNQorUEFTUyBw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS54MSBpcyAyMi41CitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
MSBpcyAtMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIgaXMgJ1QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IGlzIC0zMAor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBpcyAzMAorUEFTUyBwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciBpcyAnTScKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDApLnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS55IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNl
Z1R5cGVBc0xldHRlciBpcyAnUScKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngg
aXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkgaXMgMAorUEFTUyBwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMzAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnkxIGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0
aFNlZ1R5cGVBc0xldHRlciBpcyAnVCcKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIp
LnggaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IGlzIDMwCitQQVNT
IHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdNJwor
UEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCBpcyAtMzAKK1BBU1MgcGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkgaXMgLTMwCitQQVNTIHBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIGlzICdxJworUEFTUyBwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueCBpcyAzMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSBpcyAz
MAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEgaXMgMzAKK1BBU1MgcGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIGlzIDAKK1BBU1MgcGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIgaXMgJ3QnCitQQVNTIHBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS54IGlzIC0zMAorUEFTUyBwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSBp
cyAzMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24t
cVEtdFQtaW52ZXJzZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1x
US10VC1pbnZlcnNlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgx
PlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUt
cGF0aC1uZXN0ZWQtdHJhbnNmb3Jtcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1uZXN0ZWQtdHJhbnNmb3Jtcy5odG1sCShyZXZpc2lv
biA3NjYwNykKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1uZXN0
ZWQtdHJhbnNmb3Jtcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICsxLDE1IEBACiA8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KLSAgPGhl
YWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPGgxPlRlc3QgbmVzdGVkIHRyYW5zZm9ybXMgd2l0
aCBhbmltYXRlTW90aW9uPC9oMT4KLSAgICA8cCBpZD0iZGVzY3JpcHRpb24iLz4KLSAgICA8ZGl2
IGlkPSJjb25zb2xlIi8+Ci0gICAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLXBh
dGgtbmVzdGVkLXRyYW5zZm9ybXMuanMiPjwvc2NyaXB0PgotICA8L2JvZHk+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9hbmltYXRlLXBhdGgtbmVzdGVkLXRyYW5zZm9ybXMuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS10ZXh0LW5l
c3RlZC10cmFuc2Zvcm1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS10ZXh0LW5lc3RlZC10cmFuc2Zvcm1zLmh0bWwJKHJldmlzaW9uIDc2NjA3
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS10ZXh0LW5lc3RlZC10cmFu
c2Zvcm1zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUgKzEsMTUgQEAKIDwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgotICA8aGVhZD4KLSAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KLSAgPC9o
ZWFkPgotICA8Ym9keT4KLSAgICA8aDE+VGVzdCBuZXN0ZWQgdGV4dCB0cmFuc2Zvcm1zIHdpdGgg
YW5pbWF0ZU1vdGlvbjwvaDE+Ci0gICAgPHAgaWQ9ImRlc2NyaXB0aW9uIi8+Ci0gICAgPGRpdiBp
ZD0iY29uc29sZSIvPgotICAgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYW5pbWF0ZS10ZXh0
LW5lc3RlZC10cmFuc2Zvcm1zLmpzIj48L3NjcmlwdD4KLSAgPC9ib2R5PgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NW
R0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNW
RyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YW5pbWF0ZS10ZXh0LW5lc3RlZC10cmFuc2Zvcm1zLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9TVkdBbmlt
YXRpb25UZXN0Q2FzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9yZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMJKHJldmlzaW9uIDc2NjA3KQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDYgKzcsMjkgQEAgZnVuY3Rpb24gaXNDbG9zZUVub3Vn
aChhY3R1YWwsIGRlc2lyZWQsIAogICAgIHJldHVybiBkaWZmIDw9IHRvbGVyYW5jZTsKIH0KIAor
ZnVuY3Rpb24gc2hvdWxkQmVDbG9zZUVub3VnaChfYSwgX2IsIHRvbGVyYW5jZSkKK3sKKyAgICBp
ZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIiB8fCB0eXBl
b2YgdG9sZXJhbmNlICE9ICJudW1iZXIiKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVD
bG9zZUVub3VnaCgpIGV4cGVjdHMgdHdvIHN0cmluZyBhbmQgb25lIG51bWJlciBhcmd1bWVudHMi
KTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAg
X2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBl
OworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisgICAgCisgICAgaWYgKGV4Y2VwdGlv
bikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBUaHJl
dyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAoaXNDbG9zZUVub3VnaChf
YXYsIF9idiwgdG9sZXJhbmNlKSkKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9i
KTsKKyAgICBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKKyAgICAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGNsb3NlIHRvICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0
cmluZ2lmeShfYXYpICsgIi4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSBjbG9zZSB0byAiICsgX2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiAr
ICIpLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKK30K
KwogZnVuY3Rpb24gbW92ZUFuaW1hdGlvblRpbWVsaW5lQW5kU2FtcGxlKGluZGV4KQogewogICAg
IHZhciBhbmltYXRpb25JZCA9IGV4cGVjdGVkUmVzdWx0c1tpbmRleF1bMF07CkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlv
bi1DYy1Tcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1DYy1Tcy5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5p
bWF0aW9uLUNjLVNzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMiBAQAorZGVzY3JpcHRp
b24oIlRlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFydCBh
bmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFTUyBtZXNzYWdlcyIpOworY3JlYXRlU1ZH
VGVzdENhc2UoKTsKKy8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSB0byBhbmltYXRlZFBhdGhTZWdM
aXN0LCBvbmNlIGl0IGlzIGltcGxlbWVudGVkLgorCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2
YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJp
ZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiZCIsICJNIC0yMCAtMjAgQyAyMCAtMjAg
MjAgLTIwIDIwIDIwIFMgMjAgNDAgLTIwIDIwIFoiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJmaWxs
IiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgp
Iik7CitwYXRoLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSg1MCwgNTApIik7
CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0
dHJpYnV0ZU5hbWUiLCAiZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiTSAtMjAg
LTIwIEMgMjAgLTIwIDIwIC0yMCAyMCAyMCBTIDIwIDQwIC0yMCAyMCBaIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgidG8iLCAiTSAtMjAgLTIwIGMgMCA0MCAwIDQwIDQwIDQwIHMgNDAgMCAwIC00
MCB6Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3BhdGguYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7City
b290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRl
c3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0
aW9ucworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5
cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLngiLCAiLTIwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgwKS55IiwgIi0yMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInQyciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDEpLnkiLCAiMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLngxIiwgIjIwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgxKS55MSIsICItMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLngyIiwgIjIwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS55MiIsICItMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ1MnIik7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0yMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIyMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiMjAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLnkyIiwgIjQwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0
dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgwKS54IiwgIi0yMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0yMCIsIDAuMDEpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInQyci
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSku
eCIsICIyMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS55IiwgIjIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjEwIiwgMC4wMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIiwgIi0xMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS54MiIsICIxMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS55MiIsICItMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ1MnIik7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTEw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDIpLnkiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueTIiLCAiMzUiLCAwLjAxKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTIwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAi
LTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiNDAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEi
LCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMSkueTEiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDIiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIiLCAiMzAiLCAwLjAx
KTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBl
QXNMZXR0ZXIiLCAiJ3MnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2Vn
TGlzdC5nZXRJdGVtKDIpLngiLCAiLTEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIiwgIjMwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnkyIiwgIjUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlNCgpIHsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAi
J00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLngiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnkiLCAiNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55MSIsICI0MCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MiIsICIw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnkyIiwgIjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3Qu
Z2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidzJyIpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIjAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIt
NDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikueDIiLCAiNDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueTIiLCAiMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8g
W2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBb
ImFuaW1hdGlvbiIsIDAuMCwgICAgInBhdGgiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAxLjAsICAgICJwYXRoIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy4w
LCAgICAicGF0aCIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInBh
dGgiLCBzYW1wbGU0XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJwYXRoIiwgc2Ft
cGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9
CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRl
KDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRp
b24tTGwtVnYtSGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tTGwtVnYtSGguanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1w
YXRoLWFuaW1hdGlvbi1MbC1Wdi1IaC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MiBAQAor
ZGVzY3JpcHRpb24oIlRlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBv
ZiBzdGFydCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFTUyBtZXNzYWdlcyIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKy8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSB0byBhbmltYXRl
ZFBhdGhTZWdMaXN0LCBvbmNlIGl0IGlzIGltcGxlbWVudGVkLgorCisvLyBTZXR1cCB0ZXN0IGRv
Y3VtZW50Cit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0
cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiZCIsICJNIC0zMCAtMzAg
TCAzMCAwIFYgMzAgSCAwIFoiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CitwYXRoLnNl
dEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSg1MCwgNTApIik7CisKK3ZhciBhbmlt
YXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUi
LCAiZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiTSAtMzAgLTMwIEwgMzAgMCBW
IDMwIEggMCBaIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiTSAzMCAzMCBsIC02MCAt
MzAgdiAtMzAgaCAzMCBaIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3BhdGguYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTCciKTsKKyAgICBzaG91bGRC
ZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIpOworICAgIHNob3VsZEJlKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInViciKTsKKyAg
ICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMzAiKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIi
LCAiJ0gnIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS54Iiwg
IjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTE1Iiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLnkiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidMJyIpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjE1IiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIs
IDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNl
Z1R5cGVBc0xldHRlciIsICInViciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIxNSIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciIsICInSCciKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCIsICIw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIjE1
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDApLnkiLCAiMTUiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ2wnIik7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiLTMwIiwgMC4wMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAi
LTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIiwgIid2JyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIi0xNSIsIDAuMDEpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciIsICInaCci
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMyku
eCIsICIxNSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBzYW1wbGU0KCkgeworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSci
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCku
eCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS55IiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidsJyIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIi02MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndiciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICItMzAiLCAwLjAxKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIi
LCAiJ2gnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDMpLngiLCAiMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7Cisg
ICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGlt
ZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAs
ICAgICJwYXRoIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMS4wLCAgICAicGF0
aCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuMCwgICAgInBhdGgiLCBzYW1w
bGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJwYXRoIiwgc2FtcGxlNF0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAicGF0aCIsIHNhbXBsZTFdCisgICAgXTsKKwor
ICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0
IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLVFxLVR0LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRl
LXBhdGgtYW5pbWF0aW9uLVFxLVR0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tUXEtVHQuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTYgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHBhdGggYW5p
bWF0aW9uIHdoZXJlIGNvb3JkaW5hdGUgbW9kZXMgb2Ygc3RhcnQgYW5kIGVuZCBkaWZmZXIuIFlv
dSBzaG91bGQgc2VlIFBBU1MgbWVzc2FnZXMiKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisvLyBG
SVhNRTogV2Ugc2hvdWxkIG1vdmUgdG8gYW5pbWF0ZWRQYXRoU2VnTGlzdCwgb25jZSBpdCBpcyBp
bXBsZW1lbnRlZC4KKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHBhdGggPSBjcmVhdGVT
VkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiaWQiLCAicGF0aCIpOworcGF0
aC5zZXRBdHRyaWJ1dGUoImQiLCAiTSAtMzAgLTMwIFEgMzAgLTMwIDMwIDAgVCAtMzAgMzAgWiIp
OworcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJ0cmFuc2Zv
cm0iLCAidHJhbnNsYXRlKDUwLCA1MCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVt
ZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJkIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZnJvbSIsICJNIC0zMCAtMzAgUSAzMCAtMzAgMzAgMCBUIC0zMCAzMCBaIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiTSAtMzAgLTMwIHEgMzAgMCAzMCAzMCB0IC0z
MCAzMCB6Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3BhdGguYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7
Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9u
IHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29u
ZGl0aW9ucworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNl
Z1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLngiLCAiLTMwIik7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS55IiwgIi0zMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInUSciKTsKKyAgICBzaG91bGRCZSgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueDEiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLnkxIiwgIi0zMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInVCciKTsKKyAgICBzaG91bGRCZSgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTMwIik7CisgICAgc2hvdWxkQmUoInBh
dGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBs
ZTIoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOworICAg
IHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRl
ciIsICInUSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueCIsICIyMi41IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSIsICIyMi41IiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkx
IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInVCciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIsICItMzAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIzMCIsIDAu
MDEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICItMzAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MCkueSIsICItMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3EnIik7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiMzcuNSIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjMw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJ
dGVtKDEpLngxIiwgIjM3LjUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndCciKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIs
ICItMzcuNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgyKS55IiwgIjMwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7
CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFz
TGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICIn
cSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS55IiwgIjMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjMwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkxIiwgIjAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdU
eXBlQXNMZXR0ZXIiLCAiJ3QnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMzAiLCAwLjAxKTsKK30KKwor
ZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10K
KyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJwYXRoIiwgc2FtcGxlMV0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMS4wLCAgICAicGF0aCIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDMuMCwgICAgInBhdGgiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAz
Ljk5OTksICJwYXRoIiwgc2FtcGxlNF0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAi
cGF0aCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBh
dGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tY0Mtc1Mt
aW52ZXJzZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9hbmltYXRlLXBhdGgtYW5pbWF0aW9uLWNDLXNTLWludmVyc2UuanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTEyIEBACitkZXNjcmlwdGlvbigiVGVzdCBwYXRoIGFuaW1hdGlv
biB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hv
dWxkIHNlZSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworLy8gRklYTUU6
IFdlIHNob3VsZCBtb3ZlIHRvIGFuaW1hdGVkUGF0aFNlZ0xpc3QsIG9uY2UgaXQgaXMgaW1wbGVt
ZW50ZWQuCisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxl
bWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdGgiKTsKK3BhdGguc2V0
QXR0cmlidXRlKCJkIiwgIk0gLTIwIC0yMCBjIDAgNDAgMCA0MCA0MCA0MCBzIDQwIDAgMCAtNDAg
eiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3BhdGguc2V0QXR0cmli
dXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJ0cmFu
c2Zvcm0iLCAidHJhbnNsYXRlKDUwLCA1MCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdF
bGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9u
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJkIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiZnJvbSIsICJNIC0yMCAtMjAgYyAwIDQwIDAgNDAgNDAgNDAgcyA0MCAw
IDAgLTQwIHoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICJNIC0yMCAtMjAgQyAyMCAt
MjAgMjAgLTIwIDIwIDIwIFMgMjAgNDAgLTIwIDIwIFoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOwor
cGF0aC5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHBh
dGgpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAg
ICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNo
b3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICItMjAiKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIik7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidj
JyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICI0MCIp
OworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSIsICI0MCIpOwor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMCIpOworICAg
IHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiNDAiKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIiwgIjAiKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkyIiwgIjQwIik7CisgICAgc2hvdWxk
QmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidz
JyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIsICIwIik7
CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIi00MCIpOwor
ICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueDIiLCAiNDAiKTsKKyAg
ICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIiwgIjAiKTsKK30KKwor
ZnVuY3Rpb24gc2FtcGxlMigpIHsKKwlzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTIwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2Vn
VHlwZUFzTGV0dGVyIiwgIidjJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjQwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiNDAiLCAwLjAxKTsKKyAgICBz
aG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMTAi
LCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0
ZW0oMSkueTEiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMSkueDIiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIiLCAiMzAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnBhdGhTZWdUeXBlQXNMZXR0
ZXIiLCAiJ3MnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDIpLngiLCAiLTEwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIiwgIjMwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnky
IiwgIjUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZSgi
cGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngi
LCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnkiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidDJyIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjIwIiwgMC4w
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEp
LnkiLCAiMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueDEiLCAiMTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiLTEwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngyIiwgIjEwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDEpLnkyIiwgIi0xMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICInUyciKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueCIsICItMTAiLCAwLjAxKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIx
MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS54MiIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55MiIsICIzNSIsIDAuMDEpOworfQorCitmdW5jdGlvbiBz
YW1wbGU0KCkgeworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkucGF0
aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICItMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICItMjAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNM
ZXR0ZXIiLCAiJ0MnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDEpLngiLCAiMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueSIsICIyMCIsIDAuMDEpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSIsICIyMCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55
MSIsICItMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMSkueDIiLCAiMjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTIiLCAiLTIwIiwgMC4wMSk7CisgICAgc2hv
dWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwg
IidTJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgyKS54IiwgIi0yMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0
aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngyIiwgIjIwIiwgMC4wMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkyIiwgIjQw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwg
c2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicGF0aCIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEuMCwgICAgInBhdGgiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJwYXRoIiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicGF0aCIsIHNhbXBsZTRdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInBhdGgiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1sTC12Vi1oSC1pbnZlcnNlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBh
dGgtYW5pbWF0aW9uLWxMLXZWLWhILWludmVyc2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wYXRoLWFuaW1hdGlvbi1s
TC12Vi1oSC1pbnZlcnNlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACitkZXNjcmlw
dGlvbigiVGVzdCBwYXRoIGFuaW1hdGlvbiB3aGVyZSBjb29yZGluYXRlIG1vZGVzIG9mIHN0YXJ0
IGFuZCBlbmQgZGlmZmVyLiBZb3Ugc2hvdWxkIHNlZSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVT
VkdUZXN0Q2FzZSgpOworLy8gRklYTUU6IFdlIHNob3VsZCBtb3ZlIHRvIGFuaW1hdGVkUGF0aFNl
Z0xpc3QsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQuCisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQK
K3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk0gMzAgMzAgbCAtNjAgLTMw
IHYgLTMwIGggMzAgWiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3Bh
dGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKK3BhdGguc2V0QXR0
cmlidXRlKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDUwLCA1MCkiKTsKKwordmFyIGFuaW1hdGUg
PSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQi
LCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJk
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICJNIDMwIDMwIGwgLTYwIC0zMCB2IC0z
MCBoIDMwIFoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICJNIC0zMCAtMzAgTCAzMCAw
IFYgMzAgSCAwIFoiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworcGF0aC5hcHBlbmRDaGlsZChhbmlt
YXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHBhdGgpOworCisvLyBTZXR1cCBhbmlt
YXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2Vu
ZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5w
YXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdM
aXN0LmdldEl0ZW0oMCkueCIsICIzMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0
LmdldEl0ZW0oMCkueSIsICIzMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInbCciKTsKKyAgICBzaG91bGRCZSgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLngiLCAiLTYwIik7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIi0zMCIpOworICAgIHNob3VsZEJlKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndiciKTsKKyAgICBz
aG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiLTMwIik7CisgICAgc2hv
dWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgzKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwg
IidoJyIpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykueCIsICIz
MCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMCkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTSciKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueCIsICIxNSIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS55IiwgIjE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRl
bSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidsJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIi0xNSIs
IDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNl
Z1R5cGVBc0xldHRlciIsICIndiciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBh
dGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICItMTUiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ2gnIik7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLngiLCAi
MTUiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZSgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLngiLCAi
LTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5n
ZXRJdGVtKDApLnkiLCAiLTE1IiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidMJyIpOworICAgIHNob3VsZEJl
Q2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjE1IiwgMC4wMSk7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnki
LCAiMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMiku
cGF0aFNlZ1R5cGVBc0xldHRlciIsICInViciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikueSIsICIxNSIsIDAuMDEpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMykucGF0aFNlZ1R5cGVBc0xldHRlciIsICInSCci
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMyku
eCIsICIwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTQoKSB7CisgICAgc2hvdWxkQmUo
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54
IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5cGVBc0xldHRlciIsICInTCciKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzMCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgx
KS55IiwgIjAiLCAwLjAxKTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ1YnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLnkiLCAiMzAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDMpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAi
J0gnIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDMpLngiLCAiMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBj
b25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBl
bGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAg
InBhdGgiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAxLjAsICAgICJwYXRoIiwg
c2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy4wLCAgICAicGF0aCIsIHNhbXBsZTNd
LAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInBhdGgiLCBzYW1wbGU0XSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJwYXRoIiwgc2FtcGxlMV0KKyAgICBdOworCisgICAg
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5
bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRpb24tcVEtdFQtaW52ZXJzZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5p
bWF0ZS1wYXRoLWFuaW1hdGlvbi1xUS10VC1pbnZlcnNlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcGF0aC1hbmltYXRp
b24tcVEtdFQtaW52ZXJzZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NiBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgcGF0aCBhbmltYXRpb24gd2hlcmUgY29vcmRpbmF0ZSBtb2RlcyBvZiBzdGFy
dCBhbmQgZW5kIGRpZmZlci4gWW91IHNob3VsZCBzZWUgUEFTUyBtZXNzYWdlcyIpOworY3JlYXRl
U1ZHVGVzdENhc2UoKTsKKy8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSB0byBhbmltYXRlZFBhdGhT
ZWdMaXN0LCBvbmNlIGl0IGlzIGltcGxlbWVudGVkLgorCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50
Cit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiZCIsICJNIC0zMCAtMzAgcSAzMCAw
IDMwIDMwIHQgLTMwIDMwIHoiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CitwYXRoLnNl
dEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSg1MCwgNTApIik7CisKK3ZhciBhbmlt
YXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUi
LCAiZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiTSAtMzAgLTMwIHEgMzAgMCAz
MCAzMCB0IC0zMCAzMCB6Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiTSAtMzAgLTMw
IFEgMzAgLTMwIDMwIDAgVCAtMzAgMzAgWiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2lu
IiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CitwYXRoLmFw
cGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocGF0aCk7CisK
Ky8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENo
ZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlz
dC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ00nIik7CisgICAgc2hvdWxkQmUo
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIpOworICAgIHNob3VsZEJlKCJw
YXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMCkueSIsICItMzAiKTsKKyAgICBzaG91bGRCZSgicGF0
aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAiJ3EnIik7Cisg
ICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjMwIik7CisgICAg
c2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjMwIik7CisgICAgc2hv
dWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54MSIsICIzMCIpOworICAgIHNob3Vs
ZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiMCIpOworICAgIHNob3VsZEJl
KCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMikucGF0aFNlZ1R5cGVBc0xldHRlciIsICIndCci
KTsKKyAgICBzaG91bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDIpLngiLCAiLTMwIik7
CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMwIik7Cit9
CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisJc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgwKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0z
MCIsIDAuMDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0
aFNlZ1R5cGVBc0xldHRlciIsICIncSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRo
LnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzNy41IiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDEpLnkiLCAiMzAiLCAwLjAxKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEi
LCAiMzcuNSIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgxKS55MSIsICIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNl
Z0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIid0JyIpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0zNy41Iiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDIpLnkiLCAiMzAiLCAwLjAxKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91
bGRCZSgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVtKDApLnBhdGhTZWdUeXBlQXNMZXR0ZXIiLCAi
J00nIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRoU2VnTGlzdC5nZXRJdGVt
KDApLngiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5wYXRo
U2VnTGlzdC5nZXRJdGVtKDApLnkiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgu
cGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidRJyIpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS54IiwgIjIy
LjUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0Lmdl
dEl0ZW0oMSkueSIsICIwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicGF0aC5w
YXRoU2VnTGlzdC5nZXRJdGVtKDEpLngxIiwgIjIyLjUiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueTEiLCAiLTMwIiwgMC4wMSk7
CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS5wYXRoU2VnVHlwZUFz
TGV0dGVyIiwgIidUJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xp
c3QuZ2V0SXRlbSgyKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMwIiwgMC4wMSk7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTQoKSB7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgw
KS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidNJyIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS54IiwgIi0zMCIsIDAuMDEpOworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgwKS55IiwgIi0zMCIsIDAu
MDEpOworICAgIHNob3VsZEJlKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkucGF0aFNlZ1R5
cGVBc0xldHRlciIsICInUSciKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhT
ZWdMaXN0LmdldEl0ZW0oMSkueCIsICIzMCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgxKS55IiwgIjAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0oMSkueDEiLCAiMzAiLCAw
LjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwYXRoLnBhdGhTZWdMaXN0LmdldEl0ZW0o
MSkueTEiLCAiLTMwIiwgMC4wMSk7CisgICAgc2hvdWxkQmUoInBhdGgucGF0aFNlZ0xpc3QuZ2V0
SXRlbSgyKS5wYXRoU2VnVHlwZUFzTGV0dGVyIiwgIidUJyIpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS54IiwgIi0zMCIsIDAuMDEpOworICAg
IHNob3VsZEJlQ2xvc2VFbm91Z2goInBhdGgucGF0aFNlZ0xpc3QuZ2V0SXRlbSgyKS55IiwgIjMw
IiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwg
c2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicGF0aCIsIHNh
bXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDEuMCwgICAgInBhdGgiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjAsICAgICJwYXRoIiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicGF0aCIsIHNhbXBsZTRdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDQuMCAsICAgInBhdGgiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRp
b25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93
LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="71576"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>