<?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>238532</bug_id>
          
          <creation_ts>2022-03-29 17:52:09 -0700</creation_ts>
          <short_desc>Implement units for CSS typed om</short_desc>
          <delta_ts>2022-03-31 03:23:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1856263</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 17:52:09 -0700</bug_when>
    <thetext>Implement units for CSS typed om</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856264</commentid>
    <comment_count>1</comment_count>
      <attachid>456083</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 17:55:56 -0700</bug_when>
    <thetext>Created attachment 456083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856283</commentid>
    <comment_count>2</comment_count>
      <attachid>456089</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 20:48:40 -0700</bug_when>
    <thetext>Created attachment 456089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856292</commentid>
    <comment_count>3</comment_count>
      <attachid>456093</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 22:26:30 -0700</bug_when>
    <thetext>Created attachment 456093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856400</commentid>
    <comment_count>4</comment_count>
      <attachid>456126</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-30 08:48:59 -0700</bug_when>
    <thetext>Created attachment 456126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856429</commentid>
    <comment_count>5</comment_count>
      <attachid>456136</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-30 10:10:38 -0700</bug_when>
    <thetext>Created attachment 456136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856644</commentid>
    <comment_count>6</comment_count>
      <attachid>456136</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-30 19:35:38 -0700</bug_when>
    <thetext>Comment on attachment 456136
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Implement units for CSS typed om

&quot;CSS Typed OM&quot;

&gt; Source/WebCore/css/typedom/CSSUnitValue.cpp:81
&gt; +    if (unit == &quot;number&quot;_s)

Case sensitive comparison is OK?

&gt; Source/WebCore/css/typedom/CSSUnitValue.h:59
&gt; +    CSSUnitType m_unit;

This can be const

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:39
&gt; +static std::optional&lt;CSSNumericType&gt; addTypes(CSSNumericType a, CSSNumericType b)

You used const CSSNumericType&amp; arguments for multiply.

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:67
&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(FixedVector&lt;CSSNumberish&gt; numberishes)

const FixedVector&amp;?

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:72
&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt; values)

const Vector&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856653</commentid>
    <comment_count>7</comment_count>
      <attachid>456136</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-30 20:23:33 -0700</bug_when>
    <thetext>Comment on attachment 456136
Patch

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

&gt;&gt; Source/WebCore/css/typedom/CSSUnitValue.cpp:81
&gt;&gt; +    if (unit == &quot;number&quot;_s)
&gt; 
&gt; Case sensitive comparison is OK?

Yes, CSSParserToken::stringToUnitType (used by the CSS parser) is case sensitive and so is this.

&gt;&gt; Source/WebCore/css/typedom/CSSUnitValue.h:59
&gt;&gt; +    CSSUnitType m_unit;
&gt; 
&gt; This can be const

Wonderful!

&gt;&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:39
&gt;&gt; +static std::optional&lt;CSSNumericType&gt; addTypes(CSSNumericType a, CSSNumericType b)
&gt; 
&gt; You used const CSSNumericType&amp; arguments for multiply.

Multiplying two types can be done in a way that doesn&apos;t need to mutate a type so I used const CSSNumericType&amp; there to avoid unnecessary copies.  The strangeness of the percent hint operations in this type addition algorithm necessitate copying.

&gt;&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:67
&gt;&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(FixedVector&lt;CSSNumberish&gt; numberishes)
&gt; 
&gt; const FixedVector&amp;?

FixedVector&amp;&amp; would do the minimal number of copies, but so does this!  Sam opened my eyes to using less &amp;&amp; in the code and still having the minimum number of vector copies and I kind of like it.

&gt;&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:72
&gt;&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt; values)
&gt; 
&gt; const Vector&amp;?

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856656</commentid>
    <comment_count>8</comment_count>
      <attachid>456136</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-30 20:27:49 -0700</bug_when>
    <thetext>Comment on attachment 456136
Patch

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

&gt;&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:67
&gt;&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(FixedVector&lt;CSSNumberish&gt; numberishes)
&gt; 
&gt; const FixedVector&amp;?

Since this doesn’t take ownership of the FixedVector, I suggest we take a Span&lt;const CSSNumberish&gt;. That lets us pass a FixedVector, or a Vector, or anything else array-like. Just need to make sure that WTF::map knows how to work with a span as an argument.

&gt;&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:72
&gt;&gt; +ExceptionOr&lt;Ref&lt;CSSMathSum&gt;&gt; CSSMathSum::create(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt; values)
&gt; 
&gt; const Vector&amp;?

This takes ownership of the Vector, so I think it should not be const&amp; or a Span, needs to either be Vector or Vector&amp;&amp;, really a stylistic choice which we prefer in such cases. I think Vector&amp;&amp; normally to emphasize the fact that it takes ownership and make it less likely we’ll accidentally copy a vector.

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:87
&gt; +CSSMathSum::CSSMathSum(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt; values, CSSNumericType type)

Same thought here, maybe Vector&amp;&amp; is the way to go, as the old code did.

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:88
&gt; +    : CSSMathValue(WTFMove(type))

This struct is made up of scalars, so there is no benefit to calling WTFMove on it. I suppose it’s a stylistic choice whether to just write WTFMove anyway just in case some day this becomes an optimization?

&gt; Source/WebCore/css/typedom/numeric/CSSNumericArray.cpp:41
&gt; +Ref&lt;CSSNumericArray&gt; CSSNumericArray::create(FixedVector&lt;CSSNumberish&gt;&amp;&amp; numberishes)

Since this doesn’t take ownership of the FixedVector, I suggest we take a Span&lt;const CSSNumberish&gt;. That lets us pass a FixedVector, or a Vector, or anything else array-like. Just need to make sure that WTF::map knows how to work with a span as an argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856665</commentid>
    <comment_count>9</comment_count>
      <attachid>456198</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-30 20:44:25 -0700</bug_when>
    <thetext>Created attachment 456198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856671</commentid>
    <comment_count>10</comment_count>
      <attachid>456198</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-30 20:59:06 -0700</bug_when>
    <thetext>Comment on attachment 456198
Patch

Darin&apos;s Span suggestion is great, but since those create functions are called from the generated bindings which pass in a FixedVector the change would be more involved.  I leave that for future work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856760</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-31 03:22:27 -0700</bug_when>
    <thetext>Committed r292150 (249057@main): &lt;https://commits.webkit.org/249057@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456198.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856761</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 03:23:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/91095475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456083</attachid>
            <date>2022-03-29 17:55:56 -0700</date>
            <delta_ts>2022-03-29 20:48:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220329175555.patch</filename>
            <type>text/plain</type>
            <size>68846</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNGIyMTJjODg2NTdlNDg3MmYxYTE4MTVjYzM0NWVi
NDk5OTlhNTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgdHlwZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBvZmYgYnkgZGVmYXVsdCBhbmQgdGhp
cyBwYXJ0IGlzIGNvdmVyZWQgYnkgV1BUIHRlc3RzLgorCisgICAgICAgICogY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnN1Yik6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVmFsdWU6OnRvU3VtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpDU1NOdW1lcmljVmFsdWUpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpudW1lcmljVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVuaXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjp1bml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVW5pdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjpD
U1NVbml0VmFsdWUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuZWdhdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoSW52ZXJ0OjpD
U1NNYXRoSW52ZXJ0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptdWx0aXBseVR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhQcm9kdWN0Ojp2YWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU01hdGhTdW06OkNTU01hdGhTdW0pOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoVmFsdWU6OkNTU01hdGhWYWx1ZSk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjplYWNoQmFz
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWdTdHJpbmcpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6dmFsdWVGb3JUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNUeXBlOjphcHBseVBlcmNlbnRIaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNUeXBlOjpkZWJ1Z1N0cmluZyBjb25zdCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsOgor
CiAyMDIyLTAzLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBQR08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5k
ZXggMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJjNzIxMzNkMTU2M2JiMjBmMC4uYzQwZWRiYTA3MmQz
NDcxMGQ3YWM2YjcxMGE1Y2UzNzdkZjYzNTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NT
TnVtZXJpY0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3Bh
Y2UmKSB7IH0KIAotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciJfcyk7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7IH0K
IAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0oZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJjaCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2bWF4Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3MpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJwYyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjcWgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIl9zKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBj
cW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3FtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
RU1TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0VYUyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DSFMpOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfSUMpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1JFTVMpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTEhTKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19STEhTKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1ZXKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX1ZIKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2
aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NV
bml0VHlwZTo6Q1NTX1ZJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX1ZCKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfVk1JTik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NT
X1ZNQVgpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ00p
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTU0pOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19RKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0lOKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BUKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BDKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBD
U1NVbml0VHlwZTo6Q1NTX1BYKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXco
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5p
dFR5cGU6OkNTU19DUVcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX0NRSCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfQ1FJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19D
UUIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FN
SU4pOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FN
QVgpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
ZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJk
ZWciX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJ0dXJuIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWcoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5
cGU6OkNTU19ERUcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19HUkFEKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19SQUQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19U
VVJOKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIl9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19NUyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImh6Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgImtoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19IWik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
S0haKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJkcGkiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20iX3MpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQSSk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQQ00pOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19EUFBYKTsgfQogCiAKICAgICAvLyA8ZmxleD4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX0ZSKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBlZDdiZjk4MzhiMjgz
NmYwMGZkZDVhOTVhNDliN2IwYzAzNjY2ZWZhLi5mYTQzMWRjMmQ5ODZiYTNlMmI0YzcwMGQyNjYz
NWY0YjE0ZTFlNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVy
aWNWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+
IG5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgIGlmIChhdXRvKiBtYXRo
TmVnYXRlID0gZHluYW1pY0Rvd25jYXN0PENTU01hdGhOZWdhdGU+KHZhbHVlLmdldCgpKSkKICAg
ICAgICAgcmV0dXJuIG1hdGhOZWdhdGUtPnZhbHVlKCk7CiAgICAgaWYgKGF1dG8qIHVuaXRWYWx1
ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKSkKLSAgICAgICAg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1
ZS0+dW5pdCgpKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0VmFs
dWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5pdEVudW0oKSk7CiAgICAgcmV0dXJuIENTU01hdGhO
ZWdhdGU6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKQEAgLTY3LDExICs2NywxMCBAQCBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGludmVydChSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgICAgICByZXR1cm4gUmVmIHsgbWF0aEludmVydC0+dmFs
dWUoKSB9OwogCiAgICAgaWYgKGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NV
bml0VmFsdWU+KHZhbHVlLmdldCgpKSkgewotICAgICAgICAvLyBGSVhNRTogdW5pdHMgc2hvdWxk
IGJlIGVpdGhlciBBdG9taWNTdHJpbmdzIG9yIENTU1VuaXRUeXBlIGVudW1lcmF0aW9uIHZhbHVl
cy4KLSAgICAgICAgaWYgKHVuaXRWYWx1ZS0+dW5pdCgpID09ICJudW1iZXIiKSB7CisgICAgICAg
IGlmICh1bml0VmFsdWUtPnVuaXRFbnVtKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpIHsK
ICAgICAgICAgICAgIGlmICh1bml0VmFsdWUtPnZhbHVlKCkgPT0gMC4wIHx8IHVuaXRWYWx1ZS0+
dmFsdWUoKSA9PSAtMC4wKQogICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5n
ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBDU1NV
bml0VmFsdWU6OmNyZWF0ZSgxLjAgLyB1bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5p
dCgpKSB9OworICAgICAgICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTVW5p
dFZhbHVlOjpjcmVhdGUoMS4wIC8gdW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUtPnVuaXRF
bnVtKCkpIH07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTgzLDExICs4MiwxMSBAQCBzdGF0aWMg
UmVmUHRyPENTU051bWVyaWNWYWx1ZT4gb3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0KFQmJiBv
cGVyYXRpb24sIGNvbnN0CiB7CiAgICAgYm9vbCBhbGxWYWx1ZXNIYXZlU2FtZVVuaXQgPSB2YWx1
ZXMuc2l6ZSgpICYmIFdURjo6YWxsT2YodmFsdWVzLCBbJl0gKGNvbnN0IFJlZjxDU1NOdW1lcmlj
VmFsdWU+JiB2YWx1ZSkgewogICAgICAgICBhdXRvKiB1bml0VmFsdWUgPSBkeW5hbWljRG93bmNh
c3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiB1bml0VmFsdWUg
PyB1bml0VmFsdWUtPnVuaXQoKSA9PSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1swXS5n
ZXQoKSkudW5pdCgpIDogZmFsc2U7CisgICAgICAgIHJldHVybiB1bml0VmFsdWUgPyB1bml0VmFs
dWUtPnVuaXRFbnVtKCkgPT0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbMF0uZ2V0KCkp
LnVuaXRFbnVtKCkgOiBmYWxzZTsKICAgICB9KTsKICAgICBpZiAoYWxsVmFsdWVzSGF2ZVNhbWVV
bml0KSB7CiAgICAgICAgIGF1dG8mIGZpcnN0VW5pdFZhbHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZh
bHVlPih2YWx1ZXNbMF0uZ2V0KCkpOwotICAgICAgICBTdHJpbmcgdW5pdCA9IGZpcnN0VW5pdFZh
bHVlLnVuaXQoKTsKKyAgICAgICAgYXV0byB1bml0ID0gZmlyc3RVbml0VmFsdWUudW5pdEVudW0o
KTsKICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGZpcnN0VW5pdFZhbHVlLnZhbHVlKCk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKQogICAgICAgICAg
ICAgcmVzdWx0ID0gb3BlcmF0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1
ZXNbaV0uZ2V0KCkpLnZhbHVlKCkpOwpAQCAtMTA3LDMyICsxMDYsMzMgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBy
ZXBlbmRJdGVtc08KICAgICByZXR1cm4gdmFsdWVzOwogfQogCi1SZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBDU1NOdW1lcmljVmFsdWU6OmFkZEludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVl
Pj4mJiBudW1lcmljVmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENT
U051bWVyaWNWYWx1ZTo6YWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYm
IG51bWVyaWNWYWx1ZXMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS1hZGQKICAgICBhdXRvIHZhbHVlcyA9
IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpczxDU1NNYXRoU3VtPihXVEZNb3ZlKG51bWVyaWNWYWx1
ZXMpKTsKIAogICAgIGlmIChhdXRvIHJlc3VsdCA9IG9wZXJhdGlvbk9uVmFsdWVzT2ZTYW1lVW5p
dChzdGQ6OnBsdXM8ZG91YmxlPigpLCB2YWx1ZXMpKQotICAgICAgICByZXR1cm4gKnJlc3VsdDsK
LQotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcCA0IHRvIGNoZWNrIHRoYXQgdGhlIHR5cGVz
IGNhbiBiZSBhZGRlZC4KKyAgICAgICAgcmV0dXJuIHsgKnJlc3VsdCB9OwogCi0gICAgcmV0dXJu
IENTU01hdGhTdW06OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpOworICAgIGF1dG8gc3VtID0gQ1NT
TWF0aFN1bTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHN1bS5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIHN1bS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgcmV0dXJu
IFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgc3VtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CiB9CiAK
LVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKEZpeGVkVmVjdG9yPENT
U051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4g
Q1NTTnVtZXJpY1ZhbHVlOjphZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykK
IHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjptYXAoV1RGTW92ZSh2YWx1ZXMpLCByZWN0
aWZ5TnVtYmVyaXNoKSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1
ZTo6c3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoRml4ZWRWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjptYXAo
V1RGTW92ZSh2YWx1ZXMpLCBbXSAoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKSB7CiAgICAgICAg
IHJldHVybiBuZWdhdGUocmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKICAg
ICB9KSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlw
bHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykK
K0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6Om11bHRp
cGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWYWx1ZXMp
CiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8j
ZG9tLWNzc251bWVyaWN2YWx1ZS1tdWwKICAgICBhdXRvIHZhbHVlcyA9IHByZXBlbmRJdGVtc09m
VHlwZU9yVGhpczxDU1NNYXRoUHJvZHVjdD4oV1RGTW92ZShudW1lcmljVmFsdWVzKSk7CkBAIC0x
NDQsOCArMTQ0LDggQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0
aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAgYm9vbCBtdWx0
aXBsZVVuaXRzRm91bmQgeyBmYWxzZSB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
bm9uTnVtYmVyVW5pdEluZGV4OwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVl
cy5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgYXV0byYgdW5pdCA9IGRvd25jYXN0PENTU1Vu
aXRWYWx1ZT4odmFsdWVzW2ldLmdldCgpKS51bml0KCk7Ci0gICAgICAgICAgICBpZiAodW5pdCA9
PSAibnVtYmVyIikKKyAgICAgICAgICAgIGF1dG8gdW5pdCA9IGRvd25jYXN0PENTU1VuaXRWYWx1
ZT4odmFsdWVzW2ldLmdldCgpKS51bml0RW51bSgpOworICAgICAgICAgICAgaWYgKHVuaXQgPT0g
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBpZiAobm9uTnVtYmVyVW5pdEluZGV4KSB7CiAgICAgICAgICAgICAgICAgbXVsdGlw
bGVVbml0c0ZvdW5kID0gdHJ1ZTsKQEAgLTE1NywxNyArMTU3LDE4IEBAIFJlZjxDU1NOdW1lcmlj
VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051
bWVyaWNWYWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBm
b3IgKGNvbnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAg
ICAgICAgICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZh
bHVlKCk7Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRv
d25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51
bml0KCkgOiAibnVtYmVyIl9zOwotICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHByb2R1Y3QsIHVuaXQpOworICAgICAgICAgICAgYXV0byB1bml0ID0gbm9uTnVtYmVyVW5p
dEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRl
eF0uZ2V0KCkpLnVuaXRFbnVtKCkgOiBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjsKKyAgICAgICAg
ICAgIHJldHVybiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2R1Y3QsIHVuaXQpIH07CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXAgNSB0byBwcm9kdWNl
IGEgdW5pdCBvZiB0aGUgY29ycmVjdCB0eXBlLgotCi0gICAgcmV0dXJuIENTU01hdGhQcm9kdWN0
OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKTsKKyAgICBhdXRvIHByb2R1Y3QgPSBDU1NNYXRoUHJv
ZHVjdDo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHByb2R1Y3QuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBwcm9kdWN0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBy
ZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBwcm9kdWN0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
IH07CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsKEZpeGVk
VmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYm
IHZhbHVlcykKIHsKICAgICByZXR1cm4gbXVsdGlwbHlJbnRlcm5hbChXVEY6Om1hcChXVEZNb3Zl
KHZhbHVlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKIH0KQEAgLTIzNSwxMCArMjM2LDEwIEBAIFJl
ZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5pdCkKICAgICBV
TlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJWE1FOiBhZGQg
aW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
KyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCBDU1NVbml0VHlwZTo6Q1NTX05V
TUJFUik7CiB9CiAKLVJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVk
VmVjdG9yPFN0cmluZz4mJiB1bml0cykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gQ1NT
TnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHVuaXRzKTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5v
cmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvc3VtCkBAIC0yNDYsMTMgKzI0
Nyw2IEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9y
PFN0cmluZz4mJiB1bml0cykKICAgICByZXR1cm4gQ1NTTWF0aFN1bTo6Y3JlYXRlKEZpeGVkVmVj
dG9yPENTU051bWJlcmlzaD4geyAxLjAgfSk7CiB9CiAKLUNTU051bWVyaWNUeXBlIENTU051bWVy
aWNWYWx1ZTo6dHlwZSgpCi17Ci0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCi0gICAgLy8gRklYTUU6IGFk
ZCBpbXBsLgotICAgIHJldHVybiBDU1NOdW1lcmljVHlwZSB7IH07Ci19Ci0KIEV4Y2VwdGlvbk9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNz
c1RleHQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAppbmRleCAyNmNhODM5ZTRjZTQ5NjVjN2M3ZmRi
NWE5ZmVkMGUwOTdhZjFhNTU1Li43MTUxMDFkOTQxZmViMDc5MjYwNWQ0N2ZiMTA0ZTFjZTUyMjVk
N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUg
IkNTU051bWVyaWNUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVWYWx1ZS5oIgogI2luY2x1ZGUg
PHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkVmVjdG9yLmg+CkBAIC0zNiw3ICszNyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU051bWVyaWNWYWx1ZTsKIGNsYXNzIENTU1Vu
aXRWYWx1ZTsKIGNsYXNzIENTU01hdGhTdW07Ci1zdHJ1Y3QgQ1NTTnVtZXJpY1R5cGU7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIApAQCAtNDYsOSArNDYsOSBAQCBj
bGFzcyBDU1NOdW1lcmljVmFsdWUgOiBwdWJsaWMgQ1NTU3R5bGVWYWx1ZSB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChDU1NOdW1lcmljVmFsdWUpOwogcHVibGljOgogCi0gICAgUmVmPENT
U051bWVyaWNWYWx1ZT4gYWRkKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAgUmVm
PENTU051bWVyaWNWYWx1ZT4gc3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAg
UmVmPENTU051bWVyaWNWYWx1ZT4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Cisg
ICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZChGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBzdWIo
Rml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgRXhjZXB0
aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGRpdihGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1pbihGaXhlZFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1heChGaXhlZFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOwpAQCAtNTYsOCArNTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcXVhbHMoRml4
ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICAKICAgICBSZWY8Q1NTVW5pdFZhbHVlPiB0
byhTdHJpbmcmJik7Ci0gICAgUmVmPENTU01hdGhTdW0+IHRvU3VtKEZpeGVkVmVjdG9yPFN0cmlu
Zz4mJik7Ci0gICAgQ1NTTnVtZXJpY1R5cGUgdHlwZSgpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoU3VtPj4gdG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmKTsKKworICAgIGNvbnN0IENT
U051bWVyaWNUeXBlJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgCiAgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBwYXJzZShTdHJpbmcmJik7
CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+IHJlY3RpZnlOdW1iZXJpc2goQ1NTTnVt
YmVyaXNoJiYpOwpAQCAtNjUsMTEgKzY2LDE0IEBAIHB1YmxpYzoKICAgICBDU1NTdHlsZVZhbHVl
VHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6
OkNTU051bWVyaWNWYWx1ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVmPENTU051bWVyaWNWYWx1
ZT4gYWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKLSAgICBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiBtdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZEludGVy
bmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVm
PENTU051bWVyaWNWYWx1ZT4+IG11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpcyhWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYpOwogCi0gICAgQ1NTTnVtZXJpY1ZhbHVlKCkgPSBkZWZhdWx0OworICAgIENTU051
bWVyaWNWYWx1ZShDU1NOdW1lcmljVHlwZSB0eXBlID0geyB9KQorICAgICAgICA6IG1fdHlwZShX
VEZNb3ZlKHR5cGUpKSB7IH0KKworICAgIENTU051bWVyaWNUeXBlIG1fdHlwZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL0NTU1VuaXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0
VmFsdWUuY3BwCmluZGV4IGI3NjA1NGZkZGQ0YjAzMjFlMmNiMDUyNDVhOGRlZGMxNDFmZmMxOGEu
LmNhN2ZhY2NmM2FhMDVmYTYzNDJlMzgyNzhkNDQ2ZWZlZTA4ZjBiMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcApAQCAtMzgsNiArMzgsMzA2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU1VuaXRW
YWx1ZSk7CiAKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNUeXBlPiBudW1lcmljVHlw
ZShDU1NVbml0VHlwZSB1bml0KQoreworICAgIENTU051bWVyaWNUeXBlIHR5cGU7CisgICAgc3dp
dGNoICh1bml0KSB7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWNyZWF0ZS1hLXR5cGUKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTlVNQkVSOgorICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAgIHR5cGUucGVyY2VudCA9
IDE7CisgICAgICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3JlbGF0aXZlLWxlbmd0aHMKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRU1TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6Cisg
ICAgLy8gRklYTUU6IEFkZCAiY2FwIgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19S
RU1TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1JMSFM6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WSDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOgorCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8jYWJzb2x1dGUtbGVuZ3RocworICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19DTToKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTU06CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1E6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19QQzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BYOgorICAgICAgICB0eXBlLmxlbmd0aCA9IDE7Cisg
ICAgICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI2FuZ2xlLXZhbHVlCisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RFRzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19HUkFEOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOgorICAg
ICAgICB0eXBlLmFuZ2xlID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9Owor
CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8jdGltZS12YWx1
ZQorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19NUzoKKyAgICAgICAgdHlwZS50aW1lID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0
eXBlKSB9OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8j
ZnJlcXVlbmN5LXZhbHVlCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOgorICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19LSFo6CisgICAgICAgIHR5cGUuZnJlcXVlbmN5ID0gMTsKKyAgICAg
ICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy12YWx1ZXMtNC8jcmVzb2x1dGlvbi12YWx1ZQorICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUEk6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006CisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RQUFg6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6CisgICAg
ICAgIHR5cGUucmVzb2x1dGlvbiA9IDE7CisgICAgICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkg
fTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC0yLyN0eXBlZGVm
LWZsZXgKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6CisgICAgICAgIHR5cGUuZmxleCA9
IDE7CisgICAgICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICAvLyBGSVhNRTogQXJlIHRoZXJlIHR5cGVzIHRoYXQgYXJlbid0IGluIHRoZSBob3VkaW5p
IHNwZWMgdGhhdCB3ZSB3YW50IHRvIHN1cHBvcnQgaGVyZSwgcGFyc2VVbml0LCBhbmQgQ1NTVW5p
dFZhbHVlOjp1bml0PworICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKK30KKworc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NTVW5pdFR5cGU+IHBhcnNl
VW5pdChjb25zdCBTdHJpbmcmIHVuaXQpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWNyZWF0ZS1hLXR5cGUKKyAg
ICBpZiAodW5pdCA9PSAibnVtYmVyIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSOworICAgIGlmICh1bml0ID09ICJwZXJjZW50IikKKyAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtdmFsdWVzLTQvI3JlbGF0aXZlLWxlbmd0aHMKKyAgICBpZiAodW5pdCA9PSAiZW0iKQor
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19FTVM7CisgICAgaWYgKHVuaXQgPT0gImV4
IikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRVhTOworICAgIC8vIEZJWE1FOiBB
ZGQgImNhcCIKKyAgICBpZiAodW5pdCA9PSAiY2giKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19DSFM7CisgICAgaWYgKHVuaXQgPT0gImljIikKKyAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfSUM7CisgICAgaWYgKHVuaXQgPT0gInJlbSIpCisgICAgICAgIHJldHVybiBD
U1NVbml0VHlwZTo6Q1NTX1JFTVM7CisgICAgaWYgKHVuaXQgPT0gImxoIikKKyAgICAgICAgcmV0
dXJuIENTU1VuaXRUeXBlOjpDU1NfTEhTOworICAgIGlmICh1bml0ID09ICJybGgiKQorICAgICAg
ICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19STEhTOworICAgIGlmICh1bml0ID09ICJ2dyIpCisg
ICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1ZXOworICAgIGlmICh1bml0ID09ICJ2aCIp
CisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1ZIOworICAgIGlmICh1bml0ID09ICJ2
aSIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1ZJOworICAgIGlmICh1bml0ID09
ICJ2YiIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1ZCOworICAgIGlmICh1bml0
ID09ICJ2bWluIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVk1JTjsKKyAgICBp
ZiAodW5pdCA9PSAidm1heCIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg7
CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyNhYnNvbHV0
ZS1sZW5ndGhzCisgICAgaWYgKHVuaXQgPT0gImNtIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRU
eXBlOjpDU1NfQ007CisgICAgaWYgKHVuaXQgPT0gIm1tIikKKyAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfTU07CisgICAgaWYgKHVuaXQgPT0gIlEiKQorICAgICAgICByZXR1cm4gQ1NT
VW5pdFR5cGU6OkNTU19ROworICAgIGlmICh1bml0ID09ICJpbiIpCisgICAgICAgIHJldHVybiBD
U1NVbml0VHlwZTo6Q1NTX0lOOworICAgIGlmICh1bml0ID09ICJwYyIpCisgICAgICAgIHJldHVy
biBDU1NVbml0VHlwZTo6Q1NTX1BDOworICAgIGlmICh1bml0ID09ICJwdCIpCisgICAgICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX1BUOworICAgIGlmICh1bml0ID09ICJweCIpCisgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1BYOworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy12YWx1ZXMtNC8jYW5nbGUtdmFsdWUKKyAgICBpZiAodW5pdCA9PSAiZGVnIikK
KyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfREVHOworICAgIGlmICh1bml0ID09ICJy
YWQiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19SQUQ7CisgICAgaWYgKHVuaXQg
PT0gImdyYWQiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19HUkFEOworICAgIGlm
ICh1bml0ID09ICJ0dXJuIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVFVSTjsK
KworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3RpbWUtdmFs
dWUKKyAgICBpZiAodW5pdCA9PSAicyIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X1M7CisgICAgaWYgKHVuaXQgPT0gIm1zIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpD
U1NfTVM7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyNm
cmVxdWVuY3ktdmFsdWUKKyAgICBpZiAodW5pdCA9PSAiSHoiKQorICAgICAgICByZXR1cm4gQ1NT
VW5pdFR5cGU6OkNTU19IWjsKKyAgICBpZiAodW5pdCA9PSAia0h6IikKKyAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfS0haOworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy12YWx1ZXMtNC8jcmVzb2x1dGlvbi12YWx1ZQorICAgIGlmICh1bml0ID09ICJkcGkiKQor
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUEk7CisgICAgaWYgKHVuaXQgPT0gImRw
Y20iKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUENNOworICAgIGlmICh1bml0
ID09ICJkcHB4IikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRFBQWDsKKyAgICBp
ZiAodW5pdCA9PSAieCIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1g7CisKKyAg
ICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQtMi8jdHlwZWRlZi1mbGV4Cisg
ICAgaWYgKHVuaXQgPT0gImZyIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfRlI7
CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitjb25zdCBjaGFyKiBDU1NVbml0VmFs
dWU6OnVuaXQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV91bml0KSB7CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgcmV0dXJuICJudW1iZXIiOworICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgorICAgICAgICByZXR1cm4gInBlcmNlbnQiOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdW5pdFNlcmlh
bGl6YXRpb24oKTsKK30KKworY29uc3QgY2hhciogQ1NTVW5pdFZhbHVlOjp1bml0U2VyaWFsaXph
dGlvbigpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nz
cy10eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWNyZWF0ZS1hLXR5cGUKKyAgICBzd2l0Y2ggKG1f
dW5pdCkgeworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgIHJldHVy
biAiIjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgcmV0
dXJuICIlIjsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQv
I3JlbGF0aXZlLWxlbmd0aHMKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOgorICAgICAg
ICByZXR1cm4gImVtIjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRVhTOgorICAgICAgICBy
ZXR1cm4gImV4IjsKKyAgICAvLyBGSVhNRTogQWRkICJjYXAiCisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0NIUzoKKyAgICAgICAgcmV0dXJuICJjaCI7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0lDOgorICAgICAgICByZXR1cm4gImljIjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UkVNUzoKKyAgICAgICAgcmV0dXJuICJyZW0iOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
SFM6CisgICAgICAgIHJldHVybiAibGgiOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhT
OgorICAgICAgICByZXR1cm4gInJsaCI7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOgor
ICAgICAgICByZXR1cm4gInZ3IjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6CisgICAg
ICAgIHJldHVybiAidmgiOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSToKKyAgICAgICAg
cmV0dXJuICJ2aSI7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOgorICAgICAgICByZXR1
cm4gInZiIjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjoKKyAgICAgICAgcmV0dXJu
ICJ2bWluIjsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDoKKyAgICAgICAgcmV0dXJu
ICJ2bWF4IjsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQv
I2Fic29sdXRlLWxlbmd0aHMKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ006CisgICAgICAg
IHJldHVybiAiY20iOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTToKKyAgICAgICAgcmV0
dXJuICJtbSI7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6CisgICAgICAgIHJldHVybiAi
cSI7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOgorICAgICAgICByZXR1cm4gImluIjsK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEM6CisgICAgICAgIHJldHVybiAicGMiOworICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDoKKyAgICAgICAgcmV0dXJuICJwdCI7CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BYOgorICAgICAgICByZXR1cm4gInB4IjsKKworICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI2FuZ2xlLXZhbHVlCisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzoKKyAgICAgICAgcmV0dXJuICJkZWciOworICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19SQUQ6CisgICAgICAgIHJldHVybiAicmFkIjsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfR1JBRDoKKyAgICAgICAgcmV0dXJuICJncmFkIjsKKyAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVFVSTjoKKyAgICAgICAgcmV0dXJuICJ0dXJuIjsKKworICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3RpbWUtdmFsdWUKKyAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUzoKKyAgICAgICAgcmV0dXJuICJzIjsKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTVM6CisgICAgICAgIHJldHVybiAibXMiOworICAgICAgICAKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyNmcmVxdWVuY3ktdmFsdWUKKyAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6CisgICAgICAgIHJldHVybiAiaHoiOworICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6CisgICAgICAgIHJldHVybiAia2h6IjsKKworICAgIC8v
IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3Jlc29sdXRpb24tdmFsdWUK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOgorICAgICAgICByZXR1cm4gImRwaSI7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006CisgICAgICAgIHJldHVybiAiZHBjbSI7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6CisgICAgICAgIHJldHVybiAiZHBweCI7Cisg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6CisgICAgICAgIHJldHVybiAieCI7CisKKyAgICAv
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQtMi8jdHlwZWRlZi1mbGV4CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOgorICAgICAgICByZXR1cm4gImZyIjsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gIiI7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NVbml0VmFsdWU+PiBDU1NV
bml0VmFsdWU6OmNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCkKK3sKKyAg
ICBhdXRvIHBhcnNlZFVuaXQgPSBwYXJzZVVuaXQodW5pdCk7CisgICAgaWYgKCFwYXJzZWRVbml0
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgYXV0byB0eXBl
ID0gbnVtZXJpY1R5cGUoKnBhcnNlZFVuaXQpOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIGF1dG8gdW5pdFZhbHVlID0gYWRvcHRS
ZWYoKm5ldyBDU1NVbml0VmFsdWUodmFsdWUsICpwYXJzZWRVbml0KSk7CisgICAgdW5pdFZhbHVl
LT5tX3R5cGUgPSBXVEZNb3ZlKCp0eXBlKTsKKyAgICByZXR1cm4gdW5pdFZhbHVlOworfQorCitD
U1NVbml0VmFsdWU6OkNTU1VuaXRWYWx1ZShkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHVuaXQp
CisgICAgOiBDU1NOdW1lcmljVmFsdWUobnVtZXJpY1R5cGUodW5pdCkudmFsdWVfb3IoQ1NTTnVt
ZXJpY1R5cGUoKSkpCisgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgICwgbV91bml0KHVuaXQpCit7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCmluZGV4IDJjMmU5ZTM0ZGZlNmUzNTYzNzQyMzc5NTYz
OGRjNmJlNzE5YzVjZmYuLmI1NzRkMmIwMDE1MTQ3ZjI3OTNmY2M2MDdhOWMwZjYwNDNmMjcxYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCkBAIC0zNCwzMyAr
MzQsMjkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIENTU1VuaXRUeXBl
IDogdWludDhfdDsKKwogY2xhc3MgQ1NTVW5pdFZhbHVlIGZpbmFsIDogcHVibGljIENTU051bWVy
aWNWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NVbml0VmFsdWUpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBj
b25zdCBTdHJpbmcmIHVuaXQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NVbml0VmFsdWUodmFsdWUsIHVuaXQpKTsKLSAgICB9CisgICAgc3RhdGljIEV4Y2VwdGlvbk9y
PFJlZjxDU1NVbml0VmFsdWU+PiBjcmVhdGUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVu
aXQpOworICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBD
U1NVbml0VHlwZSB1bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1
ZSwgdW5pdCkpOyB9CiAKLSAgICAvLyBGSVhNRTogbm90IGNvcnJlY3QuCi0gICAgU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbWFrZVN0cmluZygoaW50KSBtX3ZhbHVlLCBt
X3VuaXQpOyB9CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbWFr
ZVN0cmluZyhGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0ZShtX3ZhbHVlKSwgdW5pdFNlcmlhbGl6
YXRpb24oKSk7IH0KIAogICAgIGRvdWJsZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KICAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFsdWU7IH0K
LSAgICBjb25zdCBTdHJpbmcmIHVuaXQoKSBjb25zdCB7IHJldHVybiBtX3VuaXQ7IH0KLSAgICB2
b2lkIHNldFVuaXQoY29uc3QgU3RyaW5nJiB1bml0KSB7IG1fdW5pdCA9IHVuaXQ7IH0KKyAgICBj
b25zdCBjaGFyKiB1bml0KCkgY29uc3Q7CisgICAgY29uc3QgY2hhciogdW5pdFNlcmlhbGl6YXRp
b24oKSBjb25zdDsKKyAgICBDU1NVbml0VHlwZSB1bml0RW51bSgpIGNvbnN0IHsgcmV0dXJuIG1f
dW5pdDsgfQogCiBwcml2YXRlOgotICAgIENTU1VuaXRWYWx1ZShkb3VibGUgdmFsdWUsIGNvbnN0
IFN0cmluZyYgdW5pdCkKLSAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQotICAgICAgICAsIG1fdW5p
dCh1bml0KQotICAgIHsKLSAgICB9CisgICAgQ1NTVW5pdFZhbHVlKGRvdWJsZSwgQ1NTVW5pdFR5
cGUpOwogCiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NVbml0VmFsdWU7IH0KIAogICAgIGRvdWJsZSBtX3Zh
bHVlOwotICAgIFN0cmluZyBtX3VuaXQ7CisgICAgQ1NTVW5pdFR5cGUgbV91bml0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKaW5kZXggNWQ5MTJkODI2MjhmOGJhMzQyMmJj
NDk5ODJhYzRlMWIxNzM0ZmRjNC4uNTI0YjdmNzAxYmM4ZTdhZTlkMzg2N2NhYWVhMjA3ZDgwNDFk
MDc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoSW52ZXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhJbnZlcnQuY3BwCkBAIC00MSw4ICs0MSwzNCBAQCBSZWY8Q1NTTWF0aEludmVydD4gQ1NT
TWF0aEludmVydDo6Y3JlYXRlKENTU051bWJlcmlzaCYmIG51bWJlcmlzaCkKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NNYXRoSW52ZXJ0KFdURk1vdmUobnVtYmVyaXNoKSkpOwogfQogCitz
dGF0aWMgQ1NTTnVtZXJpY1R5cGUgbmVnYXRlZFR5cGUoY29uc3QgQ1NTTnVtYmVyaXNoJiBudW1i
ZXJpc2gpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBl
ZC1vbS8jdHlwZS1vZi1hLWNzc21hdGh2YWx1ZQorICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG51
bWJlcmlzaCwKKyAgICAgICAgW10gKGRvdWJsZSkgeyByZXR1cm4gQ1NTTnVtZXJpY1R5cGUoKTsg
fSwKKyAgICAgICAgW10gKGNvbnN0IFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSkgewor
ICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTTnVtZXJp
Y1R5cGUoKTsKKyAgICAgICAgICAgIENTU051bWVyaWNUeXBlIHR5cGUgPSB2YWx1ZS0+dHlwZSgp
OworICAgICAgICAgICAgYXV0byBuZWdhdGUgPSBbXSAoYXV0byYgb3B0aW9uYWwpIHsKKyAgICAg
ICAgICAgICAgICBpZiAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsID0g
Km9wdGlvbmFsICogLTE7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbmVnYXRlKHR5cGUu
bGVuZ3RoKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmFuZ2xlKTsKKyAgICAgICAgICAgIG5l
Z2F0ZSh0eXBlLnRpbWUpOworICAgICAgICAgICAgbmVnYXRlKHR5cGUuZnJlcXVlbmN5KTsKKyAg
ICAgICAgICAgIG5lZ2F0ZSh0eXBlLnJlc29sdXRpb24pOworICAgICAgICAgICAgbmVnYXRlKHR5
cGUuZmxleCk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5wZXJjZW50KTsKKyAgICAgICAgICAg
IHJldHVybiB0eXBlOworICAgICAgICB9CisgICAgKTsKK30KKwogQ1NTTWF0aEludmVydDo6Q1NT
TWF0aEludmVydChDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpCi0gICAgOiBtX3ZhbHVlKENTU051
bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQorICAgIDog
Q1NTTWF0aFZhbHVlKG5lZ2F0ZWRUeXBlKG51bWJlcmlzaCkpCisgICAgLCBtX3ZhbHVlKENTU051
bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhO
ZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVn
YXRlLmNwcAppbmRleCA0ZGE0M2NkOTA3MjZkNDgxNmFkNmZjNjE1ZjIxMmZmZmJiZjUwNmY0Li4w
YWI1ZjY0MTBkMzQxMzEzNWRiNGZlMjE3YTNkMGI3NjdjNjliNGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAKQEAgLTM2
LDEzICszNiwyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChDU1NNYXRoTmVnYXRlKTsKIAorc3RhdGljIENTU051bWVyaWNUeXBlIGNvcHlUeXBl
KGNvbnN0IENTU051bWJlcmlzaCYgbnVtYmVyaXNoKQoreworICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG51bWJlcmlzaCwKKyAgICAgICAgW10gKGRvdWJsZSkgeyByZXR1cm4gQ1NTTnVtZXJpY1R5
cGUoKTsgfSwKKyAgICAgICAgW10gKGNvbnN0IFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1
ZSkgeworICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
TnVtZXJpY1R5cGUoKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+dHlwZSgpOworICAgICAg
ICB9CisgICAgKTsKK30KKwogQ1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZShDU1NOdW1iZXJp
c2gmJiBudW1iZXJpc2gpCi0gICAgOiBtX3ZhbHVlKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51
bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQorICAgIDogQ1NTTWF0aFZhbHVlKGNvcHlUeXBl
KG51bWJlcmlzaCkpCisgICAgLCBtX3ZhbHVlKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJl
cmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQogewogfQogCiBDU1NNYXRoTmVnYXRlOjpDU1NNYXRo
TmVnYXRlKFJlZjxDU1NOdW1lcmljVmFsdWU+JiYgdmFsdWUpCi0gICAgOiBtX3ZhbHVlKFdURk1v
dmUodmFsdWUpKQorICAgIDogQ1NTTWF0aFZhbHVlKHZhbHVlLT50eXBlKCkpCisgICAgLCBtX3Zh
bHVlKFdURk1vdmUodmFsdWUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCmluZGV4IGQ3MDBlODlmODU1ZTZk
ODQ1ZmZjMjJjOTI2YWIzNmJlNDgzMTM0MGUuLjU4YjYzMDA1NjJkZjA0YmEwNDVhYjBlYjdhZjA0
OTcyMzcyMzM1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFByb2R1Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCkBAIC0yNiwyOSArMjYsNjYgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDU1NNYXRoUHJvZHVjdC5oIgogCi0jaW5jbHVkZSAiQ1NTTnVt
ZXJpY0FycmF5LmgiCi0KICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCisjaW5jbHVkZSAiQ1NT
TnVtZXJpY0FycmF5LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChDU1NNYXRoUHJvZHVjdCk7CiAKLUNTU01hdGhQcm9kdWN0OjpDU1NN
YXRoUHJvZHVjdChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCi0gICAg
OiBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmljVHlwZT4gbXVsdGlwbHlUeXBlcyhjb25z
dCBDU1NOdW1lcmljVHlwZSYgYSwgY29uc3QgQ1NTTnVtZXJpY1R5cGUmIGIpCit7CisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY3NzbnVtZXJpY3Zh
bHVlLW11bHRpcGx5LXR3by10eXBlcworICAgIGlmIChhLnBlcmNlbnRIaW50ICYmIGIucGVyY2Vu
dEhpbnQgJiYgKmEucGVyY2VudEhpbnQgIT0gKmIucGVyY2VudEhpbnQpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGFkZCA9IFtdIChhdXRvIGxlZnQsIGF1dG8gcmln
aHQpIC0+IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHsKKyAgICAgICAgaWYgKCFsZWZ0KQorICAg
ICAgICAgICAgcmV0dXJuIHJpZ2h0OworICAgICAgICBpZiAoIXJpZ2h0KQorICAgICAgICAgICAg
cmV0dXJuIGxlZnQ7CisgICAgICAgIHJldHVybiAqbGVmdCArICpyaWdodDsKKyAgICB9OworICAg
IAorICAgIHJldHVybiB7IHsKKyAgICAgICAgYWRkKGEubGVuZ3RoLCBiLmxlbmd0aCksCisgICAg
ICAgIGFkZChhLmFuZ2xlLCBiLmFuZ2xlKSwKKyAgICAgICAgYWRkKGEudGltZSwgYi50aW1lKSwK
KyAgICAgICAgYWRkKGEuZnJlcXVlbmN5LCBiLmZyZXF1ZW5jeSksCisgICAgICAgIGFkZChhLnJl
c29sdXRpb24sIGIucmVzb2x1dGlvbiksCisgICAgICAgIGFkZChhLmZsZXgsIGIuZmxleCksCisg
ICAgICAgIGFkZChhLnBlcmNlbnQsIGIucGVyY2VudCksCisgICAgICAgIGEucGVyY2VudEhpbnQg
PyBhLnBlcmNlbnRIaW50IDogYi5wZXJjZW50SGludAorICAgIH0gfTsKK30KKworRXhjZXB0aW9u
T3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0ZShGaXhlZFZlY3Rv
cjxDU1NOdW1iZXJpc2g+IG51bWJlcmlzaGVzKQogeworICAgIHJldHVybiBjcmVhdGUoV1RGOjpt
YXAoV1RGTW92ZShudW1iZXJpc2hlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKIH0KIAotQ1NTTWF0
aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2
YWx1ZXMpCi0gICAgOiBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZh
bHVlcykpKQorRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gQ1NTTWF0aFByb2R1Y3Q6
OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHZhbHVlcykKIHsKKyAgICBpZiAo
dmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
IH07CisgICAgCisgICAgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmljVHlwZT4gdHlwZSA9IHZhbHVl
c1swXS0+dHlwZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsg
aSsrKSB7CisgICAgICAgIHR5cGUgPSBtdWx0aXBseVR5cGVzKCp0eXBlLCB2YWx1ZXNbaV0tPnR5
cGUoKSk7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IgfTsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRo
UHJvZHVjdChXVEZNb3ZlKHZhbHVlcyksIFdURk1vdmUoKnR5cGUpKSk7CiB9CiAKLWNvbnN0IENT
U051bWVyaWNBcnJheSYgQ1NTTWF0aFByb2R1Y3Q6OnZhbHVlcygpIGNvbnN0CitDU1NNYXRoUHJv
ZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMs
IENTU051bWVyaWNUeXBlIHR5cGUpCisgICAgOiBDU1NNYXRoVmFsdWUoV1RGTW92ZSh0eXBlKSkK
KyAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkp
CiB7Ci0gICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhQcm9kdWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQ
cm9kdWN0LmgKaW5kZXggNjBhZjBiNzc1M2M5NjNlNWZhODE4ODlhYzQ3OTJhYjViOTVlYzVmNC4u
OGVkNjA1ZjM1M2JhMzNlODU3ZmJhZDMwZDc5ZTlhMzcxNTRmNGUzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaApAQCAtMzcs
MTUgKzM3LDE1IEBAIGNsYXNzIENTU051bWVyaWNBcnJheTsKIGNsYXNzIENTU01hdGhQcm9kdWN0
IGZpbmFsIDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChDU1NNYXRoUHJvZHVjdCk7CiBwdWJsaWM6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
cz4gc3RhdGljIFJlZjxDU1NNYXRoUHJvZHVjdD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhQcm9kdWN0KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLikpOyB9Ci0gICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdDsKKyAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gY3JlYXRlKEZpeGVkVmVj
dG9yPENTU051bWJlcmlzaD4pOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFBy
b2R1Y3Q+PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+Pik7CisgICAgY29uc3Qg
Q1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5nZXQoKTsg
fQogCiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBnZXRPcGVyYXRvcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6UHJvZHVjdDsgfQogICAgIENTU1N0eWxlVmFs
dWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6
Q1NTTWF0aFByb2R1Y3Q7IH0KIAotICAgIENTU01hdGhQcm9kdWN0KEZpeGVkVmVjdG9yPENTU051
bWJlcmlzaD4mJik7Ci0gICAgQ1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmKTsKKyAgICBDU1NNYXRoUHJvZHVjdChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
LCBDU1NOdW1lcmljVHlwZSk7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhTdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3Vt
LmNwcAppbmRleCBhNmQ5ZWQ5MWYyODllMmFhNDg3YTQ5OGM5N2I4ZjgwMmE3ZWJhYjM4Li40OWEx
MThjNWRhMmY3MDNmOTQwYzU0ODg2ZWZjZjI2NjAxNWNmOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKQEAgLTI2LDIzICsyNiw2
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU01hdGhTdW0uaCIKIAotI2lu
Y2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgotCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAor
I2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTWF0aFN1bSk7CiAKLUNTU01hdGhT
dW06OkNTU01hdGhTdW0oRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQot
ICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1iZXJpc2hl
cykpKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IGFkZFR5cGVzKENTU051
bWVyaWNUeXBlIGEsIENTU051bWVyaWNUeXBlIGIpCiB7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWFkZC10d28tdHlw
ZXMKKyAgICBpZiAoYS5wZXJjZW50SGludCAmJiBiLnBlcmNlbnRIaW50ICYmICphLnBlcmNlbnRI
aW50ICE9ICpiLnBlcmNlbnRIaW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgaWYgKGEucGVyY2VudEhpbnQpCisgICAgICAgIGIuYXBwbHlQZXJjZW50SGludCgqYS5wZXJj
ZW50SGludCk7CisgICAgaWYgKGIucGVyY2VudEhpbnQpCisgICAgICAgIGEuYXBwbHlQZXJjZW50
SGludCgqYi5wZXJjZW50SGludCk7CisKKyAgICBpZiAoYSA9PSBiKQorICAgICAgICByZXR1cm4g
eyBXVEZNb3ZlKGEpIH07CisKKyAgICBmb3IgKGF1dG8gdHlwZSA6IGVhY2hCYXNlVHlwZSgpKSB7
CisgICAgICAgIGlmICh0eXBlID09IENTU051bWVyaWNCYXNlVHlwZTo6UGVyY2VudCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWEudmFsdWVGb3JUeXBlKHR5cGUpICYmICFi
LnZhbHVlRm9yVHlwZSh0eXBlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhLmFw
cGx5UGVyY2VudEhpbnQodHlwZSk7CisgICAgICAgIGIuYXBwbHlQZXJjZW50SGludCh0eXBlKTsK
KyAgICAgICAgaWYgKGEudmFsdWVGb3JUeXBlKHR5cGUpICE9IGIudmFsdWVGb3JUeXBlKHR5cGUp
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICByZXR1cm4g
eyBXVEZNb3ZlKGEpIH07Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gQ1NTTWF0
aFN1bTo6Y3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4gbnVtYmVyaXNoZXMpCit7Cisg
ICAgcmV0dXJuIGNyZWF0ZShXVEY6Om1hcChXVEZNb3ZlKG51bWJlcmlzaGVzKSwgcmVjdGlmeU51
bWJlcmlzaCkpOworfQorCitFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IENTU01hdGhTdW06
OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHZhbHVlcykKK3sKKyAgICBpZiAo
dmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
IH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNUeXBlPiB0eXBlID0gdmFsdWVzWzBd
LT50eXBlKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCB2YWx1ZXMuc2l6ZSgpOyBpKysp
IHsKKyAgICAgICAgdHlwZSA9IGFkZFR5cGVzKCp0eXBlLCB2YWx1ZXNbaV0tPnR5cGUoKSk7Cisg
ICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IgfTsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoU3VtKFdURk1v
dmUodmFsdWVzKSwgV1RGTW92ZSgqdHlwZSkpKTsKIH0KIAotQ1NTTWF0aFN1bTo6Q1NTTWF0aFN1
bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQotICAgIDogbV92YWx1ZXMo
Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKK0NTU01hdGhTdW06OkNT
U01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMsIENTU051bWVyaWNU
eXBlIHR5cGUpCisgICAgOiBDU1NNYXRoVmFsdWUoV1RGTW92ZSh0eXBlKSkKKyAgICAsIG1fdmFs
dWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKaW5kZXgg
ZjkyYTYxNDE3YWJlMWM0ZDllODFmOTQ4YmJmYTE5OTdiNjJlNzAyMS4uZDUyMzdiYmZlNTRlNGRm
MGI0NzY0MjA1ZmVhNjRkNWZjYTZmY2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKQEAgLTM4LDE1ICszOCwxNSBAQCBjbGFzcyBDU1NO
dW1lcmljQXJyYXk7CiBjbGFzcyBDU1NNYXRoU3VtIGZpbmFsIDogcHVibGljIENTU01hdGhWYWx1
ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NNYXRoU3VtKTsKIHB1YmxpYzoKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMgUmVmPENTU01hdGhTdW0+IGNyZWF0
ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoU3VtKHN0ZDo6
Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOyB9CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoU3VtPj4gY3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4pOworICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IGNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+KTsKICAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWVzLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9y
IGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpTdW07
IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhTdW07IH0KIAotICAgIENTU01hdGhTdW0oRml4
ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBDU1NNYXRoU3VtKFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4mJik7CisgICAgQ1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+LCBDU1NOdW1lcmljVHlwZSk7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1
ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoVmFsdWUuaAppbmRleCBkMjlhZWEzMjFjZmZkYWEyYmE0YWUxYWY1NzYzMjk3ODdjYmIzODli
Li41MzFhYjNlNzM3M2FjMmIyM2VkMjA0NjI0Y2Q4ZmQ1NGI2YTA0ZDI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVlLmgKQEAgLTM1LDYg
KzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NNYXRoVmFsdWUgOiBwdWJs
aWMgQ1NTTnVtZXJpY1ZhbHVlIHsKIHB1YmxpYzoKKyAgICBDU1NNYXRoVmFsdWUoQ1NTTnVtZXJp
Y1R5cGUgdHlwZSA9IHsgfSkKKyAgICAgICAgOiBDU1NOdW1lcmljVmFsdWUoV1RGTW92ZSh0eXBl
KSkgeyB9CiAgICAgdmlydHVhbCBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCA9
IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU051bWVyaWNBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU051bWVyaWNBcnJheS5jcHAKaW5kZXggOWRlNTE5MDA5NmI5YjQxN2Q2OGYwZmI1ZDU5YmNh
MjJkZDBhZDY0NS4uNDgxM2NlMDJhOWIyYTM2YjI5MzMxYjhmZDk4Y2Q2ZmViNmM2Y2E4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJp
Y0FycmF5LmNwcApAQCAtNDAsNiArNDAsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
Q1NTTnVtZXJpY0FycmF5KTsKIAogUmVmPENTU051bWVyaWNBcnJheT4gQ1NTTnVtZXJpY0FycmF5
OjpjcmVhdGUoY29uc3QgRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYgbnVtYmVyaXNoZXMpCiB7
CisgICAgLy8gRklYTUU6IFNpbXBsaWZ5IHRoaXMuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTTnVtZXJpY0FycmF5KFdURjo6bWFwKG51bWJlcmlzaGVzLCBbXShhdXRvJiBudW1iZXJpc2gp
IC0+IFJlZjxDU1NOdW1lcmljVmFsdWU+IHsKICAgICAgICAgcmV0dXJuIENTU051bWVyaWNWYWx1
ZTo6cmVjdGlmeU51bWJlcmlzaChjb25zdF9jYXN0PENTU051bWJlcmlzaCYmPihudW1iZXJpc2gp
KTsKICAgICB9KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQmFzZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmgKaW5kZXggZDA1NTc3MmU0YTlhZjE1Y2MyNjY2Y2Fl
YzBiMjRmMDhmYjY5M2UzOS4uNzA1ZmViMDFmNjA0NjI0YmY0NTJkMjc2NWVjYzRjOTVhOTM1NGNh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1l
cmljQmFzZVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U051bWVyaWNCYXNlVHlwZS5oCkBAIC0yNyw5ICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKENTU19U
WVBFRF9PTSkKIAorI2luY2x1ZGUgPGFycmF5PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVu
dW0gY2xhc3MgQ1NTTnVtZXJpY0Jhc2VUeXBlOiB1aW50OF90IHsKK2VudW0gY2xhc3MgQ1NTTnVt
ZXJpY0Jhc2VUeXBlIDogdWludDhfdCB7CiAgICAgTGVuZ3RoLAogICAgIEFuZ2xlLAogICAgIFRp
bWUsCkBAIC0zOSw2ICs0MSw0MCBAQCBlbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlwZTogdWlu
dDhfdCB7CiAgICAgUGVyY2VudCwKIH07CiAKK2NvbnN0ZXhwciBzdGQ6OmFycmF5PENTU051bWVy
aWNCYXNlVHlwZSwgNz4gZWFjaEJhc2VUeXBlKCkKK3sKKyAgICByZXR1cm4geworICAgICAgICBD
U1NOdW1lcmljQmFzZVR5cGU6Okxlbmd0aCwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpB
bmdsZSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpUaW1lLAorICAgICAgICBDU1NOdW1l
cmljQmFzZVR5cGU6OkZyZXF1ZW5jeSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpSZXNv
bHV0aW9uLAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OkZsZXgsCisgICAgICAgIENTU051
bWVyaWNCYXNlVHlwZTo6UGVyY2VudAorICAgIH07Cit9CisKK2NvbnN0ZXhwciBjb25zdCBjaGFy
KiBkZWJ1Z1N0cmluZyhDU1NOdW1lcmljQmFzZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6TGVuZ3RoOgorICAgICAgICByZXR1
cm4gImxlbmd0aCI7CisgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkFuZ2xlOgorICAgICAg
ICByZXR1cm4gImFuZ2xlIjsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6VGltZToKKyAg
ICAgICAgcmV0dXJuICJ0aW1lIjsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6RnJlcXVl
bmN5OgorICAgICAgICByZXR1cm4gImZyZXF1ZW5jeSI7CisgICAgY2FzZSBDU1NOdW1lcmljQmFz
ZVR5cGU6OlJlc29sdXRpb246CisgICAgICAgIHJldHVybiAicmVzb2x1dGlvbiI7CisgICAgY2Fz
ZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZsZXg6CisgICAgICAgIHJldHVybiAiZmxleCI7CisgICAg
Y2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OlBlcmNlbnQ6CisgICAgICAgIHJldHVybiAicGVyY2Vu
dCI7CisgICAgfQorICAgIHJldHVybiAiaW52YWxpZCI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU051bWVyaWNUeXBlLmgKaW5kZXggY2Y3ZWE2ZGFhM2Y0ZDU0ZjExNDU5YjIyNGQwMjc4
MzA4OTNjOTE3Yi4uNGVjZTk4MGE2MWQ1OGJmYjUzMTU2OWRhNzZjMDQ1NGJmNDBhMWJhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5
cGUuaApAQCAtMjksMTggKzI5LDc4IEBACiAKICNpbmNsdWRlICJDU1NOdW1lcmljQmFzZVR5cGUu
aCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBodHRwczovL2RyYWZ0
cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXR5cGUK
IHN0cnVjdCBDU1NOdW1lcmljVHlwZSB7Ci0gICAgbG9uZyBsZW5ndGggeyAwIH07Ci0gICAgbG9u
ZyBhbmdsZSB7IDAgfTsKLSAgICBsb25nIHRpbWUgeyAwIH07Ci0gICAgbG9uZyBmcmVxdWVuY3kg
eyAwIH07Ci0gICAgbG9uZyByZXNvbHV0aW9uIHsgMCB9OwotICAgIGxvbmcgZmxleCB7IDAgfTsK
LSAgICBsb25nIHBlcmNlbnQgeyAwIH07CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBsZW5ndGg7
CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBhbmdsZTsKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+
IHRpbWU7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBmcmVxdWVuY3k7CisgICAgc3RkOjpvcHRp
b25hbDxsb25nPiByZXNvbHV0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gZmxleDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPGxvbmc+IHBlcmNlbnQ7CiAgICAgc3RkOjpvcHRpb25hbDxDU1NOdW1l
cmljQmFzZVR5cGU+IHBlcmNlbnRIaW50OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENT
U051bWVyaWNUeXBlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5ndGgg
PT0gb3RoZXIubGVuZ3RoCisgICAgICAgICAgICAmJiBhbmdsZSA9PSBvdGhlci5hbmdsZQorICAg
ICAgICAgICAgJiYgdGltZSA9PSBvdGhlci50aW1lCisgICAgICAgICAgICAmJiBmcmVxdWVuY3kg
PT0gb3RoZXIuZnJlcXVlbmN5CisgICAgICAgICAgICAmJiByZXNvbHV0aW9uID09IG90aGVyLnJl
c29sdXRpb24KKyAgICAgICAgICAgICYmIGZsZXggPT0gb3RoZXIuZmxleAorICAgICAgICAgICAg
JiYgcGVyY2VudCA9PSBvdGhlci5wZXJjZW50CisgICAgICAgICAgICAmJiBwZXJjZW50SGludCA9
PSBvdGhlci5wZXJjZW50SGludDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+JiB2
YWx1ZUZvclR5cGUoQ1NTTnVtZXJpY0Jhc2VUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6Okxlbmd0aDoKKyAg
ICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBl
OjpBbmdsZToKKyAgICAgICAgICAgIHJldHVybiBhbmdsZTsKKyAgICAgICAgY2FzZSBDU1NOdW1l
cmljQmFzZVR5cGU6OlRpbWU6CisgICAgICAgICAgICByZXR1cm4gdGltZTsKKyAgICAgICAgY2Fz
ZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeToKKyAgICAgICAgICAgIHJldHVybiBmcmVx
dWVuY3k7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpSZXNvbHV0aW9uOgorICAg
ICAgICAgICAgcmV0dXJuIHJlc29sdXRpb247CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VU
eXBlOjpGbGV4OgorICAgICAgICAgICAgcmV0dXJuIGZsZXg7CisgICAgICAgIGNhc2UgQ1NTTnVt
ZXJpY0Jhc2VUeXBlOjpQZXJjZW50OgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnQ7CisgICAg
ICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICB2b2lkIGFwcGx5UGVyY2VudEhpbnQoQ1NTTnVtZXJpY0Jhc2VUeXBlIGhpbnQpCisgICAgewor
ICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNh
cHBseS10aGUtcGVyY2VudC1oaW50CisgICAgICAgIGF1dG8mIG9wdGlvbmFsID0gdmFsdWVGb3JU
eXBlKGhpbnQpOworICAgICAgICBpZiAoIW9wdGlvbmFsKQorICAgICAgICAgICAgb3B0aW9uYWwg
PSAwOworICAgICAgICBpZiAocGVyY2VudCkKKyAgICAgICAgICAgICpvcHRpb25hbCArPSAqc3Rk
OjpleGNoYW5nZShwZXJjZW50LCAwKTsKKyAgICAgICAgcGVyY2VudEhpbnQgPSBoaW50OworICAg
IH0KKworICAgIFN0cmluZyBkZWJ1Z1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbWFrZVN0cmluZygieyIsCisgICAgICAgICAgICBsZW5ndGggPyBtYWtlU3RyaW5nKCIgbGVu
Z3RoOiIsICpsZW5ndGgpIDogU3RyaW5nKCksCisgICAgICAgICAgICBhbmdsZSA/IG1ha2VTdHJp
bmcoIiBhbmdsZToiLCAqYW5nbGUpIDogU3RyaW5nKCksCisgICAgICAgICAgICB0aW1lID8gbWFr
ZVN0cmluZygiIHRpbWU6IiwgKnRpbWUpIDogU3RyaW5nKCksCisgICAgICAgICAgICBmcmVxdWVu
Y3kgPyBtYWtlU3RyaW5nKCIgZnJlcXVlbmN5OiIsICpmcmVxdWVuY3kpIDogU3RyaW5nKCksCisg
ICAgICAgICAgICByZXNvbHV0aW9uID8gbWFrZVN0cmluZygiIHJlc29sdXRpb246IiwgKnJlc29s
dXRpb24pIDogU3RyaW5nKCksCisgICAgICAgICAgICBmbGV4ID8gbWFrZVN0cmluZygiIGZsZXg6
IiwgKmZsZXgpIDogU3RyaW5nKCksCisgICAgICAgICAgICBwZXJjZW50ID8gbWFrZVN0cmluZygi
IHBlcmNlbnQ6IiwgKnBlcmNlbnQpIDogU3RyaW5nKCksCisgICAgICAgICAgICBwZXJjZW50SGlu
dCA/IG1ha2VTdHJpbmcoIiBwZXJjZW50SGludDoiLCBXZWJDb3JlOjpkZWJ1Z1N0cmluZygqcGVy
Y2VudEhpbnQpKSA6IFN0cmluZygpLAorICAgICAgICAiIH0iKTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsCmluZGV4IGJlOTE0YTNiY2QxNzZkYzU3OGIyMTAx
ZGQwZWFlMjVlZDljOTc3YjkuLmY4ZGE0NzkxYjZhYmU4MTYyMGU1OWRjZDQzMzdlZjBjZDY2ZmI4
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVt
ZXJpY1R5cGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TnVtZXJpY1R5cGUuaWRsCkBAIC0yMyw2ICsyMyw4IEBACiAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCisv
LyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVt
ZXJpY3ZhbHVlLXR5cGUKKwogWwogICAgIENvbmRpdGlvbmFsPUNTU19UWVBFRF9PTSwKICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDFk
NWExYzE5Njk1MjBhODBmZTZjZTZmYWI2NzYyM2U5YTY1ZGU1MzguLmZjYjdlOTI2ZGFmMDQyMjBl
M2MzYTg5NjI3Mzk2YzQ0NWE2NGRkODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDIyLTAzLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHVuaXRzIGZvciBDU1MgdHlwZWQg
b20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODUz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9u
L2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmlj
LW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nl
cy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9z
dHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRW
YWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmlj
dmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAz
LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgZm9jdXNlZCBhbmQgdmlzaWJsZSBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50IHN0
YXRlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0VmFs
dWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24v
Y3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggOGE1ZWYxZWNjYThkNjk5
ZDM2MTA1MjI5ZTkzYzliZDgxNDlhMTY3Ny4uODczOGUxNTkzYWRhNWFkMGM5OGQ0YzAwNGNhNGE1
YzJmZDljYmJhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NV
bml0VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJp
YWxpemF0aW9uL2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEs
OCBAQAogCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIGxlbmd0aCB1bml0IGNvbnN0cnVjdGVkIGZy
b20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIzLjE0
cHgiIGJ1dCBnb3QgIjNweCIKLUZBSUwgQ1NTVW5pdFZhbHVlIHdpdGggdW5pdCAicGVyY2VudCIg
Y29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIjMuMTQlIiBidXQgZ290ICIzcGVyY2VudCIKLUZBSUwgQ1NTVW5pdFZhbHVlIHdp
dGggdW5pdCAibnVtYmVyIiBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3Rs
eSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNCIgYnV0IGdvdCAiM251bWJlciIKLUZBSUwg
Q1NTVW5pdFZhbHVlIHdpdGggaW50ZWdlciB2YWx1ZXMgY29uc3RydWN0ZWQgZnJvbSBJREwgc2Vy
aWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMiIGJ1dCBnb3QgIjNu
dW1iZXIiCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIERPTVN0cmluZyBtb2RpZmllZCBieSAi
dmFsdWUiIHNldHRlciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIENTU09N
IG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICIzLjE0cHgiIGJ1dCBnb3QgIjNweCIKK1BBU1MgQ1NTVW5pdFZhbHVl
IHdpdGggbGVuZ3RoIHVuaXQgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0
bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggdW5pdCAicGVyY2VudCIgY29uc3RydWN0ZWQgZnJv
bSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggdW5pdCAi
bnVtYmVyIiBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBD
U1NVbml0VmFsdWUgd2l0aCBpbnRlZ2VyIHZhbHVlcyBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJp
YWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NLZXl3b3JkVmFsdWUgZnJvbSBET01TdHJpbmcgbW9k
aWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTS2V5
d29yZFZhbHVlIGZyb20gQ1NTT00gbW9kaWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CmluZGV4IDRiZTI3YmYyYmI5OGExNWJmZmE0ZDg5NTAwOGRiNjkzNTRh
MWExYWIuLmVjYzk1MzNmMDBmMWFlMmUyNGVmNDdjYzZkMTk1ZDlkZTk4Yzg3ZDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlw
ZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAg
LTEsOSArMSw5IEBACiAKLUZBSUwgQWRkaW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24t
bnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVu
Y3Rpb24gIigpID0+IG5ldyBDU1NNYXRoU3VtKGEsIGIpIiBkaWQgbm90IHRocm93Ci1GQUlMIEFk
ZGluZyB0d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBub256ZXJvIHZhbHVlcyByZXR1cm5zIHNhbWUg
dHlwZSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgQWRk
aW5nIHR3byB0eXBlcyB3aXRoIGVtcHR5IG1hcHMgd2l0aCByZXR1cm5zIGVtcHR5IG1hcCBhc3Nl
cnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KG51bWJlcikgMAotRkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggcGVyY2VudCByZXR1cm5zIHR5cGUg
d2l0aCBwZXJjZW50IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdv
dCAwCi1GQUlMIEFkZGluZyBhIHR5cGUgd2l0aCBwZXJjZW50IDIgcmV0dXJucyB0eXBlIHdpdGgg
cGVyY2VudCBoaW50IHRocm93cyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24g
IigpID0+IG5ldyBDU1NNYXRoU3VtKGEsIGIpIiBkaWQgbm90IHRocm93Ci1GQUlMIEFkZGluZyBh
IHR5cGUgd2l0aCBhIHBlcmNlbnQgaGludCByZXR1cm5zIGEgdHlwZSB3aXRoIHRoZSBwZXJjZW50
IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIEFk
ZGluZyB0d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5cGUg
d2l0aCB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdpdGggZGlmZmVyZW50IG5vbi1udWxsIHBl
cmNlbnQgaGludHMgdGhyb3dzIFR5cGVFcnJvcgorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdpdGgg
dGhlIHNhbWUgbm9uemVybyB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUKK1BBU1MgQWRkaW5nIHR3
byB0eXBlcyB3aXRoIGVtcHR5IG1hcHMgd2l0aCByZXR1cm5zIGVtcHR5IG1hcAorUEFTUyBBZGRp
bmcgYSB0eXBlIHdpdGggcGVyY2VudCByZXR1cm5zIHR5cGUgd2l0aCBwZXJjZW50IGhpbnQKK1BB
U1MgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgMiByZXR1cm5zIHR5cGUgd2l0aCBwZXJjZW50
IGhpbnQgdGhyb3dzIFR5cGVFcnJvcgorUEFTUyBBZGRpbmcgYSB0eXBlIHdpdGggYSBwZXJjZW50
IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50CitQQVNTIEFkZGluZyB0
d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0aCB0
aGUgcGVyY2VudCBoaW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMv
bnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9z
dHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dAppbmRleCA1MzZlYTUyZTUzYjBjY2I4Y2UyNzgwNjcwMzA2YTM0N2FmMTcz
OTNlLi5mZDMwYTU3ZTJhNTVmMDI2ZDc2NWExY2QyNjE1ODMwNDBmYWRlOGY4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC02MCw2ICs2
MCw2IEBAIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubWF4IHdpdGggQ1NTVW5pdFZhbHVlcyB3
aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFs
dWUuc3ViIG5lZ2F0ZXMgYWxsIGFyZ3VtZW50IHZhbHVlcwogUEFTUyBDYWxsaW5nIENTU051bWVy
aWNWYWx1ZS5kaXYgaW52ZXJ0cyBhbGwgYXJndW1lbnQgdmFsdWVzCiBQQVNTIENhbiBub3QgZGl2
aWRlIHdpdGggQ1NTVW5pdFZhbHVlIHdoaWNoIGhhcyB6ZXJvIHZhbHVlIGFuZCBudW1iZXIgdHlw
ZQotRkFJTCBDU1NOdW1lcmljVmFsdWUuYWRkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0
aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+
IENTUy5udW1iZXIoMykuYWRkKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRo
cm93Ci1GQUlMIENTU051bWVyaWNWYWx1ZS5zdWIgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVu
IHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LiBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkg
PT4gQ1NTLm51bWJlcigzKS5zdWIoQ1NTLnB4KDEwKSAsQ1NTLm51bWJlcigwKSkiIGRpZCBub3Qg
dGhyb3cKK1BBU1MgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdo
ZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuCitQQVNTIENTU051bWVyaWNWYWx1ZS5zdWIgc2hv
dWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUt
YS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy9jcmVhdGUtYS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5k
ZXggNTI4NDA3NzFjOTBhMzllNmI2NDcxZjFjOTYxYjg5OGExNjM3NDA4NC4uMGEyM2QzN2EyMzAz
OWU2NTVjZTU3OGJjMzBmNGU1Njg5M2NhODkyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Ny
ZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogCi1G
QUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tICJudW1iZXIiIHJldHVybnMge30gYXNzZXJ0X2VxdWFs
czogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIp
IDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gInBlcmNlbnQiIHJldHVybnMgeyBwZXJjZW50
OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5l
ZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGxlbmd0aD4g
cmV0dXJucyB7IGxlbmd0aDogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8YW5nbGU+IHJldHVybnMgeyBhbmds
ZTogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tIDx0aW1lPiBy
ZXR1cm5zIHsgdGltZTogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZp
bmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBm
cm9tIDxmcmVxdWVuY3k+IHJldHVybnMgeyBmcmVxdWVuY3k6IDEgfSBhc3NlcnRfZXF1YWxzOiBs
ZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAot
RkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8cmVzb2x1dGlvbj4gcmV0dXJucyB7IHJlc29sdXRp
b246IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZmxleD4g
cmV0dXJucyB7IGZsZXg6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVm
aW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAorUEFTUyBDcmVhdGluZyBhIHR5cGUg
ZnJvbSAibnVtYmVyIiByZXR1cm5zIHt9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tICJwZXJj
ZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tIDxs
ZW5ndGg+IHJldHVybnMgeyBsZW5ndGg6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8
YW5nbGU+IHJldHVybnMgeyBhbmdsZTogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tIDx0
aW1lPiByZXR1cm5zIHsgdGltZTogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tIDxmcmVx
dWVuY3k+IHJldHVybnMgeyBmcmVxdWVuY3k6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJv
bSA8cmVzb2x1dGlvbj4gcmV0dXJucyB7IHJlc29sdXRpb246IDEgfQorUEFTUyBDcmVhdGluZyBh
IHR5cGUgZnJvbSA8ZmxleD4gcmV0dXJucyB7IGZsZXg6IDEgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoSW52ZXJ0LXR5cGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMv
Y3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dAppbmRleCA3OWRmNDg2Y2NlODFjZmRlNDNh
ZWVhMzM2YjliY2RmMzEyMjdmZTVmLi4zYTliMDcwYTllMTY5ZDUyZTZmNGFhYzg3OGE2ODJkMDMx
Yzk2YzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2Jq
ZWN0cy9jc3NNYXRoSW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgSW52ZXJ0aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1h
cCByZXR1cm5zIHRoZSBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1
bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgSW52ZXJ0aW5nIGEg
dHlwZSBuZWdhdGVzIGFsbCBpdHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBl
Y3RlZCAtMSBidXQgZ290IDAKLUZBSUwgSW52ZXJ0aW5nIGFuIGludmVydGVkIHR5cGUgcmV0dXJu
cyB0aGUgb3JpZ2luYWwgdHlwZSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQg
Z290IDAKK1BBU1MgSW52ZXJ0aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRoZSBl
bXB0eSBtYXAKK1BBU1MgSW52ZXJ0aW5nIGEgdHlwZSBuZWdhdGVzIGFsbCBpdHMgZXhwb25lbnRz
CitQQVNTIEludmVydGluZyBhbiBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhlIG9yaWdpbmFsIHR5
cGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVj
dHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQKaW5k
ZXggMTE2M2QwZjFmNjg4MDgxOTZiNDgzMWVmMTlmNGYyMmFjMTZiM2ViOS4uZDM0OWE3ZTJkMWY0
ZmZiY2RkYmRhYmUxNjc4OWRjMzI4NWZhNmRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRo
TmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIE5lZ2F0aW5n
IGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFs
czogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIp
IDAKLUZBSUwgTmVnYXRpbmcgYSB0eXBlIHJldHVybnMgdGhlIHNhbWUgdHlwZSBhc3NlcnRfZXF1
YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgTmVnYXRpbmcgYSB0eXBlIHdp
dGggZW1wdHkgbWFwIHJldHVybnMgdGhlIGVtcHR5IG1hcAorUEFTUyBOZWdhdGluZyBhIHR5cGUg
cmV0dXJucyB0aGUgc2FtZSB0eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aFZhbHVl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggZjM3N2E3MjIwMjFiZWJhYjIwODZhZGZiNzI1
YTA5NDRiYTlmNzk5ZS4uNGJlOGU3MWQ3YzYwNTQxZGFkNzk1OTY2OWY4YTQyZDY2NGUzNGVhMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3Nz
TWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQKQEAgLTEsOSArMSw5IEBACiAKLUZBSUwgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFN1bSB3aXRo
IG5vIGFyZ3VtZW50cyB0aHJvd3MgYSBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVu
Y3Rpb24gIigpID0+IG5ldyBzdWJjbGFzcygpIiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0cnVj
dGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IK
IFBBU1MgQ1NTTWF0aFN1bSBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBhIHNpbmdsZSBudW1iZXIg
Q1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhTdW0gY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20gbW9y
ZSB0aGFuIG9uZSBudW1iZXIgQ1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhTdW0ub3BlcmF0b3Ig
aXMgcmVhZG9ubHkKLUZBSUwgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBubyBh
cmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PiBuZXcgc3ViY2xhc3MoKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb25zdHJ1Y3Rpbmcg
YSBDU1NNYXRoUHJvZHVjdCB3aXRoIG5vIGFyZ3VtZW50cyB0aHJvd3MgYSBTeW50YXhFcnJvcgog
UEFTUyBDU1NNYXRoUHJvZHVjdCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBhIHNpbmdsZSBudW1i
ZXIgQ1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhQcm9kdWN0IGNhbiBiZSBjb25zdHJ1Y3RlZCBm
cm9tIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoUHJvZHVj
dC5vcGVyYXRvciBpcyByZWFkb25seQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50
eHQKaW5kZXggNjViN2Q4NDZjM2ZjNzQyOWEzYWJlMzIxYThmNDY2ZjkzODhmZTlmNy4uM2FhMmVj
OGM1Y2I1NmUyMDcyYzMxMDhjZWUzOWU4MTYxMThlNjY2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NVbml0
VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIENvbnN0cnVjdGluZyBD
U1NVbml0VmFsdWUgd2l0aCBhbiB1bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTVW5pdFZhbHVlKDAsICdsZW1vbicp
IiBkaWQgbm90IHRocm93Ci1GQUlMIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBhIGVt
cHR5IHN0cmluZyB1bml0IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5j
dGlvbiAiKCkgPT4gbmV3IENTU1VuaXRWYWx1ZSgwLCAnJykiIGRpZCBub3QgdGhyb3cKK1BBU1Mg
Q29uc3RydWN0aW5nIENTU1VuaXRWYWx1ZSB3aXRoIGFuIHVua25vd24gdW5pdCB0aHJvd3MgYSBU
eXBlRXJyb3IKK1BBU1MgQ29uc3RydWN0aW5nIENTU1VuaXRWYWx1ZSB3aXRoIGEgZW1wdHkgc3Ry
aW5nIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29u
c3RydWN0ZWQgd2l0aCBudW1iZXIKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3Rl
ZCB3aXRoIHBlcmNlbnQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IGVtCkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3Rl
ZCB3aXRoIHZtaW4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHZt
YXgKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGNtCiBQQVNTIENT
U1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBtbQotRkFJTCBDU1NVbml0VmFsdWUg
Y2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUSBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUgYXMg
Z2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgInEiIGJ1dCBnb3QgIlEiCitQQVNTIENTU1Vu
aXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBRCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4g
YmUgY29uc3RydWN0ZWQgd2l0aCBpbgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVj
dGVkIHdpdGggcHQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHBj
CkBAIC0yOSw4ICsyOSw4IEBAIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3
aXRoIHJhZAogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggdHVybgog
UEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggcwogUEFTUyBDU1NVbml0
VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbXMKLUZBSUwgQ1NTVW5pdFZhbHVlIGNhbiBi
ZSBjb25zdHJ1Y3RlZCB3aXRoIEh6IGFzc2VydF9lcXVhbHM6IHVuaXQgaXMgc2FtZSBhcyBnaXZl
biBieSBjb25zdHJ1Y3RvciBleHBlY3RlZCAiaHoiIGJ1dCBnb3QgIkh6IgotRkFJTCBDU1NVbml0
VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgga0h6IGFzc2VydF9lcXVhbHM6IHVuaXQgaXMg
c2FtZSBhcyBnaXZlbiBieSBjb25zdHJ1Y3RvciBleHBlY3RlZCAia2h6IiBidXQgZ290ICJrSHoi
CitQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBIegorUEFTUyBDU1NV
bml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgga0h6CiBQQVNTIENTU1VuaXRWYWx1ZSBj
YW4gYmUgY29uc3RydWN0ZWQgd2l0aCBkcGkKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25z
dHJ1Y3RlZCB3aXRoIGRwY20KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3
aXRoIGRwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc251
bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRl
eCA4YThiOTk3OGI0MjM4OWFkMGJkNjA3YzQ3MTM2NTlmZGZlNzVmNWMxLi5iYjk5M2I2YTRlYWZk
OTIyNzVmZDRlNDQ2MzQ4MmQ5NzRhNTFkY2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1z
dWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5
cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nl
cy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlMIE11bHRpcGx5aW5nIHR3
byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IG5ldyBDU1NNYXRoUHJvZHVj
dChhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBz
YW1lIGJhc2UgdHlwZXMgYWRkcyBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVj
dGVkIDIgYnV0IGdvdCAwCi1GQUlMIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVu
dCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgcmVzcGVjdHMgdGhlIHNp
Z24gb2YgdGhlIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQg
Z290IDAKLUZBSUwgTXVsdGlwbHlpbmcgYSB0eXBlIHdpdGggbm8gZXhwb25lbnRzIGlzIGEgbm8t
b3AgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIE11bHRp
cGx5aW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQg
YXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCi1GQUlMIE11bHRpcGx5
aW5nIHR3byB0eXBlcyB3aXRoIHNhbWUgcGVyY2VudCBoaW50IGFwcGxpZXMgdGhlIHBlcmNlbnQg
aGludCBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDAKK1BBU1MgTXVs
dGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggZGlmZmVyZW50IG5vbi1udWxsIHBlcmNlbnQgaGludHMg
dGhyb3dzIFR5cGVFcnJvcgorUEFTUyBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1lIGJh
c2UgdHlwZXMgYWRkcyBleHBvbmVudHMKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGgg
ZGlmZmVyZW50IGJhc2UgdHlwZXMgYWRkcyBleHBvbmVudHMKK1BBU1MgTXVsdGlwbHlpbmcgdHdv
IHR5cGVzIHJlc3BlY3RzIHRoZSBzaWduIG9mIHRoZSBleHBvbmVudHMKK1BBU1MgTXVsdGlwbHlp
bmcgYSB0eXBlIHdpdGggbm8gZXhwb25lbnRzIGlzIGEgbm8tb3AKK1BBU1MgTXVsdGlwbHlpbmcg
YSB0eXBlIHdpdGggcGVyY2VudCBoaW50IGFwcGxpZXMgdGhlIHBlcmNlbnQgaGludAorUEFTUyBN
dWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBw
ZXJjZW50IGhpbnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXgg
YWMyZTA4MDZmZWMzYWQ3ZWE5MTJmZTZmZTg3OWQ1YTA3ZjJkZDNjMy4uNjMwODBjZDk5NWZhNGI3
YTdkOTQ4YWY3Yzg3OGRlNDMyZDAxNDdkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CkBAIC0xMyw1ICsxMyw1IEBAIEZBSUwgQ29udmVydGluZyBhIENTU01hdGhNYXgg
dG8gYSBzaW5nbGUgdW5pdCBmaW5kcyB0aGUgbWF4IHZhbHVlIGFzc2VydF9hcHByb3hfCiBGQUlM
IENvbnZlcnRpbmcgYSBDU1NNYXRoTWF4IHRvIGEgc2luZ2xlIHVuaXQgd2l0aCBkaWZmZXJlbnQg
dW5pdHMgdGhyb3dzIGEgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9
PiBuZXcgQ1NTTWF0aE1heChDU1MucHgoMiksIENTUy5zKDMpKS50bygncHgnKSIgZGlkIG5vdCB0
aHJvdwogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aE5lZ2F0ZSB0byBhIHNpbmdsZSB1bml0IG5l
Z2F0ZXMgaXRzIHZhbHVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCAtMSArLy0gMC4w
MDAwMDEgYnV0IGdvdCAxCiBGQUlMIENvbnZlcnRpbmcgYSBDU1NNYXRoSW52ZXJ0IHRvIGEgc2lu
Z2xlIHVuaXQgaW52ZXJ0cyBpdHMgdmFsdWUgYW5kIHVuaXRzIGFzc2VydF9hcHByb3hfZXF1YWxz
OiBleHBlY3RlZCAyICsvLSAwLjAwMDAwMSBidXQgZ290IDEKLUZBSUwgQ29udmVydGluZyBhIGNv
bXBsZXggZXhwcmVzc2lvbiB0byBhIHNpbmdsZSB1bml0IGFzc2VydF9hcHByb3hfZXF1YWxzOiBl
eHBlY3RlZCAzNTAwICsvLSAwLjAwMDAwMSBidXQgZ290IDEKK0ZBSUwgQ29udmVydGluZyBhIGNv
bXBsZXggZXhwcmVzc2lvbiB0byBhIHNpbmdsZSB1bml0IFR5cGUgZXJyb3IKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456089</attachid>
            <date>2022-03-29 20:48:40 -0700</date>
            <delta_ts>2022-03-29 22:26:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220329204839.patch</filename>
            <type>text/plain</type>
            <size>66417</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNGIyMTJjODg2NTdlNDg3MmYxYTE4MTVjYzM0NWVi
NDk5OTlhNTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgdHlwZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBvZmYgYnkgZGVmYXVsdCBhbmQgdGhp
cyBwYXJ0IGlzIGNvdmVyZWQgYnkgV1BUIHRlc3RzLgorCisgICAgICAgICogY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnN1Yik6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVmFsdWU6OnRvU3VtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpDU1NOdW1lcmljVmFsdWUpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpudW1lcmljVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVuaXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjp1bml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVW5pdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjpD
U1NVbml0VmFsdWUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuZWdhdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoSW52ZXJ0OjpD
U1NNYXRoSW52ZXJ0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptdWx0aXBseVR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhQcm9kdWN0Ojp2YWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU01hdGhTdW06OkNTU01hdGhTdW0pOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoVmFsdWU6OkNTU01hdGhWYWx1ZSk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjplYWNoQmFz
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWdTdHJpbmcpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6dmFsdWVGb3JUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNUeXBlOjphcHBseVBlcmNlbnRIaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNUeXBlOjpkZWJ1Z1N0cmluZyBjb25zdCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsOgor
CiAyMDIyLTAzLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBQR08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5k
ZXggMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJjNzIxMzNkMTU2M2JiMjBmMC4uYzQwZWRiYTA3MmQz
NDcxMGQ3YWM2YjcxMGE1Y2UzNzdkZjYzNTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NT
TnVtZXJpY0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3Bh
Y2UmKSB7IH0KIAotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciJfcyk7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7IH0K
IAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0oZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJjaCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2bWF4Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3MpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJwYyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjcWgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIl9zKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBj
cW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3FtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
RU1TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0VYUyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DSFMpOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfSUMpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1JFTVMpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTEhTKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19STEhTKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1ZXKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX1ZIKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2
aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NV
bml0VHlwZTo6Q1NTX1ZJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX1ZCKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfVk1JTik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NT
X1ZNQVgpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ00p
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTU0pOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19RKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0lOKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BUKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BDKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBD
U1NVbml0VHlwZTo6Q1NTX1BYKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXco
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5p
dFR5cGU6OkNTU19DUVcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX0NRSCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfQ1FJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19D
UUIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FN
SU4pOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FN
QVgpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
ZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJk
ZWciX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJ0dXJuIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWcoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5
cGU6OkNTU19ERUcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19HUkFEKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19SQUQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19U
VVJOKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIl9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19NUyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImh6Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgImtoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19IWik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
S0haKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJkcGkiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20iX3MpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQSSk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQQ00pOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19EUFBYKTsgfQogCiAKICAgICAvLyA8ZmxleD4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX0ZSKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBlZDdiZjk4MzhiMjgz
NmYwMGZkZDVhOTVhNDliN2IwYzAzNjY2ZWZhLi5mYTQzMWRjMmQ5ODZiYTNlMmI0YzcwMGQyNjYz
NWY0YjE0ZTFlNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVy
aWNWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+
IG5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgIGlmIChhdXRvKiBtYXRo
TmVnYXRlID0gZHluYW1pY0Rvd25jYXN0PENTU01hdGhOZWdhdGU+KHZhbHVlLmdldCgpKSkKICAg
ICAgICAgcmV0dXJuIG1hdGhOZWdhdGUtPnZhbHVlKCk7CiAgICAgaWYgKGF1dG8qIHVuaXRWYWx1
ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKSkKLSAgICAgICAg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1
ZS0+dW5pdCgpKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0VmFs
dWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5pdEVudW0oKSk7CiAgICAgcmV0dXJuIENTU01hdGhO
ZWdhdGU6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKQEAgLTY3LDExICs2NywxMCBAQCBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGludmVydChSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgICAgICByZXR1cm4gUmVmIHsgbWF0aEludmVydC0+dmFs
dWUoKSB9OwogCiAgICAgaWYgKGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NV
bml0VmFsdWU+KHZhbHVlLmdldCgpKSkgewotICAgICAgICAvLyBGSVhNRTogdW5pdHMgc2hvdWxk
IGJlIGVpdGhlciBBdG9taWNTdHJpbmdzIG9yIENTU1VuaXRUeXBlIGVudW1lcmF0aW9uIHZhbHVl
cy4KLSAgICAgICAgaWYgKHVuaXRWYWx1ZS0+dW5pdCgpID09ICJudW1iZXIiKSB7CisgICAgICAg
IGlmICh1bml0VmFsdWUtPnVuaXRFbnVtKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpIHsK
ICAgICAgICAgICAgIGlmICh1bml0VmFsdWUtPnZhbHVlKCkgPT0gMC4wIHx8IHVuaXRWYWx1ZS0+
dmFsdWUoKSA9PSAtMC4wKQogICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5n
ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBDU1NV
bml0VmFsdWU6OmNyZWF0ZSgxLjAgLyB1bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5p
dCgpKSB9OworICAgICAgICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTVW5p
dFZhbHVlOjpjcmVhdGUoMS4wIC8gdW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUtPnVuaXRF
bnVtKCkpIH07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTgzLDExICs4MiwxMSBAQCBzdGF0aWMg
UmVmUHRyPENTU051bWVyaWNWYWx1ZT4gb3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0KFQmJiBv
cGVyYXRpb24sIGNvbnN0CiB7CiAgICAgYm9vbCBhbGxWYWx1ZXNIYXZlU2FtZVVuaXQgPSB2YWx1
ZXMuc2l6ZSgpICYmIFdURjo6YWxsT2YodmFsdWVzLCBbJl0gKGNvbnN0IFJlZjxDU1NOdW1lcmlj
VmFsdWU+JiB2YWx1ZSkgewogICAgICAgICBhdXRvKiB1bml0VmFsdWUgPSBkeW5hbWljRG93bmNh
c3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiB1bml0VmFsdWUg
PyB1bml0VmFsdWUtPnVuaXQoKSA9PSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1swXS5n
ZXQoKSkudW5pdCgpIDogZmFsc2U7CisgICAgICAgIHJldHVybiB1bml0VmFsdWUgPyB1bml0VmFs
dWUtPnVuaXRFbnVtKCkgPT0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbMF0uZ2V0KCkp
LnVuaXRFbnVtKCkgOiBmYWxzZTsKICAgICB9KTsKICAgICBpZiAoYWxsVmFsdWVzSGF2ZVNhbWVV
bml0KSB7CiAgICAgICAgIGF1dG8mIGZpcnN0VW5pdFZhbHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZh
bHVlPih2YWx1ZXNbMF0uZ2V0KCkpOwotICAgICAgICBTdHJpbmcgdW5pdCA9IGZpcnN0VW5pdFZh
bHVlLnVuaXQoKTsKKyAgICAgICAgYXV0byB1bml0ID0gZmlyc3RVbml0VmFsdWUudW5pdEVudW0o
KTsKICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGZpcnN0VW5pdFZhbHVlLnZhbHVlKCk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKQogICAgICAgICAg
ICAgcmVzdWx0ID0gb3BlcmF0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1
ZXNbaV0uZ2V0KCkpLnZhbHVlKCkpOwpAQCAtMTA3LDMyICsxMDYsMzMgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBy
ZXBlbmRJdGVtc08KICAgICByZXR1cm4gdmFsdWVzOwogfQogCi1SZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBDU1NOdW1lcmljVmFsdWU6OmFkZEludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVl
Pj4mJiBudW1lcmljVmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENT
U051bWVyaWNWYWx1ZTo6YWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYm
IG51bWVyaWNWYWx1ZXMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS1hZGQKICAgICBhdXRvIHZhbHVlcyA9
IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpczxDU1NNYXRoU3VtPihXVEZNb3ZlKG51bWVyaWNWYWx1
ZXMpKTsKIAogICAgIGlmIChhdXRvIHJlc3VsdCA9IG9wZXJhdGlvbk9uVmFsdWVzT2ZTYW1lVW5p
dChzdGQ6OnBsdXM8ZG91YmxlPigpLCB2YWx1ZXMpKQotICAgICAgICByZXR1cm4gKnJlc3VsdDsK
LQotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcCA0IHRvIGNoZWNrIHRoYXQgdGhlIHR5cGVz
IGNhbiBiZSBhZGRlZC4KKyAgICAgICAgcmV0dXJuIHsgKnJlc3VsdCB9OwogCi0gICAgcmV0dXJu
IENTU01hdGhTdW06OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpOworICAgIGF1dG8gc3VtID0gQ1NT
TWF0aFN1bTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHN1bS5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIHN1bS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgcmV0dXJu
IFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgc3VtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CiB9CiAK
LVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKEZpeGVkVmVjdG9yPENT
U051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4g
Q1NTTnVtZXJpY1ZhbHVlOjphZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykK
IHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjptYXAoV1RGTW92ZSh2YWx1ZXMpLCByZWN0
aWZ5TnVtYmVyaXNoKSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1
ZTo6c3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoRml4ZWRWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjptYXAo
V1RGTW92ZSh2YWx1ZXMpLCBbXSAoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKSB7CiAgICAgICAg
IHJldHVybiBuZWdhdGUocmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKICAg
ICB9KSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlw
bHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykK
K0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6Om11bHRp
cGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWYWx1ZXMp
CiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8j
ZG9tLWNzc251bWVyaWN2YWx1ZS1tdWwKICAgICBhdXRvIHZhbHVlcyA9IHByZXBlbmRJdGVtc09m
VHlwZU9yVGhpczxDU1NNYXRoUHJvZHVjdD4oV1RGTW92ZShudW1lcmljVmFsdWVzKSk7CkBAIC0x
NDQsOCArMTQ0LDggQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0
aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAgYm9vbCBtdWx0
aXBsZVVuaXRzRm91bmQgeyBmYWxzZSB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4g
bm9uTnVtYmVyVW5pdEluZGV4OwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVl
cy5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgYXV0byYgdW5pdCA9IGRvd25jYXN0PENTU1Vu
aXRWYWx1ZT4odmFsdWVzW2ldLmdldCgpKS51bml0KCk7Ci0gICAgICAgICAgICBpZiAodW5pdCA9
PSAibnVtYmVyIikKKyAgICAgICAgICAgIGF1dG8gdW5pdCA9IGRvd25jYXN0PENTU1VuaXRWYWx1
ZT4odmFsdWVzW2ldLmdldCgpKS51bml0RW51bSgpOworICAgICAgICAgICAgaWYgKHVuaXQgPT0g
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBpZiAobm9uTnVtYmVyVW5pdEluZGV4KSB7CiAgICAgICAgICAgICAgICAgbXVsdGlw
bGVVbml0c0ZvdW5kID0gdHJ1ZTsKQEAgLTE1NywxNyArMTU3LDE4IEBAIFJlZjxDU1NOdW1lcmlj
VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051
bWVyaWNWYWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBm
b3IgKGNvbnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAg
ICAgICAgICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZh
bHVlKCk7Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRv
d25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51
bml0KCkgOiAibnVtYmVyIl9zOwotICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHByb2R1Y3QsIHVuaXQpOworICAgICAgICAgICAgYXV0byB1bml0ID0gbm9uTnVtYmVyVW5p
dEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRl
eF0uZ2V0KCkpLnVuaXRFbnVtKCkgOiBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjsKKyAgICAgICAg
ICAgIHJldHVybiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2R1Y3QsIHVuaXQpIH07CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXAgNSB0byBwcm9kdWNl
IGEgdW5pdCBvZiB0aGUgY29ycmVjdCB0eXBlLgotCi0gICAgcmV0dXJuIENTU01hdGhQcm9kdWN0
OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKTsKKyAgICBhdXRvIHByb2R1Y3QgPSBDU1NNYXRoUHJv
ZHVjdDo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHByb2R1Y3QuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBwcm9kdWN0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBy
ZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBwcm9kdWN0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
IH07CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsKEZpeGVk
VmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYm
IHZhbHVlcykKIHsKICAgICByZXR1cm4gbXVsdGlwbHlJbnRlcm5hbChXVEY6Om1hcChXVEZNb3Zl
KHZhbHVlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKIH0KQEAgLTIzNSwxMCArMjM2LDEwIEBAIFJl
ZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5pdCkKICAgICBV
TlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJWE1FOiBhZGQg
aW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
KyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCBDU1NVbml0VHlwZTo6Q1NTX05V
TUJFUik7CiB9CiAKLVJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVk
VmVjdG9yPFN0cmluZz4mJiB1bml0cykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gQ1NT
TnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHVuaXRzKTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5v
cmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvc3VtCkBAIC0yNDYsMTMgKzI0
Nyw2IEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9y
PFN0cmluZz4mJiB1bml0cykKICAgICByZXR1cm4gQ1NTTWF0aFN1bTo6Y3JlYXRlKEZpeGVkVmVj
dG9yPENTU051bWJlcmlzaD4geyAxLjAgfSk7CiB9CiAKLUNTU051bWVyaWNUeXBlIENTU051bWVy
aWNWYWx1ZTo6dHlwZSgpCi17Ci0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCi0gICAgLy8gRklYTUU6IGFk
ZCBpbXBsLgotICAgIHJldHVybiBDU1NOdW1lcmljVHlwZSB7IH07Ci19Ci0KIEV4Y2VwdGlvbk9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNz
c1RleHQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAppbmRleCAyNmNhODM5ZTRjZTQ5NjVjN2M3ZmRi
NWE5ZmVkMGUwOTdhZjFhNTU1Li43MTUxMDFkOTQxZmViMDc5MjYwNWQ0N2ZiMTA0ZTFjZTUyMjVk
N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUg
IkNTU051bWVyaWNUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVWYWx1ZS5oIgogI2luY2x1ZGUg
PHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkVmVjdG9yLmg+CkBAIC0zNiw3ICszNyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU051bWVyaWNWYWx1ZTsKIGNsYXNzIENTU1Vu
aXRWYWx1ZTsKIGNsYXNzIENTU01hdGhTdW07Ci1zdHJ1Y3QgQ1NTTnVtZXJpY1R5cGU7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIApAQCAtNDYsOSArNDYsOSBAQCBj
bGFzcyBDU1NOdW1lcmljVmFsdWUgOiBwdWJsaWMgQ1NTU3R5bGVWYWx1ZSB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChDU1NOdW1lcmljVmFsdWUpOwogcHVibGljOgogCi0gICAgUmVmPENT
U051bWVyaWNWYWx1ZT4gYWRkKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAgUmVm
PENTU051bWVyaWNWYWx1ZT4gc3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAg
UmVmPENTU051bWVyaWNWYWx1ZT4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Cisg
ICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZChGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBzdWIo
Rml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgRXhjZXB0
aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGRpdihGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1pbihGaXhlZFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1heChGaXhlZFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOwpAQCAtNTYsOCArNTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcXVhbHMoRml4
ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICAKICAgICBSZWY8Q1NTVW5pdFZhbHVlPiB0
byhTdHJpbmcmJik7Ci0gICAgUmVmPENTU01hdGhTdW0+IHRvU3VtKEZpeGVkVmVjdG9yPFN0cmlu
Zz4mJik7Ci0gICAgQ1NTTnVtZXJpY1R5cGUgdHlwZSgpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoU3VtPj4gdG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmKTsKKworICAgIGNvbnN0IENT
U051bWVyaWNUeXBlJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgCiAgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBwYXJzZShTdHJpbmcmJik7
CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+IHJlY3RpZnlOdW1iZXJpc2goQ1NTTnVt
YmVyaXNoJiYpOwpAQCAtNjUsMTEgKzY2LDE0IEBAIHB1YmxpYzoKICAgICBDU1NTdHlsZVZhbHVl
VHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6
OkNTU051bWVyaWNWYWx1ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVmPENTU051bWVyaWNWYWx1
ZT4gYWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKLSAgICBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiBtdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZEludGVy
bmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVm
PENTU051bWVyaWNWYWx1ZT4+IG11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpcyhWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYpOwogCi0gICAgQ1NTTnVtZXJpY1ZhbHVlKCkgPSBkZWZhdWx0OworICAgIENTU051
bWVyaWNWYWx1ZShDU1NOdW1lcmljVHlwZSB0eXBlID0geyB9KQorICAgICAgICA6IG1fdHlwZShX
VEZNb3ZlKHR5cGUpKSB7IH0KKworICAgIENTU051bWVyaWNUeXBlIG1fdHlwZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL0NTU1VuaXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0
VmFsdWUuY3BwCmluZGV4IGI3NjA1NGZkZGQ0YjAzMjFlMmNiMDUyNDVhOGRlZGMxNDFmZmMxOGEu
LmY3ZDc1N2IxOTYzZGRlOWI1YmE3MGJmYzY1MTFmMDNmZWNkNWNkZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcApAQCAtMzIsMTIgKzMyLDIyMSBAQAog
CiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVl
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTVW5pdFZhbHVlKTsKIAorc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IG51bWVyaWNUeXBlKENTU1VuaXRUeXBl
IHVuaXQpCit7CisgICAgQ1NTTnVtZXJpY1R5cGUgdHlwZTsKKyAgICBzd2l0Y2ggKHVuaXQpIHsK
KyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjc3Nu
dW1lcmljdmFsdWUtY3JlYXRlLWEtdHlwZQorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1C
RVI6CisgICAgICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgdHlwZS5wZXJjZW50ID0gMTsKKyAgICAgICAg
cmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzcy12YWx1ZXMtNC8jcmVsYXRpdmUtbGVuZ3RocworICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19FTVM6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzoKKyAgICAvLyBGSVhNRTog
QWRkICJjYXAiCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfSUM6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6CisgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzoK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZIOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSToKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVkI6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46CisgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZNQVg6CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LXZhbHVlcy00LyNhYnNvbHV0ZS1sZW5ndGhzCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NN
OgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTToKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUToKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSU46CisgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BDOgorICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDoKKyAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUFg6CisgICAgICAgIHR5cGUubGVuZ3RoID0gMTsKKyAgICAgICAgcmV0dXJu
IHsgV1RGTW92ZSh0eXBlKSB9OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy12YWx1ZXMtNC8jYW5nbGUtdmFsdWUKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgor
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0dSQUQ6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CisgICAgICAgIHR5cGUuYW5n
bGUgPSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisKKyAgICAvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyN0aW1lLXZhbHVlCisgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1M6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOgorICAgICAg
ICB0eXBlLnRpbWUgPSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisKKyAg
ICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00LyNmcmVxdWVuY3ktdmFs
dWUKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6CisgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0tIWjoKKyAgICAgICAgdHlwZS5mcmVxdWVuY3kgPSAxOworICAgICAgICByZXR1cm4geyBX
VEZNb3ZlKHR5cGUpIH07CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZh
bHVlcy00LyNyZXNvbHV0aW9uLXZhbHVlCisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSToK
KyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBDTToKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFBQWDoKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDoKKyAgICAgICAgdHlwZS5yZXNv
bHV0aW9uID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworCisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1ncmlkLTIvI3R5cGVkZWYtZmxleAorICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19GUjoKKyAgICAgICAgdHlwZS5mbGV4ID0gMTsKKyAgICAgICAg
cmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIEZJWE1F
OiBBcmUgdGhlcmUgdHlwZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIGhvdWRpbmkgc3BlYyB0aGF0IHdl
IHdhbnQgdG8gc3VwcG9ydCBoZXJlLCBwYXJzZVVuaXQsIGFuZCBDU1NVbml0VmFsdWU6OnVuaXQ/
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
fQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxDU1NVbml0VHlwZT4gcGFyc2VVbml0KGNvbnN0IFN0
cmluZyYgdW5pdCkKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3Nz
LXR5cGVkLW9tLyNjc3NudW1lcmljdmFsdWUtY3JlYXRlLWEtdHlwZQorICAgIGlmICh1bml0ID09
ICJudW1iZXIiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7CisgICAg
aWYgKHVuaXQgPT0gInBlcmNlbnQiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFOworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMt
NC8jcmVsYXRpdmUtbGVuZ3RocworICAgIGlmICh1bml0ID09ICJlbSIpCisgICAgICAgIHJldHVy
biBDU1NVbml0VHlwZTo6Q1NTX0VNUzsKKyAgICBpZiAodW5pdCA9PSAiZXgiKQorICAgICAgICBy
ZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19FWFM7CisgICAgLy8gRklYTUU6IEFkZCAiY2FwIgorICAg
IGlmICh1bml0ID09ICJjaCIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0NIUzsK
KyAgICBpZiAodW5pdCA9PSAiaWMiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19J
QzsKKyAgICBpZiAodW5pdCA9PSAicmVtIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpD
U1NfUkVNUzsKKyAgICBpZiAodW5pdCA9PSAibGgiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19MSFM7CisgICAgaWYgKHVuaXQgPT0gInJsaCIpCisgICAgICAgIHJldHVybiBDU1NV
bml0VHlwZTo6Q1NTX1JMSFM7CisgICAgaWYgKHVuaXQgPT0gInZ3IikKKyAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfVlc7CisgICAgaWYgKHVuaXQgPT0gInZoIikKKyAgICAgICAgcmV0
dXJuIENTU1VuaXRUeXBlOjpDU1NfVkg7CisgICAgaWYgKHVuaXQgPT0gInZpIikKKyAgICAgICAg
cmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVkk7CisgICAgaWYgKHVuaXQgPT0gInZiIikKKyAgICAg
ICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVkI7CisgICAgaWYgKHVuaXQgPT0gInZtaW4iKQor
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19WTUlOOworICAgIGlmICh1bml0ID09ICJ2
bWF4IikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVk1BWDsKKworICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI2Fic29sdXRlLWxlbmd0aHMKKyAg
ICBpZiAodW5pdCA9PSAiY20iKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19DTTsK
KyAgICBpZiAodW5pdCA9PSAibW0iKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19N
TTsKKyAgICBpZiAodW5pdCA9PSAiUSIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X1E7CisgICAgaWYgKHVuaXQgPT0gImluIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpD
U1NfSU47CisgICAgaWYgKHVuaXQgPT0gInBjIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBl
OjpDU1NfUEM7CisgICAgaWYgKHVuaXQgPT0gInB0IikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRU
eXBlOjpDU1NfUFQ7CisgICAgaWYgKHVuaXQgPT0gInB4IikKKyAgICAgICAgcmV0dXJuIENTU1Vu
aXRUeXBlOjpDU1NfUFg7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZh
bHVlcy00LyNhbmdsZS12YWx1ZQorICAgIGlmICh1bml0ID09ICJkZWciKQorICAgICAgICByZXR1
cm4gQ1NTVW5pdFR5cGU6OkNTU19ERUc7CisgICAgaWYgKHVuaXQgPT0gInJhZCIpCisgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1JBRDsKKyAgICBpZiAodW5pdCA9PSAiZ3JhZCIpCisg
ICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ7CisgICAgaWYgKHVuaXQgPT0gInR1
cm4iKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19UVVJOOworCisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8jdGltZS12YWx1ZQorICAgIGlmICh1
bml0ID09ICJzIikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfUzsKKyAgICBpZiAo
dW5pdCA9PSAibXMiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19NUzsKKworICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI2ZyZXF1ZW5jeS12YWx1
ZQorICAgIGlmICh1bml0ID09ICJIeiIpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NT
X0haOworICAgIGlmICh1bml0ID09ICJrSHoiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6
OkNTU19LSFo7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy00
LyNyZXNvbHV0aW9uLXZhbHVlCisgICAgaWYgKHVuaXQgPT0gImRwaSIpCisgICAgICAgIHJldHVy
biBDU1NVbml0VHlwZTo6Q1NTX0RQSTsKKyAgICBpZiAodW5pdCA9PSAiZHBjbSIpCisgICAgICAg
IHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX0RQQ007CisgICAgaWYgKHVuaXQgPT0gImRwcHgiKQor
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19EUFBYOworICAgIGlmICh1bml0ID09ICJ4
IikKKyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfWDsKKworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC0yLyN0eXBlZGVmLWZsZXgKKyAgICBpZiAodW5pdCA9
PSAiZnIiKQorICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19GUjsKKworICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Cit9CisKK1N0cmluZyBDU1NVbml0VmFsdWU6OnVuaXQoKSBjb25zdAor
eworICAgIHN3aXRjaCAobV91bml0KSB7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJF
UjoKKyAgICAgICAgcmV0dXJuICJudW1iZXIiOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFOgorICAgICAgICByZXR1cm4gInBlcmNlbnQiOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdW5pdFNlcmlhbGl6YXRpb24oKTsKK30KKwor
U3RyaW5nIENTU1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24oKSBjb25zdAoreworICAgIHJl
dHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcobV91bml0KTsKK30KKworRXhj
ZXB0aW9uT3I8UmVmPENTU1VuaXRWYWx1ZT4+IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKGRvdWJsZSB2
YWx1ZSwgY29uc3QgU3RyaW5nJiB1bml0KQoreworICAgIGF1dG8gcGFyc2VkVW5pdCA9IHBhcnNl
VW5pdCh1bml0KTsKKyAgICBpZiAoIXBhcnNlZFVuaXQpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IgfTsKKyAgICBhdXRvIHR5cGUgPSBudW1lcmljVHlwZSgqcGFyc2VkVW5p
dCk7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
IH07CisgICAgYXV0byB1bml0VmFsdWUgPSBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1
ZSwgKnBhcnNlZFVuaXQpKTsKKyAgICB1bml0VmFsdWUtPm1fdHlwZSA9IFdURk1vdmUoKnR5cGUp
OworICAgIHJldHVybiB1bml0VmFsdWU7Cit9CisKK0NTU1VuaXRWYWx1ZTo6Q1NTVW5pdFZhbHVl
KGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdW5pdCkKKyAgICA6IENTU051bWVyaWNWYWx1ZShu
dW1lcmljVHlwZSh1bml0KS52YWx1ZV9vcihDU1NOdW1lcmljVHlwZSgpKSkKKyAgICAsIG1fdmFs
dWUodmFsdWUpCisgICAgLCBtX3VuaXQodW5pdCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U1VuaXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgK
aW5kZXggMmMyZTllMzRkZmU2ZTM1NjM3NDIzNzk1NjM4ZGM2YmU3MTljNWNmZi4uZDg5YTFmMGY5
YTUzYjJmZjNkZTMwYjVlNjQ0MDc1Nzg3YjNhYzcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTVW5pdFZhbHVlLmgKQEAgLTM0LDMzICszNCwyOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2VudW0gY2xhc3MgQ1NTVW5pdFR5cGUgOiB1aW50OF90OworCiBjbGFzcyBDU1NV
bml0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTTnVtZXJpY1ZhbHVlIHsKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKENTU1VuaXRWYWx1ZSk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1ZSwgdW5pdCkp
OwotICAgIH0KKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU1VuaXRWYWx1ZT4+IGNyZWF0
ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCk7CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHVuaXQpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCB1bml0KSk7IH0KIAotICAgIC8vIEZJ
WE1FOiBub3QgY29ycmVjdC4KLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtYWtlU3RyaW5nKChpbnQpIG1fdmFsdWUsIG1fdW5pdCk7IH0KKyAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtYWtlU3RyaW5nKEZvcm1hdHRlZENTU051bWJl
cjo6Y3JlYXRlKG1fdmFsdWUpLCB1bml0U2VyaWFsaXphdGlvbigpKTsgfQogCiAgICAgZG91Ymxl
IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgIHZvaWQgc2V0VmFsdWUoZG91
YmxlIHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQotICAgIGNvbnN0IFN0cmluZyYgdW5pdCgp
IGNvbnN0IHsgcmV0dXJuIG1fdW5pdDsgfQotICAgIHZvaWQgc2V0VW5pdChjb25zdCBTdHJpbmcm
IHVuaXQpIHsgbV91bml0ID0gdW5pdDsgfQorICAgIFN0cmluZyB1bml0KCkgY29uc3Q7CisgICAg
U3RyaW5nIHVuaXRTZXJpYWxpemF0aW9uKCkgY29uc3Q7CisgICAgQ1NTVW5pdFR5cGUgdW5pdEVu
dW0oKSBjb25zdCB7IHJldHVybiBtX3VuaXQ7IH0KIAogcHJpdmF0ZToKLSAgICBDU1NVbml0VmFs
dWUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVuaXQpCi0gICAgICAgIDogbV92YWx1ZSh2
YWx1ZSkKLSAgICAgICAgLCBtX3VuaXQodW5pdCkKLSAgICB7Ci0gICAgfQorICAgIENTU1VuaXRW
YWx1ZShkb3VibGUsIENTU1VuaXRUeXBlKTsKIAogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTVW5pdFZhbHVl
OyB9CiAKICAgICBkb3VibGUgbV92YWx1ZTsKLSAgICBTdHJpbmcgbV91bml0OworICAgIENTU1Vu
aXRUeXBlIG1fdW5pdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwCmluZGV4
IDVkOTEyZDgyNjI4ZjhiYTM0MjJiYzQ5OTgyYWM0ZTFiMTczNGZkYzQuLjUyNGI3ZjcwMWJjOGU3
YWU5ZDM4NjdjYWFlYTIwN2Q4MDQxZDA3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcApAQCAtNDEsOCArNDEsMzQgQEAg
UmVmPENTU01hdGhJbnZlcnQ+IENTU01hdGhJbnZlcnQ6OmNyZWF0ZShDU1NOdW1iZXJpc2gmJiBu
dW1iZXJpc2gpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aEludmVydChXVEZNb3Zl
KG51bWJlcmlzaCkpKTsKIH0KIAorc3RhdGljIENTU051bWVyaWNUeXBlIG5lZ2F0ZWRUeXBlKGNv
bnN0IENTU051bWJlcmlzaCYgbnVtYmVyaXNoKQoreworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNz
cy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3R5cGUtb2YtYS1jc3NtYXRodmFsdWUKKyAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1iZXJpc2gsCisgICAgICAgIFtdIChkb3VibGUpIHsgcmV0
dXJuIENTU051bWVyaWNUeXBlKCk7IH0sCisgICAgICAgIFtdIChjb25zdCBSZWZQdHI8Q1NTTnVt
ZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7CisgICAgICAgICAgICBDU1NOdW1lcmljVHlw
ZSB0eXBlID0gdmFsdWUtPnR5cGUoKTsKKyAgICAgICAgICAgIGF1dG8gbmVnYXRlID0gW10gKGF1
dG8mIG9wdGlvbmFsKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmFsKQorICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCA9ICpvcHRpb25hbCAqIC0xOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIG5lZ2F0ZSh0eXBlLmxlbmd0aCk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5h
bmdsZSk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS50aW1lKTsKKyAgICAgICAgICAgIG5lZ2F0
ZSh0eXBlLmZyZXF1ZW5jeSk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5yZXNvbHV0aW9uKTsK
KyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmZsZXgpOworICAgICAgICAgICAgbmVnYXRlKHR5cGUu
cGVyY2VudCk7CisgICAgICAgICAgICByZXR1cm4gdHlwZTsKKyAgICAgICAgfQorICAgICk7Cit9
CisKIENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNo
KQotICAgIDogbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92
ZShudW1iZXJpc2gpKSkKKyAgICA6IENTU01hdGhWYWx1ZShuZWdhdGVkVHlwZShudW1iZXJpc2gp
KQorICAgICwgbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92
ZShudW1iZXJpc2gpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAKaW5kZXggNGRhNDNjZDkwNzI2ZDQ4MTZhZDZm
YzYxNWYyMTJmZmZiYmY1MDZmNC4uMGFiNWY2NDEwZDM0MTMxMzVkYjRmZTIxN2EzZDBiNzY3YzY5
YjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTmVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhOZWdhdGUuY3BwCkBAIC0zNiwxMyArMzYsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTWF0aE5lZ2F0ZSk7CiAKK3N0YXRpYyBD
U1NOdW1lcmljVHlwZSBjb3B5VHlwZShjb25zdCBDU1NOdW1iZXJpc2gmIG51bWJlcmlzaCkKK3sK
KyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1iZXJpc2gsCisgICAgICAgIFtdIChkb3VibGUp
IHsgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7IH0sCisgICAgICAgIFtdIChjb25zdCBSZWZQdHI8
Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICghdmFsdWUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7CisgICAgICAgICAgICByZXR1cm4g
dmFsdWUtPnR5cGUoKTsKKyAgICAgICAgfQorICAgICk7Cit9CisKIENTU01hdGhOZWdhdGU6OkNT
U01hdGhOZWdhdGUoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQotICAgIDogbV92YWx1ZShDU1NO
dW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSkKKyAgICA6
IENTU01hdGhWYWx1ZShjb3B5VHlwZShudW1iZXJpc2gpKQorICAgICwgbV92YWx1ZShDU1NOdW1l
cmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSkKIHsKIH0KIAog
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVl
KQotICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKKyAgICA6IENTU01hdGhWYWx1ZSh2YWx1
ZS0+dHlwZSgpKQorICAgICwgbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNw
cAppbmRleCBkNzAwZTg5Zjg1NWU2ZDg0NWZmYzIyYzkyNmFiMzZiZTQ4MzEzNDBlLi41OGI2MzAw
NTYyZGYwNGJhMDQ1YWIwZWI3YWYwNDk3MjM3MjMzNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcApAQCAtMjYsMjkg
KzI2LDY2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTTWF0aFByb2R1Y3Qu
aCIKIAotI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgotCiAjaWYgRU5BQkxFKENTU19UWVBF
RF9PTSkKIAorI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bk9yLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTWF0aFByb2R1Y3QpOwog
Ci1DU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmIG51bWJlcmlzaGVzKQotICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUo
V1RGTW92ZShudW1iZXJpc2hlcykpKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5
cGU+IG11bHRpcGx5VHlwZXMoY29uc3QgQ1NTTnVtZXJpY1R5cGUmIGEsIGNvbnN0IENTU051bWVy
aWNUeXBlJiBiKQoreworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3Mt
dHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMKKyAgICBpZiAoYS5w
ZXJjZW50SGludCAmJiBiLnBlcmNlbnRIaW50ICYmICphLnBlcmNlbnRIaW50ICE9ICpiLnBlcmNl
bnRIaW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBhZGQgPSBb
XSAoYXV0byBsZWZ0LCBhdXRvIHJpZ2h0KSAtPiBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB7Cisg
ICAgICAgIGlmICghbGVmdCkKKyAgICAgICAgICAgIHJldHVybiByaWdodDsKKyAgICAgICAgaWYg
KCFyaWdodCkKKyAgICAgICAgICAgIHJldHVybiBsZWZ0OworICAgICAgICByZXR1cm4gKmxlZnQg
KyAqcmlnaHQ7CisgICAgfTsKKyAgICAKKyAgICByZXR1cm4geyB7CisgICAgICAgIGFkZChhLmxl
bmd0aCwgYi5sZW5ndGgpLAorICAgICAgICBhZGQoYS5hbmdsZSwgYi5hbmdsZSksCisgICAgICAg
IGFkZChhLnRpbWUsIGIudGltZSksCisgICAgICAgIGFkZChhLmZyZXF1ZW5jeSwgYi5mcmVxdWVu
Y3kpLAorICAgICAgICBhZGQoYS5yZXNvbHV0aW9uLCBiLnJlc29sdXRpb24pLAorICAgICAgICBh
ZGQoYS5mbGV4LCBiLmZsZXgpLAorICAgICAgICBhZGQoYS5wZXJjZW50LCBiLnBlcmNlbnQpLAor
ICAgICAgICBhLnBlcmNlbnRIaW50ID8gYS5wZXJjZW50SGludCA6IGIucGVyY2VudEhpbnQKKyAg
ICB9IH07Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJvZHVjdD4+IENTU01hdGhQcm9k
dWN0OjpjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiBudW1iZXJpc2hlcykKIHsKKyAg
ICByZXR1cm4gY3JlYXRlKFdURjo6bWFwKFdURk1vdmUobnVtYmVyaXNoZXMpLCByZWN0aWZ5TnVt
YmVyaXNoKSk7CiB9CiAKLUNTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChWZWN0b3I8UmVm
PENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQotICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0Fy
cmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJv
ZHVjdD4+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiB2YWx1ZXMpCiB7CisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTeW50YXhFcnJvciB9OworICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8Q1NTTnVt
ZXJpY1R5cGU+IHR5cGUgPSB2YWx1ZXNbMF0tPnR5cGUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MTsgaSA8IHZhbHVlcy5zaXplKCk7IGkrKykgeworICAgICAgICB0eXBlID0gbXVsdGlwbHlUeXBl
cygqdHlwZSwgdmFsdWVzW2ldLT50eXBlKCkpOworICAgICAgICBpZiAoIXR5cGUpCisgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgfQorCisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFByb2R1Y3QoV1RGTW92ZSh2YWx1ZXMpLCBXVEZNb3ZlKCp0
eXBlKSkpOwogfQogCi1jb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhQcm9kdWN0Ojp2YWx1
ZXMoKSBjb25zdAorQ1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBlKQorICAgIDogQ1NTTWF0
aFZhbHVlKFdURk1vdmUodHlwZSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNy
ZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQogewotICAgIHJldHVybiBtX3ZhbHVlcy5nZXQoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCmluZGV4IDYwYWYwYjc3NTNjOTYzZTVmYTgx
ODg5YWM0NzkyYWI1Yjk1ZWM1ZjQuLjhlZDYwNWYzNTNiYTMzZTg1N2ZiYWQzMGQ3OWU5YTM3MTU0
ZjRlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aFByb2R1Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhQcm9kdWN0LmgKQEAgLTM3LDE1ICszNywxNSBAQCBjbGFzcyBDU1NOdW1lcmljQXJyYXk7
CiBjbGFzcyBDU1NNYXRoUHJvZHVjdCBmaW5hbCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFByb2R1Y3QpOwogcHVibGljOgotICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0
ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChz
dGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsgfQotICAgIGNvbnN0IENTU051bWVyaWNBcnJh
eSYgdmFsdWVzKCkgY29uc3Q7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJv
ZHVjdD4+IGNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+KTsKKyAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4pOworICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZXMuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3Ig
Z2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1
Y3Q7IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhQcm9kdWN0OyB9CiAKLSAgICBDU1NNYXRoUHJv
ZHVjdChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIENTU01hdGhQcm9kdWN0KFZl
Y3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgQ1NTTWF0aFByb2R1Y3QoVmVjdG9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxDU1NOdW1l
cmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKaW5kZXggYTZkOWVkOTFmMjg5ZTJhYTQ4N2E0OThj
OTdiOGY4MDJhN2ViYWIzOC4uNDlhMTE4YzVkYTJmNzAzZjk0MGM1NDg4NmVmY2YyNjYwMTVjZjk5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
U3VtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uY3BwCkBAIC0yNiwyMyArMjYsNjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDU1NNYXRoU3VtLmgiCiAKLSNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIKLQogI2lmIEVO
QUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIKKyNpbmNs
dWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENT
U01hdGhTdW0pOwogCi1DU1NNYXRoU3VtOjpDU1NNYXRoU3VtKEZpeGVkVmVjdG9yPENTU051bWJl
cmlzaD4mJiBudW1iZXJpc2hlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3Jl
YXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVy
aWNUeXBlPiBhZGRUeXBlcyhDU1NOdW1lcmljVHlwZSBhLCBDU1NOdW1lcmljVHlwZSBiKQogewor
ICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nzc251
bWVyaWN2YWx1ZS1hZGQtdHdvLXR5cGVzCisgICAgaWYgKGEucGVyY2VudEhpbnQgJiYgYi5wZXJj
ZW50SGludCAmJiAqYS5wZXJjZW50SGludCAhPSAqYi5wZXJjZW50SGludCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChhLnBlcmNlbnRIaW50KQorICAgICAgICBiLmFw
cGx5UGVyY2VudEhpbnQoKmEucGVyY2VudEhpbnQpOworICAgIGlmIChiLnBlcmNlbnRIaW50KQor
ICAgICAgICBhLmFwcGx5UGVyY2VudEhpbnQoKmIucGVyY2VudEhpbnQpOworCisgICAgaWYgKGEg
PT0gYikKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZShhKSB9OworCisgICAgZm9yIChhdXRvIHR5
cGUgOiBlYWNoQmFzZVR5cGUoKSkgeworICAgICAgICBpZiAodHlwZSA9PSBDU1NOdW1lcmljQmFz
ZVR5cGU6OlBlcmNlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFhLnZh
bHVlRm9yVHlwZSh0eXBlKSAmJiAhYi52YWx1ZUZvclR5cGUodHlwZSkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgYS5hcHBseVBlcmNlbnRIaW50KHR5cGUpOworICAgICAgICBiLmFw
cGx5UGVyY2VudEhpbnQodHlwZSk7CisgICAgICAgIGlmIChhLnZhbHVlRm9yVHlwZSh0eXBlKSAh
PSBiLnZhbHVlRm9yVHlwZSh0eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfQorCisgICAgcmV0dXJuIHsgV1RGTW92ZShhKSB9OworfQorCitFeGNlcHRpb25PcjxS
ZWY8Q1NTTWF0aFN1bT4+IENTU01hdGhTdW06OmNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJp
c2g+IG51bWJlcmlzaGVzKQoreworICAgIHJldHVybiBjcmVhdGUoV1RGOjptYXAoV1RGTW92ZShu
dW1iZXJpc2hlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENT
U01hdGhTdW0+PiBDU1NNYXRoU3VtOjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiB2YWx1ZXMpCit7CisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTeW50YXhFcnJvciB9OworCisgICAgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmlj
VHlwZT4gdHlwZSA9IHZhbHVlc1swXS0+dHlwZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAxOyBp
IDwgdmFsdWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHR5cGUgPSBhZGRUeXBlcygqdHlwZSwg
dmFsdWVzW2ldLT50eXBlKCkpOworICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTTWF0aFN1bShXVEZNb3ZlKHZhbHVlcyksIFdURk1vdmUoKnR5cGUpKSk7CiB9CiAK
LUNTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZh
bHVlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFs
dWVzKSkpCitDU1NNYXRoU3VtOjpDU1NNYXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVl
Pj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBlKQorICAgIDogQ1NTTWF0aFZhbHVlKFdURk1v
dmUodHlwZSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3Zl
KHZhbHVlcykpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFN1bS5oCmluZGV4IGY5MmE2MTQxN2FiZTFjNGQ5ZTgxZjk0OGJiZmExOTk3YjYy
ZTcwMjEuLmQ1MjM3YmJmZTU0ZTRkZjBiNDc2NDIwNWZlYTY0ZDVmY2E2ZmNlYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC0zOCwx
NSArMzgsMTUgQEAgY2xhc3MgQ1NTTnVtZXJpY0FycmF5OwogY2xhc3MgQ1NTTWF0aFN1bSBmaW5h
bCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NT
TWF0aFN1bSk7CiBwdWJsaWM6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGlj
IFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTTWF0aFN1bShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsgfQorICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IGNyZWF0ZShGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+KTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiBjcmVh
dGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+Pik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0Fy
cmF5JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5nZXQoKTsgfQogCiBwcml2YXRl
OgogICAgIENTU01hdGhPcGVyYXRvciBnZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IENTU01hdGhPcGVyYXRvcjo6U3VtOyB9CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NNYXRoU3VtOyB9
CiAKLSAgICBDU1NNYXRoU3VtKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAgQ1NT
TWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOworICAgIENTU01hdGhTdW0o
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxD
U1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVlLmgKaW5kZXggZDI5YWVhMzIxY2ZmZGFhMmJh
NGFlMWFmNTc2MzI5Nzg3Y2JiMzg5Yi4uNTMxYWIzZTczNzNhYzJiMjNlZDIwNDYyNGNkOGZkNTRi
NmEwNGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhWYWx1ZS5oCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ1NTTWF0aFZhbHVlIDogcHVibGljIENTU051bWVyaWNWYWx1ZSB7CiBwdWJsaWM6CisgICAg
Q1NTTWF0aFZhbHVlKENTU051bWVyaWNUeXBlIHR5cGUgPSB7IH0pCisgICAgICAgIDogQ1NTTnVt
ZXJpY1ZhbHVlKFdURk1vdmUodHlwZSkpIHsgfQogICAgIHZpcnR1YWwgQ1NTTWF0aE9wZXJhdG9y
IGdldE9wZXJhdG9yKCkgY29uc3QgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCmluZGV4IDlkZTUxOTAw
OTZiOWI0MTdkNjhmMGZiNWQ1OWJjYTIyZGQwYWQ2NDUuLjQ4MTNjZTAyYTliMmEzNmIyOTMzMWI4
ZmQ5OGNkNmZlYjZjNmNhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVyaWNBcnJheSk7CiAKIFJlZjxDU1NOdW1lcmlj
QXJyYXk+IENTU051bWVyaWNBcnJheTo6Y3JlYXRlKGNvbnN0IEZpeGVkVmVjdG9yPENTU051bWJl
cmlzaD4mIG51bWJlcmlzaGVzKQogeworICAgIC8vIEZJWE1FOiBTaW1wbGlmeSB0aGlzLgogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENTU051bWVyaWNBcnJheShXVEY6Om1hcChudW1iZXJpc2hl
cywgW10oYXV0byYgbnVtYmVyaXNoKSAtPiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7CiAgICAgICAg
IHJldHVybiBDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goY29uc3RfY2FzdDxDU1NO
dW1iZXJpc2gmJj4obnVtYmVyaXNoKSk7CiAgICAgfSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNCYXNlVHlwZS5oCmluZGV4IGQw
NTU3NzJlNGE5YWYxNWNjMjY2NmNhZWMwYjI0ZjA4ZmI2OTNlMzkuLjcwNWZlYjAxZjYwNDYyNGJm
NDUyZDI3NjVlY2M0Yzk1YTkzNTRjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQmFzZVR5cGUuaApAQCAtMjcsOSArMjcsMTEg
QEAKIAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRlIDxhcnJheT4KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlwZTogdWludDhf
dCB7CitlbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlwZSA6IHVpbnQ4X3QgewogICAgIExlbmd0
aCwKICAgICBBbmdsZSwKICAgICBUaW1lLApAQCAtMzksNiArNDEsNDAgQEAgZW51bSBjbGFzcyBD
U1NOdW1lcmljQmFzZVR5cGU6IHVpbnQ4X3QgewogICAgIFBlcmNlbnQsCiB9OwogCitjb25zdGV4
cHIgc3RkOjphcnJheTxDU1NOdW1lcmljQmFzZVR5cGUsIDc+IGVhY2hCYXNlVHlwZSgpCit7Cisg
ICAgcmV0dXJuIHsKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpMZW5ndGgsCisgICAgICAg
IENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGUsCisgICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6
VGltZSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGcmVxdWVuY3ksCisgICAgICAgIENT
U051bWVyaWNCYXNlVHlwZTo6UmVzb2x1dGlvbiwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBl
OjpGbGV4LAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OlBlcmNlbnQKKyAgICB9OworfQor
Citjb25zdGV4cHIgY29uc3QgY2hhciogZGVidWdTdHJpbmcoQ1NTTnVtZXJpY0Jhc2VUeXBlIHR5
cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6
Okxlbmd0aDoKKyAgICAgICAgcmV0dXJuICJsZW5ndGgiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jh
c2VUeXBlOjpBbmdsZToKKyAgICAgICAgcmV0dXJuICJhbmdsZSI7CisgICAgY2FzZSBDU1NOdW1l
cmljQmFzZVR5cGU6OlRpbWU6CisgICAgICAgIHJldHVybiAidGltZSI7CisgICAgY2FzZSBDU1NO
dW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeToKKyAgICAgICAgcmV0dXJuICJmcmVxdWVuY3kiOwor
ICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpSZXNvbHV0aW9uOgorICAgICAgICByZXR1cm4g
InJlc29sdXRpb24iOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGbGV4OgorICAgICAg
ICByZXR1cm4gImZsZXgiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpQZXJjZW50Ogor
ICAgICAgICByZXR1cm4gInBlcmNlbnQiOworICAgIH0KKyAgICByZXR1cm4gImludmFsaWQiOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oCmluZGV4IGNmN2VhNmRh
YTNmNGQ1NGYxMTQ1OWIyMjRkMDI3ODMwODkzYzkxN2IuLjRlY2U5ODBhNjFkNThiZmI1MzE1Njlk
YTc2YzA0NTRiZjQwYTFiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU051bWVyaWNUeXBlLmgKQEAgLTI5LDE4ICsyOSw3OCBAQAogCiAjaW5jbHVk
ZSAiQ1NTTnVtZXJpY0Jhc2VUeXBlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9t
LWNzc251bWVyaWN2YWx1ZS10eXBlCiBzdHJ1Y3QgQ1NTTnVtZXJpY1R5cGUgewotICAgIGxvbmcg
bGVuZ3RoIHsgMCB9OwotICAgIGxvbmcgYW5nbGUgeyAwIH07Ci0gICAgbG9uZyB0aW1lIHsgMCB9
OwotICAgIGxvbmcgZnJlcXVlbmN5IHsgMCB9OwotICAgIGxvbmcgcmVzb2x1dGlvbiB7IDAgfTsK
LSAgICBsb25nIGZsZXggeyAwIH07Ci0gICAgbG9uZyBwZXJjZW50IHsgMCB9OworICAgIHN0ZDo6
b3B0aW9uYWw8bG9uZz4gbGVuZ3RoOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gYW5nbGU7Cisg
ICAgc3RkOjpvcHRpb25hbDxsb25nPiB0aW1lOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gZnJl
cXVlbmN5OworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gcmVzb2x1dGlvbjsKKyAgICBzdGQ6Om9w
dGlvbmFsPGxvbmc+IGZsZXg7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBwZXJjZW50OwogICAg
IHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY0Jhc2VUeXBlPiBwZXJjZW50SGludDsKKworICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBDU1NOdW1lcmljVHlwZSYgb3RoZXIpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbGVuZ3RoID09IG90aGVyLmxlbmd0aAorICAgICAgICAgICAgJiYgYW5n
bGUgPT0gb3RoZXIuYW5nbGUKKyAgICAgICAgICAgICYmIHRpbWUgPT0gb3RoZXIudGltZQorICAg
ICAgICAgICAgJiYgZnJlcXVlbmN5ID09IG90aGVyLmZyZXF1ZW5jeQorICAgICAgICAgICAgJiYg
cmVzb2x1dGlvbiA9PSBvdGhlci5yZXNvbHV0aW9uCisgICAgICAgICAgICAmJiBmbGV4ID09IG90
aGVyLmZsZXgKKyAgICAgICAgICAgICYmIHBlcmNlbnQgPT0gb3RoZXIucGVyY2VudAorICAgICAg
ICAgICAgJiYgcGVyY2VudEhpbnQgPT0gb3RoZXIucGVyY2VudEhpbnQ7CisgICAgfQorCisgICAg
c3RkOjpvcHRpb25hbDxsb25nPiYgdmFsdWVGb3JUeXBlKENTU051bWVyaWNCYXNlVHlwZSB0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJp
Y0Jhc2VUeXBlOjpMZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICBj
YXNlIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGU6CisgICAgICAgICAgICByZXR1cm4gYW5nbGU7
CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpUaW1lOgorICAgICAgICAgICAgcmV0
dXJuIHRpbWU7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGcmVxdWVuY3k6Cisg
ICAgICAgICAgICByZXR1cm4gZnJlcXVlbmN5OworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNl
VHlwZTo6UmVzb2x1dGlvbjoKKyAgICAgICAgICAgIHJldHVybiByZXNvbHV0aW9uOworICAgICAg
ICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6RmxleDoKKyAgICAgICAgICAgIHJldHVybiBmbGV4
OworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6UGVyY2VudDoKKyAgICAgICAgICAg
IHJldHVybiBwZXJjZW50OworICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCisgICAgdm9pZCBhcHBseVBlcmNlbnRIaW50KENTU051bWVyaWNC
YXNlVHlwZSBoaW50KQorICAgIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRp
bmkub3JnL2Nzcy10eXBlZC1vbS8jYXBwbHktdGhlLXBlcmNlbnQtaGludAorICAgICAgICBhdXRv
JiBvcHRpb25hbCA9IHZhbHVlRm9yVHlwZShoaW50KTsKKyAgICAgICAgaWYgKCFvcHRpb25hbCkK
KyAgICAgICAgICAgIG9wdGlvbmFsID0gMDsKKyAgICAgICAgaWYgKHBlcmNlbnQpCisgICAgICAg
ICAgICAqb3B0aW9uYWwgKz0gKnN0ZDo6ZXhjaGFuZ2UocGVyY2VudCwgMCk7CisgICAgICAgIHBl
cmNlbnRIaW50ID0gaGludDsKKyAgICB9CisKKyAgICBTdHJpbmcgZGVidWdTdHJpbmcoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoInsiLAorICAgICAgICAgICAgbGVu
Z3RoID8gbWFrZVN0cmluZygiIGxlbmd0aDoiLCAqbGVuZ3RoKSA6IFN0cmluZygpLAorICAgICAg
ICAgICAgYW5nbGUgPyBtYWtlU3RyaW5nKCIgYW5nbGU6IiwgKmFuZ2xlKSA6IFN0cmluZygpLAor
ICAgICAgICAgICAgdGltZSA/IG1ha2VTdHJpbmcoIiB0aW1lOiIsICp0aW1lKSA6IFN0cmluZygp
LAorICAgICAgICAgICAgZnJlcXVlbmN5ID8gbWFrZVN0cmluZygiIGZyZXF1ZW5jeToiLCAqZnJl
cXVlbmN5KSA6IFN0cmluZygpLAorICAgICAgICAgICAgcmVzb2x1dGlvbiA/IG1ha2VTdHJpbmco
IiByZXNvbHV0aW9uOiIsICpyZXNvbHV0aW9uKSA6IFN0cmluZygpLAorICAgICAgICAgICAgZmxl
eCA/IG1ha2VTdHJpbmcoIiBmbGV4OiIsICpmbGV4KSA6IFN0cmluZygpLAorICAgICAgICAgICAg
cGVyY2VudCA/IG1ha2VTdHJpbmcoIiBwZXJjZW50OiIsICpwZXJjZW50KSA6IFN0cmluZygpLAor
ICAgICAgICAgICAgcGVyY2VudEhpbnQgPyBtYWtlU3RyaW5nKCIgcGVyY2VudEhpbnQ6IiwgV2Vi
Q29yZTo6ZGVidWdTdHJpbmcoKnBlcmNlbnRIaW50KSkgOiBTdHJpbmcoKSwKKyAgICAgICAgIiB9
Iik7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbAppbmRleCBi
ZTkxNGEzYmNkMTc2ZGM1NzhiMjEwMWRkMGVhZTI1ZWQ5Yzk3N2I5Li5mOGRhNDc5MWI2YWJlODE2
MjBlNTlkY2Q0MzM3ZWYwY2Q2NmZiODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbApAQCAtMjMsNiArMjMsOCBAQAog
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogKi8KIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nz
cy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCisKIFsKICAgICBDb25kaXRpb25h
bD1DU1NfVFlQRURfT00sCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCAxZDVhMWMxOTY5NTIwYTgwZmU2Y2U2ZmFiNjc2MjNlOWE2NWRl
NTM4Li5mY2I3ZTkyNmRhZjA0MjIwZTNjM2E4OTYyNzM5NmM0NDVhNjRkZDg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMy0yOSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCB1bml0cyBmb3IgQ1NTIHR5cGVkIG9tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzg1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0
aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2NyZWF0ZS1hLXR5
cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nz
c01hdGhJbnZlcnQtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0
cy9jc3NNYXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9i
amVjdHMvY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251
bWVyaWMtb2JqZWN0cy9jc3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVk
LW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4
cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGZvY3VzZWQgYW5kIHZpc2libGUgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudCBzdGF0ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNl
cmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5
bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CmluZGV4IDhhNWVmMWVjY2E4ZDY5OWQzNjEwNTIyOWU5M2M5YmQ4MTQ5YTE2NzcuLjg3MzhlMTU5
M2FkYTVhZDBjOThkNGMwMDRjYTRhNWMyZmQ5Y2JiYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0VmFsdWUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBDU1NVbml0VmFsdWUgd2l0aCBsZW5n
dGggdW5pdCBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCi1GQUlMIENTU1VuaXRWYWx1
ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29y
cmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIzLjE0JSIgYnV0IGdvdCAiM3BlcmNlbnQi
Ci1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJlciIgY29uc3RydWN0ZWQgZnJvbSBJ
REwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMuMTQiIGJ1
dCBnb3QgIjNudW1iZXIiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIGludGVnZXIgdmFsdWVzIGNv
bnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICIzIiBidXQgZ290ICIzbnVtYmVyIgotRkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBE
T01TdHJpbmcgbW9kaWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMuMTRweCIgYnV0IGdvdCAiM3B4IgotRkFJTCBDU1NL
ZXl3b3JkVmFsdWUgZnJvbSBDU1NPTSBtb2RpZmllZCBieSAidmFsdWUiIHNldHRlciBzZXJpYWxp
emVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBidXQgZ290ICIz
cHgiCitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIGxlbmd0aCB1bml0IGNvbnN0cnVjdGVkIGZyb20g
SURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBl
cmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENT
U1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJlciIgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFs
aXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggaW50ZWdlciB2YWx1ZXMgY29u
c3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTS2V5d29yZFZh
bHVlIGZyb20gRE9NU3RyaW5nIG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5CitQQVNTIENTU0tleXdvcmRWYWx1ZSBmcm9tIENTU09NIG1vZGlmaWVkIGJ5ICJ2
YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3Rz
L2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCA0YmUyN2JmMmJiOThh
MTViZmZhNGQ4OTUwMDhkYjY5MzU0YTFhMWFiLi5lY2M5NTMzZjAwZjFhZTJlMjRlZjQ3Y2M2ZDE5
NWQ5ZGU5OGM4N2Q3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVy
aWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlMIEFkZGluZyB0d28gdHlw
ZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVyY2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9y
IGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFN1bShhLCBiKSIg
ZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgbm9uemVy
byB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVk
IDEgYnV0IGdvdCAwCi1GQUlMIEFkZGluZyB0d28gdHlwZXMgd2l0aCBlbXB0eSBtYXBzIHdpdGgg
cmV0dXJucyBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQWRkaW5nIGEgdHlwZSB3aXRo
IHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxl
bmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggcGVyY2Vu
dCAyIHJldHVybnMgdHlwZSB3aXRoIHBlcmNlbnQgaGludCB0aHJvd3MgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFN1bShhLCBiKSIgZGlkIG5v
dCB0aHJvdwotRkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggYSBwZXJjZW50IGhpbnQgcmV0dXJucyBh
IHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgcGVyY2Vu
dCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludCBhc3NlcnRfZXF1YWxz
OiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRo
IGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBlRXJyb3IKK1BBU1Mg
QWRkaW5nIHR3byB0eXBlcyB3aXRoIHRoZSBzYW1lIG5vbnplcm8gdmFsdWVzIHJldHVybnMgc2Ft
ZSB0eXBlCitQQVNTIEFkZGluZyB0d28gdHlwZXMgd2l0aCBlbXB0eSBtYXBzIHdpdGggcmV0dXJu
cyBlbXB0eSBtYXAKK1BBU1MgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBl
IHdpdGggcGVyY2VudCBoaW50CitQQVNTIEFkZGluZyBhIHR5cGUgd2l0aCBwZXJjZW50IDIgcmV0
dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50IHRocm93cyBUeXBlRXJyb3IKK1BBU1MgQWRkaW5n
IGEgdHlwZSB3aXRoIGEgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNl
bnQgaGludAorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgcGVyY2VudCBoaW50
IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0
cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggNTM2ZWE1MmU1M2IwY2Ni
OGNlMjc4MDY3MDMwNmEzNDdhZjE3MzkzZS4uZmQzMGE1N2UyYTU1ZjAyNmQ3NjVhMWNkMjYxNTgz
MDQwZmFkZThmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmlj
LW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtNjAsNiArNjAsNiBAQCBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1h
eCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhCiBQQVNT
IENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBuZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMK
IFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZh
bHVlcwogUEFTUyBDYW4gbm90IGRpdmlkZSB3aXRoIENTU1VuaXRWYWx1ZSB3aGljaCBoYXMgemVy
byB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUKLUZBSUwgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQg
dGhyb3cgVHlwZUVycm9yIHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJv
d3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVtYmVyKDMpLmFkZChDU1MucHgoMTApICxDU1Mu
bnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Ro
cm93c19qczogZnVuY3Rpb24gIigpID0+IENTUy5udW1iZXIoMykuc3ViKENTUy5weCgxMCkgLENT
Uy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93CitQQVNTIENTU051bWVyaWNWYWx1ZS5hZGQgc2hv
dWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LgorUEFTUyBD
U1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMg
YXJlIGRpZmZlcmVudC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDUyODQwNzcxYzkwYTM5ZTZiNjQ3MWYxYzk2MWI4OThh
MTYzNzQwODQuLjBhMjNkMzdhMjMwMzllNjU1Y2U1NzhiYzMwZjRlNTY4OTNjYTg5MjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2NyZWF0ZS1h
LXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUtYS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSAibnVtYmVyIiBy
ZXR1cm5zIHt9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tICJwZXJj
ZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3Rl
ZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5n
IGEgdHlwZSBmcm9tIDxsZW5ndGg+IHJldHVybnMgeyBsZW5ndGg6IDEgfSBhc3NlcnRfZXF1YWxz
OiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20g
PGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0
ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGlu
ZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJucyB7IHRpbWU6IDEgfSBhc3NlcnRfZXF1YWxzOiBs
ZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAot
RkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5PiByZXR1cm5zIHsgZnJlcXVlbmN5
OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5l
ZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPHJlc29sdXRp
b24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVj
dGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRp
bmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVybnMgeyBmbGV4OiAxIH0gYXNzZXJ0X2VxdWFsczog
bGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAK
K1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gIm51bWJlciIgcmV0dXJucyB7fQorUEFTUyBDcmVh
dGluZyBhIHR5cGUgZnJvbSAicGVyY2VudCIgcmV0dXJucyB7IHBlcmNlbnQ6IDEgfQorUEFTUyBD
cmVhdGluZyBhIHR5cGUgZnJvbSA8bGVuZ3RoPiByZXR1cm5zIHsgbGVuZ3RoOiAxIH0KK1BBU1Mg
Q3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEgfQorUEFTUyBD
cmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJucyB7IHRpbWU6IDEgfQorUEFTUyBDcmVh
dGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5PiByZXR1cm5zIHsgZnJlcXVlbmN5OiAxIH0KK1BB
U1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPHJlc29sdXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9u
OiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVybnMgeyBmbGV4OiAx
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVj
dHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3RlZC50eHQKaW5k
ZXggNzlkZjQ4NmNjZTgxY2ZkZTQzYWVlYTMzNmI5YmNkZjMxMjI3ZmU1Zi4uM2E5YjA3MGE5ZTE2
OWQ1MmU2ZjRhYWM4NzhhNjgyZDAzMWM5NmM0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRo
SW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIEludmVydGlu
ZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVh
bHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVy
KSAwCi1GQUlMIEludmVydGluZyBhIHR5cGUgbmVnYXRlcyBhbGwgaXRzIGV4cG9uZW50cyBhc3Nl
cnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgLTEgYnV0IGdvdCAwCi1GQUlMIEludmVydGluZyBh
biBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhlIG9yaWdpbmFsIHR5cGUgYXNzZXJ0X2VxdWFsczog
bGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIEludmVydGluZyBhIHR5cGUgd2l0aCBl
bXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwCitQQVNTIEludmVydGluZyBhIHR5cGUgbmVn
YXRlcyBhbGwgaXRzIGV4cG9uZW50cworUEFTUyBJbnZlcnRpbmcgYW4gaW52ZXJ0ZWQgdHlwZSBy
ZXR1cm5zIHRoZSBvcmlnaW5hbCB0eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoTmVnYXRl
LXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDExNjNkMGYxZjY4ODA4MTk2YjQ4MzFlZjE5ZjRmMjJh
YzE2YjNlYjkuLmQzNDlhN2UyZDFmNGZmYmNkZGJkYWJlMTY3ODlkYzMyODVmYTZkYzcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhO
ZWdhdGUtdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKIAotRkFJTCBOZWdhdGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUg
ZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIE5lZ2F0aW5nIGEgdHlwZSByZXR1cm5zIHRo
ZSBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIE5lZ2F0aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAK
K1BBU1MgTmVnYXRpbmcgYSB0eXBlIHJldHVybnMgdGhlIHNhbWUgdHlwZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IGYzNzdh
NzIyMDIxYmViYWIyMDg2YWRmYjcyNWEwOTQ0YmE5Zjc5OWUuLjRiZThlNzFkN2M2MDU0MWRhZDc5
NTk2NjlmOGE0MmQ2NjRlMzRlYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlMIENvbnN0cnVj
dGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3Ig
YXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiBuZXcgc3ViY2xhc3MoKSIgZGlkIG5v
dCB0aHJvdworUEFTUyBDb25zdHJ1Y3RpbmcgYSBDU1NNYXRoU3VtIHdpdGggbm8gYXJndW1lbnRz
IHRocm93cyBhIFN5bnRheEVycm9yCiBQQVNTIENTU01hdGhTdW0gY2FuIGJlIGNvbnN0cnVjdGVk
IGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoU3VtIGNhbiBi
ZSBjb25zdHJ1Y3RlZCBmcm9tIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFT
UyBDU1NNYXRoU3VtLm9wZXJhdG9yIGlzIHJlYWRvbmx5Ci1GQUlMIENvbnN0cnVjdGluZyBhIENT
U01hdGhQcm9kdWN0IHdpdGggbm8gYXJndW1lbnRzIHRocm93cyBhIFN5bnRheEVycm9yIGFzc2Vy
dF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gbmV3IHN1YmNsYXNzKCkiIGRpZCBub3QgdGhy
b3cKK1BBU1MgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBubyBhcmd1bWVudHMg
dGhyb3dzIGEgU3ludGF4RXJyb3IKIFBBU1MgQ1NTTWF0aFByb2R1Y3QgY2FuIGJlIGNvbnN0cnVj
dGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoUHJvZHVj
dCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NVbml0VmFs
dWUKIFBBU1MgQ1NTTWF0aFByb2R1Y3Qub3BlcmF0b3IgaXMgcmVhZG9ubHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBl
ZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9j
c3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDY1YjdkODQ2YzNmYzc0MjlhM2FiZTMyMWE4
ZjQ2NmY5Mzg4ZmU5ZjcuLjNhYTJlYzhjNWNiNTZlMjA3MmMzMTA4Y2VlMzllODE2MTE4ZTY2NjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nz
c1VuaXRWYWx1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAK
IAotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5pdFZhbHVlIHdpdGggYW4gdW5rbm93biB1bml0IHRo
cm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IENT
U1VuaXRWYWx1ZSgwLCAnbGVtb24nKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBDb25zdHJ1Y3Rpbmcg
Q1NTVW5pdFZhbHVlIHdpdGggYSBlbXB0eSBzdHJpbmcgdW5pdCB0aHJvd3MgYSBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IG5ldyBDU1NVbml0VmFsdWUoMCwgJycp
IiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBhbiB1
bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yCitQQVNTIENvbnN0cnVjdGluZyBDU1NVbml0
VmFsdWUgd2l0aCBhIGVtcHR5IHN0cmluZyB1bml0IHRocm93cyBhIFR5cGVFcnJvcgogUEFTUyBD
U1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbnVtYmVyCiBQQVNTIENTU1VuaXRW
YWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBwZXJjZW50CiBQQVNTIENTU1VuaXRWYWx1ZSBj
YW4gYmUgY29uc3RydWN0ZWQgd2l0aCBlbQpAQCAtMTgsNyArMTgsNyBAQCBQQVNTIENTU1VuaXRW
YWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCB2bWluCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4g
YmUgY29uc3RydWN0ZWQgd2l0aCB2bWF4CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCBjbQogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgg
bW0KLUZBSUwgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIFEgYXNzZXJ0X2Vx
dWFsczogdW5pdCBpcyBzYW1lIGFzIGdpdmVuIGJ5IGNvbnN0cnVjdG9yIGV4cGVjdGVkICJxIiBi
dXQgZ290ICJRIgorUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUQog
UEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggaW4KIFBBU1MgQ1NTVW5p
dFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHB0CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4g
YmUgY29uc3RydWN0ZWQgd2l0aCBwYwpAQCAtMjksOCArMjksOCBAQCBQQVNTIENTU1VuaXRWYWx1
ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCByYWQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBj
b25zdHJ1Y3RlZCB3aXRoIHR1cm4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3Rl
ZCB3aXRoIHMKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIG1zCi1G
QUlMIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBIeiBhc3NlcnRfZXF1YWxz
OiB1bml0IGlzIHNhbWUgYXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgImh6IiBidXQg
Z290ICJIeiIKLUZBSUwgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIeiBh
c3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUgYXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0
ZWQgImtoeiIgYnV0IGdvdCAia0h6IgorUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVj
dGVkIHdpdGggSHoKK1BBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtI
egogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggZHBpCiBQQVNTIENT
U1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBkcGNtCiBQQVNTIENTU1VuaXRWYWx1
ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBkcHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdv
LXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKaW5kZXggOGE4Yjk5NzhiNDIzODlhZDBiZDYwN2M0NzEzNjU5ZmRm
ZTc1ZjVjMS4uYmI5OTNiNmE0ZWFmZDkyMjc1ZmQ0ZTQ0NjM0ODJkOTc0YTUxZGNlZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJp
Y3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc251bWVyaWN2YWx1ZS1t
dWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAK
IAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVy
Y2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIo
KSA9PiBuZXcgQ1NTTWF0aFByb2R1Y3QoYSwgYikiIGRpZCBub3QgdGhyb3cKLUZBSUwgTXVsdGlw
bHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2Vy
dF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0
d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgYmFzZSB0eXBlcyBhZGRzIGV4cG9uZW50cyBhc3NlcnRf
ZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgTXVsdGlwbHlpbmcgdHdv
IHR5cGVzIHJlc3BlY3RzIHRoZSBzaWduIG9mIHRoZSBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczog
bGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRo
IG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAx
IGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyBhIHR5cGUgd2l0aCBwZXJjZW50IGhpbnQgYXBw
bGllcyB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1
dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGlu
dCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVk
IDIgYnV0IGdvdCAwCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBu
b24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBlRXJyb3IKK1BBU1MgTXVsdGlwbHlpbmcg
dHdvIHR5cGVzIHdpdGggc2FtZSBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRp
cGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRz
CitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyByZXNwZWN0cyB0aGUgc2lnbiBvZiB0aGUgZXhw
b25lbnRzCitQQVNTIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5v
LW9wCitQQVNTIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRo
ZSBwZXJjZW50IGhpbnQKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBwZXJj
ZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2VudCBoaW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CmluZGV4IGFjMmUwODA2ZmVjM2FkN2VhOTEyZmU2ZmU4NzlkNWEwN2Yy
ZGQzYzMuLjYzMDgwY2Q5OTVmYTRiN2E3ZDk0OGFmN2M4NzhkZTQzMmQwMTQ3ZGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9i
amVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMTMsNSArMTMsNSBAQCBGQUlMIENv
bnZlcnRpbmcgYSBDU1NNYXRoTWF4IHRvIGEgc2luZ2xlIHVuaXQgZmluZHMgdGhlIG1heCB2YWx1
ZSBhc3NlcnRfYXBwcm94XwogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aE1heCB0byBhIHNpbmds
ZSB1bml0IHdpdGggZGlmZmVyZW50IHVuaXRzIHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IENTU01hdGhNYXgoQ1NTLnB4KDIpLCBDU1Mucygz
KSkudG8oJ3B4JykiIGRpZCBub3QgdGhyb3cKIEZBSUwgQ29udmVydGluZyBhIENTU01hdGhOZWdh
dGUgdG8gYSBzaW5nbGUgdW5pdCBuZWdhdGVzIGl0cyB2YWx1ZSBhc3NlcnRfYXBwcm94X2VxdWFs
czogZXhwZWN0ZWQgLTEgKy8tIDAuMDAwMDAxIGJ1dCBnb3QgMQogRkFJTCBDb252ZXJ0aW5nIGEg
Q1NTTWF0aEludmVydCB0byBhIHNpbmdsZSB1bml0IGludmVydHMgaXRzIHZhbHVlIGFuZCB1bml0
cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgMiArLy0gMC4wMDAwMDEgYnV0IGdvdCAx
Ci1GQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBh
c3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgMzUwMCArLy0gMC4wMDAwMDEgYnV0IGdvdCAx
CitGQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBU
eXBlIGVycm9yCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456093</attachid>
            <date>2022-03-29 22:26:30 -0700</date>
            <delta_ts>2022-03-30 08:48:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220329222629.patch</filename>
            <type>text/plain</type>
            <size>63594</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNGIyMTJjODg2NTdlNDg3MmYxYTE4MTVjYzM0NWVi
NDk5OTlhNTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgdHlwZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBvZmYgYnkgZGVmYXVsdCBhbmQgdGhp
cyBwYXJ0IGlzIGNvdmVyZWQgYnkgV1BUIHRlc3RzLgorCisgICAgICAgICogY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnN1Yik6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVmFsdWU6OnRvU3VtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpDU1NOdW1lcmljVmFsdWUpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpudW1lcmljVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVuaXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjp1bml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVW5pdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjpD
U1NVbml0VmFsdWUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuZWdhdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoSW52ZXJ0OjpD
U1NNYXRoSW52ZXJ0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptdWx0aXBseVR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhQcm9kdWN0Ojp2YWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU01hdGhTdW06OkNTU01hdGhTdW0pOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoVmFsdWU6OkNTU01hdGhWYWx1ZSk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjplYWNoQmFz
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWdTdHJpbmcpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6dmFsdWVGb3JUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNUeXBlOjphcHBseVBlcmNlbnRIaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNUeXBlOjpkZWJ1Z1N0cmluZyBjb25zdCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsOgor
CiAyMDIyLTAzLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBQR08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCAx
YzkwYzc2ZWM1MGFkMjcwZDdkNDkzMTdhNjIxYTU0YzBkOTBkZTNmLi5kYjdhZGY2YjNiNzM2YmE3
Njg2ZmM3MGY3MThmNWExMGM3NTNjNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlclRva2VuLmNwcApAQCAtMzI4LDcgKzMyOCw3IEBAIENTU1VuaXRUeXBlIGNzc1By
aW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHVuc2ln
bmVkIGxlCiAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVU5LTk9XTjsKIH0KIAotc3RhdGlj
IENTU1VuaXRUeXBlIHN0cmluZ1RvVW5pdFR5cGUoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQorQ1NT
VW5pdFR5cGUgQ1NTUGFyc2VyVG9rZW46OnN0cmluZ1RvVW5pdFR5cGUoU3RyaW5nVmlldyBzdHJp
bmdWaWV3KQogewogICAgIGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQogICAgICAgICByZXR1cm4g
Y3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBz
dHJpbmdWaWV3Lmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyVG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
VG9rZW4uaAppbmRleCA4NzRiNDYzNzdkMDcyYWI3MGMxMjEyM2ViODBlOTZiNTc0YjM3NDY5Li5i
YTYyNzY5ZmM4NjJlNzlmYmE4MmIwYzBlODAzNzczY2Y5ZDMzMmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5oCkBAIC0xMDUsNiArMTA1LDggQEAgcHVibGlj
OgogCiAgICAgQ1NTUGFyc2VyVG9rZW4oSGFzaFRva2VuVHlwZSwgU3RyaW5nVmlldyk7CiAKKyAg
ICBzdGF0aWMgQ1NTVW5pdFR5cGUgc3RyaW5nVG9Vbml0VHlwZShTdHJpbmdWaWV3KTsKKyAgICAK
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyVG9rZW4mIG90aGVyKSBjb25zdDsK
ICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ1NTUGFyc2VyVG9rZW4mIG90aGVyKSBjb25zdCB7
IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRleCAzNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3
MjEzM2QxNTYzYmIyMGYwLi5jNDBlZGJhMDcyZDM0NzEwZDdhYzZiNzEwYTVjZTM3N2RmNjM1OTAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgK
QEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9yeSBmaW5hbCA6IHB1Ymxp
YyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgogICAgIGV4cGxpY2l0IENT
U051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAibnVtYmVyIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJwZXJjZW50Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5p
dFR5cGU6OkNTU19OVU1CRVIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBlcmNl
bnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NT
VW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFKTsgfQogCiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZW0iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJleCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicmVtIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidnciX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB2Yihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidmIiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiX3MpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiaW4iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAicHgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJjcWkiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGNxYihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3FiIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1heCJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfRVhTKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX0NIUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
aWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NT
VW5pdFR5cGU6OkNTU19JQyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRU
eXBlOjpDU1NfUkVNUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19MSFMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NT
X1JMSFMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVlcp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVkgpOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVkkpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVkIpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19WTUlOKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVk1BWCk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DTSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgQ1NTVW5pdFR5cGU6OkNTU19NTSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NV
bml0VHlwZTo6Q1NTX1EpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfSU4pOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
UFQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUEMpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUFgpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NRVyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FIKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUUkpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NRQik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUU1JTik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWCk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRlZyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFk
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQi
X3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInR1cm4iX3MpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RFRyk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0dSQUQpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1JBRCk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1RVUk4pOyB9CiAKIAogICAgIC8vIDx0aW1lPgot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJzIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibXMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX01TKTsg
fQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBo
eihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaHoi
X3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAia2h6Il9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0haKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19LSFopOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0
aW9uPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwaSJfcyk7IH0KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiZHBweCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfRFBJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNtKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
RFBDTSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQ
UFgpOyB9CiAKIAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBm
cihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIi
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfRlIpOyB9
CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U051bWVyaWNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmlj
VmFsdWUuY3BwCmluZGV4IGVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5NWE0OWI3YjBjMDM2NjZlZmEu
LmZhNDMxZGMyZDk4NmJhM2UyYjRjNzAwZDI2NjM1ZjRiMTRlMWU1OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcApAQCAtNTYsNyArNTYsNyBA
QCBzdGF0aWMgUmVmPENTU051bWVyaWNWYWx1ZT4gbmVnYXRlKFJlZjxDU1NOdW1lcmljVmFsdWU+
JiYgdmFsdWUpCiAgICAgaWYgKGF1dG8qIG1hdGhOZWdhdGUgPSBkeW5hbWljRG93bmNhc3Q8Q1NT
TWF0aE5lZ2F0ZT4odmFsdWUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gbWF0aE5lZ2F0ZS0+dmFs
dWUoKTsKICAgICBpZiAoYXV0byogdW5pdFZhbHVlID0gZHluYW1pY0Rvd25jYXN0PENTU1VuaXRW
YWx1ZT4odmFsdWUuZ2V0KCkpKQotICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
LXVuaXRWYWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0KCkpOworICAgICAgICByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUoLXVuaXRWYWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0
RW51bSgpKTsKICAgICByZXR1cm4gQ1NTTWF0aE5lZ2F0ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUp
KTsKIH0KIApAQCAtNjcsMTEgKzY3LDEwIEBAIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gaW52ZXJ0KFJlZjxDU1NOdW1lcmljVmFsdWU+JiYgdmFsdWUpCiAgICAgICAg
IHJldHVybiBSZWYgeyBtYXRoSW52ZXJ0LT52YWx1ZSgpIH07CiAKICAgICBpZiAoYXV0byogdW5p
dFZhbHVlID0gZHluYW1pY0Rvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiB1bml0cyBzaG91bGQgYmUgZWl0aGVyIEF0b21pY1N0cmluZ3Mgb3Ig
Q1NTVW5pdFR5cGUgZW51bWVyYXRpb24gdmFsdWVzLgotICAgICAgICBpZiAodW5pdFZhbHVlLT51
bml0KCkgPT0gIm51bWJlciIpIHsKKyAgICAgICAgaWYgKHVuaXRWYWx1ZS0+dW5pdEVudW0oKSA9
PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikgewogICAgICAgICAgICAgaWYgKHVuaXRWYWx1ZS0+
dmFsdWUoKSA9PSAwLjAgfHwgdW5pdFZhbHVlLT52YWx1ZSgpID09IC0wLjApCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVy
biBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCAvIHVuaXRW
YWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0KCkpIH07CisgICAgICAgICAgICByZXR1cm4g
UmVmPENTU051bWVyaWNWYWx1ZT4geyBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAgLyB1bml0VmFs
dWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5pdEVudW0oKSkgfTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtODMsMTEgKzgyLDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiBvcGVy
YXRpb25PblZhbHVlc09mU2FtZVVuaXQoVCYmIG9wZXJhdGlvbiwgY29uc3QKIHsKICAgICBib29s
IGFsbFZhbHVlc0hhdmVTYW1lVW5pdCA9IHZhbHVlcy5zaXplKCkgJiYgV1RGOjphbGxPZih2YWx1
ZXMsIFsmXSAoY29uc3QgUmVmPENTU051bWVyaWNWYWx1ZT4mIHZhbHVlKSB7CiAgICAgICAgIGF1
dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgp
KTsKLSAgICAgICAgcmV0dXJuIHVuaXRWYWx1ZSA/IHVuaXRWYWx1ZS0+dW5pdCgpID09IGRvd25j
YXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWzBdLmdldCgpKS51bml0KCkgOiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIHVuaXRWYWx1ZSA/IHVuaXRWYWx1ZS0+dW5pdEVudW0oKSA9PSBkb3duY2FzdDxD
U1NVbml0VmFsdWU+KHZhbHVlc1swXS5nZXQoKSkudW5pdEVudW0oKSA6IGZhbHNlOwogICAgIH0p
OwogICAgIGlmIChhbGxWYWx1ZXNIYXZlU2FtZVVuaXQpIHsKICAgICAgICAgYXV0byYgZmlyc3RV
bml0VmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1swXS5nZXQoKSk7Ci0gICAg
ICAgIFN0cmluZyB1bml0ID0gZmlyc3RVbml0VmFsdWUudW5pdCgpOworICAgICAgICBhdXRvIHVu
aXQgPSBmaXJzdFVuaXRWYWx1ZS51bml0RW51bSgpOwogICAgICAgICBkb3VibGUgcmVzdWx0ID0g
Zmlyc3RVbml0VmFsdWUudmFsdWUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCB2
YWx1ZXMuc2l6ZSgpOyBpKyspCiAgICAgICAgICAgICByZXN1bHQgPSBvcGVyYXRpb24ocmVzdWx0
LCBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1tpXS5nZXQoKSkudmFsdWUoKSk7CkBAIC0x
MDcsMzIgKzEwNiwzMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6cHJlcGVuZEl0ZW1zTwogICAgIHJldHVybiB2YWx1
ZXM7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkSW50ZXJu
YWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWYWx1ZXMpCitFeGNlcHRp
b25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbChW
ZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykKIHsKICAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJp
Y3ZhbHVlLWFkZAogICAgIGF1dG8gdmFsdWVzID0gcHJlcGVuZEl0ZW1zT2ZUeXBlT3JUaGlzPENT
U01hdGhTdW0+KFdURk1vdmUobnVtZXJpY1ZhbHVlcykpOwogCiAgICAgaWYgKGF1dG8gcmVzdWx0
ID0gb3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0KHN0ZDo6cGx1czxkb3VibGU+KCksIHZhbHVl
cykpCi0gICAgICAgIHJldHVybiAqcmVzdWx0OwotCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCBz
dGVwIDQgdG8gY2hlY2sgdGhhdCB0aGUgdHlwZXMgY2FuIGJlIGFkZGVkLgorICAgICAgICByZXR1
cm4geyAqcmVzdWx0IH07CiAKLSAgICByZXR1cm4gQ1NTTWF0aFN1bTo6Y3JlYXRlKFdURk1vdmUo
dmFsdWVzKSk7CisgICAgYXV0byBzdW0gPSBDU1NNYXRoU3VtOjpjcmVhdGUoV1RGTW92ZSh2YWx1
ZXMpKTsKKyAgICBpZiAoc3VtLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gc3VtLnJl
bGVhc2VFeGNlcHRpb24oKTsKKyAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBzdW0u
cmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVt
ZXJpY1ZhbHVlOjphZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKK0V4Y2Vw
dGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OmFkZChGaXhlZFZl
Y3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewogICAgIHJldHVybiBhZGRJbnRlcm5hbChX
VEY6Om1hcChXVEZNb3ZlKHZhbHVlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKIH0KIAotUmVmPENT
U051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoRml4ZWRWZWN0b3I8Q1NTTnVtYmVy
aXNoPiYmIHZhbHVlcykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1l
cmljVmFsdWU6OnN1YihGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewogICAg
IHJldHVybiBhZGRJbnRlcm5hbChXVEY6Om1hcChXVEZNb3ZlKHZhbHVlcyksIFtdIChDU1NOdW1i
ZXJpc2gmJiBudW1iZXJpc2gpIHsKICAgICAgICAgcmV0dXJuIG5lZ2F0ZShyZWN0aWZ5TnVtYmVy
aXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOwogICAgIH0pKTsKIH0KIAotUmVmPENTU051bWVyaWNW
YWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4mJiBudW1lcmljVmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051
bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykKIHsKICAgICAvLyBodHRwczovL2RyYWZ0cy5j
c3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLW11bAogICAg
IGF1dG8gdmFsdWVzID0gcHJlcGVuZEl0ZW1zT2ZUeXBlT3JUaGlzPENTU01hdGhQcm9kdWN0PihX
VEZNb3ZlKG51bWVyaWNWYWx1ZXMpKTsKQEAgLTE0NCw4ICsxNDQsOCBAQCBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NO
dW1lcmljVmFsdQogICAgICAgICBib29sIG11bHRpcGxlVW5pdHNGb3VuZCB7IGZhbHNlIH07CiAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBub25OdW1iZXJVbml0SW5kZXg7CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAg
ICBhdXRvJiB1bml0ID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbaV0uZ2V0KCkpLnVu
aXQoKTsKLSAgICAgICAgICAgIGlmICh1bml0ID09ICJudW1iZXIiKQorICAgICAgICAgICAgYXV0
byB1bml0ID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbaV0uZ2V0KCkpLnVuaXRFbnVt
KCk7CisgICAgICAgICAgICBpZiAodW5pdCA9PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGlmIChub25OdW1iZXJVbml0SW5k
ZXgpIHsKICAgICAgICAgICAgICAgICBtdWx0aXBsZVVuaXRzRm91bmQgPSB0cnVlOwpAQCAtMTU3
LDE3ICsxNTcsMTggQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0
aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAgICAgIGRvdWJs
ZSBwcm9kdWN0ID0gMTsKICAgICAgICAgICAgIGZvciAoY29uc3QgUmVmPENTU051bWVyaWNWYWx1
ZT4mIHZhbHVlIDogdmFsdWVzKQogICAgICAgICAgICAgICAgIHByb2R1Y3QgKj0gZG93bmNhc3Q8
Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkudmFsdWUoKTsKLSAgICAgICAgICAgIFN0cmluZyB1
bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNb
Km5vbk51bWJlclVuaXRJbmRleF0uZ2V0KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7Ci0gICAgICAg
ICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CisgICAgICAg
ICAgICBhdXRvIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdEVudW0oKSA6IENTU1Vu
aXRUeXBlOjpDU1NfTlVNQkVSOworICAgICAgICAgICAgcmV0dXJuIHsgQ1NTVW5pdFZhbHVlOjpj
cmVhdGUocHJvZHVjdCwgdW5pdCkgfTsKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgc3RlcCA1IHRvIHByb2R1Y2UgYSB1bml0IG9mIHRoZSBjb3JyZWN0IHR5cGUu
Ci0KLSAgICByZXR1cm4gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpOwor
ICAgIGF1dG8gcHJvZHVjdCA9IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMp
KTsKKyAgICBpZiAocHJvZHVjdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHByb2R1
Y3QucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7
IHByb2R1Y3QucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1
ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVl
cykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6Om11
bChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewogICAgIHJldHVybiBtdWx0
aXBseUludGVybmFsKFdURjo6bWFwKFdURk1vdmUodmFsdWVzKSwgcmVjdGlmeU51bWJlcmlzaCkp
OwogfQpAQCAtMjM1LDEwICsyMzYsMTAgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1Zh
bHVlOjp0byhTdHJpbmcmJiB1bml0KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJp
Y3ZhbHVlLXRvCiAgICAgLy8gRklYTUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSgxLjAsICJudW1iZXIiX3MpOworICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSgxLjAsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKTsKIH0KIAotUmVmPENTU01hdGhTdW0+
IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmIHVuaXRzKQorRXhj
ZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVj
dG9yPFN0cmluZz4mJiB1bml0cykKIHsKICAgICBVTlVTRURfUEFSQU0odW5pdHMpOwogICAgIC8v
IGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1l
cmljdmFsdWUtdG9zdW0KQEAgLTI0NiwxMyArMjQ3LDYgQEAgUmVmPENTU01hdGhTdW0+IENTU051
bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmIHVuaXRzKQogICAgIHJldHVy
biBDU1NNYXRoU3VtOjpjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiB7IDEuMCB9KTsK
IH0KIAotQ1NTTnVtZXJpY1R5cGUgQ1NTTnVtZXJpY1ZhbHVlOjp0eXBlKCkKLXsKLSAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJp
Y3ZhbHVlLXR5cGUKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIENTU051bWVy
aWNUeXBlIHsgfTsKLX0KLQogRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051
bWVyaWNWYWx1ZTo6cGFyc2UoU3RyaW5nJiYgY3NzVGV4dCkKIHsKICAgICBVTlVTRURfUEFSQU0o
Y3NzVGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1l
cmljVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5o
CmluZGV4IDI2Y2E4MzllNGNlNDk2NWM3YzdmZGI1YTlmZWQwZTA5N2FmMWE1NTUuLjcxNTEwMWQ5
NDFmZWIwNzkyNjA1ZDQ3ZmIxMDRlMWNlNTIyNWQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFC
TEUoQ1NTX1RZUEVEX09NKQogCisjaW5jbHVkZSAiQ1NTTnVtZXJpY1R5cGUuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVZhbHVlLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvRml4
ZWRWZWN0b3IuaD4KQEAgLTM2LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q1NTTnVtZXJpY1ZhbHVlOwogY2xhc3MgQ1NTVW5pdFZhbHVlOwogY2xhc3MgQ1NTTWF0aFN1bTsK
LXN0cnVjdCBDU1NOdW1lcmljVHlwZTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2Vw
dGlvbk9yOwogCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIENTU051bWVyaWNWYWx1ZSA6IHB1Ymxp
YyBDU1NTdHlsZVZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU051bWVyaWNW
YWx1ZSk7CiBwdWJsaWM6CiAKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBhZGQoRml4ZWRWZWN0
b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBzdWIoRml4ZWRW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWwoRml4
ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gYWRkKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgRXhjZXB0aW9u
T3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHN1YihGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYp
OworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBtdWwoRml4ZWRWZWN0b3I8
Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4g
ZGl2KEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1
ZT4gbWluKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNW
YWx1ZT4gbWF4KEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CkBAIC01Niw4ICs1Niw5IEBA
IHB1YmxpYzoKICAgICBib29sIGVxdWFscyhGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwog
ICAgIAogICAgIFJlZjxDU1NVbml0VmFsdWU+IHRvKFN0cmluZyYmKTsKLSAgICBSZWY8Q1NTTWF0
aFN1bT4gdG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmKTsKLSAgICBDU1NOdW1lcmljVHlwZSB0
eXBlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiB0b1N1bShGaXhlZFZlY3Rv
cjxTdHJpbmc+JiYpOworCisgICAgY29uc3QgQ1NTTnVtZXJpY1R5cGUmIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KICAgICAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU051
bWVyaWNWYWx1ZT4+IHBhcnNlKFN0cmluZyYmKTsKICAgICBzdGF0aWMgUmVmPENTU051bWVyaWNW
YWx1ZT4gcmVjdGlmeU51bWJlcmlzaChDU1NOdW1iZXJpc2gmJik7CkBAIC02NSwxMSArNjYsMTQg
QEAgcHVibGljOgogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTnVtZXJpY1ZhbHVlOyB9CiAKIHByb3Rl
Y3RlZDoKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBhZGRJbnRlcm5hbChWZWN0b3I8UmVmPENT
U051bWVyaWNWYWx1ZT4+JiYpOwotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG11bHRpcGx5SW50
ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKyAgICBFeGNlcHRpb25PcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gYWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbXVsdGlwbHlJ
bnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gcHJlcGVuZEl0ZW1zT2ZUeXBl
T3JUaGlzKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAKLSAgICBDU1NOdW1lcmlj
VmFsdWUoKSA9IGRlZmF1bHQ7CisgICAgQ1NTTnVtZXJpY1ZhbHVlKENTU051bWVyaWNUeXBlIHR5
cGUgPSB7IH0pCisgICAgICAgIDogbV90eXBlKFdURk1vdmUodHlwZSkpIHsgfQorCisgICAgQ1NT
TnVtZXJpY1R5cGUgbV90eXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKaW5kZXggYjc2MDU0ZmRkZDRi
MDMyMWUyY2IwNTI0NWE4ZGVkYzE0MWZmYzE4YS4uYzBjYTZlZDAyYTUyNzQ4ZGYyMjM4MDc3ZTU5
YmNmMmQ2NWY4YjJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
VW5pdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFs
dWUuY3BwCkBAIC0zMiwxMiArMzIsODggQEAKIAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAK
KyNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVl
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTVW5pdFZhbHVlKTsKIAorc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IG51bWVyaWNUeXBlKENTU1VuaXRUeXBl
IHVuaXQpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBl
ZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWNyZWF0ZS1hLXR5cGUKKyAgICBDU1NOdW1lcmljVHlwZSB0
eXBlOworICAgIHN3aXRjaCAodW5pdENhdGVnb3J5KHVuaXQpKSB7CisgICAgY2FzZSBDU1NVbml0
Q2F0ZWdvcnk6Ok51bWJlcjoKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAg
IGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpQZXJjZW50OgorICAgICAgICB0eXBlLnBlcmNlbnQgPSAx
OworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0
ZWdvcnk6Okxlbmd0aDoKKyAgICAgICAgdHlwZS5sZW5ndGggPSAxOworICAgICAgICByZXR1cm4g
eyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0ZWdvcnk6OkFuZ2xlOgorICAg
ICAgICB0eXBlLmFuZ2xlID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9Owor
ICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpUaW1lOgorICAgICAgICB0eXBlLnRpbWUgPSAxOwor
ICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0ZWdv
cnk6OkZyZXF1ZW5jeToKKyAgICAgICAgdHlwZS5mcmVxdWVuY3kgPSAxOworICAgICAgICByZXR1
cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0ZWdvcnk6OlJlc29sdXRp
b246CisgICAgICAgIHR5cGUucmVzb2x1dGlvbiA9IDE7CisgICAgICAgIHJldHVybiB7IFdURk1v
dmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6T3RoZXI6CisgICAgICAgIGlm
ICh1bml0ID09IENTU1VuaXRUeXBlOjpDU1NfRlIpIHsKKyAgICAgICAgICAgIHR5cGUuZmxleCA9
IDE7CisgICAgICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
K1N0cmluZyBDU1NVbml0VmFsdWU6OnVuaXQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV91bml0
KSB7CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgcmV0dXJuICJu
dW1iZXIiOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgorICAgICAgICBy
ZXR1cm4gInBlcmNlbnQiOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdW5pdFNlcmlhbGl6YXRpb24oKTsKK30KKworU3RyaW5nIENTU1VuaXRWYWx1ZTo6
dW5pdFNlcmlhbGl6YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1
ZTo6dW5pdFR5cGVTdHJpbmcobV91bml0KTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENTU1VuaXRW
YWx1ZT4+IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKGRvdWJsZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1
bml0KQoreworICAgIGF1dG8gcGFyc2VkVW5pdCA9IENTU1BhcnNlclRva2VuOjpzdHJpbmdUb1Vu
aXRUeXBlKHVuaXQpOworICAgIGlmIChwYXJzZWRVbml0ID09IENTU1VuaXRUeXBlOjpDU1NfVU5L
Tk9XTikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIGF1dG8g
dHlwZSA9IG51bWVyaWNUeXBlKHBhcnNlZFVuaXQpOworICAgIGlmICghdHlwZSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIGF1dG8gdW5pdFZhbHVlID0gYWRv
cHRSZWYoKm5ldyBDU1NVbml0VmFsdWUodmFsdWUsIHBhcnNlZFVuaXQpKTsKKyAgICB1bml0VmFs
dWUtPm1fdHlwZSA9IFdURk1vdmUoKnR5cGUpOworICAgIHJldHVybiB1bml0VmFsdWU7Cit9CisK
K0NTU1VuaXRWYWx1ZTo6Q1NTVW5pdFZhbHVlKGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdW5p
dCkKKyAgICA6IENTU051bWVyaWNWYWx1ZShudW1lcmljVHlwZSh1bml0KS52YWx1ZV9vcihDU1NO
dW1lcmljVHlwZSgpKSkKKyAgICAsIG1fdmFsdWUodmFsdWUpCisgICAgLCBtX3VuaXQodW5pdCkK
K3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgKaW5kZXggMmMyZTllMzRkZmU2ZTM1NjM3NDIzNzk1
NjM4ZGM2YmU3MTljNWNmZi4uZDg5YTFmMGY5YTUzYjJmZjNkZTMwYjVlNjQ0MDc1Nzg3YjNhYzcx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgKQEAgLTM0LDMz
ICszNCwyOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgQ1NTVW5pdFR5
cGUgOiB1aW50OF90OworCiBjbGFzcyBDU1NVbml0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTTnVt
ZXJpY1ZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU1VuaXRWYWx1ZSk7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUs
IGNvbnN0IFN0cmluZyYgdW5pdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENTU1VuaXRWYWx1ZSh2YWx1ZSwgdW5pdCkpOwotICAgIH0KKyAgICBzdGF0aWMgRXhjZXB0aW9u
T3I8UmVmPENTU1VuaXRWYWx1ZT4+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYg
dW5pdCk7CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUs
IENTU1VuaXRUeXBlIHVuaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZh
bHVlLCB1bml0KSk7IH0KIAotICAgIC8vIEZJWE1FOiBub3QgY29ycmVjdC4KLSAgICBTdHJpbmcg
dG9TdHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtYWtlU3RyaW5nKChpbnQpIG1fdmFsdWUs
IG1fdW5pdCk7IH0KKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
YWtlU3RyaW5nKEZvcm1hdHRlZENTU051bWJlcjo6Y3JlYXRlKG1fdmFsdWUpLCB1bml0U2VyaWFs
aXphdGlvbigpKTsgfQogCiAgICAgZG91YmxlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZTsgfQogICAgIHZvaWQgc2V0VmFsdWUoZG91YmxlIHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsg
fQotICAgIGNvbnN0IFN0cmluZyYgdW5pdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdDsgfQotICAg
IHZvaWQgc2V0VW5pdChjb25zdCBTdHJpbmcmIHVuaXQpIHsgbV91bml0ID0gdW5pdDsgfQorICAg
IFN0cmluZyB1bml0KCkgY29uc3Q7CisgICAgU3RyaW5nIHVuaXRTZXJpYWxpemF0aW9uKCkgY29u
c3Q7CisgICAgQ1NTVW5pdFR5cGUgdW5pdEVudW0oKSBjb25zdCB7IHJldHVybiBtX3VuaXQ7IH0K
IAogcHJpdmF0ZToKLSAgICBDU1NVbml0VmFsdWUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcm
IHVuaXQpCi0gICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKLSAgICAgICAgLCBtX3VuaXQodW5pdCkK
LSAgICB7Ci0gICAgfQorICAgIENTU1VuaXRWYWx1ZShkb3VibGUsIENTU1VuaXRUeXBlKTsKIAog
ICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NT
dHlsZVZhbHVlVHlwZTo6Q1NTVW5pdFZhbHVlOyB9CiAKICAgICBkb3VibGUgbV92YWx1ZTsKLSAg
ICBTdHJpbmcgbV91bml0OworICAgIENTU1VuaXRUeXBlIG1fdW5pdDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aEludmVydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhJbnZlcnQuY3BwCmluZGV4IDVkOTEyZDgyNjI4ZjhiYTM0MjJiYzQ5OTgyYWM0
ZTFiMTczNGZkYzQuLjUyNGI3ZjcwMWJjOGU3YWU5ZDM4NjdjYWFlYTIwN2Q4MDQxZDA3NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVy
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52
ZXJ0LmNwcApAQCAtNDEsOCArNDEsMzQgQEAgUmVmPENTU01hdGhJbnZlcnQ+IENTU01hdGhJbnZl
cnQ6OmNyZWF0ZShDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTTWF0aEludmVydChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKIH0KIAorc3RhdGljIENT
U051bWVyaWNUeXBlIG5lZ2F0ZWRUeXBlKGNvbnN0IENTU051bWJlcmlzaCYgbnVtYmVyaXNoKQor
eworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3R5
cGUtb2YtYS1jc3NtYXRodmFsdWUKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1iZXJpc2gs
CisgICAgICAgIFtdIChkb3VibGUpIHsgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7IH0sCisgICAg
ICAgIFtdIChjb25zdCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAgICAgICAg
ICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7
CisgICAgICAgICAgICBDU1NOdW1lcmljVHlwZSB0eXBlID0gdmFsdWUtPnR5cGUoKTsKKyAgICAg
ICAgICAgIGF1dG8gbmVnYXRlID0gW10gKGF1dG8mIG9wdGlvbmFsKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCA9ICpvcHRpb25h
bCAqIC0xOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmxlbmd0aCk7
CisgICAgICAgICAgICBuZWdhdGUodHlwZS5hbmdsZSk7CisgICAgICAgICAgICBuZWdhdGUodHlw
ZS50aW1lKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmZyZXF1ZW5jeSk7CisgICAgICAgICAg
ICBuZWdhdGUodHlwZS5yZXNvbHV0aW9uKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmZsZXgp
OworICAgICAgICAgICAgbmVnYXRlKHR5cGUucGVyY2VudCk7CisgICAgICAgICAgICByZXR1cm4g
dHlwZTsKKyAgICAgICAgfQorICAgICk7Cit9CisKIENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZl
cnQoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQotICAgIDogbV92YWx1ZShDU1NOdW1lcmljVmFs
dWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSkKKyAgICA6IENTU01hdGhW
YWx1ZShuZWdhdGVkVHlwZShudW1iZXJpc2gpKQorICAgICwgbV92YWx1ZShDU1NOdW1lcmljVmFs
dWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAK
aW5kZXggNGRhNDNjZDkwNzI2ZDQ4MTZhZDZmYzYxNWYyMTJmZmZiYmY1MDZmNC4uMGFiNWY2NDEw
ZDM0MTMxMzVkYjRmZTIxN2EzZDBiNzY3YzY5YjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwCkBAIC0zNiwxMyArMzYs
MjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
Q1NTTWF0aE5lZ2F0ZSk7CiAKK3N0YXRpYyBDU1NOdW1lcmljVHlwZSBjb3B5VHlwZShjb25zdCBD
U1NOdW1iZXJpc2gmIG51bWJlcmlzaCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1i
ZXJpc2gsCisgICAgICAgIFtdIChkb3VibGUpIHsgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7IH0s
CisgICAgICAgIFtdIChjb25zdCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAg
ICAgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIENTU051bWVyaWNU
eXBlKCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUtPnR5cGUoKTsKKyAgICAgICAgfQorICAg
ICk7Cit9CisKIENTU01hdGhOZWdhdGU6OkNTU01hdGhOZWdhdGUoQ1NTTnVtYmVyaXNoJiYgbnVt
YmVyaXNoKQotICAgIDogbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2go
V1RGTW92ZShudW1iZXJpc2gpKSkKKyAgICA6IENTU01hdGhWYWx1ZShjb3B5VHlwZShudW1iZXJp
c2gpKQorICAgICwgbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RG
TW92ZShudW1iZXJpc2gpKSkKIHsKIH0KIAogQ1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZShS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQotICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVl
KSkKKyAgICA6IENTU01hdGhWYWx1ZSh2YWx1ZS0+dHlwZSgpKQorICAgICwgbV92YWx1ZShXVEZN
b3ZlKHZhbHVlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcAppbmRleCBkNzAwZTg5Zjg1NWU2ZDg0NWZmYzIy
YzkyNmFiMzZiZTQ4MzEzNDBlLi41OGI2MzAwNTYyZGYwNGJhMDQ1YWIwZWI3YWYwNDk3MjM3MjMz
NTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhQcm9kdWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhQcm9kdWN0LmNwcApAQCAtMjYsMjkgKzI2LDY2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiQ1NTTWF0aFByb2R1Y3QuaCIKIAotI2luY2x1ZGUgIkNTU051bWVyaWNBcnJh
eS5oIgotCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUgIkNTU051bWVyaWNB
cnJheS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoQ1NTTWF0aFByb2R1Y3QpOwogCi1DU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1
Y3QoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQotICAgIDogbV92YWx1
ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQorc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IG11bHRpcGx5VHlwZXMoY29uc3QgQ1NTTnVt
ZXJpY1R5cGUmIGEsIGNvbnN0IENTU051bWVyaWNUeXBlJiBiKQoreworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1tdWx0
aXBseS10d28tdHlwZXMKKyAgICBpZiAoYS5wZXJjZW50SGludCAmJiBiLnBlcmNlbnRIaW50ICYm
ICphLnBlcmNlbnRIaW50ICE9ICpiLnBlcmNlbnRIaW50KQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgYXV0byBhZGQgPSBbXSAoYXV0byBsZWZ0LCBhdXRvIHJpZ2h0KSAtPiBz
dGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB7CisgICAgICAgIGlmICghbGVmdCkKKyAgICAgICAgICAg
IHJldHVybiByaWdodDsKKyAgICAgICAgaWYgKCFyaWdodCkKKyAgICAgICAgICAgIHJldHVybiBs
ZWZ0OworICAgICAgICByZXR1cm4gKmxlZnQgKyAqcmlnaHQ7CisgICAgfTsKKyAgICAKKyAgICBy
ZXR1cm4geyB7CisgICAgICAgIGFkZChhLmxlbmd0aCwgYi5sZW5ndGgpLAorICAgICAgICBhZGQo
YS5hbmdsZSwgYi5hbmdsZSksCisgICAgICAgIGFkZChhLnRpbWUsIGIudGltZSksCisgICAgICAg
IGFkZChhLmZyZXF1ZW5jeSwgYi5mcmVxdWVuY3kpLAorICAgICAgICBhZGQoYS5yZXNvbHV0aW9u
LCBiLnJlc29sdXRpb24pLAorICAgICAgICBhZGQoYS5mbGV4LCBiLmZsZXgpLAorICAgICAgICBh
ZGQoYS5wZXJjZW50LCBiLnBlcmNlbnQpLAorICAgICAgICBhLnBlcmNlbnRIaW50ID8gYS5wZXJj
ZW50SGludCA6IGIucGVyY2VudEhpbnQKKyAgICB9IH07Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoUHJvZHVjdD4+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVt
YmVyaXNoPiBudW1iZXJpc2hlcykKIHsKKyAgICByZXR1cm4gY3JlYXRlKFdURjo6bWFwKFdURk1v
dmUobnVtYmVyaXNoZXMpLCByZWN0aWZ5TnVtYmVyaXNoKSk7CiB9CiAKLUNTU01hdGhQcm9kdWN0
OjpDU1NNYXRoUHJvZHVjdChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQot
ICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkK
K0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJvZHVjdD4+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUo
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMpCiB7CisgICAgaWYgKHZhbHVlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9OworICAg
IAorICAgIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IHR5cGUgPSB2YWx1ZXNbMF0tPnR5
cGUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHZhbHVlcy5zaXplKCk7IGkrKykgewor
ICAgICAgICB0eXBlID0gbXVsdGlwbHlUeXBlcygqdHlwZSwgdmFsdWVzW2ldLT50eXBlKCkpOwor
ICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yIH07CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFByb2R1Y3Qo
V1RGTW92ZSh2YWx1ZXMpLCBXVEZNb3ZlKCp0eXBlKSkpOwogfQogCi1jb25zdCBDU1NOdW1lcmlj
QXJyYXkmIENTU01hdGhQcm9kdWN0Ojp2YWx1ZXMoKSBjb25zdAorQ1NTTWF0aFByb2R1Y3Q6OkNT
U01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1l
cmljVHlwZSB0eXBlKQorICAgIDogQ1NTTWF0aFZhbHVlKFdURk1vdmUodHlwZSkpCisgICAgLCBt
X3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQogewotICAg
IHJldHVybiBtX3ZhbHVlcy5nZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVj
dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5o
CmluZGV4IDYwYWYwYjc3NTNjOTYzZTVmYTgxODg5YWM0NzkyYWI1Yjk1ZWM1ZjQuLjhlZDYwNWYz
NTNiYTMzZTg1N2ZiYWQzMGQ3OWU5YTM3MTU0ZjRlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKQEAgLTM3LDE1ICszNywx
NSBAQCBjbGFzcyBDU1NOdW1lcmljQXJyYXk7CiBjbGFzcyBDU1NNYXRoUHJvZHVjdCBmaW5hbCA6
IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0
aFByb2R1Y3QpOwogcHVibGljOgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRp
YyBSZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsg
fQotICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3Q7CisgICAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJvZHVjdD4+IGNyZWF0ZShGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+KTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4g
Y3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4pOworICAgIGNvbnN0IENTU051bWVy
aWNBcnJheSYgdmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7IH0KIAogcHJp
dmF0ZToKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q7IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBn
ZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhQ
cm9kdWN0OyB9CiAKLSAgICBDU1NNYXRoUHJvZHVjdChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYpOwotICAgIENTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7
CisgICAgQ1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVt
ZXJpY1R5cGUpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKaW5k
ZXggYTZkOWVkOTFmMjg5ZTJhYTQ4N2E0OThjOTdiOGY4MDJhN2ViYWIzOC4uNDlhMTE4YzVkYTJm
NzAzZjk0MGM1NDg4NmVmY2YyNjYwMTVjZjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwCkBAIC0yNiwyMyArMjYsNjcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NNYXRoU3VtLmgiCiAKLSNpbmNsdWRlICJD
U1NOdW1lcmljQXJyYXkuaCIKLQogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRl
ICJDU1NOdW1lcmljQXJyYXkuaCIKKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU01hdGhTdW0pOwogCi1DU1NNYXRoU3VtOjpDU1NN
YXRoU3VtKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKLSAgICA6IG1f
dmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKK3N0
YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNUeXBlPiBhZGRUeXBlcyhDU1NOdW1lcmljVHlw
ZSBhLCBDU1NOdW1lcmljVHlwZSBiKQogeworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1hZGQtdHdvLXR5cGVzCisgICAg
aWYgKGEucGVyY2VudEhpbnQgJiYgYi5wZXJjZW50SGludCAmJiAqYS5wZXJjZW50SGludCAhPSAq
Yi5wZXJjZW50SGludCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChh
LnBlcmNlbnRIaW50KQorICAgICAgICBiLmFwcGx5UGVyY2VudEhpbnQoKmEucGVyY2VudEhpbnQp
OworICAgIGlmIChiLnBlcmNlbnRIaW50KQorICAgICAgICBhLmFwcGx5UGVyY2VudEhpbnQoKmIu
cGVyY2VudEhpbnQpOworCisgICAgaWYgKGEgPT0gYikKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92
ZShhKSB9OworCisgICAgZm9yIChhdXRvIHR5cGUgOiBlYWNoQmFzZVR5cGUoKSkgeworICAgICAg
ICBpZiAodHlwZSA9PSBDU1NOdW1lcmljQmFzZVR5cGU6OlBlcmNlbnQpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgaWYgKCFhLnZhbHVlRm9yVHlwZSh0eXBlKSAmJiAhYi52YWx1ZUZv
clR5cGUodHlwZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYS5hcHBseVBlcmNl
bnRIaW50KHR5cGUpOworICAgICAgICBiLmFwcGx5UGVyY2VudEhpbnQodHlwZSk7CisgICAgICAg
IGlmIChhLnZhbHVlRm9yVHlwZSh0eXBlKSAhPSBiLnZhbHVlRm9yVHlwZSh0eXBlKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgV1RGTW92
ZShhKSB9OworfQorCitFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IENTU01hdGhTdW06OmNy
ZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+IG51bWJlcmlzaGVzKQoreworICAgIHJldHVy
biBjcmVhdGUoV1RGOjptYXAoV1RGTW92ZShudW1iZXJpc2hlcyksIHJlY3RpZnlOdW1iZXJpc2gp
KTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiBDU1NNYXRoU3VtOjpjcmVhdGUo
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiB2YWx1ZXMpCit7CisgICAgaWYgKHZhbHVlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9OworCisg
ICAgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmljVHlwZT4gdHlwZSA9IHZhbHVlc1swXS0+dHlwZSgp
OworICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKSB7CisgICAg
ICAgIHR5cGUgPSBhZGRUeXBlcygqdHlwZSwgdmFsdWVzW2ldLT50eXBlKCkpOworICAgICAgICBp
ZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07Cisg
ICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShXVEZNb3ZlKHZhbHVl
cyksIFdURk1vdmUoKnR5cGUpKSk7CiB9CiAKLUNTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCitDU1NNYXRoU3VtOjpDU1NNYXRoU3Vt
KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBl
KQorICAgIDogQ1NTTWF0aFZhbHVlKFdURk1vdmUodHlwZSkpCisgICAgLCBtX3ZhbHVlcyhDU1NO
dW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4IGY5MmE2MTQx
N2FiZTFjNGQ5ZTgxZjk0OGJiZmExOTk3YjYyZTcwMjEuLmQ1MjM3YmJmZTU0ZTRkZjBiNDc2NDIw
NWZlYTY0ZDVmY2E2ZmNlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC0zOCwxNSArMzgsMTUgQEAgY2xhc3MgQ1NTTnVtZXJpY0Fy
cmF5OwogY2xhc3MgQ1NTTWF0aFN1bSBmaW5hbCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFN1bSk7CiBwdWJsaWM6Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoQXJncyYm
Li4uIGFyZ3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShzdGQ6OmZvcndhcmQ8
QXJncz4oYXJncykuLi4pKTsgfQorICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1
bT4+IGNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+KTsKKyAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPENTU01hdGhTdW0+PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
Pik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlcy5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBnZXRPcGVy
YXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6U3VtOyB9CiAgICAg
Q1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU1N0
eWxlVmFsdWVUeXBlOjpDU1NNYXRoU3VtOyB9CiAKLSAgICBDU1NNYXRoU3VtKEZpeGVkVmVjdG9y
PENTU051bWJlcmlzaD4mJik7Ci0gICAgQ1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYpOworICAgIENTU01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+Piwg
Q1NTTnVtZXJpY1R5cGUpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
LmgKaW5kZXggZDI5YWVhMzIxY2ZmZGFhMmJhNGFlMWFmNTc2MzI5Nzg3Y2JiMzg5Yi4uNTMxYWIz
ZTczNzNhYzJiMjNlZDIwNDYyNGNkOGZkNTRiNmEwNGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhWYWx1ZS5oCkBAIC0zNSw2ICszNSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTTWF0aFZhbHVlIDogcHVibGljIENTU051
bWVyaWNWYWx1ZSB7CiBwdWJsaWM6CisgICAgQ1NTTWF0aFZhbHVlKENTU051bWVyaWNUeXBlIHR5
cGUgPSB7IH0pCisgICAgICAgIDogQ1NTTnVtZXJpY1ZhbHVlKFdURk1vdmUodHlwZSkpIHsgfQog
ICAgIHZpcnR1YWwgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgPSAwOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1l
cmljQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1l
cmljQXJyYXkuY3BwCmluZGV4IDlkZTUxOTAwOTZiOWI0MTdkNjhmMGZiNWQ1OWJjYTIyZGQwYWQ2
NDUuLjQ4MTNjZTAyYTliMmEzNmIyOTMzMWI4ZmQ5OGNkNmZlYjZjNmNhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5j
cHAKQEAgLTQwLDYgKzQwLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVy
aWNBcnJheSk7CiAKIFJlZjxDU1NOdW1lcmljQXJyYXk+IENTU051bWVyaWNBcnJheTo6Y3JlYXRl
KGNvbnN0IEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mIG51bWJlcmlzaGVzKQogeworICAgIC8v
IEZJWE1FOiBTaW1wbGlmeSB0aGlzLgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU051bWVy
aWNBcnJheShXVEY6Om1hcChudW1iZXJpc2hlcywgW10oYXV0byYgbnVtYmVyaXNoKSAtPiBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiB7CiAgICAgICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6OnJlY3Rp
ZnlOdW1iZXJpc2goY29uc3RfY2FzdDxDU1NOdW1iZXJpc2gmJj4obnVtYmVyaXNoKSk7CiAgICAg
fSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TnVtZXJpY0Jhc2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U051bWVyaWNCYXNlVHlwZS5oCmluZGV4IGQwNTU3NzJlNGE5YWYxNWNjMjY2NmNhZWMwYjI0ZjA4
ZmI2OTNlMzkuLjcwNWZlYjAxZjYwNDYyNGJmNDUyZDI3NjVlY2M0Yzk1YTkzNTRjYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmlj
QmFzZVR5cGUuaApAQCAtMjcsOSArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00p
CiAKKyNpbmNsdWRlIDxhcnJheT4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNz
IENTU051bWVyaWNCYXNlVHlwZTogdWludDhfdCB7CitlbnVtIGNsYXNzIENTU051bWVyaWNCYXNl
VHlwZSA6IHVpbnQ4X3QgewogICAgIExlbmd0aCwKICAgICBBbmdsZSwKICAgICBUaW1lLApAQCAt
MzksNiArNDEsNDAgQEAgZW51bSBjbGFzcyBDU1NOdW1lcmljQmFzZVR5cGU6IHVpbnQ4X3Qgewog
ICAgIFBlcmNlbnQsCiB9OwogCitjb25zdGV4cHIgc3RkOjphcnJheTxDU1NOdW1lcmljQmFzZVR5
cGUsIDc+IGVhY2hCYXNlVHlwZSgpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgQ1NTTnVtZXJp
Y0Jhc2VUeXBlOjpMZW5ndGgsCisgICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGUsCisg
ICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6VGltZSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VU
eXBlOjpGcmVxdWVuY3ksCisgICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6UmVzb2x1dGlvbiwK
KyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGbGV4LAorICAgICAgICBDU1NOdW1lcmljQmFz
ZVR5cGU6OlBlcmNlbnQKKyAgICB9OworfQorCitjb25zdGV4cHIgY29uc3QgY2hhciogZGVidWdT
dHJpbmcoQ1NTTnVtZXJpY0Jhc2VUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6Okxlbmd0aDoKKyAgICAgICAgcmV0dXJuICJsZW5n
dGgiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpBbmdsZToKKyAgICAgICAgcmV0dXJu
ICJhbmdsZSI7CisgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OlRpbWU6CisgICAgICAgIHJl
dHVybiAidGltZSI7CisgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeToKKyAg
ICAgICAgcmV0dXJuICJmcmVxdWVuY3kiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpS
ZXNvbHV0aW9uOgorICAgICAgICByZXR1cm4gInJlc29sdXRpb24iOworICAgIGNhc2UgQ1NTTnVt
ZXJpY0Jhc2VUeXBlOjpGbGV4OgorICAgICAgICByZXR1cm4gImZsZXgiOworICAgIGNhc2UgQ1NT
TnVtZXJpY0Jhc2VUeXBlOjpQZXJjZW50OgorICAgICAgICByZXR1cm4gInBlcmNlbnQiOworICAg
IH0KKyAgICByZXR1cm4gImludmFsaWQiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NOdW1lcmljVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NO
dW1lcmljVHlwZS5oCmluZGV4IGNmN2VhNmRhYTNmNGQ1NGYxMTQ1OWIyMjRkMDI3ODMwODkzYzkx
N2IuLjRlY2U5ODBhNjFkNThiZmI1MzE1NjlkYTc2YzA0NTRiZjQwYTFiYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmgKQEAg
LTI5LDE4ICsyOSw3OCBAQAogCiAjaW5jbHVkZSAiQ1NTTnVtZXJpY0Jhc2VUeXBlLmgiCiAjaW5j
bHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1i
ZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCiBzdHJ1Y3Qg
Q1NTTnVtZXJpY1R5cGUgewotICAgIGxvbmcgbGVuZ3RoIHsgMCB9OwotICAgIGxvbmcgYW5nbGUg
eyAwIH07Ci0gICAgbG9uZyB0aW1lIHsgMCB9OwotICAgIGxvbmcgZnJlcXVlbmN5IHsgMCB9Owot
ICAgIGxvbmcgcmVzb2x1dGlvbiB7IDAgfTsKLSAgICBsb25nIGZsZXggeyAwIH07Ci0gICAgbG9u
ZyBwZXJjZW50IHsgMCB9OworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gbGVuZ3RoOworICAgIHN0
ZDo6b3B0aW9uYWw8bG9uZz4gYW5nbGU7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiB0aW1lOwor
ICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gZnJlcXVlbmN5OworICAgIHN0ZDo6b3B0aW9uYWw8bG9u
Zz4gcmVzb2x1dGlvbjsKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+IGZsZXg7CisgICAgc3RkOjpv
cHRpb25hbDxsb25nPiBwZXJjZW50OwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY0Jhc2VU
eXBlPiBwZXJjZW50SGludDsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NOdW1lcmlj
VHlwZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbGVuZ3RoID09IG90aGVy
Lmxlbmd0aAorICAgICAgICAgICAgJiYgYW5nbGUgPT0gb3RoZXIuYW5nbGUKKyAgICAgICAgICAg
ICYmIHRpbWUgPT0gb3RoZXIudGltZQorICAgICAgICAgICAgJiYgZnJlcXVlbmN5ID09IG90aGVy
LmZyZXF1ZW5jeQorICAgICAgICAgICAgJiYgcmVzb2x1dGlvbiA9PSBvdGhlci5yZXNvbHV0aW9u
CisgICAgICAgICAgICAmJiBmbGV4ID09IG90aGVyLmZsZXgKKyAgICAgICAgICAgICYmIHBlcmNl
bnQgPT0gb3RoZXIucGVyY2VudAorICAgICAgICAgICAgJiYgcGVyY2VudEhpbnQgPT0gb3RoZXIu
cGVyY2VudEhpbnQ7CisgICAgfQorCisgICAgc3RkOjpvcHRpb25hbDxsb25nPiYgdmFsdWVGb3JU
eXBlKENTU051bWVyaWNCYXNlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpMZW5ndGg6CisgICAgICAgICAg
ICByZXR1cm4gbGVuZ3RoOworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGU6
CisgICAgICAgICAgICByZXR1cm4gYW5nbGU7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VU
eXBlOjpUaW1lOgorICAgICAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgICAgIGNhc2UgQ1NTTnVt
ZXJpY0Jhc2VUeXBlOjpGcmVxdWVuY3k6CisgICAgICAgICAgICByZXR1cm4gZnJlcXVlbmN5Owor
ICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6UmVzb2x1dGlvbjoKKyAgICAgICAgICAg
IHJldHVybiByZXNvbHV0aW9uOworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6Rmxl
eDoKKyAgICAgICAgICAgIHJldHVybiBmbGV4OworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNl
VHlwZTo6UGVyY2VudDoKKyAgICAgICAgICAgIHJldHVybiBwZXJjZW50OworICAgICAgICB9Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdm9pZCBh
cHBseVBlcmNlbnRIaW50KENTU051bWVyaWNCYXNlVHlwZSBoaW50KQorICAgIHsKKyAgICAgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jYXBwbHktdGhl
LXBlcmNlbnQtaGludAorICAgICAgICBhdXRvJiBvcHRpb25hbCA9IHZhbHVlRm9yVHlwZShoaW50
KTsKKyAgICAgICAgaWYgKCFvcHRpb25hbCkKKyAgICAgICAgICAgIG9wdGlvbmFsID0gMDsKKyAg
ICAgICAgaWYgKHBlcmNlbnQpCisgICAgICAgICAgICAqb3B0aW9uYWwgKz0gKnN0ZDo6ZXhjaGFu
Z2UocGVyY2VudCwgMCk7CisgICAgICAgIHBlcmNlbnRIaW50ID0gaGludDsKKyAgICB9CisKKyAg
ICBTdHJpbmcgZGVidWdTdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoInsiLAorICAgICAgICAgICAgbGVuZ3RoID8gbWFrZVN0cmluZygiIGxlbmd0aDoiLCAq
bGVuZ3RoKSA6IFN0cmluZygpLAorICAgICAgICAgICAgYW5nbGUgPyBtYWtlU3RyaW5nKCIgYW5n
bGU6IiwgKmFuZ2xlKSA6IFN0cmluZygpLAorICAgICAgICAgICAgdGltZSA/IG1ha2VTdHJpbmco
IiB0aW1lOiIsICp0aW1lKSA6IFN0cmluZygpLAorICAgICAgICAgICAgZnJlcXVlbmN5ID8gbWFr
ZVN0cmluZygiIGZyZXF1ZW5jeToiLCAqZnJlcXVlbmN5KSA6IFN0cmluZygpLAorICAgICAgICAg
ICAgcmVzb2x1dGlvbiA/IG1ha2VTdHJpbmcoIiByZXNvbHV0aW9uOiIsICpyZXNvbHV0aW9uKSA6
IFN0cmluZygpLAorICAgICAgICAgICAgZmxleCA/IG1ha2VTdHJpbmcoIiBmbGV4OiIsICpmbGV4
KSA6IFN0cmluZygpLAorICAgICAgICAgICAgcGVyY2VudCA/IG1ha2VTdHJpbmcoIiBwZXJjZW50
OiIsICpwZXJjZW50KSA6IFN0cmluZygpLAorICAgICAgICAgICAgcGVyY2VudEhpbnQgPyBtYWtl
U3RyaW5nKCIgcGVyY2VudEhpbnQ6IiwgV2ViQ29yZTo6ZGVidWdTdHJpbmcoKnBlcmNlbnRIaW50
KSkgOiBTdHJpbmcoKSwKKyAgICAgICAgIiB9Iik7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NOdW1lcmljVHlwZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU051bWVyaWNUeXBlLmlkbAppbmRleCBiZTkxNGEzYmNkMTc2ZGM1NzhiMjEwMWRkMGVhZTI1
ZWQ5Yzk3N2I5Li5mOGRhNDc5MWI2YWJlODE2MjBlNTlkY2Q0MzM3ZWYwY2Q2NmZiODU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNU
eXBlLmlkbApAQCAtMjMsNiArMjMsOCBAQAogKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KIAorLy8gaHR0cHM6
Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1
ZS10eXBlCisKIFsKICAgICBDb25kaXRpb25hbD1DU1NfVFlQRURfT00sCiAgICAgSlNHZW5lcmF0
ZVRvSlNPYmplY3QsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxZDVhMWMxOTY5
NTIwYTgwZmU2Y2U2ZmFiNjc2MjNlOWE2NWRlNTM4Li5mY2I3ZTkyNmRhZjA0MjIwZTNjM2E4OTYy
NzM5NmM0NDVhNjRkZDg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAyMi0wMy0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCB1bml0cyBmb3IgQ1NTIHR5cGVkIG9tCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1MzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0
VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3Rz
L2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMv
bnVtZXJpYy1vYmplY3RzL2NyZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NVbml0VmFsdWUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11
bHRpcGx5LXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0yNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IGZvY3VzZWQgYW5kIHZpc2libGUgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudCBzdGF0ZXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1VuaXRW
YWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDhhNWVmMWVjY2E4ZDY5OWQzNjEwNTIy
OWU5M2M5YmQ4MTQ5YTE2NzcuLjg3MzhlMTU5M2FkYTVhZDBjOThkNGMwMDRjYTRhNWMyZmQ5Y2Ji
YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVl
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlv
bi9jc3NVbml0VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAot
RkFJTCBDU1NVbml0VmFsdWUgd2l0aCBsZW5ndGggdW5pdCBjb25zdHJ1Y3RlZCBmcm9tIElETCBz
ZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBidXQg
Z290ICIzcHgiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0cnVj
dGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICIzLjE0JSIgYnV0IGdvdCAiM3BlcmNlbnQiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQg
Im51bWJlciIgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIjMuMTQiIGJ1dCBnb3QgIjNudW1iZXIiCi1GQUlMIENTU1VuaXRW
YWx1ZSB3aXRoIGludGVnZXIgdmFsdWVzIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMg
Y29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIzIiBidXQgZ290ICIzbnVtYmVyIgot
RkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBET01TdHJpbmcgbW9kaWZpZWQgYnkgInZhbHVlIiBz
ZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMuMTRw
eCIgYnV0IGdvdCAiM3B4IgotRkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBDU1NPTSBtb2RpZmll
ZCBieSAidmFsdWUiIHNldHRlciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIGxl
bmd0aCB1bml0IGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNT
IENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURMIHNl
cmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJlciIg
Y29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5pdFZh
bHVlIHdpdGggaW50ZWdlciB2YWx1ZXMgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBj
b3JyZWN0bHkKK1BBU1MgQ1NTS2V5d29yZFZhbHVlIGZyb20gRE9NU3RyaW5nIG1vZGlmaWVkIGJ5
ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU0tleXdvcmRWYWx1
ZSBmcm9tIENTU09NIG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVj
dGx5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmpl
Y3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dAppbmRleCA0YmUyN2JmMmJiOThhMTViZmZhNGQ4OTUwMDhkYjY5MzU0YTFhMWFiLi5l
Y2M5NTMzZjAwZjFhZTJlMjRlZjQ3Y2M2ZDE5NWQ5ZGU5OGM4N2Q3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmlj
LW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEs
OSBAQAogCi1GQUlMIEFkZGluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVy
Y2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIo
KSA9PiBuZXcgQ1NTTWF0aFN1bShhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgdHdv
IHR5cGVzIHdpdGggdGhlIHNhbWUgbm9uemVybyB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUgYXNz
ZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIEFkZGluZyB0d28g
dHlwZXMgd2l0aCBlbXB0eSBtYXBzIHdpdGggcmV0dXJucyBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFs
czogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIp
IDAKLUZBSUwgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGggcGVy
Y2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJ
TCBBZGRpbmcgYSB0eXBlIHdpdGggcGVyY2VudCAyIHJldHVybnMgdHlwZSB3aXRoIHBlcmNlbnQg
aGludCB0aHJvd3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBu
ZXcgQ1NTTWF0aFN1bShhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgYSB0eXBlIHdp
dGggYSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50IGFz
c2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcgdHdv
IHR5cGVzIHdpdGggdGhlIHNhbWUgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhl
IHBlcmNlbnQgaGludCBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAK
K1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhp
bnRzIHRocm93cyBUeXBlRXJyb3IKK1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRoIHRoZSBzYW1l
IG5vbnplcm8gdmFsdWVzIHJldHVybnMgc2FtZSB0eXBlCitQQVNTIEFkZGluZyB0d28gdHlwZXMg
d2l0aCBlbXB0eSBtYXBzIHdpdGggcmV0dXJucyBlbXB0eSBtYXAKK1BBU1MgQWRkaW5nIGEgdHlw
ZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50CitQQVNTIEFkZGlu
ZyBhIHR5cGUgd2l0aCBwZXJjZW50IDIgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50IHRo
cm93cyBUeXBlRXJyb3IKK1BBU1MgQWRkaW5nIGEgdHlwZSB3aXRoIGEgcGVyY2VudCBoaW50IHJl
dHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludAorUEFTUyBBZGRpbmcgdHdvIHR5cGVz
IHdpdGggdGhlIHNhbWUgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNl
bnQgaGludAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMt
b2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKaW5kZXggNTM2ZWE1MmU1M2IwY2NiOGNlMjc4MDY3MDMwNmEzNDdhZjE3MzkzZS4uZmQz
MGE1N2UyYTU1ZjAyNmQ3NjVhMWNkMjYxNTgzMDQwZmFkZThmOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmpl
Y3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtNjAsNiArNjAsNiBAQCBQ
QVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1heCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1l
IHVuaXQgc2ltcGxpZmllcyB0byBhCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBu
ZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUu
ZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZhbHVlcwogUEFTUyBDYW4gbm90IGRpdmlkZSB3aXRo
IENTU1VuaXRWYWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUKLUZBSUwg
Q1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gdGhlIHR5cGVz
IGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVt
YmVyKDMpLmFkZChDU1MucHgoMTApICxDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdwotRkFJ
TCBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlw
ZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IENTUy5u
dW1iZXIoMykuc3ViKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93CitQ
QVNTIENTU051bWVyaWNWYWx1ZS5hZGQgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRoZSB0
eXBlcyBhcmUgZGlmZmVyZW50LgorUEFTUyBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJv
dyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVk
LW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmlj
LW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDUyODQw
NzcxYzkwYTM5ZTZiNjQ3MWYxYzk2MWI4OThhMTYzNzQwODQuLjBhMjNkMzdhMjMwMzllNjU1Y2U1
NzhiYzMwZjRlNTY4OTNjYTg5MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2NyZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUtYS10
eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBDcmVh
dGluZyBhIHR5cGUgZnJvbSAibnVtYmVyIiByZXR1cm5zIHt9IGFzc2VydF9lcXVhbHM6IGxlbmd0
aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlM
IENyZWF0aW5nIGEgdHlwZSBmcm9tICJwZXJjZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9IGFz
c2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdv
dCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tIDxsZW5ndGg+IHJldHVybnMg
eyBsZW5ndGg6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAK
LUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEgfSBh
c3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBn
b3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJucyB7
IHRpbWU6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJl
cXVlbmN5PiByZXR1cm5zIHsgZnJlcXVlbmN5OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4
cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3Jl
YXRpbmcgYSB0eXBlIGZyb20gPHJlc29sdXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAxIH0g
YXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQg
Z290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVybnMg
eyBmbGV4OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVu
ZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gIm51
bWJlciIgcmV0dXJucyB7fQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSAicGVyY2VudCIgcmV0
dXJucyB7IHBlcmNlbnQ6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8bGVuZ3RoPiBy
ZXR1cm5zIHsgbGVuZ3RoOiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xlPiBy
ZXR1cm5zIHsgYW5nbGU6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0
dXJucyB7IHRpbWU6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5PiBy
ZXR1cm5zIHsgZnJlcXVlbmN5OiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPHJlc29s
dXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZy
b20gPGZsZXg+IHJldHVybnMgeyBmbGV4OiAxIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFs
dWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJ
bnZlcnQtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggNzlkZjQ4NmNjZTgxY2ZkZTQzYWVlYTMzNmI5
YmNkZjMxMjI3ZmU1Zi4uM2E5YjA3MGE5ZTE2OWQ1MmU2ZjRhYWM4NzhhNjgyZDAzMWM5NmM0ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3Nz
TWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoSW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIEludmVydGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJu
cyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVk
KSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIEludmVydGluZyBhIHR5cGUgbmVn
YXRlcyBhbGwgaXRzIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgLTEg
YnV0IGdvdCAwCi1GQUlMIEludmVydGluZyBhbiBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhlIG9y
aWdpbmFsIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIEludmVydGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFw
CitQQVNTIEludmVydGluZyBhIHR5cGUgbmVnYXRlcyBhbGwgaXRzIGV4cG9uZW50cworUEFTUyBJ
bnZlcnRpbmcgYW4gaW52ZXJ0ZWQgdHlwZSByZXR1cm5zIHRoZSBvcmlnaW5hbCB0eXBlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01h
dGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251
bWVyaWMtb2JqZWN0cy9jc3NNYXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDExNjNk
MGYxZjY4ODA4MTk2YjQ4MzFlZjE5ZjRmMjJhYzE2YjNlYjkuLmQzNDlhN2UyZDFmNGZmYmNkZGJk
YWJlMTY3ODlkYzMyODVmYTZkYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVk
LW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0ZS10
eXBlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBOZWdhdGluZyBhIHR5cGUg
d2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxlbmd0
aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlM
IE5lZ2F0aW5nIGEgdHlwZSByZXR1cm5zIHRoZSBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVu
Z3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIE5lZ2F0aW5nIGEgdHlwZSB3aXRoIGVtcHR5
IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAKK1BBU1MgTmVnYXRpbmcgYSB0eXBlIHJldHVybnMg
dGhlIHNhbWUgdHlwZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251
bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9z
dHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CmluZGV4IGYzNzdhNzIyMDIxYmViYWIyMDg2YWRmYjcyNWEwOTQ0YmE5
Zjc5OWUuLjRiZThlNzFkN2M2MDU0MWRhZDc5NTk2NjlmOGE0MmQ2NjRlMzRlYTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMv
bnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0x
LDkgKzEsOSBAQAogCi1GQUlMIENvbnN0cnVjdGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBhcmd1
bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIo
KSA9PiBuZXcgc3ViY2xhc3MoKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb25zdHJ1Y3RpbmcgYSBD
U1NNYXRoU3VtIHdpdGggbm8gYXJndW1lbnRzIHRocm93cyBhIFN5bnRheEVycm9yCiBQQVNTIENT
U01hdGhTdW0gY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1VuaXRW
YWx1ZQogUEFTUyBDU1NNYXRoU3VtIGNhbiBiZSBjb25zdHJ1Y3RlZCBmcm9tIG1vcmUgdGhhbiBv
bmUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoU3VtLm9wZXJhdG9yIGlzIHJlYWRv
bmx5Ci1GQUlMIENvbnN0cnVjdGluZyBhIENTU01hdGhQcm9kdWN0IHdpdGggbm8gYXJndW1lbnRz
IHRocm93cyBhIFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4g
bmV3IHN1YmNsYXNzKCkiIGRpZCBub3QgdGhyb3cKK1BBU1MgQ29uc3RydWN0aW5nIGEgQ1NTTWF0
aFByb2R1Y3Qgd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IKIFBBU1MgQ1NT
TWF0aFByb2R1Y3QgY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1Vu
aXRWYWx1ZQogUEFTUyBDU1NNYXRoUHJvZHVjdCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBtb3Jl
IHRoYW4gb25lIG51bWJlciBDU1NVbml0VmFsdWUKIFBBU1MgQ1NTTWF0aFByb2R1Y3Qub3BlcmF0
b3IgaXMgcmVhZG9ubHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVt
ZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1z
dWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4
IDY1YjdkODQ2YzNmYzc0MjlhM2FiZTMyMWE4ZjQ2NmY5Mzg4ZmU5ZjcuLjNhYTJlYzhjNWNiNTZl
MjA3MmMzMTA4Y2VlMzllODE2MTE4ZTY2NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVk
LW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5pdFZh
bHVlIHdpdGggYW4gdW5rbm93biB1bml0IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
X2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IENTU1VuaXRWYWx1ZSgwLCAnbGVtb24nKSIgZGlkIG5v
dCB0aHJvdwotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5pdFZhbHVlIHdpdGggYSBlbXB0eSBzdHJp
bmcgdW5pdCB0aHJvd3MgYSBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigp
ID0+IG5ldyBDU1NVbml0VmFsdWUoMCwgJycpIiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0cnVj
dGluZyBDU1NVbml0VmFsdWUgd2l0aCBhbiB1bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9y
CitQQVNTIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBhIGVtcHR5IHN0cmluZyB1bml0
IHRocm93cyBhIFR5cGVFcnJvcgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVk
IHdpdGggbnVtYmVyCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBw
ZXJjZW50CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBlbQpAQCAt
MTgsNyArMTgsNyBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCB2
bWluCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCB2bWF4CiBQQVNT
IENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBjbQogUEFTUyBDU1NVbml0VmFs
dWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbW0KLUZBSUwgQ1NTVW5pdFZhbHVlIGNhbiBiZSBj
b25zdHJ1Y3RlZCB3aXRoIFEgYXNzZXJ0X2VxdWFsczogdW5pdCBpcyBzYW1lIGFzIGdpdmVuIGJ5
IGNvbnN0cnVjdG9yIGV4cGVjdGVkICJxIiBidXQgZ290ICJRIgorUEFTUyBDU1NVbml0VmFsdWUg
Y2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUQogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0
cnVjdGVkIHdpdGggaW4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IHB0CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBwYwpAQCAtMjks
OCArMjksOCBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCByYWQK
IFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHR1cm4KIFBBU1MgQ1NT
VW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHMKIFBBU1MgQ1NTVW5pdFZhbHVlIGNh
biBiZSBjb25zdHJ1Y3RlZCB3aXRoIG1zCi1GQUlMIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCBIeiBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUgYXMgZ2l2ZW4gYnkgY29u
c3RydWN0b3IgZXhwZWN0ZWQgImh6IiBidXQgZ290ICJIeiIKLUZBSUwgQ1NTVW5pdFZhbHVlIGNh
biBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIeiBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUgYXMg
Z2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgImtoeiIgYnV0IGdvdCAia0h6IgorUEFTUyBD
U1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggSHoKK1BBU1MgQ1NTVW5pdFZhbHVl
IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIegogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNv
bnN0cnVjdGVkIHdpdGggZHBpCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQg
d2l0aCBkcGNtCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBkcHB4
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9j
c3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFs
dWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggOGE4Yjk5
NzhiNDIzODlhZDBiZDYwN2M0NzEzNjU5ZmRmZTc1ZjVjMS4uYmI5OTNiNmE0ZWFmZDkyMjc1ZmQ0
ZTQ0NjM0ODJkOTc0YTUxZGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nl
cy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMg
d2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVyY2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9yIGFz
c2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFByb2R1Y3QoYSwgYiki
IGRpZCBub3QgdGhyb3cKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBiYXNl
IHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1
dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgYmFzZSB0
eXBlcyBhZGRzIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQg
Z290IDAKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHJlc3BlY3RzIHRoZSBzaWduIG9mIHRo
ZSBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1G
QUlMIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wIGFzc2Vy
dF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyBh
IHR5cGUgd2l0aCBwZXJjZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9l
cXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28g
dHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQgYXNz
ZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIE11bHRpcGx5aW5n
IHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBU
eXBlRXJyb3IKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBiYXNlIHR5cGVz
IGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVu
dCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyBy
ZXNwZWN0cyB0aGUgc2lnbiBvZiB0aGUgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIGEgdHlw
ZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wCitQQVNTIE11bHRpcGx5aW5nIGEgdHlwZSB3
aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQKK1BBU1MgTXVsdGlwbHlp
bmcgdHdvIHR5cGVzIHdpdGggc2FtZSBwZXJjZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2VudCBo
aW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmpl
Y3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IGFjMmUwODA2
ZmVjM2FkN2VhOTEyZmU2ZmU4NzlkNWEwN2YyZGQzYzMuLjYzMDgwY2Q5OTVmYTRiN2E3ZDk0OGFm
N2M4NzhkZTQzMmQwMTQ3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMv
bnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4
dApAQCAtMTMsNSArMTMsNSBAQCBGQUlMIENvbnZlcnRpbmcgYSBDU1NNYXRoTWF4IHRvIGEgc2lu
Z2xlIHVuaXQgZmluZHMgdGhlIG1heCB2YWx1ZSBhc3NlcnRfYXBwcm94XwogRkFJTCBDb252ZXJ0
aW5nIGEgQ1NTTWF0aE1heCB0byBhIHNpbmdsZSB1bml0IHdpdGggZGlmZmVyZW50IHVuaXRzIHRo
cm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IENT
U01hdGhNYXgoQ1NTLnB4KDIpLCBDU1MucygzKSkudG8oJ3B4JykiIGRpZCBub3QgdGhyb3cKIEZB
SUwgQ29udmVydGluZyBhIENTU01hdGhOZWdhdGUgdG8gYSBzaW5nbGUgdW5pdCBuZWdhdGVzIGl0
cyB2YWx1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgLTEgKy8tIDAuMDAwMDAxIGJ1
dCBnb3QgMQogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aEludmVydCB0byBhIHNpbmdsZSB1bml0
IGludmVydHMgaXRzIHZhbHVlIGFuZCB1bml0cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0
ZWQgMiArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCi1GQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4IGV4
cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQg
MzUwMCArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCitGQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4IGV4
cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBUeXBlIGVycm9yCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456126</attachid>
            <date>2022-03-30 08:48:59 -0700</date>
            <delta_ts>2022-03-30 10:10:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220330084858.patch</filename>
            <type>text/plain</type>
            <size>64635</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNGIyMTJjODg2NTdlNDg3MmYxYTE4MTVjYzM0NWVi
NDk5OTlhNTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgdHlwZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBvZmYgYnkgZGVmYXVsdCBhbmQgdGhp
cyBwYXJ0IGlzIGNvdmVyZWQgYnkgV1BUIHRlc3RzLgorCisgICAgICAgICogY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnN1Yik6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVmFsdWU6OnRvU3VtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpDU1NOdW1lcmljVmFsdWUpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpudW1lcmljVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVuaXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjp1bml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVW5pdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjpD
U1NVbml0VmFsdWUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuZWdhdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoSW52ZXJ0OjpD
U1NNYXRoSW52ZXJ0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptdWx0aXBseVR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhQcm9kdWN0Ojp2YWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU01hdGhTdW06OkNTU01hdGhTdW0pOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoVmFsdWU6OkNTU01hdGhWYWx1ZSk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjplYWNoQmFz
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWdTdHJpbmcpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6dmFsdWVGb3JUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNUeXBlOjphcHBseVBlcmNlbnRIaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNUeXBlOjpkZWJ1Z1N0cmluZyBjb25zdCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsOgor
CiAyMDIyLTAzLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBQR08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCAx
YzkwYzc2ZWM1MGFkMjcwZDdkNDkzMTdhNjIxYTU0YzBkOTBkZTNmLi5lMDg3YTEzYjg2NGI3NmQ0
OWU5MjgwZWE2NzJhMDE5ZGRiYTJkNDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlclRva2VuLmNwcApAQCAtNDQsNyArNDQsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPgogQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VS
VChkYXRhKTsKLSAgICBBU1NFUlQobGVuZ3RoKTsKICAgICBzd2l0Y2ggKGxlbmd0aCkgewogICAg
IGNhc2UgMToKICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVswXSkpIHsKQEAgLTMy
OCw3ICszMjcsNyBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShj
b25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX1VOS05PV047CiB9CiAKLXN0YXRpYyBDU1NVbml0VHlwZSBzdHJpbmdUb1VuaXRU
eXBlKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKK0NTU1VuaXRUeXBlIENTU1BhcnNlclRva2VuOjpz
dHJpbmdUb1VuaXRUeXBlKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKIHsKICAgICBpZiAoc3RyaW5n
Vmlldy5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21U
cmllKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgKaW5kZXggODc0YjQ2Mzc3ZDA3
MmFiNzBjMTIxMjNlYjgwZTk2YjU3NGIzNzQ2OS4uYmE2Mjc2OWZjODYyZTc5ZmJhODJiMGMwZTgw
Mzc3M2NmOWQzMzJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9r
ZW4uaApAQCAtMTA1LDYgKzEwNSw4IEBAIHB1YmxpYzoKIAogICAgIENTU1BhcnNlclRva2VuKEhh
c2hUb2tlblR5cGUsIFN0cmluZ1ZpZXcpOwogCisgICAgc3RhdGljIENTU1VuaXRUeXBlIHN0cmlu
Z1RvVW5pdFR5cGUoU3RyaW5nVmlldyk7CisgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IENTU1BhcnNlclRva2VuJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IENTU1BhcnNlclRva2VuJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0Zh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgK
aW5kZXggMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJjNzIxMzNkMTU2M2JiMjBmMC4uYzQwZWRiYTA3
MmQzNDcxMGQ3YWM2YjcxMGE1Y2UzNzdkZjYzNTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3Mg
Q1NTTnVtZXJpY0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3Bh
Y2U+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1l
c3BhY2UmKSB7IH0KIAotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciJfcyk7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7
IH0KIAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjaCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBy
bGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJs
aCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2
aSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2bWF4Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3MpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAicSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsgfQotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJwYyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsgfQotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcWgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiY3FtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfRU1TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0VY
Uyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DSFMpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfSUMpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1JFTVMpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTEhTKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19STEhTKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1ZXKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX1ZIKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBD
U1NVbml0VHlwZTo6Q1NTX1ZJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0
VHlwZTo6Q1NTX1ZCKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfVk1JTik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6
Q1NTX1ZNQVgpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
Q00pOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTU0pOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19RKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0lOKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BUKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1BDKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBj
cXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NT
VW5pdFR5cGU6OkNTU19DUVcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0
VHlwZTo6Q1NTX0NRSCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfQ1FJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19DUUIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
Q1FNSU4pOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
Q1FNQVgpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJkZWciX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ0dXJuIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWco
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5p
dFR5cGU6OkNTU19ERUcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5
cGU6OkNTU19HUkFEKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19SQUQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19UVVJOKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
cyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19NUyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImh6Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImtoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5
cGU6OkNTU19IWik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfS0haKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJkcGkiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20iX3Mp
OyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQSSk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQQ00pOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19EUFBYKTsgfQogCiAKICAgICAvLyA8ZmxleD4K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0ZSKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBlZDdiZjk4Mzhi
MjgzNmYwMGZkZDVhOTVhNDliN2IwYzAzNjY2ZWZhLi5mYTQzMWRjMmQ5ODZiYTNlMmI0YzcwMGQy
NjYzNWY0YjE0ZTFlNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFs
dWU+IG5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgIGlmIChhdXRvKiBt
YXRoTmVnYXRlID0gZHluYW1pY0Rvd25jYXN0PENTU01hdGhOZWdhdGU+KHZhbHVlLmdldCgpKSkK
ICAgICAgICAgcmV0dXJuIG1hdGhOZWdhdGUtPnZhbHVlKCk7CiAgICAgaWYgKGF1dG8qIHVuaXRW
YWx1ZSA9IGR5bmFtaWNEb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKSkKLSAgICAg
ICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0VmFsdWUtPnZhbHVlKCksIHVuaXRW
YWx1ZS0+dW5pdCgpKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKC11bml0
VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5pdEVudW0oKSk7CiAgICAgcmV0dXJuIENTU01h
dGhOZWdhdGU6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKQEAgLTY3LDExICs2NywxMCBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGludmVydChSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiYmIHZhbHVlKQogICAgICAgICByZXR1cm4gUmVmIHsgbWF0aEludmVydC0+
dmFsdWUoKSB9OwogCiAgICAgaWYgKGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNEb3duY2FzdDxD
U1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKSkgewotICAgICAgICAvLyBGSVhNRTogdW5pdHMgc2hv
dWxkIGJlIGVpdGhlciBBdG9taWNTdHJpbmdzIG9yIENTU1VuaXRUeXBlIGVudW1lcmF0aW9uIHZh
bHVlcy4KLSAgICAgICAgaWYgKHVuaXRWYWx1ZS0+dW5pdCgpID09ICJudW1iZXIiKSB7CisgICAg
ICAgIGlmICh1bml0VmFsdWUtPnVuaXRFbnVtKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIp
IHsKICAgICAgICAgICAgIGlmICh1bml0VmFsdWUtPnZhbHVlKCkgPT0gMC4wIHx8IHVuaXRWYWx1
ZS0+dmFsdWUoKSA9PSAtMC4wKQogICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBS
YW5nZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBD
U1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAgLyB1bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+
dW5pdCgpKSB9OworICAgICAgICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NT
VW5pdFZhbHVlOjpjcmVhdGUoMS4wIC8gdW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUtPnVu
aXRFbnVtKCkpIH07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTgzLDExICs4MiwxMSBAQCBzdGF0
aWMgUmVmUHRyPENTU051bWVyaWNWYWx1ZT4gb3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0KFQm
JiBvcGVyYXRpb24sIGNvbnN0CiB7CiAgICAgYm9vbCBhbGxWYWx1ZXNIYXZlU2FtZVVuaXQgPSB2
YWx1ZXMuc2l6ZSgpICYmIFdURjo6YWxsT2YodmFsdWVzLCBbJl0gKGNvbnN0IFJlZjxDU1NOdW1l
cmljVmFsdWU+JiB2YWx1ZSkgewogICAgICAgICBhdXRvKiB1bml0VmFsdWUgPSBkeW5hbWljRG93
bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiB1bml0VmFs
dWUgPyB1bml0VmFsdWUtPnVuaXQoKSA9PSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1sw
XS5nZXQoKSkudW5pdCgpIDogZmFsc2U7CisgICAgICAgIHJldHVybiB1bml0VmFsdWUgPyB1bml0
VmFsdWUtPnVuaXRFbnVtKCkgPT0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbMF0uZ2V0
KCkpLnVuaXRFbnVtKCkgOiBmYWxzZTsKICAgICB9KTsKICAgICBpZiAoYWxsVmFsdWVzSGF2ZVNh
bWVVbml0KSB7CiAgICAgICAgIGF1dG8mIGZpcnN0VW5pdFZhbHVlID0gZG93bmNhc3Q8Q1NTVW5p
dFZhbHVlPih2YWx1ZXNbMF0uZ2V0KCkpOwotICAgICAgICBTdHJpbmcgdW5pdCA9IGZpcnN0VW5p
dFZhbHVlLnVuaXQoKTsKKyAgICAgICAgYXV0byB1bml0ID0gZmlyc3RVbml0VmFsdWUudW5pdEVu
dW0oKTsKICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGZpcnN0VW5pdFZhbHVlLnZhbHVlKCk7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKQogICAgICAg
ICAgICAgcmVzdWx0ID0gb3BlcmF0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2
YWx1ZXNbaV0uZ2V0KCkpLnZhbHVlKCkpOwpAQCAtMTA3LDMyICsxMDYsMzMgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6
OnByZXBlbmRJdGVtc08KICAgICByZXR1cm4gdmFsdWVzOwogfQogCi1SZWY8Q1NTTnVtZXJpY1Zh
bHVlPiBDU1NOdW1lcmljVmFsdWU6OmFkZEludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mJiBudW1lcmljVmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
IENTU051bWVyaWNWYWx1ZTo6YWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmIG51bWVyaWNWYWx1ZXMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmku
b3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS1hZGQKICAgICBhdXRvIHZhbHVl
cyA9IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpczxDU1NNYXRoU3VtPihXVEZNb3ZlKG51bWVyaWNW
YWx1ZXMpKTsKIAogICAgIGlmIChhdXRvIHJlc3VsdCA9IG9wZXJhdGlvbk9uVmFsdWVzT2ZTYW1l
VW5pdChzdGQ6OnBsdXM8ZG91YmxlPigpLCB2YWx1ZXMpKQotICAgICAgICByZXR1cm4gKnJlc3Vs
dDsKLQotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcCA0IHRvIGNoZWNrIHRoYXQgdGhlIHR5
cGVzIGNhbiBiZSBhZGRlZC4KKyAgICAgICAgcmV0dXJuIHsgKnJlc3VsdCB9OwogCi0gICAgcmV0
dXJuIENTU01hdGhTdW06OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpOworICAgIGF1dG8gc3VtID0g
Q1NTTWF0aFN1bTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHN1bS5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHN1bS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgcmV0
dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgc3VtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CiB9
CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKEZpeGVkVmVjdG9y
PENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVl
Pj4gQ1NTTnVtZXJpY1ZhbHVlOjphZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVl
cykKIHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjptYXAoV1RGTW92ZSh2YWx1ZXMpLCBy
ZWN0aWZ5TnVtYmVyaXNoKSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNW
YWx1ZTo6c3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25P
cjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoRml4ZWRWZWN0b3I8
Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKICAgICByZXR1cm4gYWRkSW50ZXJuYWwoV1RGOjpt
YXAoV1RGTW92ZSh2YWx1ZXMpLCBbXSAoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKSB7CiAgICAg
ICAgIHJldHVybiBuZWdhdGUocmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsK
ICAgICB9KSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVs
dGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVl
cykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWYWx1
ZXMpCiB7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1v
bS8jZG9tLWNzc251bWVyaWN2YWx1ZS1tdWwKICAgICBhdXRvIHZhbHVlcyA9IHByZXBlbmRJdGVt
c09mVHlwZU9yVGhpczxDU1NNYXRoUHJvZHVjdD4oV1RGTW92ZShudW1lcmljVmFsdWVzKSk7CkBA
IC0xNDQsOCArMTQ0LDggQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpt
dWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAgYm9vbCBt
dWx0aXBsZVVuaXRzRm91bmQgeyBmYWxzZSB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gbm9uTnVtYmVyVW5pdEluZGV4OwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZh
bHVlcy5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgYXV0byYgdW5pdCA9IGRvd25jYXN0PENT
U1VuaXRWYWx1ZT4odmFsdWVzW2ldLmdldCgpKS51bml0KCk7Ci0gICAgICAgICAgICBpZiAodW5p
dCA9PSAibnVtYmVyIikKKyAgICAgICAgICAgIGF1dG8gdW5pdCA9IGRvd25jYXN0PENTU1VuaXRW
YWx1ZT4odmFsdWVzW2ldLmdldCgpKS51bml0RW51bSgpOworICAgICAgICAgICAgaWYgKHVuaXQg
PT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBpZiAobm9uTnVtYmVyVW5pdEluZGV4KSB7CiAgICAgICAgICAgICAgICAgbXVs
dGlwbGVVbml0c0ZvdW5kID0gdHJ1ZTsKQEAgLTE1NywxNyArMTU3LDE4IEBAIFJlZjxDU1NOdW1l
cmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENT
U051bWVyaWNWYWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAg
ICBmb3IgKGNvbnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAg
ICAgICAgICAgICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkp
LnZhbHVlKCk7Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/
IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgp
KS51bml0KCkgOiAibnVtYmVyIl9zOwotICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHByb2R1Y3QsIHVuaXQpOworICAgICAgICAgICAgYXV0byB1bml0ID0gbm9uTnVtYmVy
VW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJ
bmRleF0uZ2V0KCkpLnVuaXRFbnVtKCkgOiBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjsKKyAgICAg
ICAgICAgIHJldHVybiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2R1Y3QsIHVuaXQpIH07CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXAgNSB0byBwcm9k
dWNlIGEgdW5pdCBvZiB0aGUgY29ycmVjdCB0eXBlLgotCi0gICAgcmV0dXJuIENTU01hdGhQcm9k
dWN0OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKTsKKyAgICBhdXRvIHByb2R1Y3QgPSBDU1NNYXRo
UHJvZHVjdDo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgaWYgKHByb2R1Y3QuaGFzRXhj
ZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBwcm9kdWN0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAg
ICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBwcm9kdWN0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpIH07CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsKEZp
eGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmIHZhbHVlcykKIHsKICAgICByZXR1cm4gbXVsdGlwbHlJbnRlcm5hbChXVEY6Om1hcChXVEZN
b3ZlKHZhbHVlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKIH0KQEAgLTIzNSwxMCArMjM2LDEwIEBA
IFJlZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5pdCkKICAg
ICBVTlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmku
b3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJWE1FOiBh
ZGQgaW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9z
KTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCBDU1NVbml0VHlwZTo6Q1NT
X05VTUJFUik7CiB9CiAKLVJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZp
eGVkVmVjdG9yPFN0cmluZz4mJiB1bml0cykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4g
Q1NTTnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHVuaXRzKTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGlu
aS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvc3VtCkBAIC0yNDYsMTMg
KzI0Nyw2IEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVj
dG9yPFN0cmluZz4mJiB1bml0cykKICAgICByZXR1cm4gQ1NTTWF0aFN1bTo6Y3JlYXRlKEZpeGVk
VmVjdG9yPENTU051bWJlcmlzaD4geyAxLjAgfSk7CiB9CiAKLUNTU051bWVyaWNUeXBlIENTU051
bWVyaWNWYWx1ZTo6dHlwZSgpCi17Ci0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmku
b3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCi0gICAgLy8gRklYTUU6
IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NOdW1lcmljVHlwZSB7IH07Ci19Ci0KIEV4Y2VwdGlv
bk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYm
IGNzc1RleHQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAppbmRleCAyNmNhODM5ZTRjZTQ5NjVjN2M3
ZmRiNWE5ZmVkMGUwOTdhZjFhNTU1Li43MTUxMDFkOTQxZmViMDc5MjYwNWQ0N2ZiMTA0ZTFjZTUy
MjVkN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmlj
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1
ZGUgIkNTU051bWVyaWNUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVWYWx1ZS5oIgogI2luY2x1
ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkVmVjdG9yLmg+CkBAIC0zNiw3ICszNyw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU051bWVyaWNWYWx1ZTsKIGNsYXNzIENT
U1VuaXRWYWx1ZTsKIGNsYXNzIENTU01hdGhTdW07Ci1zdHJ1Y3QgQ1NTTnVtZXJpY1R5cGU7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIApAQCAtNDYsOSArNDYsOSBA
QCBjbGFzcyBDU1NOdW1lcmljVmFsdWUgOiBwdWJsaWMgQ1NTU3R5bGVWYWx1ZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChDU1NOdW1lcmljVmFsdWUpOwogcHVibGljOgogCi0gICAgUmVm
PENTU051bWVyaWNWYWx1ZT4gYWRkKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAg
UmVmPENTU051bWVyaWNWYWx1ZT4gc3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0g
ICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7
CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZChGaXhlZFZlY3RvcjxD
U1NOdW1iZXJpc2g+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBz
dWIoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gbXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgRXhj
ZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGRpdihGaXhlZFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1pbihGaXhlZFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1heChGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYpOwpAQCAtNTYsOCArNTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcXVhbHMo
Rml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICAKICAgICBSZWY8Q1NTVW5pdFZhbHVl
PiB0byhTdHJpbmcmJik7Ci0gICAgUmVmPENTU01hdGhTdW0+IHRvU3VtKEZpeGVkVmVjdG9yPFN0
cmluZz4mJik7Ci0gICAgQ1NTTnVtZXJpY1R5cGUgdHlwZSgpOworICAgIEV4Y2VwdGlvbk9yPFJl
ZjxDU1NNYXRoU3VtPj4gdG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmKTsKKworICAgIGNvbnN0
IENTU051bWVyaWNUeXBlJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgCiAg
ICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBwYXJzZShTdHJpbmcm
Jik7CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+IHJlY3RpZnlOdW1iZXJpc2goQ1NT
TnVtYmVyaXNoJiYpOwpAQCAtNjUsMTEgKzY2LDE0IEBAIHB1YmxpYzoKICAgICBDU1NTdHlsZVZh
bHVlVHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5
cGU6OkNTU051bWVyaWNWYWx1ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVmPENTU051bWVyaWNW
YWx1ZT4gYWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKLSAgICBS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGFkZElu
dGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgRXhjZXB0aW9uT3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+IG11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8UmVmPENTU051
bWVyaWNWYWx1ZT4+IHByZXBlbmRJdGVtc09mVHlwZU9yVGhpcyhWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+JiYpOwogCi0gICAgQ1NTTnVtZXJpY1ZhbHVlKCkgPSBkZWZhdWx0OworICAgIENT
U051bWVyaWNWYWx1ZShDU1NOdW1lcmljVHlwZSB0eXBlID0geyB9KQorICAgICAgICA6IG1fdHlw
ZShXVEZNb3ZlKHR5cGUpKSB7IH0KKworICAgIENTU051bWVyaWNUeXBlIG1fdHlwZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NV
bml0VmFsdWUuY3BwCmluZGV4IGI3NjA1NGZkZGQ0YjAzMjFlMmNiMDUyNDVhOGRlZGMxNDFmZmMx
OGEuLmZmNzQyOWEzOTdmNDRmY2VhMmYwYTMzMjkwMTVlNmVmZjA1NmYzMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcApAQCAtMzIsMTIgKzMyLDk3IEBA
CiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCisjaW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW4u
aCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKENTU1VuaXRWYWx1ZSk7CiAKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVy
aWNUeXBlPiBudW1lcmljVHlwZShDU1NVbml0VHlwZSB1bml0KQoreworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1jcmVh
dGUtYS10eXBlCisgICAgQ1NTTnVtZXJpY1R5cGUgdHlwZTsKKyAgICBzd2l0Y2ggKHVuaXRDYXRl
Z29yeSh1bml0KSkgeworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpOdW1iZXI6CisgICAgICAg
IHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6UGVy
Y2VudDoKKyAgICAgICAgdHlwZS5wZXJjZW50ID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92
ZSh0eXBlKSB9OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpMZW5ndGg6CisgICAgICAgIHR5
cGUubGVuZ3RoID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAgIGNh
c2UgQ1NTVW5pdENhdGVnb3J5OjpBbmdsZToKKyAgICAgICAgdHlwZS5hbmdsZSA9IDE7CisgICAg
ICAgIHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6
VGltZToKKyAgICAgICAgdHlwZS50aW1lID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0
eXBlKSB9OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpGcmVxdWVuY3k6CisgICAgICAgIHR5
cGUuZnJlcXVlbmN5ID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAg
IGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOgorICAgICAgICB0eXBlLnJlc29sdXRp
b24gPSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NV
bml0Q2F0ZWdvcnk6Ok90aGVyOgorICAgICAgICBpZiAodW5pdCA9PSBDU1NVbml0VHlwZTo6Q1NT
X0ZSKSB7CisgICAgICAgICAgICB0eXBlLmZsZXggPSAxOworICAgICAgICAgICAgcmV0dXJuIHsg
V1RGTW92ZSh0eXBlKSB9OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGF0aWMgQ1NTVW5pdFR5cGUgcGFyc2VV
bml0KGNvbnN0IFN0cmluZyYgdW5pdCkKK3sKKyAgICBpZiAodW5pdCA9PSAibnVtYmVyIl9zKQor
ICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7CisgICAgaWYgKHVuaXQgPT0g
InBlcmNlbnQiX3MpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U7
CisgICAgcmV0dXJuIENTU1BhcnNlclRva2VuOjpzdHJpbmdUb1VuaXRUeXBlKHVuaXQpOworfQor
CitTdHJpbmcgQ1NTVW5pdFZhbHVlOjp1bml0KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdW5p
dCkgeworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgIHJldHVybiAi
bnVtYmVyIl9zOworICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgorICAgICAg
ICByZXR1cm4gInBlcmNlbnQiX3M7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB1bml0U2VyaWFsaXphdGlvbigpOworfQorCitTdHJpbmcgQ1NTVW5pdFZh
bHVlOjp1bml0U2VyaWFsaXphdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENTU1ByaW1pdGl2
ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhtX3VuaXQpOworfQorCitFeGNlcHRpb25PcjxSZWY8Q1NT
VW5pdFZhbHVlPj4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJp
bmcmIHVuaXQpCit7CisgICAgYXV0byBwYXJzZWRVbml0ID0gcGFyc2VVbml0KHVuaXQpOworICAg
IGlmIChwYXJzZWRVbml0ID09IENTU1VuaXRUeXBlOjpDU1NfVU5LTk9XTikKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIGF1dG8gdHlwZSA9IG51bWVyaWNUeXBl
KHBhcnNlZFVuaXQpOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciB9OworICAgIGF1dG8gdW5pdFZhbHVlID0gYWRvcHRSZWYoKm5ldyBDU1NVbml0
VmFsdWUodmFsdWUsIHBhcnNlZFVuaXQpKTsKKyAgICB1bml0VmFsdWUtPm1fdHlwZSA9IFdURk1v
dmUoKnR5cGUpOworICAgIHJldHVybiB1bml0VmFsdWU7Cit9CisKK0NTU1VuaXRWYWx1ZTo6Q1NT
VW5pdFZhbHVlKGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdW5pdCkKKyAgICA6IENTU051bWVy
aWNWYWx1ZShudW1lcmljVHlwZSh1bml0KS52YWx1ZV9vcihDU1NOdW1lcmljVHlwZSgpKSkKKyAg
ICAsIG1fdmFsdWUodmFsdWUpCisgICAgLCBtX3VuaXQodW5pdCkKK3sKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL0NTU1VuaXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5p
dFZhbHVlLmgKaW5kZXggMmMyZTllMzRkZmU2ZTM1NjM3NDIzNzk1NjM4ZGM2YmU3MTljNWNmZi4u
ZDg5YTFmMGY5YTUzYjJmZjNkZTMwYjVlNjQ0MDc1Nzg3YjNhYzcxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmgKQEAgLTM0LDMzICszNCwyOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgQ1NTVW5pdFR5cGUgOiB1aW50OF90OworCiBj
bGFzcyBDU1NVbml0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTTnVtZXJpY1ZhbHVlIHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU1VuaXRWYWx1ZSk7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5p
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1
ZSwgdW5pdCkpOwotICAgIH0KKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU1VuaXRWYWx1
ZT4+IGNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCk7CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHVuaXQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCB1bml0KSk7IH0KIAot
ICAgIC8vIEZJWE1FOiBub3QgY29ycmVjdC4KLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtYWtlU3RyaW5nKChpbnQpIG1fdmFsdWUsIG1fdW5pdCk7IH0KKyAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtYWtlU3RyaW5nKEZvcm1hdHRl
ZENTU051bWJlcjo6Y3JlYXRlKG1fdmFsdWUpLCB1bml0U2VyaWFsaXphdGlvbigpKTsgfQogCiAg
ICAgZG91YmxlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgIHZvaWQgc2V0
VmFsdWUoZG91YmxlIHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQotICAgIGNvbnN0IFN0cmlu
ZyYgdW5pdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdDsgfQotICAgIHZvaWQgc2V0VW5pdChjb25z
dCBTdHJpbmcmIHVuaXQpIHsgbV91bml0ID0gdW5pdDsgfQorICAgIFN0cmluZyB1bml0KCkgY29u
c3Q7CisgICAgU3RyaW5nIHVuaXRTZXJpYWxpemF0aW9uKCkgY29uc3Q7CisgICAgQ1NTVW5pdFR5
cGUgdW5pdEVudW0oKSBjb25zdCB7IHJldHVybiBtX3VuaXQ7IH0KIAogcHJpdmF0ZToKLSAgICBD
U1NVbml0VmFsdWUoZG91YmxlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVuaXQpCi0gICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKLSAgICAgICAgLCBtX3VuaXQodW5pdCkKLSAgICB7Ci0gICAgfQorICAg
IENTU1VuaXRWYWx1ZShkb3VibGUsIENTU1VuaXRUeXBlKTsKIAogICAgIENTU1N0eWxlVmFsdWVU
eXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NT
VW5pdFZhbHVlOyB9CiAKICAgICBkb3VibGUgbV92YWx1ZTsKLSAgICBTdHJpbmcgbV91bml0Owor
ICAgIENTU1VuaXRUeXBlIG1fdW5pdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVy
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQu
Y3BwCmluZGV4IDVkOTEyZDgyNjI4ZjhiYTM0MjJiYzQ5OTgyYWM0ZTFiMTczNGZkYzQuLjUyNGI3
ZjcwMWJjOGU3YWU5ZDM4NjdjYWFlYTIwN2Q4MDQxZDA3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcApAQCAtNDEsOCAr
NDEsMzQgQEAgUmVmPENTU01hdGhJbnZlcnQ+IENTU01hdGhJbnZlcnQ6OmNyZWF0ZShDU1NOdW1i
ZXJpc2gmJiBudW1iZXJpc2gpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aEludmVy
dChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKIH0KIAorc3RhdGljIENTU051bWVyaWNUeXBlIG5lZ2F0
ZWRUeXBlKGNvbnN0IENTU051bWJlcmlzaCYgbnVtYmVyaXNoKQoreworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI3R5cGUtb2YtYS1jc3NtYXRodmFs
dWUKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1iZXJpc2gsCisgICAgICAgIFtdIChkb3Vi
bGUpIHsgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7IH0sCisgICAgICAgIFtdIChjb25zdCBSZWZQ
dHI8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICghdmFsdWUpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7CisgICAgICAgICAgICBDU1NO
dW1lcmljVHlwZSB0eXBlID0gdmFsdWUtPnR5cGUoKTsKKyAgICAgICAgICAgIGF1dG8gbmVnYXRl
ID0gW10gKGF1dG8mIG9wdGlvbmFsKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmFsKQor
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCA9ICpvcHRpb25hbCAqIC0xOworICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmxlbmd0aCk7CisgICAgICAgICAgICBuZWdh
dGUodHlwZS5hbmdsZSk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS50aW1lKTsKKyAgICAgICAg
ICAgIG5lZ2F0ZSh0eXBlLmZyZXF1ZW5jeSk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5yZXNv
bHV0aW9uKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmZsZXgpOworICAgICAgICAgICAgbmVn
YXRlKHR5cGUucGVyY2VudCk7CisgICAgICAgICAgICByZXR1cm4gdHlwZTsKKyAgICAgICAgfQor
ICAgICk7Cit9CisKIENTU01hdGhJbnZlcnQ6OkNTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYg
bnVtYmVyaXNoKQotICAgIDogbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJp
c2goV1RGTW92ZShudW1iZXJpc2gpKSkKKyAgICA6IENTU01hdGhWYWx1ZShuZWdhdGVkVHlwZShu
dW1iZXJpc2gpKQorICAgICwgbV92YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJp
c2goV1RGTW92ZShudW1iZXJpc2gpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAKaW5kZXggNGRhNDNjZDkwNzI2
ZDQ4MTZhZDZmYzYxNWYyMTJmZmZiYmY1MDZmNC4uMGFiNWY2NDEwZDM0MTMxMzVkYjRmZTIxN2Ez
ZDBiNzY3YzY5YjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoTmVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhOZWdhdGUuY3BwCkBAIC0zNiwxMyArMzYsMjcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTWF0aE5lZ2F0ZSk7CiAK
K3N0YXRpYyBDU1NOdW1lcmljVHlwZSBjb3B5VHlwZShjb25zdCBDU1NOdW1iZXJpc2gmIG51bWJl
cmlzaCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihudW1iZXJpc2gsCisgICAgICAgIFtd
IChkb3VibGUpIHsgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7IH0sCisgICAgICAgIFtdIChjb25z
dCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICghdmFs
dWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIENTU051bWVyaWNUeXBlKCk7CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUtPnR5cGUoKTsKKyAgICAgICAgfQorICAgICk7Cit9CisKIENTU01hdGhO
ZWdhdGU6OkNTU01hdGhOZWdhdGUoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQotICAgIDogbV92
YWx1ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gp
KSkKKyAgICA6IENTU01hdGhWYWx1ZShjb3B5VHlwZShudW1iZXJpc2gpKQorICAgICwgbV92YWx1
ZShDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSkK
IHsKIH0KIAogQ1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZShSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiYmIHZhbHVlKQotICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKKyAgICA6IENTU01hdGhW
YWx1ZSh2YWx1ZS0+dHlwZSgpKQorICAgICwgbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
UHJvZHVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQ
cm9kdWN0LmNwcAppbmRleCBkNzAwZTg5Zjg1NWU2ZDg0NWZmYzIyYzkyNmFiMzZiZTQ4MzEzNDBl
Li41OGI2MzAwNTYyZGYwNGJhMDQ1YWIwZWI3YWYwNDk3MjM3MjMzNTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcApA
QCAtMjYsMjkgKzI2LDY2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTTWF0
aFByb2R1Y3QuaCIKIAotI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgotCiAjaWYgRU5BQkxF
KENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTWF0aFBy
b2R1Y3QpOwogCi1DU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoRml4ZWRWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQotICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5
OjpjcmVhdGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NT
TnVtZXJpY1R5cGU+IG11bHRpcGx5VHlwZXMoY29uc3QgQ1NTTnVtZXJpY1R5cGUmIGEsIGNvbnN0
IENTU051bWVyaWNUeXBlJiBiKQoreworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5p
Lm9yZy9jc3MtdHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMKKyAg
ICBpZiAoYS5wZXJjZW50SGludCAmJiBiLnBlcmNlbnRIaW50ICYmICphLnBlcmNlbnRIaW50ICE9
ICpiLnBlcmNlbnRIaW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0
byBhZGQgPSBbXSAoYXV0byBsZWZ0LCBhdXRvIHJpZ2h0KSAtPiBzdGQ6Om9wdGlvbmFsPHVuc2ln
bmVkPiB7CisgICAgICAgIGlmICghbGVmdCkKKyAgICAgICAgICAgIHJldHVybiByaWdodDsKKyAg
ICAgICAgaWYgKCFyaWdodCkKKyAgICAgICAgICAgIHJldHVybiBsZWZ0OworICAgICAgICByZXR1
cm4gKmxlZnQgKyAqcmlnaHQ7CisgICAgfTsKKyAgICAKKyAgICByZXR1cm4geyB7CisgICAgICAg
IGFkZChhLmxlbmd0aCwgYi5sZW5ndGgpLAorICAgICAgICBhZGQoYS5hbmdsZSwgYi5hbmdsZSks
CisgICAgICAgIGFkZChhLnRpbWUsIGIudGltZSksCisgICAgICAgIGFkZChhLmZyZXF1ZW5jeSwg
Yi5mcmVxdWVuY3kpLAorICAgICAgICBhZGQoYS5yZXNvbHV0aW9uLCBiLnJlc29sdXRpb24pLAor
ICAgICAgICBhZGQoYS5mbGV4LCBiLmZsZXgpLAorICAgICAgICBhZGQoYS5wZXJjZW50LCBiLnBl
cmNlbnQpLAorICAgICAgICBhLnBlcmNlbnRIaW50ID8gYS5wZXJjZW50SGludCA6IGIucGVyY2Vu
dEhpbnQKKyAgICB9IH07Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoUHJvZHVjdD4+IENT
U01hdGhQcm9kdWN0OjpjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiBudW1iZXJpc2hl
cykKIHsKKyAgICByZXR1cm4gY3JlYXRlKFdURjo6bWFwKFdURk1vdmUobnVtYmVyaXNoZXMpLCBy
ZWN0aWZ5TnVtYmVyaXNoKSk7CiB9CiAKLUNTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChW
ZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQotICAgIDogbV92YWx1ZXMoQ1NT
TnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKK0V4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoUHJvZHVjdD4+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiB2YWx1ZXMpCiB7CisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9OworICAgIAorICAgIHN0ZDo6b3B0aW9u
YWw8Q1NTTnVtZXJpY1R5cGU+IHR5cGUgPSB2YWx1ZXNbMF0tPnR5cGUoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMTsgaSA8IHZhbHVlcy5zaXplKCk7IGkrKykgeworICAgICAgICB0eXBlID0gbXVs
dGlwbHlUeXBlcygqdHlwZSwgdmFsdWVzW2ldLT50eXBlKCkpOworICAgICAgICBpZiAoIXR5cGUp
CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgfQorCisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFByb2R1Y3QoV1RGTW92ZSh2YWx1ZXMpLCBX
VEZNb3ZlKCp0eXBlKSkpOwogfQogCi1jb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhQcm9k
dWN0Ojp2YWx1ZXMoKSBjb25zdAorQ1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KFZlY3Rv
cjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBlKQorICAg
IDogQ1NTTWF0aFZhbHVlKFdURk1vdmUodHlwZSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmlj
QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQogewotICAgIHJldHVybiBtX3ZhbHVlcy5n
ZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCmluZGV4IDYwYWYwYjc3NTNj
OTYzZTVmYTgxODg5YWM0NzkyYWI1Yjk1ZWM1ZjQuLjhlZDYwNWYzNTNiYTMzZTg1N2ZiYWQzMGQ3
OWU5YTM3MTU0ZjRlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhQcm9kdWN0LmgKQEAgLTM3LDE1ICszNywxNSBAQCBjbGFzcyBDU1NOdW1l
cmljQXJyYXk7CiBjbGFzcyBDU1NNYXRoUHJvZHVjdCBmaW5hbCA6IHB1YmxpYyBDU1NNYXRoVmFs
dWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFByb2R1Y3QpOwogcHVibGlj
OgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q1NTTWF0aFByb2R1
Y3Q+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRo
UHJvZHVjdChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsgfQotICAgIGNvbnN0IENTU051
bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3Q7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxD
U1NNYXRoUHJvZHVjdD4+IGNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+KTsKKyAgICBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gY3JlYXRlKFZlY3RvcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4pOworICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBDU1NNYXRo
T3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0
b3I6OlByb2R1Y3Q7IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhQcm9kdWN0OyB9CiAKLSAgICBD
U1NNYXRoUHJvZHVjdChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIENTU01hdGhQ
cm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgQ1NTTWF0aFByb2R1
Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwogICAgIFJl
ZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKaW5kZXggYTZkOWVkOTFmMjg5ZTJh
YTQ4N2E0OThjOTdiOGY4MDJhN2ViYWIzOC4uNDlhMTE4YzVkYTJmNzAzZjk0MGM1NDg4NmVmY2Yy
NjYwMTVjZjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoU3VtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhTdW0uY3BwCkBAIC0yNiwyMyArMjYsNjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJDU1NNYXRoU3VtLmgiCiAKLSNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIK
LQogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXku
aCIKKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU01hdGhTdW0pOwogCi1DU1NNYXRoU3VtOjpDU1NNYXRoU3VtKEZpeGVkVmVjdG9y
PENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNB
cnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PENTU051bWVyaWNUeXBlPiBhZGRUeXBlcyhDU1NOdW1lcmljVHlwZSBhLCBDU1NOdW1lcmljVHlw
ZSBiKQogeworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQt
b20vI2Nzc251bWVyaWN2YWx1ZS1hZGQtdHdvLXR5cGVzCisgICAgaWYgKGEucGVyY2VudEhpbnQg
JiYgYi5wZXJjZW50SGludCAmJiAqYS5wZXJjZW50SGludCAhPSAqYi5wZXJjZW50SGludCkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChhLnBlcmNlbnRIaW50KQorICAg
ICAgICBiLmFwcGx5UGVyY2VudEhpbnQoKmEucGVyY2VudEhpbnQpOworICAgIGlmIChiLnBlcmNl
bnRIaW50KQorICAgICAgICBhLmFwcGx5UGVyY2VudEhpbnQoKmIucGVyY2VudEhpbnQpOworCisg
ICAgaWYgKGEgPT0gYikKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZShhKSB9OworCisgICAgZm9y
IChhdXRvIHR5cGUgOiBlYWNoQmFzZVR5cGUoKSkgeworICAgICAgICBpZiAodHlwZSA9PSBDU1NO
dW1lcmljQmFzZVR5cGU6OlBlcmNlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKCFhLnZhbHVlRm9yVHlwZSh0eXBlKSAmJiAhYi52YWx1ZUZvclR5cGUodHlwZSkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYS5hcHBseVBlcmNlbnRIaW50KHR5cGUpOworICAg
ICAgICBiLmFwcGx5UGVyY2VudEhpbnQodHlwZSk7CisgICAgICAgIGlmIChhLnZhbHVlRm9yVHlw
ZSh0eXBlKSAhPSBiLnZhbHVlRm9yVHlwZSh0eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgV1RGTW92ZShhKSB9OworfQorCitFeGNl
cHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IENTU01hdGhTdW06OmNyZWF0ZShGaXhlZFZlY3RvcjxD
U1NOdW1iZXJpc2g+IG51bWJlcmlzaGVzKQoreworICAgIHJldHVybiBjcmVhdGUoV1RGOjptYXAo
V1RGTW92ZShudW1iZXJpc2hlcyksIHJlY3RpZnlOdW1iZXJpc2gpKTsKK30KKworRXhjZXB0aW9u
T3I8UmVmPENTU01hdGhTdW0+PiBDU1NNYXRoU3VtOjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiB2YWx1ZXMpCit7CisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9OworCisgICAgc3RkOjpvcHRpb25hbDxD
U1NOdW1lcmljVHlwZT4gdHlwZSA9IHZhbHVlc1swXS0+dHlwZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAxOyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHR5cGUgPSBhZGRUeXBl
cygqdHlwZSwgdmFsdWVzW2ldLT50eXBlKCkpOworICAgICAgICBpZiAoIXR5cGUpCisgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgfQorCisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShXVEZNb3ZlKHZhbHVlcyksIFdURk1vdmUoKnR5cGUp
KSk7CiB9CiAKLUNTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmIHZhbHVlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdU
Rk1vdmUodmFsdWVzKSkpCitDU1NNYXRoU3VtOjpDU1NNYXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gdmFsdWVzLCBDU1NOdW1lcmljVHlwZSB0eXBlKQorICAgIDogQ1NTTWF0aFZh
bHVlKFdURk1vdmUodHlwZSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0
ZShXVEZNb3ZlKHZhbHVlcykpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4IGY5MmE2MTQxN2FiZTFjNGQ5ZTgxZjk0OGJi
ZmExOTk3YjYyZTcwMjEuLmQ1MjM3YmJmZTU0ZTRkZjBiNDc2NDIwNWZlYTY0ZDVmY2E2ZmNlYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5o
CkBAIC0zOCwxNSArMzgsMTUgQEAgY2xhc3MgQ1NTTnVtZXJpY0FycmF5OwogY2xhc3MgQ1NTTWF0
aFN1bSBmaW5hbCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoQ1NTTWF0aFN1bSk7CiBwdWJsaWM6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
cz4gc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsg
fQorICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IGNyZWF0ZShGaXhlZFZl
Y3RvcjxDU1NOdW1iZXJpc2g+KTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhT
dW0+PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+Pik7CiAgICAgY29uc3QgQ1NT
TnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5nZXQoKTsgfQog
CiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBnZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6U3VtOyB9CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUg
Z2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NN
YXRoU3VtOyB9CiAKLSAgICBDU1NNYXRoU3VtKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7
Ci0gICAgQ1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOworICAgIENT
U01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiwgQ1NTTnVtZXJpY1R5cGUpOwog
ICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVlLmgKaW5kZXggZDI5YWVhMzIx
Y2ZmZGFhMmJhNGFlMWFmNTc2MzI5Nzg3Y2JiMzg5Yi4uNTMxYWIzZTczNzNhYzJiMjNlZDIwNDYy
NGNkOGZkNTRiNmEwNGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhWYWx1ZS5oCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ1NTTWF0aFZhbHVlIDogcHVibGljIENTU051bWVyaWNWYWx1ZSB7CiBwdWJs
aWM6CisgICAgQ1NTTWF0aFZhbHVlKENTU051bWVyaWNUeXBlIHR5cGUgPSB7IH0pCisgICAgICAg
IDogQ1NTTnVtZXJpY1ZhbHVlKFdURk1vdmUodHlwZSkpIHsgfQogICAgIHZpcnR1YWwgQ1NTTWF0
aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCmluZGV4
IDlkZTUxOTAwOTZiOWI0MTdkNjhmMGZiNWQ1OWJjYTIyZGQwYWQ2NDUuLjQ4MTNjZTAyYTliMmEz
NmIyOTMzMWI4ZmQ5OGNkNmZlYjZjNmNhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVyaWNBcnJheSk7CiAKIFJlZjxD
U1NOdW1lcmljQXJyYXk+IENTU051bWVyaWNBcnJheTo6Y3JlYXRlKGNvbnN0IEZpeGVkVmVjdG9y
PENTU051bWJlcmlzaD4mIG51bWJlcmlzaGVzKQogeworICAgIC8vIEZJWE1FOiBTaW1wbGlmeSB0
aGlzLgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU051bWVyaWNBcnJheShXVEY6Om1hcChu
dW1iZXJpc2hlcywgW10oYXV0byYgbnVtYmVyaXNoKSAtPiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7
CiAgICAgICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goY29uc3Rf
Y2FzdDxDU1NOdW1iZXJpc2gmJj4obnVtYmVyaXNoKSk7CiAgICAgfSkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNCYXNlVHlwZS5o
CmluZGV4IGQwNTU3NzJlNGE5YWYxNWNjMjY2NmNhZWMwYjI0ZjA4ZmI2OTNlMzkuLjcwNWZlYjAx
ZjYwNDYyNGJmNDUyZDI3NjVlY2M0Yzk1YTkzNTRjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQmFzZVR5cGUuaApAQCAtMjcs
OSArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRlIDxhcnJh
eT4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlw
ZTogdWludDhfdCB7CitlbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlwZSA6IHVpbnQ4X3Qgewog
ICAgIExlbmd0aCwKICAgICBBbmdsZSwKICAgICBUaW1lLApAQCAtMzksNiArNDEsNDAgQEAgZW51
bSBjbGFzcyBDU1NOdW1lcmljQmFzZVR5cGU6IHVpbnQ4X3QgewogICAgIFBlcmNlbnQsCiB9Owog
Citjb25zdGV4cHIgc3RkOjphcnJheTxDU1NOdW1lcmljQmFzZVR5cGUsIDc+IGVhY2hCYXNlVHlw
ZSgpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpMZW5ndGgs
CisgICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGUsCisgICAgICAgIENTU051bWVyaWNC
YXNlVHlwZTo6VGltZSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGcmVxdWVuY3ksCisg
ICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6UmVzb2x1dGlvbiwKKyAgICAgICAgQ1NTTnVtZXJp
Y0Jhc2VUeXBlOjpGbGV4LAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OlBlcmNlbnQKKyAg
ICB9OworfQorCitjb25zdGV4cHIgY29uc3QgY2hhciogZGVidWdTdHJpbmcoQ1NTTnVtZXJpY0Jh
c2VUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBDU1NOdW1lcmlj
QmFzZVR5cGU6Okxlbmd0aDoKKyAgICAgICAgcmV0dXJuICJsZW5ndGgiOworICAgIGNhc2UgQ1NT
TnVtZXJpY0Jhc2VUeXBlOjpBbmdsZToKKyAgICAgICAgcmV0dXJuICJhbmdsZSI7CisgICAgY2Fz
ZSBDU1NOdW1lcmljQmFzZVR5cGU6OlRpbWU6CisgICAgICAgIHJldHVybiAidGltZSI7CisgICAg
Y2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeToKKyAgICAgICAgcmV0dXJuICJmcmVx
dWVuY3kiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpSZXNvbHV0aW9uOgorICAgICAg
ICByZXR1cm4gInJlc29sdXRpb24iOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGbGV4
OgorICAgICAgICByZXR1cm4gImZsZXgiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpQ
ZXJjZW50OgorICAgICAgICByZXR1cm4gInBlcmNlbnQiOworICAgIH0KKyAgICByZXR1cm4gImlu
dmFsaWQiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oCmluZGV4
IGNmN2VhNmRhYTNmNGQ1NGYxMTQ1OWIyMjRkMDI3ODMwODkzYzkxN2IuLjRlY2U5ODBhNjFkNThi
ZmI1MzE1NjlkYTc2YzA0NTRiZjQwYTFiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmgKQEAgLTI5LDE4ICsyOSw3OCBAQAog
CiAjaW5jbHVkZSAiQ1NTTnVtZXJpY0Jhc2VUeXBlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBl
ZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCiBzdHJ1Y3QgQ1NTTnVtZXJpY1R5cGUgewot
ICAgIGxvbmcgbGVuZ3RoIHsgMCB9OwotICAgIGxvbmcgYW5nbGUgeyAwIH07Ci0gICAgbG9uZyB0
aW1lIHsgMCB9OwotICAgIGxvbmcgZnJlcXVlbmN5IHsgMCB9OwotICAgIGxvbmcgcmVzb2x1dGlv
biB7IDAgfTsKLSAgICBsb25nIGZsZXggeyAwIH07Ci0gICAgbG9uZyBwZXJjZW50IHsgMCB9Owor
ICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gbGVuZ3RoOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4g
YW5nbGU7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiB0aW1lOworICAgIHN0ZDo6b3B0aW9uYWw8
bG9uZz4gZnJlcXVlbmN5OworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gcmVzb2x1dGlvbjsKKyAg
ICBzdGQ6Om9wdGlvbmFsPGxvbmc+IGZsZXg7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBwZXJj
ZW50OwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY0Jhc2VUeXBlPiBwZXJjZW50SGludDsK
KworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NOdW1lcmljVHlwZSYgb3RoZXIpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbGVuZ3RoID09IG90aGVyLmxlbmd0aAorICAgICAgICAg
ICAgJiYgYW5nbGUgPT0gb3RoZXIuYW5nbGUKKyAgICAgICAgICAgICYmIHRpbWUgPT0gb3RoZXIu
dGltZQorICAgICAgICAgICAgJiYgZnJlcXVlbmN5ID09IG90aGVyLmZyZXF1ZW5jeQorICAgICAg
ICAgICAgJiYgcmVzb2x1dGlvbiA9PSBvdGhlci5yZXNvbHV0aW9uCisgICAgICAgICAgICAmJiBm
bGV4ID09IG90aGVyLmZsZXgKKyAgICAgICAgICAgICYmIHBlcmNlbnQgPT0gb3RoZXIucGVyY2Vu
dAorICAgICAgICAgICAgJiYgcGVyY2VudEhpbnQgPT0gb3RoZXIucGVyY2VudEhpbnQ7CisgICAg
fQorCisgICAgc3RkOjpvcHRpb25hbDxsb25nPiYgdmFsdWVGb3JUeXBlKENTU051bWVyaWNCYXNl
VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2Ug
Q1NTTnVtZXJpY0Jhc2VUeXBlOjpMZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOwor
ICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGU6CisgICAgICAgICAgICByZXR1
cm4gYW5nbGU7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpUaW1lOgorICAgICAg
ICAgICAgcmV0dXJuIHRpbWU7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGcmVx
dWVuY3k6CisgICAgICAgICAgICByZXR1cm4gZnJlcXVlbmN5OworICAgICAgICBjYXNlIENTU051
bWVyaWNCYXNlVHlwZTo6UmVzb2x1dGlvbjoKKyAgICAgICAgICAgIHJldHVybiByZXNvbHV0aW9u
OworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6RmxleDoKKyAgICAgICAgICAgIHJl
dHVybiBmbGV4OworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6UGVyY2VudDoKKyAg
ICAgICAgICAgIHJldHVybiBwZXJjZW50OworICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdm9pZCBhcHBseVBlcmNlbnRIaW50KENT
U051bWVyaWNCYXNlVHlwZSBoaW50KQorICAgIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jYXBwbHktdGhlLXBlcmNlbnQtaGludAorICAg
ICAgICBhdXRvJiBvcHRpb25hbCA9IHZhbHVlRm9yVHlwZShoaW50KTsKKyAgICAgICAgaWYgKCFv
cHRpb25hbCkKKyAgICAgICAgICAgIG9wdGlvbmFsID0gMDsKKyAgICAgICAgaWYgKHBlcmNlbnQp
CisgICAgICAgICAgICAqb3B0aW9uYWwgKz0gKnN0ZDo6ZXhjaGFuZ2UocGVyY2VudCwgMCk7Cisg
ICAgICAgIHBlcmNlbnRIaW50ID0gaGludDsKKyAgICB9CisKKyAgICBTdHJpbmcgZGVidWdTdHJp
bmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoInsiLAorICAgICAg
ICAgICAgbGVuZ3RoID8gbWFrZVN0cmluZygiIGxlbmd0aDoiLCAqbGVuZ3RoKSA6IFN0cmluZygp
LAorICAgICAgICAgICAgYW5nbGUgPyBtYWtlU3RyaW5nKCIgYW5nbGU6IiwgKmFuZ2xlKSA6IFN0
cmluZygpLAorICAgICAgICAgICAgdGltZSA/IG1ha2VTdHJpbmcoIiB0aW1lOiIsICp0aW1lKSA6
IFN0cmluZygpLAorICAgICAgICAgICAgZnJlcXVlbmN5ID8gbWFrZVN0cmluZygiIGZyZXF1ZW5j
eToiLCAqZnJlcXVlbmN5KSA6IFN0cmluZygpLAorICAgICAgICAgICAgcmVzb2x1dGlvbiA/IG1h
a2VTdHJpbmcoIiByZXNvbHV0aW9uOiIsICpyZXNvbHV0aW9uKSA6IFN0cmluZygpLAorICAgICAg
ICAgICAgZmxleCA/IG1ha2VTdHJpbmcoIiBmbGV4OiIsICpmbGV4KSA6IFN0cmluZygpLAorICAg
ICAgICAgICAgcGVyY2VudCA/IG1ha2VTdHJpbmcoIiBwZXJjZW50OiIsICpwZXJjZW50KSA6IFN0
cmluZygpLAorICAgICAgICAgICAgcGVyY2VudEhpbnQgPyBtYWtlU3RyaW5nKCIgcGVyY2VudEhp
bnQ6IiwgV2ViQ29yZTo6ZGVidWdTdHJpbmcoKnBlcmNlbnRIaW50KSkgOiBTdHJpbmcoKSwKKyAg
ICAgICAgIiB9Iik7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlk
bAppbmRleCBiZTkxNGEzYmNkMTc2ZGM1NzhiMjEwMWRkMGVhZTI1ZWQ5Yzk3N2I5Li5mOGRhNDc5
MWI2YWJlODE2MjBlNTlkY2Q0MzM3ZWYwY2Q2NmZiODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbApAQCAtMjMsNiAr
MjMsOCBAQAogKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRp
bmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10eXBlCisKIFsKICAgICBD
b25kaXRpb25hbD1DU1NfVFlQRURfT00sCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxZDVhMWMxOTY5NTIwYTgwZmU2Y2U2ZmFiNjc2
MjNlOWE2NWRlNTM4Li5mY2I3ZTkyNmRhZjA0MjIwZTNjM2E4OTYyNzM5NmM0NDVhNjRkZDg0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMy0y
OSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IEltcGxlbWVudCB1bml0cyBmb3IgQ1NTIHR5cGVkIG9tCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0VmFsdWUudGVudGF0aXZlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0
aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Ny
ZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVy
aWMtb2JqZWN0cy9jc3NNYXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJj
bGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVu
dGF0aXZlLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGZvY3VzZWQgYW5kIHZpc2li
bGUgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudCBzdGF0ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CmluZGV4IDhhNWVmMWVjY2E4ZDY5OWQzNjEwNTIyOWU5M2M5YmQ4MTQ5YTE2Nzcu
Ljg3MzhlMTU5M2FkYTVhZDBjOThkNGMwMDRjYTRhNWMyZmQ5Y2JiYWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0VmFsdWUudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBDU1NVbml0VmFsdWUg
d2l0aCBsZW5ndGggdW5pdCBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3Rs
eSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCi1GQUlMIENT
U1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlh
bGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIzLjE0JSIgYnV0IGdvdCAi
M3BlcmNlbnQiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJlciIgY29uc3RydWN0
ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IjMuMTQiIGJ1dCBnb3QgIjNudW1iZXIiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIGludGVnZXIg
dmFsdWVzIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICIzIiBidXQgZ290ICIzbnVtYmVyIgotRkFJTCBDU1NLZXl3b3JkVmFs
dWUgZnJvbSBET01TdHJpbmcgbW9kaWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBj
b3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMuMTRweCIgYnV0IGdvdCAiM3B4Igot
RkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBDU1NPTSBtb2RpZmllZCBieSAidmFsdWUiIHNldHRl
ciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBi
dXQgZ290ICIzcHgiCitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIGxlbmd0aCB1bml0IGNvbnN0cnVj
dGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1VuaXRWYWx1ZSB3aXRo
IHVuaXQgInBlcmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5
CitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJlciIgY29uc3RydWN0ZWQgZnJvbSBJ
REwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggaW50ZWdlciB2
YWx1ZXMgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NT
S2V5d29yZFZhbHVlIGZyb20gRE9NU3RyaW5nIG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNl
cmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU0tleXdvcmRWYWx1ZSBmcm9tIENTU09NIG1vZGlm
aWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBl
ZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCA0YmUy
N2JmMmJiOThhMTViZmZhNGQ4OTUwMDhkYjY5MzU0YTFhMWFiLi5lY2M5NTMzZjAwZjFhZTJlMjRl
ZjQ3Y2M2ZDE5NWQ5ZGU5OGM4N2Q3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYWRkLXR3by10
eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlMIEFkZGlu
ZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVyY2VudCBoaW50cyB0aHJvd3Mg
VHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFN1
bShhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNh
bWUgbm9uemVybyB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3Ro
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIEFkZGluZyB0d28gdHlwZXMgd2l0aCBlbXB0eSBt
YXBzIHdpdGggcmV0dXJucyBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVk
ICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQWRkaW5nIGEg
dHlwZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50IGFzc2VydF9l
cXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcgYSB0eXBlIHdp
dGggcGVyY2VudCAyIHJldHVybnMgdHlwZSB3aXRoIHBlcmNlbnQgaGludCB0aHJvd3MgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFN1bShhLCBi
KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggYSBwZXJjZW50IGhpbnQg
cmV0dXJucyBhIHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0
aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNh
bWUgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludCBhc3Nl
cnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgQWRkaW5nIHR3byB0
eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBlRXJy
b3IKK1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRoIHRoZSBzYW1lIG5vbnplcm8gdmFsdWVzIHJl
dHVybnMgc2FtZSB0eXBlCitQQVNTIEFkZGluZyB0d28gdHlwZXMgd2l0aCBlbXB0eSBtYXBzIHdp
dGggcmV0dXJucyBlbXB0eSBtYXAKK1BBU1MgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgcmV0
dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50CitQQVNTIEFkZGluZyBhIHR5cGUgd2l0aCBwZXJj
ZW50IDIgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50IHRocm93cyBUeXBlRXJyb3IKK1BB
U1MgQWRkaW5nIGEgdHlwZSB3aXRoIGEgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGgg
dGhlIHBlcmNlbnQgaGludAorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgcGVy
Y2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGlj
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVy
aWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggNTM2ZWE1
MmU1M2IwY2NiOGNlMjc4MDY3MDMwNmEzNDdhZjE3MzkzZS4uZmQzMGE1N2UyYTU1ZjAyNmQ3NjVh
MWNkMjYxNTgzMDQwZmFkZThmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nl
cy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBl
ZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtNjAsNiArNjAsNiBAQCBQQVNTIENhbGxpbmcgQ1NTVW5p
dFZhbHVlLm1heCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0
byBhCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBuZWdhdGVzIGFsbCBhcmd1bWVu
dCB2YWx1ZXMKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IGludmVydHMgYWxsIGFy
Z3VtZW50IHZhbHVlcwogUEFTUyBDYW4gbm90IGRpdmlkZSB3aXRoIENTU1VuaXRWYWx1ZSB3aGlj
aCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUKLUZBSUwgQ1NTTnVtZXJpY1ZhbHVlLmFk
ZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuIGFz
c2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVtYmVyKDMpLmFkZChDU1MucHgo
MTApICxDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBDU1NOdW1lcmljVmFsdWUu
c3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4g
YXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IENTUy5udW1iZXIoMykuc3ViKENTUy5w
eCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93CitQQVNTIENTU051bWVyaWNWYWx1
ZS5hZGQgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50
LgorUEFTUyBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0
aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEt
dHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDUyODQwNzcxYzkwYTM5ZTZiNjQ3MWYx
Yzk2MWI4OThhMTYzNzQwODQuLjBhMjNkMzdhMjMwMzllNjU1Y2U1NzhiYzMwZjRlNTY4OTNjYTg5
MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3Rz
L2NyZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUtYS10eXBlLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSAi
bnVtYmVyIiByZXR1cm5zIHt9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZp
bmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBm
cm9tICJwZXJjZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0
aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlM
IENyZWF0aW5nIGEgdHlwZSBmcm9tIDxsZW5ndGg+IHJldHVybnMgeyBsZW5ndGg6IDEgfSBhc3Nl
cnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgQ3JlYXRpbmcgYSB0
eXBlIGZyb20gPGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5n
dGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJ
TCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJucyB7IHRpbWU6IDEgfSBhc3NlcnRf
ZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51
bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5PiByZXR1cm5zIHsg
ZnJlcXVlbmN5OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQp
IHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20g
PHJlc29sdXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAxIH0gYXNzZXJ0X2VxdWFsczogbGVu
Z3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZB
SUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVybnMgeyBmbGV4OiAxIH0gYXNzZXJ0
X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChu
dW1iZXIpIDAKK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gIm51bWJlciIgcmV0dXJucyB7fQor
UEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSAicGVyY2VudCIgcmV0dXJucyB7IHBlcmNlbnQ6IDEg
fQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8bGVuZ3RoPiByZXR1cm5zIHsgbGVuZ3RoOiAx
IH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEg
fQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJucyB7IHRpbWU6IDEgfQor
UEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5PiByZXR1cm5zIHsgZnJlcXVlbmN5
OiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPHJlc29sdXRpb24+IHJldHVybnMgeyBy
ZXNvbHV0aW9uOiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVybnMg
eyBmbGV4OiAxIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3Rl
ZC50eHQKaW5kZXggNzlkZjQ4NmNjZTgxY2ZkZTQzYWVlYTMzNmI5YmNkZjMxMjI3ZmU1Zi4uM2E5
YjA3MGE5ZTE2OWQ1MmU2ZjRhYWM4NzhhNjgyZDAzMWM5NmM0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0
cy9jc3NNYXRoSW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlM
IEludmVydGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwIGFz
c2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdv
dCAobnVtYmVyKSAwCi1GQUlMIEludmVydGluZyBhIHR5cGUgbmVnYXRlcyBhbGwgaXRzIGV4cG9u
ZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgLTEgYnV0IGdvdCAwCi1GQUlMIElu
dmVydGluZyBhbiBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhlIG9yaWdpbmFsIHR5cGUgYXNzZXJ0
X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIEludmVydGluZyBhIHR5
cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwCitQQVNTIEludmVydGluZyBh
IHR5cGUgbmVnYXRlcyBhbGwgaXRzIGV4cG9uZW50cworUEFTUyBJbnZlcnRpbmcgYW4gaW52ZXJ0
ZWQgdHlwZSByZXR1cm5zIHRoZSBvcmlnaW5hbCB0eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NN
YXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDExNjNkMGYxZjY4ODA4MTk2YjQ4MzFl
ZjE5ZjRmMjJhYzE2YjNlYjkuLmQzNDlhN2UyZDFmNGZmYmNkZGJkYWJlMTY3ODlkYzMyODVmYTZk
YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3Rz
L2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBOZWdhdGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0
dXJucyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZp
bmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIE5lZ2F0aW5nIGEgdHlwZSBy
ZXR1cm5zIHRoZSBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0
IGdvdCAwCitQQVNTIE5lZ2F0aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRoZSBl
bXB0eSBtYXAKK1BBU1MgTmVnYXRpbmcgYSB0eXBlIHJldHVybnMgdGhlIHNhbWUgdHlwZQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NN
YXRoVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGYzNzdhNzIyMDIxYmViYWIyMDg2YWRmYjcyNWEwOTQ0YmE5Zjc5OWUuLjRiZThlNzFkN2M2
MDU0MWRhZDc5NTk2NjlmOGE0MmQ2NjRlMzRlYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nz
c01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlM
IENvbnN0cnVjdGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiBuZXcgc3ViY2xhc3Mo
KSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb25zdHJ1Y3RpbmcgYSBDU1NNYXRoU3VtIHdpdGggbm8g
YXJndW1lbnRzIHRocm93cyBhIFN5bnRheEVycm9yCiBQQVNTIENTU01hdGhTdW0gY2FuIGJlIGNv
bnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRo
U3VtIGNhbiBiZSBjb25zdHJ1Y3RlZCBmcm9tIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU1VuaXRW
YWx1ZQogUEFTUyBDU1NNYXRoU3VtLm9wZXJhdG9yIGlzIHJlYWRvbmx5Ci1GQUlMIENvbnN0cnVj
dGluZyBhIENTU01hdGhQcm9kdWN0IHdpdGggbm8gYXJndW1lbnRzIHRocm93cyBhIFN5bnRheEVy
cm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gbmV3IHN1YmNsYXNzKCkiIGRp
ZCBub3QgdGhyb3cKK1BBU1MgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBubyBh
cmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IKIFBBU1MgQ1NTTWF0aFByb2R1Y3QgY2FuIGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NN
YXRoUHJvZHVjdCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBtb3JlIHRoYW4gb25lIG51bWJlciBD
U1NVbml0VmFsdWUKIFBBU1MgQ1NTTWF0aFByb2R1Y3Qub3BlcmF0b3IgaXMgcmVhZG9ubHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1Vu
aXRWYWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMt
b2JqZWN0cy9jc3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDY1YjdkODQ2YzNmYzc0Mjlh
M2FiZTMyMWE4ZjQ2NmY5Mzg4ZmU5ZjcuLmE3ZDlkMTg2NmJjNTVmNTMzNmU4YTBhZjk2MjA3MjM4
YjQ5NmQ3NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDYgQEAKIAotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5pdFZhbHVlIHdpdGggYW4gdW5rbm93
biB1bml0IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkg
PT4gbmV3IENTU1VuaXRWYWx1ZSgwLCAnbGVtb24nKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBDb25z
dHJ1Y3RpbmcgQ1NTVW5pdFZhbHVlIHdpdGggYSBlbXB0eSBzdHJpbmcgdW5pdCB0aHJvd3MgYSBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IG5ldyBDU1NVbml0VmFs
dWUoMCwgJycpIiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUg
d2l0aCBhbiB1bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yCitQQVNTIENvbnN0cnVjdGlu
ZyBDU1NVbml0VmFsdWUgd2l0aCBhIGVtcHR5IHN0cmluZyB1bml0IHRocm93cyBhIFR5cGVFcnJv
cgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbnVtYmVyCiBQQVNT
IENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBwZXJjZW50CiBQQVNTIENTU1Vu
aXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBlbQpAQCAtOCw4ICs4LDggQEAgUEFTUyBD
U1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggZXgKIFBBU1MgQ1NTVW5pdFZhbHVl
IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGNoCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29u
c3RydWN0ZWQgd2l0aCBpYwogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdp
dGggcmVtCi1QQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBsaAotUEFT
UyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggcmxoCitGQUlMIENTU1VuaXRW
YWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBsaCBUeXBlIGVycm9yCitGQUlMIENTU1VuaXRW
YWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBybGggVHlwZSBlcnJvcgogUEFTUyBDU1NVbml0
VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggdncKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBi
ZSBjb25zdHJ1Y3RlZCB3aXRoIHZoCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0
ZWQgd2l0aCB2aQpAQCAtMTgsNyArMTgsNyBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29u
c3RydWN0ZWQgd2l0aCB2bWluCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQg
d2l0aCB2bWF4CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBjbQog
UEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbW0KLUZBSUwgQ1NTVW5p
dFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIFEgYXNzZXJ0X2VxdWFsczogdW5pdCBpcyBz
YW1lIGFzIGdpdmVuIGJ5IGNvbnN0cnVjdG9yIGV4cGVjdGVkICJxIiBidXQgZ290ICJRIgorUEFT
UyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUQogUEFTUyBDU1NVbml0VmFs
dWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggaW4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBj
b25zdHJ1Y3RlZCB3aXRoIHB0CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQg
d2l0aCBwYwpAQCAtMjksOCArMjksOCBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCByYWQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IHR1cm4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHMKIFBBU1Mg
Q1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIG1zCi1GQUlMIENTU1VuaXRWYWx1
ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBIeiBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUg
YXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgImh6IiBidXQgZ290ICJIeiIKLUZBSUwg
Q1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIeiBhc3NlcnRfZXF1YWxzOiB1
bml0IGlzIHNhbWUgYXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgImtoeiIgYnV0IGdv
dCAia0h6IgorUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggSHoKK1BB
U1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIegogUEFTUyBDU1NVbml0
VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggZHBpCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4g
YmUgY29uc3RydWN0ZWQgd2l0aCBkcGNtCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCBkcHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251
bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0
cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQKaW5kZXggOGE4Yjk5NzhiNDIzODlhZDBiZDYwN2M0NzEzNjU5ZmRmZTc1ZjVjMS4uYmI5OTNi
NmE0ZWFmZDkyMjc1ZmQ0ZTQ0NjM0ODJkOTc0YTUxZGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5
LXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlw
ZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIAotRkFJTCBNdWx0aXBs
eWluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVyY2VudCBoaW50cyB0aHJv
d3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0
aFByb2R1Y3QoYSwgYikiIGRpZCBub3QgdGhyb3cKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVz
IHdpdGggc2FtZSBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0
aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBk
aWZmZXJlbnQgYmFzZSB0eXBlcyBhZGRzIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGgg
ZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHJlc3BlY3Rz
IHRoZSBzaWduIG9mIHRoZSBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVk
IDEgYnV0IGdvdCAwCi1GQUlMIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRoIG5vIGV4cG9uZW50cyBp
cyBhIG5vLW9wIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJ
TCBNdWx0aXBseWluZyBhIHR5cGUgd2l0aCBwZXJjZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2Vu
dCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBN
dWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBw
ZXJjZW50IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQ
QVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50
IGhpbnRzIHRocm93cyBUeXBlRXJyb3IKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGgg
c2FtZSBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBl
cyB3aXRoIGRpZmZlcmVudCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5
aW5nIHR3byB0eXBlcyByZXNwZWN0cyB0aGUgc2lnbiBvZiB0aGUgZXhwb25lbnRzCitQQVNTIE11
bHRpcGx5aW5nIGEgdHlwZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wCitQQVNTIE11bHRp
cGx5aW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQK
K1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBwZXJjZW50IGhpbnQgYXBwbGll
cyB0aGUgcGVyY2VudCBoaW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2
YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CmluZGV4IGFjMmUwODA2ZmVjM2FkN2VhOTEyZmU2ZmU4NzlkNWEwN2YyZGQzYzMuLjYzMDgwY2Q5
OTVmYTRiN2E3ZDk0OGFmN2M4NzhkZTQzMmQwMTQ3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0
aXZlLWV4cGVjdGVkLnR4dApAQCAtMTMsNSArMTMsNSBAQCBGQUlMIENvbnZlcnRpbmcgYSBDU1NN
YXRoTWF4IHRvIGEgc2luZ2xlIHVuaXQgZmluZHMgdGhlIG1heCB2YWx1ZSBhc3NlcnRfYXBwcm94
XwogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aE1heCB0byBhIHNpbmdsZSB1bml0IHdpdGggZGlm
ZmVyZW50IHVuaXRzIHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlv
biAiKCkgPT4gbmV3IENTU01hdGhNYXgoQ1NTLnB4KDIpLCBDU1MucygzKSkudG8oJ3B4JykiIGRp
ZCBub3QgdGhyb3cKIEZBSUwgQ29udmVydGluZyBhIENTU01hdGhOZWdhdGUgdG8gYSBzaW5nbGUg
dW5pdCBuZWdhdGVzIGl0cyB2YWx1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgLTEg
Ky8tIDAuMDAwMDAxIGJ1dCBnb3QgMQogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aEludmVydCB0
byBhIHNpbmdsZSB1bml0IGludmVydHMgaXRzIHZhbHVlIGFuZCB1bml0cyBhc3NlcnRfYXBwcm94
X2VxdWFsczogZXhwZWN0ZWQgMiArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCi1GQUlMIENvbnZlcnRp
bmcgYSBjb21wbGV4IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBhc3NlcnRfYXBwcm94X2Vx
dWFsczogZXhwZWN0ZWQgMzUwMCArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCitGQUlMIENvbnZlcnRp
bmcgYSBjb21wbGV4IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBUeXBlIGVycm9yCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456136</attachid>
            <date>2022-03-30 10:10:38 -0700</date>
            <delta_ts>2022-03-30 20:44:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220330101038.patch</filename>
            <type>text/plain</type>
            <size>65486</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNGIyMTJjODg2NTdlNDg3MmYxYTE4MTVjYzM0NWVi
NDk5OTlhNTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgdHlwZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBvZmYgYnkgZGVmYXVsdCBhbmQgdGhp
cyBwYXJ0IGlzIGNvdmVyZWQgYnkgV1BUIHRlc3RzLgorCisgICAgICAgICogY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnN1Yik6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11
bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVmFsdWU6OnRvU3VtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpDU1NOdW1lcmljVmFsdWUpOgor
ICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpudW1lcmljVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVuaXQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjp1bml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVW5pdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVW5pdFZhbHVlOjpD
U1NVbml0VmFsdWUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuZWdhdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoSW52ZXJ0OjpD
U1NNYXRoSW52ZXJ0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTWF0aE5lZ2F0ZTo6Q1NTTWF0aE5lZ2F0ZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptdWx0aXBseVR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhQcm9kdWN0Ojp2YWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFN1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU01hdGhTdW06OkNTU01hdGhTdW0pOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoVmFsdWU6OkNTU01hdGhWYWx1ZSk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjplYWNoQmFz
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWdTdHJpbmcpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVHlwZTo6dmFsdWVGb3JUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNUeXBlOjphcHBseVBlcmNlbnRIaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNUeXBlOjpkZWJ1Z1N0cmluZyBjb25zdCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsOgor
CiAyMDIyLTAzLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBQR08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCAx
YzkwYzc2ZWM1MGFkMjcwZDdkNDkzMTdhNjIxYTU0YzBkOTBkZTNmLi5lMDg3YTEzYjg2NGI3NmQ0
OWU5MjgwZWE2NzJhMDE5ZGRiYTJkNDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlclRva2VuLmNwcApAQCAtNDQsNyArNDQsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPgogQ1NTVW5pdFR5cGUgY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VS
VChkYXRhKTsKLSAgICBBU1NFUlQobGVuZ3RoKTsKICAgICBzd2l0Y2ggKGxlbmd0aCkgewogICAg
IGNhc2UgMToKICAgICAgICAgc3dpdGNoICh0b0FTQ0lJTG93ZXIoZGF0YVswXSkpIHsKQEAgLTMy
OCw3ICszMjcsNyBAQCBDU1NVbml0VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShj
b25zdCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgIHJldHVybiBDU1NVbml0
VHlwZTo6Q1NTX1VOS05PV047CiB9CiAKLXN0YXRpYyBDU1NVbml0VHlwZSBzdHJpbmdUb1VuaXRU
eXBlKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKK0NTU1VuaXRUeXBlIENTU1BhcnNlclRva2VuOjpz
dHJpbmdUb1VuaXRUeXBlKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKIHsKICAgICBpZiAoc3RyaW5n
Vmlldy5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21U
cmllKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgKaW5kZXggODc0YjQ2Mzc3ZDA3
MmFiNzBjMTIxMjNlYjgwZTk2YjU3NGIzNzQ2OS4uOGEzNzk2ZjcwOTc4OTVjZDUzY2FiNGFjNWMw
MjRiOGYwZmI4YTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9r
ZW4uaApAQCAtMTA1LDYgKzEwNSw4IEBAIHB1YmxpYzoKIAogICAgIENTU1BhcnNlclRva2VuKEhh
c2hUb2tlblR5cGUsIFN0cmluZ1ZpZXcpOwogCisgICAgc3RhdGljIENTU1VuaXRUeXBlIHN0cmlu
Z1RvVW5pdFR5cGUoU3RyaW5nVmlldyk7CisKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NT
UGFyc2VyVG9rZW4mIG90aGVyKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ1NT
UGFyc2VyVG9rZW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRl
eCAzNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3MjEzM2QxNTYzYmIyMGYwLi5jNDBlZGJhMDcyZDM0
NzEwZDdhYzZiNzEwYTVjZTM3N2RmNjM1OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NO
dW1lcmljRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4g
ewogcHVibGljOgogICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFj
ZSYpIHsgfQogCi0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIl9zKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJjZW50Il9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFKTsgfQog
CiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBlbShkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZW0iX3MpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImNoIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpYyhkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMiX3MpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAibGgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciX3MpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmko
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiX3MpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
InZtYXgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7IH0KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJxIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
InBjIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImNxaCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWkiX3MpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNx
bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJj
cW1heCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19F
TVMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfRVhTKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NIUyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19JQyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUkVNUyk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19MSFMpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1JMSFMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVlcpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
IENTU1VuaXRUeXBlOjpDU1NfVkgpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1Vu
aXRUeXBlOjpDU1NfVkkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfVkIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19WTUlOKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
Vk1BWCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DTSk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19NTSk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1EpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfSU4pOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUFQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsIENTU1VuaXRUeXBlOjpDU1NfUEMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENT
U1VuaXRUeXBlOjpDU1NfUFgpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0
VHlwZTo6Q1NTX0NRVyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfQ1FIKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19DUUkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NR
Qik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUU1J
Tik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUU1B
WCk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
ZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRl
ZyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInR1cm4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX0RFRyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6
Q1NTX0dSQUQpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NT
X1JBRCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1RV
Uk4pOyB9CiAKIAogICAgIC8vIDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBz
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJzIl9z
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCBDU1NVbml0VHlwZTo6Q1NTX01TKTsgfQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaHoiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAia2h6Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6
Q1NTX0haKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19L
SFopOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImRwaSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSJfcyk7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfRFBJKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBkcGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfRFBDTSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0RQUFgpOyB9CiAKIAogICAgIC8vIDxmbGV4PgotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsIENTU1VuaXRUeXBlOjpDU1NfRlIpOyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmluZGV4IGVkN2JmOTgzOGIyODM2
ZjAwZmRkNWE5NWE0OWI3YjBjMDM2NjZlZmEuLmZhNDMxZGMyZDk4NmJhM2UyYjRjNzAwZDI2NjM1
ZjRiMTRlMWU1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgUmVmPENTU051bWVyaWNWYWx1ZT4g
bmVnYXRlKFJlZjxDU1NOdW1lcmljVmFsdWU+JiYgdmFsdWUpCiAgICAgaWYgKGF1dG8qIG1hdGhO
ZWdhdGUgPSBkeW5hbWljRG93bmNhc3Q8Q1NTTWF0aE5lZ2F0ZT4odmFsdWUuZ2V0KCkpKQogICAg
ICAgICByZXR1cm4gbWF0aE5lZ2F0ZS0+dmFsdWUoKTsKICAgICBpZiAoYXV0byogdW5pdFZhbHVl
ID0gZHluYW1pY0Rvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpKQotICAgICAgICBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoLXVuaXRWYWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVl
LT51bml0KCkpOworICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoLXVuaXRWYWx1
ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0RW51bSgpKTsKICAgICByZXR1cm4gQ1NTTWF0aE5l
Z2F0ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKTsKIH0KIApAQCAtNjcsMTEgKzY3LDEwIEBAIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaW52ZXJ0KFJlZjxDU1NOdW1l
cmljVmFsdWU+JiYgdmFsdWUpCiAgICAgICAgIHJldHVybiBSZWYgeyBtYXRoSW52ZXJ0LT52YWx1
ZSgpIH07CiAKICAgICBpZiAoYXV0byogdW5pdFZhbHVlID0gZHluYW1pY0Rvd25jYXN0PENTU1Vu
aXRWYWx1ZT4odmFsdWUuZ2V0KCkpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiB1bml0cyBzaG91bGQg
YmUgZWl0aGVyIEF0b21pY1N0cmluZ3Mgb3IgQ1NTVW5pdFR5cGUgZW51bWVyYXRpb24gdmFsdWVz
LgotICAgICAgICBpZiAodW5pdFZhbHVlLT51bml0KCkgPT0gIm51bWJlciIpIHsKKyAgICAgICAg
aWYgKHVuaXRWYWx1ZS0+dW5pdEVudW0oKSA9PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikgewog
ICAgICAgICAgICAgaWYgKHVuaXRWYWx1ZS0+dmFsdWUoKSA9PSAwLjAgfHwgdW5pdFZhbHVlLT52
YWx1ZSgpID09IC0wLjApCiAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdl
RXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKDEuMCAvIHVuaXRWYWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0
KCkpIH07CisgICAgICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBDU1NVbml0
VmFsdWU6OmNyZWF0ZSgxLjAgLyB1bml0VmFsdWUtPnZhbHVlKCksIHVuaXRWYWx1ZS0+dW5pdEVu
dW0oKSkgfTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODMsMTEgKzgyLDExIEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiBvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQoVCYmIG9w
ZXJhdGlvbiwgY29uc3QKIHsKICAgICBib29sIGFsbFZhbHVlc0hhdmVTYW1lVW5pdCA9IHZhbHVl
cy5zaXplKCkgJiYgV1RGOjphbGxPZih2YWx1ZXMsIFsmXSAoY29uc3QgUmVmPENTU051bWVyaWNW
YWx1ZT4mIHZhbHVlKSB7CiAgICAgICAgIGF1dG8qIHVuaXRWYWx1ZSA9IGR5bmFtaWNEb3duY2Fz
dDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKTsKLSAgICAgICAgcmV0dXJuIHVuaXRWYWx1ZSA/
IHVuaXRWYWx1ZS0+dW5pdCgpID09IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWzBdLmdl
dCgpKS51bml0KCkgOiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHVuaXRWYWx1ZSA/IHVuaXRWYWx1
ZS0+dW5pdEVudW0oKSA9PSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1swXS5nZXQoKSku
dW5pdEVudW0oKSA6IGZhbHNlOwogICAgIH0pOwogICAgIGlmIChhbGxWYWx1ZXNIYXZlU2FtZVVu
aXQpIHsKICAgICAgICAgYXV0byYgZmlyc3RVbml0VmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KHZhbHVlc1swXS5nZXQoKSk7Ci0gICAgICAgIFN0cmluZyB1bml0ID0gZmlyc3RVbml0VmFs
dWUudW5pdCgpOworICAgICAgICBhdXRvIHVuaXQgPSBmaXJzdFVuaXRWYWx1ZS51bml0RW51bSgp
OwogICAgICAgICBkb3VibGUgcmVzdWx0ID0gZmlyc3RVbml0VmFsdWUudmFsdWUoKTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCB2YWx1ZXMuc2l6ZSgpOyBpKyspCiAgICAgICAgICAg
ICByZXN1bHQgPSBvcGVyYXRpb24ocmVzdWx0LCBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVl
c1tpXS5nZXQoKSkudmFsdWUoKSk7CkBAIC0xMDcsMzIgKzEwNiwzMyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6cHJl
cGVuZEl0ZW1zTwogICAgIHJldHVybiB2YWx1ZXM7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6YWRkSW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmIG51bWVyaWNWYWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NT
TnVtZXJpY1ZhbHVlOjphZGRJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYg
bnVtZXJpY1ZhbHVlcykKIHsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcv
Y3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLWFkZAogICAgIGF1dG8gdmFsdWVzID0g
cHJlcGVuZEl0ZW1zT2ZUeXBlT3JUaGlzPENTU01hdGhTdW0+KFdURk1vdmUobnVtZXJpY1ZhbHVl
cykpOwogCiAgICAgaWYgKGF1dG8gcmVzdWx0ID0gb3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0
KHN0ZDo6cGx1czxkb3VibGU+KCksIHZhbHVlcykpCi0gICAgICAgIHJldHVybiAqcmVzdWx0Owot
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwIDQgdG8gY2hlY2sgdGhhdCB0aGUgdHlwZXMg
Y2FuIGJlIGFkZGVkLgorICAgICAgICByZXR1cm4geyAqcmVzdWx0IH07CiAKLSAgICByZXR1cm4g
Q1NTTWF0aFN1bTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSk7CisgICAgYXV0byBzdW0gPSBDU1NN
YXRoU3VtOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKTsKKyAgICBpZiAoc3VtLmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICByZXR1cm4gc3VtLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICByZXR1cm4g
UmVmPENTU051bWVyaWNWYWx1ZT4geyBzdW0ucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0KIAot
UmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjphZGQoRml4ZWRWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmIHZhbHVlcykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBD
U1NOdW1lcmljVmFsdWU6OmFkZChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQog
ewogICAgIHJldHVybiBhZGRJbnRlcm5hbChXVEY6Om1hcChXVEZNb3ZlKHZhbHVlcyksIHJlY3Rp
ZnlOdW1iZXJpc2gpKTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVl
OjpzdWIoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKK0V4Y2VwdGlvbk9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnN1YihGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgdmFsdWVzKQogewogICAgIHJldHVybiBhZGRJbnRlcm5hbChXVEY6Om1hcChX
VEZNb3ZlKHZhbHVlcyksIFtdIChDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpIHsKICAgICAgICAg
cmV0dXJuIG5lZ2F0ZShyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOwogICAg
IH0pKTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBs
eUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmFsdWVzKQor
RXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlw
bHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykK
IHsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNk
b20tY3NzbnVtZXJpY3ZhbHVlLW11bAogICAgIGF1dG8gdmFsdWVzID0gcHJlcGVuZEl0ZW1zT2ZU
eXBlT3JUaGlzPENTU01hdGhQcm9kdWN0PihXVEZNb3ZlKG51bWVyaWNWYWx1ZXMpKTsKQEAgLTE0
NCw4ICsxNDQsOCBAQCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bHRp
cGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdQogICAgICAgICBib29sIG11bHRp
cGxlVW5pdHNGb3VuZCB7IGZhbHNlIH07CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBu
b25OdW1iZXJVbml0SW5kZXg7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVz
LnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBhdXRvJiB1bml0ID0gZG93bmNhc3Q8Q1NTVW5p
dFZhbHVlPih2YWx1ZXNbaV0uZ2V0KCkpLnVuaXQoKTsKLSAgICAgICAgICAgIGlmICh1bml0ID09
ICJudW1iZXIiKQorICAgICAgICAgICAgYXV0byB1bml0ID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVl
Pih2YWx1ZXNbaV0uZ2V0KCkpLnVuaXRFbnVtKCk7CisgICAgICAgICAgICBpZiAodW5pdCA9PSBD
U1NVbml0VHlwZTo6Q1NTX05VTUJFUikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIGlmIChub25OdW1iZXJVbml0SW5kZXgpIHsKICAgICAgICAgICAgICAgICBtdWx0aXBs
ZVVuaXRzRm91bmQgPSB0cnVlOwpAQCAtMTU3LDE3ICsxNTcsMTggQEAgUmVmPENTU051bWVyaWNW
YWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHUKICAgICAgICAgICAgIGRvdWJsZSBwcm9kdWN0ID0gMTsKICAgICAgICAgICAgIGZv
ciAoY29uc3QgUmVmPENTU051bWVyaWNWYWx1ZT4mIHZhbHVlIDogdmFsdWVzKQogICAgICAgICAg
ICAgICAgIHByb2R1Y3QgKj0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkudmFs
dWUoKTsKLSAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4ID8gZG93
bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0KCkpLnVu
aXQoKSA6ICJudW1iZXIiX3M7Ci0gICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUocHJvZHVjdCwgdW5pdCk7CisgICAgICAgICAgICBhdXRvIHVuaXQgPSBub25OdW1iZXJVbml0
SW5kZXggPyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4
XS5nZXQoKSkudW5pdEVudW0oKSA6IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOworICAgICAgICAg
ICAgcmV0dXJuIHsgQ1NTVW5pdFZhbHVlOjpjcmVhdGUocHJvZHVjdCwgdW5pdCkgfTsKICAgICAg
ICAgfQogICAgIH0KIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcCA1IHRvIHByb2R1Y2Ug
YSB1bml0IG9mIHRoZSBjb3JyZWN0IHR5cGUuCi0KLSAgICByZXR1cm4gQ1NTTWF0aFByb2R1Y3Q6
OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpOworICAgIGF1dG8gcHJvZHVjdCA9IENTU01hdGhQcm9k
dWN0OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKTsKKyAgICBpZiAocHJvZHVjdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIHByb2R1Y3QucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHJl
dHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IHByb2R1Y3QucmVsZWFzZVJldHVyblZhbHVlKCkg
fTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoRml4ZWRW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6Om11bChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYg
dmFsdWVzKQogewogICAgIHJldHVybiBtdWx0aXBseUludGVybmFsKFdURjo6bWFwKFdURk1vdmUo
dmFsdWVzKSwgcmVjdGlmeU51bWJlcmlzaCkpOwogfQpAQCAtMjM1LDEwICsyMzYsMTAgQEAgUmVm
PENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0KQogICAgIFVO
VVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcv
Y3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklYTUU6IGFkZCBp
bXBsLgotICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1iZXIiX3MpOwor
ICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsIENTU1VuaXRUeXBlOjpDU1NfTlVN
QkVSKTsKIH0KIAotUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRW
ZWN0b3I8U3RyaW5nPiYmIHVuaXRzKQorRXhjZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiBDU1NO
dW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9yPFN0cmluZz4mJiB1bml0cykKIHsKICAgICBV
TlVTRURfUEFSQU0odW5pdHMpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9y
Zy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtdG9zdW0KQEAgLTI0NiwxMyArMjQ3
LDYgQEAgUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8
U3RyaW5nPiYmIHVuaXRzKQogICAgIHJldHVybiBDU1NNYXRoU3VtOjpjcmVhdGUoRml4ZWRWZWN0
b3I8Q1NTTnVtYmVyaXNoPiB7IDEuMCB9KTsKIH0KIAotQ1NTTnVtZXJpY1R5cGUgQ1NTTnVtZXJp
Y1ZhbHVlOjp0eXBlKCkKLXsKLSAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcv
Y3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXR5cGUKLSAgICAvLyBGSVhNRTogYWRk
IGltcGwuCi0gICAgcmV0dXJuIENTU051bWVyaWNUeXBlIHsgfTsKLX0KLQogRXhjZXB0aW9uT3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6cGFyc2UoU3RyaW5nJiYgY3Nz
VGV4dCkKIHsKICAgICBVTlVTRURfUEFSQU0oY3NzVGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCmluZGV4IDI2Y2E4MzllNGNlNDk2NWM3YzdmZGI1
YTlmZWQwZTA5N2FmMWE1NTUuLjcxNTEwMWQ5NDFmZWIwNzkyNjA1ZDQ3ZmIxMDRlMWNlNTIyNWQ3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCisjaW5jbHVkZSAi
Q1NTTnVtZXJpY1R5cGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVZhbHVlLmgiCiAjaW5jbHVkZSA8
dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvRml4ZWRWZWN0b3IuaD4KQEAgLTM2LDcgKzM3LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTTnVtZXJpY1ZhbHVlOwogY2xhc3MgQ1NTVW5p
dFZhbHVlOwogY2xhc3MgQ1NTTWF0aFN1bTsKLXN0cnVjdCBDU1NOdW1lcmljVHlwZTsKIAogdGVt
cGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCkBAIC00Niw5ICs0Niw5IEBAIGNs
YXNzIENTU051bWVyaWNWYWx1ZSA6IHB1YmxpYyBDU1NTdHlsZVZhbHVlIHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKENTU051bWVyaWNWYWx1ZSk7CiBwdWJsaWM6CiAKLSAgICBSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBhZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiBzdWIoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAg
ICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gYWRkKEZpeGVkVmVjdG9yPENTU051
bWJlcmlzaD4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHN1YihG
aXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiBtdWwoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBFeGNlcHRp
b25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gZGl2KEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4m
Jik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbWluKEZpeGVkVmVjdG9yPENTU051bWJlcmlz
aD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbWF4KEZpeGVkVmVjdG9yPENTU051bWJl
cmlzaD4mJik7CkBAIC01Niw4ICs1Niw5IEBAIHB1YmxpYzoKICAgICBib29sIGVxdWFscyhGaXhl
ZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIAogICAgIFJlZjxDU1NVbml0VmFsdWU+IHRv
KFN0cmluZyYmKTsKLSAgICBSZWY8Q1NTTWF0aFN1bT4gdG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5n
PiYmKTsKLSAgICBDU1NOdW1lcmljVHlwZSB0eXBlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPENT
U01hdGhTdW0+PiB0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYpOworCisgICAgY29uc3QgQ1NT
TnVtZXJpY1R5cGUmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAKICAgICBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHBhcnNlKFN0cmluZyYmKTsK
ICAgICBzdGF0aWMgUmVmPENTU051bWVyaWNWYWx1ZT4gcmVjdGlmeU51bWJlcmlzaChDU1NOdW1i
ZXJpc2gmJik7CkBAIC02NSwxMSArNjYsMTQgQEAgcHVibGljOgogICAgIENTU1N0eWxlVmFsdWVU
eXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6
Q1NTTnVtZXJpY1ZhbHVlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBhZGRJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwotICAgIFJlZjxD
U1NOdW1lcmljVmFsdWU+IG11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gYWRkSW50ZXJu
YWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4gbXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gcHJlcGVuZEl0ZW1zT2ZUeXBlT3JUaGlzKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mJik7CiAKLSAgICBDU1NOdW1lcmljVmFsdWUoKSA9IGRlZmF1bHQ7CisgICAgQ1NTTnVt
ZXJpY1ZhbHVlKENTU051bWVyaWNUeXBlIHR5cGUgPSB7IH0pCisgICAgICAgIDogbV90eXBlKFdU
Rk1vdmUodHlwZSkpIHsgfQorCisgICAgQ1NTTnVtZXJpY1R5cGUgbV90eXBlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTVW5pdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRW
YWx1ZS5jcHAKaW5kZXggYjc2MDU0ZmRkZDRiMDMyMWUyY2IwNTI0NWE4ZGVkYzE0MWZmYzE4YS4u
YjNiZDcyZDJlNTRhOWVkYTBkMDY5YTM2ODIxZWMwZThkMTQ0NTRhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwCkBAIC0zMiwxMiArMzIsMTA1IEBACiAK
ICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCisjaW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW4uaCIK
KyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1VuaXRWYWx1ZSk7CiAKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNU
eXBlPiBudW1lcmljVHlwZShDU1NVbml0VHlwZSB1bml0KQoreworICAgIC8vIGh0dHBzOi8vZHJh
ZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2Nzc251bWVyaWN2YWx1ZS1jcmVhdGUt
YS10eXBlCisgICAgQ1NTTnVtZXJpY1R5cGUgdHlwZTsKKyAgICBzd2l0Y2ggKHVuaXRDYXRlZ29y
eSh1bml0KSkgeworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpOdW1iZXI6CisgICAgICAgIHJl
dHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6UGVyY2Vu
dDoKKyAgICAgICAgdHlwZS5wZXJjZW50ID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0
eXBlKSB9OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpMZW5ndGg6CisgICAgICAgIHR5cGUu
bGVuZ3RoID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAgIGNhc2Ug
Q1NTVW5pdENhdGVnb3J5OjpBbmdsZToKKyAgICAgICAgdHlwZS5hbmdsZSA9IDE7CisgICAgICAg
IHJldHVybiB7IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6VGlt
ZToKKyAgICAgICAgdHlwZS50aW1lID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBl
KSB9OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpGcmVxdWVuY3k6CisgICAgICAgIHR5cGUu
ZnJlcXVlbmN5ID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9OworICAgIGNh
c2UgQ1NTVW5pdENhdGVnb3J5OjpSZXNvbHV0aW9uOgorICAgICAgICB0eXBlLnJlc29sdXRpb24g
PSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0
Q2F0ZWdvcnk6Ok90aGVyOgorICAgICAgICBpZiAodW5pdCA9PSBDU1NVbml0VHlwZTo6Q1NTX0ZS
KSB7CisgICAgICAgICAgICB0eXBlLmZsZXggPSAxOworICAgICAgICAgICAgcmV0dXJuIHsgV1RG
TW92ZSh0eXBlKSB9OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGF0aWMgQ1NTVW5pdFR5cGUgcGFyc2VVbml0
KGNvbnN0IFN0cmluZyYgdW5pdCkKK3sKKyAgICBpZiAodW5pdCA9PSAibnVtYmVyIl9zKQorICAg
ICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7CisgICAgaWYgKHVuaXQgPT0gInBl
cmNlbnQiX3MpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U7CisK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIHdoZW4gTGluZUhlaWdodFVuaXRzRW5hYmxlZCBp
cyBjaGFuZ2VkIGJhY2sgdG8gdHJ1ZSBvciByZW1vdmVkCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTM1MQorICAgIGlmICh1bml0ID09ICJsaCJfcykK
KyAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTEhTOworICAgIGlmICh1bml0ID09ICJy
bGgiX3MpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1JMSFM7CisKKyAgICByZXR1
cm4gQ1NTUGFyc2VyVG9rZW46OnN0cmluZ1RvVW5pdFR5cGUodW5pdCk7Cit9CisKK1N0cmluZyBD
U1NVbml0VmFsdWU6OnVuaXQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV91bml0KSB7CisgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgcmV0dXJuICJudW1iZXIiX3M7
CisgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAgIHJldHVybiAi
cGVyY2VudCJfczsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHVuaXRTZXJpYWxpemF0aW9uKCk7Cit9CisKK1N0cmluZyBDU1NVbml0VmFsdWU6OnVuaXRT
ZXJpYWxpemF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKG1fdW5pdCk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NVbml0VmFsdWU+
PiBDU1NVbml0VmFsdWU6OmNyZWF0ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCkK
K3sKKyAgICBhdXRvIHBhcnNlZFVuaXQgPSBwYXJzZVVuaXQodW5pdCk7CisgICAgaWYgKHBhcnNl
ZFVuaXQgPT0gQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yIH07CisgICAgYXV0byB0eXBlID0gbnVtZXJpY1R5cGUocGFyc2VkVW5p
dCk7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
IH07CisgICAgYXV0byB1bml0VmFsdWUgPSBhZG9wdFJlZigqbmV3IENTU1VuaXRWYWx1ZSh2YWx1
ZSwgcGFyc2VkVW5pdCkpOworICAgIHVuaXRWYWx1ZS0+bV90eXBlID0gV1RGTW92ZSgqdHlwZSk7
CisgICAgcmV0dXJuIHVuaXRWYWx1ZTsKK30KKworQ1NTVW5pdFZhbHVlOjpDU1NVbml0VmFsdWUo
ZG91YmxlIHZhbHVlLCBDU1NVbml0VHlwZSB1bml0KQorICAgIDogQ1NTTnVtZXJpY1ZhbHVlKG51
bWVyaWNUeXBlKHVuaXQpLnZhbHVlX29yKENTU051bWVyaWNUeXBlKCkpKQorICAgICwgbV92YWx1
ZSh2YWx1ZSkKKyAgICAsIG1fdW5pdCh1bml0KQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
VW5pdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaApp
bmRleCAyYzJlOWUzNGRmZTZlMzU2Mzc0MjM3OTU2MzhkYzZiZTcxOWM1Y2ZmLi5kODlhMWYwZjlh
NTNiMmZmM2RlMzBiNWU2NDQwNzU3ODdiM2FjNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9DU1NVbml0VmFsdWUuaApAQCAtMzQsMzMgKzM0LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4X3Q7CisKIGNsYXNzIENTU1Vu
aXRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NOdW1lcmljVmFsdWUgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoQ1NTVW5pdFZhbHVlKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3JlYXRlKGRvdWJsZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1bml0KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCB1bml0KSk7
Ci0gICAgfQorICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTVW5pdFZhbHVlPj4gY3JlYXRl
KGRvdWJsZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1bml0KTsKKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3JlYXRlKGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdW5pdCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NVbml0VmFsdWUodmFsdWUsIHVuaXQpKTsgfQogCi0gICAgLy8gRklY
TUU6IG5vdCBjb3JyZWN0LgotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1ha2VTdHJpbmcoKGludCkgbV92YWx1ZSwgbV91bml0KTsgfQorICAgIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1ha2VTdHJpbmcoRm9ybWF0dGVkQ1NTTnVtYmVy
OjpjcmVhdGUobV92YWx1ZSksIHVuaXRTZXJpYWxpemF0aW9uKCkpOyB9CiAKICAgICBkb3VibGUg
dmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgdm9pZCBzZXRWYWx1ZShkb3Vi
bGUgdmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9Ci0gICAgY29uc3QgU3RyaW5nJiB1bml0KCkg
Y29uc3QgeyByZXR1cm4gbV91bml0OyB9Ci0gICAgdm9pZCBzZXRVbml0KGNvbnN0IFN0cmluZyYg
dW5pdCkgeyBtX3VuaXQgPSB1bml0OyB9CisgICAgU3RyaW5nIHVuaXQoKSBjb25zdDsKKyAgICBT
dHJpbmcgdW5pdFNlcmlhbGl6YXRpb24oKSBjb25zdDsKKyAgICBDU1NVbml0VHlwZSB1bml0RW51
bSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdDsgfQogCiBwcml2YXRlOgotICAgIENTU1VuaXRWYWx1
ZShkb3VibGUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdW5pdCkKLSAgICAgICAgOiBtX3ZhbHVlKHZh
bHVlKQotICAgICAgICAsIG1fdW5pdCh1bml0KQotICAgIHsKLSAgICB9CisgICAgQ1NTVW5pdFZh
bHVlKGRvdWJsZSwgQ1NTVW5pdFR5cGUpOwogCiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NVbml0VmFsdWU7
IH0KIAogICAgIGRvdWJsZSBtX3ZhbHVlOwotICAgIFN0cmluZyBtX3VuaXQ7CisgICAgQ1NTVW5p
dFR5cGUgbV91bml0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5jcHAKaW5kZXgg
NWQ5MTJkODI2MjhmOGJhMzQyMmJjNDk5ODJhYzRlMWIxNzM0ZmRjNC4uNTI0YjdmNzAxYmM4ZTdh
ZTlkMzg2N2NhYWVhMjA3ZDgwNDFkMDc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwCkBAIC00MSw4ICs0MSwzNCBAQCBS
ZWY8Q1NTTWF0aEludmVydD4gQ1NTTWF0aEludmVydDo6Y3JlYXRlKENTU051bWJlcmlzaCYmIG51
bWJlcmlzaCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoSW52ZXJ0KFdURk1vdmUo
bnVtYmVyaXNoKSkpOwogfQogCitzdGF0aWMgQ1NTTnVtZXJpY1R5cGUgbmVnYXRlZFR5cGUoY29u
c3QgQ1NTTnVtYmVyaXNoJiBudW1iZXJpc2gpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nz
LWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jdHlwZS1vZi1hLWNzc21hdGh2YWx1ZQorICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG51bWJlcmlzaCwKKyAgICAgICAgW10gKGRvdWJsZSkgeyByZXR1
cm4gQ1NTTnVtZXJpY1R5cGUoKTsgfSwKKyAgICAgICAgW10gKGNvbnN0IFJlZlB0cjxDU1NOdW1l
cmljVmFsdWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTTnVtZXJpY1R5cGUoKTsKKyAgICAgICAgICAgIENTU051bWVyaWNUeXBl
IHR5cGUgPSB2YWx1ZS0+dHlwZSgpOworICAgICAgICAgICAgYXV0byBuZWdhdGUgPSBbXSAoYXV0
byYgb3B0aW9uYWwpIHsKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9uYWwpCisgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsID0gKm9wdGlvbmFsICogLTE7CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgbmVnYXRlKHR5cGUubGVuZ3RoKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLmFu
Z2xlKTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLnRpbWUpOworICAgICAgICAgICAgbmVnYXRl
KHR5cGUuZnJlcXVlbmN5KTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLnJlc29sdXRpb24pOwor
ICAgICAgICAgICAgbmVnYXRlKHR5cGUuZmxleCk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5w
ZXJjZW50KTsKKyAgICAgICAgICAgIHJldHVybiB0eXBlOworICAgICAgICB9CisgICAgKTsKK30K
KwogQ1NTTWF0aEludmVydDo6Q1NTTWF0aEludmVydChDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gp
Ci0gICAgOiBtX3ZhbHVlKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3Zl
KG51bWJlcmlzaCkpKQorICAgIDogQ1NTTWF0aFZhbHVlKG5lZ2F0ZWRUeXBlKG51bWJlcmlzaCkp
CisgICAgLCBtX3ZhbHVlKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3Zl
KG51bWJlcmlzaCkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcAppbmRleCA0ZGE0M2NkOTA3MjZkNDgxNmFkNmZj
NjE1ZjIxMmZmZmJiZjUwNmY0Li4wYWI1ZjY0MTBkMzQxMzEzNWRiNGZlMjE3YTNkMGI3NjdjNjli
NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhOZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE5lZ2F0ZS5jcHAKQEAgLTM2LDEzICszNiwyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NNYXRoTmVnYXRlKTsKIAorc3RhdGljIENT
U051bWVyaWNUeXBlIGNvcHlUeXBlKGNvbnN0IENTU051bWJlcmlzaCYgbnVtYmVyaXNoKQorewor
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG51bWJlcmlzaCwKKyAgICAgICAgW10gKGRvdWJsZSkg
eyByZXR1cm4gQ1NTTnVtZXJpY1R5cGUoKTsgfSwKKyAgICAgICAgW10gKGNvbnN0IFJlZlB0cjxD
U1NOdW1lcmljVmFsdWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ1NTTnVtZXJpY1R5cGUoKTsKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZS0+dHlwZSgpOworICAgICAgICB9CisgICAgKTsKK30KKwogQ1NTTWF0aE5lZ2F0ZTo6Q1NT
TWF0aE5lZ2F0ZShDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpCi0gICAgOiBtX3ZhbHVlKENTU051
bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQorICAgIDog
Q1NTTWF0aFZhbHVlKGNvcHlUeXBlKG51bWJlcmlzaCkpCisgICAgLCBtX3ZhbHVlKENTU051bWVy
aWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKQogewogfQogCiBD
U1NNYXRoTmVnYXRlOjpDU1NNYXRoTmVnYXRlKFJlZjxDU1NOdW1lcmljVmFsdWU+JiYgdmFsdWUp
Ci0gICAgOiBtX3ZhbHVlKFdURk1vdmUodmFsdWUpKQorICAgIDogQ1NTTWF0aFZhbHVlKHZhbHVl
LT50eXBlKCkpCisgICAgLCBtX3ZhbHVlKFdURk1vdmUodmFsdWUpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3Bw
CmluZGV4IGQ3MDBlODlmODU1ZTZkODQ1ZmZjMjJjOTI2YWIzNmJlNDgzMTM0MGUuLjU4YjYzMDA1
NjJkZjA0YmEwNDVhYjBlYjdhZjA0OTcyMzcyMzM1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwCkBAIC0yNiwyOSAr
MjYsNjYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NNYXRoUHJvZHVjdC5o
IgogCi0jaW5jbHVkZSAiQ1NTTnVtZXJpY0FycmF5LmgiCi0KICNpZiBFTkFCTEUoQ1NTX1RZUEVE
X09NKQogCisjaW5jbHVkZSAiQ1NTTnVtZXJpY0FycmF5LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NNYXRoUHJvZHVjdCk7CiAK
LUNTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYgbnVtYmVyaXNoZXMpCi0gICAgOiBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShX
VEZNb3ZlKG51bWJlcmlzaGVzKSkpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmljVHlw
ZT4gbXVsdGlwbHlUeXBlcyhjb25zdCBDU1NOdW1lcmljVHlwZSYgYSwgY29uc3QgQ1NTTnVtZXJp
Y1R5cGUmIGIpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcworICAgIGlmIChhLnBl
cmNlbnRIaW50ICYmIGIucGVyY2VudEhpbnQgJiYgKmEucGVyY2VudEhpbnQgIT0gKmIucGVyY2Vu
dEhpbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGFkZCA9IFtd
IChhdXRvIGxlZnQsIGF1dG8gcmlnaHQpIC0+IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHsKKyAg
ICAgICAgaWYgKCFsZWZ0KQorICAgICAgICAgICAgcmV0dXJuIHJpZ2h0OworICAgICAgICBpZiAo
IXJpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIGxlZnQ7CisgICAgICAgIHJldHVybiAqbGVmdCAr
ICpyaWdodDsKKyAgICB9OworICAgIAorICAgIHJldHVybiB7IHsKKyAgICAgICAgYWRkKGEubGVu
Z3RoLCBiLmxlbmd0aCksCisgICAgICAgIGFkZChhLmFuZ2xlLCBiLmFuZ2xlKSwKKyAgICAgICAg
YWRkKGEudGltZSwgYi50aW1lKSwKKyAgICAgICAgYWRkKGEuZnJlcXVlbmN5LCBiLmZyZXF1ZW5j
eSksCisgICAgICAgIGFkZChhLnJlc29sdXRpb24sIGIucmVzb2x1dGlvbiksCisgICAgICAgIGFk
ZChhLmZsZXgsIGIuZmxleCksCisgICAgICAgIGFkZChhLnBlcmNlbnQsIGIucGVyY2VudCksCisg
ICAgICAgIGEucGVyY2VudEhpbnQgPyBhLnBlcmNlbnRIaW50IDogYi5wZXJjZW50SGludAorICAg
IH0gfTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9kdWN0Pj4gQ1NTTWF0aFByb2R1
Y3Q6OmNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+IG51bWJlcmlzaGVzKQogeworICAg
IHJldHVybiBjcmVhdGUoV1RGOjptYXAoV1RGTW92ZShudW1iZXJpc2hlcyksIHJlY3RpZnlOdW1i
ZXJpc2gpKTsKIH0KIAotQ1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCi0gICAgOiBtX3ZhbHVlcyhDU1NOdW1lcmljQXJy
YXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQorRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9k
dWN0Pj4gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
IHZhbHVlcykKIHsKKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CisgICAgCisgICAgc3RkOjpvcHRpb25hbDxDU1NOdW1l
cmljVHlwZT4gdHlwZSA9IHZhbHVlc1swXS0+dHlwZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAx
OyBpIDwgdmFsdWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHR5cGUgPSBtdWx0aXBseVR5cGVz
KCp0eXBlLCB2YWx1ZXNbaV0tPnR5cGUoKSk7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKKyAgICB9CisKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKHZhbHVlcyksIFdURk1vdmUoKnR5
cGUpKSk7CiB9CiAKLWNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aFByb2R1Y3Q6OnZhbHVl
cygpIGNvbnN0CitDU1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiB2YWx1ZXMsIENTU051bWVyaWNUeXBlIHR5cGUpCisgICAgOiBDU1NNYXRo
VmFsdWUoV1RGTW92ZSh0eXBlKSkKKyAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3Jl
YXRlKFdURk1vdmUodmFsdWVzKSkpCiB7Ci0gICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKaW5kZXggNjBhZjBiNzc1M2M5NjNlNWZhODE4
ODlhYzQ3OTJhYjViOTVlYzVmNC4uOGVkNjA1ZjM1M2JhMzNlODU3ZmJhZDMwZDc5ZTlhMzcxNTRm
NGUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoUHJvZHVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aFByb2R1Y3QuaApAQCAtMzcsMTUgKzM3LDE1IEBAIGNsYXNzIENTU051bWVyaWNBcnJheTsK
IGNsYXNzIENTU01hdGhQcm9kdWN0IGZpbmFsIDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NNYXRoUHJvZHVjdCk7CiBwdWJsaWM6Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxDU1NNYXRoUHJvZHVjdD4gY3JlYXRl
KEFyZ3MmJi4uLiBhcmdzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhQcm9kdWN0KHN0
ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOyB9Ci0gICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5
JiB2YWx1ZXMoKSBjb25zdDsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPENTU01hdGhQcm9k
dWN0Pj4gY3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4pOworICAgIHN0YXRpYyBFeGNl
cHRpb25PcjxSZWY8Q1NTTWF0aFByb2R1Y3Q+PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+Pik7CisgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlcy5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIENTU01hdGhPcGVyYXRvciBn
ZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRvcjo6UHJvZHVj
dDsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aFByb2R1Y3Q7IH0KIAotICAgIENTU01hdGhQcm9k
dWN0KEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7Ci0gICAgQ1NTTWF0aFByb2R1Y3QoVmVj
dG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKyAgICBDU1NNYXRoUHJvZHVjdChWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+LCBDU1NOdW1lcmljVHlwZSk7CiAgICAgUmVmPENTU051bWVy
aWNBcnJheT4gbV92YWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcAppbmRleCBhNmQ5ZWQ5MWYyODllMmFhNDg3YTQ5OGM5
N2I4ZjgwMmE3ZWJhYjM4Li40OWExMThjNWRhMmY3MDNmOTQwYzU0ODg2ZWZjZjI2NjAxNWNmOTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1
bS5jcHAKQEAgLTI2LDIzICsyNiw2NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNTU01hdGhTdW0uaCIKIAotI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgotCiAjaWYgRU5B
QkxFKENTU19UWVBFRF9PTSkKIAorI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgorI2luY2x1
ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NT
TWF0aFN1bSk7CiAKLUNTU01hdGhTdW06OkNTU01hdGhTdW0oRml4ZWRWZWN0b3I8Q1NTTnVtYmVy
aXNoPiYmIG51bWJlcmlzaGVzKQotICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVh
dGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJp
Y1R5cGU+IGFkZFR5cGVzKENTU051bWVyaWNUeXBlIGEsIENTU051bWVyaWNUeXBlIGIpCiB7Cisg
ICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jY3NzbnVt
ZXJpY3ZhbHVlLWFkZC10d28tdHlwZXMKKyAgICBpZiAoYS5wZXJjZW50SGludCAmJiBiLnBlcmNl
bnRIaW50ICYmICphLnBlcmNlbnRIaW50ICE9ICpiLnBlcmNlbnRIaW50KQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKGEucGVyY2VudEhpbnQpCisgICAgICAgIGIuYXBw
bHlQZXJjZW50SGludCgqYS5wZXJjZW50SGludCk7CisgICAgaWYgKGIucGVyY2VudEhpbnQpCisg
ICAgICAgIGEuYXBwbHlQZXJjZW50SGludCgqYi5wZXJjZW50SGludCk7CisKKyAgICBpZiAoYSA9
PSBiKQorICAgICAgICByZXR1cm4geyBXVEZNb3ZlKGEpIH07CisKKyAgICBmb3IgKGF1dG8gdHlw
ZSA6IGVhY2hCYXNlVHlwZSgpKSB7CisgICAgICAgIGlmICh0eXBlID09IENTU051bWVyaWNCYXNl
VHlwZTo6UGVyY2VudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWEudmFs
dWVGb3JUeXBlKHR5cGUpICYmICFiLnZhbHVlRm9yVHlwZSh0eXBlKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBhLmFwcGx5UGVyY2VudEhpbnQodHlwZSk7CisgICAgICAgIGIuYXBw
bHlQZXJjZW50SGludCh0eXBlKTsKKyAgICAgICAgaWYgKGEudmFsdWVGb3JUeXBlKHR5cGUpICE9
IGIudmFsdWVGb3JUeXBlKHR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICByZXR1cm4geyBXVEZNb3ZlKGEpIH07Cit9CisKK0V4Y2VwdGlvbk9yPFJl
ZjxDU1NNYXRoU3VtPj4gQ1NTTWF0aFN1bTo6Y3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlz
aD4gbnVtYmVyaXNoZXMpCit7CisgICAgcmV0dXJuIGNyZWF0ZShXVEY6Om1hcChXVEZNb3ZlKG51
bWJlcmlzaGVzKSwgcmVjdGlmeU51bWJlcmlzaCkpOworfQorCitFeGNlcHRpb25PcjxSZWY8Q1NT
TWF0aFN1bT4+IENTU01hdGhTdW06OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
IHZhbHVlcykKK3sKKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNU
eXBlPiB0eXBlID0gdmFsdWVzWzBdLT50eXBlKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkg
PCB2YWx1ZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgdHlwZSA9IGFkZFR5cGVzKCp0eXBlLCB2
YWx1ZXNbaV0tPnR5cGUoKSk7CisgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDU1NNYXRoU3VtKFdURk1vdmUodmFsdWVzKSwgV1RGTW92ZSgqdHlwZSkpKTsKIH0KIAot
Q1NTTWF0aFN1bTo6Q1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFs
dWVzKQotICAgIDogbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1
ZXMpKSkKK0NTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiB2YWx1ZXMsIENTU051bWVyaWNUeXBlIHR5cGUpCisgICAgOiBDU1NNYXRoVmFsdWUoV1RGTW92
ZSh0eXBlKSkKKyAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUo
dmFsdWVzKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoU3VtLmgKaW5kZXggZjkyYTYxNDE3YWJlMWM0ZDllODFmOTQ4YmJmYTE5OTdiNjJl
NzAyMS4uZDUyMzdiYmZlNTRlNGRmMGI0NzY0MjA1ZmVhNjRkNWZjYTZmY2ViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKQEAgLTM4LDE1
ICszOCwxNSBAQCBjbGFzcyBDU1NOdW1lcmljQXJyYXk7CiBjbGFzcyBDU1NNYXRoU3VtIGZpbmFs
IDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NN
YXRoU3VtKTsKIHB1YmxpYzoKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMg
UmVmPENTU01hdGhTdW0+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDU1NNYXRoU3VtKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOyB9CisgICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gY3JlYXRlKEZpeGVkVmVjdG9yPENTU051
bWJlcmlzaD4pOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IGNyZWF0
ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+KTsKICAgICBjb25zdCBDU1NOdW1lcmljQXJy
YXkmIHZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzLmdldCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
Q1NTTWF0aE9wZXJhdG9yOjpTdW07IH0KICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhTdW07IH0K
IAotICAgIENTU01hdGhTdW0oRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBDU1NN
YXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisgICAgQ1NTTWF0aFN1bShW
ZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+LCBDU1NOdW1lcmljVHlwZSk7CiAgICAgUmVmPENT
U051bWVyaWNBcnJheT4gbV92YWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoVmFsdWUuaAppbmRleCBkMjlhZWEzMjFjZmZkYWEyYmE0
YWUxYWY1NzYzMjk3ODdjYmIzODliLi41MzFhYjNlNzM3M2FjMmIyM2VkMjA0NjI0Y2Q4ZmQ1NGI2
YTA0ZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aFZhbHVlLmgKQEAgLTM1LDYgKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NNYXRoVmFsdWUgOiBwdWJsaWMgQ1NTTnVtZXJpY1ZhbHVlIHsKIHB1YmxpYzoKKyAgICBD
U1NNYXRoVmFsdWUoQ1NTTnVtZXJpY1R5cGUgdHlwZSA9IHsgfSkKKyAgICAgICAgOiBDU1NOdW1l
cmljVmFsdWUoV1RGTW92ZSh0eXBlKSkgeyB9CiAgICAgdmlydHVhbCBDU1NNYXRoT3BlcmF0b3Ig
Z2V0T3BlcmF0b3IoKSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5jcHAKaW5kZXggOWRlNTE5MDA5
NmI5YjQxN2Q2OGYwZmI1ZDU5YmNhMjJkZDBhZDY0NS4uZjk3OWVhYmM4ODMyZTUzMGZhNTM5Y2E1
Mzg5NDdlYThlNWYzYWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcApAQCAtMzgsMTEgKzM4LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTnVtZXJpY0Fy
cmF5KTsKIAotUmVmPENTU051bWVyaWNBcnJheT4gQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoY29u
c3QgRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYgbnVtYmVyaXNoZXMpCitSZWY8Q1NTTnVtZXJp
Y0FycmF5PiBDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYgbnVtYmVyaXNoZXMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTnVtZXJpY0Fy
cmF5KFdURjo6bWFwKG51bWJlcmlzaGVzLCBbXShhdXRvJiBudW1iZXJpc2gpIC0+IFJlZjxDU1NO
dW1lcmljVmFsdWU+IHsKLSAgICAgICAgcmV0dXJuIENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51
bWJlcmlzaChjb25zdF9jYXN0PENTU051bWJlcmlzaCYmPihudW1iZXJpc2gpKTsKLSAgICB9KSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU051bWVyaWNBcnJheShXVEY6Om1hcChXVEZN
b3ZlKG51bWJlcmlzaGVzKSwgQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKSkpOwog
fQogCiBSZWY8Q1NTTnVtZXJpY0FycmF5PiBDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggNzQ0NWVmYmQxMjBi
YzNiNzY5NzAzOTQ4MzFhM2E0YTkyMDk3NTM2ZS4uYjg2YTliMmVlMmM2OGJkZTM0YzkyMzkwOGFh
MTJkZTU3ZDVkNzc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNBcnJheS5oCkBAIC00MCw3ICs0MCw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIENTU051bWVyaWNBcnJheSA6IHB1YmxpYyBS
ZWZDb3VudGVkPENTU051bWVyaWNBcnJheT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
Q1NTTnVtZXJpY0FycmF5KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU051bWVyaWNBcnJh
eT4gY3JlYXRlKGNvbnN0IEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mKTsKKyAgICBzdGF0aWMg
UmVmPENTU051bWVyaWNBcnJheT4gY3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJik7
CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljQXJyYXk+IGNyZWF0ZShWZWN0b3I8UmVmPENTU051
bWVyaWNWYWx1ZT4+JiYpOwogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2Fy
cmF5LnNpemUoKTsgfTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaXRl
bShzaXplX3QgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NOdW1lcmljQmFzZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VUeXBlLmgKaW5kZXggZDA1NTc3MmU0YTlhZjE1Y2MyNjY2
Y2FlYzBiMjRmMDhmYjY5M2UzOS4uNzA1ZmViMDFmNjA0NjI0YmY0NTJkMjc2NWVjYzRjOTVhOTM1
NGNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NO
dW1lcmljQmFzZVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU051bWVyaWNCYXNlVHlwZS5oCkBAIC0yNyw5ICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKIAorI2luY2x1ZGUgPGFycmF5PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWVudW0gY2xhc3MgQ1NTTnVtZXJpY0Jhc2VUeXBlOiB1aW50OF90IHsKK2VudW0gY2xhc3MgQ1NT
TnVtZXJpY0Jhc2VUeXBlIDogdWludDhfdCB7CiAgICAgTGVuZ3RoLAogICAgIEFuZ2xlLAogICAg
IFRpbWUsCkBAIC0zOSw2ICs0MSw0MCBAQCBlbnVtIGNsYXNzIENTU051bWVyaWNCYXNlVHlwZTog
dWludDhfdCB7CiAgICAgUGVyY2VudCwKIH07CiAKK2NvbnN0ZXhwciBzdGQ6OmFycmF5PENTU051
bWVyaWNCYXNlVHlwZSwgNz4gZWFjaEJhc2VUeXBlKCkKK3sKKyAgICByZXR1cm4geworICAgICAg
ICBDU1NOdW1lcmljQmFzZVR5cGU6Okxlbmd0aCwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBl
OjpBbmdsZSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpUaW1lLAorICAgICAgICBDU1NO
dW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeSwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpS
ZXNvbHV0aW9uLAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OkZsZXgsCisgICAgICAgIENT
U051bWVyaWNCYXNlVHlwZTo6UGVyY2VudAorICAgIH07Cit9CisKK2NvbnN0ZXhwciBjb25zdCBj
aGFyKiBkZWJ1Z1N0cmluZyhDU1NOdW1lcmljQmFzZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6TGVuZ3RoOgorICAgICAgICBy
ZXR1cm4gImxlbmd0aCI7CisgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkFuZ2xlOgorICAg
ICAgICByZXR1cm4gImFuZ2xlIjsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6VGltZToK
KyAgICAgICAgcmV0dXJuICJ0aW1lIjsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6RnJl
cXVlbmN5OgorICAgICAgICByZXR1cm4gImZyZXF1ZW5jeSI7CisgICAgY2FzZSBDU1NOdW1lcmlj
QmFzZVR5cGU6OlJlc29sdXRpb246CisgICAgICAgIHJldHVybiAicmVzb2x1dGlvbiI7CisgICAg
Y2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZsZXg6CisgICAgICAgIHJldHVybiAiZmxleCI7Cisg
ICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OlBlcmNlbnQ6CisgICAgICAgIHJldHVybiAicGVy
Y2VudCI7CisgICAgfQorICAgIHJldHVybiAiaW52YWxpZCI7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU051bWVyaWNUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNUeXBlLmgKaW5kZXggY2Y3ZWE2ZGFhM2Y0ZDU0ZjExNDU5YjIyNGQw
Mjc4MzA4OTNjOTE3Yi4uNGVjZTk4MGE2MWQ1OGJmYjUzMTU2OWRhNzZjMDQ1NGJmNDBhMWJhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmlj
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJp
Y1R5cGUuaApAQCAtMjksMTggKzI5LDc4IEBACiAKICNpbmNsdWRlICJDU1NOdW1lcmljQmFzZVR5
cGUuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBodHRwczovL2Ry
YWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXR5
cGUKIHN0cnVjdCBDU1NOdW1lcmljVHlwZSB7Ci0gICAgbG9uZyBsZW5ndGggeyAwIH07Ci0gICAg
bG9uZyBhbmdsZSB7IDAgfTsKLSAgICBsb25nIHRpbWUgeyAwIH07Ci0gICAgbG9uZyBmcmVxdWVu
Y3kgeyAwIH07Ci0gICAgbG9uZyByZXNvbHV0aW9uIHsgMCB9OwotICAgIGxvbmcgZmxleCB7IDAg
fTsKLSAgICBsb25nIHBlcmNlbnQgeyAwIH07CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBsZW5n
dGg7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBhbmdsZTsKKyAgICBzdGQ6Om9wdGlvbmFsPGxv
bmc+IHRpbWU7CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBmcmVxdWVuY3k7CisgICAgc3RkOjpv
cHRpb25hbDxsb25nPiByZXNvbHV0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gZmxleDsK
KyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+IHBlcmNlbnQ7CiAgICAgc3RkOjpvcHRpb25hbDxDU1NO
dW1lcmljQmFzZVR5cGU+IHBlcmNlbnRIaW50OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IENTU051bWVyaWNUeXBlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5n
dGggPT0gb3RoZXIubGVuZ3RoCisgICAgICAgICAgICAmJiBhbmdsZSA9PSBvdGhlci5hbmdsZQor
ICAgICAgICAgICAgJiYgdGltZSA9PSBvdGhlci50aW1lCisgICAgICAgICAgICAmJiBmcmVxdWVu
Y3kgPT0gb3RoZXIuZnJlcXVlbmN5CisgICAgICAgICAgICAmJiByZXNvbHV0aW9uID09IG90aGVy
LnJlc29sdXRpb24KKyAgICAgICAgICAgICYmIGZsZXggPT0gb3RoZXIuZmxleAorICAgICAgICAg
ICAgJiYgcGVyY2VudCA9PSBvdGhlci5wZXJjZW50CisgICAgICAgICAgICAmJiBwZXJjZW50SGlu
dCA9PSBvdGhlci5wZXJjZW50SGludDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+
JiB2YWx1ZUZvclR5cGUoQ1NTTnVtZXJpY0Jhc2VUeXBlIHR5cGUpCisgICAgeworICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6Okxlbmd0aDoK
KyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VU
eXBlOjpBbmdsZToKKyAgICAgICAgICAgIHJldHVybiBhbmdsZTsKKyAgICAgICAgY2FzZSBDU1NO
dW1lcmljQmFzZVR5cGU6OlRpbWU6CisgICAgICAgICAgICByZXR1cm4gdGltZTsKKyAgICAgICAg
Y2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZyZXF1ZW5jeToKKyAgICAgICAgICAgIHJldHVybiBm
cmVxdWVuY3k7CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpSZXNvbHV0aW9uOgor
ICAgICAgICAgICAgcmV0dXJuIHJlc29sdXRpb247CisgICAgICAgIGNhc2UgQ1NTTnVtZXJpY0Jh
c2VUeXBlOjpGbGV4OgorICAgICAgICAgICAgcmV0dXJuIGZsZXg7CisgICAgICAgIGNhc2UgQ1NT
TnVtZXJpY0Jhc2VUeXBlOjpQZXJjZW50OgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnQ7Cisg
ICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICB2b2lkIGFwcGx5UGVyY2VudEhpbnQoQ1NTTnVtZXJpY0Jhc2VUeXBlIGhpbnQpCisgICAg
eworICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9t
LyNhcHBseS10aGUtcGVyY2VudC1oaW50CisgICAgICAgIGF1dG8mIG9wdGlvbmFsID0gdmFsdWVG
b3JUeXBlKGhpbnQpOworICAgICAgICBpZiAoIW9wdGlvbmFsKQorICAgICAgICAgICAgb3B0aW9u
YWwgPSAwOworICAgICAgICBpZiAocGVyY2VudCkKKyAgICAgICAgICAgICpvcHRpb25hbCArPSAq
c3RkOjpleGNoYW5nZShwZXJjZW50LCAwKTsKKyAgICAgICAgcGVyY2VudEhpbnQgPSBoaW50Owor
ICAgIH0KKworICAgIFN0cmluZyBkZWJ1Z1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZygieyIsCisgICAgICAgICAgICBsZW5ndGggPyBtYWtlU3RyaW5nKCIg
bGVuZ3RoOiIsICpsZW5ndGgpIDogU3RyaW5nKCksCisgICAgICAgICAgICBhbmdsZSA/IG1ha2VT
dHJpbmcoIiBhbmdsZToiLCAqYW5nbGUpIDogU3RyaW5nKCksCisgICAgICAgICAgICB0aW1lID8g
bWFrZVN0cmluZygiIHRpbWU6IiwgKnRpbWUpIDogU3RyaW5nKCksCisgICAgICAgICAgICBmcmVx
dWVuY3kgPyBtYWtlU3RyaW5nKCIgZnJlcXVlbmN5OiIsICpmcmVxdWVuY3kpIDogU3RyaW5nKCks
CisgICAgICAgICAgICByZXNvbHV0aW9uID8gbWFrZVN0cmluZygiIHJlc29sdXRpb246IiwgKnJl
c29sdXRpb24pIDogU3RyaW5nKCksCisgICAgICAgICAgICBmbGV4ID8gbWFrZVN0cmluZygiIGZs
ZXg6IiwgKmZsZXgpIDogU3RyaW5nKCksCisgICAgICAgICAgICBwZXJjZW50ID8gbWFrZVN0cmlu
ZygiIHBlcmNlbnQ6IiwgKnBlcmNlbnQpIDogU3RyaW5nKCksCisgICAgICAgICAgICBwZXJjZW50
SGludCA/IG1ha2VTdHJpbmcoIiBwZXJjZW50SGludDoiLCBXZWJDb3JlOjpkZWJ1Z1N0cmluZygq
cGVyY2VudEhpbnQpKSA6IFN0cmluZygpLAorICAgICAgICAiIH0iKTsKKyAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTnVtZXJpY1R5cGUuaWRsCmluZGV4IGJlOTE0YTNiY2QxNzZkYzU3OGIy
MTAxZGQwZWFlMjVlZDljOTc3YjkuLmY4ZGE0NzkxYjZhYmU4MTYyMGU1OWRjZDQzMzdlZjBjZDY2
ZmI4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TnVtZXJpY1R5cGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTnVtZXJpY1R5cGUuaWRsCkBAIC0yMyw2ICsyMyw4IEBACiAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwog
CisvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3Nz
bnVtZXJpY3ZhbHVlLXR5cGUKKwogWwogICAgIENvbmRpdGlvbmFsPUNTU19UWVBFRF9PTSwKICAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4
IDFkNWExYzE5Njk1MjBhODBmZTZjZTZmYWI2NzYyM2U5YTY1ZGU1MzguLmZjYjdlOTI2ZGFmMDQy
MjBlM2MzYTg5NjI3Mzk2YzQ0NWE2NGRkODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAzLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHVuaXRzIGZvciBDU1MgdHlw
ZWQgb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0
aW9uL2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlw
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1Vu
aXRWYWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1l
cmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJj
bGFzc2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorCiAyMDIy
LTAzLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgZm9jdXNlZCBhbmQgdmlzaWJsZSBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
IHN0YXRlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9jc3NVbml0
VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRp
b24vY3NzVW5pdFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggOGE1ZWYxZWNjYThk
Njk5ZDM2MTA1MjI5ZTkzYzliZDgxNDlhMTY3Ny4uODczOGUxNTkzYWRhNWFkMGM5OGQ0YzAwNGNh
NGE1YzJmZDljYmJhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXphdGlvbi9j
c3NVbml0VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1z
ZXJpYWxpemF0aW9uL2Nzc1VuaXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDgg
KzEsOCBAQAogCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIGxlbmd0aCB1bml0IGNvbnN0cnVjdGVk
IGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIz
LjE0cHgiIGJ1dCBnb3QgIjNweCIKLUZBSUwgQ1NTVW5pdFZhbHVlIHdpdGggdW5pdCAicGVyY2Vu
dCIgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIjMuMTQlIiBidXQgZ290ICIzcGVyY2VudCIKLUZBSUwgQ1NTVW5pdFZhbHVl
IHdpdGggdW5pdCAibnVtYmVyIiBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJl
Y3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNCIgYnV0IGdvdCAiM251bWJlciIKLUZB
SUwgQ1NTVW5pdFZhbHVlIHdpdGggaW50ZWdlciB2YWx1ZXMgY29uc3RydWN0ZWQgZnJvbSBJREwg
c2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMiIGJ1dCBnb3Qg
IjNudW1iZXIiCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIERPTVN0cmluZyBtb2RpZmllZCBi
eSAidmFsdWUiIHNldHRlciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCi1GQUlMIENTU0tleXdvcmRWYWx1ZSBmcm9tIENT
U09NIG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICIzLjE0cHgiIGJ1dCBnb3QgIjNweCIKK1BBU1MgQ1NTVW5pdFZh
bHVlIHdpdGggbGVuZ3RoIHVuaXQgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3Jy
ZWN0bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggdW5pdCAicGVyY2VudCIgY29uc3RydWN0ZWQg
ZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5pdFZhbHVlIHdpdGggdW5p
dCAibnVtYmVyIiBjb25zdHJ1Y3RlZCBmcm9tIElETCBzZXJpYWxpemVzIGNvcnJlY3RseQorUEFT
UyBDU1NVbml0VmFsdWUgd2l0aCBpbnRlZ2VyIHZhbHVlcyBjb25zdHJ1Y3RlZCBmcm9tIElETCBz
ZXJpYWxpemVzIGNvcnJlY3RseQorUEFTUyBDU1NLZXl3b3JkVmFsdWUgZnJvbSBET01TdHJpbmcg
bW9kaWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NT
S2V5d29yZFZhbHVlIGZyb20gQ1NTT00gbW9kaWZpZWQgYnkgInZhbHVlIiBzZXR0ZXIgc2VyaWFs
aXplcyBjb3JyZWN0bHkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDRiZTI3YmYyYmI5OGExNWJmZmE0ZDg5NTAwOGRiNjkz
NTRhMWExYWIuLmVjYzk1MzNmMDBmMWFlMmUyNGVmNDdjYzZkMTk1ZDlkZTk4Yzg3ZDcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28t
dHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
QEAgLTEsOSArMSw5IEBACiAKLUZBSUwgQWRkaW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBu
b24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczog
ZnVuY3Rpb24gIigpID0+IG5ldyBDU1NNYXRoU3VtKGEsIGIpIiBkaWQgbm90IHRocm93Ci1GQUlM
IEFkZGluZyB0d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBub256ZXJvIHZhbHVlcyByZXR1cm5zIHNh
bWUgdHlwZSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwg
QWRkaW5nIHR3byB0eXBlcyB3aXRoIGVtcHR5IG1hcHMgd2l0aCByZXR1cm5zIGVtcHR5IG1hcCBh
c3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBn
b3QgKG51bWJlcikgMAotRkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggcGVyY2VudCByZXR1cm5zIHR5
cGUgd2l0aCBwZXJjZW50IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0
IGdvdCAwCi1GQUlMIEFkZGluZyBhIHR5cGUgd2l0aCBwZXJjZW50IDIgcmV0dXJucyB0eXBlIHdp
dGggcGVyY2VudCBoaW50IHRocm93cyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rp
b24gIigpID0+IG5ldyBDU1NNYXRoU3VtKGEsIGIpIiBkaWQgbm90IHRocm93Ci1GQUlMIEFkZGlu
ZyBhIHR5cGUgd2l0aCBhIHBlcmNlbnQgaGludCByZXR1cm5zIGEgdHlwZSB3aXRoIHRoZSBwZXJj
ZW50IGhpbnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlM
IEFkZGluZyB0d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5
cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAx
IGJ1dCBnb3QgMAorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdpdGggZGlmZmVyZW50IG5vbi1udWxs
IHBlcmNlbnQgaGludHMgdGhyb3dzIFR5cGVFcnJvcgorUEFTUyBBZGRpbmcgdHdvIHR5cGVzIHdp
dGggdGhlIHNhbWUgbm9uemVybyB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUKK1BBU1MgQWRkaW5n
IHR3byB0eXBlcyB3aXRoIGVtcHR5IG1hcHMgd2l0aCByZXR1cm5zIGVtcHR5IG1hcAorUEFTUyBB
ZGRpbmcgYSB0eXBlIHdpdGggcGVyY2VudCByZXR1cm5zIHR5cGUgd2l0aCBwZXJjZW50IGhpbnQK
K1BBU1MgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgMiByZXR1cm5zIHR5cGUgd2l0aCBwZXJj
ZW50IGhpbnQgdGhyb3dzIFR5cGVFcnJvcgorUEFTUyBBZGRpbmcgYSB0eXBlIHdpdGggYSBwZXJj
ZW50IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50CitQQVNTIEFkZGlu
ZyB0d28gdHlwZXMgd2l0aCB0aGUgc2FtZSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0
aCB0aGUgcGVyY2VudCBoaW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0
aXZlLWV4cGVjdGVkLnR4dAppbmRleCA1MzZlYTUyZTUzYjBjY2I4Y2UyNzgwNjcwMzA2YTM0N2Fm
MTczOTNlLi5mZDMwYTU3ZTJhNTVmMDI2ZDc2NWExY2QyNjE1ODMwNDBmYWRlOGY4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGlj
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC02MCw2
ICs2MCw2IEBAIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubWF4IHdpdGggQ1NTVW5pdFZhbHVl
cyB3aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmlj
VmFsdWUuc3ViIG5lZ2F0ZXMgYWxsIGFyZ3VtZW50IHZhbHVlcwogUEFTUyBDYWxsaW5nIENTU051
bWVyaWNWYWx1ZS5kaXYgaW52ZXJ0cyBhbGwgYXJndW1lbnQgdmFsdWVzCiBQQVNTIENhbiBub3Qg
ZGl2aWRlIHdpdGggQ1NTVW5pdFZhbHVlIHdoaWNoIGhhcyB6ZXJvIHZhbHVlIGFuZCBudW1iZXIg
dHlwZQotRkFJTCBDU1NOdW1lcmljVmFsdWUuYWRkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hl
biB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigp
ID0+IENTUy5udW1iZXIoMykuYWRkKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90
IHRocm93Ci1GQUlMIENTU051bWVyaWNWYWx1ZS5zdWIgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3
aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LiBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAi
KCkgPT4gQ1NTLm51bWJlcigzKS5zdWIoQ1NTLnB4KDEwKSAsQ1NTLm51bWJlcigwKSkiIGRpZCBu
b3QgdGhyb3cKK1BBU1MgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
IHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuCitQQVNTIENTU051bWVyaWNWYWx1ZS5zdWIg
c2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jcmVh
dGUtYS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUtYS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
aW5kZXggNTI4NDA3NzFjOTBhMzllNmI2NDcxZjFjOTYxYjg5OGExNjM3NDA4NC4uMGEyM2QzN2Ey
MzAzOWU2NTVjZTU3OGJjMzBmNGU1Njg5M2NhODkyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFs
dWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3Rz
L2NyZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAog
Ci1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tICJudW1iZXIiIHJldHVybnMge30gYXNzZXJ0X2Vx
dWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1i
ZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gInBlcmNlbnQiIHJldHVybnMgeyBwZXJj
ZW50OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVm
aW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGxlbmd0
aD4gcmV0dXJucyB7IGxlbmd0aDogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAx
IGJ1dCBnb3QgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8YW5nbGU+IHJldHVybnMgeyBh
bmdsZTogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tIDx0aW1l
PiByZXR1cm5zIHsgdGltZTogMSB9IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5k
ZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlw
ZSBmcm9tIDxmcmVxdWVuY3k+IHJldHVybnMgeyBmcmVxdWVuY3k6IDEgfSBhc3NlcnRfZXF1YWxz
OiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikg
MAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8cmVzb2x1dGlvbj4gcmV0dXJucyB7IHJlc29s
dXRpb246IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8Zmxl
eD4gcmV0dXJucyB7IGZsZXg6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAorUEFTUyBDcmVhdGluZyBhIHR5
cGUgZnJvbSAibnVtYmVyIiByZXR1cm5zIHt9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tICJw
ZXJjZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9t
IDxsZW5ndGg+IHJldHVybnMgeyBsZW5ndGg6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJv
bSA8YW5nbGU+IHJldHVybnMgeyBhbmdsZTogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9t
IDx0aW1lPiByZXR1cm5zIHsgdGltZTogMSB9CitQQVNTIENyZWF0aW5nIGEgdHlwZSBmcm9tIDxm
cmVxdWVuY3k+IHJldHVybnMgeyBmcmVxdWVuY3k6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUg
ZnJvbSA8cmVzb2x1dGlvbj4gcmV0dXJucyB7IHJlc29sdXRpb246IDEgfQorUEFTUyBDcmVhdGlu
ZyBhIHR5cGUgZnJvbSA8ZmxleD4gcmV0dXJucyB7IGZsZXg6IDEgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoSW52ZXJ0LXR5
cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVj
dHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dAppbmRleCA3OWRmNDg2Y2NlODFjZmRl
NDNhZWVhMzM2YjliY2RmMzEyMjdmZTVmLi4zYTliMDcwYTllMTY5ZDUyZTZmNGFhYzg3OGE2ODJk
MDMxYzk2YzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMt
b2JqZWN0cy9jc3NNYXRoSW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhJbnZlcnQtdHlwZS1leHBlY3Rl
ZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgSW52ZXJ0aW5nIGEgdHlwZSB3aXRoIGVtcHR5
IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVk
ICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwgSW52ZXJ0aW5n
IGEgdHlwZSBuZWdhdGVzIGFsbCBpdHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBl
eHBlY3RlZCAtMSBidXQgZ290IDAKLUZBSUwgSW52ZXJ0aW5nIGFuIGludmVydGVkIHR5cGUgcmV0
dXJucyB0aGUgb3JpZ2luYWwgdHlwZSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBi
dXQgZ290IDAKK1BBU1MgSW52ZXJ0aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRo
ZSBlbXB0eSBtYXAKK1BBU1MgSW52ZXJ0aW5nIGEgdHlwZSBuZWdhdGVzIGFsbCBpdHMgZXhwb25l
bnRzCitQQVNTIEludmVydGluZyBhbiBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhlIG9yaWdpbmFs
IHR5cGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9i
amVjdHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQK
aW5kZXggMTE2M2QwZjFmNjg4MDgxOTZiNDgzMWVmMTlmNGYyMmFjMTZiM2ViOS4uZDM0OWE3ZTJk
MWY0ZmZiY2RkYmRhYmUxNjc4OWRjMzI4NWZhNmRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFs
dWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0ZS10eXBlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NN
YXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIE5lZ2F0
aW5nIGEgdHlwZSB3aXRoIGVtcHR5IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAgYXNzZXJ0X2Vx
dWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1i
ZXIpIDAKLUZBSUwgTmVnYXRpbmcgYSB0eXBlIHJldHVybnMgdGhlIHNhbWUgdHlwZSBhc3NlcnRf
ZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgTmVnYXRpbmcgYSB0eXBl
IHdpdGggZW1wdHkgbWFwIHJldHVybnMgdGhlIGVtcHR5IG1hcAorUEFTUyBOZWdhdGluZyBhIHR5
cGUgcmV0dXJucyB0aGUgc2FtZSB0eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aFZh
bHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggZjM3N2E3MjIwMjFiZWJhYjIwODZhZGZi
NzI1YTA5NDRiYTlmNzk5ZS4uNGJlOGU3MWQ3YzYwNTQxZGFkNzk1OTY2OWY4YTQyZDY2NGUzNGVh
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMv
Y3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aFZhbHVlLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKQEAgLTEsOSArMSw5IEBACiAKLUZBSUwgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFN1bSB3
aXRoIG5vIGFyZ3VtZW50cyB0aHJvd3MgYSBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTog
ZnVuY3Rpb24gIigpID0+IG5ldyBzdWJjbGFzcygpIiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0
cnVjdGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJy
b3IKIFBBU1MgQ1NTTWF0aFN1bSBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBhIHNpbmdsZSBudW1i
ZXIgQ1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhTdW0gY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20g
bW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhTdW0ub3BlcmF0
b3IgaXMgcmVhZG9ubHkKLUZBSUwgQ29uc3RydWN0aW5nIGEgQ1NTTWF0aFByb2R1Y3Qgd2l0aCBu
byBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0
aW9uICIoKSA9PiBuZXcgc3ViY2xhc3MoKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb25zdHJ1Y3Rp
bmcgYSBDU1NNYXRoUHJvZHVjdCB3aXRoIG5vIGFyZ3VtZW50cyB0aHJvd3MgYSBTeW50YXhFcnJv
cgogUEFTUyBDU1NNYXRoUHJvZHVjdCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBhIHNpbmdsZSBu
dW1iZXIgQ1NTVW5pdFZhbHVlCiBQQVNTIENTU01hdGhQcm9kdWN0IGNhbiBiZSBjb25zdHJ1Y3Rl
ZCBmcm9tIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoUHJv
ZHVjdC5vcGVyYXRvciBpcyByZWFkb25seQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3Vi
Y2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9z
dHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3Rl
ZC50eHQKaW5kZXggNjViN2Q4NDZjM2ZjNzQyOWEzYWJlMzIxYThmNDY2ZjkzODhmZTlmNy4uM2Fh
MmVjOGM1Y2I1NmUyMDcyYzMxMDhjZWUzOWU4MTYxMThlNjY2MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NV
bml0VmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIENvbnN0cnVjdGlu
ZyBDU1NVbml0VmFsdWUgd2l0aCBhbiB1bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yIGFz
c2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTVW5pdFZhbHVlKDAsICdsZW1v
bicpIiBkaWQgbm90IHRocm93Ci1GQUlMIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBh
IGVtcHR5IHN0cmluZyB1bml0IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBm
dW5jdGlvbiAiKCkgPT4gbmV3IENTU1VuaXRWYWx1ZSgwLCAnJykiIGRpZCBub3QgdGhyb3cKK1BB
U1MgQ29uc3RydWN0aW5nIENTU1VuaXRWYWx1ZSB3aXRoIGFuIHVua25vd24gdW5pdCB0aHJvd3Mg
YSBUeXBlRXJyb3IKK1BBU1MgQ29uc3RydWN0aW5nIENTU1VuaXRWYWx1ZSB3aXRoIGEgZW1wdHkg
c3RyaW5nIHVuaXQgdGhyb3dzIGEgVHlwZUVycm9yCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUg
Y29uc3RydWN0ZWQgd2l0aCBudW1iZXIKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1
Y3RlZCB3aXRoIHBlcmNlbnQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3
aXRoIGVtCkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1
Y3RlZCB3aXRoIHZtaW4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IHZtYXgKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGNtCiBQQVNT
IENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBtbQotRkFJTCBDU1NVbml0VmFs
dWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUSBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUg
YXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgInEiIGJ1dCBnb3QgIlEiCitQQVNTIENT
U1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBRCiBQQVNTIENTU1VuaXRWYWx1ZSBj
YW4gYmUgY29uc3RydWN0ZWQgd2l0aCBpbgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0
cnVjdGVkIHdpdGggcHQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IHBjCkBAIC0yOSw4ICsyOSw4IEBAIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3Rl
ZCB3aXRoIHJhZAogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggdHVy
bgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggcwogUEFTUyBDU1NV
bml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbXMKLUZBSUwgQ1NTVW5pdFZhbHVlIGNh
biBiZSBjb25zdHJ1Y3RlZCB3aXRoIEh6IGFzc2VydF9lcXVhbHM6IHVuaXQgaXMgc2FtZSBhcyBn
aXZlbiBieSBjb25zdHJ1Y3RvciBleHBlY3RlZCAiaHoiIGJ1dCBnb3QgIkh6IgotRkFJTCBDU1NV
bml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgga0h6IGFzc2VydF9lcXVhbHM6IHVuaXQg
aXMgc2FtZSBhcyBnaXZlbiBieSBjb25zdHJ1Y3RvciBleHBlY3RlZCAia2h6IiBidXQgZ290ICJr
SHoiCitQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBIegorUEFTUyBD
U1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgga0h6CiBQQVNTIENTU1VuaXRWYWx1
ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBkcGkKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBj
b25zdHJ1Y3RlZCB3aXRoIGRwY20KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3Rl
ZCB3aXRoIGRwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nz
c251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApp
bmRleCA4YThiOTk3OGI0MjM4OWFkMGJkNjA3YzQ3MTM2NTlmZGZlNzVmNWMxLi5iYjk5M2I2YTRl
YWZkOTIyNzVmZDRlNDQ2MzQ4MmQ5NzRhNTFkY2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdv
LXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogCi1GQUlMIE11bHRpcGx5aW5n
IHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93cyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IG5ldyBDU1NNYXRoUHJv
ZHVjdChhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0
aCBzYW1lIGJhc2UgdHlwZXMgYWRkcyBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4
cGVjdGVkIDIgYnV0IGdvdCAwCi1GQUlMIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZl
cmVudCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBl
Y3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgcmVzcGVjdHMgdGhl
IHNpZ24gb2YgdGhlIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBi
dXQgZ290IDAKLUZBSUwgTXVsdGlwbHlpbmcgYSB0eXBlIHdpdGggbm8gZXhwb25lbnRzIGlzIGEg
bm8tb3AgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIE11
bHRpcGx5aW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhp
bnQgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCi1GQUlMIE11bHRp
cGx5aW5nIHR3byB0eXBlcyB3aXRoIHNhbWUgcGVyY2VudCBoaW50IGFwcGxpZXMgdGhlIHBlcmNl
bnQgaGludCBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDAKK1BBU1Mg
TXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggZGlmZmVyZW50IG5vbi1udWxsIHBlcmNlbnQgaGlu
dHMgdGhyb3dzIFR5cGVFcnJvcgorUEFTUyBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1l
IGJhc2UgdHlwZXMgYWRkcyBleHBvbmVudHMKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdp
dGggZGlmZmVyZW50IGJhc2UgdHlwZXMgYWRkcyBleHBvbmVudHMKK1BBU1MgTXVsdGlwbHlpbmcg
dHdvIHR5cGVzIHJlc3BlY3RzIHRoZSBzaWduIG9mIHRoZSBleHBvbmVudHMKK1BBU1MgTXVsdGlw
bHlpbmcgYSB0eXBlIHdpdGggbm8gZXhwb25lbnRzIGlzIGEgbm8tb3AKK1BBU1MgTXVsdGlwbHlp
bmcgYSB0eXBlIHdpdGggcGVyY2VudCBoaW50IGFwcGxpZXMgdGhlIHBlcmNlbnQgaGludAorUEFT
UyBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGludCBhcHBsaWVzIHRo
ZSBwZXJjZW50IGhpbnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9u
dW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5k
ZXggYWMyZTA4MDZmZWMzYWQ3ZWE5MTJmZTZmZTg3OWQ1YTA3ZjJkZDNjMy4uNjMwODBjZDk5NWZh
NGI3YTdkOTQ4YWY3Yzg3OGRlNDMyZDAxNDdkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUt
c3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlw
ZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0CkBAIC0xMyw1ICsxMyw1IEBAIEZBSUwgQ29udmVydGluZyBhIENTU01hdGhN
YXggdG8gYSBzaW5nbGUgdW5pdCBmaW5kcyB0aGUgbWF4IHZhbHVlIGFzc2VydF9hcHByb3hfCiBG
QUlMIENvbnZlcnRpbmcgYSBDU1NNYXRoTWF4IHRvIGEgc2luZ2xlIHVuaXQgd2l0aCBkaWZmZXJl
bnQgdW5pdHMgdGhyb3dzIGEgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIo
KSA9PiBuZXcgQ1NTTWF0aE1heChDU1MucHgoMiksIENTUy5zKDMpKS50bygncHgnKSIgZGlkIG5v
dCB0aHJvdwogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aE5lZ2F0ZSB0byBhIHNpbmdsZSB1bml0
IG5lZ2F0ZXMgaXRzIHZhbHVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCAtMSArLy0g
MC4wMDAwMDEgYnV0IGdvdCAxCiBGQUlMIENvbnZlcnRpbmcgYSBDU1NNYXRoSW52ZXJ0IHRvIGEg
c2luZ2xlIHVuaXQgaW52ZXJ0cyBpdHMgdmFsdWUgYW5kIHVuaXRzIGFzc2VydF9hcHByb3hfZXF1
YWxzOiBleHBlY3RlZCAyICsvLSAwLjAwMDAwMSBidXQgZ290IDEKLUZBSUwgQ29udmVydGluZyBh
IGNvbXBsZXggZXhwcmVzc2lvbiB0byBhIHNpbmdsZSB1bml0IGFzc2VydF9hcHByb3hfZXF1YWxz
OiBleHBlY3RlZCAzNTAwICsvLSAwLjAwMDAwMSBidXQgZ290IDEKK0ZBSUwgQ29udmVydGluZyBh
IGNvbXBsZXggZXhwcmVzc2lvbiB0byBhIHNpbmdsZSB1bml0IFR5cGUgZXJyb3IKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456198</attachid>
            <date>2022-03-30 20:44:25 -0700</date>
            <delta_ts>2022-03-31 03:22:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238532-20220330204424.patch</filename>
            <type>text/plain</type>
            <size>65535</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U3YTBjYjlmYThhNzgw
ZDk0OGZkNzU1OGRmMzQwMWUxZWE2NDYwOC4uZTMwNDkwMjhmNTZjZTM5Yjc5YTA5MmRjMjgxYmYx
NmU2MGI2ZmExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIyLTAzLTMwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IHVuaXRzIGZvciBDU1MgVHlwZWQgT00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODUzMgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KKworICAgICAgICBUaGlzIGZlYXR1cmUgaXMgb2ZmIGJ5IGRlZmF1bHQgYW5kIHRoaXMg
cGFydCBpcyBjb3ZlcmVkIGJ5IFdQVCB0ZXN0cy4KKworICAgICAgICAqIGNzcy90eXBlZG9tL0NT
U051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5lZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjppbnZl
cnQpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0aW9uT25WYWx1ZXNPZlNhbWVVbml0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6YWRkSW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVt
ZXJpY1ZhbHVlOjpzdWIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWx0
aXBseUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bXVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6dG8pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0b1N1bSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmlj
VmFsdWU6OnR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNW
YWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0eXBlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6Q1NTTnVtZXJpY1ZhbHVlKToKKyAg
ICAgICAgKiBjc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bnVtZXJpY1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VVbml0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1VuaXRWYWx1ZTo6dW5pdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NV
bml0VmFsdWU6OnVuaXRTZXJpYWxpemF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1VuaXRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1VuaXRWYWx1ZTo6Q1NT
VW5pdFZhbHVlKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bmVnYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aEludmVydDo6Q1NT
TWF0aEludmVydCk6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01hdGhOZWdhdGU6OkNTU01hdGhOZWdhdGUpOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFByb2R1Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bXVsdGlwbHlUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoUHJvZHVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NNYXRoUHJvZHVjdDo6dmFsdWVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZFR5cGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU01hdGhTdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNYXRoU3VtOjpDU1NNYXRoU3VtKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhTdW0uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhWYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFZhbHVlOjpDU1NNYXRoVmFsdWUpOgorICAgICAg
ICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNCYXNlVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6ZWFjaEJhc2VU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlYnVnU3RyaW5nKToKKyAgICAgICAgKCk6IERlbGV0
ZWQuCisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1R5cGU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1R5cGU6OnZhbHVlRm9yVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NOdW1lcmljVHlwZTo6YXBwbHlQZXJjZW50SGludCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NOdW1lcmljVHlwZTo6ZGVidWdTdHJpbmcgY29uc3QpOgorICAgICAgICAoKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmlkbDoKKwog
MjAyMi0wMy0zMCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAog
ICAgICAgICBNaWdyYXRlIG1hbmlmZXN0IHZlcnNpb24gY29udGVudCBzZWN1cml0eSBwb2xpY3kg
ZmlsdGVyaW5nIGZvciBleHRlbnNpb25zIGludG8gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCmluZGV4IDFjOTBjNzZlYzUwYWQyNzBkN2Q0OTMx
N2E2MjFhNTRjMGQ5MGRlM2YuLmUwODdhMTNiODY0Yjc2ZDQ5ZTkyODBlYTY3MmEwMTlkZGJhMmQ0
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBA
IC00NCw3ICs0NCw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBDU1NVbml0
VHlwZSBjc3NQcmltaXRpdmVWYWx1ZVVuaXRGcm9tVHJpZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGRhdGEpOwotICAgIEFTU0VSVChs
ZW5ndGgpOwogICAgIHN3aXRjaCAobGVuZ3RoKSB7CiAgICAgY2FzZSAxOgogICAgICAgICBzd2l0
Y2ggKHRvQVNDSUlMb3dlcihkYXRhWzBdKSkgewpAQCAtMzI4LDcgKzMyNyw3IEBAIENTU1VuaXRU
eXBlIGNzc1ByaW1pdGl2ZVZhbHVlVW5pdEZyb21UcmllKGNvbnN0IENoYXJhY3RlclR5cGUqIGRh
dGEsIHVuc2lnbmVkIGxlCiAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfVU5LTk9XTjsKIH0K
IAotc3RhdGljIENTU1VuaXRUeXBlIHN0cmluZ1RvVW5pdFR5cGUoU3RyaW5nVmlldyBzdHJpbmdW
aWV3KQorQ1NTVW5pdFR5cGUgQ1NTUGFyc2VyVG9rZW46OnN0cmluZ1RvVW5pdFR5cGUoU3RyaW5n
VmlldyBzdHJpbmdWaWV3KQogewogICAgIGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQogICAgICAg
ICByZXR1cm4gY3NzUHJpbWl0aXZlVmFsdWVVbml0RnJvbVRyaWUoc3RyaW5nVmlldy5jaGFyYWN0
ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW4uaAppbmRleCA4NzRiNDYzNzdkMDcyYWI3MGMxMjEyM2ViODBlOTZiNTc0
YjM3NDY5Li44YTM3OTZmNzA5Nzg5NWNkNTNjYWI0YWM1YzAyNGI4ZjBmYjhhMTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5oCkBAIC0xMDUsNiArMTA1LDgg
QEAgcHVibGljOgogCiAgICAgQ1NTUGFyc2VyVG9rZW4oSGFzaFRva2VuVHlwZSwgU3RyaW5nVmll
dyk7CiAKKyAgICBzdGF0aWMgQ1NTVW5pdFR5cGUgc3RyaW5nVG9Vbml0VHlwZShTdHJpbmdWaWV3
KTsKKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJUb2tlbiYgb3RoZXIpIGNv
bnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDU1NQYXJzZXJUb2tlbiYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCmluZGV4IDM1MzYyYjIxNmQwMmJiNzIzYjc4
NmEyYzcyMTMzZDE1NjNiYjIwZjAuLmM0MGVkYmEwNzJkMzQ3MTBkN2FjNmI3MTBhNWNlMzc3ZGY2
MzU5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNG
YWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3Rv
cnkuaApAQCAtNDMsNjQgKzQzLDY0IEBAIGNsYXNzIENTU051bWVyaWNGYWN0b3J5IGZpbmFsIDog
cHVibGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgQ1NTTnVtZXJpY0ZhY3RvcnkoRE9NQ1NTTmFtZXNwYWNlJikgeyB9CiAKLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJudW1iZXIiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBlcmNlbnQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51
bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBD
U1NVbml0VHlwZTo6Q1NTX05VTUJFUik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UpOyB9CiAKIAogICAgIC8vIDxsZW5ndGg+Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJlbSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgImV4Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY2giX3MpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpYyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJyZW0iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJsaCJfcyk7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJybGgiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ2dyJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmgoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZoIl9zKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aShkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmkiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ2YiJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1pbihk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1pbiJf
cyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1heCJfcyk7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNtIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
bW0iX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInEiX3MpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJpbiJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0
Il9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMiX3MpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJweCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
Y3F3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJj
cXciX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FoIl9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaSJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gY3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjcWIiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1pbiJfcyk7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWF4Il9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19FWFMpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ0hTKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NVbml0VHlwZTo6Q1NTX0lDKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBy
ZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NT
VW5pdFR5cGU6OkNTU19SRU1TKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0
VHlwZTo6Q1NTX0xIUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBl
OjpDU1NfUkxIUyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNT
U19WVyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19WSCk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19WSSk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19WQik7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX1ZNSU4pOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19WTUFYKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NNKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX01NKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
IENTU1VuaXRUeXBlOjpDU1NfUSk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5p
dFR5cGU6OkNTU19JTik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHQoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19QVCk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19Q
Qyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7IH0K
KyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FXKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19DUUgpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NRSSk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfQ1FCKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYKTsgfQogCiAKICAgICAvLyA8YW5n
bGU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZGVnIl9zKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJncmFkIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiByYWQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
InJhZCJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidHVybiJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfREVHKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfR1JBRCk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfUkFEKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfVFVSTik7IH0KIAogCiAgICAgLy8gPHRp
bWU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInMiX3MpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJtcyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlw
ZTo6Q1NTX1MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
TVMpOyB9CiAKIAogICAgIC8vIDxmcmVxdWVuY3k+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJoeiJfcyk7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJraHoiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfSFopOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX0tIWik7IH0KIAogCiAgICAgLy8gPHJl
c29sdXRpb24+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBpIl9zKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNtIl9zKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJkcHB4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGkoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5
cGU6OkNTU19EUEkpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6
OkNTU19EUENNKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpD
U1NfRFBQWCk7IH0KIAogCiAgICAgLy8gPGZsZXg+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJmciJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19G
Uik7IH0KIAogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vQ1NTTnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNWYWx1ZS5jcHAKaW5kZXggZWQ3YmY5ODM4YjI4MzZmMDBmZGQ1YTk1YTQ5YjdiMGMwMzY2
NmVmYS4uZmE0MzFkYzJkOTg2YmEzZTJiNGM3MDBkMjY2MzVmNGIxNGUxZTU4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHN0YXRpYyBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBuZWdhdGUoUmVmPENTU051bWVyaWNW
YWx1ZT4mJiB2YWx1ZSkKICAgICBpZiAoYXV0byogbWF0aE5lZ2F0ZSA9IGR5bmFtaWNEb3duY2Fz
dDxDU1NNYXRoTmVnYXRlPih2YWx1ZS5nZXQoKSkpCiAgICAgICAgIHJldHVybiBtYXRoTmVnYXRl
LT52YWx1ZSgpOwogICAgIGlmIChhdXRvKiB1bml0VmFsdWUgPSBkeW5hbWljRG93bmNhc3Q8Q1NT
VW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkpCi0gICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSgtdW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUtPnVuaXQoKSk7CisgICAgICAgIHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgtdW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUt
PnVuaXRFbnVtKCkpOwogICAgIHJldHVybiBDU1NNYXRoTmVnYXRlOjpjcmVhdGUoV1RGTW92ZSh2
YWx1ZSkpOwogfQogCkBAIC02NywxMSArNjcsMTAgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxD
U1NOdW1lcmljVmFsdWU+PiBpbnZlcnQoUmVmPENTU051bWVyaWNWYWx1ZT4mJiB2YWx1ZSkKICAg
ICAgICAgcmV0dXJuIFJlZiB7IG1hdGhJbnZlcnQtPnZhbHVlKCkgfTsKIAogICAgIGlmIChhdXRv
KiB1bml0VmFsdWUgPSBkeW5hbWljRG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkp
IHsKLSAgICAgICAgLy8gRklYTUU6IHVuaXRzIHNob3VsZCBiZSBlaXRoZXIgQXRvbWljU3RyaW5n
cyBvciBDU1NVbml0VHlwZSBlbnVtZXJhdGlvbiB2YWx1ZXMuCi0gICAgICAgIGlmICh1bml0VmFs
dWUtPnVuaXQoKSA9PSAibnVtYmVyIikgeworICAgICAgICBpZiAodW5pdFZhbHVlLT51bml0RW51
bSgpID09IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKSB7CiAgICAgICAgICAgICBpZiAodW5pdFZh
bHVlLT52YWx1ZSgpID09IDAuMCB8fCB1bml0VmFsdWUtPnZhbHVlKCkgPT0gLTAuMCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciB9OwotICAgICAgICAgICAg
cmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wIC8g
dW5pdFZhbHVlLT52YWx1ZSgpLCB1bml0VmFsdWUtPnVuaXQoKSkgfTsKKyAgICAgICAgICAgIHJl
dHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCAvIHVu
aXRWYWx1ZS0+dmFsdWUoKSwgdW5pdFZhbHVlLT51bml0RW51bSgpKSB9OwogICAgICAgICB9CiAg
ICAgfQogCkBAIC04MywxMSArODIsMTEgQEAgc3RhdGljIFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+
IG9wZXJhdGlvbk9uVmFsdWVzT2ZTYW1lVW5pdChUJiYgb3BlcmF0aW9uLCBjb25zdAogewogICAg
IGJvb2wgYWxsVmFsdWVzSGF2ZVNhbWVVbml0ID0gdmFsdWVzLnNpemUoKSAmJiBXVEY6OmFsbE9m
KHZhbHVlcywgWyZdIChjb25zdCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUpIHsKICAgICAg
ICAgYXV0byogdW5pdFZhbHVlID0gZHluYW1pY0Rvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUu
Z2V0KCkpOwotICAgICAgICByZXR1cm4gdW5pdFZhbHVlID8gdW5pdFZhbHVlLT51bml0KCkgPT0g
ZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbMF0uZ2V0KCkpLnVuaXQoKSA6IGZhbHNlOwor
ICAgICAgICByZXR1cm4gdW5pdFZhbHVlID8gdW5pdFZhbHVlLT51bml0RW51bSgpID09IGRvd25j
YXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWzBdLmdldCgpKS51bml0RW51bSgpIDogZmFsc2U7CiAg
ICAgfSk7CiAgICAgaWYgKGFsbFZhbHVlc0hhdmVTYW1lVW5pdCkgewogICAgICAgICBhdXRvJiBm
aXJzdFVuaXRWYWx1ZSA9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWzBdLmdldCgpKTsK
LSAgICAgICAgU3RyaW5nIHVuaXQgPSBmaXJzdFVuaXRWYWx1ZS51bml0KCk7CisgICAgICAgIGF1
dG8gdW5pdCA9IGZpcnN0VW5pdFZhbHVlLnVuaXRFbnVtKCk7CiAgICAgICAgIGRvdWJsZSByZXN1
bHQgPSBmaXJzdFVuaXRWYWx1ZS52YWx1ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsg
aSA8IHZhbHVlcy5zaXplKCk7IGkrKykKICAgICAgICAgICAgIHJlc3VsdCA9IG9wZXJhdGlvbihy
ZXN1bHQsIGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzW2ldLmdldCgpKS52YWx1ZSgpKTsK
QEAgLTEwNywzMiArMTA2LDMzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpwcmVwZW5kSXRlbXNPCiAgICAgcmV0dXJu
IHZhbHVlczsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjphZGRJ
bnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZhbHVlcykKK0V4
Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OmFkZEludGVy
bmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmFsdWVzKQogewogICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3Nu
dW1lcmljdmFsdWUtYWRkCiAgICAgYXV0byB2YWx1ZXMgPSBwcmVwZW5kSXRlbXNPZlR5cGVPclRo
aXM8Q1NTTWF0aFN1bT4oV1RGTW92ZShudW1lcmljVmFsdWVzKSk7CiAKICAgICBpZiAoYXV0byBy
ZXN1bHQgPSBvcGVyYXRpb25PblZhbHVlc09mU2FtZVVuaXQoc3RkOjpwbHVzPGRvdWJsZT4oKSwg
dmFsdWVzKSkKLSAgICAgICAgcmV0dXJuICpyZXN1bHQ7Ci0KLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHN0ZXAgNCB0byBjaGVjayB0aGF0IHRoZSB0eXBlcyBjYW4gYmUgYWRkZWQuCisgICAgICAg
IHJldHVybiB7ICpyZXN1bHQgfTsKIAotICAgIHJldHVybiBDU1NNYXRoU3VtOjpjcmVhdGUoV1RG
TW92ZSh2YWx1ZXMpKTsKKyAgICBhdXRvIHN1bSA9IENTU01hdGhTdW06OmNyZWF0ZShXVEZNb3Zl
KHZhbHVlcykpOworICAgIGlmIChzdW0uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBz
dW0ucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7
IHN1bS5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OwogfQogCi1SZWY8Q1NTTnVtZXJpY1ZhbHVlPiBD
U1NOdW1lcmljVmFsdWU6OmFkZChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQor
RXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6YWRkKEZp
eGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCiB7CiAgICAgcmV0dXJuIGFkZEludGVy
bmFsKFdURjo6bWFwKFdURk1vdmUodmFsdWVzKSwgcmVjdGlmeU51bWJlcmlzaCkpOwogfQogCi1S
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6OnN1YihGaXhlZFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgdmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENT
U051bWVyaWNWYWx1ZTo6c3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCiB7
CiAgICAgcmV0dXJuIGFkZEludGVybmFsKFdURjo6bWFwKFdURk1vdmUodmFsdWVzKSwgW10gKENT
U051bWJlcmlzaCYmIG51bWJlcmlzaCkgewogICAgICAgICByZXR1cm4gbmVnYXRlKHJlY3RpZnlO
dW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSk7CiAgICAgfSkpOwogfQogCi1SZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxD
U1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWYWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmFsdWVzKQogewogICAgIC8vIGh0dHBzOi8vZHJh
ZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtbXVs
CiAgICAgYXV0byB2YWx1ZXMgPSBwcmVwZW5kSXRlbXNPZlR5cGVPclRoaXM8Q1NTTWF0aFByb2R1
Y3Q+KFdURk1vdmUobnVtZXJpY1ZhbHVlcykpOwpAQCAtMTQ0LDggKzE0NCw4IEBAIFJlZjxDU1NO
dW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVm
PENTU051bWVyaWNWYWx1CiAgICAgICAgIGJvb2wgbXVsdGlwbGVVbml0c0ZvdW5kIHsgZmFsc2Ug
fTsKICAgICAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG5vbk51bWJlclVuaXRJbmRleDsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAg
ICAgICAgIGF1dG8mIHVuaXQgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1tpXS5nZXQo
KSkudW5pdCgpOwotICAgICAgICAgICAgaWYgKHVuaXQgPT0gIm51bWJlciIpCisgICAgICAgICAg
ICBhdXRvIHVuaXQgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1tpXS5nZXQoKSkudW5p
dEVudW0oKTsKKyAgICAgICAgICAgIGlmICh1bml0ID09IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVS
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKG5vbk51bWJlclVu
aXRJbmRleCkgewogICAgICAgICAgICAgICAgIG11bHRpcGxlVW5pdHNGb3VuZCA9IHRydWU7CkBA
IC0xNTcsMTcgKzE1NywxOCBAQCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6
Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdQogICAgICAgICAgICAg
ZG91YmxlIHByb2R1Y3QgPSAxOwogICAgICAgICAgICAgZm9yIChjb25zdCBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiYgdmFsdWUgOiB2YWx1ZXMpCiAgICAgICAgICAgICAgICAgcHJvZHVjdCAqPSBkb3du
Y2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKS52YWx1ZSgpOwotICAgICAgICAgICAgU3Ry
aW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZh
bHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgpIDogIm51bWJlciJfczsKLSAg
ICAgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShwcm9kdWN0LCB1bml0KTsKKyAg
ICAgICAgICAgIGF1dG8gdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0PENTU1Vu
aXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0RW51bSgpIDog
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7CisgICAgICAgICAgICByZXR1cm4geyBDU1NVbml0VmFs
dWU6OmNyZWF0ZShwcm9kdWN0LCB1bml0KSB9OwogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8g
RklYTUU6IEltcGxlbWVudCBzdGVwIDUgdG8gcHJvZHVjZSBhIHVuaXQgb2YgdGhlIGNvcnJlY3Qg
dHlwZS4KLQotICAgIHJldHVybiBDU1NNYXRoUHJvZHVjdDo6Y3JlYXRlKFdURk1vdmUodmFsdWVz
KSk7CisgICAgYXV0byBwcm9kdWN0ID0gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0ZShXVEZNb3ZlKHZh
bHVlcykpOworICAgIGlmIChwcm9kdWN0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
cHJvZHVjdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFs
dWU+IHsgcHJvZHVjdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OwogfQogCi1SZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYg
dmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1
ZTo6bXVsKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCiB7CiAgICAgcmV0dXJu
IG11bHRpcGx5SW50ZXJuYWwoV1RGOjptYXAoV1RGTW92ZSh2YWx1ZXMpLCByZWN0aWZ5TnVtYmVy
aXNoKSk7CiB9CkBAIC0yMzUsMTAgKzIzNiwxMCBAQCBSZWY8Q1NTVW5pdFZhbHVlPiBDU1NOdW1l
cmljVmFsdWU6OnRvKFN0cmluZyYmIHVuaXQpCiAgICAgVU5VU0VEX1BBUkFNKHVuaXQpOwogICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3Nu
dW1lcmljdmFsdWUtdG8KICAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciJfcyk7CisgICAgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpOwogfQogCi1SZWY8Q1NTTWF0
aFN1bT4gQ1NTTnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMp
CitFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4
ZWRWZWN0b3I8U3RyaW5nPiYmIHVuaXRzKQogewogICAgIFVOVVNFRF9QQVJBTSh1bml0cyk7CiAg
ICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNz
c251bWVyaWN2YWx1ZS10b3N1bQpAQCAtMjQ2LDEzICsyNDcsNiBAQCBSZWY8Q1NTTWF0aFN1bT4g
Q1NTTnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMpCiAgICAg
cmV0dXJuIENTU01hdGhTdW06OmNyZWF0ZShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+IHsgMS4w
IH0pOwogfQogCi1DU1NOdW1lcmljVHlwZSBDU1NOdW1lcmljVmFsdWU6OnR5cGUoKQotewotICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3Nu
dW1lcmljdmFsdWUtdHlwZQotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KLSAgICByZXR1cm4gQ1NT
TnVtZXJpY1R5cGUgeyB9OwotfQotCiBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4g
Q1NTTnVtZXJpY1ZhbHVlOjpwYXJzZShTdHJpbmcmJiBjc3NUZXh0KQogewogICAgIFVOVVNFRF9Q
QVJBTShjc3NUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U051bWVyaWNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1Zh
bHVlLmgKaW5kZXggMjZjYTgzOWU0Y2U0OTY1YzdjN2ZkYjVhOWZlZDBlMDk3YWYxYTU1NS4uNzE1
MTAxZDk0MWZlYjA3OTI2MDVkNDdmYjEwNGUxY2U1MjI1ZDdiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRlICJDU1NOdW1lcmljVHlwZS5oIgogI2lu
Y2x1ZGUgIkNTU1N0eWxlVmFsdWUuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0
Zi9GaXhlZFZlY3Rvci5oPgpAQCAtMzYsNyArMzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBDU1NOdW1lcmljVmFsdWU7CiBjbGFzcyBDU1NVbml0VmFsdWU7CiBjbGFzcyBDU1NNYXRo
U3VtOwotc3RydWN0IENTU051bWVyaWNUeXBlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3Mg
RXhjZXB0aW9uT3I7CiAKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgQ1NTTnVtZXJpY1ZhbHVlIDog
cHVibGljIENTU1N0eWxlVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTnVt
ZXJpY1ZhbHVlKTsKIHB1YmxpYzoKIAotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGFkZChGaXhl
ZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IHN1YihG
aXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG11
bChGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiBhZGQoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNl
cHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gc3ViKEZpeGVkVmVjdG9yPENTU051bWJlcmlz
aD4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG11bChGaXhlZFZl
Y3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiBkaXYoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiBtaW4oRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiBtYXgoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKQEAgLTU2LDggKzU2
LDkgQEAgcHVibGljOgogICAgIGJvb2wgZXF1YWxzKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4m
Jik7CiAgICAgCiAgICAgUmVmPENTU1VuaXRWYWx1ZT4gdG8oU3RyaW5nJiYpOwotICAgIFJlZjxD
U1NNYXRoU3VtPiB0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYpOwotICAgIENTU051bWVyaWNU
eXBlIHR5cGUoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFN1bT4+IHRvU3VtKEZpeGVk
VmVjdG9yPFN0cmluZz4mJik7CisKKyAgICBjb25zdCBDU1NOdW1lcmljVHlwZSYgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4gcGFyc2UoU3RyaW5nJiYpOwogICAgIHN0YXRpYyBSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiByZWN0aWZ5TnVtYmVyaXNoKENTU051bWJlcmlzaCYmKTsKQEAgLTY1LDExICs2
NiwxNCBAQCBwdWJsaWM6CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NOdW1lcmljVmFsdWU7IH0KIAog
cHJvdGVjdGVkOgotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGFkZEludGVybmFsKFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7Ci0gICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbXVsdGlw
bHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOworICAgIEV4Y2VwdGlv
bk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBhZGRJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+JiYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBtdWx0
aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBwcmVwZW5kSXRlbXNP
ZlR5cGVPclRoaXMoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKIAotICAgIENTU051
bWVyaWNWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICBDU1NOdW1lcmljVmFsdWUoQ1NTTnVtZXJpY1R5
cGUgdHlwZSA9IHsgfSkKKyAgICAgICAgOiBtX3R5cGUoV1RGTW92ZSh0eXBlKSkgeyB9CisKKyAg
ICBDU1NOdW1lcmljVHlwZSBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5pdFZhbHVlLmNwcAppbmRleCBiNzYwNTRm
ZGRkNGIwMzIxZTJjYjA1MjQ1YThkZWRjMTQxZmZjMThhLi5iM2JkNzJkMmU1NGE5ZWRhMGQwNjlh
MzY4MjFlYzBlOGQxNDQ1NGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9DU1NVbml0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1Vu
aXRWYWx1ZS5jcHAKQEAgLTMyLDEyICszMiwxMDUgQEAKIAogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAKKyNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2
ZVZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTVW5pdFZhbHVlKTsK
IAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IG51bWVyaWNUeXBlKENTU1Vu
aXRUeXBlIHVuaXQpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nz
cy10eXBlZC1vbS8jY3NzbnVtZXJpY3ZhbHVlLWNyZWF0ZS1hLXR5cGUKKyAgICBDU1NOdW1lcmlj
VHlwZSB0eXBlOworICAgIHN3aXRjaCAodW5pdENhdGVnb3J5KHVuaXQpKSB7CisgICAgY2FzZSBD
U1NVbml0Q2F0ZWdvcnk6Ok51bWJlcjoKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBlKSB9
OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpQZXJjZW50OgorICAgICAgICB0eXBlLnBlcmNl
bnQgPSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NV
bml0Q2F0ZWdvcnk6Okxlbmd0aDoKKyAgICAgICAgdHlwZS5sZW5ndGggPSAxOworICAgICAgICBy
ZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0ZWdvcnk6OkFuZ2xl
OgorICAgICAgICB0eXBlLmFuZ2xlID0gMTsKKyAgICAgICAgcmV0dXJuIHsgV1RGTW92ZSh0eXBl
KSB9OworICAgIGNhc2UgQ1NTVW5pdENhdGVnb3J5OjpUaW1lOgorICAgICAgICB0eXBlLnRpbWUg
PSAxOworICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0
Q2F0ZWdvcnk6OkZyZXF1ZW5jeToKKyAgICAgICAgdHlwZS5mcmVxdWVuY3kgPSAxOworICAgICAg
ICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgY2FzZSBDU1NVbml0Q2F0ZWdvcnk6OlJl
c29sdXRpb246CisgICAgICAgIHR5cGUucmVzb2x1dGlvbiA9IDE7CisgICAgICAgIHJldHVybiB7
IFdURk1vdmUodHlwZSkgfTsKKyAgICBjYXNlIENTU1VuaXRDYXRlZ29yeTo6T3RoZXI6CisgICAg
ICAgIGlmICh1bml0ID09IENTU1VuaXRUeXBlOjpDU1NfRlIpIHsKKyAgICAgICAgICAgIHR5cGUu
ZmxleCA9IDE7CisgICAgICAgICAgICByZXR1cm4geyBXVEZNb3ZlKHR5cGUpIH07CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Cit9CisKK3N0YXRpYyBDU1NVbml0VHlwZSBwYXJzZVVuaXQoY29uc3QgU3RyaW5nJiB1bml0KQor
eworICAgIGlmICh1bml0ID09ICJudW1iZXIiX3MpCisgICAgICAgIHJldHVybiBDU1NVbml0VHlw
ZTo6Q1NTX05VTUJFUjsKKyAgICBpZiAodW5pdCA9PSAicGVyY2VudCJfcykKKyAgICAgICAgcmV0
dXJuIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTsKKworICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhlc2Ugd2hlbiBMaW5lSGVpZ2h0VW5pdHNFbmFibGVkIGlzIGNoYW5nZWQgYmFjayB0byB0cnVl
IG9yIHJlbW92ZWQKKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMzUxCisgICAgaWYgKHVuaXQgPT0gImxoIl9zKQorICAgICAgICByZXR1cm4gQ1NTVW5p
dFR5cGU6OkNTU19MSFM7CisgICAgaWYgKHVuaXQgPT0gInJsaCJfcykKKyAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfUkxIUzsKKworICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbjo6c3Ry
aW5nVG9Vbml0VHlwZSh1bml0KTsKK30KKworU3RyaW5nIENTU1VuaXRWYWx1ZTo6dW5pdCgpIGNv
bnN0Cit7CisgICAgc3dpdGNoIChtX3VuaXQpIHsKKyAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSOgorICAgICAgICByZXR1cm4gIm51bWJlciJfczsKKyAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgcmV0dXJuICJwZXJjZW50Il9zOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdW5pdFNlcmlhbGl6YXRpb24o
KTsKK30KKworU3RyaW5nIENTU1VuaXRWYWx1ZTo6dW5pdFNlcmlhbGl6YXRpb24oKSBjb25zdAor
eworICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcobV91bml0KTsK
K30KKworRXhjZXB0aW9uT3I8UmVmPENTU1VuaXRWYWx1ZT4+IENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KGRvdWJsZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1bml0KQoreworICAgIGF1dG8gcGFyc2VkVW5p
dCA9IHBhcnNlVW5pdCh1bml0KTsKKyAgICBpZiAocGFyc2VkVW5pdCA9PSBDU1NVbml0VHlwZTo6
Q1NTX1VOS05PV04pCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKKyAg
ICBhdXRvIHR5cGUgPSBudW1lcmljVHlwZShwYXJzZWRVbml0KTsKKyAgICBpZiAoIXR5cGUpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKKyAgICBhdXRvIHVuaXRWYWx1
ZSA9IGFkb3B0UmVmKCpuZXcgQ1NTVW5pdFZhbHVlKHZhbHVlLCBwYXJzZWRVbml0KSk7CisgICAg
dW5pdFZhbHVlLT5tX3R5cGUgPSBXVEZNb3ZlKCp0eXBlKTsKKyAgICByZXR1cm4gdW5pdFZhbHVl
OworfQorCitDU1NVbml0VmFsdWU6OkNTU1VuaXRWYWx1ZShkb3VibGUgdmFsdWUsIENTU1VuaXRU
eXBlIHVuaXQpCisgICAgOiBDU1NOdW1lcmljVmFsdWUobnVtZXJpY1R5cGUodW5pdCkudmFsdWVf
b3IoQ1NTTnVtZXJpY1R5cGUoKSkpCisgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgICwgbV91bml0
KHVuaXQpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbml0VmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCmluZGV4IDJjMmU5ZTM0ZGZlNmUzNTYz
NzQyMzc5NTYzOGRjNmJlNzE5YzVjZmYuLjliZDk1MWJkZDZhZTlhM2M1ZWI4NWQ3M2I0YzU5Yzhj
M2Y1NTQzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1VuaXRWYWx1ZS5oCkBA
IC0zNCwzMyArMzQsMjkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIENT
U1VuaXRUeXBlIDogdWludDhfdDsKKwogY2xhc3MgQ1NTVW5pdFZhbHVlIGZpbmFsIDogcHVibGlj
IENTU051bWVyaWNWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NVbml0VmFs
dWUpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcmVhdGUoZG91Ymxl
IHZhbHVlLCBjb25zdCBTdHJpbmcmIHVuaXQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDU1NVbml0VmFsdWUodmFsdWUsIHVuaXQpKTsKLSAgICB9CisgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxDU1NVbml0VmFsdWU+PiBjcmVhdGUoZG91YmxlIHZhbHVlLCBjb25zdCBT
dHJpbmcmIHVuaXQpOworICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcmVhdGUoZG91Ymxl
IHZhbHVlLCBDU1NVbml0VHlwZSB1bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1VuaXRW
YWx1ZSh2YWx1ZSwgdW5pdCkpOyB9CiAKLSAgICAvLyBGSVhNRTogbm90IGNvcnJlY3QuCi0gICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbWFrZVN0cmluZygoaW50KSBt
X3ZhbHVlLCBtX3VuaXQpOyB9CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbWFrZVN0cmluZyhGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0ZShtX3ZhbHVlKSwgdW5p
dFNlcmlhbGl6YXRpb24oKSk7IH0KIAogICAgIGRvdWJsZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWU7IH0KICAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSB2YWx1ZSkgeyBtX3ZhbHVlID0g
dmFsdWU7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVuaXQoKSBjb25zdCB7IHJldHVybiBtX3VuaXQ7
IH0KLSAgICB2b2lkIHNldFVuaXQoY29uc3QgU3RyaW5nJiB1bml0KSB7IG1fdW5pdCA9IHVuaXQ7
IH0KKyAgICBTdHJpbmcgdW5pdCgpIGNvbnN0OworICAgIFN0cmluZyB1bml0U2VyaWFsaXphdGlv
bigpIGNvbnN0OworICAgIENTU1VuaXRUeXBlIHVuaXRFbnVtKCkgY29uc3QgeyByZXR1cm4gbV91
bml0OyB9CiAKIHByaXZhdGU6Ci0gICAgQ1NTVW5pdFZhbHVlKGRvdWJsZSB2YWx1ZSwgY29uc3Qg
U3RyaW5nJiB1bml0KQotICAgICAgICA6IG1fdmFsdWUodmFsdWUpCi0gICAgICAgICwgbV91bml0
KHVuaXQpCi0gICAgewotICAgIH0KKyAgICBDU1NVbml0VmFsdWUoZG91YmxlLCBDU1NVbml0VHlw
ZSk7CiAKICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU1VuaXRWYWx1ZTsgfQogCiAgICAgZG91YmxlIG1fdmFs
dWU7Ci0gICAgU3RyaW5nIG1fdW5pdDsKKyAgICBjb25zdCBDU1NVbml0VHlwZSBtX3VuaXQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmNwcAppbmRleCA1ZDkxMmQ4MjYyOGY4YmEz
NDIyYmM0OTk4MmFjNGUxYjE3MzRmZGM0Li41MjRiN2Y3MDFiYzhlN2FlOWQzODY3Y2FhZWEyMDdk
ODA0MWQwNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhJbnZlcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aEludmVydC5jcHAKQEAgLTQxLDggKzQxLDM0IEBAIFJlZjxDU1NNYXRoSW52ZXJ0
PiBDU1NNYXRoSW52ZXJ0OjpjcmVhdGUoQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhJbnZlcnQoV1RGTW92ZShudW1iZXJpc2gpKSk7CiB9
CiAKK3N0YXRpYyBDU1NOdW1lcmljVHlwZSBuZWdhdGVkVHlwZShjb25zdCBDU1NOdW1iZXJpc2gm
IG51bWJlcmlzaCkKK3sKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3Nz
LXR5cGVkLW9tLyN0eXBlLW9mLWEtY3NzbWF0aHZhbHVlCisgICAgcmV0dXJuIFdURjo6c3dpdGNo
T24obnVtYmVyaXNoLAorICAgICAgICBbXSAoZG91YmxlKSB7IHJldHVybiBDU1NOdW1lcmljVHlw
ZSgpOyB9LAorICAgICAgICBbXSAoY29uc3QgUmVmUHRyPENTU051bWVyaWNWYWx1ZT4mIHZhbHVl
KSB7CisgICAgICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NO
dW1lcmljVHlwZSgpOworICAgICAgICAgICAgQ1NTTnVtZXJpY1R5cGUgdHlwZSA9IHZhbHVlLT50
eXBlKCk7CisgICAgICAgICAgICBhdXRvIG5lZ2F0ZSA9IFtdIChhdXRvJiBvcHRpb25hbCkgewor
ICAgICAgICAgICAgICAgIGlmIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgPSAqb3B0aW9uYWwgKiAtMTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBuZWdhdGUo
dHlwZS5sZW5ndGgpOworICAgICAgICAgICAgbmVnYXRlKHR5cGUuYW5nbGUpOworICAgICAgICAg
ICAgbmVnYXRlKHR5cGUudGltZSk7CisgICAgICAgICAgICBuZWdhdGUodHlwZS5mcmVxdWVuY3kp
OworICAgICAgICAgICAgbmVnYXRlKHR5cGUucmVzb2x1dGlvbik7CisgICAgICAgICAgICBuZWdh
dGUodHlwZS5mbGV4KTsKKyAgICAgICAgICAgIG5lZ2F0ZSh0eXBlLnBlcmNlbnQpOworICAgICAg
ICAgICAgcmV0dXJuIHR5cGU7CisgICAgICAgIH0KKyAgICApOworfQorCiBDU1NNYXRoSW52ZXJ0
OjpDU1NNYXRoSW52ZXJ0KENTU051bWJlcmlzaCYmIG51bWJlcmlzaCkKLSAgICA6IG1fdmFsdWUo
Q1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpCisg
ICAgOiBDU1NNYXRoVmFsdWUobmVnYXRlZFR5cGUobnVtYmVyaXNoKSkKKyAgICAsIG1fdmFsdWUo
Q1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE5lZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhOZWdhdGUuY3BwCmluZGV4IDRkYTQzY2Q5MDcyNmQ0ODE2YWQ2ZmM2MTVmMjEyZmZmYmJmNTA2
ZjQuLjBhYjVmNjQxMGQzNDEzMTM1ZGI0ZmUyMTdhM2QwYjc2N2M2OWI0ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmNwcApA
QCAtMzYsMTMgKzM2LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKENTU01hdGhOZWdhdGUpOwogCitzdGF0aWMgQ1NTTnVtZXJpY1R5cGUgY29w
eVR5cGUoY29uc3QgQ1NTTnVtYmVyaXNoJiBudW1iZXJpc2gpCit7CisgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24obnVtYmVyaXNoLAorICAgICAgICBbXSAoZG91YmxlKSB7IHJldHVybiBDU1NOdW1l
cmljVHlwZSgpOyB9LAorICAgICAgICBbXSAoY29uc3QgUmVmUHRyPENTU051bWVyaWNWYWx1ZT4m
IHZhbHVlKSB7CisgICAgICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVy
biBDU1NOdW1lcmljVHlwZSgpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT50eXBlKCk7Cisg
ICAgICAgIH0KKyAgICApOworfQorCiBDU1NNYXRoTmVnYXRlOjpDU1NNYXRoTmVnYXRlKENTU051
bWJlcmlzaCYmIG51bWJlcmlzaCkKLSAgICA6IG1fdmFsdWUoQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0
aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpCisgICAgOiBDU1NNYXRoVmFsdWUoY29w
eVR5cGUobnVtYmVyaXNoKSkKKyAgICAsIG1fdmFsdWUoQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5
TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpCiB7CiB9CiAKIENTU01hdGhOZWdhdGU6OkNT
U01hdGhOZWdhdGUoUmVmPENTU051bWVyaWNWYWx1ZT4mJiB2YWx1ZSkKLSAgICA6IG1fdmFsdWUo
V1RGTW92ZSh2YWx1ZSkpCisgICAgOiBDU1NNYXRoVmFsdWUodmFsdWUtPnR5cGUoKSkKKyAgICAs
IG1fdmFsdWUoV1RGTW92ZSh2YWx1ZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKaW5kZXggZDcwMGU4OWY4
NTVlNmQ4NDVmZmMyMmM5MjZhYjM2YmU0ODMxMzQwZS4uNThiNjMwMDU2MmRmMDRiYTA0NWFiMGVi
N2FmMDQ5NzIzNzIzMzU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKQEAgLTI2LDI5ICsyNiw2NiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU01hdGhQcm9kdWN0LmgiCiAKLSNpbmNsdWRlICJD
U1NOdW1lcmljQXJyYXkuaCIKLQogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKKyNpbmNsdWRl
ICJDU1NOdW1lcmljQXJyYXkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU01hdGhQcm9kdWN0KTsKIAotQ1NTTWF0aFByb2R1Y3Q6
OkNTU01hdGhQcm9kdWN0KEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykK
LSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNo
ZXMpKSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNUeXBlPiBtdWx0aXBseVR5cGVz
KGNvbnN0IENTU051bWVyaWNUeXBlJiBhLCBjb25zdCBDU1NOdW1lcmljVHlwZSYgYikKK3sKKyAg
ICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjc3NudW1l
cmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzCisgICAgaWYgKGEucGVyY2VudEhpbnQgJiYgYi5w
ZXJjZW50SGludCAmJiAqYS5wZXJjZW50SGludCAhPSAqYi5wZXJjZW50SGludCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYWRkID0gW10gKGF1dG8gbGVmdCwgYXV0
byByaWdodCkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4geworICAgICAgICBpZiAoIWxlZnQp
CisgICAgICAgICAgICByZXR1cm4gcmlnaHQ7CisgICAgICAgIGlmICghcmlnaHQpCisgICAgICAg
ICAgICByZXR1cm4gbGVmdDsKKyAgICAgICAgcmV0dXJuICpsZWZ0ICsgKnJpZ2h0OworICAgIH07
CisgICAgCisgICAgcmV0dXJuIHsgeworICAgICAgICBhZGQoYS5sZW5ndGgsIGIubGVuZ3RoKSwK
KyAgICAgICAgYWRkKGEuYW5nbGUsIGIuYW5nbGUpLAorICAgICAgICBhZGQoYS50aW1lLCBiLnRp
bWUpLAorICAgICAgICBhZGQoYS5mcmVxdWVuY3ksIGIuZnJlcXVlbmN5KSwKKyAgICAgICAgYWRk
KGEucmVzb2x1dGlvbiwgYi5yZXNvbHV0aW9uKSwKKyAgICAgICAgYWRkKGEuZmxleCwgYi5mbGV4
KSwKKyAgICAgICAgYWRkKGEucGVyY2VudCwgYi5wZXJjZW50KSwKKyAgICAgICAgYS5wZXJjZW50
SGludCA/IGEucGVyY2VudEhpbnQgOiBiLnBlcmNlbnRIaW50CisgICAgfSB9OworfQorCitFeGNl
cHRpb25PcjxSZWY8Q1NTTWF0aFByb2R1Y3Q+PiBDU1NNYXRoUHJvZHVjdDo6Y3JlYXRlKEZpeGVk
VmVjdG9yPENTU051bWJlcmlzaD4gbnVtYmVyaXNoZXMpCiB7CisgICAgcmV0dXJuIGNyZWF0ZShX
VEY6Om1hcChXVEZNb3ZlKG51bWJlcmlzaGVzKSwgcmVjdGlmeU51bWJlcmlzaCkpOwogfQogCi1D
U1NNYXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmIHZhbHVlcykKLSAgICA6IG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1v
dmUodmFsdWVzKSkpCitFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFByb2R1Y3Q+PiBDU1NNYXRoUHJv
ZHVjdDo6Y3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzKQogeworICAg
IGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IgfTsKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNUeXBlPiB0eXBlID0g
dmFsdWVzWzBdLT50eXBlKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCB2YWx1ZXMuc2l6
ZSgpOyBpKyspIHsKKyAgICAgICAgdHlwZSA9IG11bHRpcGx5VHlwZXMoKnR5cGUsIHZhbHVlc1tp
XS0+dHlwZSgpKTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciB9OworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENT
U01hdGhQcm9kdWN0KFdURk1vdmUodmFsdWVzKSwgV1RGTW92ZSgqdHlwZSkpKTsKIH0KIAotY29u
c3QgQ1NTTnVtZXJpY0FycmF5JiBDU1NNYXRoUHJvZHVjdDo6dmFsdWVzKCkgY29uc3QKK0NTU01h
dGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHZh
bHVlcywgQ1NTTnVtZXJpY1R5cGUgdHlwZSkKKyAgICA6IENTU01hdGhWYWx1ZShXVEZNb3ZlKHR5
cGUpKQorICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1
ZXMpKSkKIHsKLSAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFByb2R1Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aFByb2R1Y3QuaAppbmRleCA2MGFmMGI3NzUzYzk2M2U1ZmE4MTg4OWFjNDc5MmFiNWI5NWVj
NWY0Li44ZWQ2MDVmMzUzYmEzM2U4NTdmYmFkMzBkNzllOWEzNzE1NGY0ZTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCkBA
IC0zNywxNSArMzcsMTUgQEAgY2xhc3MgQ1NTTnVtZXJpY0FycmF5OwogY2xhc3MgQ1NTTWF0aFBy
b2R1Y3QgZmluYWwgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKENTU01hdGhQcm9kdWN0KTsKIHB1YmxpYzoKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBBcmdzPiBzdGF0aWMgUmVmPENTU01hdGhQcm9kdWN0PiBjcmVhdGUoQXJncyYmLi4uIGFyZ3Mp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFByb2R1Y3Qoc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKSk7IH0KLSAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0
OworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8Q1NTTWF0aFByb2R1Y3Q+PiBjcmVhdGUoRml4
ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NN
YXRoUHJvZHVjdD4+IGNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+KTsKKyAgICBj
b25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzLmdl
dCgpOyB9CiAKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gQ1NTTWF0aE9wZXJhdG9yOjpQcm9kdWN0OyB9CiAgICAgQ1NTU3R5
bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU1N0eWxlVmFsdWVU
eXBlOjpDU1NNYXRoUHJvZHVjdDsgfQogCi0gICAgQ1NTTWF0aFByb2R1Y3QoRml4ZWRWZWN0b3I8
Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBDU1NNYXRoUHJvZHVjdChWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+JiYpOworICAgIENTU01hdGhQcm9kdWN0KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4sIENTU051bWVyaWNUeXBlKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBtX3ZhbHVl
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhTdW0uY3BwCmluZGV4IGE2ZDllZDkxZjI4OWUyYWE0ODdhNDk4Yzk3YjhmODAyYTdlYmFiMzgu
LjQ5YTExOGM1ZGEyZjcwM2Y5NDBjNTQ4ODZlZmNmMjY2MDE1Y2Y5OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApAQCAtMjYsMjMg
KzI2LDY3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTTWF0aFN1bS5oIgog
Ci0jaW5jbHVkZSAiQ1NTTnVtZXJpY0FycmF5LmgiCi0KICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09N
KQogCisjaW5jbHVkZSAiQ1NTTnVtZXJpY0FycmF5LmgiCisjaW5jbHVkZSA8d3RmL0FsZ29yaXRo
bXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NNYXRoU3VtKTsKIAotQ1NT
TWF0aFN1bTo6Q1NTTWF0aFN1bShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNo
ZXMpCi0gICAgOiBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJl
cmlzaGVzKSkpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxDU1NOdW1lcmljVHlwZT4gYWRkVHlwZXMo
Q1NTTnVtZXJpY1R5cGUgYSwgQ1NTTnVtZXJpY1R5cGUgYikKIHsKKyAgICAvLyBodHRwczovL2Ry
YWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNjc3NudW1lcmljdmFsdWUtYWRkLXR3
by10eXBlcworICAgIGlmIChhLnBlcmNlbnRIaW50ICYmIGIucGVyY2VudEhpbnQgJiYgKmEucGVy
Y2VudEhpbnQgIT0gKmIucGVyY2VudEhpbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBpZiAoYS5wZXJjZW50SGludCkKKyAgICAgICAgYi5hcHBseVBlcmNlbnRIaW50KCph
LnBlcmNlbnRIaW50KTsKKyAgICBpZiAoYi5wZXJjZW50SGludCkKKyAgICAgICAgYS5hcHBseVBl
cmNlbnRIaW50KCpiLnBlcmNlbnRIaW50KTsKKworICAgIGlmIChhID09IGIpCisgICAgICAgIHJl
dHVybiB7IFdURk1vdmUoYSkgfTsKKworICAgIGZvciAoYXV0byB0eXBlIDogZWFjaEJhc2VUeXBl
KCkpIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gQ1NTTnVtZXJpY0Jhc2VUeXBlOjpQZXJjZW50KQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghYS52YWx1ZUZvclR5cGUodHlwZSkg
JiYgIWIudmFsdWVGb3JUeXBlKHR5cGUpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGEuYXBwbHlQZXJjZW50SGludCh0eXBlKTsKKyAgICAgICAgYi5hcHBseVBlcmNlbnRIaW50KHR5
cGUpOworICAgICAgICBpZiAoYS52YWx1ZUZvclR5cGUodHlwZSkgIT0gYi52YWx1ZUZvclR5cGUo
dHlwZSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJl
dHVybiB7IFdURk1vdmUoYSkgfTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENTU01hdGhTdW0+PiBD
U1NNYXRoU3VtOjpjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiBudW1iZXJpc2hlcykK
K3sKKyAgICByZXR1cm4gY3JlYXRlKFdURjo6bWFwKFdURk1vdmUobnVtYmVyaXNoZXMpLCByZWN0
aWZ5TnVtYmVyaXNoKSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gQ1NTTWF0
aFN1bTo6Y3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gdmFsdWVzKQoreworICAg
IGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IgfTsKKworICAgIHN0ZDo6b3B0aW9uYWw8Q1NTTnVtZXJpY1R5cGU+IHR5cGUgPSB2YWx1
ZXNbMF0tPnR5cGUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHZhbHVlcy5zaXplKCk7
IGkrKykgeworICAgICAgICB0eXBlID0gYWRkVHlwZXMoKnR5cGUsIHZhbHVlc1tpXS0+dHlwZSgp
KTsKKyAgICAgICAgaWYgKCF0eXBlKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciB9OworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhTdW0o
V1RGTW92ZSh2YWx1ZXMpLCBXVEZNb3ZlKCp0eXBlKSkpOwogfQogCi1DU1NNYXRoU3VtOjpDU1NN
YXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCi0gICAgOiBtX3Zh
bHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQorQ1NTTWF0aFN1
bTo6Q1NTTWF0aFN1bShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IHZhbHVlcywgQ1NTTnVt
ZXJpY1R5cGUgdHlwZSkKKyAgICA6IENTU01hdGhWYWx1ZShXVEZNb3ZlKHR5cGUpKQorICAgICwg
bV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
U3VtLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaApp
bmRleCBmOTJhNjE0MTdhYmUxYzRkOWU4MWY5NDhiYmZhMTk5N2I2MmU3MDIxLi5kNTIzN2JiZmU1
NGU0ZGYwYjQ3NjQyMDVmZWE2NGQ1ZmNhNmZjZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaApAQCAtMzgsMTUgKzM4LDE1IEBAIGNsYXNz
IENTU051bWVyaWNBcnJheTsKIGNsYXNzIENTU01hdGhTdW0gZmluYWwgOiBwdWJsaWMgQ1NTTWF0
aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhTdW0pOwogcHVibGlj
OgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q1NTTWF0aFN1bT4g
Y3JlYXRlKEFyZ3MmJi4uLiBhcmdzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhTdW0o
c3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7IH0KKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmPENTU01hdGhTdW0+PiBjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPik7CisgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxDU1NNYXRoU3VtPj4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4pOwogICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBDU1NNYXRoT3Bl
cmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6
OlN1bTsgfQogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aFN1bTsgfQogCi0gICAgQ1NTTWF0aFN1
bShGaXhlZFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIENTU01hdGhTdW0oVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKyAgICBDU1NNYXRoU3VtKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4sIENTU051bWVyaWNUeXBlKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBt
X3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhWYWx1ZS5oCmluZGV4IGQyOWFlYTMyMWNmZmRhYTJiYTRhZTFhZjU3NjMyOTc4N2Ni
YjM4OWIuLjUzMWFiM2U3MzczYWMyYjIzZWQyMDQ2MjRjZDhmZDU0YjZhMDRkMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFZhbHVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoVmFsdWUuaApAQCAt
MzUsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU01hdGhWYWx1ZSA6
IHB1YmxpYyBDU1NOdW1lcmljVmFsdWUgewogcHVibGljOgorICAgIENTU01hdGhWYWx1ZShDU1NO
dW1lcmljVHlwZSB0eXBlID0geyB9KQorICAgICAgICA6IENTU051bWVyaWNWYWx1ZShXVEZNb3Zl
KHR5cGUpKSB7IH0KICAgICB2aXJ0dWFsIENTU01hdGhPcGVyYXRvciBnZXRPcGVyYXRvcigpIGNv
bnN0ID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmNwcAppbmRleCA5ZGU1MTkwMDk2YjliNDE3ZDY4ZjBmYjVk
NTliY2EyMmRkMGFkNjQ1Li5mOTc5ZWFiYzg4MzJlNTMwZmE1MzljYTUzODk0N2VhOGU1ZjNhYjc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVy
aWNBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NO
dW1lcmljQXJyYXkuY3BwCkBAIC0zOCwxMSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NOdW1lcmljQXJyYXkpOwogCi1SZWY8Q1NT
TnVtZXJpY0FycmF5PiBDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShjb25zdCBGaXhlZFZlY3RvcjxD
U1NOdW1iZXJpc2g+JiBudW1iZXJpc2hlcykKK1JlZjxDU1NOdW1lcmljQXJyYXk+IENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKEZpeGVkVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NOdW1lcmljQXJyYXkoV1RGOjptYXAobnVt
YmVyaXNoZXMsIFtdKGF1dG8mIG51bWJlcmlzaCkgLT4gUmVmPENTU051bWVyaWNWYWx1ZT4gewot
ICAgICAgICByZXR1cm4gQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKGNvbnN0X2Nh
c3Q8Q1NTTnVtYmVyaXNoJiY+KG51bWJlcmlzaCkpOwotICAgIH0pKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ1NTTnVtZXJpY0FycmF5KFdURjo6bWFwKFdURk1vdmUobnVtYmVyaXNoZXMp
LCBDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2gpKSk7CiB9CiAKIFJlZjxDU1NOdW1l
cmljQXJyYXk+IENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mJiB2YWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQXJyYXkuaAppbmRleCA3NDQ1ZWZiZDEyMGJjM2I3Njk3MDM5NDgzMWEz
YTRhOTIwOTc1MzZlLi5iODZhOWIyZWUyYzY4YmRlMzRjOTIzOTA4YWExMmRlNTdkNWQ3NzZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNB
cnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJp
Y0FycmF5LmgKQEAgLTQwLDcgKzQwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2Vw
dGlvbk9yOwogY2xhc3MgQ1NTTnVtZXJpY0FycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTTnVt
ZXJpY0FycmF5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NOdW1lcmljQXJyYXkp
OwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTTnVtZXJpY0FycmF5PiBjcmVhdGUoY29uc3Qg
Rml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYpOworICAgIHN0YXRpYyBSZWY8Q1NTTnVtZXJpY0Fy
cmF5PiBjcmVhdGUoRml4ZWRWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBzdGF0aWMgUmVm
PENTU051bWVyaWNBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7
CiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXkuc2l6ZSgpOyB9Owog
ICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpdGVtKHNpemVfdCBpbmRleCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVy
aWNCYXNlVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1l
cmljQmFzZVR5cGUuaAppbmRleCBkMDU1NzcyZTRhOWFmMTVjYzI2NjZjYWVjMGIyNGYwOGZiNjkz
ZTM5Li43MDVmZWIwMWY2MDQ2MjRiZjQ1MmQyNzY1ZWNjNGM5NWE5MzU0Y2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNCYXNlVHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0Jhc2VU
eXBlLmgKQEAgLTI3LDkgKzI3LDExIEBACiAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCisj
aW5jbHVkZSA8YXJyYXk+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBDU1NO
dW1lcmljQmFzZVR5cGU6IHVpbnQ4X3QgeworZW51bSBjbGFzcyBDU1NOdW1lcmljQmFzZVR5cGUg
OiB1aW50OF90IHsKICAgICBMZW5ndGgsCiAgICAgQW5nbGUsCiAgICAgVGltZSwKQEAgLTM5LDYg
KzQxLDQwIEBAIGVudW0gY2xhc3MgQ1NTTnVtZXJpY0Jhc2VUeXBlOiB1aW50OF90IHsKICAgICBQ
ZXJjZW50LAogfTsKIAorY29uc3RleHByIHN0ZDo6YXJyYXk8Q1NTTnVtZXJpY0Jhc2VUeXBlLCA3
PiBlYWNoQmFzZVR5cGUoKQoreworICAgIHJldHVybiB7CisgICAgICAgIENTU051bWVyaWNCYXNl
VHlwZTo6TGVuZ3RoLAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OkFuZ2xlLAorICAgICAg
ICBDU1NOdW1lcmljQmFzZVR5cGU6OlRpbWUsCisgICAgICAgIENTU051bWVyaWNCYXNlVHlwZTo6
RnJlcXVlbmN5LAorICAgICAgICBDU1NOdW1lcmljQmFzZVR5cGU6OlJlc29sdXRpb24sCisgICAg
ICAgIENTU051bWVyaWNCYXNlVHlwZTo6RmxleCwKKyAgICAgICAgQ1NTTnVtZXJpY0Jhc2VUeXBl
OjpQZXJjZW50CisgICAgfTsKK30KKworY29uc3RleHByIGNvbnN0IGNoYXIqIGRlYnVnU3RyaW5n
KENTU051bWVyaWNCYXNlVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpMZW5ndGg6CisgICAgICAgIHJldHVybiAibGVuZ3RoIjsK
KyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6QW5nbGU6CisgICAgICAgIHJldHVybiAiYW5n
bGUiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpUaW1lOgorICAgICAgICByZXR1cm4g
InRpbWUiOworICAgIGNhc2UgQ1NTTnVtZXJpY0Jhc2VUeXBlOjpGcmVxdWVuY3k6CisgICAgICAg
IHJldHVybiAiZnJlcXVlbmN5IjsKKyAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6UmVzb2x1
dGlvbjoKKyAgICAgICAgcmV0dXJuICJyZXNvbHV0aW9uIjsKKyAgICBjYXNlIENTU051bWVyaWNC
YXNlVHlwZTo6RmxleDoKKyAgICAgICAgcmV0dXJuICJmbGV4IjsKKyAgICBjYXNlIENTU051bWVy
aWNCYXNlVHlwZTo6UGVyY2VudDoKKyAgICAgICAgcmV0dXJuICJwZXJjZW50IjsKKyAgICB9Cisg
ICAgcmV0dXJuICJpbnZhbGlkIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVt
ZXJpY1R5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJp
Y1R5cGUuaAppbmRleCBjZjdlYTZkYWEzZjRkNTRmMTE0NTliMjI0ZDAyNzgzMDg5M2M5MTdiLi40
ZWNlOTgwYTYxZDU4YmZiNTMxNTY5ZGE3NmMwNDU0YmY0MGExYmE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5oCkBAIC0yOSwx
OCArMjksNzggQEAKIAogI2luY2x1ZGUgIkNTU051bWVyaWNCYXNlVHlwZS5oIgogI2luY2x1ZGUg
PG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5p
Lm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtdHlwZQogc3RydWN0IENTU051
bWVyaWNUeXBlIHsKLSAgICBsb25nIGxlbmd0aCB7IDAgfTsKLSAgICBsb25nIGFuZ2xlIHsgMCB9
OwotICAgIGxvbmcgdGltZSB7IDAgfTsKLSAgICBsb25nIGZyZXF1ZW5jeSB7IDAgfTsKLSAgICBs
b25nIHJlc29sdXRpb24geyAwIH07Ci0gICAgbG9uZyBmbGV4IHsgMCB9OwotICAgIGxvbmcgcGVy
Y2VudCB7IDAgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+IGxlbmd0aDsKKyAgICBzdGQ6Om9w
dGlvbmFsPGxvbmc+IGFuZ2xlOworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4gdGltZTsKKyAgICBz
dGQ6Om9wdGlvbmFsPGxvbmc+IGZyZXF1ZW5jeTsKKyAgICBzdGQ6Om9wdGlvbmFsPGxvbmc+IHJl
c29sdXRpb247CisgICAgc3RkOjpvcHRpb25hbDxsb25nPiBmbGV4OworICAgIHN0ZDo6b3B0aW9u
YWw8bG9uZz4gcGVyY2VudDsKICAgICBzdGQ6Om9wdGlvbmFsPENTU051bWVyaWNCYXNlVHlwZT4g
cGVyY2VudEhpbnQ7CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTTnVtZXJpY1R5cGUm
IG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGxlbmd0aCA9PSBvdGhlci5sZW5n
dGgKKyAgICAgICAgICAgICYmIGFuZ2xlID09IG90aGVyLmFuZ2xlCisgICAgICAgICAgICAmJiB0
aW1lID09IG90aGVyLnRpbWUKKyAgICAgICAgICAgICYmIGZyZXF1ZW5jeSA9PSBvdGhlci5mcmVx
dWVuY3kKKyAgICAgICAgICAgICYmIHJlc29sdXRpb24gPT0gb3RoZXIucmVzb2x1dGlvbgorICAg
ICAgICAgICAgJiYgZmxleCA9PSBvdGhlci5mbGV4CisgICAgICAgICAgICAmJiBwZXJjZW50ID09
IG90aGVyLnBlcmNlbnQKKyAgICAgICAgICAgICYmIHBlcmNlbnRIaW50ID09IG90aGVyLnBlcmNl
bnRIaW50OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8bG9uZz4mIHZhbHVlRm9yVHlwZShD
U1NOdW1lcmljQmFzZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgewor
ICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6TGVuZ3RoOgorICAgICAgICAgICAgcmV0
dXJuIGxlbmd0aDsKKyAgICAgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkFuZ2xlOgorICAg
ICAgICAgICAgcmV0dXJuIGFuZ2xlOworICAgICAgICBjYXNlIENTU051bWVyaWNCYXNlVHlwZTo6
VGltZToKKyAgICAgICAgICAgIHJldHVybiB0aW1lOworICAgICAgICBjYXNlIENTU051bWVyaWNC
YXNlVHlwZTo6RnJlcXVlbmN5OgorICAgICAgICAgICAgcmV0dXJuIGZyZXF1ZW5jeTsKKyAgICAg
ICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OlJlc29sdXRpb246CisgICAgICAgICAgICByZXR1
cm4gcmVzb2x1dGlvbjsKKyAgICAgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6OkZsZXg6Cisg
ICAgICAgICAgICByZXR1cm4gZmxleDsKKyAgICAgICAgY2FzZSBDU1NOdW1lcmljQmFzZVR5cGU6
OlBlcmNlbnQ6CisgICAgICAgICAgICByZXR1cm4gcGVyY2VudDsKKyAgICAgICAgfQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHZvaWQgYXBwbHlQ
ZXJjZW50SGludChDU1NOdW1lcmljQmFzZVR5cGUgaGludCkKKyAgICB7CisgICAgICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2FwcGx5LXRoZS1wZXJj
ZW50LWhpbnQKKyAgICAgICAgYXV0byYgb3B0aW9uYWwgPSB2YWx1ZUZvclR5cGUoaGludCk7Cisg
ICAgICAgIGlmICghb3B0aW9uYWwpCisgICAgICAgICAgICBvcHRpb25hbCA9IDA7CisgICAgICAg
IGlmIChwZXJjZW50KQorICAgICAgICAgICAgKm9wdGlvbmFsICs9ICpzdGQ6OmV4Y2hhbmdlKHBl
cmNlbnQsIDApOworICAgICAgICBwZXJjZW50SGludCA9IGhpbnQ7CisgICAgfQorCisgICAgU3Ry
aW5nIGRlYnVnU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJ7IiwKKyAgICAgICAgICAgIGxlbmd0aCA/IG1ha2VTdHJpbmcoIiBsZW5ndGg6IiwgKmxlbmd0
aCkgOiBTdHJpbmcoKSwKKyAgICAgICAgICAgIGFuZ2xlID8gbWFrZVN0cmluZygiIGFuZ2xlOiIs
ICphbmdsZSkgOiBTdHJpbmcoKSwKKyAgICAgICAgICAgIHRpbWUgPyBtYWtlU3RyaW5nKCIgdGlt
ZToiLCAqdGltZSkgOiBTdHJpbmcoKSwKKyAgICAgICAgICAgIGZyZXF1ZW5jeSA/IG1ha2VTdHJp
bmcoIiBmcmVxdWVuY3k6IiwgKmZyZXF1ZW5jeSkgOiBTdHJpbmcoKSwKKyAgICAgICAgICAgIHJl
c29sdXRpb24gPyBtYWtlU3RyaW5nKCIgcmVzb2x1dGlvbjoiLCAqcmVzb2x1dGlvbikgOiBTdHJp
bmcoKSwKKyAgICAgICAgICAgIGZsZXggPyBtYWtlU3RyaW5nKCIgZmxleDoiLCAqZmxleCkgOiBT
dHJpbmcoKSwKKyAgICAgICAgICAgIHBlcmNlbnQgPyBtYWtlU3RyaW5nKCIgcGVyY2VudDoiLCAq
cGVyY2VudCkgOiBTdHJpbmcoKSwKKyAgICAgICAgICAgIHBlcmNlbnRIaW50ID8gbWFrZVN0cmlu
ZygiIHBlcmNlbnRIaW50OiIsIFdlYkNvcmU6OmRlYnVnU3RyaW5nKCpwZXJjZW50SGludCkpIDog
U3RyaW5nKCksCisgICAgICAgICIgfSIpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TnVtZXJpY1R5cGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NO
dW1lcmljVHlwZS5pZGwKaW5kZXggYmU5MTRhM2JjZDE3NmRjNTc4YjIxMDFkZDBlYWUyNWVkOWM5
NzdiOS4uZjhkYTQ3OTFiNmFiZTgxNjIwZTU5ZGNkNDMzN2VmMGNkNjZmYjg1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljVHlwZS5p
ZGwKQEAgLTIzLDYgKzIzLDggQEAKICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKKy8vIGh0dHBzOi8vZHJh
ZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtdHlw
ZQorCiBbCiAgICAgQ29uZGl0aW9uYWw9Q1NTX1RZUEVEX09NLAogICAgIEpTR2VuZXJhdGVUb0pT
T2JqZWN0LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjMyMjQwMWRmZDE1ODEz
NGQ5NTUzMjNiNjFlYzk1N2JkNGExYjhhOC4uZWEwNTI4OWI3MWM2MjE3NDVmYjlhYWVkMWQzZWEw
MjEwNmU1NjIxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMjItMDMtMzAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBJbXBsZW1lbnQgdW5pdHMgZm9yIENTUyBUeXBlZCBPTQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NTMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1VuaXRWYWx1ZS50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYWRkLXR3
by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVj
dHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmlj
LW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nl
cy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1z
dWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUudGVudGF0aXZlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHls
ZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2
YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHkt
dHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2Jq
ZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTMwICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIENvbnRhaW5lciBRdWVyaWVz
XSBLZWVwIGNvbG9uIHN5bnRheCB3aGVuIHNlcmlhbGl6aW5nIGNvbnRhaW5lciBjb25kaXRpb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZhbHVlLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zZXJpYWxpemF0aW9uL2Nzc1Vu
aXRWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDhhNWVmMWVjY2E4ZDY5OWQzNjEw
NTIyOWU5M2M5YmQ4MTQ5YTE2NzcuLjg3MzhlMTU5M2FkYTVhZDBjOThkNGMwMDRjYTRhNWMyZmQ5
Y2JiYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXNlcmlhbGl6YXRpb24vY3NzVW5pdFZh
bHVlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc2VyaWFsaXph
dGlvbi9jc3NVbml0VmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAK
IAotRkFJTCBDU1NVbml0VmFsdWUgd2l0aCBsZW5ndGggdW5pdCBjb25zdHJ1Y3RlZCBmcm9tIElE
TCBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMy4xNHB4IiBi
dXQgZ290ICIzcHgiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0
cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICIzLjE0JSIgYnV0IGdvdCAiM3BlcmNlbnQiCi1GQUlMIENTU1VuaXRWYWx1ZSB3aXRoIHVu
aXQgIm51bWJlciIgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMuMTQiIGJ1dCBnb3QgIjNudW1iZXIiCi1GQUlMIENTU1Vu
aXRWYWx1ZSB3aXRoIGludGVnZXIgdmFsdWVzIGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6
ZXMgY29ycmVjdGx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIzIiBidXQgZ290ICIzbnVtYmVy
IgotRkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBET01TdHJpbmcgbW9kaWZpZWQgYnkgInZhbHVl
IiBzZXR0ZXIgc2VyaWFsaXplcyBjb3JyZWN0bHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjMu
MTRweCIgYnV0IGdvdCAiM3B4IgotRkFJTCBDU1NLZXl3b3JkVmFsdWUgZnJvbSBDU1NPTSBtb2Rp
ZmllZCBieSAidmFsdWUiIHNldHRlciBzZXJpYWxpemVzIGNvcnJlY3RseSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiMy4xNHB4IiBidXQgZ290ICIzcHgiCitQQVNTIENTU1VuaXRWYWx1ZSB3aXRo
IGxlbmd0aCB1bml0IGNvbnN0cnVjdGVkIGZyb20gSURMIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQ
QVNTIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgInBlcmNlbnQiIGNvbnN0cnVjdGVkIGZyb20gSURM
IHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU1VuaXRWYWx1ZSB3aXRoIHVuaXQgIm51bWJl
ciIgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXplcyBjb3JyZWN0bHkKK1BBU1MgQ1NTVW5p
dFZhbHVlIHdpdGggaW50ZWdlciB2YWx1ZXMgY29uc3RydWN0ZWQgZnJvbSBJREwgc2VyaWFsaXpl
cyBjb3JyZWN0bHkKK1BBU1MgQ1NTS2V5d29yZFZhbHVlIGZyb20gRE9NU3RyaW5nIG1vZGlmaWVk
IGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29ycmVjdGx5CitQQVNTIENTU0tleXdvcmRW
YWx1ZSBmcm9tIENTU09NIG1vZGlmaWVkIGJ5ICJ2YWx1ZSIgc2V0dGVyIHNlcmlhbGl6ZXMgY29y
cmVjdGx5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FkZC10d28tdHlwZXMudGVudGF0aXZlLWV4
cGVjdGVkLnR4dAppbmRleCA0YmUyN2JmMmJiOThhMTViZmZhNGQ4OTUwMDhkYjY5MzU0YTFhMWFi
Li5lY2M5NTMzZjAwZjFhZTJlMjRlZjQ3Y2M2ZDE5NWQ5ZGU5OGM4N2Q3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hZGQtdHdvLXR5cGVzLnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvYWRkLXR3by10eXBlcy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkg
KzEsOSBAQAogCi1GQUlMIEFkZGluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwg
cGVyY2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9u
ICIoKSA9PiBuZXcgQ1NTTWF0aFN1bShhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcg
dHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgbm9uemVybyB2YWx1ZXMgcmV0dXJucyBzYW1lIHR5cGUg
YXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIEFkZGluZyB0
d28gdHlwZXMgd2l0aCBlbXB0eSBtYXBzIHdpdGggcmV0dXJucyBlbXB0eSBtYXAgYXNzZXJ0X2Vx
dWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1i
ZXIpIDAKLUZBSUwgQWRkaW5nIGEgdHlwZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGgg
cGVyY2VudCBoaW50IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAot
RkFJTCBBZGRpbmcgYSB0eXBlIHdpdGggcGVyY2VudCAyIHJldHVybnMgdHlwZSB3aXRoIHBlcmNl
bnQgaGludCB0aHJvd3MgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9
PiBuZXcgQ1NTTWF0aFN1bShhLCBiKSIgZGlkIG5vdCB0aHJvdwotRkFJTCBBZGRpbmcgYSB0eXBl
IHdpdGggYSBwZXJjZW50IGhpbnQgcmV0dXJucyBhIHR5cGUgd2l0aCB0aGUgcGVyY2VudCBoaW50
IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBBZGRpbmcg
dHdvIHR5cGVzIHdpdGggdGhlIHNhbWUgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGgg
dGhlIHBlcmNlbnQgaGludCBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50
IGhpbnRzIHRocm93cyBUeXBlRXJyb3IKK1BBU1MgQWRkaW5nIHR3byB0eXBlcyB3aXRoIHRoZSBz
YW1lIG5vbnplcm8gdmFsdWVzIHJldHVybnMgc2FtZSB0eXBlCitQQVNTIEFkZGluZyB0d28gdHlw
ZXMgd2l0aCBlbXB0eSBtYXBzIHdpdGggcmV0dXJucyBlbXB0eSBtYXAKK1BBU1MgQWRkaW5nIGEg
dHlwZSB3aXRoIHBlcmNlbnQgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50CitQQVNTIEFk
ZGluZyBhIHR5cGUgd2l0aCBwZXJjZW50IDIgcmV0dXJucyB0eXBlIHdpdGggcGVyY2VudCBoaW50
IHRocm93cyBUeXBlRXJyb3IKK1BBU1MgQWRkaW5nIGEgdHlwZSB3aXRoIGEgcGVyY2VudCBoaW50
IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBlcmNlbnQgaGludAorUEFTUyBBZGRpbmcgdHdvIHR5
cGVzIHdpdGggdGhlIHNhbWUgcGVyY2VudCBoaW50IHJldHVybnMgYSB0eXBlIHdpdGggdGhlIHBl
cmNlbnQgaGludAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVy
aWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2
YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQKaW5kZXggNTM2ZWE1MmU1M2IwY2NiOGNlMjc4MDY3MDMwNmEzNDdhZjE3MzkzZS4u
ZmQzMGE1N2UyYTU1ZjAyNmQ3NjVhMWNkMjYxNTgzMDQwZmFkZThmOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9t
L3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtNjAsNiArNjAsNiBA
QCBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1heCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBz
YW1lIHVuaXQgc2ltcGxpZmllcyB0byBhCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1
YiBuZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFs
dWUuZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZhbHVlcwogUEFTUyBDYW4gbm90IGRpdmlkZSB3
aXRoIENTU1VuaXRWYWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUKLUZB
SUwgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gdGhlIHR5
cGVzIGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1Mu
bnVtYmVyKDMpLmFkZChDU1MucHgoMTApICxDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdwot
RkFJTCBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUg
dHlwZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IENT
Uy5udW1iZXIoMykuc3ViKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93
CitQQVNTIENTU051bWVyaWNWYWx1ZS5hZGQgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIHRo
ZSB0eXBlcyBhcmUgZGlmZmVyZW50LgorUEFTUyBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0
aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3JlYXRlLWEtdHlw
ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvY3JlYXRlLWEtdHlwZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IDUy
ODQwNzcxYzkwYTM5ZTZiNjQ3MWYxYzk2MWI4OThhMTYzNzQwODQuLjBhMjNkMzdhMjMwMzllNjU1
Y2U1NzhiYzMwZjRlNTY4OTNjYTg5MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2NyZWF0ZS1hLXR5cGUudGVudGF0aXZlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jcmVhdGUt
YS10eXBlLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBD
cmVhdGluZyBhIHR5cGUgZnJvbSAibnVtYmVyIiByZXR1cm5zIHt9IGFzc2VydF9lcXVhbHM6IGxl
bmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1G
QUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tICJwZXJjZW50IiByZXR1cm5zIHsgcGVyY2VudDogMSB9
IGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0
IGdvdCAobnVtYmVyKSAwCi1GQUlMIENyZWF0aW5nIGEgdHlwZSBmcm9tIDxsZW5ndGg+IHJldHVy
bnMgeyBsZW5ndGg6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290
IDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xlPiByZXR1cm5zIHsgYW5nbGU6IDEg
fSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4gcmV0dXJu
cyB7IHRpbWU6IDEgfSBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkIGJ1dCBnb3QgKG51bWJlcikgMAotRkFJTCBDcmVhdGluZyBhIHR5cGUgZnJvbSA8
ZnJlcXVlbmN5PiByZXR1cm5zIHsgZnJlcXVlbmN5OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3Ro
IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKLUZBSUwg
Q3JlYXRpbmcgYSB0eXBlIGZyb20gPHJlc29sdXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAx
IH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBi
dXQgZ290IChudW1iZXIpIDAKLUZBSUwgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGZsZXg+IHJldHVy
bnMgeyBmbGV4OiAxIH0gYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkICh1bmRlZmluZWQp
IHVuZGVmaW5lZCBidXQgZ290IChudW1iZXIpIDAKK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20g
Im51bWJlciIgcmV0dXJucyB7fQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSAicGVyY2VudCIg
cmV0dXJucyB7IHBlcmNlbnQ6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8bGVuZ3Ro
PiByZXR1cm5zIHsgbGVuZ3RoOiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPGFuZ2xl
PiByZXR1cm5zIHsgYW5nbGU6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8dGltZT4g
cmV0dXJucyB7IHRpbWU6IDEgfQorUEFTUyBDcmVhdGluZyBhIHR5cGUgZnJvbSA8ZnJlcXVlbmN5
PiByZXR1cm5zIHsgZnJlcXVlbmN5OiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBlIGZyb20gPHJl
c29sdXRpb24+IHJldHVybnMgeyByZXNvbHV0aW9uOiAxIH0KK1BBU1MgQ3JlYXRpbmcgYSB0eXBl
IGZyb20gPGZsZXg+IHJldHVybnMgeyBmbGV4OiAxIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxl
dmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aEludmVydC10eXBlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01h
dGhJbnZlcnQtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggNzlkZjQ4NmNjZTgxY2ZkZTQzYWVlYTMz
NmI5YmNkZjMxMjI3ZmU1Zi4uM2E5YjA3MGE5ZTE2OWQ1MmU2ZjRhYWM4NzhhNjgyZDAzMWM5NmM0
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMv
Y3NzTWF0aEludmVydC10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJj
bGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NNYXRoSW52ZXJ0LXR5cGUtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCi1GQUlMIEludmVydGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0
dXJucyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAodW5kZWZp
bmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1GQUlMIEludmVydGluZyBhIHR5cGUg
bmVnYXRlcyBhbGwgaXRzIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQg
LTEgYnV0IGdvdCAwCi1GQUlMIEludmVydGluZyBhbiBpbnZlcnRlZCB0eXBlIHJldHVybnMgdGhl
IG9yaWdpbmFsIHR5cGUgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAw
CitQQVNTIEludmVydGluZyBhIHR5cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkg
bWFwCitQQVNTIEludmVydGluZyBhIHR5cGUgbmVnYXRlcyBhbGwgaXRzIGV4cG9uZW50cworUEFT
UyBJbnZlcnRpbmcgYW4gaW52ZXJ0ZWQgdHlwZSByZXR1cm5zIHRoZSBvcmlnaW5hbCB0eXBlCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nz
c01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy9jc3NNYXRoTmVnYXRlLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDEx
NjNkMGYxZjY4ODA4MTk2YjQ4MzFlZjE5ZjRmMjJhYzE2YjNlYjkuLmQzNDlhN2UyZDFmNGZmYmNk
ZGJkYWJlMTY3ODlkYzMyODVmYTZkYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNs
YXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhOZWdhdGUtdHlwZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzTWF0aE5lZ2F0
ZS10eXBlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBOZWdhdGluZyBhIHR5
cGUgd2l0aCBlbXB0eSBtYXAgcmV0dXJucyB0aGUgZW1wdHkgbWFwIGFzc2VydF9lcXVhbHM6IGxl
bmd0aCBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAobnVtYmVyKSAwCi1G
QUlMIE5lZ2F0aW5nIGEgdHlwZSByZXR1cm5zIHRoZSBzYW1lIHR5cGUgYXNzZXJ0X2VxdWFsczog
bGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIE5lZ2F0aW5nIGEgdHlwZSB3aXRoIGVt
cHR5IG1hcCByZXR1cm5zIHRoZSBlbXB0eSBtYXAKK1BBU1MgTmVnYXRpbmcgYSB0eXBlIHJldHVy
bnMgdGhlIHNhbWUgdHlwZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2Vz
L251bWVyaWMtb2JqZWN0cy9jc3NNYXRoVmFsdWUudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1v
bS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IGYzNzdhNzIyMDIxYmViYWIyMDg2YWRmYjcyNWEwOTQ0
YmE5Zjc5OWUuLjRiZThlNzFkN2M2MDU0MWRhZDc5NTk2NjlmOGE0MmQ2NjRlMzRlYTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhW
YWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL2Nzc01hdGhWYWx1ZS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBA
IC0xLDkgKzEsOSBAQAogCi1GQUlMIENvbnN0cnVjdGluZyBhIENTU01hdGhTdW0gd2l0aCBubyBh
cmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PiBuZXcgc3ViY2xhc3MoKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb25zdHJ1Y3Rpbmcg
YSBDU1NNYXRoU3VtIHdpdGggbm8gYXJndW1lbnRzIHRocm93cyBhIFN5bnRheEVycm9yCiBQQVNT
IENTU01hdGhTdW0gY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENTU1Vu
aXRWYWx1ZQogUEFTUyBDU1NNYXRoU3VtIGNhbiBiZSBjb25zdHJ1Y3RlZCBmcm9tIG1vcmUgdGhh
biBvbmUgbnVtYmVyIENTU1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoU3VtLm9wZXJhdG9yIGlzIHJl
YWRvbmx5Ci1GQUlMIENvbnN0cnVjdGluZyBhIENTU01hdGhQcm9kdWN0IHdpdGggbm8gYXJndW1l
bnRzIHRocm93cyBhIFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkg
PT4gbmV3IHN1YmNsYXNzKCkiIGRpZCBub3QgdGhyb3cKK1BBU1MgQ29uc3RydWN0aW5nIGEgQ1NT
TWF0aFByb2R1Y3Qgd2l0aCBubyBhcmd1bWVudHMgdGhyb3dzIGEgU3ludGF4RXJyb3IKIFBBU1Mg
Q1NTTWF0aFByb2R1Y3QgY2FuIGJlIGNvbnN0cnVjdGVkIGZyb20gYSBzaW5nbGUgbnVtYmVyIENT
U1VuaXRWYWx1ZQogUEFTUyBDU1NNYXRoUHJvZHVjdCBjYW4gYmUgY29uc3RydWN0ZWQgZnJvbSBt
b3JlIHRoYW4gb25lIG51bWJlciBDU1NVbml0VmFsdWUKIFBBU1MgQ1NTTWF0aFByb2R1Y3Qub3Bl
cmF0b3IgaXMgcmVhZG9ubHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMv
bnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NVbml0VmFsdWUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY1YjdkODQ2YzNmYzc0MjlhM2FiZTMyMWE4ZjQ2NmY5Mzg4ZmU5ZjcuLjNhYTJlYzhjNWNi
NTZlMjA3MmMzMTA4Y2VlMzllODE2MTE4ZTY2NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2Nzc1VuaXRWYWx1ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5
cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvY3NzVW5pdFZhbHVl
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5p
dFZhbHVlIHdpdGggYW4gdW5rbm93biB1bml0IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IENTU1VuaXRWYWx1ZSgwLCAnbGVtb24nKSIgZGlk
IG5vdCB0aHJvdwotRkFJTCBDb25zdHJ1Y3RpbmcgQ1NTVW5pdFZhbHVlIHdpdGggYSBlbXB0eSBz
dHJpbmcgdW5pdCB0aHJvd3MgYSBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24g
IigpID0+IG5ldyBDU1NVbml0VmFsdWUoMCwgJycpIiBkaWQgbm90IHRocm93CitQQVNTIENvbnN0
cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBhbiB1bmtub3duIHVuaXQgdGhyb3dzIGEgVHlwZUVy
cm9yCitQQVNTIENvbnN0cnVjdGluZyBDU1NVbml0VmFsdWUgd2l0aCBhIGVtcHR5IHN0cmluZyB1
bml0IHRocm93cyBhIFR5cGVFcnJvcgogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVj
dGVkIHdpdGggbnVtYmVyCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0
aCBwZXJjZW50CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBlbQpA
QCAtMTgsNyArMTgsNyBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0
aCB2bWluCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCB2bWF4CiBQ
QVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBjbQogUEFTUyBDU1NVbml0
VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggbW0KLUZBSUwgQ1NTVW5pdFZhbHVlIGNhbiBi
ZSBjb25zdHJ1Y3RlZCB3aXRoIFEgYXNzZXJ0X2VxdWFsczogdW5pdCBpcyBzYW1lIGFzIGdpdmVu
IGJ5IGNvbnN0cnVjdG9yIGV4cGVjdGVkICJxIiBidXQgZ290ICJRIgorUEFTUyBDU1NVbml0VmFs
dWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggUQogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJlIGNv
bnN0cnVjdGVkIHdpdGggaW4KIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3
aXRoIHB0CiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBwYwpAQCAt
MjksOCArMjksOCBAQCBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBy
YWQKIFBBU1MgQ1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHR1cm4KIFBBU1Mg
Q1NTVW5pdFZhbHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIHMKIFBBU1MgQ1NTVW5pdFZhbHVl
IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIG1zCi1GQUlMIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29u
c3RydWN0ZWQgd2l0aCBIeiBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUgYXMgZ2l2ZW4gYnkg
Y29uc3RydWN0b3IgZXhwZWN0ZWQgImh6IiBidXQgZ290ICJIeiIKLUZBSUwgQ1NTVW5pdFZhbHVl
IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIeiBhc3NlcnRfZXF1YWxzOiB1bml0IGlzIHNhbWUg
YXMgZ2l2ZW4gYnkgY29uc3RydWN0b3IgZXhwZWN0ZWQgImtoeiIgYnV0IGdvdCAia0h6IgorUEFT
UyBDU1NVbml0VmFsdWUgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggSHoKK1BBU1MgQ1NTVW5pdFZh
bHVlIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGtIegogUEFTUyBDU1NVbml0VmFsdWUgY2FuIGJl
IGNvbnN0cnVjdGVkIHdpdGggZHBpCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0
ZWQgd2l0aCBkcGNtCiBQQVNTIENTU1VuaXRWYWx1ZSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBk
cHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0
cy9jc3NudW1lcmljdmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9jc3NudW1lcmlj
dmFsdWUtbXVsdGlwbHktdHdvLXR5cGVzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggOGE4
Yjk5NzhiNDIzODlhZDBiZDYwN2M0NzEzNjU5ZmRmZTc1ZjVjMS4uYmI5OTNiNmE0ZWFmZDkyMjc1
ZmQ0ZTQ0NjM0ODJkOTc0YTUxZGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvY3NzbnVtZXJpY3ZhbHVlLW11bHRpcGx5LXR3by10eXBlcy50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVt
ZXJpYy1vYmplY3RzL2Nzc251bWVyaWN2YWx1ZS1tdWx0aXBseS10d28tdHlwZXMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlw
ZXMgd2l0aCBkaWZmZXJlbnQgbm9uLW51bGwgcGVyY2VudCBoaW50cyB0aHJvd3MgVHlwZUVycm9y
IGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgQ1NTTWF0aFByb2R1Y3QoYSwg
YikiIGRpZCBub3QgdGhyb3cKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBi
YXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzIGFzc2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAy
IGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0d28gdHlwZXMgd2l0aCBkaWZmZXJlbnQgYmFz
ZSB0eXBlcyBhZGRzIGV4cG9uZW50cyBhc3NlcnRfZXF1YWxzOiBsZW5ndGggZXhwZWN0ZWQgMSBi
dXQgZ290IDAKLUZBSUwgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHJlc3BlY3RzIHRoZSBzaWduIG9m
IHRoZSBleHBvbmVudHMgYXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAw
Ci1GQUlMIE11bHRpcGx5aW5nIGEgdHlwZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wIGFz
c2VydF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWlu
ZyBhIHR5cGUgd2l0aCBwZXJjZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2VudCBoaW50IGFzc2Vy
dF9lcXVhbHM6IGxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMAotRkFJTCBNdWx0aXBseWluZyB0
d28gdHlwZXMgd2l0aCBzYW1lIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQg
YXNzZXJ0X2VxdWFsczogbGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAwCitQQVNTIE11bHRpcGx5
aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCBub24tbnVsbCBwZXJjZW50IGhpbnRzIHRocm93
cyBUeXBlRXJyb3IKK1BBU1MgTXVsdGlwbHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBiYXNlIHR5
cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBlcyB3aXRoIGRpZmZl
cmVudCBiYXNlIHR5cGVzIGFkZHMgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIHR3byB0eXBl
cyByZXNwZWN0cyB0aGUgc2lnbiBvZiB0aGUgZXhwb25lbnRzCitQQVNTIE11bHRpcGx5aW5nIGEg
dHlwZSB3aXRoIG5vIGV4cG9uZW50cyBpcyBhIG5vLW9wCitQQVNTIE11bHRpcGx5aW5nIGEgdHlw
ZSB3aXRoIHBlcmNlbnQgaGludCBhcHBsaWVzIHRoZSBwZXJjZW50IGhpbnQKK1BBU1MgTXVsdGlw
bHlpbmcgdHdvIHR5cGVzIHdpdGggc2FtZSBwZXJjZW50IGhpbnQgYXBwbGllcyB0aGUgcGVyY2Vu
dCBoaW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFz
c2VzL251bWVyaWMtb2JqZWN0cy90by50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmluZGV4IGFjMmUw
ODA2ZmVjM2FkN2VhOTEyZmU2ZmU4NzlkNWEwN2YyZGQzYzMuLjYzMDgwY2Q5OTVmYTRiN2E3ZDk0
OGFmN2M4NzhkZTQzMmQwMTQ3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNz
ZXMvbnVtZXJpYy1vYmplY3RzL3RvLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0
eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVjdHMvdG8udGVudGF0aXZlLWV4cGVjdGVk
LnR4dApAQCAtMTMsNSArMTMsNSBAQCBGQUlMIENvbnZlcnRpbmcgYSBDU1NNYXRoTWF4IHRvIGEg
c2luZ2xlIHVuaXQgZmluZHMgdGhlIG1heCB2YWx1ZSBhc3NlcnRfYXBwcm94XwogRkFJTCBDb252
ZXJ0aW5nIGEgQ1NTTWF0aE1heCB0byBhIHNpbmdsZSB1bml0IHdpdGggZGlmZmVyZW50IHVuaXRz
IHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3
IENTU01hdGhNYXgoQ1NTLnB4KDIpLCBDU1MucygzKSkudG8oJ3B4JykiIGRpZCBub3QgdGhyb3cK
IEZBSUwgQ29udmVydGluZyBhIENTU01hdGhOZWdhdGUgdG8gYSBzaW5nbGUgdW5pdCBuZWdhdGVz
IGl0cyB2YWx1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgLTEgKy8tIDAuMDAwMDAx
IGJ1dCBnb3QgMQogRkFJTCBDb252ZXJ0aW5nIGEgQ1NTTWF0aEludmVydCB0byBhIHNpbmdsZSB1
bml0IGludmVydHMgaXRzIHZhbHVlIGFuZCB1bml0cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhw
ZWN0ZWQgMiArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCi1GQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4
IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0
ZWQgMzUwMCArLy0gMC4wMDAwMDEgYnV0IGdvdCAxCitGQUlMIENvbnZlcnRpbmcgYSBjb21wbGV4
IGV4cHJlc3Npb24gdG8gYSBzaW5nbGUgdW5pdCBUeXBlIGVycm9yCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>