<?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>226272</bug_id>
          
          <creation_ts>2021-05-26 08:26:01 -0700</creation_ts>
          <short_desc>Support calc() on components inside relative color syntax colors</short_desc>
          <delta_ts>2021-07-03 10:06:07 -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>CSS</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227665</see_also>
          <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>
          <dependson>226477</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1763922</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-26 08:26:01 -0700</bug_when>
    <thetext>calc() on components inside relative color syntax colors currently does not work:

https://codepen.io/leaverou/pen/VwpWNgL?editors=0100&amp;fbclid=IwAR18C0aanphaAXkutH2oXzZp2bgsNHhWjwl0NqG8wz7D1rfKZHlq2iPg5xw

(Test case by Lea Verou).

To make this work, we will need to add support to our calc() implementation to allow injection of variables, which hopefully will be relatively straight forward, though we will see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765175</commentid>
    <comment_count>1</comment_count>
      <attachid>430128</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-29 21:28:47 -0700</bug_when>
    <thetext>Created attachment 430128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765226</commentid>
    <comment_count>2</comment_count>
      <attachid>430139</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 11:54:43 -0700</bug_when>
    <thetext>Created attachment 430139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765228</commentid>
    <comment_count>3</comment_count>
      <attachid>430141</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 11:56:25 -0700</bug_when>
    <thetext>Created attachment 430141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765230</commentid>
    <comment_count>4</comment_count>
      <attachid>430142</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 12:03:47 -0700</bug_when>
    <thetext>Created attachment 430142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765233</commentid>
    <comment_count>5</comment_count>
      <attachid>430143</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 12:18:42 -0700</bug_when>
    <thetext>Created attachment 430143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765256</commentid>
    <comment_count>6</comment_count>
      <attachid>430143</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-30 14:01:16 -0700</bug_when>
    <thetext>Comment on attachment 430143
Patch

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

Some of the code feels a little bit copy/pastey. Two similar functions.

&gt; Source/WebCore/css/makevalues.pl:212
&gt; +template&lt;&gt; struct DefaultHash&lt;WebCore::CSSValueID&gt; : IntHash&lt;unsigned&gt; { };
&gt; +template&lt;&gt; struct HashTraits&lt;WebCore::CSSValueID&gt; : GenericHashTraits&lt;WebCore::CSSValueID&gt; {

Explicitly doing this here is a little annoying. We don’t have to do that when we use an integer type.

Can we teach HashFunctions.h and HashTraits.h to default to hashing enums based on their underlying integer types? I think that using uint16_t::max would probably be just as good as lastCSSValueKeyword + 1.

&gt; Source/WebCore/css/calc/CSSCalcValue.cpp:316
&gt; +    return CSSCalcValue::create(function, tokens, destinationCategory, range, { });

Don’t need to write CSSCalcValue here.

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:586
&gt; +        CalcParser angleCalcParser(range, CalculationCategory::Angle, valueRange);

Should we scope this so the first parser is destroyed before the next one is allocated? Maybe not needed

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:588
&gt; +        if (const CSSCalcValue* calculation = angleCalcParser.value()) {
&gt; +            if (calculation-&gt;category() == CalculationCategory::Angle)

auto, also could do a single if:

    if (auto calculation = angleCalcParser.value(); calculation &amp;&amp; calculation-&gt;category() == CalculationCategory::Angle)

Seems like a good style.

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:594
&gt; +        if (const CSSCalcValue* calculation = percentCalcParser.value()) {
&gt; +            if (calculation-&gt;category() == CalculationCategory::Percent)

Ditto.

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:791
&gt; +        if (std::isinf(token.numericValue()))

Use !isfinite instead of isinf? What handling do we want for NaN?

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:934
&gt; +        if (std::isinf(token.numericValue()))

Same !isfinite thought.

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:1237
&gt; +    auto normalizedSaturation = clampTo(*saturation, 0.0, 100.0);
&gt; +    auto normalizedLightness = clampTo(*lightness, 0.0, 100.0);
&gt; +    auto normalizedAlpha = clampTo(*alpha, 0.0, 1.0);

For all these calls to clampTo, I suggest using std::clamp instead. Our own special WebKit clampTo is only needed when we are mixing types or when we need defined behavior if max &lt; min.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765259</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 15:01:40 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 430143 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430143&amp;action=review
&gt; 
&gt; Some of the code feels a little bit copy/pastey. Two similar functions.
&gt; 
&gt; &gt; Source/WebCore/css/makevalues.pl:212
&gt; &gt; +template&lt;&gt; struct DefaultHash&lt;WebCore::CSSValueID&gt; : IntHash&lt;unsigned&gt; { };
&gt; &gt; +template&lt;&gt; struct HashTraits&lt;WebCore::CSSValueID&gt; : GenericHashTraits&lt;WebCore::CSSValueID&gt; {
&gt; 
&gt; Explicitly doing this here is a little annoying. We don’t have to do that
&gt; when we use an integer type.
&gt; 
&gt; Can we teach HashFunctions.h and HashTraits.h to default to hashing enums
&gt; based on their underlying integer types? I think that using uint16_t::max
&gt; would probably be just as good as lastCSSValueKeyword + 1.

I was a little surprised it was needed. We have a struct called StrongEnumHashTraits that we can probably use that does std::numeric_limits&lt;UnderlyingType&gt;::max() for empty() and std::numeric_limits&lt;UnderlyingType&gt;::max() - 1, for deleted. I will try to just use that.

&gt; 
&gt; &gt; Source/WebCore/css/calc/CSSCalcValue.cpp:316
&gt; &gt; +    return CSSCalcValue::create(function, tokens, destinationCategory, range, { });
&gt; 
&gt; Don’t need to write CSSCalcValue here.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:586
&gt; &gt; +        CalcParser angleCalcParser(range, CalculationCategory::Angle, valueRange);
&gt; 
&gt; Should we scope this so the first parser is destroyed before the next one is
&gt; allocated? Maybe not needed.

Not sure it gets us anything. That said, there are some optimizations we should consider here in the future. We could hoist the CSSCalcValue::isCalcFunction() check out of the CalcParser constructor, and given we don&apos;t ever want a CSSCalcValue, we could probably bypass its allocation entirely by having a static way to parse the calc() into the desired raw value.

&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:588
&gt; &gt; +        if (const CSSCalcValue* calculation = angleCalcParser.value()) {
&gt; &gt; +            if (calculation-&gt;category() == CalculationCategory::Angle)
&gt; 
&gt; auto, also could do a single if:
&gt; 
&gt;     if (auto calculation = angleCalcParser.value(); calculation &amp;&amp;
&gt; calculation-&gt;category() == CalculationCategory::Angle)
&gt; 
&gt; Seems like a good style.

I added a consumeValueIfCategory(CalculationCategory) that simplifies things for a bunch of call sites. 

&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:594
&gt; &gt; +        if (const CSSCalcValue* calculation = percentCalcParser.value()) {
&gt; &gt; +            if (calculation-&gt;category() == CalculationCategory::Percent)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:791
&gt; &gt; +        if (std::isinf(token.numericValue()))
&gt; 
&gt; Use !isfinite instead of isinf? What handling do we want for NaN?

Not sure, but this is copied code, so I don&apos;t want to change it in this patch. Will work on unifying these checks and making sure we have tests.

&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:934
&gt; &gt; +        if (std::isinf(token.numericValue()))
&gt; 
&gt; Same !isfinite thought.
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:1237
&gt; &gt; +    auto normalizedSaturation = clampTo(*saturation, 0.0, 100.0);
&gt; &gt; +    auto normalizedLightness = clampTo(*lightness, 0.0, 100.0);
&gt; &gt; +    auto normalizedAlpha = clampTo(*alpha, 0.0, 1.0);
&gt; 
&gt; For all these calls to clampTo, I suggest using std::clamp instead. Our own
&gt; special WebKit clampTo is only needed when we are mixing types or when we
&gt; need defined behavior if max &lt; min.

Ok. Fixed.

Thanks for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765262</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 15:14:18 -0700</bug_when>
    <thetext>Meta question:

Is it time to split up CSSPropertyParserHelpers.h/cpp into some meaningful structure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765263</commentid>
    <comment_count>9</comment_count>
      <attachid>430152</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-30 15:20:56 -0700</bug_when>
    <thetext>Created attachment 430152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765277</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-30 17:29:25 -0700</bug_when>
    <thetext>Committed r278261 (238298@main): &lt;https://commits.webkit.org/238298@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430152.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765278</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-30 17:30:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/78669976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765479</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-05-31 18:14:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 226477</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765486</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-31 18:41:18 -0700</bug_when>
    <thetext>Bizarre, I&apos;m guessing &quot;enum CSSValueID : uint16_t&quot; is the issue, but why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765487</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-31 18:43:46 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #13)
&gt; Bizarre, I&apos;m guessing &quot;enum CSSValueID : uint16_t&quot; is the issue, but why?

And why only &quot;win&quot; and not &quot;wincairo&quot;?

Well, that was just an optimization to avoid a header include, so I can just leave it for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765488</commentid>
    <comment_count>15</comment_count>
      <attachid>430222</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-31 18:47:19 -0700</bug_when>
    <thetext>Created attachment 430222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765597</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-01 06:50:23 -0700</bug_when>
    <thetext>Committed r278304 (238341@main): &lt;https://commits.webkit.org/238341@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430222.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430128</attachid>
            <date>2021-05-29 21:28:47 -0700</date>
            <delta_ts>2021-05-30 11:54:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210529212846.patch</filename>
            <type>text/plain</type>
            <size>38331</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA1LTI5ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRmlyc3QgZHJhZnQuIFN0aWxsIG5l
ZWRlZDogcmdiKGZyb20gLi4uKSBhbmQgdGVzdHMgXQorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAq
IGNzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJz
ZXIpOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1N5bWJvbFRhYmxlOjpDU1NDYWxjU3ltYm9sVGFibGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1N5bWJvbFRhYmxlOjpnZXQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBj
c3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1ZhbHVl
OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNWYWx1ZS5oOgorICAgICAgICAq
IGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVy
czo6Q2FsY1BhcnNlcjo6Q2FsY1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5nbGVSYXcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSHVl
T3JJZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNv
bnN1bWVOdW1iZXJPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2Vy
SGVscGVyczo6Y29uc3VtZVBlcmNlbnRPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2ZUhTTFBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZVJlbGF0aXZlSFdCUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlUmVsYXRpdmVMYWJQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2ZUxDSFBhcmFtZXRlcnMpOgorCiAyMDIxLTA1LTI5
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGxpdCBjYWxjKCkg
cmVsYXRlZCBmaWxlcyBpbnRvIDEtY2xhc3MgcGVyIGZpbGUgc3RydWN0dXJlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAkocmV2aXNpb24gMjc4MjQ2KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTgzMSw2ICs4MzEsNyBAQCBjc3MvY2FsYy9DU1NDYWxjSW52ZXJ0
Tm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNOZWdhdGVOb2RlLmNwcAogY3NzL2NhbGMvQ1NTQ2Fs
Y09wZXJhdGlvbk5vZGUuY3BwCiBjc3MvY2FsYy9DU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmNw
cAorY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmNwcAogY3NzL3BhcnNlci9DU1NBdFJ1bGVJRC5jcHAKIGNzcy9wYXJzZXIvQ1NTRGVmZXJyZWRQ
YXJzZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzgyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQwNzcsNiAr
NDA3Nyw3IEBACiAJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjkzMjcy
MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzZENDRFRDBDMDdGMkVEMDA3MkQyQzkg
LyogSlNIVE1MRW1iZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzZENDRFQjBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVt
ZW50LmggKi87IH07CiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENkUyNTA5
QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAvKiBDU1ND
YWxjU3ltYm9sVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuaCAq
LzsgfTsKIAkJQkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJCMzYwQzRFQTkxRTAw
ODMyODVGIC8qIENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDNzcyQzQ3MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJD
NDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi87IH07CiAJCUJDNzcyQzRG
MEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyog
TUlNRVR5cGVSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNDMwNCw2ICsxNDMwNSw4IEBACiAJCUJDNkQ0NEVCMEMwN0YyRUQwMDcy
RDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSFRNTEVtYmVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzZFQjg0NTI2MjY2QjYxMDAzMjI1QTcgLyogQ29sb3JMdW1pbmFuY2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JMdW1pbmFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzcwOURERTI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5bWJvbFRhYmxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzcwOURERjI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5bWJvbFRh
YmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NI
ZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0hlbHBlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NDBDNEVCMkM2MDA4MzI4NUYgLyog
WE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJD
NDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjc5NTYsNiArMjc5NTksOCBAQAogCQkJCUJDRjE2NDVGMjY2MkEyOEQwMDAyRjdF
RiAvKiBDU1NDYWxjT3BlcmF0aW9uTm9kZS5oICovLAogCQkJCUJDRjE2NDU0MjY2MkExMjIwMDAy
RjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmNwcCAqLywKIAkJCQlCQ0YxNjQ1MzI2
NjJBMTIyMDAwMkY3RUYgLyogQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZS5oICovLAorCQkJCUJD
NzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuY3BwICovLAorCQkJ
CUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuaCAqLywKIAkJ
CQk0OUFFMkQ4QzEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmNwcCAqLywKIAkJCQk0
OUFFMkQ4RDEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmggKi8sCiAJCQkpOwpAQCAt
MzQ2NjksNiArMzQ2NzQsNyBAQAogCQkJCTI2NjAxRUJGMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0
Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAxNEEwNTI1
MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9s
VGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTk1MUQ1NEY1RkIwMEREN0M2OCAvKiBQ
bGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNkQ1NkUyMjUzQUUyOEQwMDAy
RUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc3MDVDNzI1NTI3
NkNEMDAxRDBDOTQgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkocmV2aXNpb24gMjc4MjQ2KQorKysgU291cmNlL1dl
YkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBA
QCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBD
U1NWYWx1ZUlEIHsKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90IHsKICAgICBDU1NWYWx1ZUlu
dmFsaWQgPSAwLAogRU9GCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjc4MjQ2KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEsMTEgQEAKICNpbmNsdWRlICJDU1NDYWxjTmVn
YXRlTm9kZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNPcGVyYXRpb25Ob2RlLmgiCiAjaW5jbHVkZSAi
Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZS5oIgorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xUYWJs
ZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2Vu
LmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW5SYW5nZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTE4MCwxOSArMTgyLDM1IEBAIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpw
YXJzZUMKIAogYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYg
cmVzdWx0KQogewotICAgIC8vIEZJWE1FOiBBZGQgY29kZSBoZXJlIHRvIHBhcnNlIENTU1ZhbGlk
SUQgZm9yIG5hbWVkIGNvbnN0YW50cy4KKyAgICBhdXRvIG1ha2VDU1NDYWxjUHJpbWl0aXZlVmFs
dWVOb2RlID0gWyZdIChDU1NVbml0VHlwZSB0eXBlLCBkb3VibGUgdmFsdWUpIC0+IGJvb2wgewor
ICAgICAgICBpZiAoY2FsY1VuaXRDYXRlZ29yeSh0eXBlKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpPdGhlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHJl
c3VsdCA9IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCB0eXBlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH07CiAK
LSAgICBDU1NQYXJzZXJUb2tlbiB0b2tlbiA9IHRva2Vucy5jb25zdW1lSW5jbHVkaW5nV2hpdGVz
cGFjZSgpOwotICAgIGlmICghKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiB8fCB0b2tlbi50
eXBlKCkgPT0gUGVyY2VudGFnZVRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tl
bikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBhdXRvIHR5cGUgPSB0b2tlbi51
bml0VHlwZSgpOwotICAgIGlmIChjYWxjVW5pdENhdGVnb3J5KHR5cGUpID09IENhbGN1bGF0aW9u
Q2F0ZWdvcnk6Ok90aGVyKQorICAgIGF1dG8gdG9rZW4gPSB0b2tlbnMuY29uc3VtZUluY2x1ZGlu
Z1doaXRlc3BhY2UoKTsKKworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBJ
ZGVudFRva2VuOiB7CisgICAgICAgIGF1dG8gdmFsdWUgPSBtX3N5bWJvbFRhYmxlLmdldCh0b2tl
bi5pZCgpKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgcmV0dXJuIG1ha2VDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlKHZhbHVlLT50eXBl
LCB2YWx1ZS0+dmFsdWUpOworICAgIH0KKworICAgIGNhc2UgTnVtYmVyVG9rZW46CisgICAgY2Fz
ZSBQZXJjZW50YWdlVG9rZW46CisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKKyAgICAgICAgcmV0
dXJuIG1ha2VDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlKHRva2VuLnVuaXRUeXBlKCksIHRva2Vu
Lm51bWVyaWNWYWx1ZSgpKTsKKworICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAKLSAgICByZXN1bHQgPSBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUoQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgdHlwZSkpOwotICAg
IAotICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6
OnBhcnNlQ2FsY1ZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywgaW50IGRlcHRoLCBS
ZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYgcmVzdWx0KQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmgJKHJl
dmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwyMCArMjUsMjMgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2Fs
Y09wZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25DYXRlZ29yeS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU0NhbGNFeHByZXNzaW9uTm9kZTsKK2NsYXNzIENTU0Nh
bGNTeW1ib2xUYWJsZTsKIGNsYXNzIENTU1BhcnNlclRva2VuOwogY2xhc3MgQ1NTUGFyc2VyVG9r
ZW5SYW5nZTsKIAorZW51bSBDU1NWYWx1ZUlEIDogdWludDE2X3Q7CisKIGNsYXNzIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyKENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSkK
KyAgICBleHBsaWNpdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIoQ2FsY3VsYXRpb25DYXRl
Z29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJv
bFRhYmxlKQogICAgICAgICA6IG1fZGVzdGluYXRpb25DYXRlZ29yeShkZXN0aW5hdGlvbkNhdGVn
b3J5KQorICAgICAgICAsIG1fc3ltYm9sVGFibGUoc3ltYm9sVGFibGUpCiAgICAgewogICAgIH0K
IApAQCAtNTUsNiArNTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VDYWxjVmFsdWUoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYsIGludCBkZXB0aCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9k
ZT4mKTsKIAogICAgIENhbGN1bGF0aW9uQ2F0ZWdvcnkgbV9kZXN0aW5hdGlvbkNhdGVnb3J5Owor
ICAgIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgbV9zeW1ib2xUYWJsZTsKIH07CiAKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCisKKyNpbmNs
dWRlICJDU1NVbml0cy5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitDU1NDYWxjU3ltYm9sVGFibGU6OkNTU0NhbGNTeW1ib2xUYWJsZShz
dGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjp0dXBsZTxDU1NWYWx1ZUlELCBDU1NVbml0VHlwZSwg
ZG91YmxlPj4gaW5pdGlhbGl6ZXIpCit7CisgICAgZm9yIChhdXRvJiBbaWRlbnRpZmllciwgdHlw
ZSwgdmFsdWVdIDogaW5pdGlhbGl6ZXIpCisgICAgICAgIG1fdGFibGUuYWRkKGlkZW50aWZpZXIs
IHN0ZDo6bWFrZV9wYWlyKHR5cGUsIHZhbHVlKSk7Cit9CisKK0NTU0NhbGNTeW1ib2xUYWJsZTo6
fkNTU0NhbGNTeW1ib2xUYWJsZSgpID0gZGVmYXVsdDsKKworc3RkOjpvcHRpb25hbDxDU1NDYWxj
U3ltYm9sVGFibGU6OlZhbHVlPiBDU1NDYWxjU3ltYm9sVGFibGU6OmdldChDU1NWYWx1ZUlEIHZh
bHVlSUQpIGNvbnN0Cit7CisgICAgYXV0byBpdCA9IG1fdGFibGUuZmluZCh2YWx1ZUlEKTsKKyAg
ICBpZiAoaXQgPT0gbV90YWJsZS5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHJldHVybiB7eyBpdC0+dmFsdWUuZmlyc3QsIGl0LT52YWx1ZS5zZWNvbmQgfX07Cit9
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJs
ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1i
b2xUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBDU1NVbml0VHlw
ZSA6IHVpbnQ4X3Q7CisKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90OworCitjbGFzcyBDU1ND
YWxjU3ltYm9sVGFibGUgeworcHVibGljOgorICAgIHN0cnVjdCBWYWx1ZSB7CisgICAgICAgIENT
U1VuaXRUeXBlIHR5cGU7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICB9OworCisgICAgQ1NT
Q2FsY1N5bWJvbFRhYmxlKCkgPSBkZWZhdWx0OworICAgIENTU0NhbGNTeW1ib2xUYWJsZShzdGQ6
OmluaXRpYWxpemVyX2xpc3Q8c3RkOjp0dXBsZTxDU1NWYWx1ZUlELCBDU1NVbml0VHlwZSwgZG91
YmxlPj4pOworICAgIH5DU1NDYWxjU3ltYm9sVGFibGUoKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8
VmFsdWU+IGdldChDU1NWYWx1ZUlEKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgSGFzaE1h
cDx1aW50MTZfdCwgc3RkOjpwYWlyPENTU1VuaXRUeXBlLCBkb3VibGU+PiBtX3RhYmxlOworfTsK
KworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAkocmV2
aXNpb24gMjc4MjQ2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5o
IgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKICNpbmNsdWRlICJDU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkNhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGguaCIKICNpbmNsdWRlICJDYWxjRXhwcmVzc2lv
bkxlbmd0aC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTI5OSw5ICszMDAsOSBAQCB2b2lk
IENTU0NhbGNWYWx1ZTo6ZHVtcChUZXh0U3RyZWFtJiB0cykgCiAgICAgdHMgPDwgIilcbiI7CiB9
CiAKLVJlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKENTU1ZhbHVlSUQg
ZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywgQ2FsY3VsYXRpb25D
YXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlIHJhbmdlKQorUmVmUHRyPENT
U0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29u
c3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJs
ZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyIHBhcnNl
cihkZXN0aW5hdGlvbkNhdGVnb3J5KTsKKyAgICBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIg
cGFyc2VyKGRlc3RpbmF0aW9uQ2F0ZWdvcnksIHN5bWJvbFRhYmxlKTsKICAgICBhdXRvIGV4cHJl
c3Npb24gPSBwYXJzZXIucGFyc2VDYWxjKHRva2VucywgZnVuY3Rpb24pOwogICAgIGlmICghZXhw
cmVzc2lvbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zMDksNyArMzEwLDEyIEBAIFJl
ZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXQKICAgICBMT0dfV0lUSF9TVFJF
QU0oQ2FsYywgc3RyZWFtIDw8ICJDU1NDYWxjVmFsdWU6OmNyZWF0ZSAiIDw8ICpyZXN1bHQpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9Ci0gICAgCisKK1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0Nh
bGNWYWx1ZTo6Y3JlYXRlKENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2Vu
UmFuZ2UmIHRva2VucywgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBW
YWx1ZVJhbmdlIHJhbmdlKQoreworICAgIHJldHVybiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5j
dGlvbiwgdG9rZW5zLCBkZXN0aW5hdGlvbkNhdGVnb3J5LCByYW5nZSwgeyB9KTsKK30KKwogUmVm
UHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoY29uc3QgQ2FsY3VsYXRpb25W
YWx1ZSYgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBhdXRvIGV4cHJl
c3Npb24gPSBjcmVhdGVDU1ModmFsdWUuZXhwcmVzc2lvbigpLCBzdHlsZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuaAkocmV2aXNpb24gMjc4MjQ2KQorKysgU291
cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLSNpbmNs
dWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtMzksNiAr
MzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlblJhbmdl
OwogY2xhc3MgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTsKIGNsYXNzIFJlbmRlclN0eWxlOwpA
QCAtNDcsOCArNDcsMTEgQEAgZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIENhbGN1bGF0aW9uQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBWYWx1ZVJh
bmdlIDogdWludDhfdDsKIAorZW51bSBDU1NWYWx1ZUlEIDogdWludDE2X3Q7CisKIGNsYXNzIENT
U0NhbGNWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBD
U1NQYXJzZXJUb2tlblJhbmdlJiwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVn
b3J5LCBWYWx1ZVJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmKTsKICAgICBzdGF0aWMg
UmVmUHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENT
U1BhcnNlclRva2VuUmFuZ2UmLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdv
cnksIFZhbHVlUmFuZ2UpOwogICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUo
Y29uc3QgQ2FsY3VsYXRpb25WYWx1ZSYsIGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgfkNTU0Nh
bGNWYWx1ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAkocmV2aXNpb24gMjc4MjQ2KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgiCiAKKyNpbmNsdWRlICJDU1NDYWxjU3ltYm9sVGFi
bGUuaCIKICNpbmNsdWRlICJDU1NDYWxjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDYW52YXNWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCkBAIC0xMDksNiArMTEwLDE3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fY2FsY1ZhbHVlID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUo
ZnVuY3Rpb25JZCwgY29uc3VtZUZ1bmN0aW9uKG1fcmFuZ2UpLCBkZXN0aW5hdGlvbkNhdGVnb3J5
LCB2YWx1ZVJhbmdlKTsKICAgICB9CiAKKyAgICBleHBsaWNpdCBDYWxjUGFyc2VyKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdv
cnksIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFs
dWVSYW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCwgQ1NTVmFsdWVQb29sJiBjc3NWYWx1ZVBvb2wgPSBD
U1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpKQorICAgICAgICA6IG1fc291cmNlUmFuZ2UocmFuZ2Up
CisgICAgICAgICwgbV9yYW5nZShyYW5nZSkKKyAgICAgICAgLCBtX3ZhbHVlUG9vbChjc3NWYWx1
ZVBvb2wpCisgICAgeworICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5n
ZS5wZWVrKCk7CisgICAgICAgIGF1dG8gZnVuY3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsK
KyAgICAgICAgaWYgKENTU0NhbGNWYWx1ZTo6aXNDYWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCisg
ICAgICAgICAgICBtX2NhbGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQs
IGNvbnN1bWVGdW5jdGlvbihtX3JhbmdlKSwgZGVzdGluYXRpb25DYXRlZ29yeSwgdmFsdWVSYW5n
ZSwgc3ltYm9sVGFibGUpOworICAgIH0KKwogICAgIGNvbnN0IENTU0NhbGNWYWx1ZSogdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX2NhbGNWYWx1ZS5nZXQoKTsgfQogCiAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBjb25zdW1lVmFsdWUoKQpAQCAtMjU5LDcgKzI3MSw3IEBAIE9wdGlvbmFs
PGRvdWJsZT4gY29uc3VtZU51bWJlclJhdyhDU1NQYXIKICAgICAgICAgcmV0dXJuIHJhbmdlLmNv
bnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CiAgICAgfQogCi0gICAg
aWYgKHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2VuKQorICAgIGlmIChyYW5nZS5wZWVrKCku
dHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
ICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51
bWJlciwgdmFsdWVSYW5nZSk7CkBAIC01MjcsNyArNTM5LDcgQEAgT3B0aW9uYWw8QW5nbGVSYXc+
IGNvbnN1bWVBbmdsZVJhdyhDU1NQYQogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9r
ZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3Nz
UGFyc2VyTW9kZSwgdW5pdGxlc3MsIHVuaXRsZXNzWmVybykpCiAgICAgICAgIHJldHVybiB7IHsg
Q1NTVW5pdFR5cGU6OkNTU19ERUcsIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCku
bnVtZXJpY1ZhbHVlKCkgfSB9OwogCi0gICAgaWYgKHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRv
a2VuKQorICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFu
Z2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCBWYWx1ZVJhbmdlOjpBbGwpOwpAQCAtNzU5
LDYgKzc3MSw1NSBAQCB0ZW1wbGF0ZTxDU1NWYWx1ZUlELi4uIGFsbG93ZWRJZGVudHM+IHN0CiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAorc3RhdGljIE9wdGlvbmFsPGRvdWJsZT4gY29u
c3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25z
dCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQoreworICAgIGlmICghY29uc3VtZVNs
YXNoSW5jbHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCisgICAgICAgIHJldHVybiAxLjA7CisKKyAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisKKyAgICBzd2l0
Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBD
YWxjUGFyc2VyIHBlcmNlbnRhZ2VDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpQZXJjZW50LCBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZTo6QWxsKTsKKyAgICAgICAgaWYgKGF1
dG8gcGVyY2VudCA9IHBlcmNlbnRhZ2VDYWxjUGFyc2VyLmNvbnN1bWVQZXJjZW50UmF3KCkpCisg
ICAgICAgICAgICByZXR1cm4gKnBlcmNlbnQgLyAxMDAuMDsKKyAgICAgICAgCisgICAgICAgIENh
bGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVt
YmVyLCBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZTo6QWxsKTsKKyAgICAgICAgcmV0dXJuIG51bWJl
ckNhbGNQYXJzZXIuY29uc3VtZU51bWJlclJhdygpOworICAgIH0KKworICAgIGNhc2UgUGVyY2Vu
dGFnZVRva2VuOgorICAgICAgICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gcmFuZ2Uu
Y29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSAvIDEwMC4wOworCisg
ICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1bWVJbmNsdWRp
bmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAgICBjYXNlIElkZW50VG9rZW46Cisg
ICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHRva2VuLmlkKCkpKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBlKSB7CisgICAgICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFy
aWFibGUtPnZhbHVlIC8gMTAwLjA7CisKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19OVU1CRVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1ZTsKKworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBzaG91bGQg
d2UgZG8gYWJvdXQgb3RoZXIgdHlwZXMgaGVyZT8gQW5nbGVzIChmb3IgaHVlcykgY2FuIGFsc28g
c2hvdyB1cCBoZXJlLgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwogc3RhdGlj
IE9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAoYXV0byBhbmdsZSA9
IGNvbnN1bWVBbmdsZVJhdyhyYW5nZSwgY29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3Ji
aWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpGb3JiaWQpKQpAQCAtNzY3LDE0ICs4MjgsNTUgQEAgc3Rh
dGljIE9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZShDU1NQYQogICAgIHJldHVybiBjb25zdW1l
TnVtYmVyUmF3KHJhbmdlKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRl
bnRzPiBzdGF0aWMgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1l
SHVlT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCYgY29udGV4dCkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZU9y
SWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJs
ZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1dG8gaHVlID0gY29uc3VtZUh1ZShyYW5nZSwg
Y29udGV4dCkpCi0gICAgICAgIHJldHVybiB7ICpodWUgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJU
b2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1
bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRzLi4uPihyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICpp
ZGVudCB9OworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRv
a2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25D
YXRlZ29yeTo6QW5nbGUsIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlOjpBbGwpOworICAgICAgICBp
ZiAoYXV0byBhbmdsZSA9IGNhbGNQYXJzZXIuY29uc3VtZUFuZ2xlUmF3KCkpCisgICAgICAgICAg
ICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKGFuZ2xlLT50eXBlLCBh
bmdsZS0+dmFsdWUpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICAK
KyAgICBjYXNlIERpbWVuc2lvblRva2VuOiB7CisgICAgICAgIGF1dG8gdW5pdFR5cGUgPSB0b2tl
bi51bml0VHlwZSgpOworICAgICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19ERUc6CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOgorICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVFVSTjoKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6
Y29tcHV0ZURlZ3JlZXModW5pdFR5cGUsIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNl
KCkubnVtZXJpY1ZhbHVlKCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjYXNlIE51bWJlclRv
a2VuOgorICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5u
dW1lcmljVmFsdWUoKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8g
dmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQodG9rZW4uaWQoKSkpIHsKKyAgICAgICAgICAgIHN3
aXRjaCAodmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19ERUc6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVFVSTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNvbXB1dGVEZWdyZWVzKHZhcmlhYmxlLT50eXBlLCB2YXJpYWJsZS0+dmFsdWUpOworCisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IHNob3VsZCB3
ZSBkbyBhYm91dCBvdGhlciB0eXBlcyBoZXJlPyBOdW1iZXJzIGFuZCBwZXJjZW50YWdlcyBjYW4g
Ym90aCBzaG93IHVwLgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQogCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtNzgz
LDI1ICs4ODUsNzMgQEAgc3RhdGljIGRvdWJsZSBub3JtYWxpemVIdWUoZG91YmxlIGh1ZSkKICAg
ICByZXR1cm4gc3RkOjpmbW9kKHN0ZDo6Zm1vZChodWUsIDM2MC4wKSArIDM2MC4wLCAzNjAuMCk7
CiB9CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQuLi4gYWxsb3dlZElkZW50cz4gc3RhdGljIE9wdGlv
bmFsPFZhcmlhbnQ8ZG91YmxlLCBDU1NWYWx1ZUlEPj4gY29uc3VtZU51bWJlck9ySWRlbnQoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1l
TnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBpZiAoYXV0byBudW1iZXIgPSBjb25zdW1l
TnVtYmVyUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKm51bWJlciB9OworICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKIAotICAgIGlmIChhdXRvIGlk
ZW50ID0gY29uc3VtZUlkZW50UmF3PGFsbG93ZWRJZGVudHMuLi4+KHJhbmdlKSkKLSAgICAgICAg
cmV0dXJuIHsgKmlkZW50IH07CisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNl
IEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBD
YWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlOjpBbGwp
OworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lTnVtYmVyUmF3KCk7CisgICAgfQor
CisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1bWVJbmNs
dWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAgICBjYXNlIElkZW50VG9rZW46
CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHRva2VuLmlkKCkp
KSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBlKSB7CisgICAgICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiB2YXJp
YWJsZS0+dmFsdWU7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFdoYXQgc2hvdWxkIHdlIGRvIGFib3V0IG90aGVyIHR5cGVzIGhlcmU/IEFuZ2xlcyAo
Zm9yIGh1ZXMpIGFuZCBwZXJjZW50YWdlcyBjYW4gYm90aCBzaG93IHVwLgorICAgICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRl
bnRzPiBzdGF0aWMgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1l
UGVyY2VudE9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMgT3B0aW9u
YWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudE9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1
dG8gcGVyY2VudCA9IGNvbnN1bWVQZXJjZW50UmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsg
KnBlcmNlbnQgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVr
KCk7CiAKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRz
Li4uPihyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICppZGVudCB9OworICAgIHN3aXRjaCAodG9r
ZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJz
ZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgc3ltYm9s
VGFibGUsIFZhbHVlUmFuZ2U6OkFsbCk7CisgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1
bWVQZXJjZW50UmF3KCk7CisgICAgfQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CisgICAg
ICAgIGlmIChzdGQ6OmlzaW5mKHRva2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5n
V2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAg
ICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldCh0b2tlbi5pZCgpKSkgewor
ICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlh
YmxlLT52YWx1ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogV2hhdCBzaG91bGQgd2UgZG8gYWJvdXQgb3RoZXIgdHlwZXMgaGVyZT8gQW5nbGVzIChm
b3IgaHVlcykgYW5kIG51bWJlcnMgY2FuIGJvdGggc2hvdyB1cC4KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIH0KIAorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTEwNDgsNDEgKzExOTgsNDAgQEAgc3RhdGljIENvbG9yIHBh
cnNlUmVsYXRpdmVIU0xQYXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVu
dDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hTTCA9
IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFNMQTxmbG9hdD4+KCk7CisKKyAgICBDU1ND
YWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENTU1ZhbHVlSCwgQ1NTVW5p
dFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNIU0wuaHVlIH0sCisgICAgICAgIHsgQ1NTVmFs
dWVTLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIU0wuc2F0dXJh
dGlvbiB9LAorICAgICAgICB7IENTU1ZhbHVlTCwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdF
LCBvcmlnaW5Db2xvckFzSFNMLmxpZ2h0bmVzcyB9LAorICAgICAgICB7IENTU1ZhbHVlQWxwaGEs
IENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hTTC5hbHBoYSAqIDEw
MCB9CisgICAgfTsKKworICAgIGF1dG8gaHVlID0gY29uc3VtZUh1ZU9ySWRlbnQoYXJncywgc3lt
Ym9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0
byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlUz4oYXJncyk7Cisg
ICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRh
YmxlKTsKICAgICBpZiAoIXNhdHVyYXRpb24pCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBh
dXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOwor
ICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRh
YmxlKTsKICAgICBpZiAoIWxpZ2h0bmVzcykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1
dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQ8Q1NTVmFsdWVBbHBoYT4oYXJn
cyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudChhcmdzLCBz
eW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgLy8gQWZ0ZXIg
cGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1ZXMgZnJvbSB0aGUgb3JpZ2luIGNv
bG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzSFNMID0gb3JpZ2luQ29sb3IudG9Db2xvclR5
cGVMb3NzeTxIU0xBPGZsb2F0Pj4oKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRIdWUgPSByZXNvbHZl
UmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVMsIENTU1ZhbHVlTCwgQ1NT
VmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0hTTCwgW10oYXV0byBodWUpIHsKLSAgICAg
ICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRT
YXR1cmF0aW9uID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFs
dWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpzYXR1cmF0aW9uLCBvcmlnaW5Db2xvckFz
SFNMLCBbXShhdXRvIHNhdHVyYXRpb24pIHsKLSAgICAgICAgcmV0dXJuIGNsYW1wVG8oc2F0dXJh
dGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZExpZ2h0bmVzcyA9
IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFs
dWVMLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5Db2xvckFzSFNMLCBbXShhdXRv
IGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gY2xhbXBUbyhsaWdodG5lc3MsIDAuMCwgMTAw
LjApOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNv
bG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhh
PigqYWxwaGEsIG9yaWdpbkNvbG9yQXNIU0wpOworICAgIGF1dG8gbm9ybWFsaXplZEh1ZSA9IG5v
cm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRTYXR1cmF0aW9uID0gY2xhbXBU
bygqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7CisgICAgYXV0byBub3JtYWxpemVkTGlnaHRuZXNz
ID0gY2xhbXBUbygqbGlnaHRuZXNzLCAwLjAsIDEwMC4wKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRB
bHBoYSA9IGNsYW1wVG8oKmFscGhhLCAwLjAsIDEuMCk7CiAKLSAgICByZXR1cm4gY29udmVydENv
bG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNv
bHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZFNhdHVyYXRpb24pLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocmVzb2x2ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRBbHBoYSkgfSk7CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFNM
QTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxp
emVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRBbHBoYSkgfSk7CiB9
CiAKIGVudW0gY2xhc3MgSFNMRnVuY3Rpb25Nb2RlIHsgSFNMLCBIU0xBIH07CkBAIC0xMTI5LDgg
KzEyNzgsNyBAQCB0ZW1wbGF0ZTxIU0xGdW5jdGlvbk1vZGUgTW9kZT4gc3RhdGljIENvCiAgICAg
cmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNf
Y2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVk
U2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRBbHBoYSkgfSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIENvbXBvbmVudFR5cGU+Ci1zdHJ1Y3QgV2hpdGVuZXNzQmxhY2tuZXNzIHsKK3RlbXBsYXRl
PHR5cGVuYW1lIENvbXBvbmVudFR5cGU+IHN0cnVjdCBXaGl0ZW5lc3NCbGFja25lc3MgewogICAg
IENvbXBvbmVudFR5cGUgd2hpdGVuZXNzOwogICAgIENvbXBvbmVudFR5cGUgYmxhY2tuZXNzOwog
fTsKQEAgLTExNjQsMzkgKzEzMTIsMzggQEAgc3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVIV0JQ
YXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFy
Z3MsIGNvbnRleHQpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdpbkNvbG9yLnRv
Q29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUg
c3ltYm9sVGFibGUgeworICAgICAgICB7IENTU1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcs
IG9yaWdpbkNvbG9yQXNIV0IuaHVlIH0sCisgICAgICAgIHsgQ1NTVmFsdWVXLCBDU1NVbml0VHlw
ZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0Iud2hpdGVuZXNzIH0sCisgICAgICAg
IHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNI
V0IuYmxhY2tuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNT
U19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzSFdCLmFscGhhICogMTAwIH0KKyAgICB9OworCisg
ICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAg
aWYgKCFodWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHdoaXRlbmVzcyA9IGNv
bnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZVc+KGFyZ3MpOworICAgIGF1dG8gd2hpdGVuZXNz
ID0gY29uc3VtZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIXdo
aXRlbmVzcykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYmxhY2tuZXNzID0gY29u
c3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlQj4oYXJncyk7CisgICAgYXV0byBibGFja25lc3Mg
PSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYmxh
Y2tuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVP
cHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhh
ID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBp
ZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkp
CiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBjb252ZXJ0IGlk
ZW50aWZpZXJzIHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAgICBhdXRvIG9y
aWdpbkNvbG9yQXNIV0IgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PEhXQkE8ZmxvYXQ+
PigpOwotCi0gICAgYXV0byByZXNvbHZlZEh1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5l
bDxDU1NWYWx1ZUgsIENTU1ZhbHVlVywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqaHVlLCBv
cmlnaW5Db2xvckFzSFdCLCBbXShhdXRvIGh1ZSkgewotICAgICAgICByZXR1cm4gbm9ybWFsaXpl
SHVlKGh1ZSk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZFdoaXRlbmVzcyA9IHJlc29sdmVS
ZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlVywgQ1NTVmFsdWVCLCBDU1NW
YWx1ZUFscGhhPigqd2hpdGVuZXNzLCBvcmlnaW5Db2xvckFzSFdCKTsKLSAgICBhdXRvIHJlc29s
dmVkQmxhY2tuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NT
VmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpibGFja25lc3MsIG9yaWdpbkNvbG9y
QXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hh
bm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlVywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqYWxw
aGEsIG9yaWdpbkNvbG9yQXNIV0IpOwotCi0gICAgYXV0byBbbm9ybWFsaXplZFdoaXRuZXNzLCBu
b3JtYWxpemVkQmxhY2tuZXNzXSA9IG5vcm1hbGl6ZVdoaXRlbmVzc0JsYWNrbmVzcyhyZXNvbHZl
ZFdoaXRlbmVzcywgcmVzb2x2ZWRCbGFja25lc3MpOworICAgIGF1dG8gbm9ybWFsaXplZEh1ZSA9
IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIFtub3JtYWxpemVkV2hpdG5lc3MsIG5vcm1h
bGl6ZWRCbGFja25lc3NdID0gbm9ybWFsaXplV2hpdGVuZXNzQmxhY2tuZXNzKCp3aGl0ZW5lc3Ms
ICpibGFja25lc3MpOwogCi0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4o
SFdCQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRIdWUpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4obm9ybWFsaXplZFdoaXRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6
ZWRCbGFja25lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBoYSkgfSk7CisgICAg
cmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFdCQTxmbG9hdD4geyBzdGF0aWNf
Y2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVk
V2hpdG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEJsYWNrbmVzcyksIHN0YXRp
Y19jYXN0PGZsb2F0PigqYWxwaGEpIH0pOwogfQogCiBzdGF0aWMgQ29sb3IgcGFyc2VIV0JQYXJh
bWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBjb250ZXh0KQpAQCAtMTI0NSwzNyArMTM5MiwzNyBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxh
dGl2ZUxhYlBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJ
ZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xhYiA9IG9yaWdp
bkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TGFiPGZsb2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1i
b2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVMLCBDU1NVbml0VHlwZTo6
Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMYWIubGlnaHRuZXNzIH0sCisgICAgICAgIHsg
Q1NTVmFsdWVBLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiwgb3JpZ2luQ29sb3JBc0xhYi5hIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiwgb3JpZ2luQ29s
b3JBc0xhYi5iIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzTGFiLmFscGhhICogMTAwIH0KKyAgICB9OworCisgICAg
YXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUp
OwogICAgIGlmICghbGlnaHRuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBh
VmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUE+KGFyZ3MpOworICAgIGF1dG8g
YVZhbHVlID0gY29uc3VtZU51bWJlck9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlm
ICghYVZhbHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBiVmFsdWUgPSBjb25z
dW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUI+KGFyZ3MpOworICAgIGF1dG8gYlZhbHVlID0gY29u
c3VtZU51bWJlck9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYlZhbHVlKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFs
cGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0gY29uc3Vt
ZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhh
KQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBjb252ZXJ0IGlkZW50aWZpZXJz
IHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAgICBhdXRvIG9yaWdpbkNvbG9y
QXNMYWIgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PExhYjxmbG9hdD4+KCk7Ci0KLSAg
ICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENT
U1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpsaWdodG5lc3Ms
IG9yaWdpbkNvbG9yQXNMYWIsIFtdKGF1dG8gbGlnaHRuZXNzKSB7Ci0gICAgICAgIHJldHVybiBz
dGQ6Om1heCgwLjAsIGxpZ2h0bmVzcyk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZEFWYWx1
ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NT
VmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqYVZhbHVlLCBvcmlnaW5Db2xvckFzTGFiKTsKLSAgICBh
dXRvIHJlc29sdmVkQlZhbHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVl
TCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpiVmFsdWUsIG9yaWdpbkNv
bG9yQXNMYWIpOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9y
Q2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigq
YWxwaGEsIG9yaWdpbkNvbG9yQXNMYWIpOworICAgIGF1dG8gbm9ybWFsaXplZExpZ2h0bmVzcyA9
IHN0ZDo6bWF4KDAuMCwgKmxpZ2h0bmVzcyk7CiAKLSAgICByZXR1cm4gTGFiPGZsb2F0PiB7IHN0
YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pihy
ZXNvbHZlZEFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEJWYWx1ZSksIHN0YXRp
Y19jYXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9OworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9h
dD4oKmFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PigqYlZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KCphbHBoYSkgfTsKIH0KIAogc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1ldGVycyhDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkK
QEAgLTEzMjMsMzkgKzE0NzAsMzkgQEAgc3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVMQ0hQYXJh
bWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NTVmFs
dWVMPihhcmdzKTsKKyAgICBhdXRvIG9yaWdpbkNvbG9yQXNMQ0ggPSBvcmlnaW5Db2xvci50b0Nv
bG9yVHlwZUxvc3N5PExDSEE8ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5
bWJvbFRhYmxlIHsKKyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VO
VEFHRSwgb3JpZ2luQ29sb3JBc0xDSC5saWdodG5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUMs
IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTENILmNocm9tYSB9LAorICAg
ICAgICB7IENTU1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNMQ0gu
aHVlIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5U
QUdFLCBvcmlnaW5Db2xvckFzTENILmFscGhhICogMTAwIH0KKyAgICB9OworCisgICAgYXV0byBs
aWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAg
IGlmICghbGlnaHRuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBjaHJvbWEg
PSBjb25zdW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUM+KGFyZ3MpOworICAgIGF1dG8gY2hyb21h
ID0gY29uc3VtZU51bWJlck9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghY2hy
b21hKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJ
ZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8gaHVlID0gY29uc3VtZUh1
ZU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxD
U1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxw
aGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNMQ0ggPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxv
c3N5PExDSEE8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29s
dmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBD
U1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5Db2xvckFzTENILCBbXShhdXRvIGxpZ2h0
bmVzcykgewotICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBsaWdodG5lc3MpOwotICAgIH0p
OwotICAgIGF1dG8gcmVzb2x2ZWRDaHJvbWEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8
Q1NTVmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmNocm9tYSwg
b3JpZ2luQ29sb3JBc0xDSCwgW10oYXV0byBjaHJvbWEpIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWF4KDAuMCwgY2hyb21hKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkSHVlID0gcmVzb2x2
ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVDLCBDU1NWYWx1ZUgsIENT
U1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNMQ0gsIFtdKGF1dG8gaHVlKSB7Ci0gICAg
ICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVk
QWxwaGEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMs
IENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmFscGhhLCBvcmlnaW5Db2xvckFzTENIKTsKKyAg
ICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBzdGQ6Om1heCgwLjAsICpsaWdodG5lc3MpOwor
ICAgIGF1dG8gbm9ybWFsaXplZENocm9tYSA9IHN0ZDo6bWF4KDAuMCwgKmNocm9tYSk7CisgICAg
YXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOwogCi0gICAgcmV0dXJuIExD
SEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkTGlnaHRuZXNzKSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQ2hyb21hKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
SHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQWxwaGEpIH07CisgICAgcmV0dXJuIExD
SEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0
aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZENocm9tYSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3Jt
YWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfTsKIH0KIAogc3RhdGljIENv
bG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3Qg
Q1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430139</attachid>
            <date>2021-05-30 11:54:43 -0700</date>
            <delta_ts>2021-05-30 11:56:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210530115442.patch</filename>
            <type>text/plain</type>
            <size>89569</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5kIHVwZGF0ZWQgdGVzdCBj
YXNlcyBpbiBleGlzdGluZyBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5o
dG1sCisKKyAgICAgICAgVXBkYXRlcyBzdXBwb3J0IGZvciB0aGUgQ1NTIENvbG9yIDUgIlJlbGF0
aXZlIENvbG9yIFN5bnRheCIgdG8gc3VwcG9ydAorICAgICAgICBib3RoIGNhbGMoKSBvbiBjb21w
b25lbnRzIGFuZCBjb21wb25lbnQgcGVybXV0YXRpb25zIHdpdGhpbiB0aGUgc3ludGF4LgorCisg
ICAgICAgIFRoaXMgYWxsb3dzIGZvciB0aGluZ3MgbGlrZToKKyAgICAgICAgCisgICAgICAgICAg
ICBiYWNrZ3JvdW5kOiBsY2goZnJvbSB2YXIoLS1wcmltYXJ5LWNvbG9yKSA2MCUgY2FsYyhjICog
MC44KSBoKTsKKworICAgICAgICAgICAgb3IKKworICAgICAgICAgICAgYmFja2dyb3VuZDogbGNo
KGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcik7CisKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmss
IHRoZSBjYWxjKCkgaW5mcmFzdHJ1Y3R1cmUgbm93IHN1cHBvcnRzIHBhc3NpbmcgYSBDU1NDYWxj
U3ltYm9sVGFibGUKKyAgICAgICAgd2hpY2ggYWxsb3dzIHRoZSBsb2dpYyBpbiB0aGUgcGFyc2Vy
IHRvIGxvb2t1cCB1bmtub3duIGlkZW50aWZpZXJzIHdoZW4gcGFyc2luZyBhIHZhbHVlLgorICAg
ICAgICBUaGUgcmVsYXRpdmUgY29sb3Igc3ludGF4IHBhcnNlcnMgY2FuIHRoZW4gYnVpbGQgYW4g
YXBwcm9wcmlhdGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIGZpbGxlZAorICAgICAgICB3aXRoIHRoZSBj
b21wb25lbnRzIG9mIHRoZSBvcmlnaW4gY29sb3IuCisKKyAgICAgICAgU2luY2UgdGhlc2UgY2Fs
YygpIHZhbHVlcyBhcmUgbm90IHNlcmlhbGl6ZWQsIHRoaXMgY2FuIGFsbCBoYXBwZW4gaW4gdGhl
IHBhcnNlciwgYnV0IGlmCisgICAgICAgIHdlIHRvIGJlIGFibGUgc2VyaWFsaXplIHRoZW0gaW4g
dGhlIGZ1dHVyZSwgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSBjb3VsZCBiZSB1cGRhdGVkCisg
ICAgICAgIHRvIHN0b3JlIHRoZSBzeW1ib2wgbmFtZSBpbiBhZGRpdGlvbiB0byBzdG9yaW5nIHRo
ZSB2YWx1ZSBhbmQgdHlwZSAob3Igd2UgY291bGQgd2UgY291bGQKKyAgICAgICAgYWRkIGEgbmV3
IG5vZGUgZm9yIGl0KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxj
U3ltYm9sVGFibGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaDogQWRkZWQuCisgICAgICAgIEFkZCBDU1NDYWxjU3ltYm9sVGFibGUgd2hpY2ggY29u
dGFpbnMgYSBtYXBwaW5nIGZyb20gQ1NTVmFsdWVJRCB0byBDU1NVbml0VHlwZS9kb3VibGUgcGFp
cnMuCisKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgV2hlbiB0cnlpbmcgdG8gY29uc3RydWN0IGEgdmFsdWUgbm9kZSwgaWYg
dGhlIHRva2VuIGlzIGEgaWRlbnRpZmllciwgdXNlIHRoZSBuZXcKKyAgICAgICAgc3ltYm9sIHRh
YmxlIHRvIGxvb2sgdXAgYSB0eXBlL3ZhbHVlIHRvIHVzZSBpbnN0ZWFkLiBVc2UgYSBzd2l0Y2gg
dG8gbWFrZSB0aGluZ3MKKyAgICAgICAgYSBiaXQgbW9yZSBjbGVhciB0aGF0IGRpZmZlcmVudGlh
dGlvbiBpcyBiZWluZyBkb25lIGJhc2VkIG9uIHRva2VuIHR5cGUuCisKKyAgICAgICAgKiBjc3Mv
Y2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaDoKKyAgICAgICAgQWRkIHJlZmVyZW5j
ZSB0byBhIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyLiBUaGUgcGFyc2VyIHNob3Vs
ZCBvbmx5IGV2ZXIgYmUgdXNlZAorICAgICAgICBvbiB0aGUgc3RhY2ssIHNvIHRoaXMgd29ya3Mg
d2VsbCBhbmQgYWxsb3dzIHVzIHRvIGF2b2lkIGNvcHlpbmcgdGhlIHRhYmxlLgorCisgICAgICAg
ICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNW
YWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjVmFsdWUuaDoKKyAgICAg
ICAgUGFzcyB0aGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIHRvIHRoZSBwYXJzZXIgaWYgb25lIGlzIHBy
b3ZpZGVkLiBBbiBvdmVybG9hZCB3YXMgdXNlZAorICAgICAgICB0byBhdm9pZCAjaW5jbHVkaW5n
IENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIHRoZSBoZWFkZXIganVzdCB0byBhZGQgYSBkZWZhdWx0
IHZhbHVlLgorCisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgIEdpdmUgYSBj
b25jcmV0ZSBiYXNlIG9mIHVpbnQxNl90IHRvIGFsbG93IGl0IHRvIGJlIGZvcndhcmQgZGVjbGFy
ZWQgYW5kIGFkZCBEZWZhdWx0SGFzaAorICAgICAgICBhbmQgSGFzaFRyYWl0cyB0byBhbGxvdyBp
dCB0byBiZSB1c2VkIHdpdGggSGFzaFRhYmxlLiBUaGVzZSBtYXRjaCB0aGUgZGVmaW5pdGlvbiBv
ZgorICAgICAgICBDU1NQcm9wZXJ0eUlELgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpDYWxjUGFyc2VyOjpDYWxjUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZU51bWJlclJhdyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVQZXJjZW50V29ya2VyU2FmZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVBbmds
ZVJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVBbmdsZVdvcmtlclNhZmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpjb25zdW1lQW5nbGVPclBlcmNlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSHVlT3JJZGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1i
ZXJPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6
Y29uc3VtZVBlcmNlbnRPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VySGVscGVyczo6Y29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVs
YXRpdmVSR0IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpw
YXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIU0xQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2ZUhXQlBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZVJl
bGF0aXZlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVMQ0hQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6ZXh0cmFjdENoYW5uZWxWYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnJlc29sdmVSZWxh
dGl2ZUNvbG9yQ2hhbm5lbCk6IERlbGV0ZWQuCisgICAgICAgIFJld29yayByZWxhdGl2ZSBjb2xv
ciBzeW50YXggcGFyc2luZyB0byBhbGxvdyBwZXJtdXRhdGlvbiBvZiBjaGFubmVsIHN5bWJvbHMK
KyAgICAgICAgYW5kIHVzZSBvZiB0aGUgY2FsYygpIHN5bWJvbCB0YWJsZSBzdXBwb3J0IHRvIGFs
bG93IHBhc3NpbmcgaW4gdGhlIGNoYW5uZWxzLgorICAgICAgICBUaGlzIG1ha2VzIHRoZSByZWxh
dGF0aXZlIGNvbG9yIHN5bnRheCB2YXJpYW50cyBtdWNoIGNsb3NlciB0byB0aGUgbm9ybWFsCisg
ICAgICAgIHZhcmlhbnRzICh3aXRoIHRoZSBleGNlcHRpb24gb2YgcGFzc2luZyB0aGUgc3ltYm9s
IHRhYmxlKSBhbmQgYSBzdWJzZXF1ZW50CisgICAgICAgIGNoYW5nZSB3aWxsIGF0dGVtcHQgdG8g
bWVyZ2UgdGhlbSBmdXJ0aGVyLgorCiAyMDIxLTA1LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV1RGOjpPcHRpb25hbCBzeW5vbnltIGZvciBzdGQ6
Om9wdGlvbmFsLCB1c2luZyB0aGF0IGNsYXNzIHRlbXBsYXRlIGRpcmVjdGx5IGluc3RlYWQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzgyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODMxLDYgKzgzMSw3IEBAIGNzcy9jYWxjL0NTU0Nh
bGNJbnZlcnROb2RlLmNwcAogY3NzL2NhbGMvQ1NTQ2FsY05lZ2F0ZU5vZGUuY3BwCiBjc3MvY2Fs
Yy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNQcmltaXRpdmVWYWx1
ZU5vZGUuY3BwCitjc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuY3BwCiBjc3MvY2FsYy9DU1ND
YWxjVmFsdWUuY3BwCiBjc3MvcGFyc2VyL0NTU0F0UnVsZUlELmNwcAogY3NzL3BhcnNlci9DU1NE
ZWZlcnJlZFBhcnNlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NDA3Nyw2ICs0MDc3LDcgQEAKIAkJQkM2OTMyNzQwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2lu
ZG93QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM2OTMyNzIwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2luZG93QmFzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNkQ0NEVEMEMwN0YyRUQw
MDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ0NEVCMEMwN0YyRUQwMDcyRDJDOSAvKiBKU0hUTUxF
bWJlZEVsZW1lbnQuaCAqLzsgfTsKIAkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9s
bFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFD
IC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xU
YWJsZS5oICovOyB9OwogCQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBD
NEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDcwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0
dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLzsgfTsKIAkJ
QkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzREMEM0RUIzMDQwMDgz
Mjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MzA0LDYgKzE0MzA1LDggQEAKIAkJQkM2RDQ0RUIwQzA3
RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNkVCODQ1MjYyNjZCNjEwMDMyMjVBNyAvKiBDb2xvckx1bWluYW5j
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckx1bWluYW5jZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3lt
Ym9sVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxj
U3ltYm9sVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRFQTkxRTAwODMyODVG
IC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSGVs
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0MEM0RUIyQzYwMDgz
Mjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzk1Niw2ICsyNzk1OSw4IEBACiAJCQkJQkNGMTY0NUYyNjYyQTI4
RDAwMDJGN0VGIC8qIENTU0NhbGNPcGVyYXRpb25Ob2RlLmggKi8sCiAJCQkJQkNGMTY0NTQyNjYy
QTEyMjAwMDJGN0VGIC8qIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuY3BwICovLAogCQkJCUJD
RjE2NDUzMjY2MkExMjIwMDAyRjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmggKi8s
CisJCQkJQkM3MDlEREYyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5jcHAg
Ki8sCisJCQkJQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5o
ICovLAogCQkJCTQ5QUUyRDhDMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuY3BwICov
LAogCQkJCTQ5QUUyRDhEMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuaCAqLywKIAkJ
CSk7CkBAIC0zNDY2OSw2ICszNDY3NCw3IEBACiAJCQkJMjY2MDFFQkYxNEIzQjlBRDAwMTJDMEZF
IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0FBNDg3
MDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFDIC8qIENTU0Nh
bGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxOTUxRDU0RjVGQjAwREQ3
QzY4IC8qIFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI2RDU2RTIyNTNB
RTI4RDAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENzcw
NUM3MjU1Mjc2Q0QwMDFEMEM5NCAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lvbiAyNzgyNDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDEw
ICsxNjQsMTIgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiAjaW5jbHVkZSA8c3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBDU1NWYWx1ZUlEIHsKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90IHsKICAgICBDU1NW
YWx1ZUludmFsaWQgPSAwLAogRU9GCiAKQEAgLTIwNCw2ICsyMDYsMTYgQEAgaW5saW5lIENTU1Zh
bHVlSUQgY29udmVydFRvQ1NTVmFsdWVJRChpbgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6Q1NTVmFsdWVJRD4gOiBJbnRIYXNoPHVuc2lnbmVkPiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
Q29yZTo6Q1NTVmFsdWVJRD4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3Jl
OjpDU1NWYWx1ZUlEJiBzbG90KSB7IHNsb3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NWYWx1
ZUlEPihXZWJDb3JlOjpsYXN0Q1NTVmFsdWVLZXl3b3JkICsgMSk7IH0KKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NWYWx1ZUlEIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA9PSAoV2ViQ29yZTo6bGFzdENTU1ZhbHVlS2V5d29yZCArIDEpOyB9Cit9OworfSAvLyBuYW1l
c3BhY2UgV1RGCisKIEVPRgogY2xvc2UgSEVBREVSOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDExIEBACiAjaW5j
bHVkZSAiQ1NTQ2FsY05lZ2F0ZU5vZGUuaCIKICNpbmNsdWRlICJDU1NDYWxjT3BlcmF0aW9uTm9k
ZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuaCIKKyNpbmNsdWRlICJD
U1NDYWxjU3ltYm9sVGFibGUuaCIKICNpbmNsdWRlICJDU1NDYWxjVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQYXJzZXJUb2tlbi5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKKyNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xODAsMTkgKzE4MiwzNSBAQCBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VDCiAKIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
OjpwYXJzZVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywgUmVmUHRyPENTU0NhbGNF
eHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogQWRkIGNvZGUgaGVyZSB0
byBwYXJzZSBDU1NWYWxpZElEIGZvciBuYW1lZCBjb25zdGFudHMuCisgICAgYXV0byBtYWtlQ1NT
Q2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSA9IFsmXSAoQ1NTVW5pdFR5cGUgdHlwZSwgZG91YmxlIHZh
bHVlKSAtPiBib29sIHsKKyAgICAgICAgaWYgKGNhbGNVbml0Q2F0ZWdvcnkodHlwZSkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICByZXN1bHQgPSBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgdHlwZSkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9OwogCi0gICAgQ1NTUGFyc2VyVG9rZW4gdG9rZW4gPSB0b2tlbnMuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICBpZiAoISh0b2tlbi50eXBlKCkgPT0gTnVtYmVy
VG9rZW4gfHwgdG9rZW4udHlwZSgpID09IFBlcmNlbnRhZ2VUb2tlbiB8fCB0b2tlbi50eXBlKCkg
PT0gRGltZW5zaW9uVG9rZW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgYXV0
byB0eXBlID0gdG9rZW4udW5pdFR5cGUoKTsKLSAgICBpZiAoY2FsY1VuaXRDYXRlZ29yeSh0eXBl
KSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcikKKyAgICBhdXRvIHRva2VuID0gdG9rZW5z
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUo
KSkgeworICAgIGNhc2UgSWRlbnRUb2tlbjogeworICAgICAgICBhdXRvIHZhbHVlID0gbV9zeW1i
b2xUYWJsZS5nZXQodG9rZW4uaWQoKSk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZSh2YWx1ZS0+dHlwZSwgdmFsdWUtPnZhbHVlKTsKKyAgICB9CisKKyAgICBjYXNlIE51bWJl
clRva2VuOgorICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgIGNhc2UgRGltZW5zaW9uVG9r
ZW46CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSh0b2tlbi51
bml0VHlwZSgpLCB0b2tlbi5udW1lcmljVmFsdWUoKSk7CisKKyAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmVzdWx0ID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodG9rZW4ubnVtZXJpY1ZhbHVl
KCksIHR5cGUpKTsKLSAgICAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tl
bnMsIGludCBkZXB0aCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9u
Tm9kZVBhcnNlci5oCShyZXZpc2lvbiAyNzgyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjAg
KzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkNhbGNPcGVyYXRvci5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uQ2F0ZWdv
cnkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlbjsKIGNs
YXNzIENTU1BhcnNlclRva2VuUmFuZ2U7CiAKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90Owor
CiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcihDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnkpCisgICAgZXhwbGljaXQgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
KENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKICAgICAgICAgOiBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnko
ZGVzdGluYXRpb25DYXRlZ29yeSkKKyAgICAgICAgLCBtX3N5bWJvbFRhYmxlKHN5bWJvbFRhYmxl
KQogICAgIHsKICAgICB9CiAKQEAgLTU1LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBh
cnNlQ2FsY1ZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmLCBpbnQgZGVwdGgsIFJlZlB0cjxDU1ND
YWxjRXhwcmVzc2lvbk5vZGU+Jik7CiAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IG1fZGVzdGlu
YXRpb25DYXRlZ29yeTsKKyAgICBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIG1fc3ltYm9sVGFi
bGU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNT
eW1ib2xUYWJsZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xU
YWJsZS5oIgorCisjaW5jbHVkZSAiQ1NTVW5pdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDU1NDYWxjU3ltYm9sVGFibGU6OkNTU0NhbGNTeW1ib2xUYWJsZShzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8c3RkOjp0dXBsZTxDU1NWYWx1ZUlELCBDU1NVbml0VHlwZSwgZG91YmxlPj4gaW5pdGlh
bGl6ZXIpCit7CisgICAgZm9yIChhdXRvJiBbaWRlbnRpZmllciwgdHlwZSwgdmFsdWVdIDogaW5p
dGlhbGl6ZXIpCisgICAgICAgIG1fdGFibGUuYWRkKGlkZW50aWZpZXIsIHN0ZDo6bWFrZV9wYWly
KHR5cGUsIHZhbHVlKSk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q1NTQ2FsY1N5bWJvbFRhYmxlOjpW
YWx1ZT4gQ1NTQ2FsY1N5bWJvbFRhYmxlOjpnZXQoQ1NTVmFsdWVJRCB2YWx1ZUlEKSBjb25zdAor
eworICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gaXQgPSBtX3RhYmxlLmZpbmQodmFsdWVJRCk7CisgICAg
aWYgKGl0ID09IG1fdGFibGUuZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4ge3sgaXQtPnZhbHVlLmZpcnN0LCBpdC0+dmFsdWUuc2Vjb25kIH19OworfQor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIENTU1VuaXRUeXBlIDogdWludDhfdDsKKworY2xhc3MgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlIHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgVmFsdWUgeworICAgICAgICBDU1NV
bml0VHlwZSB0eXBlOworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgfTsKKworICAgIENTU0Nh
bGNTeW1ib2xUYWJsZSgpID0gZGVmYXVsdDsKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUoc3RkOjpp
bml0aWFsaXplcl9saXN0PHN0ZDo6dHVwbGU8Q1NTVmFsdWVJRCwgQ1NTVW5pdFR5cGUsIGRvdWJs
ZT4+KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmFsdWU+IGdldChDU1NWYWx1ZUlEKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBIYXNoTWFwPENTU1ZhbHVlSUQsIHN0ZDo6cGFpcjxDU1NVbml0VHlw
ZSwgZG91YmxlPj4gbV90YWJsZTsKK307CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Y2FsYy9DU1NDYWxjVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoLmgi
CiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25MZW5ndGguaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CkBAIC0yOTksOSArMzAwLDkgQEAgdm9pZCBDU1NDYWxjVmFsdWU6OmR1bXAoVGV4dFN0cmVhbSYg
dHMpIAogICAgIHRzIDw8ICIpXG4iOwogfQogCi1SZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxj
VmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJh
bmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFs
dWVSYW5nZSByYW5nZSkKK1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRl
KENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2Vucywg
Q2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlIHJhbmdl
LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgQ1NT
Q2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyIHBhcnNlcihkZXN0aW5hdGlvbkNhdGVnb3J5LCBzeW1i
b2xUYWJsZSk7CiAgICAgYXV0byBleHByZXNzaW9uID0gcGFyc2VyLnBhcnNlQ2FsYyh0b2tlbnMs
IGZ1bmN0aW9uKTsKICAgICBpZiAoIWV4cHJlc3Npb24pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtMzA5LDcgKzMxMCwxMiBAQCBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6
OmNyZWF0CiAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMsIHN0cmVhbSA8PCAiQ1NTQ2FsY1ZhbHVl
OjpjcmVhdGUgIiA8PCAqcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCitS
ZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0
aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdv
cnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb24sIHRva2VucywgZGVzdGluYXRpb25DYXRlZ29y
eSwgcmFuZ2UsIHsgfSk7Cit9CisKIFJlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6
Y3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUpCiB7CiAgICAgYXV0byBleHByZXNzaW9uID0gY3JlYXRlQ1NTKHZhbHVlLmV4cHJlc3Np
b24oKSwgc3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmgJ
KHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KQEAgLTM5LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlOworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRhYmxlOwog
Y2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE7CiBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTQ3LDggKzQ3LDExIEBAIGVudW0gY2xhc3MgQ1NT
VW5pdFR5cGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBDYWxjdWxhdGlvbkNhdGVnb3J5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVmFsdWVSYW5nZSA6IHVpbnQ4X3Q7CiAKK2VudW0gQ1NTVmFsdWVJ
RCA6IHVpbnQxNl90OworCiBjbGFzcyBDU1NDYWxjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFs
dWUgewogcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NT
VmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENhbGN1bGF0aW9u
Q2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJik7CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShDU1NW
YWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ2FsY3VsYXRpb25D
YXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlKTsKICAgICBzdGF0aWMgUmVm
UHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmLCBjb25zdCBS
ZW5kZXJTdHlsZSYpOwogICAgIH5DU1NDYWxjVmFsdWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJl
dmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIgogCisj
aW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTQ2FudmFzVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1
ZS5oIgpAQCAtOTgsNyArOTksNyBAQCBzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVt
YmVyT3JQCiAvLyBGSVhNRTogY29uc2lkZXIgcHVsbGluZyBpbiB0aGUgcGFyc2luZyBsb2dpYyBm
cm9tIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci4KIGNsYXNzIENhbGNQYXJzZXIgewogcHVi
bGljOgotICAgIGV4cGxpY2l0IENhbGNQYXJzZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSB2YWx1
ZVJhbmdlID0gVmFsdWVSYW5nZTo6QWxsLCBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpCisgICAgZXhwbGljaXQgQ2FsY1BhcnNlcihDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVn
b3J5LCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwsIGNvbnN0IENTU0Nh
bGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSB7IH0sIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQ
b29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSkKICAgICAgICAgOiBtX3NvdXJjZVJhbmdl
KHJhbmdlKQogICAgICAgICAsIG1fcmFuZ2UocmFuZ2UpCiAgICAgICAgICwgbV92YWx1ZVBvb2wo
Y3NzVmFsdWVQb29sKQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogICAgICAgICBhdXRvIGZ1bmN0
aW9uSWQgPSB0b2tlbi5mdW5jdGlvbklkKCk7CiAgICAgICAgIGlmIChDU1NDYWxjVmFsdWU6Omlz
Q2FsY0Z1bmN0aW9uKGZ1bmN0aW9uSWQpKQotICAgICAgICAgICAgbV9jYWxjVmFsdWUgPSBDU1ND
YWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5nZSksIGRl
c3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UpOworICAgICAgICAgICAgbV9jYWxjVmFsdWUg
PSBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5n
ZSksIGRlc3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKICAgICB9
CiAKICAgICBjb25zdCBDU1NDYWxjVmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxj
VmFsdWUuZ2V0KCk7IH0KQEAgLTI1OSw3ICsyNjAsNyBAQCBPcHRpb25hbDxkb3VibGU+IGNvbnN1
bWVOdW1iZXJSYXcoQ1NTUGFyCiAgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5n
V2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOwogICAgIH0KIAotICAgIGlmICh0b2tlbi50eXBl
KCkgIT0gRnVuY3Rpb25Ub2tlbikKKyAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBGdW5j
dGlvblRva2VuKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgQ2FsY1BhcnNl
ciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHZhbHVlUmFu
Z2UpOwpAQCAtNDMzLDcgKzQzNCw3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3Vt
ZVBlcmNlbnQKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVr
KCk7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7Ci0gICAgICAgIENh
bGNQYXJzZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwg
dmFsdWVSYW5nZSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2Vy
KHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlLCB7IH0sIGNz
c1ZhbHVlUG9vbCk7CiAgICAgICAgIGlmIChjb25zdCBDU1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9u
ID0gY2FsY1BhcnNlci52YWx1ZSgpKSB7CiAgICAgICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNh
dGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKICAgICAgICAgICAgICAg
ICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKQEAgLTUyNyw3ICs1MjgsNyBAQCBP
cHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1BhCiAgICAgaWYgKHRva2VuLnR5
cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51
bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcywgdW5pdGxlc3NaZXJvKSkKICAg
ICAgICAgcmV0dXJuIHsgeyBDU1NVbml0VHlwZTo6Q1NTX0RFRywgcmFuZ2UuY29uc3VtZUluY2x1
ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSB9IH07CiAKLSAgICBpZiAodG9rZW4udHlw
ZSgpICE9IEZ1bmN0aW9uVG9rZW4pCisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gRnVu
Y3Rpb25Ub2tlbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENhbGNQYXJz
ZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIFZhbHVlUmFu
Z2U6OkFsbCk7CkBAIC01NDMsNyArNTQ0LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lQW5nbGVXbwogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdl
LnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAg
ICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmds
ZSwgVmFsdWVSYW5nZTo6QWxsLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICBDYWxjUGFyc2VyIGNh
bGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCBWYWx1ZVJhbmdlOjpB
bGwsIHsgfSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSog
Y2FsY3VsYXRpb24gPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKICAgICAgICAgICAgIGlmIChjYWxj
dWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKQEAgLTU2MCw3ICs1
NjEsOCBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZVdvCiBzdGF0aWMg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5n
ZSB2YWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJrIHVuaXRsZXNzLCBVbml0bGVzc1plcm9RdWlyayB1
bml0bGVzc1plcm8pCiB7CiAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2Uu
cGVlaygpOwotICAgIGlmICh0b2tlbi50eXBlKCkgPT0gRGltZW5zaW9uVG9rZW4pIHsKKyAgICBz
d2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRGltZW5zaW9uVG9rZW46CiAgICAgICAg
IHN3aXRjaCAodG9rZW4udW5pdFR5cGUoKSkgewogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfREVHOgogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgpAQCAtNTY4LDI5ICs1
NzAsMzggQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZQogICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKICAgICAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0
ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCksIHRva2VuLnVuaXRUeXBlKCkpOwogICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgIH0KLSAgICBpZiAodG9rZW4udHlwZSgpID09IE51bWJlclRva2VuICYmIHNo
b3VsZEFjY2VwdFVuaXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1v
ZGUsIHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpLm51bWVyaWNWYWx1ZSgpLCBDU1NVbml0VHlwZTo6Q1NTX0RFRyk7CisgICAgICAgIGJyZWFr
OworICAgIAorICAgIGNhc2UgTnVtYmVyVG9rZW46CisgICAgICAgIGlmIChzaG91bGRBY2NlcHRV
bml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVz
cywgdW5pdGxlc3NaZXJvKSkKKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVt
ZXJpY1ZhbHVlKCksIENTU1VuaXRUeXBlOjpDU1NfREVHKTsKKyAgICAgICAgYnJlYWs7CiAKLSAg
ICBpZiAodG9rZW4udHlwZSgpID09IFBlcmNlbnRhZ2VUb2tlbikKKyAgICBjYXNlIFBlcmNlbnRh
Z2VUb2tlbjoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVQZXJjZW50KHJhbmdlLCB2YWx1ZVJhbmdl
KTsKIAotICAgICBpZiAodG9rZW4udHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCi0gICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1Bh
cnNlciBhbmdsZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCB2
YWx1ZVJhbmdlKTsKKyAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24g
PSBhbmdsZUNhbGNQYXJzZXIudmFsdWUoKSkgeworICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9u
LT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQorICAgICAgICAgICAg
ICAgIHJldHVybiBhbmdsZUNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIH0KIAot
ICAgIENhbGNQYXJzZXIgYW5nbGVDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpBbmdsZSwgdmFsdWVSYW5nZSk7Ci0gICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3Vs
YXRpb24gPSBhbmdsZUNhbGNQYXJzZXIudmFsdWUoKSkgewotICAgICAgICBpZiAoY2FsY3VsYXRp
b24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCi0gICAgICAgICAg
ICByZXR1cm4gYW5nbGVDYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOworICAgICAgICBDYWxjUGFy
c2VyIHBlcmNlbnRDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50
LCB2YWx1ZVJhbmdlKTsKKyAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRp
b24gPSBwZXJjZW50Q2FsY1BhcnNlci52YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoY2FsY3Vs
YXRpb24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcGVyY2VudENhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAg
ICAgIH0KKyAgICAKKyAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgQ2FsY1BhcnNlciBwZXJj
ZW50Q2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVS
YW5nZSk7Ci0gICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBwZXJjZW50
Q2FsY1BhcnNlci52YWx1ZSgpKSB7Ci0gICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnko
KSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50KQotICAgICAgICAgICAgcmV0dXJuIHBl
cmNlbnRDYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOworICAgIAorICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC03NDgsMTQg
Kzc1OSw2MiBAQCBzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aW9uYWxBCiAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2Vk
SWRlbnRzPiBzdGF0aWMgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25z
dW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0
aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUp
CiB7Ci0gICAgaWYgKGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYShyYW5nZSkpCi0g
ICAgICAgIHJldHVybiB7ICphbHBoYSB9OworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5n
V2hpdGVzcGFjZShyYW5nZSkpCisgICAgICAgIHJldHVybiAxLjA7CisKKyAgICBhdXRvIG5vcm1h
bGl6ZVBlcmNlbnQgPSBbXShkb3VibGUgcGVyY2VudCkgeworICAgICAgICByZXR1cm4gY2xhbXBU
byhwZXJjZW50IC8gMTAwLjAsIDAuMCwgMS4wKTsKKyAgICB9OworCisgICAgYXV0byBub3JtYWxp
emVOdW1iZXIgPSBbXShkb3VibGUgYWxwaGEpIHsKKyAgICAgICAgcmV0dXJuIGNsYW1wVG8oYWxw
aGEsIDAuMCwgMS4wKTsKKyAgICB9OworCisgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2Vu
ID0gcmFuZ2UucGVlaygpOworCisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNl
IEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBwZXJjZW50YWdlQ2FsY1BhcnNl
cihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgVmFsdWVSYW5nZTo6QWxsLCBz
eW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIHBlcmNlbnQgPSBwZXJjZW50YWdlQ2FsY1Bh
cnNlci5jb25zdW1lUGVyY2VudFJhdygpKQorICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBl
cmNlbnQoKnBlcmNlbnQpOworICAgICAgICAKKyAgICAgICAgQ2FsY1BhcnNlciBudW1iZXJDYWxj
UGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIFZhbHVlUmFuZ2U6OkFs
bCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0byBudW1iZXIgPSBudW1iZXJDYWxjUGFy
c2VyLmNvbnN1bWVOdW1iZXJSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1i
ZXIoKm51bWJlcik7CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYodG9rZW4ubnVt
ZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
cmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2Uo
KS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRva2VuOgorICAgICAgICByZXR1
cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVt
ZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAgICAgICBpZiAoYXV0byB2
YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBlKSB7CisgICAg
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiBu
b3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoYXV0byBpZGVu
dCA9IGNvbnN1bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRzLi4uPihyYW5nZSkpCi0gICAgICAgIHJl
dHVybiB7ICppZGVudCB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQogCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIH0KIApAQCAtNzY3LDE0ICs4MjYsNTkgQEAgc3RhdGljIE9wdGlvbmFsPGRvdWJs
ZT4gY29uc3VtZUh1ZShDU1NQYQogICAgIHJldHVybiBjb25zdW1lTnVtYmVyUmF3KHJhbmdlKTsK
IH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgT3B0aW9u
YWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lSHVlT3JJZGVudChDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0
YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7
Ci0gICAgaWYgKGF1dG8gaHVlID0gY29uc3VtZUh1ZShyYW5nZSwgY29udGV4dCkpCi0gICAgICAg
IHJldHVybiB7ICpodWUgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5n
ZS5wZWVrKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rp
b25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOwor
ICAgICAgICBpZiAoYXV0byBhbmdsZSA9IGFuZ2xlQ2FsY1BhcnNlci5jb25zdW1lQW5nbGVSYXco
KSkKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMo
YW5nbGUtPnR5cGUsIGFuZ2xlLT52YWx1ZSk7CisgICAgICAgIAorICAgICAgICBDYWxjUGFyc2Vy
IG51bWJlckNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFs
dWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBudW1iZXJDYWxjUGFy
c2VyLmNvbnN1bWVOdW1iZXJSYXcoKTsKKyAgICB9CisgICAgCisgICAgY2FzZSBEaW1lbnNpb25U
b2tlbjogeworICAgICAgICBhdXRvIHVuaXRUeXBlID0gdG9rZW4udW5pdFR5cGUoKTsKKyAgICAg
ICAgc3dpdGNoICh1bml0VHlwZSkgeworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVH
OgorICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfR1JBRDoKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46Cisg
ICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKHVuaXRU
eXBlLCByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJu
IHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAg
ICBjYXNlIElkZW50VG9rZW46CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFi
bGUuZ2V0KHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAodmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19ERUc6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgor
ICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6CisgICAgICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKHZhcmlhYmxlLT50eXBlLCB2YXJpYWJsZS0+dmFsdWUp
OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4u
Lj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICAgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxl
LT52YWx1ZTsKIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiB9CiAKQEAgLTc4Myw2NSArODg3LDEzMSBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6
ZUh1ZShkb3VibGUgaHVlKQogICAgIHJldHVybiBzdGQ6OmZtb2Qoc3RkOjpmbW9kKGh1ZSwgMzYw
LjApICsgMzYwLjAsIDM2MC4wKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2Vk
SWRlbnRzPiBzdGF0aWMgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25z
dW1lTnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBPcHRp
b25hbDxkb3VibGU+IGNvbnN1bWVOdW1iZXJPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlmIChh
dXRvIG51bWJlciA9IGNvbnN1bWVOdW1iZXJSYXcocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAq
bnVtYmVyIH07CisgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygp
OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4u
Lj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICBzd2l0Y2ggKHRva2Vu
LnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2Vy
IGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5n
ZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVO
dW1iZXJSYXcoKTsKKyAgICB9CiAKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQorICAgIGNh
c2UgTnVtYmVyVG9rZW46CisgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hp
dGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOwogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlELi4uIGFsbG93
ZWRJZGVudHM+IHN0YXRpYyBPcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNv
bnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKLXsKLSAgICBp
ZiAoYXV0byBwZXJjZW50ID0gY29uc3VtZVBlcmNlbnRSYXcocmFuZ2UpKQotICAgICAgICByZXR1
cm4geyAqcGVyY2VudCB9OworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8g
dmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3Bh
Y2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAg
ICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdmFyaWFibGUtPnZhbHVlOwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRl
bnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQg
fTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMz
LCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0
byBleHRyYWN0Q2hhbm5lbFZhbHVlKENTU1ZhbHVlSUQgY2hhbm5lbCwgY29uc3QgQ29sb3JUeXBl
JiBvcmlnaW5Db2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlCitzdGF0
aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudE9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0g
ICAgYXV0byBjb21wb25lbnRzID0gYXNDb2xvckNvbXBvbmVudHMob3JpZ2luQ29sb3IpOwotICAg
IHN3aXRjaCAoY2hhbm5lbCkgewotICAgIGNhc2UgQzE6Ci0gICAgICAgIHJldHVybiBjb21wb25l
bnRzWzBdOwotICAgIGNhc2UgQzI6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzFdOwotICAg
IGNhc2UgQzM6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzJdOwotICAgIGNhc2UgQWxwaGFD
aGFubmVsOgotICAgICAgICByZXR1cm4gY29tcG9uZW50c1szXTsKKyAgICBjb25zdCBDU1NQYXJz
ZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUo
KSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQ
YXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFs
bCwgc3ltYm9sVGFibGUpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lUGVyY2Vu
dFJhdygpOworICAgIH0KKworICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgICAgICBpZiAo
c3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3Bh
Y2UoKS5udW1lcmljVmFsdWUoKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYg
KGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1do
aXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkg
eworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBkZWZhdWx0OgotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1
ZUlEIEMyLCBDU1NWYWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUg
Q29sb3JUeXBlLCB0eXBlbmFtZSBWYWx1ZVRyYW5zZm9ybWVyPiBzdGF0aWMgZGVjbHR5cGUoYXV0
bykgcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsKGNvbnN0IFZhcmlhbnQ8ZG91YmxlLCBDU1NW
YWx1ZUlEPiYgcGFyc2VkQ2hhbm5lbCwgY29uc3QgQ29sb3JUeXBlJiBvcmlnaW5Db2xvciwgVmFs
dWVUcmFuc2Zvcm1lciYmIHZhbHVlVHJhbnNmb3JtZXIpCitlbnVtIGNsYXNzIFJHQkNvbXBvbmVu
dFR5cGUgeyBOdW1iZXIsIFBlcmNlbnRhZ2UgfTsKKworc3RhdGljIE9wdGlvbmFsPHVpbnQ4X3Q+
IGNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJv
bFRhYmxlKQogewotICAgIHJldHVybiBzd2l0Y2hPbihwYXJzZWRDaGFubmVsLAotICAgICAgICBb
Jl0gKGRvdWJsZSB2YWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIHZhbHVlVHJhbnNmb3JtZXIo
dmFsdWUpOwotICAgICAgICB9LAotICAgICAgICBbJl0gKENTU1ZhbHVlSUQgY2hhbm5lbCkgewot
ICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RDaGFubmVsVmFsdWU8QzEsIEMyLCBDMywgQWxwaGFD
aGFubmVsPihjaGFubmVsLCBvcmlnaW5Db2xvcik7CisgICAgYXV0byBub3JtYWxpemVQZXJjZW50
ID0gW10oZG91YmxlIHBlcmNlbnQpIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRQcmVzY2FsZWRT
UkdCQUZsb2F0VG9TUkdCQUJ5dGUocGVyY2VudCAvIDEwMC4wICogMjU1LjApOworICAgIH07CisK
KyAgICBhdXRvIG5vcm1hbGl6ZU51bWJlciA9IFtdKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAg
cmV0dXJuIGNvbnZlcnRQcmVzY2FsZWRTUkdCQUZsb2F0VG9TUkdCQUJ5dGUobnVtYmVyKTsKKyAg
ICB9OworCisgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwor
CisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsK
KyAgICAgICAgQ2FsY1BhcnNlciBwZXJjZW50YWdlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRp
b25DYXRlZ29yeTo6UGVyY2VudCwgVmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAg
ICAgIGlmIChhdXRvIHBlcmNlbnQgPSBwZXJjZW50YWdlQ2FsY1BhcnNlci5jb25zdW1lUGVyY2Vu
dFJhdygpKQorICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQoKnBlcmNlbnQpOwor
ICAgICAgICAKKyAgICAgICAgQ2FsY1BhcnNlciBudW1iZXJDYWxjUGFyc2VyKHJhbmdlLCBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOwor
ICAgICAgICBpZiAoYXV0byBudW1iZXIgPSBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVOdW1iZXJS
YXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIoKm51bWJlcik7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIGNhc2UgUGVy
Y2VudGFnZVRva2VuOgorICAgICAgICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUo
KSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gbm9y
bWFsaXplUGVyY2VudChyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNW
YWx1ZSgpKTsKKworICAgIGNhc2UgTnVtYmVyVG9rZW46CisgICAgICAgIHJldHVybiBub3JtYWxp
emVOdW1iZXIocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUo
KSk7CisKKyAgICBjYXNlIElkZW50VG9rZW46CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0g
c3ltYm9sVGFibGUuZ2V0KHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkp
IHsKKyAgICAgICAgICAgIHN3aXRjaCAodmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgorICAgICAgICAgICAgICAgIHJldHVybiBu
b3JtYWxpemVQZXJjZW50KHZhcmlhYmxlLT52YWx1ZSk7CisKKyAgICAgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU51
bWJlcih2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAg
ICApOwotfQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi10ZW1wbGF0ZTxDU1NWYWx1
ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hh
bm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgZGVjbHR5cGUoYXV0bykgcmVzb2x2ZVJl
bGF0aXZlQ29sb3JDaGFubmVsKGNvbnN0IFZhcmlhbnQ8ZG91YmxlLCBDU1NWYWx1ZUlEPiYgcGFy
c2VkQ2hhbm5lbCwgY29uc3QgQ29sb3JUeXBlJiBvcmlnaW5Db2xvcikKLXsKLSAgICByZXR1cm4g
cmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPEMxLCBDMiwgQzMsIEFscGhhQ2hhbm5lbD4ocGFy
c2VkQ2hhbm5lbCwgb3JpZ2luQ29sb3IsIFtdKGF1dG8gdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9
KTsKLX0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0K
IAotZW51bSBjbGFzcyBSR0JDb21wb25lbnRUeXBlIHsgTnVtYmVyLCBQZXJjZW50YWdlIH07Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KIAog
c3RhdGljIHVpbnQ4X3QgY2xhbXBSR0JDb21wb25lbnQoZG91YmxlIHZhbHVlLCBSR0JDb21wb25l
bnRUeXBlIGNvbXBvbmVudFR5cGUpCiB7CkBAIC05MjEsNTIgKzEwOTEsMzcgQEAgc3RhdGljIENv
bG9yIHBhcnNlUmVsYXRpdmVSR0JQYXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgT3B0aW9uYWw8UkdCQ29tcG9uZW50
VHlwZT4gY29tcG9uZW50VHlwZTsKLSAgICBhdXRvIHJlZFJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2
ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZVI+KGFyZ3MsIGNvbXBvbmVudFR5cGUpOwotICAgIGlmICgh
cmVkUmVzdWx0KQorICAgIGF1dG8gb3JpZ2luQ29sb3JBc1NSR0IgPSBvcmlnaW5Db2xvci50b0Nv
bG9yVHlwZUxvc3N5PFNSR0JBPGZsb2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBz
eW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVSLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNF
TlRBR0UsIG9yaWdpbkNvbG9yQXNTUkdCLnJlZCAqIDEwMCB9LAorICAgICAgICB7IENTU1ZhbHVl
RywgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5ncmVlbiAq
IDEwMCB9LAorICAgICAgICB7IENTU1ZhbHVlQiwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdF
LCBvcmlnaW5Db2xvckFzU1JHQi5ibHVlICogMTAwIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBo
YSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5hbHBoYSAq
IDEwMCB9CisgICAgfTsKKworICAgIGF1dG8gcmVkID0gY29uc3VtZU51bWJlck9yUGVyY2VudE9y
SWRlbnROb3JtYWxpemVkRm9yUmVsYXRpdmVSR0IoYXJncywgc3ltYm9sVGFibGUpOworICAgIGlm
ICghcmVkKQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8gcmVkID0gcmVkUmVzdWx0LT52
YWx1ZTsKLSAgICBjb21wb25lbnRUeXBlID0gcmVkUmVzdWx0LT50eXBlOwogCi0gICAgYXV0byBn
cmVlblJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZUc+KGFyZ3Ms
IGNvbXBvbmVudFR5cGUpOwotICAgIGlmICghZ3JlZW5SZXN1bHQpCisgICAgYXV0byBncmVlbiA9
IGNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKGFy
Z3MsIHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoIWdyZWVuKQogICAgICAgICByZXR1cm4geyB9Owot
ICAgIGF1dG8gZ3JlZW4gPSBncmVlblJlc3VsdC0+dmFsdWU7Ci0gICAgY29tcG9uZW50VHlwZSA9
IGdyZWVuUmVzdWx0LT50eXBlOwogCi0gICAgYXV0byBibHVlUmVzdWx0ID0gY29uc3VtZVJlbGF0
aXZlUkdCQ29tcG9uZW50PENTU1ZhbHVlQj4oYXJncywgY29tcG9uZW50VHlwZSk7Ci0gICAgaWYg
KCFibHVlUmVzdWx0KQorICAgIGF1dG8gYmx1ZSA9IGNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklk
ZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKGFyZ3MsIHN5bWJvbFRhYmxlKTsKKyAgICBpZiAo
IWJsdWUpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgYXV0byBibHVlID0gYmx1ZVJlc3VsdC0+
dmFsdWU7Ci0gICAgY29tcG9uZW50VHlwZSA9IGJsdWVSZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRv
IGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3Mp
OworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3lt
Ym9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBp
ZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFmdGVyIHBh
cnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdpbiBjb2xv
ci4KLQotICAgIC8vIEZJWE1FOiBEbyB3ZSB3YW50IHRvIGJlaW5nIGRvaW5nIHRoaXMgaW4gdWlu
dDhfdCB2YWx1ZXM/IE9yIHNob3VsZCB3ZSB1c2UgCi0gICAgLy8gaGlnaGVyIHByZWNpc2lvbiBh
bmQgY2xhbXAgYXQgdGhlIGVuZD8gSXQgd29uJ3QgbWFrZSBhIGRpZmZlcmVuY2UgdW50aWwgd2UK
LSAgICAvLyBzdXBwb3J0IGNhbGN1bGF0aW9ucyBvbiB0aGUgb3JpZ2luJ3MgY29tcG9uZW50cy4K
LSAgICBhdXRvIG9yaWdpbkNvbG9yQXNTUkdCID0gb3JpZ2luQ29sb3IudG9TUkdCQUxvc3N5PHVp
bnQ4X3Q+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudFR5
cGUudmFsdWVfb3IoUkdCQ29tcG9uZW50VHlwZTo6UGVyY2VudGFnZSk7Ci0gICAgYXV0byBjaGFu
bmVsUmVzb2x2ZXIgPSBbcmVzb2x2ZWRDb21wb25lbnRUeXBlXShhdXRvIHZhbHVlKSB7Ci0gICAg
ICAgIHJldHVybiBjbGFtcFJHQkNvbXBvbmVudCh2YWx1ZSwgcmVzb2x2ZWRDb21wb25lbnRUeXBl
KTsKLSAgICB9OwotCi0gICAgYXV0byByZXNvbHZlZFJlZCA9IHJlc29sdmVSZWxhdGl2ZUNvbG9y
Q2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihy
ZWQsIG9yaWdpbkNvbG9yQXNTUkdCLCBjaGFubmVsUmVzb2x2ZXIpOwotICAgIGF1dG8gcmVzb2x2
ZWRHcmVlbiA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVl
RywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihncmVlbiwgb3JpZ2luQ29sb3JBc1NSR0IsIGNo
YW5uZWxSZXNvbHZlcik7Ci0gICAgYXV0byByZXNvbHZlZEJsdWUgPSByZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBo
YT4oYmx1ZSwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5uZWxSZXNvbHZlcik7Ci0gICAgYXV0byBy
ZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NT
VmFsdWVHLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc1NS
R0IsIFtdKGF1dG8gdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGNvbnZlcnRGbG9hdEFscGhhVG88
dWludDhfdD4odmFsdWUpOwotICAgIH0pOworICAgIGF1dG8gbm9ybWFsaXplZEFscGhhID0gY29u
dmVydEZsb2F0QWxwaGFUbzx1aW50OF90PigqYWxwaGEpOwogCi0gICAgcmV0dXJuIFNSR0JBPHVp
bnQ4X3Q+IHsgcmVzb2x2ZWRSZWQsIHJlc29sdmVkR3JlZW4sIHJlc29sdmVkQmx1ZSwgcmVzb2x2
ZWRBbHBoYSB9OworICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7ICpyZWQsICpncmVlbiwgKmJs
dWUsIG5vcm1hbGl6ZWRBbHBoYSB9OwogfQogCiBlbnVtIGNsYXNzIFJHQkZ1bmN0aW9uTW9kZSB7
IFJHQiwgUkdCQSB9OwpAQCAtMTA0OCw0MSArMTIwMyw0MCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VS
ZWxhdGl2ZUhTTFBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50PENT
U1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAgYXV0byBvcmlnaW5Db2xvckFzSFNMID0gb3Jp
Z2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIU0xBPGZsb2F0Pj4oKTsKKworICAgIENTU0NhbGNT
eW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVILCBDU1NVbml0VHlw
ZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0hTTC5odWUgfSwKKyAgICAgICAgeyBDU1NWYWx1ZVMs
IENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hTTC5zYXR1cmF0aW9u
IH0sCisgICAgICAgIHsgQ1NTVmFsdWVMLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9y
aWdpbkNvbG9yQXNIU0wubGlnaHRuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NT
VW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzSFNMLmFscGhhICogMTAwIH0K
KyAgICB9OworCisgICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBzeW1ib2xU
YWJsZSk7CiAgICAgaWYgKCFodWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNh
dHVyYXRpb24gPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NTVmFsdWVTPihhcmdzKTsKKyAgICBh
dXRvIHNhdHVyYXRpb24gPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUp
OwogICAgIGlmICghc2F0dXJhdGlvbikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8g
bGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7CisgICAg
YXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUp
OwogICAgIGlmICghbGlnaHRuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBh
bHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsK
KyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJv
bFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYg
KCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBwYXJz
aW5nLCBjb252ZXJ0IGlkZW50aWZpZXJzIHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29sb3Iu
Ci0KLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNIU0wgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxv
c3N5PEhTTEE8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZlZEh1ZSA9IHJlc29sdmVSZWxh
dGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1
ZUFscGhhPigqaHVlLCBvcmlnaW5Db2xvckFzSFNMLCBbXShhdXRvIGh1ZSkgewotICAgICAgICBy
ZXR1cm4gbm9ybWFsaXplSHVlKGh1ZSk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZFNhdHVy
YXRpb24gPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVMs
IENTU1ZhbHVlTCwgQ1NTVmFsdWVBbHBoYT4oKnNhdHVyYXRpb24sIG9yaWdpbkNvbG9yQXNIU0ws
IFtdKGF1dG8gc2F0dXJhdGlvbikgewotICAgICAgICByZXR1cm4gY2xhbXBUbyhzYXR1cmF0aW9u
LCAwLjAsIDEwMC4wKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVz
b2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUws
IENTU1ZhbHVlQWxwaGE+KCpsaWdodG5lc3MsIG9yaWdpbkNvbG9yQXNIU0wsIFtdKGF1dG8gbGln
aHRuZXNzKSB7Ci0gICAgICAgIHJldHVybiBjbGFtcFRvKGxpZ2h0bmVzcywgMC4wLCAxMDAuMCk7
Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JD
aGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCph
bHBoYSwgb3JpZ2luQ29sb3JBc0hTTCk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFs
aXplSHVlKCpodWUpOworICAgIGF1dG8gbm9ybWFsaXplZFNhdHVyYXRpb24gPSBjbGFtcFRvKCpz
YXR1cmF0aW9uLCAwLjAsIDEwMC4wKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBj
bGFtcFRvKCpsaWdodG5lc3MsIDAuMCwgMTAwLjApOworICAgIGF1dG8gbm9ybWFsaXplZEFscGhh
ID0gY2xhbXBUbygqYWxwaGEsIDAuMCwgMS4wKTsKIAotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8
U1JHQkE8dWludDhfdD4+KEhTTEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
SHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0
PGZsb2F0PihyZXNvbHZlZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEFs
cGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZs
b2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG5vcm1hbGl6ZWRTYXR1cmF0aW9uKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRM
aWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEFscGhhKSB9KTsKIH0KIAog
ZW51bSBjbGFzcyBIU0xGdW5jdGlvbk1vZGUgeyBIU0wsIEhTTEEgfTsKQEAgLTExMjksOCArMTI4
Myw3IEBAIHRlbXBsYXRlPEhTTEZ1bmN0aW9uTW9kZSBNb2RlPiBzdGF0aWMgQ28KICAgICByZXR1
cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRTYXR1
cmF0aW9uKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4obm9ybWFsaXplZEFscGhhKSB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUg
Q29tcG9uZW50VHlwZT4KLXN0cnVjdCBXaGl0ZW5lc3NCbGFja25lc3MgewordGVtcGxhdGU8dHlw
ZW5hbWUgQ29tcG9uZW50VHlwZT4gc3RydWN0IFdoaXRlbmVzc0JsYWNrbmVzcyB7CiAgICAgQ29t
cG9uZW50VHlwZSB3aGl0ZW5lc3M7CiAgICAgQ29tcG9uZW50VHlwZSBibGFja25lc3M7CiB9OwpA
QCAtMTE2NCwzOSArMTMxNywzOCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUhXQlBhcmFt
ZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywg
Y29udGV4dCk7CisgICAgYXV0byBvcmlnaW5Db2xvckFzSFdCID0gb3JpZ2luQ29sb3IudG9Db2xv
clR5cGVMb3NzeTxIV0JBPGZsb2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1i
b2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RFRywgb3Jp
Z2luQ29sb3JBc0hXQi5odWUgfSwKKyAgICAgICAgeyBDU1NWYWx1ZVcsIENTU1VuaXRUeXBlOjpD
U1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hXQi53aGl0ZW5lc3MgfSwKKyAgICAgICAgeyBD
U1NWYWx1ZUIsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hXQi5i
bGFja25lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BF
UkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0IuYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBh
dXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAo
IWh1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gd2hpdGVuZXNzID0gY29uc3Vt
ZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlVz4oYXJncyk7CisgICAgYXV0byB3aGl0ZW5lc3MgPSBj
b25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghd2hpdGVu
ZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBibGFja25lc3MgPSBjb25zdW1l
UGVyY2VudE9ySWRlbnQ8Q1NTVmFsdWVCPihhcmdzKTsKKyAgICBhdXRvIGJsYWNrbmVzcyA9IGNv
bnN1bWVQZXJjZW50T3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFibGFja25l
c3MpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlv
bmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBj
b25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICgh
YWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRp
ZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdpbiBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2lu
Q29sb3JBc0hXQiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7
Ci0KLSAgICBhdXRvIHJlc29sdmVkSHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENT
U1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdp
bkNvbG9yQXNIV0IsIFtdKGF1dG8gaHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVIdWUo
aHVlKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkV2hpdGVuZXNzID0gcmVzb2x2ZVJlbGF0
aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVl
QWxwaGE+KCp3aGl0ZW5lc3MsIG9yaWdpbkNvbG9yQXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRC
bGFja25lc3MgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1
ZVcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmJsYWNrbmVzcywgb3JpZ2luQ29sb3JBc0hX
Qik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVs
PENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwg
b3JpZ2luQ29sb3JBc0hXQik7Ci0KLSAgICBhdXRvIFtub3JtYWxpemVkV2hpdG5lc3MsIG5vcm1h
bGl6ZWRCbGFja25lc3NdID0gbm9ybWFsaXplV2hpdGVuZXNzQmxhY2tuZXNzKHJlc29sdmVkV2hp
dGVuZXNzLCByZXNvbHZlZEJsYWNrbmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9y
bWFsaXplSHVlKCpodWUpOworICAgIGF1dG8gW25vcm1hbGl6ZWRXaGl0bmVzcywgbm9ybWFsaXpl
ZEJsYWNrbmVzc10gPSBub3JtYWxpemVXaGl0ZW5lc3NCbGFja25lc3MoKndoaXRlbmVzcywgKmJs
YWNrbmVzcyk7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JB
PGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZs
b2F0Pihub3JtYWxpemVkV2hpdG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEJs
YWNrbmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1
cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRXaGl0
bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkQmxhY2tuZXNzKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KCphbHBoYSkgfSk7CiB9CiAKIHN0YXRpYyBDb2xvciBwYXJzZUhXQlBhcmFtZXRl
cnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNv
bnRleHQpCkBAIC0xMjQ1LDM3ICsxMzk3LDM3IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZl
TGFiUGFyYW1ldGVycygKICAgICBpZiAoIW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50
PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29s
b3IudG9Db2xvclR5cGVMb3NzeTxMYWI8ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRh
YmxlIHN5bWJvbFRhYmxlIHsKKyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRUeXBlOjpDU1Nf
UEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0xhYi5saWdodG5lc3MgfSwKKyAgICAgICAgeyBDU1NW
YWx1ZUEsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmEgfSwKKyAg
ICAgICAgeyBDU1NWYWx1ZUIsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFz
TGFiLmIgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNF
TlRBR0UsIG9yaWdpbkNvbG9yQXNMYWIuYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRv
IGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAg
ICAgaWYgKCFsaWdodG5lc3MpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFWYWx1
ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVlQT4oYXJncyk7CisgICAgYXV0byBhVmFs
dWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFh
VmFsdWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVO
dW1iZXJPcklkZW50PENTU1ZhbHVlQj4oYXJncyk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1l
TnVtYmVyT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFiVmFsdWUpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFP
cklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0
aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8g
dmFsdWVzIGZyb20gdGhlIG9yaWdpbiBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xh
YiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TGFiPGZsb2F0Pj4oKTsKLQotICAgIGF1
dG8gcmVzb2x2ZWRMaWdodG5lc3MgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFs
dWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmxpZ2h0bmVzcywgb3Jp
Z2luQ29sb3JBc0xhYiwgW10oYXV0byBsaWdodG5lc3MpIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWF4KDAuMCwgbGlnaHRuZXNzKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkQVZhbHVlID0g
cmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1
ZUIsIENTU1ZhbHVlQWxwaGE+KCphVmFsdWUsIG9yaWdpbkNvbG9yQXNMYWIpOwotICAgIGF1dG8g
cmVzb2x2ZWRCVmFsdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBD
U1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmJWYWx1ZSwgb3JpZ2luQ29sb3JB
c0xhYik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBo
YSwgb3JpZ2luQ29sb3JBc0xhYik7CisgICAgYXV0byBub3JtYWxpemVkTGlnaHRuZXNzID0gc3Rk
OjptYXgoMC4wLCAqbGlnaHRuZXNzKTsKIAotICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29s
dmVkQVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQlZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHJlc29sdmVkQWxwaGEpIH07CisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBzdGF0
aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pigq
YVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCpiVmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
KmFscGhhKSB9OwogfQogCiBzdGF0aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQpAQCAt
MTMyMywzOSArMTQ3NSwzOSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUxDSFBhcmFtZXRl
cnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZUw+
KGFyZ3MpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xDSCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JU
eXBlTG9zc3k8TENIQTxmbG9hdD4+KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9s
VGFibGUgeworICAgICAgICB7IENTU1ZhbHVlTCwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdF
LCBvcmlnaW5Db2xvckFzTENILmxpZ2h0bmVzcyB9LAorICAgICAgICB7IENTU1ZhbHVlQywgQ1NT
VW5pdFR5cGU6OkNTU19OVU1CRVIsIG9yaWdpbkNvbG9yQXNMQ0guY2hyb21hIH0sCisgICAgICAg
IHsgQ1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0xDSC5odWUg
fSwKKyAgICAgICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0Us
IG9yaWdpbkNvbG9yQXNMQ0guYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIGxpZ2h0
bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYg
KCFsaWdodG5lc3MpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGNocm9tYSA9IGNv
bnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVlQz4oYXJncyk7CisgICAgYXV0byBjaHJvbWEgPSBj
b25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFjaHJvbWEp
CiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50
PENTU1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJ
ZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFodWUpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1Zh
bHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xDSCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8
TENIQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJl
bGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVDLCBDU1NWYWx1ZUgsIENTU1Zh
bHVlQWxwaGE+KCpsaWdodG5lc3MsIG9yaWdpbkNvbG9yQXNMQ0gsIFtdKGF1dG8gbGlnaHRuZXNz
KSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1heCgwLjAsIGxpZ2h0bmVzcyk7Ci0gICAgfSk7Ci0g
ICAgYXV0byByZXNvbHZlZENocm9tYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NW
YWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhhPigqY2hyb21hLCBvcmln
aW5Db2xvckFzTENILCBbXShhdXRvIGNocm9tYSkgewotICAgICAgICByZXR1cm4gc3RkOjptYXgo
MC4wLCBjaHJvbWEpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRIdWUgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFs
dWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0xDSCwgW10oYXV0byBodWUpIHsKLSAgICAgICAg
cmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBo
YSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NT
VmFsdWVILCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNMQ0gpOworICAgIGF1
dG8gbm9ybWFsaXplZExpZ2h0bmVzcyA9IHN0ZDo6bWF4KDAuMCwgKmxpZ2h0bmVzcyk7CisgICAg
YXV0byBub3JtYWxpemVkQ2hyb21hID0gc3RkOjptYXgoMC4wLCAqY2hyb21hKTsKKyAgICBhdXRv
IG5vcm1hbGl6ZWRIdWUgPSBub3JtYWxpemVIdWUoKmh1ZSk7CiAKLSAgICByZXR1cm4gTENIQTxm
bG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4ocmVzb2x2ZWRDaHJvbWEpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRIdWUp
LCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBoYSkgfTsKKyAgICByZXR1cm4gTENIQTxm
bG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZExpZ2h0bmVzcyksIHN0YXRpY19j
YXN0PGZsb2F0Pihub3JtYWxpemVkQ2hyb21hKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6
ZWRIdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4oKmFscGhhKSB9OwogfQogCiBzdGF0aWMgQ29sb3Ig
cGFyc2VMQ0hQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBjb250ZXh0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjUzKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEt
MDUtMzAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQg
Y2FsYygpIG9uIGNvbXBvbmVudHMgaW5zaWRlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjI3Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQg
dGVzdCBhbmQgcmVzdWx0cyBmb3IgdXBkYXRlIHN1cHBvcnQgaW5jbHVkaW5nIGNhbGMoKSAKKyAg
ICAgICAgYW5kIGNvbXBvbWVudCBwZXJtdXRhdGlvbi4KKworICAgICAgICAqIGZhc3QvY3NzL3Bh
cnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sOgorCiAyMDIxLTA1LTI5ICBD
YW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIElu
dGVybmFscy5tYWluVGhyZWFkU2Nyb2xsaW5nUmVhc29ucyB0byBzeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29s
b3Itc3ludGF4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3
ODI0NikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3lu
dGF4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDIsMjAgKzQyLDI3IEBAIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAyNSBn
IGIgLyAyNSUpIikgaXMgInJnYmEoMjUsIDUxLCA3NywgMC4yNSkiCiBQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
ciAyNSBiIC8gMjUlKSIpIGlzICJyZ2JhKDI2LCAyNSwgNzcsIDAuMjUpIgogUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIHIgZyAyNSAvIDI1JSkiKSBpcyAicmdiYSgyNiwgNTEsIDI1LCAwLjI1KSIKLVBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcg
YiByKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYiBhbHBoYSByIC8gZykiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgciByIC8gcikiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJl
Y2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgZyBiIHIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgYiBhbHBoYSByIC8gZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSByIHIgciAvIHIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIK
LVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIHIgMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCAxMCUp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSAwJSAxMCAxMCkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSAwJSAxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcg
YiByKSIpIGlzICJyZ2IoNTEsIDE1MywgMTAyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAvIGcpIikgaXMg
InJnYmEoMTUzLCAyNTUsIDEwMiwgMC4yKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgciByIC8gcikiKSBpcyAicmdiYSgx
MDIsIDEwMiwgMTAyLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBp
cyAicmdiKDI1NSwgMjU1LCAyNTUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKSIpIGlzICJyZ2Io
NTEsIDc3LCAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBhbHBoYSByIC8gZykiKSBpcyAicmdiYSg3
NywgMTAyLCAyNiwgMC4yKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIHIgciAvIHIpIikgaXMgInJnYmEo
MjYsIDI2LCAyNiwgMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFs
cGhhKSIpIGlzICJyZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMCkiKSBp
cyAicmdiKDEwMiwgMjYsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAgMTAlKSIpIGlzICJyZ2IoMTAyLCAxMCwg
MjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgMCUgMTAgMTApIikgaXMgInJnYigwLCAxMCwgMTApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIHIgMTAlIDEwKSIpIGlzICJyZ2IoMjYsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAx
MCAxMCUpIikgaXMgInJnYigyNiwgMTAsIDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAxMCki
KSBpcyAicmdiKDAsIDEwLCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKHIpIGNhbGMoZykgY2FsYyhiKSkiKSBp
cyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoZyAqIC41KSAxMCkiKSBpcyAicmdi
KDEwMiwgMjYsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCA3
NywgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSArIGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIs
IDEwMiwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApIikgaXMgInJnYigx
MDIsIDUxLCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41IC0gZyAqIC41KSAxMCkiKSBpcyAicmdi
KDEwMiwgNTEsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxjKHIpIGNhbGMoZykgY2FsYyhiKSAv
IGNhbGMoYWxwaGEpKSIpIGlzICJyZ2JhKDI2LCA1MSwgNzcsIDAuNCkiCiBQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByZWQgZyBi
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgbCBnIGIpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20g
cmViZWNjYXB1cnBsZSBoIGcgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKQEAgLTkxLDE0ICs5
OCwyNCBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCAyNSUgbCAvIGFscGhhKSIpIGlzICJyZ2JhKDM5LCA1MSwgNjQsIDAuNCkiCiBQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCBzIDI1JSAvIGFscGhhKSIpIGlzICJyZ2JhKDMyLCA2MywgOTUsIDAu
NCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIGwgLyAuMjUpIikgaXMgInJnYmEoMjYsIDUxLCA3Nywg
MC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20g
cmViZWNjYXB1cnBsZSBoIGwgcykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxw
aGEgbCAvIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBsIC8gcykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSBy
Z2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9t
IHJlYmVjY2FwdXJwbGUgaCBsIHMpIikgaXMgInJnYigxMjgsIDc3LCAxNzkpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBh
bHBoYSBsIC8gcykiKSBpcyAicmdiYSgxMDIsIDAsIDIwNCwgMC41KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBsIC8g
bCkiKSBpcyAicmdiYSgxMDIsIDYxLCAxNDMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8g
YWxwaGEpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgcyki
KSBpcyAicmdiKDEwMSwgMTI2LCAxNTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAvIHMp
IikgaXMgInJnYmEoMzEsIDUxLCA3MiwgMC40OTQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8g
bCkiKSBpcyAicmdiYSg0MSwgNTEsIDYyLCAwLjIwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBo
YSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDYxLCAxMDEsIDE0MywgMC40KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIHMg
aCBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgcyBzIHMgLyBzKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBzIGggbCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBzIHMgcyAvIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFs
cGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBj
YWxjKGgpIGNhbGMocykgY2FsYyhsKSkiKSBpcyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgY2FsYyhoKSBjYWxjKHMpIGNhbGMobCkgLyBjYWxjKGFscGhhKSkiKSBpcyAicmdi
YSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIDEwJSBz
IGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0xNDAsMTQgKzE1NywyNCBAQCBQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCAyNSUg
YiAvIGFscGhhKSIpIGlzICJyZ2JhKDY0LCA3MCwgNzcsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCB3IDI1JSAvIGFscGhhKSIpIGlzICJyZ2JhKDI2LCAxMDcsIDE5MSwgMC40KSIKIFBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIHcgYiAvIC4yNSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjI1KSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxl
IGggYiB3KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYikiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggdyB3IC8gdykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBoIGFscGhhIHcgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGggdyB3IC8gdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwg
NDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBs
ZSBoIGIgdykiKSBpcyAicmdiKDE1MywgMTAyLCAyMDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYiki
KSBpcyAicmdiYSgyMTMsIDIxMywgMjEzLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCB3IHcgLyB3KSIpIGlzICJy
Z2JhKDEyOCwgNTEsIDIwNCwgMC4yKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBp
cyAicmdiKDEyOCwgMTI4LCAxMjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYiB3KSIpIGlzICJyZ2Io
MTc4LCAyMDMsIDIyOSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdi
YSgxMDIsIDE2NCwgMjI5LCAwLjY5OCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcgLyB3KSIpIGlz
ICJyZ2JhKDI2LCAxMjYsIDIyOSwgMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhh
IC8gYWxwaGEpIikgaXMgInJnYmEoMTAyLCAxMjcsIDE1MywgMC40KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIHcgaCBiKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYiBiIGIgLyBiKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9t
IHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUg
YWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSB3IGIgaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBiIGIgYiAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBo
IGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFs
cGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgp
IGNhbGModykgY2FsYyhiKSkiKSBpcyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikgLyBjYWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwg
NTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3
Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1
cnBsZSBoIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIDEwJSB3IGIpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0xODIsMTQgKzIwOSwxNiBAQCBQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCAzNSBiIC8gYWxwaGEp
IikgaXMgImxhYigyNSUgMzUgNTAgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSAzNSAvIGFscGhh
KSIpIGlzICJsYWIoMjUlIDIwIDM1IC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYiAvIC4zNSki
KSBpcyAibGFiKDI1JSAyMCA1MCAvIDAuMzUpIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYiBhKSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihm
cm9tIGxhYigyNSUgMjAgNTApIGwgYiBhKSIpIGlzICJsYWIoMjUlIDUwIDIwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBs
IGEgYSAvIGEpIikgaXMgImxhYigyNSUgMjAgMjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYiBhKSIpIGlz
ICJsYWIoMjUlIDUwIDIwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYSAvIGEpIikgaXMgImxhYigyNSUg
MjAgMjApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYSAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1Q
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAy
MCA1MCkgbCBhIGEgLyBhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEg
YWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIg
YSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFscGhhIGEgLyBiKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSBhIC8gYSkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgY2FsYyhsKSBjYWxjKGEpIGNhbGMoYikpIikgaXMg
ImxhYigyNSUgMjAgNTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIpIC8g
Y2FsYyhhbHBoYSkpIikgaXMgImxhYigyNSUgMjAgNTAgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAlIDEw
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAgMTAlKSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihm
cm9tIGxhYigyNSUgMjAgNTApIDEwIGEgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKQEAgLTIz
MSwxMCArMjYwLDIyIEBAIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICIK
IFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAl
IDQ1IDMwIC8gNDAlKSBsIGMgMjUgLyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSAyNSAvIDAuNCki
CiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcw
JSA0NSAzMCAvIDQwJSkgbCBjIDI1ZGVnIC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgMjUgLyAw
LjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxj
aCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBoIC8gLjI1KSIpIGlzICJsY2goNzAlIDQ1IDMwIC8gMC4y
NSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNo
KDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBhbHBoYSBjIGggLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAl
KSBhbHBoYSBjIGggLyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFs
cGhhIGMgaCAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMg
aCAvIGwpIikgaXMgImxjaCgxMDAlIDQ1IDMwIC8gMC43KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGMgYyAvIGFscGhh
KSIpIGlzICJsY2goNzAlIDQ1IDQ1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSkiKSBpcyAi
bGNoKDEwMCUgNDUgMzApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgYyAvIGFscGhhKSIpIGlzICJsY2goMTAw
JSA0NSA0NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZy
b20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBoIC8gbCkiKSBpcyAibGNoKDQwJSA0NSAz
MCAvIDAuNykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZy
b20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSA0
NSAvIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZy
b20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgImxjaCg0MCUg
NDUgMzAgLyAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgYyAvIGFscGhhKSIpIGlzICJsY2go
NDAlIDQ1IDQ1IC8gMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBoIGwgYyAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzApIGMgYyBjIC8gYykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUg
MzAgLyA0MCUpIGggbCBjIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAv
IDQwJSkgYyBjIGMgLyBjKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFs
cGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkg
Y2FsYyhsKSBjYWxjKGMpIGNhbGMoaCkpIikgaXMgImxjaCg3MCUgNDUgMzApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGNhbGMobCkgY2FsYyhjKSBjYWxjKGgpIC8gY2FsYyhhbHBoYSkpIikgaXMgImxjaCg3MCUg
NDUgMzAgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aChmcm9tIGxjaCg3MCUgNDUgMzApIGwgMTAlIGgpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0
NSAzMCkgbCBjIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSAxMCBjIGgpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0yNDQsNiArMjg1LDIxIEBAIFBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsaWdodG5lc3MgYyBoKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIHggYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgog
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUg
NDUgMzApIGwgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHZhcigtLWJnLWNvbG9yKSByIGcgYiAvIDgw
JSkiKSBpcyAicmdiYSgwLCAwLCAyNTUsIDAuOCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKGZyb20gdmFyKC0tY29sb3IpIGNhbGMobCAvIDIpIGMgaCkiKSBp
cyAibGNoKDIzLjEzODk3MSUgNjcuOTg5NzE2IDEzNC4zOTEyNSkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gdmFyKC0tY29sb3IpIGNhbGMociAqIC4z
ICsgZyAqIC41OSArIGIgKiAuMTEpIGNhbGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEpIGNh
bGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEpKSIpIGlzICJyZ2IoNzYsIDc2LCA3NikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gdmFyKC0tY29s
b3IpIGwgMCBoKSIpIGlzICJsY2goNDYuMjc3OTQzJSAwIDEzNC4zOTEyNSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gaW5kaWFucmVkIDI1NSBnIGIp
IikgaXMgInJnYigyNTUsIDkyLCA5MikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHNsKGZyb20gdmFyKC0tYWNjZW50KSBjYWxjKGggKyAxODBkZWcpIHMgbCkiKSBp
cyAicmdiKDE3OCwgMzIsIDQwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIDEwMCUpIikgaXMgImxhYig2Mi43
NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAq
IDAuOCkpIikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15
Y29sb3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAtIDIwJSkpIikgaXMgImxhYig2Mi43NTE5MjMlIDUy
LjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgMCAwKSIpIGlzICJsYWIoNjIuNzUx
OTIzJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChm
cm9tIHBlcnUgY2FsYyhsICogMC44KSBjIGgpIikgaXMgImxjaCg0OS44MDEzOCUgNTQuMDAzMjk2
IDYzLjY4MDMxNykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiTENI
KGZyb20gdmFyKC0tYWNjZW50KSBsIGMgY2FsYyhoICsgMTgwZGVnKSkiKSBpcyAibGNoKDY1LjQ5
NDczJSAzOS40NDY5MDMgMTAuMTE0NDcxKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goZnJvbSB2YXIoLS1teWNvbG9yKSBsIDAgaCkiKSBpcyAibGNoKDYyLjc1
MTkyMyUgMCAzMjYuOTYxMTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInZhcigtLW15Z3JheSkiKSBpcyAibGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLW15Z3Jh
eSkgbCAzMCBoKSIpIGlzICJsY2goNjIuNzUxOTIzJSAzMCAzMjYuOTYxMTIpIgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4Lmh0
bWwJKHJldmlzaW9uIDI3ODI0NikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVs
YXRpdmUtY29sb3Itc3ludGF4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSwxNSBAQAog
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDU1NSZWxhdGl2ZUNvbG9y
U3ludGF4RW5hYmxlZD10cnVlIF0gLS0+CiA8aHRtbD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAg
IGh0bWwgeyAKKyAgICAgICAgICAgIC0tYmctY29sb3I6IGJsdWU7CisgICAgICAgICAgICAtLWNv
bG9yOiBncmVlbjsKKyAgICAgICAgICAgIC0tYWNjZW50OiBsaWdodHNlYWdyZWVuOworICAgICAg
ICAgICAgLS1teWNvbG9yOiBvcmNoaWQ7CisgICAgICAgICAgICAtLW15Z3JheTogbGNoKGZyb20g
dmFyKC0tbXljb2xvcikgbCAwIGgpOworICAgICAgICB9CisgICAgPC9zdHlsZT4KIDwvaGVhZD4K
IDxib2R5PgogPHNjcmlwdD4KQEAgLTk1LDIzICsxMDQsMzIgQEAKICAgICB0ZXN0Q29tcHV0ZWQo
YHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMjUgYiAvIDI1JSlgLCBgcmdiYSgy
NiwgMjUsIDc3LCAwLjI1KWApOwogICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgciBnIDI1IC8gMjUlKWAsIGByZ2JhKDI2LCA1MSwgMjUsIDAuMjUpYCk7
CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dl
ZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmViZWNjYXB1cnBsZSBnIGIgcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDAsIDAs
IDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgciBy
IC8gcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmViZWNjYXB1cnBsZSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBnIGIgcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBhbHBoYSByIC8gZylgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgciByIHIgLyByKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhh
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0KLSAgICAvLyBUZXN0aW5nIGludmFsaWQgbWl4ZXMg
b2YgbnVtYmVyIGFuZCBwZXJjZW50YWdlCi0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJl
Y2NhcHVycGxlIHIgMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIDAlIDEwIDEwKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRl
c3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIDAlIDEwIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgLy8g
VGVzdGluZyBwZXJtdXRhdGlvbi4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2Fw
dXJwbGUgZyBiIHIpYCwgYHJnYig1MSwgMTUzLCAxMDIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoMTUzLCAyNTUsIDEw
MiwgMC4yKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIg
ciAvIHIpYCwgYHJnYmEoMTAyLCAxMDIsIDEwMiwgMC40KWApOworICAgIHRlc3RDb21wdXRlZChg
cmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2Io
MjU1LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIGcgYiByKWAsIGByZ2IoNTEsIDc3LCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpYCwgYHJn
YmEoNzcsIDEwMiwgMjYsIDAuMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIHIgciByIC8gcilgLCBgcmdiYSgyNiwgMjYsIDI2LCAwLjEpYCk7
CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBo
YSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNClgKTsKKwor
ICAgIC8vIFRlc3RpbmcgbWl4ZXMgb2YgbnVtYmVyIGFuZCBwZXJjZW50YWdlLiAoVGhlc2Ugd291
bGQgbm90IGJlIGFsbG93ZWQgaW4gdGhlIG5vbi1yZWxhdGl2ZSBzeW50YXgpLgorICAgIHRlc3RD
b21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMClgLCBgcmdiKDEwMiwgMjYs
IDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEw
JSlgLCBgcmdiKDEwMiwgMTAsIDI2KWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmVi
ZWNjYXB1cnBsZSAwJSAxMCAxMClgLCBgcmdiKDAsIDEwLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAlIDEwKWAsIGByZ2IoMjYs
IDI2LCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIHIgMTAgMTAlKWAsIGByZ2IoMjYsIDEwLCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIDAlIDEwIDEwKWAsIGByZ2IoMCwgMTAs
IDEwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQo
YHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikpYCwgYHJnYigx
MDIsIDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxl
IHIgY2FsYyhnICogLjUpIDEwKWAsIGByZ2IoMTAyLCAyNiwgMTApYCk7CisgICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUpIDEwKWAsIGByZ2IoMTAy
LCA3NywgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIg
Y2FsYyhiICogLjUgKyBnICogLjUpIDEwKWAsIGByZ2IoMTAyLCAxMDIsIDEwKWApOworICAgIHRl
c3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41IC0gZyAqIC41
KSAxMClgLCBgcmdiKDEwMiwgNTEsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41IC0gZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgNTEs
IDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikgLyBjYWxjKGFscGhhKSlgLCBgcmdiYSgyNiwgNTEs
IDc3LCAwLjQpYCk7CiAKICAgICAvLyBUZXN0aW5nIGludmFsaWQgY29tcG9uZW50IG5hbWVzCiAg
ICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHJlZCBnIGIpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKQEAgLTE2MSwxNSArMTc5LDI5IEBACiAgICAgdGVzdENvbXB1dGVkKGBo
c2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHMgMjUlIC8gYWxwaGEpYCwgYHJnYmEo
MzIsIDYzLCA5NSwgMC40KWApOwogICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCBzIGwgLyAuMjUpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC4yNSlgKTsK
IAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxvd2Vk
IHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSBy
ZWJlY2NhcHVycGxlIGggbCBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1
dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMCwgMCwg
MCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwg
LyBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSBy
ZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBs
IHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
bCBsIC8gbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMg
bWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcylg
LCBgcmdiKDEyOCwgNzcsIDE3OSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVj
Y2FwdXJwbGUgaCBhbHBoYSBsIC8gcylgLCBgcmdiYSgxMDIsIDAsIDIwNCwgMC41KWApOworICAg
IHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpYCwgYHJnYmEo
MTAyLCA2MSwgMTQzLCAwLjQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2Nh
cHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgcylg
LCBgcmdiKDEwMSwgMTI2LCAxNTIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBzKWAsIGByZ2JhKDMxLCA1MSwgNzIsIDAu
NDk0KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBsIGwgLyBsKWAsIGByZ2JhKDQxLCA1MSwgNjIsIDAuMjA0KWApOworICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFs
cGhhKWAsIGByZ2JhKDYxLCAxMDEsIDE0MywgMC40KWApOworCisgICAgLy8gVGVzdGluZyBpbnZh
bGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBo
c2woZnJvbSByZWJlY2NhcHVycGxlIHMgaCBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAg
dGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIHMgcyBzIC8gcylgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBo
IGggaCAvIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChm
cm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAw
LCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgcyBoIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhz
bChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHMgcyBzIC8gcylgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBo
c2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhh
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgor
ICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGMocykg
Y2FsYyhsKSlgLCBgcmdiKDEwMiwgNTEsIDE1MylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyhzKSBjYWxjKGwpIC8gY2Fs
YyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBp
bnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUg
aCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTIyOCwxNSArMjYwLDI5IEBACiAg
ICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgMjUl
IC8gYWxwaGEpYCwgYHJnYmEoMjYsIDEwNywgMTkxLCAwLjQpYCk7CiAgICAgdGVzdENvbXB1dGVk
KGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgYiAvIC4yNSlgLCBgcmdiYSgy
NiwgNTEsIDc3LCAwLjI1KWApOwogCi0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5jbGVh
ciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0ZXN0
Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBiIHcpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3
IC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20g
cmViZWNjYXB1cnBsZSBoIHcgdyAvIHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0
Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBoIGIgdylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RD
b21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSB3IC8gYilg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcgLyB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAg
dGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFs
cGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICAvLyBUZXN0aW5nIHZhbGlk
IHBlcm11dGF0aW9uICh0eXBlcyBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggYiB3KWAsIGByZ2IoMTUzLCAxMDIsIDIwNClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgyMTMs
IDIxMywgMjEzLCAwLjQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVy
cGxlIGggdyB3IC8gdylgLCBgcmdiYSgxMjgsIDUxLCAyMDQsIDAuMilgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGBy
Z2IoMTI4LCAxMjgsIDEyOClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggYiB3KWAsIGByZ2IoMTc4LCAyMDMsIDIyOSlgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIp
YCwgYHJnYmEoMTAyLCAxNjQsIDIyOSwgMC42OTgpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2Io
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgdyAvIHcpYCwgYHJnYmEoMjYsIDEyNiwg
MjI5LCAwLjEpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMTAyLCAxMjcsIDE1MywgMC40
KWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBt
YXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIHcgaCBiKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2Nh
cHVycGxlIGIgYiBiIC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRl
ZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGggaCAvIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEg
YWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChg
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgdyBiIGgpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGIgYiBiIC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAg
ICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmVi
ZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGModykgY2FsYyhiKSlgLCBgcmdiKDEwMiwgNTEsIDE1Mylg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNh
bGMoaCkgY2FsYyh3KSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3Nywg
MC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0
ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKQEAgLTI4OCwxNiArMzM0LDIyIEBACiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIo
MjUlIDIwIDUwIC8gNDAlKSBsIGEgMzUgLyBhbHBoYSlgLCBgbGFiKDI1JSAyMCAzNSAvIDAuNClg
KTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSBi
IC8gLjM1KWAsIGBsYWIoMjUlIDIwIDUwIC8gMC4zNSlgKTsKIAotICAgIC8vIFRlc3RpbmcgcGVy
bXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxv
dyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSlg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24g
KHR5cGVzIG1hdGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAp
IGwgYiBhKWAsIGBsYWIoMjUlIDUwIDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
bGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKWAsIGBsYWIoMjUlIDIwIDIwKWApOworICAgIHRlc3RD
b21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpYCwgYGxhYigyNSUg
NTAgMjApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAl
KSBsIGEgYSAvIGEpYCwgYGxhYigyNSUgMjAgMjApYCk7CisKKyAgICAvLyBUZXN0aW5nIGludmFs
aWQgcGVybXV0YXRpb24gKHR5cGVzIGRvbid0IG1hdGNoKS4KICAgICB0ZXN0Q29tcHV0ZWQoYGxh
Yihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYSAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBhIC8gYSlg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1
JSAyMCA1MCkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0g
ICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSlgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAy
MCA1MCAvIDQwJSkgbCBhbHBoYSBhIC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRl
c3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGEgLyBhKWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIw
IDUwIC8gNDAlKSBsIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
IAorICAgIC8vIFRlc3Rpbmcgd2l0aCBjYWxjKCkuCisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwKSBjYWxjKGwpIGNhbGMoYSkgY2FsYyhiKSlgLCBgbGFiKDI1JSAyMCA1
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGNh
bGMobCkgY2FsYyhhKSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpYCwgYGxhYigyNSUgMjAgNTAgLyAw
LjQpYCk7CisKICAgICAvLyBUZXN0aW5nIGludmFsaWQgdmFsdWVzLgogICAgIHRlc3RDb21wdXRl
ZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAgMTAlKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0zNTUsMTEgKzQwNywyOCBAQAogICAgIHRlc3RDb21w
dXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIDI1ZGVnIC8gYWxwaGEpYCwg
YGxjaCg3MCUgNDUgMjUgLyAwLjQpYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2go
NzAlIDQ1IDMwIC8gNDAlKSBsIGMgaCAvIC4yNSlgLCBgbGNoKDcwJSA0NSAzMCAvIDAuMjUpYCk7
CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dl
ZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20g
bGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAg
IHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEp
YCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3
MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAg
ICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAv
IGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2YWxpZCBwZXJt
dXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIC8vIE5PVEU6ICdjJyBpcyBhIHZhaWxkIGh1ZSwg
YXMgaHVlIGlzIDxhbmdsZT58PG51bWJlcj4uCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBsKWAsIGBsY2goMTAwJSA0NSAzMCAvIDAuNylgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgYyBjIC8gYWxwaGEp
YCwgYGxjaCg3MCUgNDUgNDUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAl
IDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgbGNoKDEwMCUgNDUgMzApYCk7CisgICAgdGVz
dENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGMgLyBhbHBoYSlgLCBg
bGNoKDEwMCUgNDUgNDUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1
IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKWAsIGBsY2goNDAlIDQ1IDMwIC8gMC43KWApOworICAg
IHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIGMgLyBhbHBo
YSlgLCBgbGNoKDcwJSA0NSA0NSAvIDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKWAsIGBsY2goNDAlIDQ1IDMw
IC8gMC40KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQw
JSkgYWxwaGEgYyBjIC8gYWxwaGEpYCwgYGxjaCg0MCUgNDUgNDUgLyAwLjQpYCk7CisKKyAgICAv
LyBUZXN0aW5nIGludmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIGRvbid0IG1hdGNoKS4KKyAgICB0
ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGggbCBjIC8gYWxwaGEpYCwgYHJn
YmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGMgYyBjIC8gYylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChg
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAz
MCAvIDQwJSkgaCBsIGMgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RD
b21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYyBjIGMgLyBjKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMw
IC8gNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZy
b20gbGNoKDcwJSA0NSAzMCkgY2FsYyhsKSBjYWxjKGMpIGNhbGMoaCkpYCwgYGxjaCg3MCUgNDUg
MzApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBj
YWxjKGwpIGNhbGMoYykgY2FsYyhoKSAvIGNhbGMoYWxwaGEpKWAsIGBsY2goNzAlIDQ1IDMwIC8g
MC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0
ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgMTAlIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKQEAgLTM3Myw2ICs0NDIsNDQgQEAKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3
MCUgNDUgMzApIGxpZ2h0bmVzcyBjIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIHggYyBoKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGcgYilg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisKKyAgICAvLyBTcGVjIGV4YW1wbGVzOgorICAgIC8v
IEV4YW1wbGUgMTEuCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSB2YXIoLS1iZy1jb2xvcikg
ciBnIGIgLyA4MCUpYCwgYHJnYmEoMCwgMCwgMjU1LCAwLjgpYCk7CisgICAgCisgICAgLy8gRXhh
bXBsZSAxMi4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIHZhcigtLWNvbG9yKSBjYWxjKGwg
LyAyKSBjIGgpYCwgYGxjaCgyMy4xMzg5NzElIDY3Ljk4OTcxNiAxMzQuMzkxMjUpYCk7CisgICAg
CisgICAgLy8gRXhhbXBsZSAxMy4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHZhcigtLWNv
bG9yKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAu
NTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSlgLCBgcmdiKDc2
LCA3NiwgNzYpYCkKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIHZhcigtLWNvbG9yKSBsIDAg
aClgLCBgbGNoKDQ2LjI3Nzk0MyUgMCAxMzQuMzkxMjUpYCkKKworICAgIC8vIEV4YW1wbGUgMTQu
CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSBpbmRpYW5yZWQgMjU1IGcgYilgLCBgcmdiKDI1
NSwgOTIsIDkyKWApOworCisgICAgLy8gRXhhbXBsZSAxNS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhz
bChmcm9tIHZhcigtLWFjY2VudCkgY2FsYyhoICsgMTgwZGVnKSBzIGwpYCwgYHJnYigxNzgsIDMy
LCA0MClgKTsKKworICAgIC8vIEV4YW1wbGUgMTYuCisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJv
bSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIDEwMCUpYCwgYGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAy
IC0zNC4xMTcyODMpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSB2YXIoLS1teWNvbG9y
KSBsIGEgYiAvIGNhbGMoYWxwaGEgKiAwLjgpKWAsIGBsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAt
MzQuMTE3MjgzIC8gMC44KWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXlj
b2xvcikgbCBhIGIgLyBjYWxjKGFscGhhIC0gMjAlKSlgLCBgbGFiKDYyLjc1MTkyMyUgNTIuNDU4
MDIgLTM0LjExNzI4MyAvIDAuOClgKTsKKyAgICAKKyAgICAvLyBFeGFtcGxlIDE3LgorICAgIHRl
c3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCAwIDApYCwgYGxhYig2Mi43NTE5
MjMlIDAgMClgKTsKKworICAgIC8vIEV4YW1wbGUgMTguCisgICAgdGVzdENvbXB1dGVkKGBsY2go
ZnJvbSBwZXJ1IGNhbGMobCAqIDAuOCkgYyBoKWAsIGBsY2goNDkuODAxMzglIDU0LjAwMzI5NiA2
My42ODAzMTcpYCk7CisKKyAgICAvLyBFeGFtcGxlIDE5LgorICAgIHRlc3RDb21wdXRlZChgTENI
KGZyb20gdmFyKC0tYWNjZW50KSBsIGMgY2FsYyhoICsgMTgwZGVnKSlgLCBgbGNoKDY1LjQ5NDcz
JSAzOS40NDY5MDMgMTAuMTE0NDcxKWApOworCisgICAgLy8gRXhhbXBsZSAyMC4KKyAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIHZhcigtLW15Y29sb3IpIGwgMCBoKWAsIGBsY2goNjIuNzUxOTIz
JSAwIDMyNi45NjExMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHZhcigtLW15Z3JheSlgLCBgbGNo
KDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2
YXIoLS1teWdyYXkpIGwgMzAgaClgLCBgbGNoKDYyLjc1MTkyMyUgMzAgMzI2Ljk2MTEyKWApOwor
ICAgIAogPC9zY3JpcHQ+CiAgICAgCiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430141</attachid>
            <date>2021-05-30 11:56:25 -0700</date>
            <delta_ts>2021-05-30 12:03:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210530115624.patch</filename>
            <type>text/plain</type>
            <size>88750</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5kIHVwZGF0ZWQgdGVzdCBj
YXNlcyBpbiBleGlzdGluZyBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5o
dG1sCisKKyAgICAgICAgVXBkYXRlcyBzdXBwb3J0IGZvciB0aGUgQ1NTIENvbG9yIDUgIlJlbGF0
aXZlIENvbG9yIFN5bnRheCIgdG8gc3VwcG9ydAorICAgICAgICBib3RoIGNhbGMoKSBvbiBjb21w
b25lbnRzIGFuZCBjb21wb25lbnQgcGVybXV0YXRpb25zIHdpdGhpbiB0aGUgc3ludGF4LgorCisg
ICAgICAgIFRoaXMgYWxsb3dzIGZvciB0aGluZ3MgbGlrZToKKyAgICAgICAgCisgICAgICAgICAg
ICBiYWNrZ3JvdW5kOiBsY2goZnJvbSB2YXIoLS1wcmltYXJ5LWNvbG9yKSA2MCUgY2FsYyhjICog
MC44KSBoKTsKKworICAgICAgICAgICAgb3IKKworICAgICAgICAgICAgYmFja2dyb3VuZDogbGNo
KGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcik7CisKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmss
IHRoZSBjYWxjKCkgaW5mcmFzdHJ1Y3R1cmUgbm93IHN1cHBvcnRzIHBhc3NpbmcgYSBDU1NDYWxj
U3ltYm9sVGFibGUKKyAgICAgICAgd2hpY2ggYWxsb3dzIHRoZSBsb2dpYyBpbiB0aGUgcGFyc2Vy
IHRvIGxvb2t1cCB1bmtub3duIGlkZW50aWZpZXJzIHdoZW4gcGFyc2luZyBhIHZhbHVlLgorICAg
ICAgICBUaGUgcmVsYXRpdmUgY29sb3Igc3ludGF4IHBhcnNlcnMgY2FuIHRoZW4gYnVpbGQgYW4g
YXBwcm9wcmlhdGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIGZpbGxlZAorICAgICAgICB3aXRoIHRoZSBj
b21wb25lbnRzIG9mIHRoZSBvcmlnaW4gY29sb3IuCisKKyAgICAgICAgU2luY2UgdGhlc2UgY2Fs
YygpIHZhbHVlcyBhcmUgbm90IHNlcmlhbGl6ZWQsIHRoaXMgY2FuIGFsbCBoYXBwZW4gaW4gdGhl
IHBhcnNlciwgYnV0IGlmCisgICAgICAgIHdlIHRvIGJlIGFibGUgc2VyaWFsaXplIHRoZW0gaW4g
dGhlIGZ1dHVyZSwgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSBjb3VsZCBiZSB1cGRhdGVkCisg
ICAgICAgIHRvIHN0b3JlIHRoZSBzeW1ib2wgbmFtZSBpbiBhZGRpdGlvbiB0byBzdG9yaW5nIHRo
ZSB2YWx1ZSBhbmQgdHlwZSAob3Igd2UgY291bGQgd2UgY291bGQKKyAgICAgICAgYWRkIGEgbmV3
IG5vZGUgZm9yIGl0KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxj
U3ltYm9sVGFibGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaDogQWRkZWQuCisgICAgICAgIEFkZCBDU1NDYWxjU3ltYm9sVGFibGUgd2hpY2ggY29u
dGFpbnMgYSBtYXBwaW5nIGZyb20gQ1NTVmFsdWVJRCB0byBDU1NVbml0VHlwZS9kb3VibGUgcGFp
cnMuCisKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgV2hlbiB0cnlpbmcgdG8gY29uc3RydWN0IGEgdmFsdWUgbm9kZSwgaWYg
dGhlIHRva2VuIGlzIGEgaWRlbnRpZmllciwgdXNlIHRoZSBuZXcKKyAgICAgICAgc3ltYm9sIHRh
YmxlIHRvIGxvb2sgdXAgYSB0eXBlL3ZhbHVlIHRvIHVzZSBpbnN0ZWFkLiBVc2UgYSBzd2l0Y2gg
dG8gbWFrZSB0aGluZ3MKKyAgICAgICAgYSBiaXQgbW9yZSBjbGVhciB0aGF0IGRpZmZlcmVudGlh
dGlvbiBpcyBiZWluZyBkb25lIGJhc2VkIG9uIHRva2VuIHR5cGUuCisKKyAgICAgICAgKiBjc3Mv
Y2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaDoKKyAgICAgICAgQWRkIHJlZmVyZW5j
ZSB0byBhIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyLiBUaGUgcGFyc2VyIHNob3Vs
ZCBvbmx5IGV2ZXIgYmUgdXNlZAorICAgICAgICBvbiB0aGUgc3RhY2ssIHNvIHRoaXMgd29ya3Mg
d2VsbCBhbmQgYWxsb3dzIHVzIHRvIGF2b2lkIGNvcHlpbmcgdGhlIHRhYmxlLgorCisgICAgICAg
ICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNW
YWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjVmFsdWUuaDoKKyAgICAg
ICAgUGFzcyB0aGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIHRvIHRoZSBwYXJzZXIgaWYgb25lIGlzIHBy
b3ZpZGVkLiBBbiBvdmVybG9hZCB3YXMgdXNlZAorICAgICAgICB0byBhdm9pZCAjaW5jbHVkaW5n
IENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIHRoZSBoZWFkZXIganVzdCB0byBhZGQgYSBkZWZhdWx0
IHZhbHVlLgorCisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgIEdpdmUgYSBj
b25jcmV0ZSBiYXNlIG9mIHVpbnQxNl90IHRvIGFsbG93IGl0IHRvIGJlIGZvcndhcmQgZGVjbGFy
ZWQgYW5kIGFkZCBEZWZhdWx0SGFzaAorICAgICAgICBhbmQgSGFzaFRyYWl0cyB0byBhbGxvdyBp
dCB0byBiZSB1c2VkIHdpdGggSGFzaFRhYmxlLiBUaGVzZSBtYXRjaCB0aGUgZGVmaW5pdGlvbiBv
ZgorICAgICAgICBDU1NQcm9wZXJ0eUlELgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpDYWxjUGFyc2VyOjpDYWxjUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZU51bWJlclJhdyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVQZXJjZW50V29ya2VyU2FmZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVBbmds
ZVJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVBbmdsZVdvcmtlclNhZmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpjb25zdW1lQW5nbGVPclBlcmNlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSHVlT3JJZGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1i
ZXJPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6
Y29uc3VtZVBlcmNlbnRPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VySGVscGVyczo6Y29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVs
YXRpdmVSR0IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpw
YXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIU0xQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2ZUhXQlBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZVJl
bGF0aXZlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVMQ0hQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6ZXh0cmFjdENoYW5uZWxWYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnJlc29sdmVSZWxh
dGl2ZUNvbG9yQ2hhbm5lbCk6IERlbGV0ZWQuCisgICAgICAgIFJld29yayByZWxhdGl2ZSBjb2xv
ciBzeW50YXggcGFyc2luZyB0byBhbGxvdyBwZXJtdXRhdGlvbiBvZiBjaGFubmVsIHN5bWJvbHMK
KyAgICAgICAgYW5kIHVzZSBvZiB0aGUgY2FsYygpIHN5bWJvbCB0YWJsZSBzdXBwb3J0IHRvIGFs
bG93IHBhc3NpbmcgaW4gdGhlIGNoYW5uZWxzLgorICAgICAgICBUaGlzIG1ha2VzIHRoZSByZWxh
dGF0aXZlIGNvbG9yIHN5bnRheCB2YXJpYW50cyBtdWNoIGNsb3NlciB0byB0aGUgbm9ybWFsCisg
ICAgICAgIHZhcmlhbnRzICh3aXRoIHRoZSBleGNlcHRpb24gb2YgcGFzc2luZyB0aGUgc3ltYm9s
IHRhYmxlKSBhbmQgYSBzdWJzZXF1ZW50CisgICAgICAgIGNoYW5nZSB3aWxsIGF0dGVtcHQgdG8g
bWVyZ2UgdGhlbSBmdXJ0aGVyLgorCiAyMDIxLTA1LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV1RGOjpPcHRpb25hbCBzeW5vbnltIGZvciBzdGQ6
Om9wdGlvbmFsLCB1c2luZyB0aGF0IGNsYXNzIHRlbXBsYXRlIGRpcmVjdGx5IGluc3RlYWQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzgyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODMxLDYgKzgzMSw3IEBAIGNzcy9jYWxjL0NTU0Nh
bGNJbnZlcnROb2RlLmNwcAogY3NzL2NhbGMvQ1NTQ2FsY05lZ2F0ZU5vZGUuY3BwCiBjc3MvY2Fs
Yy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNQcmltaXRpdmVWYWx1
ZU5vZGUuY3BwCitjc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuY3BwCiBjc3MvY2FsYy9DU1ND
YWxjVmFsdWUuY3BwCiBjc3MvcGFyc2VyL0NTU0F0UnVsZUlELmNwcAogY3NzL3BhcnNlci9DU1NE
ZWZlcnJlZFBhcnNlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NDA3Nyw2ICs0MDc3LDcgQEAKIAkJQkM2OTMyNzQwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2lu
ZG93QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM2OTMyNzIwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2luZG93QmFzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNkQ0NEVEMEMwN0YyRUQw
MDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ0NEVCMEMwN0YyRUQwMDcyRDJDOSAvKiBKU0hUTUxF
bWJlZEVsZW1lbnQuaCAqLzsgfTsKIAkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9s
bFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFD
IC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xU
YWJsZS5oICovOyB9OwogCQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBD
NEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDcwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0
dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLzsgfTsKIAkJ
QkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzREMEM0RUIzMDQwMDgz
Mjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MzA0LDYgKzE0MzA1LDggQEAKIAkJQkM2RDQ0RUIwQzA3
RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNkVCODQ1MjYyNjZCNjEwMDMyMjVBNyAvKiBDb2xvckx1bWluYW5j
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckx1bWluYW5jZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3lt
Ym9sVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxj
U3ltYm9sVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRFQTkxRTAwODMyODVG
IC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSGVs
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0MEM0RUIyQzYwMDgz
Mjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzk1Niw2ICsyNzk1OSw4IEBACiAJCQkJQkNGMTY0NUYyNjYyQTI4
RDAwMDJGN0VGIC8qIENTU0NhbGNPcGVyYXRpb25Ob2RlLmggKi8sCiAJCQkJQkNGMTY0NTQyNjYy
QTEyMjAwMDJGN0VGIC8qIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuY3BwICovLAogCQkJCUJD
RjE2NDUzMjY2MkExMjIwMDAyRjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmggKi8s
CisJCQkJQkM3MDlEREYyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5jcHAg
Ki8sCisJCQkJQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5o
ICovLAogCQkJCTQ5QUUyRDhDMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuY3BwICov
LAogCQkJCTQ5QUUyRDhEMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuaCAqLywKIAkJ
CSk7CkBAIC0zNDY2OSw2ICszNDY3NCw3IEBACiAJCQkJMjY2MDFFQkYxNEIzQjlBRDAwMTJDMEZF
IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0FBNDg3
MDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFDIC8qIENTU0Nh
bGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxOTUxRDU0RjVGQjAwREQ3
QzY4IC8qIFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI2RDU2RTIyNTNB
RTI4RDAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENzcw
NUM3MjU1Mjc2Q0QwMDFEMEM5NCAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lvbiAyNzgyNDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDEw
ICsxNjQsMTIgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiAjaW5jbHVkZSA8c3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBDU1NWYWx1ZUlEIHsKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90IHsKICAgICBDU1NW
YWx1ZUludmFsaWQgPSAwLAogRU9GCiAKQEAgLTIwNCw2ICsyMDYsMTYgQEAgaW5saW5lIENTU1Zh
bHVlSUQgY29udmVydFRvQ1NTVmFsdWVJRChpbgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6Q1NTVmFsdWVJRD4gOiBJbnRIYXNoPHVuc2lnbmVkPiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
Q29yZTo6Q1NTVmFsdWVJRD4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3Jl
OjpDU1NWYWx1ZUlEJiBzbG90KSB7IHNsb3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NWYWx1
ZUlEPihXZWJDb3JlOjpsYXN0Q1NTVmFsdWVLZXl3b3JkICsgMSk7IH0KKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NWYWx1ZUlEIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA9PSAoV2ViQ29yZTo6bGFzdENTU1ZhbHVlS2V5d29yZCArIDEpOyB9Cit9OworfSAvLyBuYW1l
c3BhY2UgV1RGCisKIEVPRgogY2xvc2UgSEVBREVSOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDExIEBACiAjaW5j
bHVkZSAiQ1NTQ2FsY05lZ2F0ZU5vZGUuaCIKICNpbmNsdWRlICJDU1NDYWxjT3BlcmF0aW9uTm9k
ZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuaCIKKyNpbmNsdWRlICJD
U1NDYWxjU3ltYm9sVGFibGUuaCIKICNpbmNsdWRlICJDU1NDYWxjVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQYXJzZXJUb2tlbi5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKKyNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xODAsMTkgKzE4MiwzNSBAQCBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VDCiAKIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
OjpwYXJzZVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywgUmVmUHRyPENTU0NhbGNF
eHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogQWRkIGNvZGUgaGVyZSB0
byBwYXJzZSBDU1NWYWxpZElEIGZvciBuYW1lZCBjb25zdGFudHMuCisgICAgYXV0byBtYWtlQ1NT
Q2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSA9IFsmXSAoQ1NTVW5pdFR5cGUgdHlwZSwgZG91YmxlIHZh
bHVlKSAtPiBib29sIHsKKyAgICAgICAgaWYgKGNhbGNVbml0Q2F0ZWdvcnkodHlwZSkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICByZXN1bHQgPSBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgdHlwZSkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9OwogCi0gICAgQ1NTUGFyc2VyVG9rZW4gdG9rZW4gPSB0b2tlbnMuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICBpZiAoISh0b2tlbi50eXBlKCkgPT0gTnVtYmVy
VG9rZW4gfHwgdG9rZW4udHlwZSgpID09IFBlcmNlbnRhZ2VUb2tlbiB8fCB0b2tlbi50eXBlKCkg
PT0gRGltZW5zaW9uVG9rZW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgYXV0
byB0eXBlID0gdG9rZW4udW5pdFR5cGUoKTsKLSAgICBpZiAoY2FsY1VuaXRDYXRlZ29yeSh0eXBl
KSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcikKKyAgICBhdXRvIHRva2VuID0gdG9rZW5z
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUo
KSkgeworICAgIGNhc2UgSWRlbnRUb2tlbjogeworICAgICAgICBhdXRvIHZhbHVlID0gbV9zeW1i
b2xUYWJsZS5nZXQodG9rZW4uaWQoKSk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZSh2YWx1ZS0+dHlwZSwgdmFsdWUtPnZhbHVlKTsKKyAgICB9CisKKyAgICBjYXNlIE51bWJl
clRva2VuOgorICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgIGNhc2UgRGltZW5zaW9uVG9r
ZW46CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSh0b2tlbi51
bml0VHlwZSgpLCB0b2tlbi5udW1lcmljVmFsdWUoKSk7CisKKyAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmVzdWx0ID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodG9rZW4ubnVtZXJpY1ZhbHVl
KCksIHR5cGUpKTsKLSAgICAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tl
bnMsIGludCBkZXB0aCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9u
Tm9kZVBhcnNlci5oCShyZXZpc2lvbiAyNzgyNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjAg
KzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkNhbGNPcGVyYXRvci5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uQ2F0ZWdv
cnkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlbjsKIGNs
YXNzIENTU1BhcnNlclRva2VuUmFuZ2U7CiAKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90Owor
CiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcihDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnkpCisgICAgZXhwbGljaXQgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
KENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKICAgICAgICAgOiBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnko
ZGVzdGluYXRpb25DYXRlZ29yeSkKKyAgICAgICAgLCBtX3N5bWJvbFRhYmxlKHN5bWJvbFRhYmxl
KQogICAgIHsKICAgICB9CiAKQEAgLTU1LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBh
cnNlQ2FsY1ZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmLCBpbnQgZGVwdGgsIFJlZlB0cjxDU1ND
YWxjRXhwcmVzc2lvbk5vZGU+Jik7CiAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IG1fZGVzdGlu
YXRpb25DYXRlZ29yeTsKKyAgICBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIG1fc3ltYm9sVGFi
bGU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNT
eW1ib2xUYWJsZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xU
YWJsZS5oIgorCisjaW5jbHVkZSAiQ1NTVW5pdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDU1NDYWxjU3ltYm9sVGFibGU6OkNTU0NhbGNTeW1ib2xUYWJsZShzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8c3RkOjp0dXBsZTxDU1NWYWx1ZUlELCBDU1NVbml0VHlwZSwgZG91YmxlPj4gaW5pdGlh
bGl6ZXIpCit7CisgICAgZm9yIChhdXRvJiBbaWRlbnRpZmllciwgdHlwZSwgdmFsdWVdIDogaW5p
dGlhbGl6ZXIpCisgICAgICAgIG1fdGFibGUuYWRkKGlkZW50aWZpZXIsIHN0ZDo6bWFrZV9wYWly
KHR5cGUsIHZhbHVlKSk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q1NTQ2FsY1N5bWJvbFRhYmxlOjpW
YWx1ZT4gQ1NTQ2FsY1N5bWJvbFRhYmxlOjpnZXQoQ1NTVmFsdWVJRCB2YWx1ZUlEKSBjb25zdAor
eworICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gaXQgPSBtX3RhYmxlLmZpbmQodmFsdWVJRCk7CisgICAg
aWYgKGl0ID09IG1fdGFibGUuZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4ge3sgaXQtPnZhbHVlLmZpcnN0LCBpdC0+dmFsdWUuc2Vjb25kIH19OworfQor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIENTU1VuaXRUeXBlIDogdWludDhfdDsKKworY2xhc3MgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlIHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgVmFsdWUgeworICAgICAgICBDU1NV
bml0VHlwZSB0eXBlOworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgfTsKKworICAgIENTU0Nh
bGNTeW1ib2xUYWJsZSgpID0gZGVmYXVsdDsKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUoc3RkOjpp
bml0aWFsaXplcl9saXN0PHN0ZDo6dHVwbGU8Q1NTVmFsdWVJRCwgQ1NTVW5pdFR5cGUsIGRvdWJs
ZT4+KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmFsdWU+IGdldChDU1NWYWx1ZUlEKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBIYXNoTWFwPENTU1ZhbHVlSUQsIHN0ZDo6cGFpcjxDU1NVbml0VHlw
ZSwgZG91YmxlPj4gbV90YWJsZTsKK307CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Y2FsYy9DU1NDYWxjVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoLmgi
CiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25MZW5ndGguaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CkBAIC0yOTksOSArMzAwLDkgQEAgdm9pZCBDU1NDYWxjVmFsdWU6OmR1bXAoVGV4dFN0cmVhbSYg
dHMpIAogICAgIHRzIDw8ICIpXG4iOwogfQogCi1SZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxj
VmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJh
bmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFs
dWVSYW5nZSByYW5nZSkKK1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRl
KENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2Vucywg
Q2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlIHJhbmdl
LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgQ1NT
Q2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyIHBhcnNlcihkZXN0aW5hdGlvbkNhdGVnb3J5LCBzeW1i
b2xUYWJsZSk7CiAgICAgYXV0byBleHByZXNzaW9uID0gcGFyc2VyLnBhcnNlQ2FsYyh0b2tlbnMs
IGZ1bmN0aW9uKTsKICAgICBpZiAoIWV4cHJlc3Npb24pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtMzA5LDcgKzMxMCwxMiBAQCBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6
OmNyZWF0CiAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMsIHN0cmVhbSA8PCAiQ1NTQ2FsY1ZhbHVl
OjpjcmVhdGUgIiA8PCAqcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCitS
ZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0
aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdv
cnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb24sIHRva2VucywgZGVzdGluYXRpb25DYXRlZ29y
eSwgcmFuZ2UsIHsgfSk7Cit9CisKIFJlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6
Y3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUpCiB7CiAgICAgYXV0byBleHByZXNzaW9uID0gY3JlYXRlQ1NTKHZhbHVlLmV4cHJlc3Np
b24oKSwgc3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmgJ
KHJldmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KQEAgLTM5LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlOworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRhYmxlOwog
Y2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE7CiBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTQ3LDggKzQ3LDExIEBAIGVudW0gY2xhc3MgQ1NT
VW5pdFR5cGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBDYWxjdWxhdGlvbkNhdGVnb3J5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVmFsdWVSYW5nZSA6IHVpbnQ4X3Q7CiAKK2VudW0gQ1NTVmFsdWVJ
RCA6IHVpbnQxNl90OworCiBjbGFzcyBDU1NDYWxjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFs
dWUgewogcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NT
VmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENhbGN1bGF0aW9u
Q2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJik7CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShDU1NW
YWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ2FsY3VsYXRpb25D
YXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlKTsKICAgICBzdGF0aWMgUmVm
UHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmLCBjb25zdCBS
ZW5kZXJTdHlsZSYpOwogICAgIH5DU1NDYWxjVmFsdWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJl
dmlzaW9uIDI3ODI0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIgogCisj
aW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTQ2FudmFzVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1
ZS5oIgpAQCAtOTgsNyArOTksNyBAQCBzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVt
YmVyT3JQCiAvLyBGSVhNRTogY29uc2lkZXIgcHVsbGluZyBpbiB0aGUgcGFyc2luZyBsb2dpYyBm
cm9tIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci4KIGNsYXNzIENhbGNQYXJzZXIgewogcHVi
bGljOgotICAgIGV4cGxpY2l0IENhbGNQYXJzZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSB2YWx1
ZVJhbmdlID0gVmFsdWVSYW5nZTo6QWxsLCBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpCisgICAgZXhwbGljaXQgQ2FsY1BhcnNlcihDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVn
b3J5LCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwsIGNvbnN0IENTU0Nh
bGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSB7IH0sIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQ
b29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSkKICAgICAgICAgOiBtX3NvdXJjZVJhbmdl
KHJhbmdlKQogICAgICAgICAsIG1fcmFuZ2UocmFuZ2UpCiAgICAgICAgICwgbV92YWx1ZVBvb2wo
Y3NzVmFsdWVQb29sKQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogICAgICAgICBhdXRvIGZ1bmN0
aW9uSWQgPSB0b2tlbi5mdW5jdGlvbklkKCk7CiAgICAgICAgIGlmIChDU1NDYWxjVmFsdWU6Omlz
Q2FsY0Z1bmN0aW9uKGZ1bmN0aW9uSWQpKQotICAgICAgICAgICAgbV9jYWxjVmFsdWUgPSBDU1ND
YWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5nZSksIGRl
c3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UpOworICAgICAgICAgICAgbV9jYWxjVmFsdWUg
PSBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5n
ZSksIGRlc3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKICAgICB9
CiAKICAgICBjb25zdCBDU1NDYWxjVmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxj
VmFsdWUuZ2V0KCk7IH0KQEAgLTQzMyw3ICs0MzQsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNvbnN1bWVQZXJjZW50CiB7CiAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0g
cmFuZ2UucGVlaygpOwogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewot
ICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6
OlBlcmNlbnQsIHZhbHVlUmFuZ2UsIGNzc1ZhbHVlUG9vbCk7CisgICAgICAgIENhbGNQYXJzZXIg
Y2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5n
ZSwgeyB9LCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBj
YWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewogICAgICAgICAgICAgaWYgKGNhbGN1
bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CkBAIC01NDMsNyAr
NTQ0LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVXbwogewogICAg
IGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9r
ZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFy
c2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCBj
c3NWYWx1ZVBvb2wpOworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1
bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCBWYWx1ZVJhbmdlOjpBbGwsIHsgfSwgY3NzVmFsdWVQb29s
KTsKICAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBjYWxjUGFy
c2VyLnZhbHVlKCkpIHsKICAgICAgICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9
PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSkKICAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lVmFsdWUoKTsKQEAgLTU2MCw3ICs1NjEsOCBAQCBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZVdvCiBzdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBjb25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENT
U1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBVbml0bGVz
c1F1aXJrIHVuaXRsZXNzLCBVbml0bGVzc1plcm9RdWlyayB1bml0bGVzc1plcm8pCiB7CiAgICAg
Y29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwotICAgIGlmICh0b2tl
bi50eXBlKCkgPT0gRGltZW5zaW9uVG9rZW4pIHsKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkg
eworICAgIGNhc2UgRGltZW5zaW9uVG9rZW46CiAgICAgICAgIHN3aXRjaCAodG9rZW4udW5pdFR5
cGUoKSkgewogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgogICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUkFEOgpAQCAtNTY4LDI5ICs1NzAsMzggQEAgc3RhdGljIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZQogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVFVSTjoKICAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNy
ZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVl
KCksIHRva2VuLnVuaXRUeXBlKCkpOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgIH0KLSAgICBp
ZiAodG9rZW4udHlwZSgpID09IE51bWJlclRva2VuICYmIHNob3VsZEFjY2VwdFVuaXRsZXNzVmFs
dWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCB1bml0bGVz
c1plcm8pKQotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVW
YWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpLCBD
U1NVbml0VHlwZTo6Q1NTX0RFRyk7CisgICAgICAgIGJyZWFrOworICAgIAorICAgIGNhc2UgTnVt
YmVyVG9rZW46CisgICAgICAgIGlmIChzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51
bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcywgdW5pdGxlc3NaZXJvKSkKKyAg
ICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCksIENTU1VuaXRU
eXBlOjpDU1NfREVHKTsKKyAgICAgICAgYnJlYWs7CiAKLSAgICBpZiAodG9rZW4udHlwZSgpID09
IFBlcmNlbnRhZ2VUb2tlbikKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVQZXJjZW50KHJhbmdlLCB2YWx1ZVJhbmdlKTsKIAotICAgICBpZiAodG9rZW4u
dHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCi0gICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBj
YXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBhbmdsZUNhbGNQYXJzZXIo
cmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCB2YWx1ZVJhbmdlKTsKKyAgICAgICAg
aWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBhbmdsZUNhbGNQYXJzZXIudmFs
dWUoKSkgeworICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1
bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQorICAgICAgICAgICAgICAgIHJldHVybiBhbmdsZUNhbGNQ
YXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIH0KIAotICAgIENhbGNQYXJzZXIgYW5nbGVD
YWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSk7
Ci0gICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBhbmdsZUNhbGNQYXJz
ZXIudmFsdWUoKSkgewotICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCi0gICAgICAgICAgICByZXR1cm4gYW5nbGVDYWxjUGFy
c2VyLmNvbnN1bWVWYWx1ZSgpOworICAgICAgICBDYWxjUGFyc2VyIHBlcmNlbnRDYWxjUGFyc2Vy
KHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlKTsKKyAgICAg
ICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBwZXJjZW50Q2FsY1BhcnNl
ci52YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0g
Q2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGVy
Y2VudENhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAg
YnJlYWs7CiAgICAgfQotCi0gICAgQ2FsY1BhcnNlciBwZXJjZW50Q2FsY1BhcnNlcihyYW5nZSwg
Q2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSk7Ci0gICAgaWYgKGNvbnN0
IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBwZXJjZW50Q2FsY1BhcnNlci52YWx1ZSgpKSB7
Ci0gICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVn
b3J5OjpQZXJjZW50KQotICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRDYWxjUGFyc2VyLmNvbnN1
bWVWYWx1ZSgpOworICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KKwog
ICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC03NDgsMTQgKzc1OSw2MiBAQCBzdGF0aWMgT3B0
aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aW9uYWxBCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgT3B0aW9u
YWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRl
bnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBj
b25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNv
bnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1dG8gYWxw
aGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYShyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICphbHBo
YSB9OworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCisg
ICAgICAgIHJldHVybiAxLjA7CiAKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudFJh
dzxhbGxvd2VkSWRlbnRzLi4uPihyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICppZGVudCB9Owor
ICAgIGF1dG8gbm9ybWFsaXplUGVyY2VudCA9IFtdKGRvdWJsZSBwZXJjZW50KSB7CisgICAgICAg
IHJldHVybiBjbGFtcFRvKHBlcmNlbnQgLyAxMDAuMCwgMC4wLCAxLjApOworICAgIH07CisKKyAg
ICBhdXRvIG5vcm1hbGl6ZU51bWJlciA9IFtdKGRvdWJsZSBhbHBoYSkgeworICAgICAgICByZXR1
cm4gY2xhbXBUbyhhbHBoYSwgMC4wLCAxLjApOworICAgIH07CiAKKyAgICBjb25zdCBDU1NQYXJz
ZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUo
KSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIHBlcmNl
bnRhZ2VDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCBWYWx1
ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8gcGVyY2VudCA9IHBl
cmNlbnRhZ2VDYWxjUGFyc2VyLmNvbnN1bWVQZXJjZW50UmF3KCkpCisgICAgICAgICAgICByZXR1
cm4gbm9ybWFsaXplUGVyY2VudCgqcGVyY2VudCk7CisgICAgICAgIAorICAgICAgICBDYWxjUGFy
c2VyIG51bWJlckNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwg
VmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIG51bWJlciA9
IG51bWJlckNhbGNQYXJzZXIuY29uc3VtZU51bWJlclJhdygpKQorICAgICAgICAgICAgcmV0dXJu
IG5vcm1hbGl6ZU51bWJlcigqbnVtYmVyKTsKKworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0KKworICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgICAgICBpZiAoc3RkOjpp
c2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudChyYW5nZS5jb25zdW1lSW5jbHVk
aW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKworICAgIGNhc2UgTnVtYmVyVG9rZW46
CisgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1do
aXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIElkZW50VG9rZW46CisgICAg
ICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdlLmNvbnN1bWVJbmNs
dWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodmFyaWFibGUt
PnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOgor
ICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KHZhcmlhYmxlLT52YWx1ZSk7
CisKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcih2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtNzY3
LDE0ICs4MjYsNTkgQEAgc3RhdGljIE9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZShDU1NQYQog
ICAgIHJldHVybiBjb25zdW1lTnVtYmVyUmF3KHJhbmdlKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFs
dWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENT
U1ZhbHVlSUQ+PiBjb25zdW1lSHVlT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0
IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1dG8gaHVlID0g
Y29uc3VtZUh1ZShyYW5nZSwgY29udGV4dCkpCi0gICAgICAgIHJldHVybiB7ICpodWUgfTsKKyAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAKLSAgICBpZiAo
YXV0byBpZGVudCA9IGNvbnN1bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRzLi4uPihyYW5nZSkpCi0g
ICAgICAgIHJldHVybiB7ICppZGVudCB9OworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7Cisg
ICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgYW5nbGVDYWxjUGFy
c2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCBz
eW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIGFuZ2xlID0gYW5nbGVDYWxjUGFyc2VyLmNv
bnN1bWVBbmdsZVJhdygpKQorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
b21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKTsKKyAgICAgICAgCisgICAg
ICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29y
eTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsKKyAgICAgICAgcmV0dXJu
IG51bWJlckNhbGNQYXJzZXIuY29uc3VtZU51bWJlclJhdygpOworICAgIH0KKyAgICAKKyAgICBj
YXNlIERpbWVuc2lvblRva2VuOiB7CisgICAgICAgIGF1dG8gdW5pdFR5cGUgPSB0b2tlbi51bml0
VHlwZSgpOworICAgICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19ERUc6CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOgorICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVFVSTjoKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0
ZURlZ3JlZXModW5pdFR5cGUsIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVt
ZXJpY1ZhbHVlKCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjYXNlIE51bWJlclRva2VuOgor
ICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmlj
VmFsdWUoKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8gdmFyaWFi
bGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5p
ZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAgICAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzoKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19SQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfR1JBRDoKKyAg
ICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOgorICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXModmFyaWFibGUtPnR5cGUsIHZh
cmlhYmxlLT52YWx1ZSk7CisKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1C
RVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1ZTsKKworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTc4Myw2
NSArODg3LDEzMSBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZUh1ZShkb3VibGUgaHVlKQogICAg
IHJldHVybiBzdGQ6OmZtb2Qoc3RkOjpmbW9kKGh1ZSwgMzYwLjApICsgMzYwLjAsIDM2MC4wKTsK
IH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgT3B0aW9u
YWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lTnVtYmVyT3JJZGVudChDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IGNvbnN1bWVO
dW1iZXJPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NDYWxjU3lt
Ym9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlmIChhdXRvIG51bWJlciA9IGNvbnN1bWVO
dW1iZXJSYXcocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqbnVtYmVyIH07CisgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogCi0gICAgaWYgKGF1dG8gaWRl
bnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICBy
ZXR1cm4geyAqaWRlbnQgfTsKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2Ug
RnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENh
bGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7
CisgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVOdW1iZXJSYXcoKTsKKyAgICB9CiAK
LSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQorICAgIGNhc2UgTnVtYmVyVG9rZW46CisgICAg
ICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1
ZSgpOwogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlELi4uIGFsbG93ZWRJZGVudHM+IHN0YXRpYyBPcHRp
b25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVQZXJjZW50T3JJZGVudChD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKLXsKLSAgICBpZiAoYXV0byBwZXJjZW50ID0gY29u
c3VtZVBlcmNlbnRSYXcocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqcGVyY2VudCB9OworICAg
IGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJs
ZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAg
ICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGUtPnZhbHVl
OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4u
Lj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi10ZW1wbGF0ZTxDU1NWYWx1
ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hh
bm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byBleHRyYWN0Q2hhbm5lbFZhbHVl
KENTU1ZhbHVlSUQgY2hhbm5lbCwgY29uc3QgQ29sb3JUeXBlJiBvcmlnaW5Db2xvcikgLT4gdHlw
ZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBj
b25zdW1lUGVyY2VudE9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENT
U0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgYXV0byBjb21wb25lbnRzID0g
YXNDb2xvckNvbXBvbmVudHMob3JpZ2luQ29sb3IpOwotICAgIHN3aXRjaCAoY2hhbm5lbCkgewot
ICAgIGNhc2UgQzE6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzBdOwotICAgIGNhc2UgQzI6
Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzFdOwotICAgIGNhc2UgQzM6Ci0gICAgICAgIHJl
dHVybiBjb21wb25lbnRzWzJdOwotICAgIGNhc2UgQWxwaGFDaGFubmVsOgotICAgICAgICByZXR1
cm4gY29tcG9uZW50c1szXTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5n
ZS5wZWVrKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rp
b25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0
aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAg
ICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lUGVyY2VudFJhdygpOworICAgIH0KKworICAg
IGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgICAgICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1l
cmljVmFsdWUoKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKTsK
KworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8gdmFyaWFibGUgPSBzeW1i
b2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5pZCgpKSkgewor
ICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlh
YmxlLT52YWx1ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4g
MDsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMz
LCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBW
YWx1ZVRyYW5zZm9ybWVyPiBzdGF0aWMgZGVjbHR5cGUoYXV0bykgcmVzb2x2ZVJlbGF0aXZlQ29s
b3JDaGFubmVsKGNvbnN0IFZhcmlhbnQ8ZG91YmxlLCBDU1NWYWx1ZUlEPiYgcGFyc2VkQ2hhbm5l
bCwgY29uc3QgQ29sb3JUeXBlJiBvcmlnaW5Db2xvciwgVmFsdWVUcmFuc2Zvcm1lciYmIHZhbHVl
VHJhbnNmb3JtZXIpCitlbnVtIGNsYXNzIFJHQkNvbXBvbmVudFR5cGUgeyBOdW1iZXIsIFBlcmNl
bnRhZ2UgfTsKKworc3RhdGljIE9wdGlvbmFsPHVpbnQ4X3Q+IGNvbnN1bWVOdW1iZXJPclBlcmNl
bnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIHJldHVy
biBzd2l0Y2hPbihwYXJzZWRDaGFubmVsLAotICAgICAgICBbJl0gKGRvdWJsZSB2YWx1ZSkgewot
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlVHJhbnNmb3JtZXIodmFsdWUpOwotICAgICAgICB9LAot
ICAgICAgICBbJl0gKENTU1ZhbHVlSUQgY2hhbm5lbCkgewotICAgICAgICAgICAgcmV0dXJuIGV4
dHJhY3RDaGFubmVsVmFsdWU8QzEsIEMyLCBDMywgQWxwaGFDaGFubmVsPihjaGFubmVsLCBvcmln
aW5Db2xvcik7CisgICAgYXV0byBub3JtYWxpemVQZXJjZW50ID0gW10oZG91YmxlIHBlcmNlbnQp
IHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRQcmVzY2FsZWRTUkdCQUZsb2F0VG9TUkdCQUJ5dGUo
cGVyY2VudCAvIDEwMC4wICogMjU1LjApOworICAgIH07CisKKyAgICBhdXRvIG5vcm1hbGl6ZU51
bWJlciA9IFtdKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRQcmVzY2Fs
ZWRTUkdCQUZsb2F0VG9TUkdCQUJ5dGUobnVtYmVyKTsKKyAgICB9OworCisgICAgY29uc3QgQ1NT
UGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOworCisgICAgc3dpdGNoICh0b2tlbi50
eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBw
ZXJjZW50YWdlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwg
VmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIHBlcmNlbnQg
PSBwZXJjZW50YWdlQ2FsY1BhcnNlci5jb25zdW1lUGVyY2VudFJhdygpKQorICAgICAgICAgICAg
cmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQoKnBlcmNlbnQpOworICAgICAgICAKKyAgICAgICAgQ2Fs
Y1BhcnNlciBudW1iZXJDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1i
ZXIsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0byBudW1i
ZXIgPSBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVOdW1iZXJSYXcoKSkKKyAgICAgICAgICAgIHJl
dHVybiBub3JtYWxpemVOdW1iZXIoKm51bWJlcik7CisgICAgICAgIAorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH0KKworICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgICAg
ICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudChyYW5nZS5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKworICAgIGNhc2Ug
TnVtYmVyVG9rZW46CisgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIocmFuZ2UuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIElkZW50
VG9rZW46CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdl
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRj
aCAodmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFOgorICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KHZhcmlh
YmxlLT52YWx1ZSk7CisKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6
CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcih2YXJpYWJsZS0+dmFsdWUp
OworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICApOwotfQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMy
LCBDU1NWYWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JU
eXBlPiBzdGF0aWMgZGVjbHR5cGUoYXV0bykgcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsKGNv
bnN0IFZhcmlhbnQ8ZG91YmxlLCBDU1NWYWx1ZUlEPiYgcGFyc2VkQ2hhbm5lbCwgY29uc3QgQ29s
b3JUeXBlJiBvcmlnaW5Db2xvcikKLXsKLSAgICByZXR1cm4gcmVzb2x2ZVJlbGF0aXZlQ29sb3JD
aGFubmVsPEMxLCBDMiwgQzMsIEFscGhhQ2hhbm5lbD4ocGFyc2VkQ2hhbm5lbCwgb3JpZ2luQ29s
b3IsIFtdKGF1dG8gdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9KTsKLX0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KIAotZW51bSBjbGFzcyBSR0JDb21w
b25lbnRUeXBlIHsgTnVtYmVyLCBQZXJjZW50YWdlIH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KIAogc3RhdGljIHVpbnQ4X3QgY2xhbXBS
R0JDb21wb25lbnQoZG91YmxlIHZhbHVlLCBSR0JDb21wb25lbnRUeXBlIGNvbXBvbmVudFR5cGUp
CiB7CkBAIC05MjEsNTIgKzEwOTEsMzcgQEAgc3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVSR0JQ
YXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgT3B0aW9uYWw8UkdCQ29tcG9uZW50VHlwZT4gY29tcG9uZW50VHlwZTsK
LSAgICBhdXRvIHJlZFJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1
ZVI+KGFyZ3MsIGNvbXBvbmVudFR5cGUpOwotICAgIGlmICghcmVkUmVzdWx0KQorICAgIGF1dG8g
b3JpZ2luQ29sb3JBc1NSR0IgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PFNSR0JBPGZs
b2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAg
IHsgQ1NTVmFsdWVSLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNT
UkdCLnJlZCAqIDEwMCB9LAorICAgICAgICB7IENTU1ZhbHVlRywgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5ncmVlbiAqIDEwMCB9LAorICAgICAgICB7IENT
U1ZhbHVlQiwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5i
bHVlICogMTAwIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5hbHBoYSAqIDEwMCB9CisgICAgfTsKKworICAg
IGF1dG8gcmVkID0gY29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVs
YXRpdmVSR0IoYXJncywgc3ltYm9sVGFibGUpOworICAgIGlmICghcmVkKQogICAgICAgICByZXR1
cm4geyB9OwotICAgIGF1dG8gcmVkID0gcmVkUmVzdWx0LT52YWx1ZTsKLSAgICBjb21wb25lbnRU
eXBlID0gcmVkUmVzdWx0LT50eXBlOwogCi0gICAgYXV0byBncmVlblJlc3VsdCA9IGNvbnN1bWVS
ZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZUc+KGFyZ3MsIGNvbXBvbmVudFR5cGUpOwotICAg
IGlmICghZ3JlZW5SZXN1bHQpCisgICAgYXV0byBncmVlbiA9IGNvbnN1bWVOdW1iZXJPclBlcmNl
bnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKGFyZ3MsIHN5bWJvbFRhYmxlKTsKKyAg
ICBpZiAoIWdyZWVuKQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8gZ3JlZW4gPSBncmVl
blJlc3VsdC0+dmFsdWU7Ci0gICAgY29tcG9uZW50VHlwZSA9IGdyZWVuUmVzdWx0LT50eXBlOwog
Ci0gICAgYXV0byBibHVlUmVzdWx0ID0gY29uc3VtZVJlbGF0aXZlUkdCQ29tcG9uZW50PENTU1Zh
bHVlQj4oYXJncywgY29tcG9uZW50VHlwZSk7Ci0gICAgaWYgKCFibHVlUmVzdWx0KQorICAgIGF1
dG8gYmx1ZSA9IGNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0
aXZlUkdCKGFyZ3MsIHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoIWJsdWUpCiAgICAgICAgIHJldHVy
biB7IH07Ci0gICAgYXV0byBibHVlID0gYmx1ZVJlc3VsdC0+dmFsdWU7Ci0gICAgY29tcG9uZW50
VHlwZSA9IGJsdWVSZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlv
bmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBj
b25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICgh
YWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRp
ZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdpbiBjb2xvci4KLQotICAgIC8vIEZJWE1FOiBE
byB3ZSB3YW50IHRvIGJlaW5nIGRvaW5nIHRoaXMgaW4gdWludDhfdCB2YWx1ZXM/IE9yIHNob3Vs
ZCB3ZSB1c2UgCi0gICAgLy8gaGlnaGVyIHByZWNpc2lvbiBhbmQgY2xhbXAgYXQgdGhlIGVuZD8g
SXQgd29uJ3QgbWFrZSBhIGRpZmZlcmVuY2UgdW50aWwgd2UKLSAgICAvLyBzdXBwb3J0IGNhbGN1
bGF0aW9ucyBvbiB0aGUgb3JpZ2luJ3MgY29tcG9uZW50cy4KLSAgICBhdXRvIG9yaWdpbkNvbG9y
QXNTUkdCID0gb3JpZ2luQ29sb3IudG9TUkdCQUxvc3N5PHVpbnQ4X3Q+KCk7Ci0KLSAgICBhdXRv
IHJlc29sdmVkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudFR5cGUudmFsdWVfb3IoUkdCQ29tcG9u
ZW50VHlwZTo6UGVyY2VudGFnZSk7Ci0gICAgYXV0byBjaGFubmVsUmVzb2x2ZXIgPSBbcmVzb2x2
ZWRDb21wb25lbnRUeXBlXShhdXRvIHZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBjbGFtcFJHQkNv
bXBvbmVudCh2YWx1ZSwgcmVzb2x2ZWRDb21wb25lbnRUeXBlKTsKLSAgICB9OwotCi0gICAgYXV0
byByZXNvbHZlZFJlZCA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENT
U1ZhbHVlRywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihyZWQsIG9yaWdpbkNvbG9yQXNTUkdC
LCBjaGFubmVsUmVzb2x2ZXIpOwotICAgIGF1dG8gcmVzb2x2ZWRHcmVlbiA9IHJlc29sdmVSZWxh
dGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywgQ1NTVmFsdWVCLCBDU1NWYWx1
ZUFscGhhPihncmVlbiwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5uZWxSZXNvbHZlcik7Ci0gICAg
YXV0byByZXNvbHZlZEJsdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVS
LCBDU1NWYWx1ZUcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oYmx1ZSwgb3JpZ2luQ29sb3JB
c1NSR0IsIGNoYW5uZWxSZXNvbHZlcik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVzb2x2
ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBDU1NWYWx1ZUIsIENT
U1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc1NSR0IsIFtdKGF1dG8gdmFsdWUpIHsK
LSAgICAgICAgcmV0dXJuIGNvbnZlcnRGbG9hdEFscGhhVG88dWludDhfdD4odmFsdWUpOwotICAg
IH0pOworICAgIGF1dG8gbm9ybWFsaXplZEFscGhhID0gY29udmVydEZsb2F0QWxwaGFUbzx1aW50
OF90PigqYWxwaGEpOwogCi0gICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgcmVzb2x2ZWRSZWQs
IHJlc29sdmVkR3JlZW4sIHJlc29sdmVkQmx1ZSwgcmVzb2x2ZWRBbHBoYSB9OworICAgIHJldHVy
biBTUkdCQTx1aW50OF90PiB7ICpyZWQsICpncmVlbiwgKmJsdWUsIG5vcm1hbGl6ZWRBbHBoYSB9
OwogfQogCiBlbnVtIGNsYXNzIFJHQkZ1bmN0aW9uTW9kZSB7IFJHQiwgUkdCQSB9OwpAQCAtMTA0
OCw0MSArMTIwMyw0MCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUhTTFBhcmFtZXRlcnMo
CiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAK
LSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywgY29udGV4
dCk7CisgICAgYXV0byBvcmlnaW5Db2xvckFzSFNMID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVM
b3NzeTxIU0xBPGZsb2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJs
ZSB7CisgICAgICAgIHsgQ1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29s
b3JBc0hTTC5odWUgfSwKKyAgICAgICAgeyBDU1NWYWx1ZVMsIENTU1VuaXRUeXBlOjpDU1NfUEVS
Q0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hTTC5zYXR1cmF0aW9uIH0sCisgICAgICAgIHsgQ1NTVmFs
dWVMLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIU0wubGlnaHRu
ZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5U
QUdFLCBvcmlnaW5Db2xvckFzSFNMLmFscGhhICogMTAwIH0KKyAgICB9OworCisgICAgYXV0byBo
dWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFodWUp
CiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNhdHVyYXRpb24gPSBjb25zdW1lUGVy
Y2VudE9ySWRlbnQ8Q1NTVmFsdWVTPihhcmdzKTsKKyAgICBhdXRvIHNhdHVyYXRpb24gPSBjb25z
dW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghc2F0dXJhdGlv
bikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBl
cmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25z
dW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNz
KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25h
bEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0gY29u
c3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFs
cGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBjb252ZXJ0IGlkZW50aWZp
ZXJzIHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAgICBhdXRvIG9yaWdpbkNv
bG9yQXNIU0wgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PEhTTEE8ZmxvYXQ+PigpOwot
Ci0gICAgYXV0byByZXNvbHZlZEh1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NW
YWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqaHVlLCBvcmlnaW5D
b2xvckFzSFNMLCBbXShhdXRvIGh1ZSkgewotICAgICAgICByZXR1cm4gbm9ybWFsaXplSHVlKGh1
ZSk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZFNhdHVyYXRpb24gPSByZXNvbHZlUmVsYXRp
dmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVMsIENTU1ZhbHVlTCwgQ1NTVmFsdWVB
bHBoYT4oKnNhdHVyYXRpb24sIG9yaWdpbkNvbG9yQXNIU0wsIFtdKGF1dG8gc2F0dXJhdGlvbikg
ewotICAgICAgICByZXR1cm4gY2xhbXBUbyhzYXR1cmF0aW9uLCAwLjAsIDEwMC4wKTsKLSAgICB9
KTsKLSAgICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpsaWdo
dG5lc3MsIG9yaWdpbkNvbG9yQXNIU0wsIFtdKGF1dG8gbGlnaHRuZXNzKSB7Ci0gICAgICAgIHJl
dHVybiBjbGFtcFRvKGxpZ2h0bmVzcywgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAgYXV0byBy
ZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NT
VmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hT
TCk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOworICAgIGF1
dG8gbm9ybWFsaXplZFNhdHVyYXRpb24gPSBjbGFtcFRvKCpzYXR1cmF0aW9uLCAwLjAsIDEwMC4w
KTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBjbGFtcFRvKCpsaWdodG5lc3MsIDAu
MCwgMTAwLjApOworICAgIGF1dG8gbm9ybWFsaXplZEFscGhhID0gY2xhbXBUbygqYWxwaGEsIDAu
MCwgMS4wKTsKIAotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KEhTTEE8
ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkSHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHJlc29sdmVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZExpZ2h0
bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZs
b2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRTYXR1cmF0
aW9uKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4obm9ybWFsaXplZEFscGhhKSB9KTsKIH0KIAogZW51bSBjbGFzcyBIU0xGdW5jdGlv
bk1vZGUgeyBIU0wsIEhTTEEgfTsKQEAgLTExMjksOCArMTI4Myw3IEBAIHRlbXBsYXRlPEhTTEZ1
bmN0aW9uTW9kZSBNb2RlPiBzdGF0aWMgQ28KICAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JB
PHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRTYXR1cmF0aW9uKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXpl
ZEFscGhhKSB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ29tcG9uZW50VHlwZT4KLXN0cnVj
dCBXaGl0ZW5lc3NCbGFja25lc3MgewordGVtcGxhdGU8dHlwZW5hbWUgQ29tcG9uZW50VHlwZT4g
c3RydWN0IFdoaXRlbmVzc0JsYWNrbmVzcyB7CiAgICAgQ29tcG9uZW50VHlwZSB3aGl0ZW5lc3M7
CiAgICAgQ29tcG9uZW50VHlwZSBibGFja25lc3M7CiB9OwpAQCAtMTE2NCwzOSArMTMxNywzOCBA
QCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUhXQlBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmln
aW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGh1ZSA9
IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAgYXV0byBv
cmlnaW5Db2xvckFzSFdCID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIV0JBPGZsb2F0
Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsg
Q1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0hXQi5odWUgfSwK
KyAgICAgICAgeyBDU1NWYWx1ZVcsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2lu
Q29sb3JBc0hXQi53aGl0ZW5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1VuaXRUeXBl
OjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hXQi5ibGFja25lc3MgfSwKKyAgICAgICAg
eyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9y
QXNIV0IuYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVP
cklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWh1ZSkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIGF1dG8gd2hpdGVuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1Zh
bHVlVz4oYXJncyk7CisgICAgYXV0byB3aGl0ZW5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQo
YXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghd2hpdGVuZXNzKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgYXV0byBibGFja25lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NTVmFs
dWVCPihhcmdzKTsKKyAgICBhdXRvIGJsYWNrbmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChh
cmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFibGFja25lc3MpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1Zh
bHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20g
dGhlIG9yaWdpbiBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdpbkNv
bG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVk
SHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBD
U1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNIV0IsIFtdKGF1dG8g
aHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsKLSAgICBh
dXRvIHJlc29sdmVkV2hpdGVuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1Zh
bHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCp3aGl0ZW5lc3MsIG9y
aWdpbkNvbG9yQXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRCbGFja25lc3MgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVcsIENTU1ZhbHVlQiwgQ1NTVmFs
dWVBbHBoYT4oKmJsYWNrbmVzcywgb3JpZ2luQ29sb3JBc0hXQik7Ci0gICAgYXV0byByZXNvbHZl
ZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVX
LCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hXQik7Ci0K
LSAgICBhdXRvIFtub3JtYWxpemVkV2hpdG5lc3MsIG5vcm1hbGl6ZWRCbGFja25lc3NdID0gbm9y
bWFsaXplV2hpdGVuZXNzQmxhY2tuZXNzKHJlc29sdmVkV2hpdGVuZXNzLCByZXNvbHZlZEJsYWNr
bmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOworICAg
IGF1dG8gW25vcm1hbGl6ZWRXaGl0bmVzcywgbm9ybWFsaXplZEJsYWNrbmVzc10gPSBub3JtYWxp
emVXaGl0ZW5lc3NCbGFja25lc3MoKndoaXRlbmVzcywgKmJsYWNrbmVzcyk7CiAKLSAgICByZXR1
cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0
PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkV2hpdG5l
c3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEJsYWNrbmVzcyksIHN0YXRpY19jYXN0
PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JB
PHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRXaGl0bmVzcyksIHN0YXRpY19jYXN0PGZs
b2F0Pihub3JtYWxpemVkQmxhY2tuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfSk7
CiB9CiAKIHN0YXRpYyBDb2xvciBwYXJzZUhXQlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMjQ1LDM3ICsx
Mzk3LDM3IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTGFiUGFyYW1ldGVycygKICAgICBp
ZiAoIW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1
dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7Cisg
ICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxM
YWI8ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAg
ICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29s
b3JBc0xhYi5saWdodG5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUEsIENTU1VuaXRUeXBlOjpD
U1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENT
U1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmIgfSwKKyAgICAgICAgeyBD
U1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNM
YWIuYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQ
ZXJjZW50T3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFsaWdodG5lc3MpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklk
ZW50PENTU1ZhbHVlQT4oYXJncyk7CisgICAgYXV0byBhVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJ
ZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhVmFsdWUpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVl
Qj4oYXJncyk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBz
eW1ib2xUYWJsZSk7CiAgICAgaWYgKCFiVmFsdWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAg
ICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+
KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJn
cywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFm
dGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdp
biBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xhYiA9IG9yaWdpbkNvbG9yLnRvQ29s
b3JUeXBlTG9zc3k8TGFiPGZsb2F0Pj4oKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRMaWdodG5lc3Mg
PSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1Zh
bHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmxpZ2h0bmVzcywgb3JpZ2luQ29sb3JBc0xhYiwgW10oYXV0
byBsaWdodG5lc3MpIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwgbGlnaHRuZXNzKTsK
LSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkQVZhbHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JD
aGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCph
VmFsdWUsIG9yaWdpbkNvbG9yQXNMYWIpOwotICAgIGF1dG8gcmVzb2x2ZWRCVmFsdWUgPSByZXNv
bHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwg
Q1NTVmFsdWVBbHBoYT4oKmJWYWx1ZSwgb3JpZ2luQ29sb3JBc0xhYik7Ci0gICAgYXV0byByZXNv
bHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFs
dWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0xhYik7
CisgICAgYXV0byBub3JtYWxpemVkTGlnaHRuZXNzID0gc3RkOjptYXgoMC4wLCAqbGlnaHRuZXNz
KTsKIAotICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
TGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQVZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHJlc29sdmVkQlZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQWxw
aGEpIH07CisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFs
aXplZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PigqYVZhbHVlKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KCpiVmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4oKmFscGhhKSB9OwogfQogCiBzdGF0
aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQpAQCAtMTMyMywzOSArMTQ3NSwzOSBAQCBz
dGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUxDSFBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5D
b2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVz
cyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gb3Jp
Z2luQ29sb3JBc0xDSCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TENIQTxmbG9hdD4+
KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENT
U1ZhbHVlTCwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzTENILmxp
Z2h0bmVzcyB9LAorICAgICAgICB7IENTU1ZhbHVlQywgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIs
IG9yaWdpbkNvbG9yQXNMQ0guY2hyb21hIH0sCisgICAgICAgIHsgQ1NTVmFsdWVILCBDU1NVbml0
VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0xDSC5odWUgfSwKKyAgICAgICAgeyBDU1NWYWx1
ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMQ0guYWxw
aGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50
T3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFsaWdodG5lc3MpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBhdXRvIGNocm9tYSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENT
U1ZhbHVlQz4oYXJncyk7CisgICAgYXV0byBjaHJvbWEgPSBjb25zdW1lTnVtYmVyT3JJZGVudChh
cmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFjaHJvbWEpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywgY29u
dGV4dCk7CisgICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBzeW1ib2xUYWJs
ZSk7CiAgICAgaWYgKCFodWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFscGhh
ID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAg
IGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFi
bGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFy
Z3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gb3JpZ2luQ29sb3JB
c0xDSCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TENIQTxmbG9hdD4+KCk7Ci0KLSAg
ICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENT
U1ZhbHVlTCwgQ1NTVmFsdWVDLCBDU1NWYWx1ZUgsIENTU1ZhbHVlQWxwaGE+KCpsaWdodG5lc3Ms
IG9yaWdpbkNvbG9yQXNMQ0gsIFtdKGF1dG8gbGlnaHRuZXNzKSB7Ci0gICAgICAgIHJldHVybiBz
dGQ6Om1heCgwLjAsIGxpZ2h0bmVzcyk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZENocm9t
YSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NT
VmFsdWVILCBDU1NWYWx1ZUFscGhhPigqY2hyb21hLCBvcmlnaW5Db2xvckFzTENILCBbXShhdXRv
IGNocm9tYSkgewotICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBjaHJvbWEpOwotICAgIH0p
OwotICAgIGF1dG8gcmVzb2x2ZWRIdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NT
VmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2lu
Q29sb3JBc0xDSCwgW10oYXV0byBodWUpIHsKLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZSho
dWUpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNv
bG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhh
PigqYWxwaGEsIG9yaWdpbkNvbG9yQXNMQ0gpOworICAgIGF1dG8gbm9ybWFsaXplZExpZ2h0bmVz
cyA9IHN0ZDo6bWF4KDAuMCwgKmxpZ2h0bmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkQ2hyb21h
ID0gc3RkOjptYXgoMC4wLCAqY2hyb21hKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRIdWUgPSBub3Jt
YWxpemVIdWUoKmh1ZSk7CiAKLSAgICByZXR1cm4gTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxm
bG9hdD4ocmVzb2x2ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRDaHJv
bWEpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRIdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
cmVzb2x2ZWRBbHBoYSkgfTsKKyAgICByZXR1cm4gTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxm
bG9hdD4obm9ybWFsaXplZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVk
Q2hyb21hKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRIdWUpLCBzdGF0aWNfY2FzdDxm
bG9hdD4oKmFscGhhKSB9OwogfQogCiBzdGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0ZXJzKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0
KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMzAgIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgY2FsYygpIG9uIGNvbXBvbmVudHMg
aW5zaWRlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjI3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGVzdCBhbmQgcmVzdWx0cyBmb3Ig
dXBkYXRlIHN1cHBvcnQgaW5jbHVkaW5nIGNhbGMoKSAKKyAgICAgICAgYW5kIGNvbXBvbWVudCBw
ZXJtdXRhdGlvbi4KKworICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3It
c3ludGF4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZl
LWNvbG9yLXN5bnRheC5odG1sOgorCiAyMDIxLTA1LTI5ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhl
eWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEludGVybmFscy5tYWluVGhyZWFkU2Ny
b2xsaW5nUmVhc29ucyB0byBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNv
bG9yLXN5bnRheC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODI0NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNDIsMjAgKzQyLDI3IEBAIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAyNSBnIGIgLyAyNSUpIikgaXMgInJnYmEo
MjUsIDUxLCA3NywgMC4yNSkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAyNSBiIC8gMjUlKSIpIGlzICJy
Z2JhKDI2LCAyNSwgNzcsIDAuMjUpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgZyAyNSAvIDI1JSkiKSBp
cyAicmdiYSgyNiwgNTEsIDI1LCAwLjI1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgYiBhbHBoYSByIC8gZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVy
cGxlIHIgciByIC8gcikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhh
IGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
ZyBiIHIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBhbHBoYSBy
IC8gZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIHIgciAvIHIp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxw
aGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAlIDEwKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmVi
ZWNjYXB1cnBsZSAwJSAxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwg
NDAlKSByIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBy
IDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAx
MCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKSIpIGlzICJyZ2IoNTEsIDE1
MywgMTAyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoMTUzLCAyNTUsIDEwMiwg
MC4yKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSBy
ZWJlY2NhcHVycGxlIHIgciByIC8gcikiKSBpcyAicmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2Fw
dXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiKDI1NSwgMjU1LCAyNTUp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKSIpIGlzICJyZ2IoNTEsIDc3LCAyNikiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgYiBhbHBoYSByIC8gZykiKSBpcyAicmdiYSg3NywgMTAyLCAyNiwgMC4yKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSByIHIgciAvIHIpIikgaXMgInJnYmEoMjYsIDI2LCAyNiwgMC4xKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDEwMiwg
MTAyLCAxMDIsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMCkiKSBpcyAicmdiKDEwMiwgMjYsIDEwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIHIgMTAgMTAlKSIpIGlzICJyZ2IoMTAyLCAxMCwgMjYpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUgMTAgMTAp
IikgaXMgInJnYigwLCAxMCwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAlIDEwKSIpIGlzICJy
Z2IoMjYsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpIikgaXMgInJnYigyNiwg
MTAsIDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAxMCkiKSBpcyAicmdiKDAsIDEwLCAxMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNj
YXB1cnBsZSBjYWxjKHIpIGNhbGMoZykgY2FsYyhiKSkiKSBpcyAicmdiKDEwMiwgNTEsIDE1Myki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNj
YXB1cnBsZSByIGNhbGMoZyAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgMjYsIDEwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxl
IHIgY2FsYyhiICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCA3NywgMTApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxj
KGIgKiAuNSArIGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDEwMiwgMTApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBj
YWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDUxLCAxMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBy
IGNhbGMoYiAqIC41IC0gZyAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgNTEsIDEwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBjYWxjKHIpIGNhbGMoZykgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJy
Z2JhKDI2LCA1MSwgNzcsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByZWQgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgbCBnIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGcgYiki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKQEAgLTkxLDE0ICs5OCwyNCBAQCBQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCAyNSUgbCAvIGFs
cGhhKSIpIGlzICJyZ2JhKDM5LCA1MSwgNjQsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIDI1
JSAvIGFscGhhKSIpIGlzICJyZ2JhKDMyLCA2MywgOTUsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCBzIGwgLyAuMjUpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC4yNSkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcyki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1Q
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1
cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgaCBsIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBhbHBoYSBsIC8gcykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBh
bHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMp
IikgaXMgInJnYigxMjgsIDc3LCAxNzkpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBsIC8gcykiKSBpcyAicmdi
YSgxMDIsIDAsIDIwNCwgMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBsIC8gbCkiKSBpcyAicmdiYSgxMDIsIDYx
LCAxNDMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigyNTUs
IDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgcykiKSBpcyAicmdiKDEwMSwgMTI2LCAx
NTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMzEsIDUxLCA3
MiwgMC40OTQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbCkiKSBpcyAicmdiYSg0MSwgNTEs
IDYyLCAwLjIwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlz
ICJyZ2JhKDYxLCAxMDEsIDE0MywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIHMgaCBsKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9t
IHJlYmVjY2FwdXJwbGUgcyBzIHMgLyBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUg
aCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxw
aGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIGgg
bCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIHMgcyAvIHMpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxw
aGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGMocykgY2FsYyhs
KSkiKSBpcyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhoKSBjYWxj
KHMpIGNhbGMobCkgLyBjYWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjQpIgog
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgaCAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIDEwIDEwJSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIDEwJSBzIGwpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCkBAIC0xNDAsMTQgKzE1NywyNCBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCAyNSUgYiAvIGFscGhhKSIpIGlzICJyZ2Jh
KDY0LCA3MCwgNzcsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IDI1JSAvIGFscGhhKSIpIGlz
ICJyZ2JhKDI2LCAxMDcsIDE5MSwgMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgYiAvIC4yNSki
KSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjI1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYiB3KSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihm
cm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIK
LVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2Nh
cHVycGxlIGggdyB3IC8gdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEg
YWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBo
IGIgdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIHcg
LyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdyki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8g
YWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdykiKSBpcyAicmdiKDE1
MywgMTAyLCAyMDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3
Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgyMTMsIDIxMywg
MjEzLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihm
cm9tIHJlYmVjY2FwdXJwbGUgaCB3IHcgLyB3KSIpIGlzICJyZ2JhKDEyOCwgNTEsIDIwNCwgMC4y
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJl
Y2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiKDEyOCwgMTI4LCAxMjgp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGggYiB3KSIpIGlzICJyZ2IoMTc4LCAyMDMsIDIyOSkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgxMDIsIDE2NCwgMjI5LCAwLjY5
OCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcgLyB3KSIpIGlzICJyZ2JhKDI2LCAxMjYsIDIyOSwg
MC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSBy
Z2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEo
MTAyLCAxMjcsIDE1MywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIHcgaCBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVj
Y2FwdXJwbGUgYiBiIGIgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGgg
LyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBh
bHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSB3IGIgaCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBiIGIgYiAvIGIpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGModykgY2FsYyhiKSkiKSBp
cyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhoKSBjYWxjKHcpIGNh
bGMoYikgLyBjYWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUg
aCAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIDEwIDEwJSkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJod2IoZnJvbSByZWJlY2NhcHVycGxlIDEwJSB3IGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CkBAIC0xODIsMTQgKzIwOSwxNiBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20g
bGFiKDI1JSAyMCA1MCAvIDQwJSkgbCAzNSBiIC8gYWxwaGEpIikgaXMgImxhYigyNSUgMzUgNTAg
LyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSAzNSAvIGFscGhhKSIpIGlzICJsYWIoMjUlIDIwIDM1
IC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYiAvIC4zNSkiKSBpcyAibGFiKDI1JSAyMCA1MCAv
IDAuMzUpIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTApIGwgYiBhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwg
YiBhKSIpIGlzICJsYWIoMjUlIDUwIDIwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGEgYSAvIGEpIikgaXMgImxhYigy
NSUgMjAgMjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihm
cm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYiBhKSIpIGlzICJsYWIoMjUlIDUwIDIwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIw
IDUwIC8gNDAlKSBsIGEgYSAvIGEpIikgaXMgImxhYigyNSUgMjAgMjApIgogUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxw
aGEgYSAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFscGhhIGEgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigy
NSUgMjAgNTAgLyA0MCUpIGwgYSBhIC8gYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUw
IC8gNDAlKSBsIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAy
MCA1MCkgY2FsYyhsKSBjYWxjKGEpIGNhbGMoYikpIikgaXMgImxhYigyNSUgMjAgNTApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAg
NTAgLyA0MCUpIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpIikgaXMgImxh
YigyNSUgMjAgNTAgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxh
YigyNSUgMjAgNTApIGwgMTAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIDEw
IGEgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKQEAgLTIzMSwxMCArMjYwLDIyIEBAIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBsIGMgMjUg
LyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSAyNSAvIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIDI1
ZGVnIC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgMjUgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwg
YyBoIC8gLjI1KSIpIGlzICJsY2goNzAlIDQ1IDMwIC8gMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBo
IC8gbCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpIikgaXMgImxjaCgxMDAl
IDQ1IDMwIC8gMC43KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGMgYyAvIGFscGhhKSIpIGlzICJsY2goNzAlIDQ1IDQ1
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2go
NzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSkiKSBpcyAibGNoKDEwMCUgNDUgMzApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGFscGhhIGMgYyAvIGFscGhhKSIpIGlzICJsY2goMTAwJSA0NSA0NSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQw
JSkgYWxwaGEgYyBoIC8gbCkiKSBpcyAibGNoKDQwJSA0NSAzMCAvIDAuNykiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQw
JSkgbCBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSA0NSAvIDAuNCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQw
JSkgYWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgImxjaCg0MCUgNDUgMzAgLyAwLjQpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAg
LyA0MCUpIGFscGhhIGMgYyAvIGFscGhhKSIpIGlzICJsY2goNDAlIDQ1IDQ1IC8gMC40KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1
IDMwKSBoIGwgYyAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGMgYyBj
IC8gYykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBhbHBoYSBhbHBoYSAv
IGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGggbCBjIC8gYWxw
aGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYyBjIGMgLyBjKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxw
aGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgY2FsYyhsKSBjYWxjKGMpIGNhbGMo
aCkpIikgaXMgImxjaCg3MCUgNDUgMzApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGNhbGMobCkgY2FsYyhjKSBj
YWxjKGgpIC8gY2FsYyhhbHBoYSkpIikgaXMgImxjaCg3MCUgNDUgMzAgLyAwLjQpIgogUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAp
IGwgMTAlIGgpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBjIDEwJSkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSAxMCBjIGgpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CkBAIC0yNDQsNiArMjg1LDIxIEBAIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSBsaWdodG5lc3MgYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIHggYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgZyBiKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
InJnYihmcm9tIHZhcigtLWJnLWNvbG9yKSByIGcgYiAvIDgwJSkiKSBpcyAicmdiYSgwLCAwLCAy
NTUsIDAuOCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZy
b20gdmFyKC0tY29sb3IpIGNhbGMobCAvIDIpIGMgaCkiKSBpcyAibGNoKDIzLjEzODk3MSUgNjcu
OTg5NzE2IDEzNC4zOTEyNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAicmdiKGZyb20gdmFyKC0tY29sb3IpIGNhbGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEp
IGNhbGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEpIGNhbGMociAqIC4zICsgZyAqIC41OSAr
IGIgKiAuMTEpKSIpIGlzICJyZ2IoNzYsIDc2LCA3NikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gdmFyKC0tY29sb3IpIGwgMCBoKSIpIGlzICJsY2go
NDYuMjc3OTQzJSAwIDEzNC4zOTEyNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gaW5kaWFucmVkIDI1NSBnIGIpIikgaXMgInJnYigyNTUsIDkyLCA5
MikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gdmFy
KC0tYWNjZW50KSBjYWxjKGggKyAxODBkZWcpIHMgbCkiKSBpcyAicmdiKDE3OCwgMzIsIDQwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1t
eWNvbG9yKSBsIGEgYiAvIDEwMCUpIikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4x
MTcyODMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAqIDAuOCkpIikgaXMgImxhYig2Mi43
NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhh
bHBoYSAtIDIwJSkpIikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAw
LjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIHZh
cigtLW15Y29sb3IpIGwgMCAwKSIpIGlzICJsYWIoNjIuNzUxOTIzJSAwIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHBlcnUgY2FsYyhsICogMC44
KSBjIGgpIikgaXMgImxjaCg0OS44MDEzOCUgNTQuMDAzMjk2IDYzLjY4MDMxNykiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiTENIKGZyb20gdmFyKC0tYWNjZW50KSBs
IGMgY2FsYyhoICsgMTgwZGVnKSkiKSBpcyAibGNoKDY1LjQ5NDczJSAzOS40NDY5MDMgMTAuMTE0
NDcxKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSB2
YXIoLS1teWNvbG9yKSBsIDAgaCkiKSBpcyAibGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInZhcigtLW15Z3JheSkiKSBp
cyAibGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLW15Z3JheSkgbCAzMCBoKSIpIGlzICJsY2go
NjIuNzUxOTIzJSAzMCAzMjYuOTYxMTIpIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJl
bGF0aXZlLWNvbG9yLXN5bnRheC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4Lmh0bWwJKHJldmlzaW9uIDI3ODI0NikK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSwxNSBAQAogPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBDU1NSZWxhdGl2ZUNvbG9yU3ludGF4RW5hYmxlZD10cnVlIF0g
LS0+CiA8aHRtbD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGh0bWwgeyAKKyAgICAgICAgICAg
IC0tYmctY29sb3I6IGJsdWU7CisgICAgICAgICAgICAtLWNvbG9yOiBncmVlbjsKKyAgICAgICAg
ICAgIC0tYWNjZW50OiBsaWdodHNlYWdyZWVuOworICAgICAgICAgICAgLS1teWNvbG9yOiBvcmNo
aWQ7CisgICAgICAgICAgICAtLW15Z3JheTogbGNoKGZyb20gdmFyKC0tbXljb2xvcikgbCAwIGgp
OworICAgICAgICB9CisgICAgPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KQEAg
LTk1LDIzICsxMDQsMzIgQEAKICAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIHIgMjUgYiAvIDI1JSlgLCBgcmdiYSgyNiwgMjUsIDc3LCAwLjI1KWApOwog
ICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciBnIDI1
IC8gMjUlKWAsIGByZ2JhKDI2LCA1MSwgMjUsIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBl
cm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxs
b3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcilg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNj
YXB1cnBsZSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgciByIC8gcilgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBh
bHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcilgLCBgcmdiYSgwLCAw
LCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgYiBhbHBoYSByIC8gZylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciByIHIgLyByKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7Ci0KLSAgICAvLyBUZXN0aW5nIGludmFsaWQgbWl4ZXMgb2YgbnVtYmVyIGFuZCBwZXJjZW50
YWdlCi0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAlIDEwKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIHIgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVk
KGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIDAlIDEwIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEw
JSAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
LSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIDAlIDEw
IDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbi4K
KyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgZyBiIHIpYCwgYHJnYig1
MSwgMTUzLCAxMDIpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxl
IGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoMTUzLCAyNTUsIDEwMiwgMC4yKWApOworICAgIHRlc3RD
b21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpYCwgYHJnYmEoMTAyLCAx
MDIsIDEwMiwgMC40KWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBs
ZSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlgKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKWAs
IGByZ2IoNTEsIDc3LCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoNzcsIDEwMiwgMjYsIDAuMilg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIg
ciByIC8gcilgLCBgcmdiYSgyNiwgMjYsIDI2LCAwLjEpYCk7CisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhh
KWAsIGByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNClgKTsKKworICAgIC8vIFRlc3RpbmcgbWl4ZXMg
b2YgbnVtYmVyIGFuZCBwZXJjZW50YWdlLiAoVGhlc2Ugd291bGQgbm90IGJlIGFsbG93ZWQgaW4g
dGhlIG5vbi1yZWxhdGl2ZSBzeW50YXgpLgorICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmVi
ZWNjYXB1cnBsZSByIDEwJSAxMClgLCBgcmdiKDEwMiwgMjYsIDEwKWApOworICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEwJSlgLCBgcmdiKDEwMiwgMTAsIDI2
KWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSAwJSAxMCAxMClg
LCBgcmdiKDAsIDEwLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIHIgMTAlIDEwKWAsIGByZ2IoMjYsIDI2LCAxMClgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKWAsIGBy
Z2IoMjYsIDEwLCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIDAlIDEwIDEwKWAsIGByZ2IoMCwgMTAsIDEwKWApOworCisgICAgLy8gVGVz
dGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJw
bGUgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7CisgICAg
dGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhnICogLjUpIDEwKWAs
IGByZ2IoMTAyLCAyNiwgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIHIgY2FsYyhiICogLjUpIDEwKWAsIGByZ2IoMTAyLCA3NywgMTApYCk7CisgICAgdGVz
dENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgKyBnICogLjUp
IDEwKWAsIGByZ2IoMTAyLCAxMDIsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41IC0gZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgNTEs
IDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMo
YiAqIC41IC0gZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgNTEsIDEwKWApOworICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhyKSBjYWxjKGcpIGNh
bGMoYikgLyBjYWxjKGFscGhhKSlgLCBgcmdiYSgyNiwgNTEsIDc3LCAwLjQpYCk7CiAKICAgICAv
LyBUZXN0aW5nIGludmFsaWQgY29tcG9uZW50IG5hbWVzCiAgICAgdGVzdENvbXB1dGVkKGByZ2Io
ZnJvbSByZWJlY2NhcHVycGxlIHJlZCBnIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTE2
MSwxNSArMTc5LDI5IEBACiAgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBoIHMgMjUlIC8gYWxwaGEpYCwgYHJnYmEoMzIsIDYzLCA5NSwgMC40KWApOwog
ICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIGwg
LyAuMjUpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC4yNSlgKTsKIAotICAgIC8vIFRlc3RpbmcgcGVy
bXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxv
dyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBzKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2Nh
cHVycGxlIGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29t
cHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEg
YWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChg
aHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQo
YGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbClgLCBgcmdiYSgwLCAw
LCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAg
Ly8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcylgLCBgcmdiKDEyOCwgNzcsIDE3OSlg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBsIC8g
cylgLCBgcmdiYSgxMDIsIDAsIDIwNCwgMC41KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpYCwgYHJnYmEoMTAyLCA2MSwgMTQzLCAwLjQpYCk7
CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEg
LyBhbHBoYSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2wo
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgcylgLCBgcmdiKDEwMSwgMTI2LCAxNTIp
YCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBo
IGFscGhhIGwgLyBzKWAsIGByZ2JhKDMxLCA1MSwgNzIsIDAuNDk0KWApOworICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIGwgLyBsKWAsIGByZ2Jh
KDQxLCA1MSwgNjIsIDAuMjA0KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDYxLCAxMDEs
IDE0MywgMC40KWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBl
cyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxl
IHMgaCBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJv
bSByZWJlY2NhcHVycGxlIHMgcyBzIC8gcylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRl
c3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGggaCAvIGgpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgYWxw
aGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RD
b21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBoIGwpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIHMgcyBzIC8gcylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGMocykgY2FsYyhsKSlgLCBgcmdiKDEwMiwg
NTEsIDE1MylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGNhbGMoaCkgY2FsYyhzKSBjYWxjKGwpIC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYs
IDUxLCA3NywgMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0
ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKQEAgLTIyOCwxNSArMjYwLDI5IEBACiAgICAgdGVzdENvbXB1dGVkKGBod2Io
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgMjUlIC8gYWxwaGEpYCwgYHJnYmEoMjYs
IDEwNywgMTkxLCAwLjQpYCk7CiAgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBoIHcgYiAvIC4yNSlgLCBgcmdiYSgyNiwgNTEsIDc3LCAwLjI1KWApOwog
Ci0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQg
cGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJl
YmVjY2FwdXJwbGUgaCBiIHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0
ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAv
IHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJl
YmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIg
dylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3
IHcgLyB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICAvLyBUZXN0aW5nIHZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBt
YXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYiB3KWAs
IGByZ2IoMTUzLCAxMDIsIDIwNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVj
Y2FwdXJwbGUgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgyMTMsIDIxMywgMjEzLCAwLjQpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggdyB3IC8gdylgLCBgcmdi
YSgxMjgsIDUxLCAyMDQsIDAuMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVj
Y2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2IoMTI4LCAxMjgsIDEyOClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYiB3
KWAsIGByZ2IoMTc4LCAyMDMsIDIyOSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMTAyLCAxNjQsIDIy
OSwgMC42OTgpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIHcgdyAvIHcpYCwgYHJnYmEoMjYsIDEyNiwgMjI5LCAwLjEpYCk7CisgICAgdGVz
dENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhh
IC8gYWxwaGEpYCwgYHJnYmEoMTAyLCAxMjcsIDE1MywgMC40KWApOworCisgICAgLy8gVGVzdGlu
ZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIHcgaCBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYiBiIC8gYilgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1
cnBsZSBoIGggaCAvIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgdyBiIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYiBiIC8gYilgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAv
IGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2Fs
YygpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNh
bGModykgY2FsYyhiKSlgLCBgcmdiKDEwMiwgNTEsIDE1MylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyh3KSBjYWxjKGIp
IC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40KWApOwogCiAgICAgLy8gVGVz
dGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2Fw
dXJwbGUgaCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTI4OCwxNiArMzM0LDIy
IEBACiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEg
MzUgLyBhbHBoYSlgLCBgbGFiKDI1JSAyMCAzNSAvIDAuNClgKTsKICAgICB0ZXN0Q29tcHV0ZWQo
YGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSBiIC8gLjM1KWAsIGBsYWIoMjUlIDIw
IDUwIC8gMC4zNSlgKTsKIAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVuY2xlYXIgaWYg
dGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAgdGVzdENvbXB1
dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OworICAgIC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICB0
ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYiBhKWAsIGBsYWIoMjUlIDUw
IDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEg
LyBhKWAsIGBsYWIoMjUlIDIwIDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFi
KDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpYCwgYGxhYigyNSUgNTAgMjApYCk7CisgICAgdGVzdENv
bXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYSAvIGEpYCwgYGxhYigy
NSUgMjAgMjApYCk7CisKKyAgICAvLyBUZXN0aW5nIGludmFsaWQgcGVybXV0YXRpb24gKHR5cGVz
IGRvbid0IG1hdGNoKS4KICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAp
IGwgYWxwaGEgYSAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQo
YGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBhIC8gYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhbHBoYSBhbHBo
YSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsYWIo
ZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwog
ICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBh
IC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
bGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGEgLyBhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAg
ICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFscGhhIGFs
cGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKIAorICAgIC8vIFRlc3Rpbmcgd2l0
aCBjYWxjKCkuCisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBjYWxj
KGwpIGNhbGMoYSkgY2FsYyhiKSlgLCBgbGFiKDI1JSAyMCA1MClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIp
IC8gY2FsYyhhbHBoYSkpYCwgYGxhYigyNSUgMjAgNTAgLyAwLjQpYCk7CisKICAgICAvLyBUZXN0
aW5nIGludmFsaWQgdmFsdWVzLgogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAy
MCA1MCkgbCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQo
YGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CkBAIC0zNTUsMTEgKzQwNywyOCBAQAogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcw
JSA0NSAzMCAvIDQwJSkgbCBjIDI1ZGVnIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgMjUgLyAwLjQp
YCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBsIGMg
aCAvIC4yNSlgLCBgbGNoKDcwJSA0NSAzMCAvIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBl
cm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxs
b3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEg
YyBoIC8gbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGNoKGZy
b20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhh
IGMgaCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChm
cm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKWAsIGByZ2JhKDAsIDAs
IDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gp
LgorICAgIC8vIE5PVEU6ICdjJyBpcyBhIHZhaWxkIGh1ZSwgYXMgaHVlIGlzIDxhbmdsZT58PG51
bWJlcj4uCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBj
IGggLyBsKWAsIGBsY2goMTAwJSA0NSAzMCAvIDAuNylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxj
aChmcm9tIGxjaCg3MCUgNDUgMzApIGwgYyBjIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgNDUpYCk7
CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBh
bHBoYSlgLCBgbGNoKDEwMCUgNDUgMzApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSBhbHBoYSBjIGMgLyBhbHBoYSlgLCBgbGNoKDEwMCUgNDUgNDUpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGgg
LyBsKWAsIGBsY2goNDAlIDQ1IDMwIC8gMC43KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZy
b20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIGMgLyBhbHBoYSlgLCBgbGNoKDcwJSA0NSA0NSAv
IDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUp
IGFscGhhIGMgaCAvIGFscGhhKWAsIGBsY2goNDAlIDQ1IDMwIC8gMC40KWApOworICAgIHRlc3RD
b21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBjIC8gYWxwaGEp
YCwgYGxjaCg0MCUgNDUgNDUgLyAwLjQpYCk7CisKKyAgICAvLyBUZXN0aW5nIGludmFsaWQgcGVy
bXV0YXRpb24gKHR5cGVzIGRvbid0IG1hdGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9t
IGxjaCg3MCUgNDUgMzApIGggbCBjIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGMgYyBjIC8gYylgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAz
MCkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAg
IHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgaCBsIGMgLyBhbHBo
YSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNo
KDcwJSA0NSAzMCAvIDQwJSkgYyBjIGMgLyBjKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAg
dGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBhbHBoYSBh
bHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAvLyBUZXN0aW5nIHdp
dGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgY2Fs
YyhsKSBjYWxjKGMpIGNhbGMoaCkpYCwgYGxjaCg3MCUgNDUgMzApYCk7CisgICAgdGVzdENvbXB1
dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYykgY2FsYyho
KSAvIGNhbGMoYWxwaGEpKWAsIGBsY2goNzAlIDQ1IDMwIC8gMC40KWApOwogCiAgICAgLy8gVGVz
dGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUg
NDUgMzApIGwgMTAlIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTM3Myw2ICs0NDIsNDQg
QEAKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGxpZ2h0bmVzcyBj
IGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxj
aCg3MCUgNDUgMzApIHggYyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1
dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGcgYilgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OworCisKKyAgICAvLyBTcGVjIGV4YW1wbGVzOgorICAgIC8vIEV4YW1wbGUgMTEuCisgICAgdGVz
dENvbXB1dGVkKGByZ2IoZnJvbSB2YXIoLS1iZy1jb2xvcikgciBnIGIgLyA4MCUpYCwgYHJnYmEo
MCwgMCwgMjU1LCAwLjgpYCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxMi4KKyAgICB0ZXN0Q29t
cHV0ZWQoYGxjaChmcm9tIHZhcigtLWNvbG9yKSBjYWxjKGwgLyAyKSBjIGgpYCwgYGxjaCgyMy4x
Mzg5NzElIDY3Ljk4OTcxNiAxMzQuMzkxMjUpYCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxMy4K
KyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHZhcigtLWNvbG9yKSBjYWxjKHIgKiAuMyArIGcg
KiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIg
KiAuMyArIGcgKiAuNTkgKyBiICogLjExKSlgLCBgcmdiKDc2LCA3NiwgNzYpYCkKKyAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIHZhcigtLWNvbG9yKSBsIDAgaClgLCBgbGNoKDQ2LjI3Nzk0MyUg
MCAxMzQuMzkxMjUpYCkKKworICAgIC8vIEV4YW1wbGUgMTQuCisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSBpbmRpYW5yZWQgMjU1IGcgYilgLCBgcmdiKDI1NSwgOTIsIDkyKWApOworCisgICAg
Ly8gRXhhbXBsZSAxNS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHZhcigtLWFjY2VudCkg
Y2FsYyhoICsgMTgwZGVnKSBzIGwpYCwgYHJnYigxNzgsIDMyLCA0MClgKTsKKworICAgIC8vIEV4
YW1wbGUgMTYuCisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEg
YiAvIDEwMCUpYCwgYGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMpYCk7CisgICAg
dGVzdENvbXB1dGVkKGBsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEg
KiAwLjgpKWAsIGBsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8gMC44KWApOwor
ICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyBjYWxjKGFs
cGhhIC0gMjAlKSlgLCBgbGFiKDYyLjc1MTkyMyUgNTIuNDU4MDIgLTM0LjExNzI4MyAvIDAuOClg
KTsKKyAgICAKKyAgICAvLyBFeGFtcGxlIDE3LgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
dmFyKC0tbXljb2xvcikgbCAwIDApYCwgYGxhYig2Mi43NTE5MjMlIDAgMClgKTsKKworICAgIC8v
IEV4YW1wbGUgMTguCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBwZXJ1IGNhbGMobCAqIDAu
OCkgYyBoKWAsIGBsY2goNDkuODAxMzglIDU0LjAwMzI5NiA2My42ODAzMTcpYCk7CisKKyAgICAv
LyBFeGFtcGxlIDE5LgorICAgIHRlc3RDb21wdXRlZChgTENIKGZyb20gdmFyKC0tYWNjZW50KSBs
IGMgY2FsYyhoICsgMTgwZGVnKSlgLCBgbGNoKDY1LjQ5NDczJSAzOS40NDY5MDMgMTAuMTE0NDcx
KWApOworCisgICAgLy8gRXhhbXBsZSAyMC4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIHZh
cigtLW15Y29sb3IpIGwgMCBoKWAsIGBsY2goNjIuNzUxOTIzJSAwIDMyNi45NjExMilgKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoYHZhcigtLW15Z3JheSlgLCBgbGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYx
MTIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1teWdyYXkpIGwgMzAgaClg
LCBgbGNoKDYyLjc1MTkyMyUgMzAgMzI2Ljk2MTEyKWApOworICAgIAogPC9zY3JpcHQ+CiAgICAg
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430142</attachid>
            <date>2021-05-30 12:03:47 -0700</date>
            <delta_ts>2021-05-30 12:18:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210530120346.patch</filename>
            <type>text/plain</type>
            <size>88795</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5kIHVwZGF0ZWQgdGVzdCBj
YXNlcyBpbiBleGlzdGluZyBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5o
dG1sCisKKyAgICAgICAgVXBkYXRlcyBzdXBwb3J0IGZvciB0aGUgQ1NTIENvbG9yIDUgIlJlbGF0
aXZlIENvbG9yIFN5bnRheCIgdG8gc3VwcG9ydAorICAgICAgICBib3RoIGNhbGMoKSBvbiBjb21w
b25lbnRzIGFuZCBjb21wb25lbnQgcGVybXV0YXRpb25zIHdpdGhpbiB0aGUgc3ludGF4LgorCisg
ICAgICAgIFRoaXMgYWxsb3dzIGZvciB0aGluZ3MgbGlrZToKKyAgICAgICAgCisgICAgICAgICAg
ICBiYWNrZ3JvdW5kOiBsY2goZnJvbSB2YXIoLS1wcmltYXJ5LWNvbG9yKSA2MCUgY2FsYyhjICog
MC44KSBoKTsKKworICAgICAgICAgICAgb3IKKworICAgICAgICAgICAgYmFja2dyb3VuZDogbGNo
KGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcik7CisKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmss
IHRoZSBjYWxjKCkgaW5mcmFzdHJ1Y3R1cmUgbm93IHN1cHBvcnRzIHBhc3NpbmcgYSBDU1NDYWxj
U3ltYm9sVGFibGUKKyAgICAgICAgd2hpY2ggYWxsb3dzIHRoZSBsb2dpYyBpbiB0aGUgcGFyc2Vy
IHRvIGxvb2t1cCB1bmtub3duIGlkZW50aWZpZXJzIHdoZW4gcGFyc2luZyBhIHZhbHVlLgorICAg
ICAgICBUaGUgcmVsYXRpdmUgY29sb3Igc3ludGF4IHBhcnNlcnMgY2FuIHRoZW4gYnVpbGQgYW4g
YXBwcm9wcmlhdGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIGZpbGxlZAorICAgICAgICB3aXRoIHRoZSBj
b21wb25lbnRzIG9mIHRoZSBvcmlnaW4gY29sb3IuCisKKyAgICAgICAgU2luY2UgdGhlc2UgY2Fs
YygpIHZhbHVlcyBhcmUgbm90IHNlcmlhbGl6ZWQsIHRoaXMgY2FuIGFsbCBoYXBwZW4gaW4gdGhl
IHBhcnNlciwgYnV0IGlmCisgICAgICAgIHdlIHRvIGJlIGFibGUgc2VyaWFsaXplIHRoZW0gaW4g
dGhlIGZ1dHVyZSwgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSBjb3VsZCBiZSB1cGRhdGVkCisg
ICAgICAgIHRvIHN0b3JlIHRoZSBzeW1ib2wgbmFtZSBpbiBhZGRpdGlvbiB0byBzdG9yaW5nIHRo
ZSB2YWx1ZSBhbmQgdHlwZSAob3Igd2UgY291bGQgd2UgY291bGQKKyAgICAgICAgYWRkIGEgbmV3
IG5vZGUgZm9yIGl0KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxj
U3ltYm9sVGFibGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaDogQWRkZWQuCisgICAgICAgIEFkZCBDU1NDYWxjU3ltYm9sVGFibGUgd2hpY2ggY29u
dGFpbnMgYSBtYXBwaW5nIGZyb20gQ1NTVmFsdWVJRCB0byBDU1NVbml0VHlwZS9kb3VibGUgcGFp
cnMuCisKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgV2hlbiB0cnlpbmcgdG8gY29uc3RydWN0IGEgdmFsdWUgbm9kZSwgaWYg
dGhlIHRva2VuIGlzIGEgaWRlbnRpZmllciwgdXNlIHRoZSBuZXcKKyAgICAgICAgc3ltYm9sIHRh
YmxlIHRvIGxvb2sgdXAgYSB0eXBlL3ZhbHVlIHRvIHVzZSBpbnN0ZWFkLiBVc2UgYSBzd2l0Y2gg
dG8gbWFrZSB0aGluZ3MKKyAgICAgICAgYSBiaXQgbW9yZSBjbGVhciB0aGF0IGRpZmZlcmVudGlh
dGlvbiBpcyBiZWluZyBkb25lIGJhc2VkIG9uIHRva2VuIHR5cGUuCisKKyAgICAgICAgKiBjc3Mv
Y2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaDoKKyAgICAgICAgQWRkIHJlZmVyZW5j
ZSB0byBhIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyLiBUaGUgcGFyc2VyIHNob3Vs
ZCBvbmx5IGV2ZXIgYmUgdXNlZAorICAgICAgICBvbiB0aGUgc3RhY2ssIHNvIHRoaXMgd29ya3Mg
d2VsbCBhbmQgYWxsb3dzIHVzIHRvIGF2b2lkIGNvcHlpbmcgdGhlIHRhYmxlLgorCisgICAgICAg
ICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNW
YWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjVmFsdWUuaDoKKyAgICAg
ICAgUGFzcyB0aGUgQ1NTQ2FsY1N5bWJvbFRhYmxlIHRvIHRoZSBwYXJzZXIgaWYgb25lIGlzIHBy
b3ZpZGVkLiBBbiBvdmVybG9hZCB3YXMgdXNlZAorICAgICAgICB0byBhdm9pZCAjaW5jbHVkaW5n
IENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIHRoZSBoZWFkZXIganVzdCB0byBhZGQgYSBkZWZhdWx0
IHZhbHVlLgorCisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgIEdpdmUgYSBj
b25jcmV0ZSBiYXNlIG9mIHVpbnQxNl90IHRvIGFsbG93IGl0IHRvIGJlIGZvcndhcmQgZGVjbGFy
ZWQgYW5kIGFkZCBEZWZhdWx0SGFzaAorICAgICAgICBhbmQgSGFzaFRyYWl0cyB0byBhbGxvdyBp
dCB0byBiZSB1c2VkIHdpdGggSGFzaFRhYmxlLiBUaGVzZSBtYXRjaCB0aGUgZGVmaW5pdGlvbiBv
ZgorICAgICAgICBDU1NQcm9wZXJ0eUlELgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpDYWxjUGFyc2VyOjpDYWxjUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZU51bWJlclJhdyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVQZXJjZW50V29ya2VyU2FmZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVBbmds
ZVJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVBbmdsZVdvcmtlclNhZmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpjb25zdW1lQW5nbGVPclBlcmNlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSHVlT3JJZGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1i
ZXJPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6
Y29uc3VtZVBlcmNlbnRPcklkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VySGVscGVyczo6Y29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVs
YXRpdmVSR0IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpw
YXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIU0xQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2ZUhXQlBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZVJl
bGF0aXZlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVMQ0hQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6ZXh0cmFjdENoYW5uZWxWYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnJlc29sdmVSZWxh
dGl2ZUNvbG9yQ2hhbm5lbCk6IERlbGV0ZWQuCisgICAgICAgIFJld29yayByZWxhdGl2ZSBjb2xv
ciBzeW50YXggcGFyc2luZyB0byBhbGxvdyBwZXJtdXRhdGlvbiBvZiBjaGFubmVsIHN5bWJvbHMK
KyAgICAgICAgYW5kIHVzZSBvZiB0aGUgY2FsYygpIHN5bWJvbCB0YWJsZSBzdXBwb3J0IHRvIGFs
bG93IHBhc3NpbmcgaW4gdGhlIGNoYW5uZWxzLgorICAgICAgICBUaGlzIG1ha2VzIHRoZSByZWxh
dGF0aXZlIGNvbG9yIHN5bnRheCB2YXJpYW50cyBtdWNoIGNsb3NlciB0byB0aGUgbm9ybWFsCisg
ICAgICAgIHZhcmlhbnRzICh3aXRoIHRoZSBleGNlcHRpb24gb2YgcGFzc2luZyB0aGUgc3ltYm9s
IHRhYmxlKSBhbmQgYSBzdWJzZXF1ZW50CisgICAgICAgIGNoYW5nZSB3aWxsIGF0dGVtcHQgdG8g
bWVyZ2UgdGhlbSBmdXJ0aGVyLgorCiAyMDIxLTA1LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV1RGOjpPcHRpb25hbCBzeW5vbnltIGZvciBzdGQ6
Om9wdGlvbmFsLCB1c2luZyB0aGF0IGNsYXNzIHRlbXBsYXRlIGRpcmVjdGx5IGluc3RlYWQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODMxLDYgKzgzMSw3IEBAIGNzcy9jYWxjL0NTU0Nh
bGNJbnZlcnROb2RlLmNwcAogY3NzL2NhbGMvQ1NTQ2FsY05lZ2F0ZU5vZGUuY3BwCiBjc3MvY2Fs
Yy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNQcmltaXRpdmVWYWx1
ZU5vZGUuY3BwCitjc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuY3BwCiBjc3MvY2FsYy9DU1ND
YWxjVmFsdWUuY3BwCiBjc3MvcGFyc2VyL0NTU0F0UnVsZUlELmNwcAogY3NzL3BhcnNlci9DU1NE
ZWZlcnJlZFBhcnNlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NDA3Nyw2ICs0MDc3LDcgQEAKIAkJQkM2OTMyNzQwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2lu
ZG93QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM2OTMyNzIwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9NV2luZG93QmFzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNkQ0NEVEMEMwN0YyRUQw
MDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ0NEVCMEMwN0YyRUQwMDcyRDJDOSAvKiBKU0hUTUxF
bWJlZEVsZW1lbnQuaCAqLzsgfTsKIAkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9s
bFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFD
IC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xU
YWJsZS5oICovOyB9OwogCQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBD
NEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDcwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0
dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLzsgfTsKIAkJ
QkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzREMEM0RUIzMDQwMDgz
Mjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MzA0LDYgKzE0MzA1LDggQEAKIAkJQkM2RDQ0RUIwQzA3
RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNkVCODQ1MjYyNjZCNjEwMDMyMjVBNyAvKiBDb2xvckx1bWluYW5j
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckx1bWluYW5jZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3lt
Ym9sVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxj
U3ltYm9sVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRFQTkxRTAwODMyODVG
IC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSGVs
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0MEM0RUIyQzYwMDgz
Mjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzk1Niw2ICsyNzk1OSw4IEBACiAJCQkJQkNGMTY0NUYyNjYyQTI4
RDAwMDJGN0VGIC8qIENTU0NhbGNPcGVyYXRpb25Ob2RlLmggKi8sCiAJCQkJQkNGMTY0NTQyNjYy
QTEyMjAwMDJGN0VGIC8qIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuY3BwICovLAogCQkJCUJD
RjE2NDUzMjY2MkExMjIwMDAyRjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmggKi8s
CisJCQkJQkM3MDlEREYyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5jcHAg
Ki8sCisJCQkJQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5o
ICovLAogCQkJCTQ5QUUyRDhDMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuY3BwICov
LAogCQkJCTQ5QUUyRDhEMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjVmFsdWUuaCAqLywKIAkJ
CSk7CkBAIC0zNDY2OSw2ICszNDY3NCw3IEBACiAJCQkJMjY2MDFFQkYxNEIzQjlBRDAwMTJDMEZF
IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0FBNDg3
MDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM3MDlERTAyNjYzMjNDRjAwQjlBMjFDIC8qIENTU0Nh
bGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxOTUxRDU0RjVGQjAwREQ3
QzY4IC8qIFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI2RDU2RTIyNTNB
RTI4RDAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENzcw
NUM3MjU1Mjc2Q0QwMDFEMEM5NCAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lvbiAyNzgyNTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDEw
ICsxNjQsMTIgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiAjaW5jbHVkZSA8c3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBDU1NWYWx1ZUlEIHsKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90IHsKICAgICBDU1NW
YWx1ZUludmFsaWQgPSAwLAogRU9GCiAKQEAgLTIwNCw2ICsyMDYsMTYgQEAgaW5saW5lIENTU1Zh
bHVlSUQgY29udmVydFRvQ1NTVmFsdWVJRChpbgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6Q1NTVmFsdWVJRD4gOiBJbnRIYXNoPHVuc2lnbmVkPiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlSUQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
Q29yZTo6Q1NTVmFsdWVJRD4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3Jl
OjpDU1NWYWx1ZUlEJiBzbG90KSB7IHNsb3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NWYWx1
ZUlEPihXZWJDb3JlOjpsYXN0Q1NTVmFsdWVLZXl3b3JkICsgMSk7IH0KKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NWYWx1ZUlEIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA9PSAoV2ViQ29yZTo6bGFzdENTU1ZhbHVlS2V5d29yZCArIDEpOyB9Cit9OworfSAvLyBuYW1l
c3BhY2UgV1RGCisKIEVPRgogY2xvc2UgSEVBREVSOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDExIEBACiAjaW5j
bHVkZSAiQ1NTQ2FsY05lZ2F0ZU5vZGUuaCIKICNpbmNsdWRlICJDU1NDYWxjT3BlcmF0aW9uTm9k
ZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuaCIKKyNpbmNsdWRlICJD
U1NDYWxjU3ltYm9sVGFibGUuaCIKICNpbmNsdWRlICJDU1NDYWxjVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQYXJzZXJUb2tlbi5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKKyNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xODAsMTkgKzE4MiwzNSBAQCBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VDCiAKIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
OjpwYXJzZVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywgUmVmUHRyPENTU0NhbGNF
eHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogQWRkIGNvZGUgaGVyZSB0
byBwYXJzZSBDU1NWYWxpZElEIGZvciBuYW1lZCBjb25zdGFudHMuCisgICAgYXV0byBtYWtlQ1NT
Q2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSA9IFsmXSAoQ1NTVW5pdFR5cGUgdHlwZSwgZG91YmxlIHZh
bHVlKSAtPiBib29sIHsKKyAgICAgICAgaWYgKGNhbGNVbml0Q2F0ZWdvcnkodHlwZSkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICByZXN1bHQgPSBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgdHlwZSkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9OwogCi0gICAgQ1NTUGFyc2VyVG9rZW4gdG9rZW4gPSB0b2tlbnMuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICBpZiAoISh0b2tlbi50eXBlKCkgPT0gTnVtYmVy
VG9rZW4gfHwgdG9rZW4udHlwZSgpID09IFBlcmNlbnRhZ2VUb2tlbiB8fCB0b2tlbi50eXBlKCkg
PT0gRGltZW5zaW9uVG9rZW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgYXV0
byB0eXBlID0gdG9rZW4udW5pdFR5cGUoKTsKLSAgICBpZiAoY2FsY1VuaXRDYXRlZ29yeSh0eXBl
KSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcikKKyAgICBhdXRvIHRva2VuID0gdG9rZW5z
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUo
KSkgeworICAgIGNhc2UgSWRlbnRUb2tlbjogeworICAgICAgICBhdXRvIHZhbHVlID0gbV9zeW1i
b2xUYWJsZS5nZXQodG9rZW4uaWQoKSk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZSh2YWx1ZS0+dHlwZSwgdmFsdWUtPnZhbHVlKTsKKyAgICB9CisKKyAgICBjYXNlIE51bWJl
clRva2VuOgorICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgorICAgIGNhc2UgRGltZW5zaW9uVG9r
ZW46CisgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSh0b2tlbi51
bml0VHlwZSgpLCB0b2tlbi5udW1lcmljVmFsdWUoKSk7CisKKyAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmVzdWx0ID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodG9rZW4ubnVtZXJpY1ZhbHVl
KCksIHR5cGUpKTsKLSAgICAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tl
bnMsIGludCBkZXB0aCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mIHJlc3VsdCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9u
Tm9kZVBhcnNlci5oCShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjAg
KzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkNhbGNPcGVyYXRvci5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uQ2F0ZWdv
cnkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlbjsKIGNs
YXNzIENTU1BhcnNlclRva2VuUmFuZ2U7CiAKK2VudW0gQ1NTVmFsdWVJRCA6IHVpbnQxNl90Owor
CiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcihDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnkpCisgICAgZXhwbGljaXQgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2Vy
KENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKICAgICAgICAgOiBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnko
ZGVzdGluYXRpb25DYXRlZ29yeSkKKyAgICAgICAgLCBtX3N5bWJvbFRhYmxlKHN5bWJvbFRhYmxl
KQogICAgIHsKICAgICB9CiAKQEAgLTU1LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBh
cnNlQ2FsY1ZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmLCBpbnQgZGVwdGgsIFJlZlB0cjxDU1ND
YWxjRXhwcmVzc2lvbk5vZGU+Jik7CiAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IG1fZGVzdGlu
YXRpb25DYXRlZ29yeTsKKyAgICBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIG1fc3ltYm9sVGFi
bGU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNT
eW1ib2xUYWJsZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xU
YWJsZS5oIgorCisjaW5jbHVkZSAiQ1NTVW5pdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDU1NDYWxjU3ltYm9sVGFibGU6OkNTU0NhbGNTeW1ib2xUYWJsZShzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8c3RkOjp0dXBsZTxDU1NWYWx1ZUlELCBDU1NVbml0VHlwZSwgZG91YmxlPj4gaW5pdGlh
bGl6ZXIpCit7CisgICAgZm9yIChhdXRvJiBbaWRlbnRpZmllciwgdHlwZSwgdmFsdWVdIDogaW5p
dGlhbGl6ZXIpCisgICAgICAgIG1fdGFibGUuYWRkKGlkZW50aWZpZXIsIHN0ZDo6bWFrZV9wYWly
KHR5cGUsIHZhbHVlKSk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q1NTQ2FsY1N5bWJvbFRhYmxlOjpW
YWx1ZT4gQ1NTQ2FsY1N5bWJvbFRhYmxlOjpnZXQoQ1NTVmFsdWVJRCB2YWx1ZUlEKSBjb25zdAor
eworICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gaXQgPSBtX3RhYmxlLmZpbmQodmFsdWVJRCk7CisgICAg
aWYgKGl0ID09IG1fdGFibGUuZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4ge3sgaXQtPnZhbHVlLmZpcnN0LCBpdC0+dmFsdWUuc2Vjb25kIH19OworfQor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIENTU1VuaXRUeXBlIDogdWludDhfdDsKKworY2xhc3MgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlIHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgVmFsdWUgeworICAgICAgICBDU1NV
bml0VHlwZSB0eXBlOworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgfTsKKworICAgIENTU0Nh
bGNTeW1ib2xUYWJsZSgpID0gZGVmYXVsdDsKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUoc3RkOjpp
bml0aWFsaXplcl9saXN0PHN0ZDo6dHVwbGU8Q1NTVmFsdWVJRCwgQ1NTVW5pdFR5cGUsIGRvdWJs
ZT4+KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmFsdWU+IGdldChDU1NWYWx1ZUlEKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBIYXNoTWFwPENTU1ZhbHVlSUQsIHN0ZDo6cGFpcjxDU1NVbml0VHlw
ZSwgZG91YmxlPj4gbV90YWJsZTsKK307CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Y2FsYy9DU1NDYWxjVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoLmgi
CiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25MZW5ndGguaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CkBAIC0yOTksOSArMzAwLDkgQEAgdm9pZCBDU1NDYWxjVmFsdWU6OmR1bXAoVGV4dFN0cmVhbSYg
dHMpIAogICAgIHRzIDw8ICIpXG4iOwogfQogCi1SZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxj
VmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJh
bmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFs
dWVSYW5nZSByYW5nZSkKK1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRl
KENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2Vucywg
Q2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlIHJhbmdl
LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgQ1NT
Q2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyIHBhcnNlcihkZXN0aW5hdGlvbkNhdGVnb3J5LCBzeW1i
b2xUYWJsZSk7CiAgICAgYXV0byBleHByZXNzaW9uID0gcGFyc2VyLnBhcnNlQ2FsYyh0b2tlbnMs
IGZ1bmN0aW9uKTsKICAgICBpZiAoIWV4cHJlc3Npb24pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtMzA5LDcgKzMxMCwxMiBAQCBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6
OmNyZWF0CiAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMsIHN0cmVhbSA8PCAiQ1NTQ2FsY1ZhbHVl
OjpjcmVhdGUgIiA8PCAqcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCitS
ZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0
aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdv
cnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb24sIHRva2VucywgZGVzdGluYXRpb25DYXRlZ29y
eSwgcmFuZ2UsIHsgfSk7Cit9CisKIFJlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6
Y3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUpCiB7CiAgICAgYXV0byBleHByZXNzaW9uID0gY3JlYXRlQ1NTKHZhbHVlLmV4cHJlc3Np
b24oKSwgc3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmgJ
KHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KQEAgLTM5LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlOworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRhYmxlOwog
Y2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE7CiBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTQ3LDggKzQ3LDExIEBAIGVudW0gY2xhc3MgQ1NT
VW5pdFR5cGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBDYWxjdWxhdGlvbkNhdGVnb3J5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVmFsdWVSYW5nZSA6IHVpbnQ4X3Q7CiAKK2VudW0gQ1NTVmFsdWVJ
RCA6IHVpbnQxNl90OworCiBjbGFzcyBDU1NDYWxjVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFs
dWUgewogcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NT
VmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENhbGN1bGF0aW9u
Q2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJik7CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShDU1NW
YWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ2FsY3VsYXRpb25D
YXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlKTsKICAgICBzdGF0aWMgUmVm
UHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKGNvbnN0IENhbGN1bGF0aW9uVmFsdWUmLCBjb25zdCBS
ZW5kZXJTdHlsZSYpOwogICAgIH5DU1NDYWxjVmFsdWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJl
dmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIgogCisj
aW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTQ2FudmFzVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1
ZS5oIgpAQCAtOTgsNyArOTksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1
bWVOdW1iCiAvLyBGSVhNRTogY29uc2lkZXIgcHVsbGluZyBpbiB0aGUgcGFyc2luZyBsb2dpYyBm
cm9tIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci4KIGNsYXNzIENhbGNQYXJzZXIgewogcHVi
bGljOgotICAgIGV4cGxpY2l0IENhbGNQYXJzZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSB2YWx1
ZVJhbmdlID0gVmFsdWVSYW5nZTo6QWxsLCBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpCisgICAgZXhwbGljaXQgQ2FsY1BhcnNlcihDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVn
b3J5LCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwsIGNvbnN0IENTU0Nh
bGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSB7IH0sIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQ
b29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSkKICAgICAgICAgOiBtX3NvdXJjZVJhbmdl
KHJhbmdlKQogICAgICAgICAsIG1fcmFuZ2UocmFuZ2UpCiAgICAgICAgICwgbV92YWx1ZVBvb2wo
Y3NzVmFsdWVQb29sKQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogICAgICAgICBhdXRvIGZ1bmN0
aW9uSWQgPSB0b2tlbi5mdW5jdGlvbklkKCk7CiAgICAgICAgIGlmIChDU1NDYWxjVmFsdWU6Omlz
Q2FsY0Z1bmN0aW9uKGZ1bmN0aW9uSWQpKQotICAgICAgICAgICAgbV9jYWxjVmFsdWUgPSBDU1ND
YWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5nZSksIGRl
c3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UpOworICAgICAgICAgICAgbV9jYWxjVmFsdWUg
PSBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24obV9yYW5n
ZSksIGRlc3RpbmF0aW9uQ2F0ZWdvcnksIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKICAgICB9
CiAKICAgICBjb25zdCBDU1NDYWxjVmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxj
VmFsdWUuZ2V0KCk7IH0KQEAgLTQzMyw3ICs0MzQsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNvbnN1bWVQZXJjZW50CiB7CiAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0g
cmFuZ2UucGVlaygpOwogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewot
ICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6
OlBlcmNlbnQsIHZhbHVlUmFuZ2UsIGNzc1ZhbHVlUG9vbCk7CisgICAgICAgIENhbGNQYXJzZXIg
Y2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5n
ZSwgeyB9LCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBj
YWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewogICAgICAgICAgICAgaWYgKGNhbGN1
bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CkBAIC01NDMsNyAr
NTQ0LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVXbwogewogICAg
IGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9r
ZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFy
c2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCBj
c3NWYWx1ZVBvb2wpOworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1
bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCBWYWx1ZVJhbmdlOjpBbGwsIHsgfSwgY3NzVmFsdWVQb29s
KTsKICAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBjYWxjUGFy
c2VyLnZhbHVlKCkpIHsKICAgICAgICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9
PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSkKICAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lVmFsdWUoKTsKQEAgLTU2MCw3ICs1NjEsOCBAQCBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZVdvCiBzdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBjb25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENT
U1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBVbml0bGVz
c1F1aXJrIHVuaXRsZXNzLCBVbml0bGVzc1plcm9RdWlyayB1bml0bGVzc1plcm8pCiB7CiAgICAg
Y29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwotICAgIGlmICh0b2tl
bi50eXBlKCkgPT0gRGltZW5zaW9uVG9rZW4pIHsKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkg
eworICAgIGNhc2UgRGltZW5zaW9uVG9rZW46CiAgICAgICAgIHN3aXRjaCAodG9rZW4udW5pdFR5
cGUoKSkgewogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgogICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUkFEOgpAQCAtNTY4LDI5ICs1NzAsMzggQEAgc3RhdGljIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZQogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVFVSTjoKICAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNy
ZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVl
KCksIHRva2VuLnVuaXRUeXBlKCkpOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgIH0KLSAgICBp
ZiAodG9rZW4udHlwZSgpID09IE51bWJlclRva2VuICYmIHNob3VsZEFjY2VwdFVuaXRsZXNzVmFs
dWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCB1bml0bGVz
c1plcm8pKQotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVW
YWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpLCBD
U1NVbml0VHlwZTo6Q1NTX0RFRyk7CisgICAgICAgIGJyZWFrOworICAgIAorICAgIGNhc2UgTnVt
YmVyVG9rZW46CisgICAgICAgIGlmIChzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51
bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcywgdW5pdGxlc3NaZXJvKSkKKyAg
ICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCksIENTU1VuaXRU
eXBlOjpDU1NfREVHKTsKKyAgICAgICAgYnJlYWs7CiAKLSAgICBpZiAodG9rZW4udHlwZSgpID09
IFBlcmNlbnRhZ2VUb2tlbikKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVQZXJjZW50KHJhbmdlLCB2YWx1ZVJhbmdlKTsKIAotICAgICBpZiAodG9rZW4u
dHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCi0gICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBj
YXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBhbmdsZUNhbGNQYXJzZXIo
cmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCB2YWx1ZVJhbmdlKTsKKyAgICAgICAg
aWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBhbmdsZUNhbGNQYXJzZXIudmFs
dWUoKSkgeworICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1
bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQorICAgICAgICAgICAgICAgIHJldHVybiBhbmdsZUNhbGNQ
YXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIH0KIAotICAgIENhbGNQYXJzZXIgYW5nbGVD
YWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSk7
Ci0gICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBhbmdsZUNhbGNQYXJz
ZXIudmFsdWUoKSkgewotICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCi0gICAgICAgICAgICByZXR1cm4gYW5nbGVDYWxjUGFy
c2VyLmNvbnN1bWVWYWx1ZSgpOworICAgICAgICBDYWxjUGFyc2VyIHBlcmNlbnRDYWxjUGFyc2Vy
KHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlKTsKKyAgICAg
ICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBwZXJjZW50Q2FsY1BhcnNl
ci52YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0g
Q2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGVy
Y2VudENhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAg
YnJlYWs7CiAgICAgfQotCi0gICAgQ2FsY1BhcnNlciBwZXJjZW50Q2FsY1BhcnNlcihyYW5nZSwg
Q2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSk7Ci0gICAgaWYgKGNvbnN0
IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBwZXJjZW50Q2FsY1BhcnNlci52YWx1ZSgpKSB7
Ci0gICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVn
b3J5OjpQZXJjZW50KQotICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRDYWxjUGFyc2VyLmNvbnN1
bWVWYWx1ZSgpOworICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KKwog
ICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC03NDgsMTQgKzc1OSw2MiBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVPcHRpCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVPcHRpb25hbEFscGhh
T3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlm
IChhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGEocmFuZ2UpKQotICAgICAgICByZXR1
cm4geyAqYWxwaGEgfTsKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2Uo
cmFuZ2UpKQorICAgICAgICByZXR1cm4gMS4wOwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25z
dW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAq
aWRlbnQgfTsKKyAgICBhdXRvIG5vcm1hbGl6ZVBlcmNlbnQgPSBbXShkb3VibGUgcGVyY2VudCkg
eworICAgICAgICByZXR1cm4gY2xhbXBUbyhwZXJjZW50IC8gMTAwLjAsIDAuMCwgMS4wKTsKKyAg
ICB9OworCisgICAgYXV0byBub3JtYWxpemVOdW1iZXIgPSBbXShkb3VibGUgYWxwaGEpIHsKKyAg
ICAgICAgcmV0dXJuIGNsYW1wVG8oYWxwaGEsIDAuMCwgMS4wKTsKKyAgICB9OwogCisgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOworCisgICAgc3dpdGNoICh0
b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1Bh
cnNlciBwZXJjZW50YWdlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVy
Y2VudCwgVmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIHBl
cmNlbnQgPSBwZXJjZW50YWdlQ2FsY1BhcnNlci5jb25zdW1lUGVyY2VudFJhdygpKQorICAgICAg
ICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQoKnBlcmNlbnQpOworICAgICAgICAKKyAgICAg
ICAgQ2FsY1BhcnNlciBudW1iZXJDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpOdW1iZXIsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0
byBudW1iZXIgPSBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVOdW1iZXJSYXcoKSkKKyAgICAgICAg
ICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIoKm51bWJlcik7CisKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAg
aWYgKHN0ZDo6aXNpbmYodG9rZW4ubnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29u
c3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51
bWJlclRva2VuOgorICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRv
a2VuOgorICAgICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2gg
KHZhcmlhYmxlLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVS
Q0VOVEFHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJs
ZS0+dmFsdWUpOworCisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgor
ICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsK
KworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9
CiAKQEAgLTc2NywxNCArODI2LDU5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29u
c3VtZUh1ZSgKICAgICByZXR1cm4gY29uc3VtZU51bWJlclJhdyhyYW5nZSk7CiB9CiAKLXRlbXBs
YXRlPENTU1ZhbHVlSUQuLi4gYWxsb3dlZElkZW50cz4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmFy
aWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lSHVlT3JJZGVudChDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0YXRpYyBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAg
aWYgKGF1dG8gaHVlID0gY29uc3VtZUh1ZShyYW5nZSwgY29udGV4dCkpCi0gICAgICAgIHJldHVy
biB7ICpodWUgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVr
KCk7CiAKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRz
Li4uPihyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICppZGVudCB9OworICAgIHN3aXRjaCAodG9r
ZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJz
ZXIgYW5nbGVDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFs
dWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIGFuZ2xlID0gYW5n
bGVDYWxjUGFyc2VyLmNvbnN1bWVBbmdsZVJhdygpKQorICAgICAgICAgICAgcmV0dXJuIENTU1By
aW1pdGl2ZVZhbHVlOjpjb21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKTsK
KyAgICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsK
KyAgICAgICAgcmV0dXJuIG51bWJlckNhbGNQYXJzZXIuY29uc3VtZU51bWJlclJhdygpOworICAg
IH0KKyAgICAKKyAgICBjYXNlIERpbWVuc2lvblRva2VuOiB7CisgICAgICAgIGF1dG8gdW5pdFR5
cGUgPSB0b2tlbi51bml0VHlwZSgpOworICAgICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19SQUQ6CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOgorICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRp
dmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXModW5pdFR5cGUsIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjYXNl
IE51bWJlclRva2VuOgorICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5udW1lcmljVmFsdWUoKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAg
aWYgKGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGlu
Z1doaXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlw
ZSkgeworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzoKKyAgICAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfR1JBRDoKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOgorICAg
ICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXModmFy
aWFibGUtPnR5cGUsIHZhcmlhYmxlLT52YWx1ZSk7CisKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1
ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiB9CiAKQEAgLTc4Myw2NSArODg3LDEzMSBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZUh1ZShk
b3VibGUgaHVlKQogICAgIHJldHVybiBzdGQ6OmZtb2Qoc3RkOjpmbW9kKGh1ZSwgMzYwLjApICsg
MzYwLjAsIDM2MC4wKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRz
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1
bWVOdW1iZXJPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBp
ZiAoYXV0byBudW1iZXIgPSBjb25zdW1lTnVtYmVyUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJu
IHsgKm51bWJlciB9OworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBl
ZWsoKTsKIAotICAgIGlmIChhdXRvIGlkZW50ID0gY29uc3VtZUlkZW50UmF3PGFsbG93ZWRJZGVu
dHMuLi4+KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKmlkZW50IH07CisgICAgc3dpdGNoICh0
b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1Bh
cnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIFZhbHVl
UmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25z
dW1lTnVtYmVyUmF3KCk7CisgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KKyAg
ICBjYXNlIE51bWJlclRva2VuOgorICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGlu
Z1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKTsKIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBh
bGxvd2VkSWRlbnRzPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFs
dWVJRD4+IGNvbnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
LXsKLSAgICBpZiAoYXV0byBwZXJjZW50ID0gY29uc3VtZVBlcmNlbnRSYXcocmFuZ2UpKQotICAg
ICAgICByZXR1cm4geyAqcGVyY2VudCB9OworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAg
aWYgKGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGlu
Z1doaXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlw
ZSkgeworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFyaWFibGUtPnZhbHVlOwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBj
b25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4g
eyAqaWRlbnQgfTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogfQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NW
YWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBz
dGF0aWMgYXV0byBleHRyYWN0Q2hhbm5lbFZhbHVlKENTU1ZhbHVlSUQgY2hhbm5lbCwgY29uc3Qg
Q29sb3JUeXBlJiBvcmlnaW5Db2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRU
eXBlCitzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50T3JJZGVudChD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1i
b2xUYWJsZSkKIHsKLSAgICBhdXRvIGNvbXBvbmVudHMgPSBhc0NvbG9yQ29tcG9uZW50cyhvcmln
aW5Db2xvcik7Ci0gICAgc3dpdGNoIChjaGFubmVsKSB7Ci0gICAgY2FzZSBDMToKLSAgICAgICAg
cmV0dXJuIGNvbXBvbmVudHNbMF07Ci0gICAgY2FzZSBDMjoKLSAgICAgICAgcmV0dXJuIGNvbXBv
bmVudHNbMV07Ci0gICAgY2FzZSBDMzoKLSAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNbMl07Ci0g
ICAgY2FzZSBBbHBoYUNoYW5uZWw6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzNdOworICAg
IGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKKworICAgIHN3aXRj
aCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENh
bGNQYXJzZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwg
VmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBjYWxjUGFyc2Vy
LmNvbnN1bWVQZXJjZW50UmF3KCk7CisgICAgfQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46
CisgICAgICAgIGlmIChzdGQ6OmlzaW5mKHRva2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5j
bHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOworCisgICAgY2FzZSBJZGVudFRva2Vu
OgorICAgICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZh
cmlhYmxlLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VO
VEFHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGUtPnZhbHVlOworCisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLXRlbXBsYXRlPENTU1ZhbHVl
SUQgQzEsIENTU1ZhbHVlSUQgQzIsIENTU1ZhbHVlSUQgQzMsIENTU1ZhbHVlSUQgQWxwaGFDaGFu
bmVsLCB0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIFZhbHVlVHJhbnNmb3JtZXI+IHN0YXRp
YyBkZWNsdHlwZShhdXRvKSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWwoY29uc3QgVmFyaWFu
dDxkb3VibGUsIENTU1ZhbHVlSUQ+JiBwYXJzZWRDaGFubmVsLCBjb25zdCBDb2xvclR5cGUmIG9y
aWdpbkNvbG9yLCBWYWx1ZVRyYW5zZm9ybWVyJiYgdmFsdWVUcmFuc2Zvcm1lcikKK2VudW0gY2xh
c3MgUkdCQ29tcG9uZW50VHlwZSB7IE51bWJlciwgUGVyY2VudGFnZSB9OworCitzdGF0aWMgc3Rk
OjpvcHRpb25hbDx1aW50OF90PiBjb25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6
ZWRGb3JSZWxhdGl2ZVJHQihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICByZXR1cm4gc3dpdGNoT24ocGFyc2Vk
Q2hhbm5lbCwKLSAgICAgICAgWyZdIChkb3VibGUgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVy
biB2YWx1ZVRyYW5zZm9ybWVyKHZhbHVlKTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChDU1NW
YWx1ZUlEIGNoYW5uZWwpIHsKLSAgICAgICAgICAgIHJldHVybiBleHRyYWN0Q2hhbm5lbFZhbHVl
PEMxLCBDMiwgQzMsIEFscGhhQ2hhbm5lbD4oY2hhbm5lbCwgb3JpZ2luQ29sb3IpOworICAgIGF1
dG8gbm9ybWFsaXplUGVyY2VudCA9IFtdKGRvdWJsZSBwZXJjZW50KSB7CisgICAgICAgIHJldHVy
biBjb252ZXJ0UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JHQkFCeXRlKHBlcmNlbnQgLyAxMDAuMCAq
IDI1NS4wKTsKKyAgICB9OworCisgICAgYXV0byBub3JtYWxpemVOdW1iZXIgPSBbXShkb3VibGUg
bnVtYmVyKSB7CisgICAgICAgIHJldHVybiBjb252ZXJ0UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JH
QkFCeXRlKG51bWJlcik7CisgICAgfTsKKworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tl
biA9IHJhbmdlLnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2Fz
ZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgcGVyY2VudGFnZUNhbGNQYXJz
ZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwg
c3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0byBwZXJjZW50ID0gcGVyY2VudGFnZUNhbGNQ
YXJzZXIuY29uc3VtZVBlcmNlbnRSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQ
ZXJjZW50KCpwZXJjZW50KTsKKyAgICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2Fs
Y1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpB
bGwsIHN5bWJvbFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8gbnVtYmVyID0gbnVtYmVyQ2FsY1Bh
cnNlci5jb25zdW1lTnVtYmVyUmF3KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVt
YmVyKCpudW1iZXIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYo
dG9rZW4ubnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1do
aXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRva2VuOgorICAg
ICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNw
YWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAgICAgICBp
ZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5jbHVkaW5n
V2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBl
KSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFsdWUpOworCisg
ICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAg
IHJldHVybiBub3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgKTsKLX0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAotdGVtcGxhdGU8Q1NTVmFsdWVJRCBDMSwgQ1NTVmFsdWVJRCBDMiwgQ1NTVmFsdWVJRCBDMywg
Q1NTVmFsdWVJRCBBbHBoYUNoYW5uZWwsIHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGRlY2x0
eXBlKGF1dG8pIHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbChjb25zdCBWYXJpYW50PGRvdWJs
ZSwgQ1NTVmFsdWVJRD4mIHBhcnNlZENoYW5uZWwsIGNvbnN0IENvbG9yVHlwZSYgb3JpZ2luQ29s
b3IpCi17Ci0gICAgcmV0dXJuIHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDMSwgQzIsIEMz
LCBBbHBoYUNoYW5uZWw+KHBhcnNlZENoYW5uZWwsIG9yaWdpbkNvbG9yLCBbXShhdXRvIHZhbHVl
KSB7IHJldHVybiB2YWx1ZTsgfSk7Ci19CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CiAKLWVudW0gY2xhc3MgUkdCQ29tcG9uZW50VHlwZSB7IE51bWJl
ciwgUGVyY2VudGFnZSB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Cit9CiAKIHN0YXRpYyB1aW50OF90IGNsYW1wUkdCQ29tcG9uZW50KGRvdWJs
ZSB2YWx1ZSwgUkdCQ29tcG9uZW50VHlwZSBjb21wb25lbnRUeXBlKQogewpAQCAtOTIxLDUyICsx
MDkxLDM3IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycygKICAgICBp
ZiAoIW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHN0
ZDo6b3B0aW9uYWw8UkdCQ29tcG9uZW50VHlwZT4gY29tcG9uZW50VHlwZTsKLSAgICBhdXRvIHJl
ZFJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZVI+KGFyZ3MsIGNv
bXBvbmVudFR5cGUpOwotICAgIGlmICghcmVkUmVzdWx0KQorICAgIGF1dG8gb3JpZ2luQ29sb3JB
c1NSR0IgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PFNSR0JBPGZsb2F0Pj4oKTsKKwor
ICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVS
LCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNTUkdCLnJlZCAqIDEw
MCB9LAorICAgICAgICB7IENTU1ZhbHVlRywgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBv
cmlnaW5Db2xvckFzU1JHQi5ncmVlbiAqIDEwMCB9LAorICAgICAgICB7IENTU1ZhbHVlQiwgQ1NT
VW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5ibHVlICogMTAwIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBv
cmlnaW5Db2xvckFzU1JHQi5hbHBoYSAqIDEwMCB9CisgICAgfTsKKworICAgIGF1dG8gcmVkID0g
Y29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVsYXRpdmVSR0IoYXJn
cywgc3ltYm9sVGFibGUpOworICAgIGlmICghcmVkKQogICAgICAgICByZXR1cm4geyB9OwotICAg
IGF1dG8gcmVkID0gcmVkUmVzdWx0LT52YWx1ZTsKLSAgICBjb21wb25lbnRUeXBlID0gcmVkUmVz
dWx0LT50eXBlOwogCi0gICAgYXV0byBncmVlblJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNv
bXBvbmVudDxDU1NWYWx1ZUc+KGFyZ3MsIGNvbXBvbmVudFR5cGUpOwotICAgIGlmICghZ3JlZW5S
ZXN1bHQpCisgICAgYXV0byBncmVlbiA9IGNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9y
bWFsaXplZEZvclJlbGF0aXZlUkdCKGFyZ3MsIHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoIWdyZWVu
KQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8gZ3JlZW4gPSBncmVlblJlc3VsdC0+dmFs
dWU7Ci0gICAgY29tcG9uZW50VHlwZSA9IGdyZWVuUmVzdWx0LT50eXBlOwogCi0gICAgYXV0byBi
bHVlUmVzdWx0ID0gY29uc3VtZVJlbGF0aXZlUkdCQ29tcG9uZW50PENTU1ZhbHVlQj4oYXJncywg
Y29tcG9uZW50VHlwZSk7Ci0gICAgaWYgKCFibHVlUmVzdWx0KQorICAgIGF1dG8gYmx1ZSA9IGNv
bnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKGFyZ3Ms
IHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoIWJsdWUpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAg
YXV0byBibHVlID0gYmx1ZVJlc3VsdC0+dmFsdWU7Ci0gICAgY29tcG9uZW50VHlwZSA9IGJsdWVS
ZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklk
ZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9u
YWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFs
dWVzIGZyb20gdGhlIG9yaWdpbiBjb2xvci4KLQotICAgIC8vIEZJWE1FOiBEbyB3ZSB3YW50IHRv
IGJlaW5nIGRvaW5nIHRoaXMgaW4gdWludDhfdCB2YWx1ZXM/IE9yIHNob3VsZCB3ZSB1c2UgCi0g
ICAgLy8gaGlnaGVyIHByZWNpc2lvbiBhbmQgY2xhbXAgYXQgdGhlIGVuZD8gSXQgd29uJ3QgbWFr
ZSBhIGRpZmZlcmVuY2UgdW50aWwgd2UKLSAgICAvLyBzdXBwb3J0IGNhbGN1bGF0aW9ucyBvbiB0
aGUgb3JpZ2luJ3MgY29tcG9uZW50cy4KLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNTUkdCID0gb3Jp
Z2luQ29sb3IudG9TUkdCQUxvc3N5PHVpbnQ4X3Q+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkQ29t
cG9uZW50VHlwZSA9IGNvbXBvbmVudFR5cGUudmFsdWVfb3IoUkdCQ29tcG9uZW50VHlwZTo6UGVy
Y2VudGFnZSk7Ci0gICAgYXV0byBjaGFubmVsUmVzb2x2ZXIgPSBbcmVzb2x2ZWRDb21wb25lbnRU
eXBlXShhdXRvIHZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBjbGFtcFJHQkNvbXBvbmVudCh2YWx1
ZSwgcmVzb2x2ZWRDb21wb25lbnRUeXBlKTsKLSAgICB9OwotCi0gICAgYXV0byByZXNvbHZlZFJl
ZCA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywgQ1NT
VmFsdWVCLCBDU1NWYWx1ZUFscGhhPihyZWQsIG9yaWdpbkNvbG9yQXNTUkdCLCBjaGFubmVsUmVz
b2x2ZXIpOwotICAgIGF1dG8gcmVzb2x2ZWRHcmVlbiA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hh
bm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihncmVl
biwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5uZWxSZXNvbHZlcik7Ci0gICAgYXV0byByZXNvbHZl
ZEJsdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcs
IENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oYmx1ZSwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5u
ZWxSZXNvbHZlcik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29s
b3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+
KCphbHBoYSwgb3JpZ2luQ29sb3JBc1NSR0IsIFtdKGF1dG8gdmFsdWUpIHsKLSAgICAgICAgcmV0
dXJuIGNvbnZlcnRGbG9hdEFscGhhVG88dWludDhfdD4odmFsdWUpOwotICAgIH0pOworICAgIGF1
dG8gbm9ybWFsaXplZEFscGhhID0gY29udmVydEZsb2F0QWxwaGFUbzx1aW50OF90PigqYWxwaGEp
OwogCi0gICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgcmVzb2x2ZWRSZWQsIHJlc29sdmVkR3Jl
ZW4sIHJlc29sdmVkQmx1ZSwgcmVzb2x2ZWRBbHBoYSB9OworICAgIHJldHVybiBTUkdCQTx1aW50
OF90PiB7ICpyZWQsICpncmVlbiwgKmJsdWUsIG5vcm1hbGl6ZWRBbHBoYSB9OwogfQogCiBlbnVt
IGNsYXNzIFJHQkZ1bmN0aW9uTW9kZSB7IFJHQiwgUkdCQSB9OwpAQCAtMTA0OCw0MSArMTIwMyw0
MCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUhTTFBhcmFtZXRlcnMoCiAgICAgaWYgKCFv
cmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGh1
ZSA9IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAgYXV0
byBvcmlnaW5Db2xvckFzSFNMID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIU0xBPGZs
b2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAg
IHsgQ1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0hTTC5odWUg
fSwKKyAgICAgICAgeyBDU1NWYWx1ZVMsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3Jp
Z2luQ29sb3JBc0hTTC5zYXR1cmF0aW9uIH0sCisgICAgICAgIHsgQ1NTVmFsdWVMLCBDU1NVbml0
VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIU0wubGlnaHRuZXNzIH0sCisgICAg
ICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5D
b2xvckFzSFNMLmFscGhhICogMTAwIH0KKyAgICB9OworCisgICAgYXV0byBodWUgPSBjb25zdW1l
SHVlT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFodWUpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICBhdXRvIHNhdHVyYXRpb24gPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8
Q1NTVmFsdWVTPihhcmdzKTsKKyAgICBhdXRvIHNhdHVyYXRpb24gPSBjb25zdW1lUGVyY2VudE9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghc2F0dXJhdGlvbikKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50
PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNzKQogICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVu
dDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFs
QWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBjb252ZXJ0IGlkZW50aWZpZXJzIHRvIHZhbHVl
cyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNIU0wgPSBv
cmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PEhTTEE8ZmxvYXQ+PigpOwotCi0gICAgYXV0byBy
ZXNvbHZlZEh1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1Zh
bHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqaHVlLCBvcmlnaW5Db2xvckFzSFNMLCBb
XShhdXRvIGh1ZSkgewotICAgICAgICByZXR1cm4gbm9ybWFsaXplSHVlKGh1ZSk7Ci0gICAgfSk7
Ci0gICAgYXV0byByZXNvbHZlZFNhdHVyYXRpb24gPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5u
ZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVMsIENTU1ZhbHVlTCwgQ1NTVmFsdWVBbHBoYT4oKnNhdHVy
YXRpb24sIG9yaWdpbkNvbG9yQXNIU0wsIFtdKGF1dG8gc2F0dXJhdGlvbikgewotICAgICAgICBy
ZXR1cm4gY2xhbXBUbyhzYXR1cmF0aW9uLCAwLjAsIDEwMC4wKTsKLSAgICB9KTsKLSAgICBhdXRv
IHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVl
SCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpsaWdodG5lc3MsIG9yaWdp
bkNvbG9yQXNIU0wsIFtdKGF1dG8gbGlnaHRuZXNzKSB7Ci0gICAgICAgIHJldHVybiBjbGFtcFRv
KGxpZ2h0bmVzcywgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZEFscGhh
ID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NW
YWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hTTCk7CisgICAgYXV0
byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOworICAgIGF1dG8gbm9ybWFsaXpl
ZFNhdHVyYXRpb24gPSBjbGFtcFRvKCpzYXR1cmF0aW9uLCAwLjAsIDEwMC4wKTsKKyAgICBhdXRv
IG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBjbGFtcFRvKCpsaWdodG5lc3MsIDAuMCwgMTAwLjApOwor
ICAgIGF1dG8gbm9ybWFsaXplZEFscGhhID0gY2xhbXBUbygqYWxwaGEsIDAuMCwgMS4wKTsKIAot
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KEhTTEE8ZmxvYXQ+IHsgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
U2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZExpZ2h0bmVzcyksIHN0YXRp
Y19jYXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9y
PFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxp
emVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRTYXR1cmF0aW9uKSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9y
bWFsaXplZEFscGhhKSB9KTsKIH0KIAogZW51bSBjbGFzcyBIU0xGdW5jdGlvbk1vZGUgeyBIU0ws
IEhTTEEgfTsKQEAgLTExMjksOCArMTI4Myw3IEBAIHRlbXBsYXRlPEhTTEZ1bmN0aW9uTW9kZSBN
b2RlPiBzdGF0aWMgQ28KICAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihI
U0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRTYXR1cmF0aW9uKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1h
bGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEFscGhhKSB9KTsK
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ29tcG9uZW50VHlwZT4KLXN0cnVjdCBXaGl0ZW5lc3NC
bGFja25lc3MgewordGVtcGxhdGU8dHlwZW5hbWUgQ29tcG9uZW50VHlwZT4gc3RydWN0IFdoaXRl
bmVzc0JsYWNrbmVzcyB7CiAgICAgQ29tcG9uZW50VHlwZSB3aGl0ZW5lc3M7CiAgICAgQ29tcG9u
ZW50VHlwZSBibGFja25lc3M7CiB9OwpAQCAtMTE2NCwzOSArMTMxNywzOCBAQCBzdGF0aWMgQ29s
b3IgcGFyc2VSZWxhdGl2ZUhXQlBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVP
cklkZW50PENTU1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAgYXV0byBvcmlnaW5Db2xvckFz
SFdCID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIV0JBPGZsb2F0Pj4oKTsKKworICAg
IENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVILCBD
U1NVbml0VHlwZTo6Q1NTX0RFRywgb3JpZ2luQ29sb3JBc0hXQi5odWUgfSwKKyAgICAgICAgeyBD
U1NWYWx1ZVcsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hXQi53
aGl0ZW5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VO
VEFHRSwgb3JpZ2luQ29sb3JBc0hXQi5ibGFja25lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFs
cGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0IuYWxwaGEg
KiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50KGFyZ3Ms
IHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWh1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IGF1dG8gd2hpdGVuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlVz4oYXJncyk7
CisgICAgYXV0byB3aGl0ZW5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9s
VGFibGUpOwogICAgIGlmICghd2hpdGVuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
YXV0byBibGFja25lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NTVmFsdWVCPihhcmdzKTsK
KyAgICBhdXRvIGJsYWNrbmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChhcmdzLCBzeW1ib2xU
YWJsZSk7CiAgICAgaWYgKCFibGFja25lc3MpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBh
dXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFy
Z3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywg
c3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFmdGVy
IHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdpbiBj
b2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JU
eXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkSHVlID0gcmVzb2x2
ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENT
U1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNIV0IsIFtdKGF1dG8gaHVlKSB7Ci0gICAg
ICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVk
V2hpdGVuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFs
dWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCp3aGl0ZW5lc3MsIG9yaWdpbkNvbG9yQXNI
V0IpOwotICAgIGF1dG8gcmVzb2x2ZWRCbGFja25lc3MgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNo
YW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmJs
YWNrbmVzcywgb3JpZ2luQ29sb3JBc0hXQik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0gcmVz
b2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIs
IENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hXQik7Ci0KLSAgICBhdXRvIFtu
b3JtYWxpemVkV2hpdG5lc3MsIG5vcm1hbGl6ZWRCbGFja25lc3NdID0gbm9ybWFsaXplV2hpdGVu
ZXNzQmxhY2tuZXNzKHJlc29sdmVkV2hpdGVuZXNzLCByZXNvbHZlZEJsYWNrbmVzcyk7CisgICAg
YXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOworICAgIGF1dG8gW25vcm1h
bGl6ZWRXaGl0bmVzcywgbm9ybWFsaXplZEJsYWNrbmVzc10gPSBub3JtYWxpemVXaGl0ZW5lc3NC
bGFja25lc3MoKndoaXRlbmVzcywgKmJsYWNrbmVzcyk7CiAKLSAgICByZXR1cm4gY29udmVydENv
bG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNv
bHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkV2hpdG5lc3MpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4obm9ybWFsaXplZEJsYWNrbmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNv
bHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihI
V0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRXaGl0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxp
emVkQmxhY2tuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfSk7CiB9CiAKIHN0YXRp
YyBDb2xvciBwYXJzZUhXQlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMjQ1LDM3ICsxMzk3LDM3IEBAIHN0
YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTGFiUGFyYW1ldGVycygKICAgICBpZiAoIW9yaWdpbkNv
bG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGlnaHRuZXNz
ID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0byBvcmln
aW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxMYWI8ZmxvYXQ+Pigp
OworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAgICAgICAgeyBDU1NW
YWx1ZUwsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0xhYi5saWdo
dG5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUEsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBv
cmlnaW5Db2xvckFzTGFiLmEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1VuaXRUeXBlOjpD
U1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmIgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFscGhh
LCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMYWIuYWxwaGEgKiAx
MDAgfQorICAgIH07CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVu
dChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFsaWdodG5lc3MpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVl
QT4oYXJncyk7CisgICAgYXV0byBhVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBz
eW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhVmFsdWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAg
ICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVlQj4oYXJncyk7Cisg
ICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7
CiAgICAgaWYgKCFiVmFsdWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFscGhh
ID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAg
IGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFi
bGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFy
Z3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIC8vIEFmdGVyIHBhcnNpbmcs
IGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20gdGhlIG9yaWdpbiBjb2xvci4KLQot
ICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xhYiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8
TGFiPGZsb2F0Pj4oKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRMaWdodG5lc3MgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFs
dWVBbHBoYT4oKmxpZ2h0bmVzcywgb3JpZ2luQ29sb3JBc0xhYiwgW10oYXV0byBsaWdodG5lc3Mp
IHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwgbGlnaHRuZXNzKTsKLSAgICB9KTsKLSAg
ICBhdXRvIHJlc29sdmVkQVZhbHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1Zh
bHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphVmFsdWUsIG9yaWdp
bkNvbG9yQXNMYWIpOwotICAgIGF1dG8gcmVzb2x2ZWRCVmFsdWUgPSByZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBo
YT4oKmJWYWx1ZSwgb3JpZ2luQ29sb3JBc0xhYik7Ci0gICAgYXV0byByZXNvbHZlZEFscGhhID0g
cmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1
ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0xhYik7CisgICAgYXV0byBu
b3JtYWxpemVkTGlnaHRuZXNzID0gc3RkOjptYXgoMC4wLCAqbGlnaHRuZXNzKTsKIAotICAgIHJl
dHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkTGlnaHRuZXNzKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJl
c29sdmVkQlZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQWxwaGEpIH07CisgICAg
cmV0dXJuIExhYjxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZExpZ2h0bmVz
cyksIHN0YXRpY19jYXN0PGZsb2F0PigqYVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCpiVmFs
dWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4oKmFscGhhKSB9OwogfQogCiBzdGF0aWMgQ29sb3IgcGFy
c2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBjb250ZXh0KQpAQCAtMTMyMywzOSArMTQ3NSwzOSBAQCBzdGF0aWMgQ29sb3Ig
cGFyc2VSZWxhdGl2ZUxDSFBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xvci5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQ
ZXJjZW50T3JJZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xD
SCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TENIQTxmbG9hdD4+KCk7CisKKyAgICBD
U1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENTU1ZhbHVlTCwgQ1NT
VW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzTENILmxpZ2h0bmVzcyB9LAor
ICAgICAgICB7IENTU1ZhbHVlQywgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIsIG9yaWdpbkNvbG9y
QXNMQ0guY2hyb21hIH0sCisgICAgICAgIHsgQ1NTVmFsdWVILCBDU1NVbml0VHlwZTo6Q1NTX0RF
Rywgb3JpZ2luQ29sb3JBc0xDSC5odWUgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NV
bml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMQ0guYWxwaGEgKiAxMDAgfQor
ICAgIH07CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChhcmdz
LCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFsaWdodG5lc3MpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvIGNocm9tYSA9IGNvbnN1bWVOdW1iZXJPcklkZW50PENTU1ZhbHVlQz4oYXJn
cyk7CisgICAgYXV0byBjaHJvbWEgPSBjb25zdW1lTnVtYmVyT3JJZGVudChhcmdzLCBzeW1ib2xU
YWJsZSk7CiAgICAgaWYgKCFjaHJvbWEpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRv
IGh1ZSA9IGNvbnN1bWVIdWVPcklkZW50PENTU1ZhbHVlSD4oYXJncywgY29udGV4dCk7CisgICAg
YXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYg
KCFodWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9w
dGlvbmFsQWxwaGFPcklkZW50PENTU1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEg
PSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlm
ICghYWxwaGEpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkK
ICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0xDSCA9IG9yaWdp
bkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TENIQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29s
dmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NT
VmFsdWVDLCBDU1NWYWx1ZUgsIENTU1ZhbHVlQWxwaGE+KCpsaWdodG5lc3MsIG9yaWdpbkNvbG9y
QXNMQ0gsIFtdKGF1dG8gbGlnaHRuZXNzKSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1heCgwLjAs
IGxpZ2h0bmVzcyk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZENocm9tYSA9IHJlc29sdmVS
ZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NW
YWx1ZUFscGhhPigqY2hyb21hLCBvcmlnaW5Db2xvckFzTENILCBbXShhdXRvIGNocm9tYSkgewot
ICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBjaHJvbWEpOwotICAgIH0pOwotICAgIGF1dG8g
cmVzb2x2ZWRIdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NW
YWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0xDSCwg
W10oYXV0byBodWUpIHsKLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAgIH0p
OwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxD
U1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9y
aWdpbkNvbG9yQXNMQ0gpOworICAgIGF1dG8gbm9ybWFsaXplZExpZ2h0bmVzcyA9IHN0ZDo6bWF4
KDAuMCwgKmxpZ2h0bmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkQ2hyb21hID0gc3RkOjptYXgo
MC4wLCAqY2hyb21hKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRIdWUgPSBub3JtYWxpemVIdWUoKmh1
ZSk7CiAKLSAgICByZXR1cm4gTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRDaHJvbWEpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocmVzb2x2ZWRIdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBo
YSkgfTsKKyAgICByZXR1cm4gTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFs
aXplZExpZ2h0bmVzcyksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkQ2hyb21hKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRIdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4oKmFscGhh
KSB9OwogfQogCiBzdGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0ZXJzKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjc4MjUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMzAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUu
Y29tPgorCisgICAgICAgIFN1cHBvcnQgY2FsYygpIG9uIGNvbXBvbmVudHMgaW5zaWRlIHJlbGF0
aXZlIGNvbG9yIHN5bnRheCBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjI3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGVzdCBhbmQgcmVzdWx0cyBmb3IgdXBkYXRlIHN1cHBv
cnQgaW5jbHVkaW5nIGNhbGMoKSAKKyAgICAgICAgYW5kIGNvbXBvbWVudCBwZXJtdXRhdGlvbi4K
KworICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRh
eC5odG1sOgorCiAyMDIxLTA1LTI5ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIEludGVybmFscy5tYWluVGhyZWFkU2Nyb2xsaW5nUmVhc29u
cyB0byBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODI1MykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3Bh
cnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNDIsMjAgKzQyLDI3IEBAIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSAyNSBnIGIgLyAyNSUpIikgaXMgInJnYmEoMjUsIDUxLCA3Nywg
MC4yNSkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAyNSBiIC8gMjUlKSIpIGlzICJyZ2JhKDI2LCAyNSwg
NzcsIDAuMjUpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgZyAyNSAvIDI1JSkiKSBpcyAicmdiYSgyNiwg
NTEsIDI1LCAwLjI1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJw
bGUgYiBhbHBoYSByIC8gZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgciByIC8g
cikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxw
aGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgZyBiIHIpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBhbHBoYSByIC8gZykiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIHIgciAvIHIpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgciAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSAw
JSAxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAx
MCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwIDEwJSkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAxMCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKSIpIGlzICJyZ2IoNTEsIDE1MywgMTAyKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVy
cGxlIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoMTUzLCAyNTUsIDEwMiwgMC4yKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxl
IHIgciByIC8gcikiKSBpcyAicmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEg
YWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiKDI1NSwgMjU1LCAyNTUpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGcgYiByKSIpIGlzICJyZ2IoNTEsIDc3LCAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBh
bHBoYSByIC8gZykiKSBpcyAicmdiYSg3NywgMTAyLCAyNiwgMC4yKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSByIHIgciAvIHIpIikgaXMgInJnYmEoMjYsIDI2LCAyNiwgMC4xKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDEwMiwgMTAyLCAxMDIsIDAu
NCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmVi
ZWNjYXB1cnBsZSByIDEwJSAxMCkiKSBpcyAicmdiKDEwMiwgMjYsIDEwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAg
MTAlKSIpIGlzICJyZ2IoMTAyLCAxMCwgMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUgMTAgMTApIikgaXMgInJnYigw
LCAxMCwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAlIDEwKSIpIGlzICJyZ2IoMjYsIDI2LCAx
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpIikgaXMgInJnYigyNiwgMTAsIDI2KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSAwJSAxMCAxMCkiKSBpcyAicmdiKDAsIDEwLCAxMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxj
KHIpIGNhbGMoZykgY2FsYyhiKSkiKSBpcyAicmdiKDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNh
bGMoZyAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgMjYsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICog
LjUpIDEwKSIpIGlzICJyZ2IoMTAyLCA3NywgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSArIGcg
KiAuNSkgMTApIikgaXMgInJnYigxMDIsIDEwMiwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAt
IGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDUxLCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41
IC0gZyAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgNTEsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBj
YWxjKHIpIGNhbGMoZykgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJyZ2JhKDI2LCA1MSwg
NzcsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZy
b20gcmViZWNjYXB1cnBsZSByZWQgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUg
bCBnIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGcgYikiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKQEAgLTkxLDE0ICs5OCwyNCBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCAyNSUgbCAvIGFscGhhKSIpIGlzICJy
Z2JhKDM5LCA1MSwgNjQsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIDI1JSAvIGFscGhhKSIp
IGlzICJyZ2JhKDMyLCA2MywgOTUsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIGwgLyAuMjUp
IikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcykiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNj
YXB1cnBsZSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhh
IGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCBsIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBs
IC8gcykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAv
IGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMpIikgaXMgInJnYigx
MjgsIDc3LCAxNzkpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBsIC8gcykiKSBpcyAicmdiYSgxMDIsIDAsIDIw
NCwgMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJv
bSByZWJlY2NhcHVycGxlIGggbCBsIC8gbCkiKSBpcyAicmdiYSgxMDIsIDYxLCAxNDMsIDAuNCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNj
YXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBoIGwgcykiKSBpcyAicmdiKDEwMSwgMTI2LCAxNTIpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMzEsIDUxLCA3MiwgMC40OTQpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbCkiKSBpcyAicmdiYSg0MSwgNTEsIDYyLCAwLjIwNCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDYxLCAx
MDEsIDE0MywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
c2woZnJvbSByZWJlY2NhcHVycGxlIHMgaCBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJw
bGUgcyBzIHMgLyBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIGggbCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
c2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIHMgcyAvIHMpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHNsKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGMocykgY2FsYyhsKSkiKSBpcyAicmdi
KDEwMiwgNTEsIDE1MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhoKSBjYWxjKHMpIGNhbGMobCkg
LyBjYWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUg
MTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIDEwIDEwJSkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZWJlY2NhcHVycGxlIDEwJSBzIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0x
NDAsMTQgKzE1NywyNCBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
CiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCAyNSUgYiAvIGFscGhhKSIpIGlzICJyZ2JhKDY0LCA3MCwgNzcs
IDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IDI1JSAvIGFscGhhKSIpIGlzICJyZ2JhKDI2LCAx
MDcsIDE5MSwgMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
d2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgYiAvIC4yNSkiKSBpcyAicmdiYSgy
NiwgNTEsIDc3LCAwLjI1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYiB3KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgot
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2Fw
dXJwbGUgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggdyB3
IC8gdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBo
YSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdykiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIHcgLyBiKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
Imh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdykiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2Io
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdykiKSBpcyAicmdiKDE1MywgMTAyLCAyMDQp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVj
Y2FwdXJwbGUgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgyMTMsIDIxMywgMjEzLCAwLjQpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2Fw
dXJwbGUgaCB3IHcgLyB3KSIpIGlzICJyZ2JhKDEyOCwgNTEsIDIwNCwgMC4yKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGgg
YWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiKDEyOCwgMTI4LCAxMjgpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGggYiB3KSIpIGlzICJyZ2IoMTc4LCAyMDMsIDIyOSkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgxMDIsIDE2NCwgMjI5LCAwLjY5OCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCB3IHcgLyB3KSIpIGlzICJyZ2JhKDI2LCAxMjYsIDIyOSwgMC4xKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMTAyLCAxMjcsIDE1
MywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJv
bSByZWJlY2NhcHVycGxlIHcgaCBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYiBi
IGIgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
Imh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSB3IGIgaCkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBiIGIgYiAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZy
b20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGModykgY2FsYyhiKSkiKSBpcyAicmdiKDEwMiwg
NTEsIDE1MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikgLyBjYWxj
KGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIDEwJSB3IGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0xODIsMTQg
KzIwOSwxNiBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1
MCAvIDQwJSkgbCAzNSBiIC8gYWxwaGEpIikgaXMgImxhYigyNSUgMzUgNTAgLyAwLjQpIgogUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAg
NTAgLyA0MCUpIGwgYSAzNSAvIGFscGhhKSIpIGlzICJsYWIoMjUlIDIwIDM1IC8gMC40KSIKIFBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIw
IDUwIC8gNDAlKSBsIGEgYiAvIC4zNSkiKSBpcyAibGFiKDI1JSAyMCA1MCAvIDAuMzUpIgotUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAg
NTApIGwgYiBhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYiBhKSIpIGlzICJs
YWIoMjUlIDUwIDIwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGEgYSAvIGEpIikgaXMgImxhYigyNSUgMjAgMjApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUg
MjAgNTAgLyA0MCUpIGwgYiBhKSIpIGlzICJsYWIoMjUlIDUwIDIwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBs
IGEgYSAvIGEpIikgaXMgImxhYigyNSUgMjAgMjApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYSAvIGIpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUw
IC8gNDAlKSBsIGFscGhhIGEgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0
MCUpIGwgYSBhIC8gYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFs
cGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgY2FsYyhs
KSBjYWxjKGEpIGNhbGMoYikpIikgaXMgImxhYigyNSUgMjAgNTApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGNh
bGMobCkgY2FsYyhhKSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpIikgaXMgImxhYigyNSUgMjAgNTAg
LyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTApIGwgMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAp
IGwgMTAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIDEwIGEgYikiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKQEAgLTIzMSwxMCArMjYwLDIyIEBAIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBsIGMgMjUgLyBhbHBoYSkiKSBp
cyAibGNoKDcwJSA0NSAyNSAvIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIDI1ZGVnIC8gYWxwaGEp
IikgaXMgImxjaCg3MCUgNDUgMjUgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBoIC8gLjI1KSIp
IGlzICJsY2goNzAlIDQ1IDMwIC8gMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbCkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
ZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpIikgaXMgImxjaCgxMDAlIDQ1IDMwIC8gMC43
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2go
NzAlIDQ1IDMwKSBsIGMgYyAvIGFscGhhKSIpIGlzICJsY2goNzAlIDQ1IDQ1KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBh
bHBoYSBjIGggLyBhbHBoYSkiKSBpcyAibGNoKDEwMCUgNDUgMzApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMg
YyAvIGFscGhhKSIpIGlzICJsY2goMTAwJSA0NSA0NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBo
IC8gbCkiKSBpcyAibGNoKDQwJSA0NSAzMCAvIDAuNykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIGMgLyBh
bHBoYSkiKSBpcyAibGNoKDcwJSA0NSA0NSAvIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBo
IC8gYWxwaGEpIikgaXMgImxjaCg0MCUgNDUgMzAgLyAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhh
IGMgYyAvIGFscGhhKSIpIGlzICJsY2goNDAlIDQ1IDQ1IC8gMC40KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBoIGwgYyAv
IGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGMgYyBjIC8gYykiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGggbCBjIC8gYWxwaGEpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYyBjIGMgLyBjKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgY2FsYyhsKSBjYWxjKGMpIGNhbGMoaCkpIikgaXMgImxj
aCg3MCUgNDUgMzApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGNhbGMobCkgY2FsYyhjKSBjYWxjKGgpIC8gY2Fs
YyhhbHBoYSkpIikgaXMgImxjaCg3MCUgNDUgMzAgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgMTAlIGgpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBjIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSAxMCBjIGgpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0yNDQsNiAr
Mjg1LDIxIEBAIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBsaWdodG5lc3MgYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIHggYyBoKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHZh
cigtLWJnLWNvbG9yKSByIGcgYiAvIDgwJSkiKSBpcyAicmdiYSgwLCAwLCAyNTUsIDAuOCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gdmFyKC0tY29s
b3IpIGNhbGMobCAvIDIpIGMgaCkiKSBpcyAibGNoKDIzLjEzODk3MSUgNjcuOTg5NzE2IDEzNC4z
OTEyNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20g
dmFyKC0tY29sb3IpIGNhbGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEpIGNhbGMociAqIC4z
ICsgZyAqIC41OSArIGIgKiAuMTEpIGNhbGMociAqIC4zICsgZyAqIC41OSArIGIgKiAuMTEpKSIp
IGlzICJyZ2IoNzYsIDc2LCA3NikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKGZyb20gdmFyKC0tY29sb3IpIGwgMCBoKSIpIGlzICJsY2goNDYuMjc3OTQzJSAw
IDEzNC4zOTEyNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gaW5kaWFucmVkIDI1NSBnIGIpIikgaXMgInJnYigyNTUsIDkyLCA5MikiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gdmFyKC0tYWNjZW50KSBj
YWxjKGggKyAxODBkZWcpIHMgbCkiKSBpcyAicmdiKDE3OCwgMzIsIDQwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEg
YiAvIDEwMCUpIikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29s
b3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAqIDAuOCkpIikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1
ODAyIC0zNC4xMTcyODMgLyAwLjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAtIDIwJSkp
IikgaXMgImxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIHZhcigtLW15Y29sb3Ip
IGwgMCAwKSIpIGlzICJsYWIoNjIuNzUxOTIzJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHBlcnUgY2FsYyhsICogMC44KSBjIGgpIikgaXMg
ImxjaCg0OS44MDEzOCUgNTQuMDAzMjk2IDYzLjY4MDMxNykiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiTENIKGZyb20gdmFyKC0tYWNjZW50KSBsIGMgY2FsYyhoICsg
MTgwZGVnKSkiKSBpcyAibGNoKDY1LjQ5NDczJSAzOS40NDY5MDMgMTAuMTE0NDcxKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSB2YXIoLS1teWNvbG9y
KSBsIDAgaCkiKSBpcyAibGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInZhcigtLW15Z3JheSkiKSBpcyAibGNoKDYyLjc1
MTkyMyUgMCAzMjYuOTYxMTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIHZhcigtLW15Z3JheSkgbCAzMCBoKSIpIGlzICJsY2goNjIuNzUxOTIzJSAz
MCAzMjYuOTYxMTIpIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9y
LXN5bnRheC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmct
cmVsYXRpdmUtY29sb3Itc3ludGF4Lmh0bWwJKHJldmlzaW9uIDI3ODI1MykKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctcmVsYXRpdmUtY29sb3Itc3ludGF4Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSwxNSBAQAogPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBDU1NSZWxhdGl2ZUNvbG9yU3ludGF4RW5hYmxlZD10cnVlIF0gLS0+CiA8aHRtbD4K
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c3R5bGU+CisgICAgICAgIGh0bWwgeyAKKyAgICAgICAgICAgIC0tYmctY29sb3I6
IGJsdWU7CisgICAgICAgICAgICAtLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIC0tYWNjZW50
OiBsaWdodHNlYWdyZWVuOworICAgICAgICAgICAgLS1teWNvbG9yOiBvcmNoaWQ7CisgICAgICAg
ICAgICAtLW15Z3JheTogbGNoKGZyb20gdmFyKC0tbXljb2xvcikgbCAwIGgpOworICAgICAgICB9
CisgICAgPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KQEAgLTk1LDIzICsxMDQs
MzIgQEAKICAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IHIgMjUgYiAvIDI1JSlgLCBgcmdiYSgyNiwgMjUsIDc3LCAwLjI1KWApOwogICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciBnIDI1IC8gMjUlKWAsIGBy
Z2JhKDI2LCA1MSwgMjUsIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1
bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAg
IHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcilgLCBgcmdiYSgwLCAw
LCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGFs
cGhhIHIgLyBnKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2Io
ZnJvbSByZWJlY2NhcHVycGxlIHIgciByIC8gcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAg
IHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBhbHBoYSBhbHBoYSAv
IGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwot
ICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBhbHBo
YSByIC8gZylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciByIHIgLyByKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBh
bHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0KLSAgICAv
LyBUZXN0aW5nIGludmFsaWQgbWl4ZXMgb2YgbnVtYmVyIGFuZCBwZXJjZW50YWdlCi0gICAgdGVz
dENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAlIDEwKWAsIGByZ2JhKDAsIDAs
IDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAg
MTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSBy
ZWJlY2NhcHVycGxlIDAlIDEwIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMClgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgciAxMCAxMCUpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIDAlIDEwIDEwKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbi4KKyAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgZyBiIHIpYCwgYHJnYig1MSwgMTUzLCAxMDIp
YCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAv
IGcpYCwgYHJnYmEoMTUzLCAyNTUsIDEwMiwgMC4yKWApOworICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpYCwgYHJnYmEoMTAyLCAxMDIsIDEwMiwgMC40
KWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBhbHBo
YSBhbHBoYSAvIGFscGhhKWAsIGByZ2IoMjU1LCAyNTUsIDI1NSlgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKWAsIGByZ2IoNTEsIDc3
LCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoNzcsIDEwMiwgMjYsIDAuMilgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgciByIC8gcilgLCBg
cmdiYSgyNiwgMjYsIDI2LCAwLjEpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDEw
MiwgMTAyLCAxMDIsIDAuNClgKTsKKworICAgIC8vIFRlc3RpbmcgbWl4ZXMgb2YgbnVtYmVyIGFu
ZCBwZXJjZW50YWdlLiAoVGhlc2Ugd291bGQgbm90IGJlIGFsbG93ZWQgaW4gdGhlIG5vbi1yZWxh
dGl2ZSBzeW50YXgpLgorICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBy
IDEwJSAxMClgLCBgcmdiKDEwMiwgMjYsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZy
b20gcmViZWNjYXB1cnBsZSByIDEwIDEwJSlgLCBgcmdiKDEwMiwgMTAsIDI2KWApOworICAgIHRl
c3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSAwJSAxMCAxMClgLCBgcmdiKDAsIDEw
LCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIHIgMTAlIDEwKWAsIGByZ2IoMjYsIDI2LCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJn
Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKWAsIGByZ2IoMjYsIDEwLCAy
NilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IDAlIDEwIDEwKWAsIGByZ2IoMCwgMTAsIDEwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNh
bGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhyKSBj
YWxjKGcpIGNhbGMoYikpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVk
KGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhnICogLjUpIDEwKWAsIGByZ2IoMTAyLCAy
NiwgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2Fs
YyhiICogLjUpIDEwKWAsIGByZ2IoMTAyLCA3NywgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgKyBnICogLjUpIDEwKWAsIGByZ2Io
MTAyLCAxMDIsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBs
ZSByIGNhbGMoYiAqIC41IC0gZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgNTEsIDEwKWApOworICAg
IHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41IC0gZyAq
IC41KSAxMClgLCBgcmdiKDEwMiwgNTEsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikgLyBjYWxj
KGFscGhhKSlgLCBgcmdiYSgyNiwgNTEsIDc3LCAwLjQpYCk7CiAKICAgICAvLyBUZXN0aW5nIGlu
dmFsaWQgY29tcG9uZW50IG5hbWVzCiAgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIHJlZCBnIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTE2MSwxNSArMTc5LDI5
IEBACiAgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBo
IHMgMjUlIC8gYWxwaGEpYCwgYHJnYmEoMzIsIDYzLCA5NSwgMC40KWApOwogICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIGwgLyAuMjUpYCwgYHJn
YmEoMjYsIDUxLCA3NywgMC4yNSlgKTsKIAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVu
Y2xlYXIgaWYgdGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAg
dGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBzKWAsIGByZ2JhKDAsIDAs
IDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxw
aGEgbCAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChm
cm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAg
dGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBo
YSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0
ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAv
IHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwot
ICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBo
YSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2
YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmViZWNjYXB1cnBsZSBoIGwgcylgLCBgcmdiKDEyOCwgNzcsIDE3OSlgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBsIC8gcylgLCBgcmdiYSgx
MDIsIDAsIDIwNCwgMC41KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1
cnBsZSBoIGwgbCAvIGwpYCwgYHJnYmEoMTAyLCA2MSwgMTQzLCAwLjQpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBg
cmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBoIGwgcylgLCBgcmdiKDEwMSwgMTI2LCAxNTIpYCk7CisgICAgdGVz
dENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBz
KWAsIGByZ2JhKDMxLCA1MSwgNzIsIDAuNDk0KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIGwgLyBsKWAsIGByZ2JhKDQxLCA1MSwgNjIs
IDAuMjA0KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDYxLCAxMDEsIDE0MywgMC40KWAp
OworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRj
aCkuCisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIHMgaCBsKWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVy
cGxlIHMgcyBzIC8gcylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChg
aHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGggaCAvIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxw
aGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBoIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHMg
cyBzIC8gcylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBh
bHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAv
LyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNj
YXB1cnBsZSBjYWxjKGgpIGNhbGMocykgY2FsYyhsKSlgLCBgcmdiKDEwMiwgNTEsIDE1MylgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMo
aCkgY2FsYyhzKSBjYWxjKGwpIC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40
KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQo
YGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
QEAgLTIyOCwxNSArMjYwLDI5IEBACiAgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBoIHcgMjUlIC8gYWxwaGEpYCwgYHJnYmEoMjYsIDEwNywgMTkxLCAw
LjQpYCk7CiAgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBoIHcgYiAvIC4yNSlgLCBgcmdiYSgyNiwgNTEsIDc3LCAwLjI1KWApOwogCi0gICAgLy8gVGVz
dGluZyBwZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdl
IGRpc2FsbG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUg
aCBiIHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9t
IHJlYmVjY2FwdXJwbGUgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAg
IHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAvIHcpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUg
aCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdylgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCBhbHBoYSB3IC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RD
b21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcgLyB3KWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICAvLyBUZXN0aW5nIHZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBtYXRjaCkuCisgICAg
dGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYiB3KWAsIGByZ2IoMTUzLCAx
MDIsIDIwNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBh
bHBoYSB3IC8gYilgLCBgcmdiYSgyMTMsIDIxMywgMjEzLCAwLjQpYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggdyB3IC8gdylgLCBgcmdiYSgxMjgsIDUxLCAy
MDQsIDAuMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBh
bHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2IoMTI4LCAxMjgsIDEyOClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYiB3KWAsIGByZ2IoMTc4
LCAyMDMsIDIyOSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMTAyLCAxNjQsIDIyOSwgMC42OTgpYCk7
CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcg
dyAvIHcpYCwgYHJnYmEoMjYsIDEyNiwgMjI5LCAwLjEpYCk7CisgICAgdGVzdENvbXB1dGVkKGBo
d2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwg
YHJnYmEoMTAyLCAxMjcsIDE1MywgMC40KWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBl
cm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJv
bSByZWJlY2NhcHVycGxlIHcgaCBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENv
bXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYiBiIC8gYilgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGggaCAv
IGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJl
YmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
dyBiIGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYiBiIC8gYilgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBo
IGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRl
c3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBjYWxjKGgpIGNhbGModykgY2FsYyhi
KSlgLCBgcmdiKDEwMiwgNTEsIDE1MylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyh3KSBjYWxjKGIpIC8gY2FsYyhhbHBo
YSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlk
IHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCUg
MTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTI4OCwxNiArMzM0LDIyIEBACiAgICAgdGVz
dENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgMzUgLyBhbHBoYSlg
LCBgbGFiKDI1JSAyMCAzNSAvIDAuNClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxh
YigyNSUgMjAgNTAgLyA0MCUpIGwgYSBiIC8gLjM1KWAsIGBsYWIoMjUlIDIwIDUwIC8gMC4zNSlg
KTsKIAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxv
d2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwKSBsIGIgYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRl
c3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQo
YGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYiBhKWAsIGBsYWIoMjUlIDUwIDIwKWApOworICAg
IHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKWAsIGBsYWIo
MjUlIDIwIDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAv
IDQwJSkgbCBiIGEpYCwgYGxhYigyNSUgNTAgMjApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsYWIo
ZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYSAvIGEpYCwgYGxhYigyNSUgMjAgMjApYCk7
CisKKyAgICAvLyBUZXN0aW5nIGludmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIGRvbid0IG1hdGNo
KS4KICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYSAv
IGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxh
YigyNSUgMjAgNTApIGwgYSBhIC8gYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RD
b21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUl
IDIwIDUwIC8gNDAlKSBsIGIgYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21w
dXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBhIC8gYilgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1
MCAvIDQwJSkgbCBhIGEgLyBhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1
dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGFscGhhIGFscGhhIC8gYWxwaGEp
YCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKIAorICAgIC8vIFRlc3Rpbmcgd2l0aCBjYWxjKCkuCisg
ICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBjYWxjKGwpIGNhbGMoYSkg
Y2FsYyhiKSlgLCBgbGFiKDI1JSAyMCA1MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9t
IGxhYigyNSUgMjAgNTAgLyA0MCUpIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIpIC8gY2FsYyhhbHBo
YSkpYCwgYGxhYigyNSUgMjAgNTAgLyAwLjQpYCk7CisKICAgICAvLyBUZXN0aW5nIGludmFsaWQg
dmFsdWVzLgogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCAxMCUg
MTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxh
YigyNSUgMjAgNTApIGwgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0zNTUsMTEg
KzQwNywyOCBAQAogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQw
JSkgbCBjIDI1ZGVnIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgMjUgLyAwLjQpYCk7CiAgICAgdGVz
dENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBsIGMgaCAvIC4yNSlgLCBg
bGNoKDcwJSA0NSAzMCAvIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1
bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAg
IHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbClgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0
NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGwpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUg
NDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Cisg
ICAgLy8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIC8vIE5P
VEU6ICdjJyBpcyBhIHZhaWxkIGh1ZSwgYXMgaHVlIGlzIDxhbmdsZT58PG51bWJlcj4uCisgICAg
dGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBsKWAsIGBs
Y2goMTAwJSA0NSAzMCAvIDAuNylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3
MCUgNDUgMzApIGwgYyBjIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgNDUpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgbGNo
KDEwMCUgNDUgMzApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBhbHBoYSBjIGMgLyBhbHBoYSlgLCBgbGNoKDEwMCUgNDUgNDUpYCk7CisgICAgdGVzdENvbXB1
dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKWAsIGBsY2go
NDAlIDQ1IDMwIC8gMC43KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0
NSAzMCAvIDQwJSkgbCBjIGMgLyBhbHBoYSlgLCBgbGNoKDcwJSA0NSA0NSAvIDAuNClgKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAv
IGFscGhhKWAsIGBsY2goNDAlIDQ1IDMwIC8gMC40KWApOworICAgIHRlc3RDb21wdXRlZChgbGNo
KGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBjIC8gYWxwaGEpYCwgYGxjaCg0MCUg
NDUgNDUgLyAwLjQpYCk7CisKKyAgICAvLyBUZXN0aW5nIGludmFsaWQgcGVybXV0YXRpb24gKHR5
cGVzIGRvbid0IG1hdGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGggbCBjIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGMgYyBjIC8gYylgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYWxw
aGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRl
ZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgaCBsIGMgLyBhbHBoYSlgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAv
IDQwJSkgYyBjIGMgLyBjKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVk
KGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhh
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgor
ICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgY2FsYyhsKSBjYWxjKGMp
IGNhbGMoaCkpYCwgYGxjaCg3MCUgNDUgMzApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJv
bSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYykgY2FsYyhoKSAvIGNhbGMoYWxw
aGEpKWAsIGBsY2goNzAlIDQ1IDMwIC8gMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlk
IHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgMTAl
IGgpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKQEAgLTM3Myw2ICs0NDIsNDQgQEAKICAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGxpZ2h0bmVzcyBjIGgpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAp
IHggYyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJv
bSBsY2goNzAlIDQ1IDMwKSBsIGcgYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisKKyAgICAv
LyBTcGVjIGV4YW1wbGVzOgorICAgIC8vIEV4YW1wbGUgMTEuCisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSB2YXIoLS1iZy1jb2xvcikgciBnIGIgLyA4MCUpYCwgYHJnYmEoMCwgMCwgMjU1LCAw
LjgpYCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxMi4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChm
cm9tIHZhcigtLWNvbG9yKSBjYWxjKGwgLyAyKSBjIGgpYCwgYGxjaCgyMy4xMzg5NzElIDY3Ljk4
OTcxNiAxMzQuMzkxMjUpYCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxMy4KKyAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHZhcigtLWNvbG9yKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICog
LjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAu
NTkgKyBiICogLjExKSlgLCBgcmdiKDc2LCA3NiwgNzYpYCkKKyAgICB0ZXN0Q29tcHV0ZWQoYGxj
aChmcm9tIHZhcigtLWNvbG9yKSBsIDAgaClgLCBgbGNoKDQ2LjI3Nzk0MyUgMCAxMzQuMzkxMjUp
YCkKKworICAgIC8vIEV4YW1wbGUgMTQuCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSBpbmRp
YW5yZWQgMjU1IGcgYilgLCBgcmdiKDI1NSwgOTIsIDkyKWApOworCisgICAgLy8gRXhhbXBsZSAx
NS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHZhcigtLWFjY2VudCkgY2FsYyhoICsgMTgw
ZGVnKSBzIGwpYCwgYHJnYigxNzgsIDMyLCA0MClgKTsKKworICAgIC8vIEV4YW1wbGUgMTYuCisg
ICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIDEwMCUpYCwg
YGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMpYCk7CisgICAgdGVzdENvbXB1dGVk
KGBsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEgKiAwLjgpKWAsIGBs
YWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8gMC44KWApOworICAgIHRlc3RDb21w
dXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyBjYWxjKGFscGhhIC0gMjAlKSlg
LCBgbGFiKDYyLjc1MTkyMyUgNTIuNDU4MDIgLTM0LjExNzI4MyAvIDAuOClgKTsKKyAgICAKKyAg
ICAvLyBFeGFtcGxlIDE3LgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xv
cikgbCAwIDApYCwgYGxhYig2Mi43NTE5MjMlIDAgMClgKTsKKworICAgIC8vIEV4YW1wbGUgMTgu
CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBwZXJ1IGNhbGMobCAqIDAuOCkgYyBoKWAsIGBs
Y2goNDkuODAxMzglIDU0LjAwMzI5NiA2My42ODAzMTcpYCk7CisKKyAgICAvLyBFeGFtcGxlIDE5
LgorICAgIHRlc3RDb21wdXRlZChgTENIKGZyb20gdmFyKC0tYWNjZW50KSBsIGMgY2FsYyhoICsg
MTgwZGVnKSlgLCBgbGNoKDY1LjQ5NDczJSAzOS40NDY5MDMgMTAuMTE0NDcxKWApOworCisgICAg
Ly8gRXhhbXBsZSAyMC4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIHZhcigtLW15Y29sb3Ip
IGwgMCBoKWAsIGBsY2goNjIuNzUxOTIzJSAwIDMyNi45NjExMilgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYHZhcigtLW15Z3JheSlgLCBgbGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpYCk7CisgICAg
dGVzdENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1teWdyYXkpIGwgMzAgaClgLCBgbGNoKDYyLjc1
MTkyMyUgMzAgMzI2Ljk2MTEyKWApOworICAgIAogPC9zY3JpcHQ+CiAgICAgCiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430143</attachid>
            <date>2021-05-30 12:18:42 -0700</date>
            <delta_ts>2021-05-30 15:20:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210530121841.patch</filename>
            <type>text/plain</type>
            <size>88793</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgYW5kIHVwZGF0ZWQg
dGVzdCBjYXNlcyB0byBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1s
LgorCisgICAgICAgIFVwZGF0ZXMgc3VwcG9ydCBmb3IgdGhlIENTUyBDb2xvciA1ICJSZWxhdGl2
ZSBDb2xvciBTeW50YXgiIHRvIHN1cHBvcnQKKyAgICAgICAgYm90aCBjYWxjKCkgb24gY29tcG9u
ZW50cyBhbmQgY29tcG9uZW50IHBlcm11dGF0aW9ucyB3aXRoaW4gdGhlIHN5bnRheC4KKworICAg
ICAgICBUaGlzIGFsbG93cyBmb3IgdGhpbmdzIGxpa2U6CisgICAgICAgIAorICAgICAgICAgICAg
YmFja2dyb3VuZDogbGNoKGZyb20gdmFyKC0tcHJpbWFyeS1jb2xvcikgNjAlIGNhbGMoYyAqIDAu
OCkgaCk7CisKKyAgICAgICAgICAgIG9yCisKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IGxjaChm
cm9tIHJlYmVjY2FwdXJwbGUgZyBiIHIpOworCisgICAgICAgIFRvIG1ha2UgdGhpcyB3b3JrLCB0
aGUgY2FsYygpIGluZnJhc3RydWN0dXJlIG5vdyBzdXBwb3J0cyBwYXNzaW5nIGEgQ1NTQ2FsY1N5
bWJvbFRhYmxlCisgICAgICAgIHdoaWNoIGFsbG93cyB0aGUgbG9naWMgaW4gdGhlIHBhcnNlciB0
byBsb29rdXAgdW5rbm93biBpZGVudGlmaWVycyB3aGVuIHBhcnNpbmcgYSB2YWx1ZS4KKyAgICAg
ICAgVGhlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBwYXJzZXJzIGNhbiB0aGVuIGJ1aWxkIGFuIGFw
cHJvcHJpYXRlIENTU0NhbGNTeW1ib2xUYWJsZSBmaWxsZWQKKyAgICAgICAgd2l0aCB0aGUgY29t
cG9uZW50cyBvZiB0aGUgb3JpZ2luIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRoZXNlIGNhbGMo
KSB2YWx1ZXMgYXJlIG5vdCBzZXJpYWxpemVkLCB0aGlzIGNhbiBhbGwgaGFwcGVuIGluIHRoZSBw
YXJzZXIsIGJ1dCBpZgorICAgICAgICB3ZSB0byBiZSBhYmxlIHNlcmlhbGl6ZSB0aGVtIGluIHRo
ZSBmdXR1cmUsIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUgY291bGQgYmUgdXBkYXRlZAorICAg
ICAgICB0byBzdG9yZSB0aGUgc3ltYm9sIG5hbWUgaW4gYWRkaXRpb24gdG8gc3RvcmluZyB0aGUg
dmFsdWUgYW5kIHR5cGUgKG9yIHdlIGNvdWxkIHdlIGNvdWxkCisgICAgICAgIGFkZCBhIG5ldyBu
b2RlIGZvciBpdCkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5
bWJvbFRhYmxlLmNwcDogQWRkZWQuCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRh
YmxlLmg6IEFkZGVkLgorICAgICAgICBBZGQgQ1NTQ2FsY1N5bWJvbFRhYmxlIHdoaWNoIGNvbnRh
aW5zIGEgbWFwcGluZyBmcm9tIENTU1ZhbHVlSUQgdG8gQ1NTVW5pdFR5cGUvZG91YmxlIHBhaXJz
LgorCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1
ZSk6CisgICAgICAgIFdoZW4gdHJ5aW5nIHRvIGNvbnN0cnVjdCBhIHZhbHVlIG5vZGUsIGlmIHRo
ZSB0b2tlbiBpcyBhIGlkZW50aWZpZXIsIHVzZSB0aGUgbmV3CisgICAgICAgIHN5bWJvbCB0YWJs
ZSB0byBsb29rIHVwIGEgdHlwZS92YWx1ZSB0byB1c2UgaW5zdGVhZC4gVXNlIGEgc3dpdGNoIHRv
IG1ha2UgdGhpbmdzCisgICAgICAgIGEgYml0IG1vcmUgY2xlYXIgdGhhdCBkaWZmZXJlbnRpYXRp
b24gaXMgYmVpbmcgZG9uZSBiYXNlZCBvbiB0b2tlbiB0eXBlLgorCisgICAgICAgICogY3NzL2Nh
bGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmg6CisgICAgICAgIEFkZCByZWZlcmVuY2Ug
dG8gYSBDU1NDYWxjU3ltYm9sVGFibGUgdG8gdGhlIHBhcnNlci4gVGhlIHBhcnNlciBzaG91bGQg
b25seSBldmVyIGJlIHVzZWQKKyAgICAgICAgb24gdGhlIHN0YWNrLCBzbyB0aGlzIHdvcmtzIHdl
bGwgYW5kIGFsbG93cyB1cyB0byBhdm9pZCBjb3B5aW5nIHRoZSB0YWJsZS4KKworICAgICAgICAq
IGNzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFs
dWU6OmNyZWF0ZSk6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmg6CisgICAgICAg
IFBhc3MgdGhlIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyIGlmIG9uZSBpcyBwcm92
aWRlZC4gQW4gb3ZlcmxvYWQgd2FzIHVzZWQKKyAgICAgICAgdG8gYXZvaWQgI2luY2x1ZGluZyBD
U1NDYWxjU3ltYm9sVGFibGUuaCBpbiB0aGUgaGVhZGVyIGp1c3QgdG8gYWRkIGEgZGVmYXVsdCB2
YWx1ZS4KKworICAgICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICBHaXZlIGEgY29u
Y3JldGUgYmFzZSBvZiB1aW50MTZfdCB0byBhbGxvdyBpdCB0byBiZSBmb3J3YXJkIGRlY2xhcmVk
IGFuZCBhZGQgRGVmYXVsdEhhc2gKKyAgICAgICAgYW5kIEhhc2hUcmFpdHMgdG8gYWxsb3cgaXQg
dG8gYmUgdXNlZCB3aXRoIEhhc2hUYWJsZS4gVGhlc2UgbWF0Y2ggdGhlIGRlZmluaXRpb24gb2YK
KyAgICAgICAgQ1NTUHJvcGVydHlJRC4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2Vy
SGVscGVyczo6Q2FsY1BhcnNlcjo6Q2FsY1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lUGVyY2VudFdvcmtlclNhZmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5nbGVS
YXcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1l
QW5nbGVXb3JrZXJTYWZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVs
cGVyczo6Y29uc3VtZUFuZ2xlT3JQZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5UGFyc2VySGVscGVyczo6Y29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUh1ZU9ySWRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTnVtYmVy
T3JJZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNv
bnN1bWVQZXJjZW50T3JJZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0
aXZlUkdCKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFy
c2VSZWxhdGl2ZVJHQlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzOjpwYXJzZVJlbGF0aXZlSFNMUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxh
dGl2ZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpwYXJzZVJlbGF0aXZlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmV4dHJhY3RDaGFubmVsVmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpyZXNvbHZlUmVsYXRp
dmVDb2xvckNoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICBSZXdvcmsgcmVsYXRpdmUgY29sb3Ig
c3ludGF4IHBhcnNpbmcgdG8gYWxsb3cgcGVybXV0YXRpb24gb2YgY2hhbm5lbCBzeW1ib2xzCisg
ICAgICAgIGFuZCB1c2Ugb2YgdGhlIGNhbGMoKSBzeW1ib2wgdGFibGUgc3VwcG9ydCB0byBhbGxv
dyBwYXNzaW5nIGluIHRoZSBjaGFubmVscy4KKyAgICAgICAgVGhpcyBtYWtlcyB0aGUgcmVsYXRh
dGl2ZSBjb2xvciBzeW50YXggdmFyaWFudHMgbXVjaCBjbG9zZXIgdG8gdGhlIG5vcm1hbAorICAg
ICAgICB2YXJpYW50cyAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHBhc3NpbmcgdGhlIHN5bWJvbCB0
YWJsZSkgYW5kIGEgc3Vic2VxdWVudAorICAgICAgICBjaGFuZ2Ugd2lsbCBhdHRlbXB0IHRvIG1l
cmdlIHRoZW0gZnVydGhlci4KKwogMjAyMS0wNS0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFdURjo6T3B0aW9uYWwgc3lub255bSBmb3Igc3RkOjpv
cHRpb25hbCwgdXNpbmcgdGhhdCBjbGFzcyB0ZW1wbGF0ZSBkaXJlY3RseSBpbnN0ZWFkCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgzMSw2ICs4MzEsNyBAQCBjc3MvY2FsYy9DU1NDYWxj
SW52ZXJ0Tm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNOZWdhdGVOb2RlLmNwcAogY3NzL2NhbGMv
Q1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwCiBjc3MvY2FsYy9DU1NDYWxjUHJpbWl0aXZlVmFsdWVO
b2RlLmNwcAorY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAogY3NzL2NhbGMvQ1NTQ2Fs
Y1ZhbHVlLmNwcAogY3NzL3BhcnNlci9DU1NBdFJ1bGVJRC5jcHAKIGNzcy9wYXJzZXIvQ1NTRGVm
ZXJyZWRQYXJzZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQw
NzcsNiArNDA3Nyw3IEBACiAJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRv
d0Jhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NjkzMjcyMEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzZENDRFRDBDMDdGMkVEMDA3
MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENDRFQjBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1i
ZWRFbGVtZW50LmggKi87IH07CiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZE
NkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAv
KiBDU1NDYWxjU3ltYm9sVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFi
bGUuaCAqLzsgfTsKIAkJQkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJCMzYwQzRF
QTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDNzcyQzQ3MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRw
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3NzJDNDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi87IH07CiAJCUJD
NzcyQzRGMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0RDBDNEVCMzA0MDA4MzI4
NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xNDMwNCw2ICsxNDMwNSw4IEBACiAJCUJDNkQ0NEVCMEMwN0Yy
RUQwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSFRNTEVtYmVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzZFQjg0NTI2MjY2QjYxMDAzMjI1QTcgLyogQ29sb3JMdW1pbmFuY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JMdW1pbmFuY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzcwOURERTI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5bWJv
bFRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzcwOURERjI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5
bWJvbFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAv
KiBDU1NIZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0hlbHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NDBDNEVCMkM2MDA4MzI4
NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFhNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM3NzJDNDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjc5NTYsNiArMjc5NTksOCBAQAogCQkJCUJDRjE2NDVGMjY2MkEyOEQw
MDAyRjdFRiAvKiBDU1NDYWxjT3BlcmF0aW9uTm9kZS5oICovLAogCQkJCUJDRjE2NDU0MjY2MkEx
MjIwMDAyRjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmNwcCAqLywKIAkJCQlCQ0Yx
NjQ1MzI2NjJBMTIyMDAwMkY3RUYgLyogQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZS5oICovLAor
CQkJCUJDNzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuY3BwICov
LAorCQkJCUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuaCAq
LywKIAkJCQk0OUFFMkQ4QzEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmNwcCAqLywK
IAkJCQk0OUFFMkQ4RDEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmggKi8sCiAJCQkp
OwpAQCAtMzQ2NjksNiArMzQ2NzQsNyBAQAogCQkJCTI2NjAxRUJGMTRCM0I5QUQwMDEyQzBGRSAv
KiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAx
NEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAvKiBDU1NDYWxj
U3ltYm9sVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTk1MUQ1NEY1RkIwMEREN0M2
OCAvKiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNkQ1NkUyMjUzQUUy
OEQwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc3MDVD
NzI1NTI3NkNEMDAxRDBDOTQgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkocmV2aXNpb24gMjc4MjUzKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTE2NCwxMCAr
MTY0LDEyIEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogI2luY2x1ZGUgPHN0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVu
dW0gQ1NTVmFsdWVJRCB7CitlbnVtIENTU1ZhbHVlSUQgOiB1aW50MTZfdCB7CiAgICAgQ1NTVmFs
dWVJbnZhbGlkID0gMCwKIEVPRgogCkBAIC0yMDQsNiArMjA2LDE2IEBAIGlubGluZSBDU1NWYWx1
ZUlEIGNvbnZlcnRUb0NTU1ZhbHVlSUQoaW4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CituYW1lc3BhY2UgV1RGIHsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6
OkNTU1ZhbHVlSUQ+IDogSW50SGFzaDx1bnNpZ25lZD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1ZUlEPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlSUQ+IHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6
Q1NTVmFsdWVJRCYgc2xvdCkgeyBzbG90ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWVJ
RD4oV2ViQ29yZTo6bGFzdENTU1ZhbHVlS2V5d29yZCArIDEpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNEZWxldGVkVmFsdWUoV2ViQ29yZTo6Q1NTVmFsdWVJRCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUg
PT0gKFdlYkNvcmU6Omxhc3RDU1NWYWx1ZUtleXdvcmQgKyAxKTsgfQorfTsKK30gLy8gbmFtZXNw
YWNlIFdURgorCiBFT0YKIGNsb3NlIEhFQURFUjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCShyZXZp
c2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSwxMSBAQAogI2luY2x1
ZGUgIkNTU0NhbGNOZWdhdGVOb2RlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY09wZXJhdGlvbk5vZGUu
aCIKICNpbmNsdWRlICJDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmgiCisjaW5jbHVkZSAiQ1NT
Q2FsY1N5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY1ZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTUGFyc2VyVG9rZW4uaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdlLmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTgwLDE5ICsxODIsMzUgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXI6OnBhcnNlQwogCiBib29sIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6
cGFyc2VWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIFJlZlB0cjxDU1NDYWxjRXhw
cmVzc2lvbk5vZGU+JiByZXN1bHQpCiB7Ci0gICAgLy8gRklYTUU6IEFkZCBjb2RlIGhlcmUgdG8g
cGFyc2UgQ1NTVmFsaWRJRCBmb3IgbmFtZWQgY29uc3RhbnRzLgorICAgIGF1dG8gbWFrZUNTU0Nh
bGNQcmltaXRpdmVWYWx1ZU5vZGUgPSBbJl0gKENTU1VuaXRUeXBlIHR5cGUsIGRvdWJsZSB2YWx1
ZSkgLT4gYm9vbCB7CisgICAgICAgIGlmIChjYWxjVW5pdENhdGVnb3J5KHR5cGUpID09IENhbGN1
bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAKKyAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRlKENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHR5cGUpKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfTsKIAotICAgIENTU1BhcnNlclRva2VuIHRva2VuID0gdG9rZW5zLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCk7Ci0gICAgaWYgKCEodG9rZW4udHlwZSgpID09IE51bWJlclRv
a2VuIHx8IHRva2VuLnR5cGUoKSA9PSBQZXJjZW50YWdlVG9rZW4gfHwgdG9rZW4udHlwZSgpID09
IERpbWVuc2lvblRva2VuKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGF1dG8g
dHlwZSA9IHRva2VuLnVuaXRUeXBlKCk7Ci0gICAgaWYgKGNhbGNVbml0Q2F0ZWdvcnkodHlwZSkg
PT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpCisgICAgYXV0byB0b2tlbiA9IHRva2Vucy5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpOworCisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkp
IHsKKyAgICBjYXNlIElkZW50VG9rZW46IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IG1fc3ltYm9s
VGFibGUuZ2V0KHRva2VuLmlkKCkpOworICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5v
ZGUodmFsdWUtPnR5cGUsIHZhbHVlLT52YWx1ZSk7CisgICAgfQorCisgICAgY2FzZSBOdW1iZXJU
b2tlbjoKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICBjYXNlIERpbWVuc2lvblRva2Vu
OgorICAgICAgICByZXR1cm4gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUodG9rZW4udW5p
dFR5cGUoKSwgdG9rZW4ubnVtZXJpY1ZhbHVlKCkpOworCisgICAgZGVmYXVsdDoKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlc3VsdCA9IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5v
ZGU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHRva2VuLm51bWVyaWNWYWx1ZSgp
LCB0eXBlKSk7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjVmFsdWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5z
LCBpbnQgZGVwdGgsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiByZXN1bHQpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5v
ZGVQYXJzZXIuaAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDIwICsy
NSwyMyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIK
ICNpbmNsdWRlICJDYWxjT3BlcmF0b3IuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvbkNhdGVnb3J5
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2Rl
OworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRhYmxlOwogY2xhc3MgQ1NTUGFyc2VyVG9rZW47CiBjbGFz
cyBDU1NQYXJzZXJUb2tlblJhbmdlOwogCitlbnVtIENTU1ZhbHVlSUQgOiB1aW50MTZfdDsKKwog
Y2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIoQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5h
dGlvbkNhdGVnb3J5KQorICAgIGV4cGxpY2l0IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcihD
YWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIGNvbnN0IENTU0NhbGNTeW1i
b2xUYWJsZSYgc3ltYm9sVGFibGUpCiAgICAgICAgIDogbV9kZXN0aW5hdGlvbkNhdGVnb3J5KGRl
c3RpbmF0aW9uQ2F0ZWdvcnkpCisgICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkK
ICAgICB7CiAgICAgfQogCkBAIC01NSw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJz
ZUNhbGNWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiwgaW50IGRlcHRoLCBSZWZQdHI8Q1NTQ2Fs
Y0V4cHJlc3Npb25Ob2RlPiYpOwogCiAgICAgQ2FsY3VsYXRpb25DYXRlZ29yeSBtX2Rlc3RpbmF0
aW9uQ2F0ZWdvcnk7CisgICAgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBtX3N5bWJvbFRhYmxl
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRh
YmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3lt
Ym9sVGFibGUuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NT
U0NhbGNTeW1ib2xUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NDYWxjU3ltYm9sVGFi
bGUuaCIKKworI2luY2x1ZGUgIkNTU1VuaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q1NTQ2FsY1N5bWJvbFRhYmxlOjpDU1NDYWxjU3ltYm9sVGFibGUoc3RkOjppbml0aWFsaXplcl9s
aXN0PHN0ZDo6dHVwbGU8Q1NTVmFsdWVJRCwgQ1NTVW5pdFR5cGUsIGRvdWJsZT4+IGluaXRpYWxp
emVyKQoreworICAgIGZvciAoYXV0byYgW2lkZW50aWZpZXIsIHR5cGUsIHZhbHVlXSA6IGluaXRp
YWxpemVyKQorICAgICAgICBtX3RhYmxlLmFkZChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfcGFpcih0
eXBlLCB2YWx1ZSkpOworfQorCitzdGQ6Om9wdGlvbmFsPENTU0NhbGNTeW1ib2xUYWJsZTo6VmFs
dWU+IENTU0NhbGNTeW1ib2xUYWJsZTo6Z2V0KENTU1ZhbHVlSUQgdmFsdWVJRCkgY29uc3QKK3sK
KyAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUludmFsaWQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBhdXRvIGl0ID0gbV90YWJsZS5maW5kKHZhbHVlSUQpOworICAgIGlm
IChpdCA9PSBtX3RhYmxlLmVuZCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHt7IGl0LT52YWx1ZS5maXJzdCwgaXQtPnZhbHVlLnNlY29uZCB9fTsKK30KKwor
fQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRh
YmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4X3Q7CisKK2NsYXNzIENTU0NhbGNT
eW1ib2xUYWJsZSB7CitwdWJsaWM6CisgICAgc3RydWN0IFZhbHVlIHsKKyAgICAgICAgQ1NTVW5p
dFR5cGUgdHlwZTsKKyAgICAgICAgZG91YmxlIHZhbHVlOworICAgIH07CisKKyAgICBDU1NDYWxj
U3ltYm9sVGFibGUoKSA9IGRlZmF1bHQ7CisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlKHN0ZDo6aW5p
dGlhbGl6ZXJfbGlzdDxzdGQ6OnR1cGxlPENTU1ZhbHVlSUQsIENTU1VuaXRUeXBlLCBkb3VibGU+
Pik7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZhbHVlPiBnZXQoQ1NTVmFsdWVJRCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgSGFzaE1hcDxDU1NWYWx1ZUlELCBzdGQ6OnBhaXI8Q1NTVW5pdFR5cGUs
IGRvdWJsZT4+IG1fdGFibGU7Cit9OworCit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2Nh
bGMvQ1NTQ2FsY1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjVmFsdWUuY3BwCShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW5SYW5nZS5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKKyNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aC5oIgog
I2luY2x1ZGUgIkNhbGNFeHByZXNzaW9uTGVuZ3RoLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpA
QCAtMjk5LDkgKzMwMCw5IEBAIHZvaWQgQ1NTQ2FsY1ZhbHVlOjpkdW1wKFRleHRTdHJlYW0mIHRz
KSAKICAgICB0cyA8PCAiKVxuIjsKIH0KIAotUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1Zh
bHVlOjpjcmVhdGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgdG9rZW5zLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVl
UmFuZ2UgcmFuZ2UpCitSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShD
U1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIENh
bGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSByYW5nZSwg
Y29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBDU1NDYWxjRXhw
cmVzc2lvbk5vZGVQYXJzZXIgcGFyc2VyKGRlc3RpbmF0aW9uQ2F0ZWdvcnkpOworICAgIENTU0Nh
bGNFeHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGluYXRpb25DYXRlZ29yeSwgc3ltYm9s
VGFibGUpOwogICAgIGF1dG8gZXhwcmVzc2lvbiA9IHBhcnNlci5wYXJzZUNhbGModG9rZW5zLCBm
dW5jdGlvbik7CiAgICAgaWYgKCFleHByZXNzaW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTMwOSw3ICszMTAsMTIgQEAgUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpj
cmVhdAogICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwgIkNTU0NhbGNWYWx1ZTo6
Y3JlYXRlICIgPDwgKnJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLSAgICAKKworUmVm
UHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTVmFsdWVJRCBmdW5jdGlv
biwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBDYWxjdWxhdGlvbkNhdGVnb3J5
IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFuZ2UpCit7CisgICAgcmV0dXJuIENT
U0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uLCB0b2tlbnMsIGRlc3RpbmF0aW9uQ2F0ZWdvcnks
IHJhbmdlLCB7IH0pOworfQorCiBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNy
ZWF0ZShjb25zdCBDYWxjdWxhdGlvblZhbHVlJiB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogewogICAgIGF1dG8gZXhwcmVzc2lvbiA9IGNyZWF0ZUNTUyh2YWx1ZS5leHByZXNzaW9u
KCksIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5oCShy
ZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJDU1NWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRl
ICJDYWxjdWxhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CkBAIC0zOSw2ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIENTU0NhbGNFeHByZXNzaW9uTm9kZTsKK2NsYXNzIENTU0NhbGNTeW1ib2xUYWJsZTsKIGNs
YXNzIENTU1BhcnNlclRva2VuUmFuZ2U7CiBjbGFzcyBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
OwogY2xhc3MgUmVuZGVyU3R5bGU7CkBAIC00Nyw4ICs0NywxMSBAQCBlbnVtIGNsYXNzIENTU1Vu
aXRUeXBlIDogdWludDhfdDsKIGVudW0gY2xhc3MgQ2FsY3VsYXRpb25DYXRlZ29yeSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFZhbHVlUmFuZ2UgOiB1aW50OF90OwogCitlbnVtIENTU1ZhbHVlSUQg
OiB1aW50MTZfdDsKKwogY2xhc3MgQ1NTQ2FsY1ZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVl
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKENTU1Zh
bHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmLCBDYWxjdWxhdGlvbkNh
dGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1i
b2xUYWJsZSYpOwogICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NTVmFs
dWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENhbGN1bGF0aW9uQ2F0
ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSk7CiAgICAgc3RhdGljIFJlZlB0
cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShjb25zdCBDYWxjdWxhdGlvblZhbHVlJiwgY29uc3QgUmVu
ZGVyU3R5bGUmKTsKICAgICB+Q1NTQ2FsY1ZhbHVlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZp
c2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaCIKIAorI2lu
Y2x1ZGUgIkNTU0NhbGNTeW1ib2xUYWJsZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU0NhbnZhc1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUu
aCIKQEAgLTk4LDcgKzk5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1l
TnVtYgogLy8gRklYTUU6IGNvbnNpZGVyIHB1bGxpbmcgaW4gdGhlIHBhcnNpbmcgbG9naWMgZnJv
bSBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuCiBjbGFzcyBDYWxjUGFyc2VyIHsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBDYWxjUGFyc2VyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBD
YWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgdmFsdWVS
YW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCwgQ1NTVmFsdWVQb29sJiBjc3NWYWx1ZVBvb2wgPSBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpKQorICAgIGV4cGxpY2l0IENhbGNQYXJzZXIoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29y
eSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlID0gVmFsdWVSYW5nZTo6QWxsLCBjb25zdCBDU1NDYWxj
U3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlID0geyB9LCBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9v
bCA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpCiAgICAgICAgIDogbV9zb3VyY2VSYW5nZShy
YW5nZSkKICAgICAgICAgLCBtX3JhbmdlKHJhbmdlKQogICAgICAgICAsIG1fdmFsdWVQb29sKGNz
c1ZhbHVlUG9vbCkKQEAgLTEwNiw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENT
U1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICAgICAgYXV0byBmdW5jdGlv
bklkID0gdG9rZW4uZnVuY3Rpb25JZCgpOwogICAgICAgICBpZiAoQ1NTQ2FsY1ZhbHVlOjppc0Nh
bGNGdW5jdGlvbihmdW5jdGlvbklkKSkKLSAgICAgICAgICAgIG1fY2FsY1ZhbHVlID0gQ1NTQ2Fs
Y1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb25JZCwgY29uc3VtZUZ1bmN0aW9uKG1fcmFuZ2UpLCBkZXN0
aW5hdGlvbkNhdGVnb3J5LCB2YWx1ZVJhbmdlKTsKKyAgICAgICAgICAgIG1fY2FsY1ZhbHVlID0g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb25JZCwgY29uc3VtZUZ1bmN0aW9uKG1fcmFuZ2Up
LCBkZXN0aW5hdGlvbkNhdGVnb3J5LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7CiAgICAgfQog
CiAgICAgY29uc3QgQ1NTQ2FsY1ZhbHVlKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsY1Zh
bHVlLmdldCgpOyB9CkBAIC00MzMsNyArNDM0LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjb25zdW1lUGVyY2VudAogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJh
bmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAg
ICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQ
ZXJjZW50LCB2YWx1ZVJhbmdlLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICBDYWxjUGFyc2VyIGNh
bGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIHZhbHVlUmFuZ2Us
IHsgfSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgaWYgKGNvbnN0IENTU0NhbGNWYWx1ZSogY2Fs
Y3VsYXRpb24gPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKICAgICAgICAgICAgIGlmIChjYWxjdWxh
dGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50KQogICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwpAQCAtNTQzLDcgKzU0
NCw3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xlV28KIHsKICAgICBj
b25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7Ci0gICAgICAgIENhbGNQYXJzZXIgY2FsY1BhcnNl
cihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIFZhbHVlUmFuZ2U6OkFsbCwgY3Nz
VmFsdWVQb29sKTsKKyAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCB7IH0sIGNzc1ZhbHVlUG9vbCk7
CiAgICAgICAgIGlmIChjb25zdCBDU1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9uID0gY2FsY1BhcnNl
ci52YWx1ZSgpKSB7CiAgICAgICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0g
Q2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGNQ
YXJzZXIuY29uc3VtZVZhbHVlKCk7CkBAIC01NjAsNyArNTYxLDggQEAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVXbwogc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZUFuZ2xlT3JQZXJjZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQ
YXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NR
dWlyayB1bml0bGVzcywgVW5pdGxlc3NaZXJvUXVpcmsgdW5pdGxlc3NaZXJvKQogewogICAgIGNv
bnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKLSAgICBpZiAodG9rZW4u
dHlwZSgpID09IERpbWVuc2lvblRva2VuKSB7CisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsK
KyAgICBjYXNlIERpbWVuc2lvblRva2VuOgogICAgICAgICBzd2l0Y2ggKHRva2VuLnVuaXRUeXBl
KCkpIHsKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzoKICAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1JBRDoKQEAgLTU2OCwyOSArNTcwLDM4IEBAIHN0YXRpYyBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWUKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1RVUk46CiAgICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVh
dGVWYWx1ZShyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgp
LCB0b2tlbi51bml0VHlwZSgpKTsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICB9Ci0gICAgaWYg
KHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVl
KHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcywgdW5pdGxlc3Na
ZXJvKSkKLSAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFs
dWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSwgQ1NT
VW5pdFR5cGU6OkNTU19ERUcpOworICAgICAgICBicmVhazsKKyAgICAKKyAgICBjYXNlIE51bWJl
clRva2VuOgorICAgICAgICBpZiAoc2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSh0b2tlbi5udW1l
cmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MsIHVuaXRsZXNzWmVybykpCisgICAg
ICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShyYW5n
ZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpLCBDU1NVbml0VHlw
ZTo6Q1NTX0RFRyk7CisgICAgICAgIGJyZWFrOwogCi0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBQ
ZXJjZW50YWdlVG9rZW4pCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CiAgICAgICAgIHJldHVy
biBjb25zdW1lUGVyY2VudChyYW5nZSwgdmFsdWVSYW5nZSk7CiAKLSAgICAgaWYgKHRva2VuLnR5
cGUoKSAhPSBGdW5jdGlvblRva2VuKQotICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2Fz
ZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgYW5nbGVDYWxjUGFyc2VyKHJh
bmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSk7CisgICAgICAgIGlm
IChjb25zdCBDU1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9uID0gYW5nbGVDYWxjUGFyc2VyLnZhbHVl
KCkpIHsKKyAgICAgICAgICAgIGlmIChjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpBbmdsZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYW5nbGVDYWxjUGFy
c2VyLmNvbnN1bWVWYWx1ZSgpOworICAgICAgICB9CiAKLSAgICBDYWxjUGFyc2VyIGFuZ2xlQ2Fs
Y1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIHZhbHVlUmFuZ2UpOwot
ICAgIGlmIChjb25zdCBDU1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9uID0gYW5nbGVDYWxjUGFyc2Vy
LnZhbHVlKCkpIHsKLSAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1
bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQotICAgICAgICAgICAgcmV0dXJuIGFuZ2xlQ2FsY1BhcnNl
ci5jb25zdW1lVmFsdWUoKTsKKyAgICAgICAgQ2FsY1BhcnNlciBwZXJjZW50Q2FsY1BhcnNlcihy
YW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSk7CisgICAgICAg
IGlmIChjb25zdCBDU1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9uID0gcGVyY2VudENhbGNQYXJzZXIu
dmFsdWUoKSkgeworICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENh
bGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBlcmNl
bnRDYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOworICAgICAgICB9CisgICAgCisgICAgICAgIGJy
ZWFrOwogICAgIH0KLQotICAgIENhbGNQYXJzZXIgcGVyY2VudENhbGNQYXJzZXIocmFuZ2UsIENh
bGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIHZhbHVlUmFuZ2UpOwotICAgIGlmIChjb25zdCBD
U1NDYWxjVmFsdWUqIGNhbGN1bGF0aW9uID0gcGVyY2VudENhbGNQYXJzZXIudmFsdWUoKSkgewot
ICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29y
eTo6UGVyY2VudCkKLSAgICAgICAgICAgIHJldHVybiBwZXJjZW50Q2FsY1BhcnNlci5jb25zdW1l
VmFsdWUoKTsKKyAgICAKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CisKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtNzQ4LDE0ICs3NTksNjIgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aQogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9
CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQuLi4gYWxsb3dlZElkZW50cz4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxk
b3VibGU+IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBpZiAo
YXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhKHJhbmdlKSkKLSAgICAgICAgcmV0dXJu
IHsgKmFscGhhIH07CisgICAgaWYgKCFjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKHJh
bmdlKSkKKyAgICAgICAgcmV0dXJuIDEuMDsKIAotICAgIGlmIChhdXRvIGlkZW50ID0gY29uc3Vt
ZUlkZW50UmF3PGFsbG93ZWRJZGVudHMuLi4+KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKmlk
ZW50IH07CisgICAgYXV0byBub3JtYWxpemVQZXJjZW50ID0gW10oZG91YmxlIHBlcmNlbnQpIHsK
KyAgICAgICAgcmV0dXJuIGNsYW1wVG8ocGVyY2VudCAvIDEwMC4wLCAwLjAsIDEuMCk7CisgICAg
fTsKKworICAgIGF1dG8gbm9ybWFsaXplTnVtYmVyID0gW10oZG91YmxlIGFscGhhKSB7CisgICAg
ICAgIHJldHVybiBjbGFtcFRvKGFscGhhLCAwLjAsIDEuMCk7CisgICAgfTsKIAorICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9r
ZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJz
ZXIgcGVyY2VudGFnZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNl
bnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0byBwZXJj
ZW50ID0gcGVyY2VudGFnZUNhbGNQYXJzZXIuY29uc3VtZVBlcmNlbnRSYXcoKSkKKyAgICAgICAg
ICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KCpwZXJjZW50KTsKKyAgICAgICAgCisgICAgICAg
IENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6
TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8g
bnVtYmVyID0gbnVtYmVyQ2FsY1BhcnNlci5jb25zdW1lTnVtYmVyUmF3KCkpCisgICAgICAgICAg
ICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKCpudW1iZXIpOworCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgfQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CisgICAgICAgIGlm
IChzdGQ6OmlzaW5mKHRva2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KHJhbmdlLmNvbnN1
bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBOdW1i
ZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcihyYW5nZS5jb25zdW1lSW5j
bHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKworICAgIGNhc2UgSWRlbnRUb2tl
bjoKKyAgICAgICAgaWYgKGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29u
c3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2
YXJpYWJsZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNF
TlRBR0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQodmFyaWFibGUt
PnZhbHVlKTsKKworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKHZhcmlhYmxlLT52YWx1ZSk7CisK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQog
CkBAIC03NjcsMTQgKzgyNiw1OSBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1
bWVIdWUoCiAgICAgcmV0dXJuIGNvbnN1bWVOdW1iZXJSYXcocmFuZ2UpOwogfQogCi10ZW1wbGF0
ZTxDU1NWYWx1ZUlELi4uIGFsbG93ZWRJZGVudHM+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhcmlh
bnQ8ZG91YmxlLCBDU1NWYWx1ZUlEPj4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCitzdGF0aWMgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVIdWVPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlm
IChhdXRvIGh1ZSA9IGNvbnN1bWVIdWUocmFuZ2UsIGNvbnRleHQpKQotICAgICAgICByZXR1cm4g
eyAqaHVlIH07CisgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygp
OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4u
Lj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICBzd2l0Y2ggKHRva2Vu
LnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2Vy
IGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIFZhbHVl
UmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0byBhbmdsZSA9IGFuZ2xl
Q2FsY1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMoYW5nbGUtPnR5cGUsIGFuZ2xlLT52YWx1ZSk7Cisg
ICAgICAgIAorICAgICAgICBDYWxjUGFyc2VyIG51bWJlckNhbGNQYXJzZXIocmFuZ2UsIENhbGN1
bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7Cisg
ICAgICAgIHJldHVybiBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVOdW1iZXJSYXcoKTsKKyAgICB9
CisgICAgCisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjogeworICAgICAgICBhdXRvIHVuaXRUeXBl
ID0gdG9rZW4udW5pdFR5cGUoKTsKKyAgICAgICAgc3dpdGNoICh1bml0VHlwZSkgeworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgorICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUkFEOgorICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfR1JBRDoKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CisgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZl
VmFsdWU6OmNvbXB1dGVEZWdyZWVzKHVuaXRUeXBlLCByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hp
dGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY2FzZSBO
dW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNw
YWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAgICBjYXNlIElkZW50VG9rZW46CisgICAgICAgIGlm
IChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodmFyaWFibGUtPnR5cGUp
IHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6CisgICAgICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0dSQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKHZhcmlh
YmxlLT50eXBlLCB2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZS0+dmFsdWU7
CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCkBAIC03ODMsNjUgKzg4NywxMzEgQEAgc3RhdGljIGRvdWJsZSBub3JtYWxpemVIdWUoZG91
YmxlIGh1ZSkKICAgICByZXR1cm4gc3RkOjpmbW9kKHN0ZDo6Zm1vZChodWUsIDM2MC4wKSArIDM2
MC4wLCAzNjAuMCk7CiB9CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQuLi4gYWxsb3dlZElkZW50cz4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1l
TnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gY29uc3VtZU51bWJlck9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYg
KGF1dG8gbnVtYmVyID0gY29uc3VtZU51bWJlclJhdyhyYW5nZSkpCi0gICAgICAgIHJldHVybiB7
ICpudW1iZXIgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVr
KCk7CiAKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudFJhdzxhbGxvd2VkSWRlbnRz
Li4uPihyYW5nZSkpCi0gICAgICAgIHJldHVybiB7ICppZGVudCB9OworICAgIHN3aXRjaCAodG9r
ZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJz
ZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJh
bmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsKKyAgICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3Vt
ZU51bWJlclJhdygpOworICAgIH0KIAotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19CisgICAg
Y2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQuLi4gYWxs
b3dlZElkZW50cz4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIENTU1ZhbHVl
SUQ+PiBjb25zdW1lUGVyY2VudE9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCi17
Ci0gICAgaWYgKGF1dG8gcGVyY2VudCA9IGNvbnN1bWVQZXJjZW50UmF3KHJhbmdlKSkKLSAgICAg
ICAgcmV0dXJuIHsgKnBlcmNlbnQgfTsKKyAgICBjYXNlIElkZW50VG9rZW46CisgICAgICAgIGlm
IChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodmFyaWFibGUtPnR5cGUp
IHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1ZTsKIAotICAgIGlmIChhdXRvIGlkZW50ID0gY29u
c3VtZUlkZW50UmF3PGFsbG93ZWRJZGVudHMuLi4+KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsg
KmlkZW50IH07CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfQogCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRCBDMSwgQ1NTVmFsdWVJRCBDMiwgQ1NTVmFs
dWVJRCBDMywgQ1NTVmFsdWVJRCBBbHBoYUNoYW5uZWwsIHR5cGVuYW1lIENvbG9yVHlwZT4gc3Rh
dGljIGF1dG8gZXh0cmFjdENoYW5uZWxWYWx1ZShDU1NWYWx1ZUlEIGNoYW5uZWwsIGNvbnN0IENv
bG9yVHlwZSYgb3JpZ2luQ29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9uZW50VHlw
ZQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudE9ySWRlbnQoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9s
VGFibGUpCiB7Ci0gICAgYXV0byBjb21wb25lbnRzID0gYXNDb2xvckNvbXBvbmVudHMob3JpZ2lu
Q29sb3IpOwotICAgIHN3aXRjaCAoY2hhbm5lbCkgewotICAgIGNhc2UgQzE6Ci0gICAgICAgIHJl
dHVybiBjb21wb25lbnRzWzBdOwotICAgIGNhc2UgQzI6Ci0gICAgICAgIHJldHVybiBjb21wb25l
bnRzWzFdOwotICAgIGNhc2UgQzM6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzJdOwotICAg
IGNhc2UgQWxwaGFDaGFubmVsOgotICAgICAgICByZXR1cm4gY29tcG9uZW50c1szXTsKKyAgICBj
b25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisKKyAgICBzd2l0Y2gg
KHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxj
UGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZh
bHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5j
b25zdW1lUGVyY2VudFJhdygpOworICAgIH0KKworICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgor
ICAgICAgICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1
ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoK
KyAgICAgICAgaWYgKGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3Vt
ZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJp
YWJsZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRB
R0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLT52YWx1ZTsKKworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBk
ZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlE
IEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5l
bCwgdHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBWYWx1ZVRyYW5zZm9ybWVyPiBzdGF0aWMg
ZGVjbHR5cGUoYXV0bykgcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsKGNvbnN0IFZhcmlhbnQ8
ZG91YmxlLCBDU1NWYWx1ZUlEPiYgcGFyc2VkQ2hhbm5lbCwgY29uc3QgQ29sb3JUeXBlJiBvcmln
aW5Db2xvciwgVmFsdWVUcmFuc2Zvcm1lciYmIHZhbHVlVHJhbnNmb3JtZXIpCitlbnVtIGNsYXNz
IFJHQkNvbXBvbmVudFR5cGUgeyBOdW1iZXIsIFBlcmNlbnRhZ2UgfTsKKworc3RhdGljIHN0ZDo6
b3B0aW9uYWw8dWludDhfdD4gY29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVk
Rm9yUmVsYXRpdmVSR0IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNT
eW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgcmV0dXJuIHN3aXRjaE9uKHBhcnNlZENo
YW5uZWwsCi0gICAgICAgIFsmXSAoZG91YmxlIHZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4g
dmFsdWVUcmFuc2Zvcm1lcih2YWx1ZSk7Ci0gICAgICAgIH0sCi0gICAgICAgIFsmXSAoQ1NTVmFs
dWVJRCBjaGFubmVsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXh0cmFjdENoYW5uZWxWYWx1ZTxD
MSwgQzIsIEMzLCBBbHBoYUNoYW5uZWw+KGNoYW5uZWwsIG9yaWdpbkNvbG9yKTsKKyAgICBhdXRv
IG5vcm1hbGl6ZVBlcmNlbnQgPSBbXShkb3VibGUgcGVyY2VudCkgeworICAgICAgICByZXR1cm4g
Y29udmVydFByZXNjYWxlZFNSR0JBRmxvYXRUb1NSR0JBQnl0ZShwZXJjZW50IC8gMTAwLjAgKiAy
NTUuMCk7CisgICAgfTsKKworICAgIGF1dG8gbm9ybWFsaXplTnVtYmVyID0gW10oZG91YmxlIG51
bWJlcikgeworICAgICAgICByZXR1cm4gY29udmVydFByZXNjYWxlZFNSR0JBRmxvYXRUb1NSR0JB
Qnl0ZShudW1iZXIpOworICAgIH07CisKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4g
PSByYW5nZS5wZWVrKCk7CisKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2Ug
RnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxjUGFyc2VyIHBlcmNlbnRhZ2VDYWxjUGFyc2Vy
KHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCBWYWx1ZVJhbmdlOjpBbGwsIHN5
bWJvbFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8gcGVyY2VudCA9IHBlcmNlbnRhZ2VDYWxjUGFy
c2VyLmNvbnN1bWVQZXJjZW50UmF3KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVy
Y2VudCgqcGVyY2VudCk7CisgICAgICAgIAorICAgICAgICBDYWxjUGFyc2VyIG51bWJlckNhbGNQ
YXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5nZTo6QWxs
LCBzeW1ib2xUYWJsZSk7CisgICAgICAgIGlmIChhdXRvIG51bWJlciA9IG51bWJlckNhbGNQYXJz
ZXIuY29uc3VtZU51bWJlclJhdygpKQorICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJl
cigqbnVtYmVyKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CisgICAgICAgIGlmIChzdGQ6OmlzaW5mKHRv
a2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0
ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAg
ICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcihyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpLm51bWVyaWNWYWx1ZSgpKTsKKworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYg
KGF1dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1do
aXRlc3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkg
eworICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQodmFyaWFibGUtPnZhbHVlKTsKKworICAg
ICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbm9ybWFsaXplTnVtYmVyKHZhcmlhYmxlLT52YWx1ZSk7CisKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICk7Ci19CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
LXRlbXBsYXRlPENTU1ZhbHVlSUQgQzEsIENTU1ZhbHVlSUQgQzIsIENTU1ZhbHVlSUQgQzMsIENT
U1ZhbHVlSUQgQWxwaGFDaGFubmVsLCB0eXBlbmFtZSBDb2xvclR5cGU+IHN0YXRpYyBkZWNsdHlw
ZShhdXRvKSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWwoY29uc3QgVmFyaWFudDxkb3VibGUs
IENTU1ZhbHVlSUQ+JiBwYXJzZWRDaGFubmVsLCBjb25zdCBDb2xvclR5cGUmIG9yaWdpbkNvbG9y
KQotewotICAgIHJldHVybiByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8QzEsIEMyLCBDMywg
QWxwaGFDaGFubmVsPihwYXJzZWRDaGFubmVsLCBvcmlnaW5Db2xvciwgW10oYXV0byB2YWx1ZSkg
eyByZXR1cm4gdmFsdWU7IH0pOwotfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgfQogCi1lbnVtIGNsYXNzIFJHQkNvbXBvbmVudFR5cGUgeyBOdW1iZXIs
IFBlcmNlbnRhZ2UgfTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQogCiBzdGF0aWMgdWludDhfdCBjbGFtcFJHQkNvbXBvbmVudChkb3VibGUg
dmFsdWUsIFJHQkNvbXBvbmVudFR5cGUgY29tcG9uZW50VHlwZSkKIHsKQEAgLTkyMSw1MiArMTA5
MSwzNyBAQCBzdGF0aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZVJHQlBhcmFtZXRlcnMoCiAgICAgaWYg
KCFvcmlnaW5Db2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBzdGQ6
Om9wdGlvbmFsPFJHQkNvbXBvbmVudFR5cGU+IGNvbXBvbmVudFR5cGU7Ci0gICAgYXV0byByZWRS
ZXN1bHQgPSBjb25zdW1lUmVsYXRpdmVSR0JDb21wb25lbnQ8Q1NTVmFsdWVSPihhcmdzLCBjb21w
b25lbnRUeXBlKTsKLSAgICBpZiAoIXJlZFJlc3VsdCkKKyAgICBhdXRvIG9yaWdpbkNvbG9yQXNT
UkdCID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxTUkdCQTxmbG9hdD4+KCk7CisKKyAg
ICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENTU1ZhbHVlUiwg
Q1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzU1JHQi5yZWQgKiAxMDAg
fSwKKyAgICAgICAgeyBDU1NWYWx1ZUcsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3Jp
Z2luQ29sb3JBc1NSR0IuZ3JlZW4gKiAxMDAgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc1NSR0IuYmx1ZSAqIDEwMCB9LAor
ICAgICAgICB7IENTU1ZhbHVlQWxwaGEsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3Jp
Z2luQ29sb3JBc1NSR0IuYWxwaGEgKiAxMDAgfQorICAgIH07CisKKyAgICBhdXRvIHJlZCA9IGNv
bnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZlUkdCKGFyZ3Ms
IHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoIXJlZCkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBh
dXRvIHJlZCA9IHJlZFJlc3VsdC0+dmFsdWU7Ci0gICAgY29tcG9uZW50VHlwZSA9IHJlZFJlc3Vs
dC0+dHlwZTsKIAotICAgIGF1dG8gZ3JlZW5SZXN1bHQgPSBjb25zdW1lUmVsYXRpdmVSR0JDb21w
b25lbnQ8Q1NTVmFsdWVHPihhcmdzLCBjb21wb25lbnRUeXBlKTsKLSAgICBpZiAoIWdyZWVuUmVz
dWx0KQorICAgIGF1dG8gZ3JlZW4gPSBjb25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1h
bGl6ZWRGb3JSZWxhdGl2ZVJHQihhcmdzLCBzeW1ib2xUYWJsZSk7CisgICAgaWYgKCFncmVlbikK
ICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBhdXRvIGdyZWVuID0gZ3JlZW5SZXN1bHQtPnZhbHVl
OwotICAgIGNvbXBvbmVudFR5cGUgPSBncmVlblJlc3VsdC0+dHlwZTsKIAotICAgIGF1dG8gYmx1
ZVJlc3VsdCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZUI+KGFyZ3MsIGNv
bXBvbmVudFR5cGUpOwotICAgIGlmICghYmx1ZVJlc3VsdCkKKyAgICBhdXRvIGJsdWUgPSBjb25z
dW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6ZWRGb3JSZWxhdGl2ZVJHQihhcmdzLCBz
eW1ib2xUYWJsZSk7CisgICAgaWYgKCFibHVlKQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1
dG8gYmx1ZSA9IGJsdWVSZXN1bHQtPnZhbHVlOwotICAgIGNvbXBvbmVudFR5cGUgPSBibHVlUmVz
dWx0LT50eXBlOwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVu
dDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFs
QWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBjb252ZXJ0IGlkZW50aWZpZXJzIHRvIHZhbHVl
cyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAgICAvLyBGSVhNRTogRG8gd2Ugd2FudCB0byBi
ZWluZyBkb2luZyB0aGlzIGluIHVpbnQ4X3QgdmFsdWVzPyBPciBzaG91bGQgd2UgdXNlIAotICAg
IC8vIGhpZ2hlciBwcmVjaXNpb24gYW5kIGNsYW1wIGF0IHRoZSBlbmQ/IEl0IHdvbid0IG1ha2Ug
YSBkaWZmZXJlbmNlIHVudGlsIHdlCi0gICAgLy8gc3VwcG9ydCBjYWxjdWxhdGlvbnMgb24gdGhl
IG9yaWdpbidzIGNvbXBvbmVudHMuCi0gICAgYXV0byBvcmlnaW5Db2xvckFzU1JHQiA9IG9yaWdp
bkNvbG9yLnRvU1JHQkFMb3NzeTx1aW50OF90PigpOwotCi0gICAgYXV0byByZXNvbHZlZENvbXBv
bmVudFR5cGUgPSBjb21wb25lbnRUeXBlLnZhbHVlX29yKFJHQkNvbXBvbmVudFR5cGU6OlBlcmNl
bnRhZ2UpOwotICAgIGF1dG8gY2hhbm5lbFJlc29sdmVyID0gW3Jlc29sdmVkQ29tcG9uZW50VHlw
ZV0oYXV0byB2YWx1ZSkgewotICAgICAgICByZXR1cm4gY2xhbXBSR0JDb21wb25lbnQodmFsdWUs
IHJlc29sdmVkQ29tcG9uZW50VHlwZSk7Ci0gICAgfTsKLQotICAgIGF1dG8gcmVzb2x2ZWRSZWQg
PSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcsIENTU1Zh
bHVlQiwgQ1NTVmFsdWVBbHBoYT4ocmVkLCBvcmlnaW5Db2xvckFzU1JHQiwgY2hhbm5lbFJlc29s
dmVyKTsKLSAgICBhdXRvIHJlc29sdmVkR3JlZW4gPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5u
ZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oZ3JlZW4s
IG9yaWdpbkNvbG9yQXNTUkdCLCBjaGFubmVsUmVzb2x2ZXIpOwotICAgIGF1dG8gcmVzb2x2ZWRC
bHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBD
U1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KGJsdWUsIG9yaWdpbkNvbG9yQXNTUkdCLCBjaGFubmVs
UmVzb2x2ZXIpOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9y
Q2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigq
YWxwaGEsIG9yaWdpbkNvbG9yQXNTUkdCLCBbXShhdXRvIHZhbHVlKSB7Ci0gICAgICAgIHJldHVy
biBjb252ZXJ0RmxvYXRBbHBoYVRvPHVpbnQ4X3Q+KHZhbHVlKTsKLSAgICB9KTsKKyAgICBhdXRv
IG5vcm1hbGl6ZWRBbHBoYSA9IGNvbnZlcnRGbG9hdEFscGhhVG88dWludDhfdD4oKmFscGhhKTsK
IAotICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IHJlc29sdmVkUmVkLCByZXNvbHZlZEdyZWVu
LCByZXNvbHZlZEJsdWUsIHJlc29sdmVkQWxwaGEgfTsKKyAgICByZXR1cm4gU1JHQkE8dWludDhf
dD4geyAqcmVkLCAqZ3JlZW4sICpibHVlLCBub3JtYWxpemVkQWxwaGEgfTsKIH0KIAogZW51bSBj
bGFzcyBSR0JGdW5jdGlvbk1vZGUgeyBSR0IsIFJHQkEgfTsKQEAgLTEwNDgsNDEgKzEyMDMsNDAg
QEAgc3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVIU0xQYXJhbWV0ZXJzKAogICAgIGlmICghb3Jp
Z2luQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUg
PSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8g
b3JpZ2luQ29sb3JBc0hTTCA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFNMQTxmbG9h
dD4+KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7
IENTU1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNIU0wuaHVlIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVTLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdp
bkNvbG9yQXNIU0wuc2F0dXJhdGlvbiB9LAorICAgICAgICB7IENTU1ZhbHVlTCwgQ1NTVW5pdFR5
cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzSFNMLmxpZ2h0bmVzcyB9LAorICAgICAg
ICB7IENTU1ZhbHVlQWxwaGEsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29s
b3JBc0hTTC5hbHBoYSAqIDEwMCB9CisgICAgfTsKKworICAgIGF1dG8gaHVlID0gY29uc3VtZUh1
ZU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENT
U1ZhbHVlUz4oYXJncyk7CisgICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklk
ZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIXNhdHVyYXRpb24pCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudDxD
U1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklk
ZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWxpZ2h0bmVzcykKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQ8
Q1NTVmFsdWVBbHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFs
cGhhT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1ZXMg
ZnJvbSB0aGUgb3JpZ2luIGNvbG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzSFNMID0gb3Jp
Z2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIU0xBPGZsb2F0Pj4oKTsKLQotICAgIGF1dG8gcmVz
b2x2ZWRIdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1
ZVMsIENTU1ZhbHVlTCwgQ1NTVmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0hTTCwgW10o
YXV0byBodWUpIHsKLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAgIH0pOwot
ICAgIGF1dG8gcmVzb2x2ZWRTYXR1cmF0aW9uID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVs
PENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpzYXR1cmF0
aW9uLCBvcmlnaW5Db2xvckFzSFNMLCBbXShhdXRvIHNhdHVyYXRpb24pIHsKLSAgICAgICAgcmV0
dXJuIGNsYW1wVG8oc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAgYXV0byBy
ZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgs
IENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5D
b2xvckFzSFNMLCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gY2xhbXBUbyhs
aWdodG5lc3MsIDAuMCwgMTAwLjApOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9
IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFs
dWVMLCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNIU0wpOworICAgIGF1dG8g
bm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRT
YXR1cmF0aW9uID0gY2xhbXBUbygqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7CisgICAgYXV0byBu
b3JtYWxpemVkTGlnaHRuZXNzID0gY2xhbXBUbygqbGlnaHRuZXNzLCAwLjAsIDEwMC4wKTsKKyAg
ICBhdXRvIG5vcm1hbGl6ZWRBbHBoYSA9IGNsYW1wVG8oKmFscGhhLCAwLjAsIDEuMCk7CiAKLSAg
ICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZsb2F0PiB7IHN0YXRp
Y19jYXN0PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZFNh
dHVyYXRpb24pLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRMaWdodG5lc3MpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBoYSkgfSk7CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxT
UkdCQTx1aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXpl
ZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlvbiksIHN0YXRpY19j
YXN0PGZsb2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1h
bGl6ZWRBbHBoYSkgfSk7CiB9CiAKIGVudW0gY2xhc3MgSFNMRnVuY3Rpb25Nb2RlIHsgSFNMLCBI
U0xBIH07CkBAIC0xMTI5LDggKzEyODMsNyBAQCB0ZW1wbGF0ZTxIU0xGdW5jdGlvbk1vZGUgTW9k
ZT4gc3RhdGljIENvCiAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFNM
QTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxp
emVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRBbHBoYSkgfSk7CiB9
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+Ci1zdHJ1Y3QgV2hpdGVuZXNzQmxh
Y2tuZXNzIHsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+IHN0cnVjdCBXaGl0ZW5l
c3NCbGFja25lc3MgewogICAgIENvbXBvbmVudFR5cGUgd2hpdGVuZXNzOwogICAgIENvbXBvbmVu
dFR5cGUgYmxhY2tuZXNzOwogfTsKQEAgLTExNjQsMzkgKzEzMTcsMzggQEAgc3RhdGljIENvbG9y
IHBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJ
ZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hX
QiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7CisKKyAgICBD
U1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENTU1ZhbHVlSCwgQ1NT
VW5pdFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNIV0IuaHVlIH0sCisgICAgICAgIHsgQ1NT
VmFsdWVXLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0Iud2hp
dGVuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRB
R0UsIG9yaWdpbkNvbG9yQXNIV0IuYmxhY2tuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBo
YSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzSFdCLmFscGhhICog
MTAwIH0KKyAgICB9OworCisgICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudChhcmdzLCBz
eW1ib2xUYWJsZSk7CiAgICAgaWYgKCFodWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBh
dXRvIHdoaXRlbmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZVc+KGFyZ3MpOwor
ICAgIGF1dG8gd2hpdGVuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRh
YmxlKTsKICAgICBpZiAoIXdoaXRlbmVzcykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1
dG8gYmxhY2tuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlQj4oYXJncyk7Cisg
ICAgYXV0byBibGFja25lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFi
bGUpOwogICAgIGlmICghYmxhY2tuZXNzKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0
byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdz
KTsKKyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5
bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAg
aWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBw
YXJzaW5nLCBjb252ZXJ0IGlkZW50aWZpZXJzIHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29s
b3IuCi0KLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNIV0IgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlw
ZUxvc3N5PEhXQkE8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZlZEh1ZSA9IHJlc29sdmVS
ZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlVywgQ1NTVmFsdWVCLCBDU1NW
YWx1ZUFscGhhPigqaHVlLCBvcmlnaW5Db2xvckFzSFdCLCBbXShhdXRvIGh1ZSkgewotICAgICAg
ICByZXR1cm4gbm9ybWFsaXplSHVlKGh1ZSk7Ci0gICAgfSk7Ci0gICAgYXV0byByZXNvbHZlZFdo
aXRlbmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVl
VywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqd2hpdGVuZXNzLCBvcmlnaW5Db2xvckFzSFdC
KTsKLSAgICBhdXRvIHJlc29sdmVkQmxhY2tuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpibGFj
a25lc3MsIG9yaWdpbkNvbG9yQXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJlc29s
dmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlVywgQ1NTVmFsdWVCLCBD
U1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNIV0IpOwotCi0gICAgYXV0byBbbm9y
bWFsaXplZFdoaXRuZXNzLCBub3JtYWxpemVkQmxhY2tuZXNzXSA9IG5vcm1hbGl6ZVdoaXRlbmVz
c0JsYWNrbmVzcyhyZXNvbHZlZFdoaXRlbmVzcywgcmVzb2x2ZWRCbGFja25lc3MpOworICAgIGF1
dG8gbm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIFtub3JtYWxp
emVkV2hpdG5lc3MsIG5vcm1hbGl6ZWRCbGFja25lc3NdID0gbm9ybWFsaXplV2hpdGVuZXNzQmxh
Y2tuZXNzKCp3aGl0ZW5lc3MsICpibGFja25lc3MpOwogCi0gICAgcmV0dXJuIGNvbnZlcnRDb2xv
cjxTUkdCQTx1aW50OF90Pj4oSFdCQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRIdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZFdoaXRuZXNzKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRCbGFja25lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRBbHBoYSkgfSk7CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFdC
QTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkV2hpdG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXpl
ZEJsYWNrbmVzcyksIHN0YXRpY19jYXN0PGZsb2F0PigqYWxwaGEpIH0pOwogfQogCiBzdGF0aWMg
Q29sb3IgcGFyc2VIV0JQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQpAQCAtMTI0NSwzNyArMTM5NywzNyBAQCBzdGF0
aWMgQ29sb3IgcGFyc2VSZWxhdGl2ZUxhYlBhcmFtZXRlcnMoCiAgICAgaWYgKCFvcmlnaW5Db2xv
ci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9
IGNvbnN1bWVQZXJjZW50T3JJZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gb3JpZ2lu
Q29sb3JBc0xhYiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TGFiPGZsb2F0Pj4oKTsK
KworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFs
dWVMLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMYWIubGlnaHRu
ZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiwgb3Jp
Z2luQ29sb3JBc0xhYi5hIH0sCisgICAgICAgIHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlwZTo6Q1NT
X05VTUJFUiwgb3JpZ2luQ29sb3JBc0xhYi5iIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwg
Q1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzTGFiLmFscGhhICogMTAw
IH0KKyAgICB9OworCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQo
YXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNzKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgYXV0byBhVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUE+
KGFyZ3MpOworICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJlck9ySWRlbnQoYXJncywgc3lt
Ym9sVGFibGUpOwogICAgIGlmICghYVZhbHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
YXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUI+KGFyZ3MpOworICAg
IGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJlck9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwog
ICAgIGlmICghYlZhbHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9
IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBh
dXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxl
KTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdz
LmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICAvLyBBZnRlciBwYXJzaW5nLCBj
b252ZXJ0IGlkZW50aWZpZXJzIHRvIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW4gY29sb3IuCi0KLSAg
ICBhdXRvIG9yaWdpbkNvbG9yQXNMYWIgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PExh
YjxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkTGlnaHRuZXNzID0gcmVzb2x2ZVJlbGF0
aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVl
QWxwaGE+KCpsaWdodG5lc3MsIG9yaWdpbkNvbG9yQXNMYWIsIFtdKGF1dG8gbGlnaHRuZXNzKSB7
Ci0gICAgICAgIHJldHVybiBzdGQ6Om1heCgwLjAsIGxpZ2h0bmVzcyk7Ci0gICAgfSk7Ci0gICAg
YXV0byByZXNvbHZlZEFWYWx1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1
ZUwsIENTU1ZhbHVlQSwgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqYVZhbHVlLCBvcmlnaW5D
b2xvckFzTGFiKTsKLSAgICBhdXRvIHJlc29sdmVkQlZhbHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29s
b3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVBLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+
KCpiVmFsdWUsIG9yaWdpbkNvbG9yQXNMYWIpOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBoYSA9IHJl
c29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NTVmFsdWVC
LCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNMYWIpOworICAgIGF1dG8gbm9y
bWFsaXplZExpZ2h0bmVzcyA9IHN0ZDo6bWF4KDAuMCwgKmxpZ2h0bmVzcyk7CiAKLSAgICByZXR1
cm4gTGFiPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZExpZ2h0bmVzcyksIHN0
YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNv
bHZlZEJWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9OworICAgIHJl
dHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3Mp
LCBzdGF0aWNfY2FzdDxmbG9hdD4oKmFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PigqYlZhbHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfTsKIH0KIAogc3RhdGljIENvbG9yIHBhcnNl
TGFiUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2Vy
Q29udGV4dCYgY29udGV4dCkKQEAgLTEzMjMsMzkgKzE0NzUsMzkgQEAgc3RhdGljIENvbG9yIHBh
cnNlUmVsYXRpdmVMQ0hQYXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2luQ29sb3IuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVy
Y2VudE9ySWRlbnQ8Q1NTVmFsdWVMPihhcmdzKTsKKyAgICBhdXRvIG9yaWdpbkNvbG9yQXNMQ0gg
PSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PExDSEE8ZmxvYXQ+PigpOworCisgICAgQ1NT
Q2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0xDSC5saWdodG5lc3MgfSwKKyAg
ICAgICAgeyBDU1NWYWx1ZUMsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFz
TENILmNocm9tYSB9LAorICAgICAgICB7IENTU1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcs
IG9yaWdpbkNvbG9yQXNMQ0guaHVlIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5p
dFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFzTENILmFscGhhICogMTAwIH0KKyAg
ICB9OworCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQoYXJncywg
c3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNzKQogICAgICAgICByZXR1cm4geyB9Owog
Ci0gICAgYXV0byBjaHJvbWEgPSBjb25zdW1lTnVtYmVyT3JJZGVudDxDU1NWYWx1ZUM+KGFyZ3Mp
OworICAgIGF1dG8gY2hyb21hID0gY29uc3VtZU51bWJlck9ySWRlbnQoYXJncywgc3ltYm9sVGFi
bGUpOwogICAgIGlmICghY2hyb21hKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBo
dWUgPSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1
dG8gaHVlID0gY29uc3VtZUh1ZU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICgh
aHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRp
b25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsKKyAgICBhdXRvIGFscGhhID0g
Y29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAo
IWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIG9yaWdpbkNvbG9yQXNMQ0ggPSBvcmlnaW5D
b2xvci50b0NvbG9yVHlwZUxvc3N5PExDSEE8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZl
ZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1Zh
bHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5Db2xvckFz
TENILCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBs
aWdodG5lc3MpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRDaHJvbWEgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFs
dWVBbHBoYT4oKmNocm9tYSwgb3JpZ2luQ29sb3JBc0xDSCwgW10oYXV0byBjaHJvbWEpIHsKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwgY2hyb21hKTsKLSAgICB9KTsKLSAgICBhdXRvIHJl
c29sdmVkSHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlTCwgQ1NTVmFs
dWVDLCBDU1NWYWx1ZUgsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNMQ0gsIFtd
KGF1dG8gaHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsK
LSAgICBhdXRvIHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NT
VmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmFscGhhLCBvcmln
aW5Db2xvckFzTENIKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBzdGQ6Om1heCgw
LjAsICpsaWdodG5lc3MpOworICAgIGF1dG8gbm9ybWFsaXplZENocm9tYSA9IHN0ZDo6bWF4KDAu
MCwgKmNocm9tYSk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUp
OwogCi0gICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
TGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQ2hyb21hKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHJlc29sdmVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkQWxwaGEp
IH07CisgICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6
ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZENocm9tYSksIHN0YXRp
Y19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkg
fTsKIH0KIAogc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODI1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21wb25lbnRzIGluc2lkZSByZWxhdGl2
ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGVkIHRlc3QgYW5kIHJlc3VsdHMgZm9yIHVwZGF0ZSBzdXBwb3J0
IGluY2x1ZGluZyBjYWxjKCkgCisgICAgICAgIGFuZCBjb21wb21lbnQgcGVybXV0YXRpb24uCisK
KyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2ZS1jb2xvci1zeW50YXgu
aHRtbDoKKwogMjAyMS0wNS0yOSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmFtZSBJbnRlcm5hbHMubWFpblRocmVhZFNjcm9sbGluZ1JlYXNvbnMg
dG8gc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2ZS1jb2xvci1zeW50YXgtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgyNTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDIwICs0MiwyNyBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
CiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgMjUgZyBiIC8gMjUlKSIpIGlzICJyZ2JhKDI1LCA1MSwgNzcsIDAu
MjUpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMjUgYiAvIDI1JSkiKSBpcyAicmdiYSgyNiwgMjUsIDc3
LCAwLjI1KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIGcgMjUgLyAyNSUpIikgaXMgInJnYmEoMjYsIDUx
LCAyNSwgMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxl
IGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhh
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
InJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciByIHIgLyByKSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSBy
ZWJlY2NhcHVycGxlIHIgMTAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUg
MTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCUgMTAp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMCUgMTAgMTApIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcikiKSBpcyAicmdiKDUxLCAxNTMsIDEwMikiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBs
ZSBiIGFscGhhIHIgLyBnKSIpIGlzICJyZ2JhKDE1MywgMjU1LCAxMDIsIDAuMikiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBy
IHIgciAvIHIpIikgaXMgInJnYmEoMTAyLCAxMDIsIDEwMiwgMC40KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFs
cGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwg
NDAlKSBnIGIgcikiKSBpcyAicmdiKDUxLCA3NywgMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxw
aGEgciAvIGcpIikgaXMgInJnYmEoNzcsIDEwMiwgMjYsIDAuMikiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
ciByIHIgLyByKSIpIGlzICJyZ2JhKDI2LCAyNiwgMjYsIDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
YWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVj
Y2FwdXJwbGUgciAxMCUgMTApIikgaXMgInJnYigxMDIsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEw
JSkiKSBpcyAicmdiKDEwMiwgMTAsIDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIDAlIDEwIDEwKSIpIGlzICJyZ2IoMCwg
MTAsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMCkiKSBpcyAicmdiKDI2LCAyNiwgMTAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKSIpIGlzICJyZ2IoMjYsIDEwLCAyNikiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgMCUgMTAgMTApIikgaXMgInJnYigwLCAxMCwgMTApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhy
KSBjYWxjKGcpIGNhbGMoYikpIikgaXMgInJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxj
KGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41
KSAxMCkiKSBpcyAicmdiKDEwMiwgNzcsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgKyBnICog
LjUpIDEwKSIpIGlzICJyZ2IoMTAyLCAxMDIsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgLSBn
ICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCA1MSwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAt
IGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDUxLCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2Fs
YyhyKSBjYWxjKGcpIGNhbGMoYikgLyBjYWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3
LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgcmVkIGcgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGwg
ZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgaCBnIGIpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCkBAIC05MSwxNCArOTgsMjQgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggMjUlIGwgLyBhbHBoYSkiKSBpcyAicmdi
YSgzOSwgNTEsIDY0LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggcyAyNSUgLyBhbHBoYSkiKSBp
cyAicmdiYSgzMiwgNjMsIDk1LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggcyBsIC8gLjI1KSIp
IGlzICJyZ2JhKDI2LCA1MSwgNzcsIDAuMjUpIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZy
b20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGwgLyBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgot
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgaCBsIGwgLyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBh
bHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
bCBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAv
IHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIGwgLyBsKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBh
bHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBzKSIpIGlzICJyZ2IoMTI4
LCA3NywgMTc5KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMTAyLCAwLCAyMDQs
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20g
cmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMTAyLCA2MSwgMTQzLCAwLjQpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2IoMjU1LCAyNTUsIDI1NSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCBsIHMpIikgaXMgInJnYigxMDEsIDEyNiwgMTUyKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIGFscGhhIGwgLyBzKSIpIGlzICJyZ2JhKDMxLCA1MSwgNzIsIDAuNDk0KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwpIikgaXMgInJnYmEoNDEsIDUxLCA2MiwgMC4yMDQpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSg2MSwgMTAx
LCAxNDMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmViZWNjYXB1cnBsZSBzIGggbCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxl
IHMgcyBzIC8gcykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggaCBoIC8gaCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBoIGwpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBzIHMgLyBzKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHMpIGNhbGMobCkpIikgaXMgInJnYigx
MDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyhzKSBjYWxjKGwpIC8g
Y2FsYyhhbHBoYSkpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC40KSIKIFBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEw
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCAxMCUpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZy
b20gcmViZWNjYXB1cnBsZSAxMCUgcyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMTQw
LDE0ICsxNTcsMjQgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgog
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggMjUlIGIgLyBhbHBoYSkiKSBpcyAicmdiYSg2NCwgNzAsIDc3LCAw
LjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyAyNSUgLyBhbHBoYSkiKSBpcyAicmdiYSgyNiwgMTA3
LCAxOTEsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IGIgLyAuMjUpIikgaXMgInJnYmEoMjYs
IDUxLCA3NywgMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVy
cGxlIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAv
IHcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBiIHcpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
d2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgdyAvIHcpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
Imh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBiIHcpIikgaXMgInJnYigxNTMsIDEwMiwgMjA0KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2Nh
cHVycGxlIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMjEzLCAyMTMsIDIxMywgMC40KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVy
cGxlIGggdyB3IC8gdykiKSBpcyAicmdiYSgxMjgsIDUxLCAyMDQsIDAuMikiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGFs
cGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwg
NDAlKSBoIGIgdykiKSBpcyAicmdiKDE3OCwgMjAzLCAyMjkpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
YWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMTAyLCAxNjQsIDIyOSwgMC42OTgpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGggdyB3IC8gdykiKSBpcyAicmdiYSgyNiwgMTI2LCAyMjksIDAuMSkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDEwMiwgMTI3LCAxNTMs
IDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20g
cmViZWNjYXB1cnBsZSB3IGggYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYiBi
IC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggaCBoIC8gaCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
d2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgdyBiIGgpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBiIGIgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9t
IHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikpIikgaXMgInJnYigxMDIsIDUx
LCAxNTMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyh3KSBjYWxjKGIpIC8gY2FsYyhh
bHBoYSkpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmVi
ZWNjYXB1cnBsZSAxMCUgdyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMTgyLDE0ICsy
MDksMTYgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgogUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAg
LyA0MCUpIGwgMzUgYiAvIGFscGhhKSIpIGlzICJsYWIoMjUlIDM1IDUwIC8gMC40KSIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUw
IC8gNDAlKSBsIGEgMzUgLyBhbHBoYSkiKSBpcyAibGFiKDI1JSAyMCAzNSAvIDAuNCkiCiBQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1
MCAvIDQwJSkgbCBhIGIgLyAuMzUpIikgaXMgImxhYigyNSUgMjAgNTAgLyAwLjM1KSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUw
KSBsIGIgYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSkiKSBpcyAibGFi
KDI1JSA1MCAyMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKSIpIGlzICJsYWIoMjUlIDIwIDIwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIw
IDUwIC8gNDAlKSBsIGIgYSkiKSBpcyAibGFiKDI1JSA1MCAyMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBh
IGEgLyBhKSIpIGlzICJsYWIoMjUlIDIwIDIwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFscGhhIGEgLyBiKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBhIC8gYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwKSBsIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFi
KDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAv
IDQwJSkgbCBhbHBoYSBhIC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAl
KSBsIGEgYSAvIGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBo
YSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGNhbGMobCkg
Y2FsYyhhKSBjYWxjKGIpKSIpIGlzICJsYWIoMjUlIDIwIDUwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBjYWxj
KGwpIGNhbGMoYSkgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJsYWIoMjUlIDIwIDUwIC8g
MC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwKSBsIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBs
IDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSAxMCBhIGIpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCkBAIC0yMzEsMTAgKzI2MCwyMiBAQCBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIDI1IC8gYWxwaGEpIikgaXMg
ImxjaCg3MCUgNDUgMjUgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyAyNWRlZyAvIGFscGhhKSIp
IGlzICJsY2goNzAlIDQ1IDI1IC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBsIGMgaCAvIC4yNSkiKSBp
cyAibGNoKDcwJSA0NSAzMCAvIDAuMjUpIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZy
b20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBoIC8gbCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBsKSIpIGlzICJsY2goMTAwJSA0NSAzMCAvIDAuNyki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcw
JSA0NSAzMCkgbCBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSA0NSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxw
aGEgYyBoIC8gYWxwaGEpIikgaXMgImxjaCgxMDAlIDQ1IDMwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGMg
LyBhbHBoYSkiKSBpcyAibGNoKDEwMCUgNDUgNDUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAv
IGwpIikgaXMgImxjaCg0MCUgNDUgMzAgLyAwLjcpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBjIC8gYWxw
aGEpIikgaXMgImxjaCg3MCUgNDUgNDUgLyAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAv
IGFscGhhKSIpIGlzICJsY2goNDAlIDQ1IDMwIC8gMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBj
IGMgLyBhbHBoYSkiKSBpcyAibGNoKDQwJSA0NSA0NSAvIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgaCBsIGMgLyBh
bHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBjIGMgYyAvIGMpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBoIGwgYyAvIGFscGhhKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGMgYyBjIC8gYykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aChmcm9tIGxjaCg3MCUgNDUgMzApIGNhbGMobCkgY2FsYyhjKSBjYWxjKGgpKSIpIGlzICJsY2go
NzAlIDQ1IDMwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
ZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYykgY2FsYyhoKSAvIGNhbGMo
YWxwaGEpKSIpIGlzICJsY2goNzAlIDQ1IDMwIC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIDEwJSBoKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgYyAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNo
KDcwJSA0NSAzMCkgMTAgYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMjQ0LDYgKzI4
NSwyMSBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkg
bGlnaHRuZXNzIGMgaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSB4IGMgaCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGcgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSB2YXIo
LS1iZy1jb2xvcikgciBnIGIgLyA4MCUpIikgaXMgInJnYmEoMCwgMCwgMjU1LCAwLjgpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLWNvbG9y
KSBjYWxjKGwgLyAyKSBjIGgpIikgaXMgImxjaCgyMy4xMzg5NzElIDY3Ljk4OTcxNiAxMzQuMzkx
MjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHZh
cigtLWNvbG9yKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyAr
IGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSkiKSBp
cyAicmdiKDc2LCA3NiwgNzYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaChmcm9tIHZhcigtLWNvbG9yKSBsIDAgaCkiKSBpcyAibGNoKDQ2LjI3Nzk0MyUgMCAx
MzQuMzkxMjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIGluZGlhbnJlZCAyNTUgZyBiKSIpIGlzICJyZ2IoMjU1LCA5MiwgOTIpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHZhcigtLWFjY2VudCkgY2Fs
YyhoICsgMTgwZGVnKSBzIGwpIikgaXMgInJnYigxNzgsIDMyLCA0MCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIg
LyAxMDAlKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9y
KSBsIGEgYiAvIGNhbGMoYWxwaGEgKiAwLjgpKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgw
MiAtMzQuMTE3MjgzIC8gMC44KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEgLSAyMCUpKSIp
IGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8gMC44KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBs
IDAgMCkiKSBpcyAibGFiKDYyLjc1MTkyMyUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBwZXJ1IGNhbGMobCAqIDAuOCkgYyBoKSIpIGlzICJs
Y2goNDkuODAxMzglIDU0LjAwMzI5NiA2My42ODAzMTcpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgIkxDSChmcm9tIHZhcigtLWFjY2VudCkgbCBjIGNhbGMoaCArIDE4
MGRlZykpIikgaXMgImxjaCg2NS40OTQ3MyUgMzkuNDQ2OTAzIDEwLjExNDQ3MSkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gdmFyKC0tbXljb2xvcikg
bCAwIGgpIikgaXMgImxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJ2YXIoLS1teWdyYXkpIikgaXMgImxjaCg2Mi43NTE5
MjMlIDAgMzI2Ljk2MTEyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goZnJvbSB2YXIoLS1teWdyYXkpIGwgMzAgaCkiKSBpcyAibGNoKDYyLjc1MTkyMyUgMzAg
MzI2Ljk2MTEyKSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2ZS1jb2xvci1z
eW50YXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJl
bGF0aXZlLWNvbG9yLXN5bnRheC5odG1sCShyZXZpc2lvbiAyNzgyNTMpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsMTUgQEAKIDwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgQ1NTUmVsYXRpdmVDb2xvclN5bnRheEVuYWJsZWQ9dHJ1ZSBdIC0tPgogPGh0bWw+CiAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHN0eWxlPgorICAgICAgICBodG1sIHsgCisgICAgICAgICAgICAtLWJnLWNvbG9yOiBi
bHVlOworICAgICAgICAgICAgLS1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICAtLWFjY2VudDog
bGlnaHRzZWFncmVlbjsKKyAgICAgICAgICAgIC0tbXljb2xvcjogb3JjaGlkOworICAgICAgICAg
ICAgLS1teWdyYXk6IGxjaChmcm9tIHZhcigtLW15Y29sb3IpIGwgMCBoKTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+CkBAIC05NSwyMyArMTA0LDMy
IEBACiAgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBy
IDI1IGIgLyAyNSUpYCwgYHJnYmEoMjYsIDI1LCA3NywgMC4yNSlgKTsKICAgICB0ZXN0Q29tcHV0
ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgZyAyNSAvIDI1JSlgLCBgcmdi
YSgyNiwgNTEsIDI1LCAwLjI1KWApOwogCi0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5j
bGVhciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0
ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgZyBiIHIpYCwgYHJnYmEoMCwgMCwg
MCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYiBhbHBo
YSByIC8gZylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZy
b20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0
ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBh
bHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgZyBiIHIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAg
ICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEg
ciAvIGcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgciByIC8gcilgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxw
aGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotCi0gICAgLy8g
VGVzdGluZyBpbnZhbGlkIG1peGVzIG9mIG51bWJlciBhbmQgcGVyY2VudGFnZQotICAgIHRlc3RD
b21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMClgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEw
JSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmVi
ZWNjYXB1cnBsZSAwJSAxMCAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCUgMTApYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIHIgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAxMClgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24uCisgICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKWAsIGByZ2IoNTEsIDE1MywgMTAyKWAp
OworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGFscGhhIHIgLyBn
KWAsIGByZ2JhKDE1MywgMjU1LCAxMDIsIDAuMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihm
cm9tIHJlYmVjY2FwdXJwbGUgciByIHIgLyByKWAsIGByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEg
YWxwaGEgLyBhbHBoYSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVk
KGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcilgLCBgcmdiKDUxLCA3Nywg
MjYpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDc3LCAxMDIsIDI2LCAwLjIpYCk7CisgICAgdGVzdENv
bXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIHIgciAvIHIpYCwgYHJn
YmEoMjYsIDI2LCAyNiwgMC4xKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgxMDIs
IDEwMiwgMTAyLCAwLjQpYCk7CisKKyAgICAvLyBUZXN0aW5nIG1peGVzIG9mIG51bWJlciBhbmQg
cGVyY2VudGFnZS4gKFRoZXNlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIGluIHRoZSBub24tcmVsYXRp
dmUgc3ludGF4KS4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAx
MCUgMTApYCwgYHJnYigxMDIsIDI2LCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgciAxMCAxMCUpYCwgYHJnYigxMDIsIDEwLCAyNilgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUgMTAgMTApYCwgYHJnYigwLCAxMCwg
MTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSByIDEwJSAxMClgLCBgcmdiKDI2LCAyNiwgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2Io
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwIDEwJSlgLCBgcmdiKDI2LCAxMCwgMjYp
YCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAw
JSAxMCAxMClgLCBgcmdiKDAsIDEwLCAxMClgKTsKKworICAgIC8vIFRlc3Rpbmcgd2l0aCBjYWxj
KCkuCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIGNhbGMocikgY2Fs
YyhnKSBjYWxjKGIpKWAsIGByZ2IoMTAyLCA1MSwgMTUzKWApOworICAgIHRlc3RDb21wdXRlZChg
cmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgMjYs
IDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMo
YiAqIC41KSAxMClgLCBgcmdiKDEwMiwgNzcsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41ICsgZyAqIC41KSAxMClgLCBgcmdiKDEw
MiwgMTAyLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUg
ciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApYCwgYHJnYigxMDIsIDUxLCAxMClgKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAu
NSkgMTApYCwgYHJnYigxMDIsIDUxLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMocikgY2FsYyhnKSBjYWxjKGIpIC8gY2FsYyhh
bHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZh
bGlkIGNvbXBvbmVudCBuYW1lcwogICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1
cnBsZSByZWQgZyBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0xNjEsMTUgKzE3OSwyOSBA
QAogICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBz
IDI1JSAvIGFscGhhKWAsIGByZ2JhKDMyLCA2MywgOTUsIDAuNClgKTsKICAgICB0ZXN0Q29tcHV0
ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggcyBsIC8gLjI1KWAsIGByZ2Jh
KDI2LCA1MSwgNzcsIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNs
ZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRl
c3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcylgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhh
IGwgLyBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJv
bSByZWJlY2NhcHVycGxlIGggbCBsIC8gbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRl
c3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEp
YCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGggbCBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVz
dENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBz
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAg
ICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEg
YWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgdmFs
aWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9t
IHJlYmVjY2FwdXJwbGUgaCBsIHMpYCwgYHJnYigxMjgsIDc3LCAxNzkpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMTAy
LCAwLCAyMDQsIDAuNSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJw
bGUgaCBsIGwgLyBsKWAsIGByZ2JhKDEwMiwgNjEsIDE0MywgMC40KWApOworICAgIHRlc3RDb21w
dXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJn
YigyNTUsIDI1NSwgMjU1KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCBsIHMpYCwgYHJnYigxMDEsIDEyNiwgMTUyKWApOworICAgIHRlc3RD
b21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBsIC8gcylg
LCBgcmdiYSgzMSwgNTEsIDcyLCAwLjQ5NClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbClgLCBgcmdiYSg0MSwgNTEsIDYyLCAw
LjIwNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSg2MSwgMTAxLCAxNDMsIDAuNClgKTsK
KworICAgIC8vIFRlc3RpbmcgaW52YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgZG9uJ3QgbWF0Y2gp
LgorICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBzIGggbClgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBs
ZSBzIHMgcyAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhh
IC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHMgaCBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIHMg
cyAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaClgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxw
aGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAgLy8g
VGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgY2FsYyhoKSBjYWxjKHMpIGNhbGMobCkpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxjKGgp
IGNhbGMocykgY2FsYyhsKSAvIGNhbGMoYWxwaGEpKWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuNClg
KTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBo
c2woZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBA
IC0yMjgsMTUgKzI2MCwyOSBAQAogICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCB3IDI1JSAvIGFscGhhKWAsIGByZ2JhKDI2LCAxMDcsIDE5MSwgMC40
KWApOwogICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCB3IGIgLyAuMjUpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC4yNSlgKTsKIAotICAgIC8vIFRlc3Rp
bmcgcGVybXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBk
aXNhbGxvdyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGgg
YiB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0
ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCB3IHcgLyB3KWAsIGByZ2JhKDAs
IDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGgg
YWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21w
dXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBiIHcpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29t
cHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdylgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CisgICAgLy8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIHRl
c3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdylgLCBgcmdiKDE1MywgMTAy
LCAyMDQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxw
aGEgdyAvIGIpYCwgYHJnYmEoMjEzLCAyMTMsIDIxMywgMC40KWApOworICAgIHRlc3RDb21wdXRl
ZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAvIHcpYCwgYHJnYmEoMTI4LCA1MSwgMjA0
LCAwLjIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxw
aGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiKDEyOCwgMTI4LCAxMjgpYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdylgLCBgcmdiKDE3OCwg
MjAzLCAyMjkpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIGFscGhhIHcgLyBiKWAsIGByZ2JhKDEwMiwgMTY0LCAyMjksIDAuNjk4KWApOwor
ICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcg
LyB3KWAsIGByZ2JhKDI2LCAxMjYsIDIyOSwgMC4xKWApOworICAgIHRlc3RDb21wdXRlZChgaHdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGBy
Z2JhKDEwMiwgMTI3LCAxNTMsIDAuNClgKTsKKworICAgIC8vIFRlc3RpbmcgaW52YWxpZCBwZXJt
dXRhdGlvbiAodHlwZXMgZG9uJ3QgbWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20g
cmViZWNjYXB1cnBsZSB3IGggYilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21w
dXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGIgYiAvIGIpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBo
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJl
Y2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHcg
YiBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
Z2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBiIGIgYiAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBo
IC8gaClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0
Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikp
YCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxjKGgpIGNhbGModykgY2FsYyhiKSAvIGNhbGMoYWxwaGEp
KWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuNClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2
YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEw
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0yODgsMTYgKzMzNCwyMiBAQAogICAgIHRlc3RD
b21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIDM1IC8gYWxwaGEpYCwg
YGxhYigyNSUgMjAgMzUgLyAwLjQpYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIo
MjUlIDIwIDUwIC8gNDAlKSBsIGEgYiAvIC4zNSlgLCBgbGFiKDI1JSAyMCA1MCAvIDAuMzUpYCk7
CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dl
ZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
bGFiKDI1JSAyMCA1MCkgbCBiIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICAvLyBUZXN0
aW5nIHZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBs
YWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSlgLCBgbGFiKDI1JSA1MCAyMClgKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBhIC8gYSlgLCBgbGFiKDI1
JSAyMCAyMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0
MCUpIGwgYiBhKWAsIGBsYWIoMjUlIDUwIDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZy
b20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGEgLyBhKWAsIGBsYWIoMjUlIDIwIDIwKWApOwor
CisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCku
CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFscGhhIGEgLyBi
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIo
MjUlIDIwIDUwKSBsIGEgYSAvIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29t
cHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAy
MCA1MCAvIDQwJSkgbCBiIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0
ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYWxwaGEgYSAvIGIpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAg
LyA0MCUpIGwgYSBhIC8gYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21wdXRl
ZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7CiAKKyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAg
IHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgY2FsYyhsKSBjYWxjKGEpIGNh
bGMoYikpYCwgYGxhYigyNSUgMjAgNTApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYSkgY2FsYyhiKSAvIGNhbGMoYWxwaGEp
KWAsIGBsYWIoMjUlIDIwIDUwIC8gMC40KWApOworCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZh
bHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAlIDEw
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIo
MjUlIDIwIDUwKSBsIDEwIDEwJSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwpAQCAtMzU1LDExICs0
MDcsMjggQEAKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUp
IGwgYyAyNWRlZyAvIGFscGhhKWAsIGBsY2goNzAlIDQ1IDI1IC8gMC40KWApOwogICAgIHRlc3RD
b21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIGggLyAuMjUpYCwgYGxj
aCg3MCUgNDUgMzAgLyAwLjI1KWApOwogCi0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5j
bGVhciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0
ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpYCwgYHJn
YmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGFscGhhIGMgaCAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1
IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAg
IC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICAvLyBOT1RF
OiAnYycgaXMgYSB2YWlsZCBodWUsIGFzIGh1ZSBpcyA8YW5nbGU+fDxudW1iZXI+LgorICAgIHRl
c3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbClgLCBgbGNo
KDEwMCUgNDUgMzAgLyAwLjcpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAl
IDQ1IDMwKSBsIGMgYyAvIGFscGhhKWAsIGBsY2goNzAlIDQ1IDQ1KWApOworICAgIHRlc3RDb21w
dXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpYCwgYGxjaCgx
MDAlIDQ1IDMwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkg
YWxwaGEgYyBjIC8gYWxwaGEpYCwgYGxjaCgxMDAlIDQ1IDQ1KWApOworICAgIHRlc3RDb21wdXRl
ZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBoIC8gbClgLCBgbGNoKDQw
JSA0NSAzMCAvIDAuNylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUg
MzAgLyA0MCUpIGwgYyBjIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgNDUgLyAwLjQpYCk7CisgICAg
dGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBh
bHBoYSlgLCBgbGNoKDQwJSA0NSAzMCAvIDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChm
cm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgYyAvIGFscGhhKWAsIGBsY2goNDAlIDQ1
IDQ1IC8gMC40KWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBl
cyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBoIGwgYyAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVk
KGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBjIGMgYyAvIGMpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGFscGhh
IGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGggbCBjIC8gYWxwaGEpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGMgYyBjIC8gYylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChg
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAg
ICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGNhbGMobCkgY2FsYyhjKSBj
YWxjKGgpKWAsIGBsY2goNzAlIDQ1IDMwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20g
bGNoKDcwJSA0NSAzMCAvIDQwJSkgY2FsYyhsKSBjYWxjKGMpIGNhbGMoaCkgLyBjYWxjKGFscGhh
KSlgLCBgbGNoKDcwJSA0NSAzMCAvIDAuNClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2
YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIDEwJSBo
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0zNzMsNiArNDQyLDQ0IEBACiAgICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsaWdodG5lc3MgYyBoKWAsIGByZ2JhKDAs
IDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSB4
IGMgaClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20g
bGNoKDcwJSA0NSAzMCkgbCBnIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKworCisgICAgLy8g
U3BlYyBleGFtcGxlczoKKyAgICAvLyBFeGFtcGxlIDExLgorICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gdmFyKC0tYmctY29sb3IpIHIgZyBiIC8gODAlKWAsIGByZ2JhKDAsIDAsIDI1NSwgMC44
KWApOworICAgIAorICAgIC8vIEV4YW1wbGUgMTIuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJv
bSB2YXIoLS1jb2xvcikgY2FsYyhsIC8gMikgYyBoKWAsIGBsY2goMjMuMTM4OTcxJSA2Ny45ODk3
MTYgMTM0LjM5MTI1KWApOworICAgIAorICAgIC8vIEV4YW1wbGUgMTMuCisgICAgdGVzdENvbXB1
dGVkKGByZ2IoZnJvbSB2YXIoLS1jb2xvcikgY2FsYyhyICogLjMgKyBnICogLjU5ICsgYiAqIC4x
MSkgY2FsYyhyICogLjMgKyBnICogLjU5ICsgYiAqIC4xMSkgY2FsYyhyICogLjMgKyBnICogLjU5
ICsgYiAqIC4xMSkpYCwgYHJnYig3NiwgNzYsIDc2KWApCisgICAgdGVzdENvbXB1dGVkKGBsY2go
ZnJvbSB2YXIoLS1jb2xvcikgbCAwIGgpYCwgYGxjaCg0Ni4yNzc5NDMlIDAgMTM0LjM5MTI1KWAp
CisKKyAgICAvLyBFeGFtcGxlIDE0LgorICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gaW5kaWFu
cmVkIDI1NSBnIGIpYCwgYHJnYigyNTUsIDkyLCA5MilgKTsKKworICAgIC8vIEV4YW1wbGUgMTUu
CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSB2YXIoLS1hY2NlbnQpIGNhbGMoaCArIDE4MGRl
ZykgcyBsKWAsIGByZ2IoMTc4LCAzMiwgNDApYCk7CisKKyAgICAvLyBFeGFtcGxlIDE2LgorICAg
IHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyAxMDAlKWAsIGBs
YWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzKWApOworICAgIHRlc3RDb21wdXRlZChg
bGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyBjYWxjKGFscGhhICogMC44KSlgLCBgbGFi
KDYyLjc1MTkyMyUgNTIuNDU4MDIgLTM0LjExNzI4MyAvIDAuOClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAtIDIwJSkpYCwg
YGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgpYCk7CisgICAgCisgICAg
Ly8gRXhhbXBsZSAxNy4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIHZhcigtLW15Y29sb3Ip
IGwgMCAwKWAsIGBsYWIoNjIuNzUxOTIzJSAwIDApYCk7CisKKyAgICAvLyBFeGFtcGxlIDE4Lgor
ICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gcGVydSBjYWxjKGwgKiAwLjgpIGMgaClgLCBgbGNo
KDQ5LjgwMTM4JSA1NC4wMDMyOTYgNjMuNjgwMzE3KWApOworCisgICAgLy8gRXhhbXBsZSAxOS4K
KyAgICB0ZXN0Q29tcHV0ZWQoYExDSChmcm9tIHZhcigtLWFjY2VudCkgbCBjIGNhbGMoaCArIDE4
MGRlZykpYCwgYGxjaCg2NS40OTQ3MyUgMzkuNDQ2OTAzIDEwLjExNDQ3MSlgKTsKKworICAgIC8v
IEV4YW1wbGUgMjAuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1teWNvbG9yKSBs
IDAgaClgLCBgbGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpYCk7CisgICAgdGVzdENvbXB1dGVk
KGB2YXIoLS1teWdyYXkpYCwgYGxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKWApOworICAgIHRl
c3RDb21wdXRlZChgbGNoKGZyb20gdmFyKC0tbXlncmF5KSBsIDMwIGgpYCwgYGxjaCg2Mi43NTE5
MjMlIDMwIDMyNi45NjExMilgKTsKKyAgICAKIDwvc2NyaXB0PgogICAgIAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430152</attachid>
            <date>2021-05-30 15:20:56 -0700</date>
            <delta_ts>2021-05-31 18:47:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210530152055.patch</filename>
            <type>text/plain</type>
            <size>93482</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGRlZCBuZXcgYW5kIHVwZGF0ZWQgdGVz
dCBjYXNlcyB0byBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sLgor
CisgICAgICAgIFVwZGF0ZXMgc3VwcG9ydCBmb3IgdGhlIENTUyBDb2xvciA1ICJSZWxhdGl2ZSBD
b2xvciBTeW50YXgiIHRvIHN1cHBvcnQKKyAgICAgICAgYm90aCBjYWxjKCkgb24gY29tcG9uZW50
cyBhbmQgY29tcG9uZW50IHBlcm11dGF0aW9ucyB3aXRoaW4gdGhlIHN5bnRheC4KKworICAgICAg
ICBUaGlzIGFsbG93cyBmb3IgdGhpbmdzIGxpa2U6CisgICAgICAgIAorICAgICAgICAgICAgYmFj
a2dyb3VuZDogbGNoKGZyb20gdmFyKC0tcHJpbWFyeS1jb2xvcikgNjAlIGNhbGMoYyAqIDAuOCkg
aCk7CisKKyAgICAgICAgICAgIG9yCisKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IGxjaChmcm9t
IHJlYmVjY2FwdXJwbGUgZyBiIHIpOworCisgICAgICAgIFRvIG1ha2UgdGhpcyB3b3JrLCB0aGUg
Y2FsYygpIGluZnJhc3RydWN0dXJlIG5vdyBzdXBwb3J0cyBwYXNzaW5nIGEgQ1NTQ2FsY1N5bWJv
bFRhYmxlCisgICAgICAgIHdoaWNoIGFsbG93cyB0aGUgbG9naWMgaW4gdGhlIHBhcnNlciB0byBs
b29rdXAgdW5rbm93biBpZGVudGlmaWVycyB3aGVuIHBhcnNpbmcgYSB2YWx1ZS4KKyAgICAgICAg
VGhlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBwYXJzZXJzIGNhbiB0aGVuIGJ1aWxkIGFuIGFwcHJv
cHJpYXRlIENTU0NhbGNTeW1ib2xUYWJsZSBmaWxsZWQKKyAgICAgICAgd2l0aCB0aGUgY29tcG9u
ZW50cyBvZiB0aGUgb3JpZ2luIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRoZXNlIGNhbGMoKSB2
YWx1ZXMgYXJlIG5vdCBzZXJpYWxpemVkLCB0aGlzIGNhbiBhbGwgaGFwcGVuIGluIHRoZSBwYXJz
ZXIsIGJ1dCBpZgorICAgICAgICB3ZSB0byBiZSBhYmxlIHNlcmlhbGl6ZSB0aGVtIGluIHRoZSBm
dXR1cmUsIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUgY291bGQgYmUgdXBkYXRlZAorICAgICAg
ICB0byBzdG9yZSB0aGUgc3ltYm9sIG5hbWUgaW4gYWRkaXRpb24gdG8gc3RvcmluZyB0aGUgdmFs
dWUgYW5kIHR5cGUgKG9yIHdlIGNvdWxkIHdlIGNvdWxkCisgICAgICAgIGFkZCBhIG5ldyBub2Rl
IGZvciBpdCkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5bWJv
bFRhYmxlLmNwcDogQWRkZWQuCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxl
Lmg6IEFkZGVkLgorICAgICAgICBBZGQgQ1NTQ2FsY1N5bWJvbFRhYmxlIHdoaWNoIGNvbnRhaW5z
IGEgbWFwcGluZyBmcm9tIENTU1ZhbHVlSUQgdG8gQ1NTVW5pdFR5cGUvZG91YmxlIHBhaXJzLgor
CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZSk6
CisgICAgICAgIFdoZW4gdHJ5aW5nIHRvIGNvbnN0cnVjdCBhIHZhbHVlIG5vZGUsIGlmIHRoZSB0
b2tlbiBpcyBhIGlkZW50aWZpZXIsIHVzZSB0aGUgbmV3CisgICAgICAgIHN5bWJvbCB0YWJsZSB0
byBsb29rIHVwIGEgdHlwZS92YWx1ZSB0byB1c2UgaW5zdGVhZC4gVXNlIGEgc3dpdGNoIHRvIG1h
a2UgdGhpbmdzCisgICAgICAgIGEgYml0IG1vcmUgY2xlYXIgdGhhdCBkaWZmZXJlbnRpYXRpb24g
aXMgYmVpbmcgZG9uZSBiYXNlZCBvbiB0b2tlbiB0eXBlLgorCisgICAgICAgICogY3NzL2NhbGMv
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmg6CisgICAgICAgIEFkZCByZWZlcmVuY2UgdG8g
YSBDU1NDYWxjU3ltYm9sVGFibGUgdG8gdGhlIHBhcnNlci4gVGhlIHBhcnNlciBzaG91bGQgb25s
eSBldmVyIGJlIHVzZWQKKyAgICAgICAgb24gdGhlIHN0YWNrLCBzbyB0aGlzIHdvcmtzIHdlbGwg
YW5kIGFsbG93cyB1cyB0byBhdm9pZCBjb3B5aW5nIHRoZSB0YWJsZS4KKworICAgICAgICAqIGNz
cy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmg6CisgICAgICAgIFBh
c3MgdGhlIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyIGlmIG9uZSBpcyBwcm92aWRl
ZC4gQW4gb3ZlcmxvYWQgd2FzIHVzZWQKKyAgICAgICAgdG8gYXZvaWQgI2luY2x1ZGluZyBDU1ND
YWxjU3ltYm9sVGFibGUuaCBpbiB0aGUgaGVhZGVyIGp1c3QgdG8gYWRkIGEgZGVmYXVsdCB2YWx1
ZS4KKworICAgICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICBHaXZlIGEgY29uY3Jl
dGUgYmFzZSBvZiB1aW50MTZfdCB0byBhbGxvdyBpdCB0byBiZSBmb3J3YXJkIGRlY2xhcmVkIGFu
ZCBhZGQgRGVmYXVsdEhhc2gKKyAgICAgICAgYW5kIEhhc2hUcmFpdHMgdG8gYWxsb3cgaXQgdG8g
YmUgdXNlZCB3aXRoIEhhc2hUYWJsZS4gVGhlc2UgbWF0Y2ggdGhlIGRlZmluaXRpb24gb2YKKyAg
ICAgICAgQ1NTUHJvcGVydHlJRC4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVs
cGVyczo6Q2FsY1BhcnNlcjo6Q2FsY1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXcpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lUGVyY2VudFdvcmtlclNhZmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5nbGVSYXcp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5n
bGVXb3JrZXJTYWZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVy
czo6Y29uc3VtZUFuZ2xlT3JQZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6Y29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUh1ZU9ySWRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTnVtYmVyT3JJ
ZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVQZXJjZW50T3JJZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZl
UkdCKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VS
ZWxhdGl2ZVJHQlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZVJlbGF0aXZlSFNMUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2
ZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpwYXJzZVJlbGF0aXZlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6OmV4dHJhY3RDaGFubmVsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpyZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICBSZXdvcmsgcmVsYXRpdmUgY29sb3Igc3lu
dGF4IHBhcnNpbmcgdG8gYWxsb3cgcGVybXV0YXRpb24gb2YgY2hhbm5lbCBzeW1ib2xzCisgICAg
ICAgIGFuZCB1c2Ugb2YgdGhlIGNhbGMoKSBzeW1ib2wgdGFibGUgc3VwcG9ydCB0byBhbGxvdyBw
YXNzaW5nIGluIHRoZSBjaGFubmVscy4KKyAgICAgICAgVGhpcyBtYWtlcyB0aGUgcmVsYXRhdGl2
ZSBjb2xvciBzeW50YXggdmFyaWFudHMgbXVjaCBjbG9zZXIgdG8gdGhlIG5vcm1hbAorICAgICAg
ICB2YXJpYW50cyAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHBhc3NpbmcgdGhlIHN5bWJvbCB0YWJs
ZSkgYW5kIGEgc3Vic2VxdWVudAorICAgICAgICBjaGFuZ2Ugd2lsbCBhdHRlbXB0IHRvIG1lcmdl
IHRoZW0gZnVydGhlci4KKwogMjAyMS0wNS0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFdURjo6T3B0aW9uYWwgc3lub255bSBmb3Igc3RkOjpvcHRp
b25hbCwgdXNpbmcgdGhhdCBjbGFzcyB0ZW1wbGF0ZSBkaXJlY3RseSBpbnN0ZWFkCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTgzMSw2ICs4MzEsNyBAQCBjc3MvY2FsYy9DU1NDYWxjSW52
ZXJ0Tm9kZS5jcHAKIGNzcy9jYWxjL0NTU0NhbGNOZWdhdGVOb2RlLmNwcAogY3NzL2NhbGMvQ1NT
Q2FsY09wZXJhdGlvbk5vZGUuY3BwCiBjc3MvY2FsYy9DU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2Rl
LmNwcAorY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAogY3NzL2NhbGMvQ1NTQ2FsY1Zh
bHVlLmNwcAogY3NzL3BhcnNlci9DU1NBdFJ1bGVJRC5jcHAKIGNzcy9wYXJzZXIvQ1NTRGVmZXJy
ZWRQYXJzZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQwNzcs
NiArNDA3Nyw3IEBACiAJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjkz
MjcyMEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzZENDRFRDBDMDdGMkVEMDA3MkQy
QzkgLyogSlNIVE1MRW1iZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzZENDRFQjBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1iZWRF
bGVtZW50LmggKi87IH07CiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENkUy
NTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAvKiBD
U1NDYWxjU3ltYm9sVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUu
aCAqLzsgfTsKIAkJQkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJCMzYwQzRFQTkx
RTAwODMyODVGIC8qIENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDNzcyQzQ3MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
NzJDNDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi87IH07CiAJCUJDNzcy
QzRGMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYg
LyogTUlNRVR5cGVSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNDMwNCw2ICsxNDMwNSw4IEBACiAJCUJDNkQ0NEVCMEMwN0YyRUQw
MDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTEVtYmVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzZFQjg0NTI2MjY2QjYxMDAzMjI1QTcgLyogQ29sb3JMdW1pbmFuY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JMdW1pbmFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzcwOURERTI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5bWJvbFRh
YmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzcwOURERjI2NjMyM0NFMDBCOUEyMUMgLyogQ1NTQ2FsY1N5bWJv
bFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0NhbGNTeW1ib2xUYWJsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBD
U1NIZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0hlbHBlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NDBDNEVCMkM2MDA4MzI4NUYg
LyogWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3
NzJDNDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjc5NTYsNiArMjc5NTksOCBAQAogCQkJCUJDRjE2NDVGMjY2MkEyOEQwMDAy
RjdFRiAvKiBDU1NDYWxjT3BlcmF0aW9uTm9kZS5oICovLAogCQkJCUJDRjE2NDU0MjY2MkExMjIw
MDAyRjdFRiAvKiBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlLmNwcCAqLywKIAkJCQlCQ0YxNjQ1
MzI2NjJBMTIyMDAwMkY3RUYgLyogQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZS5oICovLAorCQkJ
CUJDNzA5RERGMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuY3BwICovLAor
CQkJCUJDNzA5RERFMjY2MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuaCAqLywK
IAkJCQk0OUFFMkQ4QzEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmNwcCAqLywKIAkJ
CQk0OUFFMkQ4RDEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY1ZhbHVlLmggKi8sCiAJCQkpOwpA
QCAtMzQ2NjksNiArMzQ2NzQsNyBAQAogCQkJCTI2NjAxRUJGMTRCM0I5QUQwMDEyQzBGRSAvKiBQ
bGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAxNEEw
NTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBp
biBIZWFkZXJzICovLAorCQkJCUJDNzA5REUwMjY2MzIzQ0YwMEI5QTIxQyAvKiBDU1NDYWxjU3lt
Ym9sVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTk1MUQ1NEY1RkIwMEREN0M2OCAv
KiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNkQ1NkUyMjUzQUUyOEQw
MDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc3MDVDNzI1
NTI3NkNEMDAxRDBDOTQgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNl
L1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTE2NCwxMCArMTY0
LDEyIEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0g
Q1NTVmFsdWVJRCB7CitlbnVtIENTU1ZhbHVlSUQgOiB1aW50MTZfdCB7CiAgICAgQ1NTVmFsdWVJ
bnZhbGlkID0gMCwKIEVPRgogCkBAIC0yMDQsNiArMjA2LDEyIEBAIGlubGluZSBDU1NWYWx1ZUlE
IGNvbnZlcnRUb0NTU1ZhbHVlSUQoaW4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitu
YW1lc3BhY2UgV1RGIHsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OkNT
U1ZhbHVlSUQ+IDogSW50SGFzaDx1bnNpZ25lZD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1ZUlEPiA6IFN0cm9uZ0VudW1IYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlSUQ+IHsgfTsKK30gLy8gbmFtZXNwYWNlIFdURgorCiBFT0YKIGNsb3NlIEhF
QURFUjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25O
b2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1ND
YWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAyNzgyNTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw5ICszMSwxMSBAQAogI2luY2x1ZGUgIkNTU0NhbGNOZWdhdGVOb2RlLmgi
CiAjaW5jbHVkZSAiQ1NTQ2FsY09wZXJhdGlvbk5vZGUuaCIKICNpbmNsdWRlICJDU1NDYWxjUHJp
bWl0aXZlVmFsdWVOb2RlLmgiCisjaW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCiAjaW5j
bHVkZSAiQ1NTQ2FsY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW4uaCIKICNpbmNs
dWRlICJDU1NQYXJzZXJUb2tlblJhbmdlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTgwLDE5
ICsxODIsMzUgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlQwogCiBi
b29sIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZShDU1NQYXJzZXJUb2tl
blJhbmdlJiB0b2tlbnMsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiByZXN1bHQpCiB7
Ci0gICAgLy8gRklYTUU6IEFkZCBjb2RlIGhlcmUgdG8gcGFyc2UgQ1NTVmFsaWRJRCBmb3IgbmFt
ZWQgY29uc3RhbnRzLgorICAgIGF1dG8gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUgPSBb
Jl0gKENTU1VuaXRUeXBlIHR5cGUsIGRvdWJsZSB2YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgIGlm
IChjYWxjVW5pdENhdGVnb3J5KHR5cGUpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gQ1NT
Q2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUsIHR5cGUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsKIAotICAgIENTU1Bh
cnNlclRva2VuIHRva2VuID0gdG9rZW5zLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7Ci0g
ICAgaWYgKCEodG9rZW4udHlwZSgpID09IE51bWJlclRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBQ
ZXJjZW50YWdlVG9rZW4gfHwgdG9rZW4udHlwZSgpID09IERpbWVuc2lvblRva2VuKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGF1dG8gdHlwZSA9IHRva2VuLnVuaXRUeXBlKCk7
Ci0gICAgaWYgKGNhbGNVbml0Q2F0ZWdvcnkodHlwZSkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
T3RoZXIpCisgICAgYXV0byB0b2tlbiA9IHRva2Vucy5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpOworCisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIElkZW50VG9rZW46
IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IG1fc3ltYm9sVGFibGUuZ2V0KHRva2VuLmlkKCkpOwor
ICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUodmFsdWUtPnR5cGUsIHZhbHVlLT52
YWx1ZSk7CisgICAgfQorCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICBjYXNlIFBlcmNlbnRh
Z2VUb2tlbjoKKyAgICBjYXNlIERpbWVuc2lvblRva2VuOgorICAgICAgICByZXR1cm4gbWFrZUNT
U0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUodG9rZW4udW5pdFR5cGUoKSwgdG9rZW4ubnVtZXJpY1Zh
bHVlKCkpOworCisgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAg
IHJlc3VsdCA9IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCB0eXBlKSk7Ci0gICAgCi0gICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiBib29sIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxj
VmFsdWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBpbnQgZGVwdGgsIFJlZlB0cjxDU1ND
YWxjRXhwcmVzc2lvbk5vZGU+JiByZXN1bHQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAkocmV2aXNpb24gMjc4
MjUzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFy
c2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDIwICsyNSwyMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWxjT3BlcmF0b3Iu
aCIKICNpbmNsdWRlICJDYWxjdWxhdGlvbkNhdGVnb3J5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlOworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRh
YmxlOwogY2xhc3MgQ1NTUGFyc2VyVG9rZW47CiBjbGFzcyBDU1NQYXJzZXJUb2tlblJhbmdlOwog
CitlbnVtIENTU1ZhbHVlSUQgOiB1aW50MTZfdDsKKwogY2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25O
b2RlUGFyc2VyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQ
YXJzZXIoQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5KQorICAgIGV4cGxp
Y2l0IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcihDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnksIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiAg
ICAgICAgIDogbV9kZXN0aW5hdGlvbkNhdGVnb3J5KGRlc3RpbmF0aW9uQ2F0ZWdvcnkpCisgICAg
ICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAgICB7CiAgICAgfQogCkBAIC01NSw2
ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJzZUNhbGNWYWx1ZShDU1NQYXJzZXJUb2tl
blJhbmdlJiwgaW50IGRlcHRoLCBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYpOwogCiAg
ICAgQ2FsY3VsYXRpb25DYXRlZ29yeSBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnk7CisgICAgY29uc3Qg
Q1NTQ2FsY1N5bWJvbFRhYmxlJiBtX3N5bWJvbFRhYmxlOwogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFibGUuY3BwCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDU1NDYWxjU3ltYm9sVGFibGUuaCIKKworI2luY2x1ZGUgIkNTU1Vu
aXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ1NTQ2FsY1N5bWJvbFRhYmxlOjpDU1ND
YWxjU3ltYm9sVGFibGUoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6dHVwbGU8Q1NTVmFsdWVJ
RCwgQ1NTVW5pdFR5cGUsIGRvdWJsZT4+IGluaXRpYWxpemVyKQoreworICAgIGZvciAoYXV0byYg
W2lkZW50aWZpZXIsIHR5cGUsIHZhbHVlXSA6IGluaXRpYWxpemVyKQorICAgICAgICBtX3RhYmxl
LmFkZChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfcGFpcih0eXBlLCB2YWx1ZSkpOworfQorCitzdGQ6
Om9wdGlvbmFsPENTU0NhbGNTeW1ib2xUYWJsZTo6VmFsdWU+IENTU0NhbGNTeW1ib2xUYWJsZTo6
Z2V0KENTU1ZhbHVlSUQgdmFsdWVJRCkgY29uc3QKK3sKKyAgICBhdXRvIGl0ID0gbV90YWJsZS5m
aW5kKHZhbHVlSUQpOworICAgIGlmIChpdCA9PSBtX3RhYmxlLmVuZCgpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IGl0LT52YWx1ZS5maXJzdCwgaXQtPnZh
bHVlLnNlY29uZCB9fTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NT
Q2FsY1N5bWJvbFRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY1N5bWJvbFRhYmxlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBDU1NVbml0VHlwZSA6IHVpbnQ4
X3Q7CisKK2NsYXNzIENTU0NhbGNTeW1ib2xUYWJsZSB7CitwdWJsaWM6CisgICAgc3RydWN0IFZh
bHVlIHsKKyAgICAgICAgQ1NTVW5pdFR5cGUgdHlwZTsKKyAgICAgICAgZG91YmxlIHZhbHVlOwor
ICAgIH07CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUoKSA9IGRlZmF1bHQ7CisgICAgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnR1cGxlPENTU1ZhbHVlSUQs
IENTU1VuaXRUeXBlLCBkb3VibGU+Pik7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZhbHVlPiBnZXQo
Q1NTVmFsdWVJRCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDxDU1NWYWx1ZUlELCBz
dGQ6OnBhaXI8Q1NTVW5pdFR5cGUsIGRvdWJsZT4+IG1fdGFibGU7Cit9OworCit9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCShyZXZpc2lvbiAyNzgyNTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAi
Q1NTUGFyc2VyVG9rZW5SYW5nZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJl
c3Npb25CbGVuZExlbmd0aC5oIgogI2luY2x1ZGUgIkNhbGNFeHByZXNzaW9uTGVuZ3RoLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMjk5LDkgKzMwMCw5IEBAIHZvaWQgQ1NTQ2FsY1ZhbHVl
OjpkdW1wKFRleHRTdHJlYW0mIHRzKSAKICAgICB0cyA8PCAiKVxuIjsKIH0KIAotUmVmUHRyPENT
U0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29u
c3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3Rp
bmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFuZ2UpCitSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBD
U1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJU
b2tlblJhbmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29y
eSwgVmFsdWVSYW5nZSByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJs
ZSkKIHsKLSAgICBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIgcGFyc2VyKGRlc3RpbmF0aW9u
Q2F0ZWdvcnkpOworICAgIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGlu
YXRpb25DYXRlZ29yeSwgc3ltYm9sVGFibGUpOwogICAgIGF1dG8gZXhwcmVzc2lvbiA9IHBhcnNl
ci5wYXJzZUNhbGModG9rZW5zLCBmdW5jdGlvbik7CiAgICAgaWYgKCFleHByZXNzaW9uKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTMwOSw3ICszMTAsMTIgQEAgUmVmUHRyPENTU0NhbGNW
YWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdAogICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJl
YW0gPDwgIkNTU0NhbGNWYWx1ZTo6Y3JlYXRlICIgPDwgKnJlc3VsdCk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KLSAgICAKKworUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVh
dGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5z
LCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFu
Z2UpCit7CisgICAgcmV0dXJuIGNyZWF0ZShmdW5jdGlvbiwgdG9rZW5zLCBkZXN0aW5hdGlvbkNh
dGVnb3J5LCByYW5nZSwgeyB9KTsKK30KKwogUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1Zh
bHVlOjpjcmVhdGUoY29uc3QgQ2FsY3VsYXRpb25WYWx1ZSYgdmFsdWUsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIHsKICAgICBhdXRvIGV4cHJlc3Npb24gPSBjcmVhdGVDU1ModmFsdWUuZXhw
cmVzc2lvbigpLCBzdHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFs
dWUuaAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2Fs
Y1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAj
aW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtMzksNiArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NDYWxjRXhwcmVzc2lvbk5vZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFi
bGU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlblJhbmdlOwogY2xhc3MgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YTsKIGNsYXNzIFJlbmRlclN0eWxlOwpAQCAtNDcsOCArNDcsMTEgQEAgZW51bSBjbGFz
cyBDU1NVbml0VHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIENhbGN1bGF0aW9uQ2F0ZWdvcnkg
OiB1aW50OF90OwogZW51bSBjbGFzcyBWYWx1ZVJhbmdlIDogdWludDhfdDsKIAorZW51bSBDU1NW
YWx1ZUlEIDogdWludDE2X3Q7CisKIGNsYXNzIENTU0NhbGNWYWx1ZSBmaW5hbCA6IHB1YmxpYyBD
U1NWYWx1ZSB7CiBwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0
ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ2FsY3Vs
YXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdlLCBjb25zdCBDU1ND
YWxjU3ltYm9sVGFibGUmKTsKICAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRl
KENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmLCBDYWxjdWxh
dGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UpOwogICAgIHN0YXRp
YyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoY29uc3QgQ2FsY3VsYXRpb25WYWx1ZSYsIGNv
bnN0IFJlbmRlclN0eWxlJik7CiAgICAgfkNTU0NhbGNWYWx1ZSgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNw
cAkocmV2aXNpb24gMjc4MjUzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgi
CiAKKyNpbmNsdWRlICJDU1NDYWxjU3ltYm9sVGFibGUuaCIKICNpbmNsdWRlICJDU1NDYWxjVmFs
dWUuaCIKICNpbmNsdWRlICJDU1NDYW52YXNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Nyb3NzZmFk
ZVZhbHVlLmgiCkBAIC05OCw3ICs5OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4g
Y29uc3VtZU51bWIKIC8vIEZJWE1FOiBjb25zaWRlciBwdWxsaW5nIGluIHRoZSBwYXJzaW5nIGxv
Z2ljIGZyb20gQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLgogY2xhc3MgQ2FsY1BhcnNlciB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ2FsY1BhcnNlcihDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJhbmdl
IHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwsIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQb29s
ID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSkKKyAgICBleHBsaWNpdCBDYWxjUGFyc2VyKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9u
Q2F0ZWdvcnksIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCwgY29uc3Qg
Q1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9IHsgfSwgQ1NTVmFsdWVQb29sJiBjc3NW
YWx1ZVBvb2wgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpKQogICAgICAgICA6IG1fc291cmNl
UmFuZ2UocmFuZ2UpCiAgICAgICAgICwgbV9yYW5nZShyYW5nZSkKICAgICAgICAgLCBtX3ZhbHVl
UG9vbChjc3NWYWx1ZVBvb2wpCkBAIC0xMDYsNyArMTA3LDcgQEAgcHVibGljOgogICAgICAgICBj
b25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgICAgIGF1dG8g
ZnVuY3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsKICAgICAgICAgaWYgKENTU0NhbGNWYWx1
ZTo6aXNDYWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCi0gICAgICAgICAgICBtX2NhbGNWYWx1ZSA9
IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5jdGlvbihtX3Jhbmdl
KSwgZGVzdGluYXRpb25DYXRlZ29yeSwgdmFsdWVSYW5nZSk7CisgICAgICAgICAgICBtX2NhbGNW
YWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5jdGlvbiht
X3JhbmdlKSwgZGVzdGluYXRpb25DYXRlZ29yeSwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUpOwog
ICAgIH0KIAogICAgIGNvbnN0IENTU0NhbGNWYWx1ZSogdmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2NhbGNWYWx1ZS5nZXQoKTsgfQpAQCAtMTE5LDYgKzEyMCwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtX3ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShXVEZNb3ZlKG1fY2FsY1ZhbHVlKSk7CiAg
ICAgfQogCisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVmFsdWVJZkNhdGVn
b3J5KENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCisgICAgeworICAgICAgICBpZiAoIW1f
Y2FsY1ZhbHVlIHx8IG1fY2FsY1ZhbHVlLT5jYXRlZ29yeSgpICE9IGNhdGVnb3J5KQorICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fc291cmNlUmFuZ2UgPSBtX3JhbmdlOwor
ICAgICAgICByZXR1cm4gbV92YWx1ZVBvb2wuY3JlYXRlVmFsdWUoV1RGTW92ZShtX2NhbGNWYWx1
ZSkpOworICAgIH0KKwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUludGVn
ZXIoZG91YmxlIG1pbmltdW1WYWx1ZSkKICAgICB7CiAgICAgICAgIGlmICghbV9jYWxjVmFsdWUp
CkBAIC0yMTcsMTEgKzIyNiw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEludFR5cGU+IHN0ZDo6b3B0
aW9uYWwKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENhbGNQYXJzZXIgY2Fs
Y1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKTsKLSAgICBpZiAoY29u
c3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAg
ICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
TnVtYmVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoYXV0byBj
YWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKTsgY2FsY3VsYXRpb24gJiYgY2FsY3VsYXRp
b24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKQogICAgICAgICBy
ZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lSW50ZWdlclR5cGVSYXc8SW50VHlwZT4obWluaW11bVZh
bHVlKTsKLSAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQpAQCAtMjcyLDExICsy
NzgsNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVOdW1iZXIoCiAgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogICAgIGlmICh0b2tlbi50
eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewogICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIo
cmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgdmFsdWVSYW5nZSk7Ci0gICAgICAg
IGlmIChjb25zdCBhdXRvKiBjYWxjVmFsdWUgPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAgICAg
ICAgICAgIGlmIChjYWxjVmFsdWUtPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6
TnVtYmVyKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgp
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lVmFsdWVJZkNhdGVnb3J5KENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJl
cik7CiAgICAgfQogCiAgICAgaWYgKGF1dG8gbnVtYmVyID0gY29uc3VtZU51bWJlclJhdyhyYW5n
ZSwgdmFsdWVSYW5nZSkpCkBAIC0zOTgsOCArNDAwLDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBjb25zdW1lTGVuZ3RoKAogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJh
bmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAg
ICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpM
ZW5ndGgsIHZhbHVlUmFuZ2UpOwotICAgICAgICBpZiAoY2FsY1BhcnNlci52YWx1ZSgpICYmIGNh
bGNQYXJzZXIudmFsdWUoKS0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5n
dGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKKyAgICAg
ICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlSWZDYXRlZ29yeShDYWxjdWxhdGlvbkNh
dGVnb3J5OjpMZW5ndGgpOwogICAgIH0KIAogICAgIGlmIChhdXRvIHJlc3VsdCA9IGNvbnN1bWVM
ZW5ndGhSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUsIHZhbHVlUmFuZ2UsIHVuaXRsZXNzKSkKQEAg
LTQzMywxMiArNDM0LDggQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lUGVyY2Vu
dAogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAg
ICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1BhcnNl
ciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJh
bmdlLCBjc3NWYWx1ZVBvb2wpOwotICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxj
dWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbGN1bGF0
aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5n
ZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSwgeyB9LCBjc3NWYWx1
ZVBvb2wpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWVJZkNhdGVnb3J5
KENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpOwogICAgIH0KIAogICAgIGlmIChhdXRvIHBl
cmNlbnQgPSBjb25zdW1lUGVyY2VudFJhdyhyYW5nZSwgdmFsdWVSYW5nZSkpCkBAIC00NzksMTAg
KzQ3Niw4IEBAIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoT3JQZXJjZW50UmF3PiBjb25zdW0KICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5n
ZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoLCB2YWx1ZVJhbmdlKTsKLSAgICBpZiAoY29u
c3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAg
ICAgICBpZiAoY2FuQ29uc3VtZUNhbGNWYWx1ZShjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSwgY3Nz
UGFyc2VyTW9kZSkpCi0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lTGVuZ3Ro
T3JQZXJjZW50UmF3KCk7Ci0gICAgfQorICAgIGlmIChhdXRvIGNhbGN1bGF0aW9uID0gY2FsY1Bh
cnNlci52YWx1ZSgpOyBjYWxjdWxhdGlvbiAmJiBjYW5Db25zdW1lQ2FsY1ZhbHVlKGNhbGN1bGF0
aW9uLT5jYXRlZ29yeSgpLCBjc3NQYXJzZXJNb2RlKSkKKyAgICAgICAgcmV0dXJuIGNhbGNQYXJz
ZXIuY29uc3VtZUxlbmd0aE9yUGVyY2VudFJhdygpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiB9CiAKQEAgLTQ5MSwxMCArNDg2LDggQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25z
dW1lTGVuZ3RoTwogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWso
KTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAgICAgICAgQ2Fs
Y1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGgsIHZh
bHVlUmFuZ2UpOwotICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9
IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbkNvbnN1bWVDYWxjVmFs
dWUoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCksIGNzc1BhcnNlck1vZGUpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwotICAgICAgICB9CisgICAgICAg
IGlmIChhdXRvIGNhbGN1bGF0aW9uID0gY2FsY1BhcnNlci52YWx1ZSgpOyBjYWxjdWxhdGlvbiAm
JiBjYW5Db25zdW1lQ2FsY1ZhbHVlKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpLCBjc3NQYXJzZXJN
b2RlKSkKKyAgICAgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTU0MywxMiArNTM2LDggQEAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVXbwogewogICAgIGNvbnN0IENTU1BhcnNl
clRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1
bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCBjc3NWYWx1ZVBvb2wpOwot
ICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIu
dmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENh
bGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxjUGFy
c2VyLmNvbnN1bWVWYWx1ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6
OkFuZ2xlLCBWYWx1ZVJhbmdlOjpBbGwsIHsgfSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgcmV0
dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlSWZDYXRlZ29yeShDYWxjdWxhdGlvbkNhdGVnb3J5
OjpBbmdsZSk7CiAgICAgfQogCiAgICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXco
cmFuZ2UsIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQpAQCAtNTYwLDcg
KzU0OSw4IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xlV28KIHN0YXRp
YyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZU9yUGVyY2VudChDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJh
bmdlIHZhbHVlUmFuZ2UsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJr
IHVuaXRsZXNzWmVybykKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5n
ZS5wZWVrKCk7Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgeworICAg
IHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKICAgICAg
ICAgc3dpdGNoICh0b2tlbi51bml0VHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19ERUc6CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CkBAIC01NjgsMjkg
KzU1OCwzOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lCiAgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOgogICAgICAgICAgICAgcmV0dXJuIENTU1Zh
bHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1do
aXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSwgdG9rZW4udW5pdFR5cGUoKSk7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0gICAgfQotICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYg
c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2Vy
TW9kZSwgdW5pdGxlc3MsIHVuaXRsZXNzWmVybykpCi0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBv
b2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNw
YWNlKCkubnVtZXJpY1ZhbHVlKCksIENTU1VuaXRUeXBlOjpDU1NfREVHKTsKKyAgICAgICAgYnJl
YWs7CisgICAgCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgaWYgKHNob3VsZEFjY2Vw
dFVuaXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRs
ZXNzLCB1bml0bGVzc1plcm8pKQorICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2lu
Z2xldG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5u
dW1lcmljVmFsdWUoKSwgQ1NTVW5pdFR5cGU6OkNTU19ERUcpOworICAgICAgICBicmVhazsKIAot
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gUGVyY2VudGFnZVRva2VuKQorICAgIGNhc2UgUGVyY2Vu
dGFnZVRva2VuOgogICAgICAgICByZXR1cm4gY29uc3VtZVBlcmNlbnQocmFuZ2UsIHZhbHVlUmFu
Z2UpOwogCi0gICAgIGlmICh0b2tlbi50eXBlKCkgIT0gRnVuY3Rpb25Ub2tlbikKLSAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBDYWxj
UGFyc2VyIGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUs
IHZhbHVlUmFuZ2UpOworICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlv
biA9IGFuZ2xlQ2FsY1BhcnNlci52YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoY2FsY3VsYXRp
b24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGFuZ2xlQ2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKKyAgICAgICAgfQog
Ci0gICAgQ2FsY1BhcnNlciBhbmdsZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdv
cnk6OkFuZ2xlLCB2YWx1ZVJhbmdlKTsKLSAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxj
dWxhdGlvbiA9IGFuZ2xlQ2FsY1BhcnNlci52YWx1ZSgpKSB7Ci0gICAgICAgIGlmIChjYWxjdWxh
dGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSkKLSAgICAgICAg
ICAgIHJldHVybiBhbmdsZUNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIENhbGNQ
YXJzZXIgcGVyY2VudENhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNl
bnQsIHZhbHVlUmFuZ2UpOworICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxh
dGlvbiA9IHBlcmNlbnRDYWxjUGFyc2VyLnZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmIChjYWxj
dWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50KQorICAg
ICAgICAgICAgICAgIHJldHVybiBwZXJjZW50Q2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKKyAg
ICAgICAgfQorICAgIAorICAgICAgICBicmVhazsKICAgICB9Ci0KLSAgICBDYWxjUGFyc2VyIHBl
cmNlbnRDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1
ZVJhbmdlKTsKLSAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IHBlcmNl
bnRDYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29y
eSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCi0gICAgICAgICAgICByZXR1cm4g
cGVyY2VudENhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgCisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTYxMywx
MSArNjEyLDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVGltZShDUwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5nZSwg
Q2FsY3VsYXRpb25DYXRlZ29yeTo6VGltZSwgdmFsdWVSYW5nZSk7Ci0gICAgaWYgKGNvbnN0IENT
U0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAgICAgICAg
aWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlRpbWUp
Ci0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlSWZD
YXRlZ29yeShDYWxjdWxhdGlvbkNhdGVnb3J5OjpUaW1lKTsKIH0KIAogUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lUmVzb2x1dGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
QWxsb3dYUmVzb2x1dGlvblVuaXQgYWxsb3dYKQpAQCAtNzQzLDE5ICs3MzgsNjcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aQogICAgICAgICByZXR1cm4gMS4wOwog
CiAgICAgaWYgKGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1lTnVtYmVyT3JQZXJjZW50RGl2
aWRlZEJ5MTAwUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGNsYW1wVG8oKmFscGhhUGFyYW1l
dGVyLCAwLjAsIDEuMCk7CisgICAgICAgIHJldHVybiBzdGQ6OmNsYW1wKCphbHBoYVBhcmFtZXRl
ciwgMC4wLCAxLjApOwogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdGVtcGxhdGU8
Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50
PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudChDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3Vt
ZU9wdGlvbmFsQWxwaGFPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBD
U1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlmIChhdXRvIGFscGhhID0g
Y29uc3VtZU9wdGlvbmFsQWxwaGEocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqYWxwaGEgfTsK
KyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2UpKQorICAgICAg
ICByZXR1cm4gMS4wOworCisgICAgYXV0byBub3JtYWxpemVQZXJjZW50ID0gW10oZG91YmxlIHBl
cmNlbnQpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6Y2xhbXAocGVyY2VudCAvIDEwMC4wLCAwLjAs
IDEuMCk7CisgICAgfTsKKworICAgIGF1dG8gbm9ybWFsaXplTnVtYmVyID0gW10oZG91YmxlIGFs
cGhhKSB7CisgICAgICAgIHJldHVybiBzdGQ6OmNsYW1wKGFscGhhLCAwLjAsIDEuMCk7CisgICAg
fTsKKworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKKwor
ICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7Cisg
ICAgICAgIENhbGNQYXJzZXIgcGVyY2VudGFnZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9u
Q2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAg
ICBpZiAoYXV0byBwZXJjZW50ID0gcGVyY2VudGFnZUNhbGNQYXJzZXIuY29uc3VtZVBlcmNlbnRS
YXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KCpwZXJjZW50KTsKKyAg
ICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3Vs
YXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsKKyAg
ICAgICAgaWYgKGF1dG8gbnVtYmVyID0gbnVtYmVyQ2FsY1BhcnNlci5jb25zdW1lTnVtYmVyUmF3
KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKCpudW1iZXIpOwogCi0gICAg
aWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2Up
KQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0ZDo6
aXNpbmYodG9rZW4ubnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUluY2x1
ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRva2Vu
OgorICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdX
aGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAg
ICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5j
bHVkaW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxl
LT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToK
KyAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFsdWUp
OworCisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAg
ICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTc2
NywxNCArODEwLDU5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZSgK
ICAgICByZXR1cm4gY29uc3VtZU51bWJlclJhdyhyYW5nZSk7CiB9CiAKLXRlbXBsYXRlPENTU1Zh
bHVlSUQuLi4gYWxsb3dlZElkZW50cz4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxkb3Vi
bGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lSHVlT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0YXRpYyBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1dG8g
aHVlID0gY29uc3VtZUh1ZShyYW5nZSwgY29udGV4dCkpCi0gICAgICAgIHJldHVybiB7ICpodWUg
fTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisKKyAg
ICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAg
ICAgICBDYWxjUGFyc2VyIGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29y
eTo6QW5nbGUsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAoYXV0
byBhbmdsZSA9IGFuZ2xlQ2FsY1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKSkKKyAgICAgICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMoYW5nbGUtPnR5cGUsIGFu
Z2xlLT52YWx1ZSk7CisgICAgICAgIAorICAgICAgICBDYWxjUGFyc2VyIG51bWJlckNhbGNQYXJz
ZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5nZTo6QWxsLCBz
eW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVOdW1i
ZXJSYXcoKTsKKyAgICB9CisgICAgCisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjogeworICAgICAg
ICBhdXRvIHVuaXRUeXBlID0gdG9rZW4udW5pdFR5cGUoKTsKKyAgICAgICAgc3dpdGNoICh1bml0
VHlwZSkgeworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgorICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfR1JB
RDoKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CisgICAgICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKHVuaXRUeXBlLCByYW5nZS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1bWVJ
bmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAgICBjYXNlIElkZW50VG9r
ZW46CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdlLmNv
bnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
dmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6
CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVFVSTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1
dGVEZWdyZWVzKHZhcmlhYmxlLT50eXBlLCB2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiB2
YXJpYWJsZS0+dmFsdWU7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRS
YXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KIAorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAg
LTc4Myw2NSArODcxLDEzMSBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZUh1ZShkb3VibGUgaHVl
KQogICAgIHJldHVybiBzdGQ6OmZtb2Qoc3RkOjpmbW9kKGh1ZSwgMzYwLjApICsgMzYwLjAsIDM2
MC4wKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVOdW1iZXJP
cklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBjb25zdW1lTnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Y29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBpZiAoYXV0byBu
dW1iZXIgPSBjb25zdW1lTnVtYmVyUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKm51bWJl
ciB9OworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKIAot
ICAgIGlmIChhdXRvIGlkZW50ID0gY29uc3VtZUlkZW50UmF3PGFsbG93ZWRJZGVudHMuLi4+KHJh
bmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKmlkZW50IH07CisgICAgc3dpdGNoICh0b2tlbi50eXBl
KCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBjYWxj
UGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIFZhbHVlUmFuZ2U6OkFs
bCwgc3ltYm9sVGFibGUpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lTnVtYmVy
UmF3KCk7CisgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KKyAgICBjYXNlIE51
bWJlclRva2VuOgorICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3Bh
Y2UoKS5udW1lcmljVmFsdWUoKTsKIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRl
bnRzPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNv
bnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKLXsKLSAgICBp
ZiAoYXV0byBwZXJjZW50ID0gY29uc3VtZVBlcmNlbnRSYXcocmFuZ2UpKQotICAgICAgICByZXR1
cm4geyAqcGVyY2VudCB9OworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1dG8g
dmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3Bh
Y2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgeworICAg
ICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdmFyaWFibGUtPnZhbHVlOwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRl
bnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQg
fTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlEIEMz
LCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0
byBleHRyYWN0Q2hhbm5lbFZhbHVlKENTU1ZhbHVlSUQgY2hhbm5lbCwgY29uc3QgQ29sb3JUeXBl
JiBvcmlnaW5Db2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkK
IHsKLSAgICBhdXRvIGNvbXBvbmVudHMgPSBhc0NvbG9yQ29tcG9uZW50cyhvcmlnaW5Db2xvcik7
Ci0gICAgc3dpdGNoIChjaGFubmVsKSB7Ci0gICAgY2FzZSBDMToKLSAgICAgICAgcmV0dXJuIGNv
bXBvbmVudHNbMF07Ci0gICAgY2FzZSBDMjoKLSAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNbMV07
Ci0gICAgY2FzZSBDMzoKLSAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNbMl07Ci0gICAgY2FzZSBB
bHBoYUNoYW5uZWw6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzNdOworICAgIGNvbnN0IENT
U1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9rZW4u
dHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIg
Y2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgVmFsdWVSYW5n
ZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVQ
ZXJjZW50UmF3KCk7CisgICAgfQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CisgICAgICAg
IGlmIChzdGQ6OmlzaW5mKHRva2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hp
dGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAgICAg
ICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5jbHVk
aW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50
eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGUtPnZhbHVlOworCisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIGRlZmF1bHQ6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQgQzEsIENT
U1ZhbHVlSUQgQzIsIENTU1ZhbHVlSUQgQzMsIENTU1ZhbHVlSUQgQWxwaGFDaGFubmVsLCB0eXBl
bmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIFZhbHVlVHJhbnNmb3JtZXI+IHN0YXRpYyBkZWNsdHlw
ZShhdXRvKSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWwoY29uc3QgVmFyaWFudDxkb3VibGUs
IENTU1ZhbHVlSUQ+JiBwYXJzZWRDaGFubmVsLCBjb25zdCBDb2xvclR5cGUmIG9yaWdpbkNvbG9y
LCBWYWx1ZVRyYW5zZm9ybWVyJiYgdmFsdWVUcmFuc2Zvcm1lcikKK2VudW0gY2xhc3MgUkdCQ29t
cG9uZW50VHlwZSB7IE51bWJlciwgUGVyY2VudGFnZSB9OworCitzdGF0aWMgc3RkOjpvcHRpb25h
bDx1aW50OF90PiBjb25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6ZWRGb3JSZWxh
dGl2ZVJHQihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRh
YmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICByZXR1cm4gc3dpdGNoT24ocGFyc2VkQ2hhbm5lbCwK
LSAgICAgICAgWyZdIChkb3VibGUgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZVRy
YW5zZm9ybWVyKHZhbHVlKTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChDU1NWYWx1ZUlEIGNo
YW5uZWwpIHsKLSAgICAgICAgICAgIHJldHVybiBleHRyYWN0Q2hhbm5lbFZhbHVlPEMxLCBDMiwg
QzMsIEFscGhhQ2hhbm5lbD4oY2hhbm5lbCwgb3JpZ2luQ29sb3IpOworICAgIGF1dG8gbm9ybWFs
aXplUGVyY2VudCA9IFtdKGRvdWJsZSBwZXJjZW50KSB7CisgICAgICAgIHJldHVybiBjb252ZXJ0
UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JHQkFCeXRlKHBlcmNlbnQgLyAxMDAuMCAqIDI1NS4wKTsK
KyAgICB9OworCisgICAgYXV0byBub3JtYWxpemVOdW1iZXIgPSBbXShkb3VibGUgbnVtYmVyKSB7
CisgICAgICAgIHJldHVybiBjb252ZXJ0UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JHQkFCeXRlKG51
bWJlcik7CisgICAgfTsKKworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdl
LnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlv
blRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgcGVyY2VudGFnZUNhbGNQYXJzZXIocmFuZ2Us
IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFi
bGUpOworICAgICAgICBpZiAoYXV0byBwZXJjZW50ID0gcGVyY2VudGFnZUNhbGNQYXJzZXIuY29u
c3VtZVBlcmNlbnRSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KCpw
ZXJjZW50KTsKKyAgICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihy
YW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJv
bFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8gbnVtYmVyID0gbnVtYmVyQ2FsY1BhcnNlci5jb25z
dW1lTnVtYmVyUmF3KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKCpudW1i
ZXIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYodG9rZW4ubnVt
ZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
cmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2Uo
KS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRva2VuOgorICAgICAgICByZXR1
cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVt
ZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAgICAgICBpZiAoYXV0byB2
YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFj
ZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBlKSB7CisgICAg
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiBu
b3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0gICAgKTsKLX0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotdGVtcGxh
dGU8Q1NTVmFsdWVJRCBDMSwgQ1NTVmFsdWVJRCBDMiwgQ1NTVmFsdWVJRCBDMywgQ1NTVmFsdWVJ
RCBBbHBoYUNoYW5uZWwsIHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGRlY2x0eXBlKGF1dG8p
IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbChjb25zdCBWYXJpYW50PGRvdWJsZSwgQ1NTVmFs
dWVJRD4mIHBhcnNlZENoYW5uZWwsIGNvbnN0IENvbG9yVHlwZSYgb3JpZ2luQ29sb3IpCi17Ci0g
ICAgcmV0dXJuIHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDMSwgQzIsIEMzLCBBbHBoYUNo
YW5uZWw+KHBhcnNlZENoYW5uZWwsIG9yaWdpbkNvbG9yLCBbXShhdXRvIHZhbHVlKSB7IHJldHVy
biB2YWx1ZTsgfSk7Ci19CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICB9CiAKLWVudW0gY2xhc3MgUkdCQ29tcG9uZW50VHlwZSB7IE51bWJlciwgUGVyY2Vu
dGFnZSB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CiAKIHN0YXRpYyB1aW50OF90IGNsYW1wUkdCQ29tcG9uZW50KGRvdWJsZSB2YWx1ZSwg
UkdCQ29tcG9uZW50VHlwZSBjb21wb25lbnRUeXBlKQogewpAQCAtOTIxLDUyICsxMDc1LDM3IEBA
IHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycygKICAgICBpZiAoIW9yaWdp
bkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHN0ZDo6b3B0aW9u
YWw8UkdCQ29tcG9uZW50VHlwZT4gY29tcG9uZW50VHlwZTsKLSAgICBhdXRvIHJlZFJlc3VsdCA9
IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZVI+KGFyZ3MsIGNvbXBvbmVudFR5
cGUpOwotICAgIGlmICghcmVkUmVzdWx0KQorICAgIGF1dG8gb3JpZ2luQ29sb3JBc1NSR0IgPSBv
cmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PFNSR0JBPGZsb2F0Pj4oKTsKKworICAgIENTU0Nh
bGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVSLCBDU1NVbml0
VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNTUkdCLnJlZCAqIDEwMC4wIH0sCisg
ICAgICAgIHsgQ1NTVmFsdWVHLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNv
bG9yQXNTUkdCLmdyZWVuICogMTAwLjAgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1VuaXRU
eXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc1NSR0IuYmx1ZSAqIDEwMC4wIH0sCisg
ICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmln
aW5Db2xvckFzU1JHQi5hbHBoYSAqIDEwMC4wIH0KKyAgICB9OworCisgICAgYXV0byByZWQgPSBj
b25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6ZWRGb3JSZWxhdGl2ZVJHQihhcmdz
LCBzeW1ib2xUYWJsZSk7CisgICAgaWYgKCFyZWQpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAg
YXV0byByZWQgPSByZWRSZXN1bHQtPnZhbHVlOwotICAgIGNvbXBvbmVudFR5cGUgPSByZWRSZXN1
bHQtPnR5cGU7CiAKLSAgICBhdXRvIGdyZWVuUmVzdWx0ID0gY29uc3VtZVJlbGF0aXZlUkdCQ29t
cG9uZW50PENTU1ZhbHVlRz4oYXJncywgY29tcG9uZW50VHlwZSk7Ci0gICAgaWYgKCFncmVlblJl
c3VsdCkKKyAgICBhdXRvIGdyZWVuID0gY29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3Jt
YWxpemVkRm9yUmVsYXRpdmVSR0IoYXJncywgc3ltYm9sVGFibGUpOworICAgIGlmICghZ3JlZW4p
CiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgYXV0byBncmVlbiA9IGdyZWVuUmVzdWx0LT52YWx1
ZTsKLSAgICBjb21wb25lbnRUeXBlID0gZ3JlZW5SZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRvIGJs
dWVSZXN1bHQgPSBjb25zdW1lUmVsYXRpdmVSR0JDb21wb25lbnQ8Q1NTVmFsdWVCPihhcmdzLCBj
b21wb25lbnRUeXBlKTsKLSAgICBpZiAoIWJsdWVSZXN1bHQpCisgICAgYXV0byBibHVlID0gY29u
c3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVsYXRpdmVSR0IoYXJncywg
c3ltYm9sVGFibGUpOworICAgIGlmICghYmx1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBh
dXRvIGJsdWUgPSBibHVlUmVzdWx0LT52YWx1ZTsKLSAgICBjb21wb25lbnRUeXBlID0gYmx1ZVJl
c3VsdC0+dHlwZTsKIAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRl
bnQ8Q1NTVmFsdWVBbHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25h
bEFscGhhT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1
ZXMgZnJvbSB0aGUgb3JpZ2luIGNvbG9yLgotCi0gICAgLy8gRklYTUU6IERvIHdlIHdhbnQgdG8g
YmVpbmcgZG9pbmcgdGhpcyBpbiB1aW50OF90IHZhbHVlcz8gT3Igc2hvdWxkIHdlIHVzZSAKLSAg
ICAvLyBoaWdoZXIgcHJlY2lzaW9uIGFuZCBjbGFtcCBhdCB0aGUgZW5kPyBJdCB3b24ndCBtYWtl
IGEgZGlmZmVyZW5jZSB1bnRpbCB3ZQotICAgIC8vIHN1cHBvcnQgY2FsY3VsYXRpb25zIG9uIHRo
ZSBvcmlnaW4ncyBjb21wb25lbnRzLgotICAgIGF1dG8gb3JpZ2luQ29sb3JBc1NSR0IgPSBvcmln
aW5Db2xvci50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRDb21w
b25lbnRUeXBlID0gY29tcG9uZW50VHlwZS52YWx1ZV9vcihSR0JDb21wb25lbnRUeXBlOjpQZXJj
ZW50YWdlKTsKLSAgICBhdXRvIGNoYW5uZWxSZXNvbHZlciA9IFtyZXNvbHZlZENvbXBvbmVudFR5
cGVdKGF1dG8gdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGNsYW1wUkdCQ29tcG9uZW50KHZhbHVl
LCByZXNvbHZlZENvbXBvbmVudFR5cGUpOwotICAgIH07Ci0KLSAgICBhdXRvIHJlc29sdmVkUmVk
ID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBDU1NW
YWx1ZUIsIENTU1ZhbHVlQWxwaGE+KHJlZCwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5uZWxSZXNv
bHZlcik7Ci0gICAgYXV0byByZXNvbHZlZEdyZWVuID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KGdyZWVu
LCBvcmlnaW5Db2xvckFzU1JHQiwgY2hhbm5lbFJlc29sdmVyKTsKLSAgICBhdXRvIHJlc29sdmVk
Qmx1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVlRywg
Q1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihibHVlLCBvcmlnaW5Db2xvckFzU1JHQiwgY2hhbm5l
bFJlc29sdmVyKTsKLSAgICBhdXRvIHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRpdmVDb2xv
ckNoYW5uZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4o
KmFscGhhLCBvcmlnaW5Db2xvckFzU1JHQiwgW10oYXV0byB2YWx1ZSkgewotICAgICAgICByZXR1
cm4gY29udmVydEZsb2F0QWxwaGFUbzx1aW50OF90Pih2YWx1ZSk7Ci0gICAgfSk7CisgICAgYXV0
byBub3JtYWxpemVkQWxwaGEgPSBjb252ZXJ0RmxvYXRBbHBoYVRvPHVpbnQ4X3Q+KCphbHBoYSk7
CiAKLSAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyByZXNvbHZlZFJlZCwgcmVzb2x2ZWRHcmVl
biwgcmVzb2x2ZWRCbHVlLCByZXNvbHZlZEFscGhhIH07CisgICAgcmV0dXJuIFNSR0JBPHVpbnQ4
X3Q+IHsgKnJlZCwgKmdyZWVuLCAqYmx1ZSwgbm9ybWFsaXplZEFscGhhIH07CiB9CiAKIGVudW0g
Y2xhc3MgUkdCRnVuY3Rpb25Nb2RlIHsgUkdCLCBSR0JBIH07CkBAIC0xMDQ4LDQxICsxMTg3LDQw
IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlSFNMUGFyYW1ldGVycygKICAgICBpZiAoIW9y
aWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gaHVl
ID0gY29uc3VtZUh1ZU9ySWRlbnQ8Q1NTVmFsdWVIPihhcmdzLCBjb250ZXh0KTsKKyAgICBhdXRv
IG9yaWdpbkNvbG9yQXNIU0wgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PEhTTEE8Zmxv
YXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAgICAgICAg
eyBDU1NWYWx1ZUgsIENTU1VuaXRUeXBlOjpDU1NfREVHLCBvcmlnaW5Db2xvckFzSFNMLmh1ZSB9
LAorICAgICAgICB7IENTU1ZhbHVlUywgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmln
aW5Db2xvckFzSFNMLnNhdHVyYXRpb24gfSwKKyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRU
eXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hTTC5saWdodG5lc3MgfSwKKyAgICAg
ICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNv
bG9yQXNIU0wuYWxwaGEgKiAxMDAuMCB9CisgICAgfTsKKworICAgIGF1dG8gaHVlID0gY29uc3Vt
ZUh1ZU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklkZW50
PENTU1ZhbHVlUz4oYXJncyk7CisgICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRP
cklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIXNhdHVyYXRpb24pCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVu
dDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRP
cklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWxpZ2h0bmVzcykKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRl
bnQ8Q1NTVmFsdWVBbHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25h
bEFscGhhT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1
ZXMgZnJvbSB0aGUgb3JpZ2luIGNvbG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzSFNMID0g
b3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIU0xBPGZsb2F0Pj4oKTsKLQotICAgIGF1dG8g
cmVzb2x2ZWRIdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NW
YWx1ZVMsIENTU1ZhbHVlTCwgQ1NTVmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0hTTCwg
W10oYXV0byBodWUpIHsKLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAgIH0p
OwotICAgIGF1dG8gcmVzb2x2ZWRTYXR1cmF0aW9uID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpzYXR1
cmF0aW9uLCBvcmlnaW5Db2xvckFzSFNMLCBbXShhdXRvIHNhdHVyYXRpb24pIHsKLSAgICAgICAg
cmV0dXJuIGNsYW1wVG8oc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAgYXV0
byByZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1
ZUgsIENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmln
aW5Db2xvckFzSFNMLCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gY2xhbXBU
byhsaWdodG5lc3MsIDAuMCwgMTAwLjApOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBbHBo
YSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywgQ1NT
VmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNIU0wpOworICAgIGF1
dG8gbm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIG5vcm1hbGl6
ZWRTYXR1cmF0aW9uID0gc3RkOjpjbGFtcCgqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7CisgICAg
YXV0byBub3JtYWxpemVkTGlnaHRuZXNzID0gc3RkOjpjbGFtcCgqbGlnaHRuZXNzLCAwLjAsIDEw
MC4wKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRBbHBoYSA9IHN0ZDo6Y2xhbXAoKmFscGhhLCAwLjAs
IDEuMCk7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xBPGZs
b2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0
PihyZXNvbHZlZFNhdHVyYXRpb24pLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRMaWdodG5l
c3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBoYSkgfSk7CisgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9h
dD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlv
biksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG5vcm1hbGl6ZWRBbHBoYSkgfSk7CiB9CiAKIGVudW0gY2xhc3MgSFNMRnVuY3Rpb25N
b2RlIHsgSFNMLCBIU0xBIH07CkBAIC0xMTIyLDE1ICsxMjYwLDE0IEBAIHRlbXBsYXRlPEhTTEZ1
bmN0aW9uTW9kZSBNb2RlPiBzdGF0aWMgQ28KICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGF1
dG8gbm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKLSAgICBhdXRvIG5vcm1hbGl6
ZWRTYXR1cmF0aW9uID0gY2xhbXBUbygqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAgYXV0
byBub3JtYWxpemVkTGlnaHRuZXNzID0gY2xhbXBUbygqbGlnaHRuZXNzLCAwLjAsIDEwMC4wKTsK
LSAgICBhdXRvIG5vcm1hbGl6ZWRBbHBoYSA9IGNsYW1wVG8oKmFscGhhLCAwLjAsIDEuMCk7Cisg
ICAgYXV0byBub3JtYWxpemVkU2F0dXJhdGlvbiA9IHN0ZDo6Y2xhbXAoKnNhdHVyYXRpb24sIDAu
MCwgMTAwLjApOworICAgIGF1dG8gbm9ybWFsaXplZExpZ2h0bmVzcyA9IHN0ZDo6Y2xhbXAoKmxp
Z2h0bmVzcywgMC4wLCAxMDAuMCk7CisgICAgYXV0byBub3JtYWxpemVkQWxwaGEgPSBzdGQ6OmNs
YW1wKCphbHBoYSwgMC4wLCAxLjApOwogCiAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1
aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEh1ZSks
IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0PGZs
b2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRB
bHBoYSkgfSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+Ci1zdHJ1Y3Qg
V2hpdGVuZXNzQmxhY2tuZXNzIHsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+IHN0
cnVjdCBXaGl0ZW5lc3NCbGFja25lc3MgewogICAgIENvbXBvbmVudFR5cGUgd2hpdGVuZXNzOwog
ICAgIENvbXBvbmVudFR5cGUgYmxhY2tuZXNzOwogfTsKQEAgLTExNjQsMzkgKzEzMDEsMzggQEAg
c3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJzKAogICAgIGlmICghb3JpZ2lu
Q29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBj
b25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8gb3Jp
Z2luQ29sb3JBc0hXQiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+
KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7IENT
U1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNIV0IuaHVlIH0sCisg
ICAgICAgIHsgQ1NTVmFsdWVXLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNv
bG9yQXNIV0Iud2hpdGVuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlwZTo6
Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0IuYmxhY2tuZXNzIH0sCisgICAgICAgIHsg
Q1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xvckFz
SFdCLmFscGhhICogMTAwLjAgfQorICAgIH07CisKKyAgICBhdXRvIGh1ZSA9IGNvbnN1bWVIdWVP
cklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWh1ZSkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIGF1dG8gd2hpdGVuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1Zh
bHVlVz4oYXJncyk7CisgICAgYXV0byB3aGl0ZW5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQo
YXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghd2hpdGVuZXNzKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgYXV0byBibGFja25lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NTVmFs
dWVCPihhcmdzKTsKKyAgICBhdXRvIGJsYWNrbmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVudChh
cmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFibGFja25lc3MpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENTU1Zh
bHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZyb20g
dGhlIG9yaWdpbiBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdpbkNv
bG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29sdmVk
SHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVXLCBD
U1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNIV0IsIFtdKGF1dG8g
aHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsKLSAgICBh
dXRvIHJlc29sdmVkV2hpdGVuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1Zh
bHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCp3aGl0ZW5lc3MsIG9y
aWdpbkNvbG9yQXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRCbGFja25lc3MgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVcsIENTU1ZhbHVlQiwgQ1NTVmFs
dWVBbHBoYT4oKmJsYWNrbmVzcywgb3JpZ2luQ29sb3JBc0hXQik7Ci0gICAgYXV0byByZXNvbHZl
ZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVX
LCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hXQik7Ci0K
LSAgICBhdXRvIFtub3JtYWxpemVkV2hpdG5lc3MsIG5vcm1hbGl6ZWRCbGFja25lc3NdID0gbm9y
bWFsaXplV2hpdGVuZXNzQmxhY2tuZXNzKHJlc29sdmVkV2hpdGVuZXNzLCByZXNvbHZlZEJsYWNr
bmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOworICAg
IGF1dG8gW25vcm1hbGl6ZWRXaGl0bmVzcywgbm9ybWFsaXplZEJsYWNrbmVzc10gPSBub3JtYWxp
emVXaGl0ZW5lc3NCbGFja25lc3MoKndoaXRlbmVzcywgKmJsYWNrbmVzcyk7CiAKLSAgICByZXR1
cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0
PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkV2hpdG5l
c3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEJsYWNrbmVzcyksIHN0YXRpY19jYXN0
PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JB
PHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRXaGl0bmVzcyksIHN0YXRpY19jYXN0PGZs
b2F0Pihub3JtYWxpemVkQmxhY2tuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfSk7
CiB9CiAKIHN0YXRpYyBDb2xvciBwYXJzZUhXQlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMjQ1LDM3ICsx
MzgxLDM3IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTGFiUGFyYW1ldGVycygKICAgICBp
ZiAoIW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1
dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7Cisg
ICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxM
YWI8ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAg
ICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29s
b3JBc0xhYi5saWdodG5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUEsIENTU1VuaXRUeXBlOjpD
U1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENT
U1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmIgfSwKKyAgICAgICAgeyBD
U1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNM
YWIuYWxwaGEgKiAxMDAuMCB9CisgICAgfTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3Vt
ZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWxpZ2h0bmVzcykK
ICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJlck9y
SWRlbnQ8Q1NTVmFsdWVBPihhcmdzKTsKKyAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1iZXJP
cklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFWYWx1ZSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJlck9ySWRlbnQ8Q1NTVmFs
dWVCPihhcmdzKTsKKyAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50KGFyZ3Ms
IHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWJWYWx1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQ8Q1NTVmFsdWVBbHBo
YT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudChh
cmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgLy8g
QWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1ZXMgZnJvbSB0aGUgb3Jp
Z2luIGNvbG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3IudG9D
b2xvclR5cGVMb3NzeTxMYWI8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZlZExpZ2h0bmVz
cyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NT
VmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5Db2xvckFzTGFiLCBbXShh
dXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBsaWdodG5lc3Mp
OwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBVmFsdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xv
ckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4o
KmFWYWx1ZSwgb3JpZ2luQ29sb3JBc0xhYik7Ci0gICAgYXV0byByZXNvbHZlZEJWYWx1ZSA9IHJl
c29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NTVmFsdWVC
LCBDU1NWYWx1ZUFscGhhPigqYlZhbHVlLCBvcmlnaW5Db2xvckFzTGFiKTsKLSAgICBhdXRvIHJl
c29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NW
YWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmFscGhhLCBvcmlnaW5Db2xvckFzTGFi
KTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBzdGQ6Om1heCgwLjAsICpsaWdodG5l
c3MpOwogCi0gICAgcmV0dXJuIExhYjxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBVmFsdWUpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocmVzb2x2ZWRCVmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRB
bHBoYSkgfTsKKyAgICByZXR1cm4gTGFiPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3Jt
YWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphVmFsdWUpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4oKmJWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PigqYWxwaGEpIH07CiB9CiAKIHN0
YXRpYyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMzIzLDM5ICsxNDU5LDM5IEBA
IHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTENIUGFyYW1ldGVycygKICAgICBpZiAoIW9yaWdp
bkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGlnaHRu
ZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0byBv
cmlnaW5Db2xvckFzTENIID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxMQ0hBPGZsb2F0
Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsg
Q1NTVmFsdWVMLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNMQ0gu
bGlnaHRuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVDLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJF
Uiwgb3JpZ2luQ29sb3JBc0xDSC5jaHJvbWEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUgsIENTU1Vu
aXRUeXBlOjpDU1NfREVHLCBvcmlnaW5Db2xvckFzTENILmh1ZSB9LAorICAgICAgICB7IENTU1Zh
bHVlQWxwaGEsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0xDSC5h
bHBoYSAqIDEwMC4wIH0KKyAgICB9OworCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVy
Y2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNzKQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBjaHJvbWEgPSBjb25zdW1lTnVtYmVyT3JJZGVu
dDxDU1NWYWx1ZUM+KGFyZ3MpOworICAgIGF1dG8gY2hyb21hID0gY29uc3VtZU51bWJlck9ySWRl
bnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghY2hyb21hKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFyZ3Ms
IGNvbnRleHQpOworICAgIGF1dG8gaHVlID0gY29uc3VtZUh1ZU9ySWRlbnQoYXJncywgc3ltYm9s
VGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBh
bHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdzKTsK
KyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5bWJv
bFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYg
KCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIG9yaWdpbkNv
bG9yQXNMQ0ggPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PExDSEE8ZmxvYXQ+PigpOwot
Ci0gICAgYXV0byByZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5l
bDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhhPigqbGlnaHRu
ZXNzLCBvcmlnaW5Db2xvckFzTENILCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1
cm4gc3RkOjptYXgoMC4wLCBsaWdodG5lc3MpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRD
aHJvbWEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMs
IENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmNocm9tYSwgb3JpZ2luQ29sb3JBc0xDSCwgW10o
YXV0byBjaHJvbWEpIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwgY2hyb21hKTsKLSAg
ICB9KTsKLSAgICBhdXRvIHJlc29sdmVkSHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVs
PENTU1ZhbHVlTCwgQ1NTVmFsdWVDLCBDU1NWYWx1ZUgsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9y
aWdpbkNvbG9yQXNMQ0gsIFtdKGF1dG8gaHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVI
dWUoaHVlKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRp
dmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVB
bHBoYT4oKmFscGhhLCBvcmlnaW5Db2xvckFzTENIKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdo
dG5lc3MgPSBzdGQ6Om1heCgwLjAsICpsaWdodG5lc3MpOworICAgIGF1dG8gbm9ybWFsaXplZENo
cm9tYSA9IHN0ZDo6bWF4KDAuMCwgKmNocm9tYSk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0g
bm9ybWFsaXplSHVlKCpodWUpOwogCi0gICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHJlc29sdmVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVk
Q2hyb21hKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkSHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHJlc29sdmVkQWxwaGEpIH07CisgICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFs
aXplZENocm9tYSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KCphbHBoYSkgfTsKIH0KIAogc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVy
cyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29u
dGV4dCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTMwICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21wb25l
bnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVcGRhdGVkIHRlc3QgYW5kIHJlc3VsdHMgZm9y
IHVwZGF0ZSBzdXBwb3J0IGluY2x1ZGluZyBjYWxjKCkgCisgICAgICAgIGFuZCBjb21wb21lbnQg
cGVybXV0YXRpb24uCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9y
LXN5bnRheC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2
ZS1jb2xvci1zeW50YXguaHRtbDoKKwogMjAyMS0wNS0yOSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxo
ZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBJbnRlcm5hbHMubWFpblRocmVhZFNj
cm9sbGluZ1JlYXNvbnMgdG8gc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2ZS1j
b2xvci1zeW50YXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgyNTMpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDIwICs0MiwyNyBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMjUgZyBiIC8gMjUlKSIpIGlzICJyZ2Jh
KDI1LCA1MSwgNzcsIDAuMjUpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMjUgYiAvIDI1JSkiKSBpcyAi
cmdiYSgyNiwgMjUsIDc3LCAwLjI1KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIGcgMjUgLyAyNSUpIikg
aXMgInJnYmEoMjYsIDUxLCAyNSwgMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcikiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1Q
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1
cnBsZSByIHIgciAvIHIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBhbHBoYSBhbHBo
YSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGcgYiByKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEg
ciAvIGcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciByIHIgLyBy
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGFscGhhIGFscGhhIGFs
cGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgMCUgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgciAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
ciAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMCUgMTAg
MTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIgcikiKSBpcyAicmdiKDUxLCAx
NTMsIDEwMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZy
b20gcmViZWNjYXB1cnBsZSBiIGFscGhhIHIgLyBnKSIpIGlzICJyZ2JhKDE1MywgMjU1LCAxMDIs
IDAuMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20g
cmViZWNjYXB1cnBsZSByIHIgciAvIHIpIikgaXMgInJnYmEoMTAyLCAxMDIsIDEwMiwgMC40KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2Nh
cHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigyNTUsIDI1NSwgMjU1
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcikiKSBpcyAicmdiKDUxLCA3NywgMjYpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoNzcsIDEwMiwgMjYsIDAuMikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgciByIHIgLyByKSIpIGlzICJyZ2JhKDI2LCAyNiwgMjYsIDAuMSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgxMDIs
IDEwMiwgMTAyLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
InJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCUgMTApIikgaXMgInJnYigxMDIsIDI2LCAxMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNj
YXB1cnBsZSByIDEwIDEwJSkiKSBpcyAicmdiKDEwMiwgMTAsIDI2KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIDAlIDEwIDEw
KSIpIGlzICJyZ2IoMCwgMTAsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMCkiKSBpcyAi
cmdiKDI2LCAyNiwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
InJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKSIpIGlzICJyZ2IoMjYs
IDEwLCAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMCUgMTAgMTApIikgaXMgInJnYigwLCAxMCwgMTAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVj
Y2FwdXJwbGUgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikpIikgaXMgInJnYigxMDIsIDUxLCAxNTMp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVj
Y2FwdXJwbGUgciBjYWxjKGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDI2LCAxMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBs
ZSByIGNhbGMoYiAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgNzcsIDEwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgY2Fs
YyhiICogLjUgKyBnICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCAxMDIsIDEwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIg
Y2FsYyhiICogLjUgLSBnICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCA1MSwgMTApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUg
ciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApIikgaXMgInJnYigxMDIsIDUxLCAxMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikgLyBjYWxjKGFscGhhKSkiKSBpcyAi
cmdiYSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgcmVkIGcgYikiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGwgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgaCBnIGIp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC05MSwxNCArOTgsMjQgQEAgUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggMjUlIGwgLyBh
bHBoYSkiKSBpcyAicmdiYSgzOSwgNTEsIDY0LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggcyAy
NSUgLyBhbHBoYSkiKSBpcyAicmdiYSgzMiwgNjMsIDk1LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGggcyBsIC8gLjI1KSIpIGlzICJyZ2JhKDI2LCA1MSwgNzcsIDAuMjUpIgotUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGwgLyBzKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgot
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2Fw
dXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIGggbCBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBsIGwgLyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
YWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBz
KSIpIGlzICJyZ2IoMTI4LCA3NywgMTc5KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAvIHMpIikgaXMgInJn
YmEoMTAyLCAwLCAyMDQsIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwpIikgaXMgInJnYmEoMTAyLCA2
MSwgMTQzLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2IoMjU1
LCAyNTUsIDI1NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpIikgaXMgInJnYigxMDEsIDEyNiwg
MTUyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSBy
Z2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBzKSIpIGlzICJyZ2JhKDMxLCA1MSwg
NzIsIDAuNDk0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwpIikgaXMgInJnYmEoNDEsIDUx
LCA2MiwgMC4yMDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBp
cyAicmdiYSg2MSwgMTAxLCAxNDMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBzIGggbCkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJv
bSByZWJlY2NhcHVycGxlIHMgcyBzIC8gcykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxl
IGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFs
cGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBo
IGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgcyBzIHMgLyBzKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaCkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFs
cGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHMpIGNhbGMo
bCkpIikgaXMgInJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2Fs
YyhzKSBjYWxjKGwpIC8gY2FsYyhhbHBoYSkpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC40KSIK
IFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2Nh
cHVycGxlIGggMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCAxMCUp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSAxMCUgcyBsKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgpAQCAtMTQwLDE0ICsxNTcsMjQgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3
Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggMjUlIGIgLyBhbHBoYSkiKSBpcyAicmdi
YSg2NCwgNzAsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyAyNSUgLyBhbHBoYSkiKSBp
cyAicmdiYSgyNiwgMTA3LCAxOTEsIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IGIgLyAuMjUp
IikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC4yNSkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdykiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2Io
ZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNj
YXB1cnBsZSBoIHcgdyAvIHcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhh
IGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCBiIHcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSB3
IC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIHcgdyAvIHcp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAv
IGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBiIHcpIikgaXMgInJnYigx
NTMsIDEwMiwgMjA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJo
d2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMjEzLCAyMTMs
IDIxMywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2Io
ZnJvbSByZWJlY2NhcHVycGxlIGggdyB3IC8gdykiKSBpcyAicmdiYSgxMjgsIDUxLCAyMDQsIDAu
MikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYigxMjgsIDEyOCwgMTI4
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdykiKSBpcyAicmdiKDE3OCwgMjAzLCAyMjkpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEoMTAyLCAxNjQsIDIyOSwgMC42
OTgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdykiKSBpcyAicmdiYSgyNiwgMTI2LCAyMjks
IDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2Jh
KDEwMiwgMTI3LCAxNTMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSB3IGggYikiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJl
Y2NhcHVycGxlIGIgYiBiIC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggaCBo
IC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8g
YWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgdyBiIGgpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYiBiIGIgLyBiKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
Imh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2Io
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikpIikg
aXMgInJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMoaCkgY2FsYyh3KSBj
YWxjKGIpIC8gY2FsYyhhbHBoYSkpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC40KSIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxl
IGggMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCAxMCAxMCUpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSAxMCUgdyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgpAQCAtMTgyLDE0ICsyMDksMTYgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9t
IGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgMzUgYiAvIGFscGhhKSIpIGlzICJsYWIoMjUlIDM1IDUw
IC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgMzUgLyBhbHBoYSkiKSBpcyAibGFiKDI1JSAyMCAz
NSAvIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZy
b20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGIgLyAuMzUpIikgaXMgImxhYigyNSUgMjAgNTAg
LyAwLjM1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwKSBsIGIgYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBs
IGIgYSkiKSBpcyAibGFiKDI1JSA1MCAyMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBhIGEgLyBhKSIpIGlzICJsYWIo
MjUlIDIwIDIwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
ZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSkiKSBpcyAibGFiKDI1JSA1MCAyMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAy
MCA1MCAvIDQwJSkgbCBhIGEgLyBhKSIpIGlzICJsYWIoMjUlIDIwIDIwKSIKIFBBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFs
cGhhIGEgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBhIC8gYSkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20g
bGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBhIC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIo
MjUlIDIwIDUwIC8gNDAlKSBsIGEgYSAvIGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1
MCAvIDQwJSkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUg
MjAgNTApIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIpKSIpIGlzICJsYWIoMjUlIDIwIDUwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIw
IDUwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYSkgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJs
YWIoMjUlIDIwIDUwIC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwKSBsIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSAx
MCBhIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0yMzEsMTAgKzI2MCwyMiBAQCBQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBjIDI1
IC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgMjUgLyAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyAy
NWRlZyAvIGFscGhhKSIpIGlzICJsY2goNzAlIDQ1IDI1IC8gMC40KSIKIFBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBs
IGMgaCAvIC4yNSkiKSBpcyAibGNoKDcwJSA0NSAzMCAvIDAuMjUpIgotUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMg
aCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBoIC8gbCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBhbHBoYSkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGggLyBsKSIpIGlzICJsY2goMTAw
JSA0NSAzMCAvIDAuNykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDcwJSA0NSA0
NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNo
KDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgImxjaCgxMDAlIDQ1IDMwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1
IDMwKSBhbHBoYSBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDEwMCUgNDUgNDUpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGFscGhhIGMgaCAvIGwpIikgaXMgImxjaCg0MCUgNDUgMzAgLyAwLjcpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGwgYyBjIC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgNDUgLyAwLjQpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGFscGhhIGMgaCAvIGFscGhhKSIpIGlzICJsY2goNDAlIDQ1IDMwIC8gMC40KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
IC8gNDAlKSBhbHBoYSBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDQwJSA0NSA0NSAvIDAuNCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0
NSAzMCkgaCBsIGMgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBjIGMg
YyAvIGMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYWxwaGEgYWxwaGEg
LyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBoIGwgYyAvIGFs
cGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGMgYyBjIC8gYykiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFs
cGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGNhbGMobCkgY2FsYyhjKSBjYWxj
KGgpKSIpIGlzICJsY2goNzAlIDQ1IDMwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYykg
Y2FsYyhoKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJsY2goNzAlIDQ1IDMwIC8gMC40KSIKIFBBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBsIDEwJSBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGwgYyAxMCUpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgMTAgYyBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgpAQCAtMjQ0LDYgKzI4NSwyMSBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20g
bGNoKDcwJSA0NSAzMCkgbGlnaHRuZXNzIGMgaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1
IDMwKSB4IGMgaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGcgYikiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSB2YXIoLS1iZy1jb2xvcikgciBnIGIgLyA4MCUpIikgaXMgInJnYmEoMCwgMCwg
MjU1LCAwLjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChm
cm9tIHZhcigtLWNvbG9yKSBjYWxjKGwgLyAyKSBjIGgpIikgaXMgImxjaCgyMy4xMzg5NzElIDY3
Ljk4OTcxNiAxMzQuMzkxMjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHZhcigtLWNvbG9yKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjEx
KSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkg
KyBiICogLjExKSkiKSBpcyAicmdiKDc2LCA3NiwgNzYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLWNvbG9yKSBsIDAgaCkiKSBpcyAibGNo
KDQ2LjI3Nzk0MyUgMCAxMzQuMzkxMjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgInJnYihmcm9tIGluZGlhbnJlZCAyNTUgZyBiKSIpIGlzICJyZ2IoMjU1LCA5Miwg
OTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHZh
cigtLWFjY2VudCkgY2FsYyhoICsgMTgwZGVnKSBzIGwpIikgaXMgInJnYigxNzgsIDMyLCA0MCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gdmFyKC0t
bXljb2xvcikgbCBhIGIgLyAxMDAlKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQu
MTE3MjgzKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEgKiAwLjgpKSIpIGlzICJsYWIoNjIu
NzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8gMC44KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMo
YWxwaGEgLSAyMCUpKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8g
MC44KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2
YXIoLS1teWNvbG9yKSBsIDAgMCkiKSBpcyAibGFiKDYyLjc1MTkyMyUgMCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBwZXJ1IGNhbGMobCAqIDAu
OCkgYyBoKSIpIGlzICJsY2goNDkuODAxMzglIDU0LjAwMzI5NiA2My42ODAzMTcpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIkxDSChmcm9tIHZhcigtLWFjY2VudCkg
bCBjIGNhbGMoaCArIDE4MGRlZykpIikgaXMgImxjaCg2NS40OTQ3MyUgMzkuNDQ2OTAzIDEwLjEx
NDQ3MSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20g
dmFyKC0tbXljb2xvcikgbCAwIGgpIikgaXMgImxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJ2YXIoLS1teWdyYXkpIikg
aXMgImxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSB2YXIoLS1teWdyYXkpIGwgMzAgaCkiKSBpcyAibGNo
KDYyLjc1MTkyMyUgMzAgMzI2Ljk2MTEyKSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1y
ZWxhdGl2ZS1jb2xvci1zeW50YXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sCShyZXZpc2lvbiAyNzgyNTMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsMTUgQEAKIDwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgQ1NTUmVsYXRpdmVDb2xvclN5bnRheEVuYWJsZWQ9dHJ1ZSBd
IC0tPgogPGh0bWw+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICBodG1sIHsgCisgICAgICAgICAg
ICAtLWJnLWNvbG9yOiBibHVlOworICAgICAgICAgICAgLS1jb2xvcjogZ3JlZW47CisgICAgICAg
ICAgICAtLWFjY2VudDogbGlnaHRzZWFncmVlbjsKKyAgICAgICAgICAgIC0tbXljb2xvcjogb3Jj
aGlkOworICAgICAgICAgICAgLS1teWdyYXk6IGxjaChmcm9tIHZhcigtLW15Y29sb3IpIGwgMCBo
KTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+CkBA
IC05NSwyMyArMTA0LDMyIEBACiAgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSByIDI1IGIgLyAyNSUpYCwgYHJnYmEoMjYsIDI1LCA3NywgMC4yNSlgKTsK
ICAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgZyAy
NSAvIDI1JSlgLCBgcmdiYSgyNiwgNTEsIDI1LCAwLjI1KWApOwogCi0gICAgLy8gVGVzdGluZyBw
ZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdlIGRpc2Fs
bG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgZyBiIHIp
YCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVj
Y2FwdXJwbGUgYiBhbHBoYSByIC8gZylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RD
b21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpYCwgYHJnYmEoMCwgMCwg
MCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEg
YWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21w
dXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgZyBiIHIpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgciByIC8gcilgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOwotCi0gICAgLy8gVGVzdGluZyBpbnZhbGlkIG1peGVzIG9mIG51bWJlciBhbmQgcGVyY2Vu
dGFnZQotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwJSAxMClg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNj
YXB1cnBsZSByIDEwIDEwJSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRl
ZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSAwJSAxMCAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAx
MCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAx
MCAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24u
CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVycGxlIGcgYiByKWAsIGByZ2Io
NTEsIDE1MywgMTAyKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBs
ZSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDE1MywgMjU1LCAxMDIsIDAuMilgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciByIHIgLyByKWAsIGByZ2JhKDEwMiwg
MTAyLCAxMDIsIDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJw
bGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcilg
LCBgcmdiKDUxLCA3NywgMjYpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDc3LCAxMDIsIDI2LCAwLjIp
YCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBy
IHIgciAvIHIpYCwgYHJnYmEoMjYsIDI2LCAyNiwgMC4xKWApOworICAgIHRlc3RDb21wdXRlZChg
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBo
YSlgLCBgcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQpYCk7CisKKyAgICAvLyBUZXN0aW5nIG1peGVz
IG9mIG51bWJlciBhbmQgcGVyY2VudGFnZS4gKFRoZXNlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIGlu
IHRoZSBub24tcmVsYXRpdmUgc3ludGF4KS4KKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgciAxMCUgMTApYCwgYHJnYigxMDIsIDI2LCAxMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCAxMCUpYCwgYHJnYigxMDIsIDEwLCAy
NilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUgMTAgMTAp
YCwgYHJnYigwLCAxMCwgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMClgLCBgcmdiKDI2LCAyNiwgMTApYCk7CisgICAgdGVz
dENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwIDEwJSlgLCBg
cmdiKDI2LCAxMCwgMjYpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSAwJSAxMCAxMClgLCBgcmdiKDAsIDEwLCAxMClgKTsKKworICAgIC8vIFRl
c3Rpbmcgd2l0aCBjYWxjKCkuCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVy
cGxlIGNhbGMocikgY2FsYyhnKSBjYWxjKGIpKWAsIGByZ2IoMTAyLCA1MSwgMTUzKWApOworICAg
IHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoZyAqIC41KSAxMClg
LCBgcmdiKDEwMiwgMjYsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNj
YXB1cnBsZSByIGNhbGMoYiAqIC41KSAxMClgLCBgcmdiKDEwMiwgNzcsIDEwKWApOworICAgIHRl
c3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41ICsgZyAqIC41
KSAxMClgLCBgcmdiKDEwMiwgMTAyLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApYCwgYHJnYigxMDIsIDUx
LCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxj
KGIgKiAuNSAtIGcgKiAuNSkgMTApYCwgYHJnYigxMDIsIDUxLCAxMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGNhbGMocikgY2FsYyhnKSBj
YWxjKGIpIC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC40KWApOwogCiAgICAg
Ly8gVGVzdGluZyBpbnZhbGlkIGNvbXBvbmVudCBuYW1lcwogICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gcmViZWNjYXB1cnBsZSByZWQgZyBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0x
NjEsMTUgKzE3OSwyOSBAQAogICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgaCBzIDI1JSAvIGFscGhhKWAsIGByZ2JhKDMyLCA2MywgOTUsIDAuNClgKTsK
ICAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggcyBs
IC8gLjI1KWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuMjUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBl
cm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxs
b3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgcylg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNj
YXB1cnBsZSBoIGFscGhhIGwgLyBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBsIC8gbClgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhh
IGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQo
YGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBzKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSBoIGFscGhhIGwgLyBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVk
KGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAg
IC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICB0ZXN0Q29t
cHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMpYCwgYHJnYigxMjgsIDc3LCAxNzkp
YCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgbCAv
IHMpYCwgYHJnYmEoMTAyLCAwLCAyMDQsIDAuNSlgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChm
cm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKWAsIGByZ2JhKDEwMiwgNjEsIDE0MywgMC40KWAp
OworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhh
IC8gYWxwaGEpYCwgYHJnYigyNTUsIDI1NSwgMjU1KWApOworICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpYCwgYHJnYigxMDEsIDEyNiwgMTUy
KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
aCBhbHBoYSBsIC8gcylgLCBgcmdiYSgzMSwgNTEsIDcyLCAwLjQ5NClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBsIC8gbClgLCBgcmdi
YSg0MSwgNTEsIDYyLCAwLjIwNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSg2MSwgMTAx
LCAxNDMsIDAuNClgKTsKKworICAgIC8vIFRlc3RpbmcgaW52YWxpZCBwZXJtdXRhdGlvbiAodHlw
ZXMgZG9uJ3QgbWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBs
ZSBzIGggbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZy
b20gcmViZWNjYXB1cnBsZSBzIHMgcyAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKWAsIGByZ2JhKDAs
IDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGFs
cGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHMgaCBsKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBzIHMgcyAvIHMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaClgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhz
bChmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHMpIGNhbGMobCkpYCwgYHJnYigxMDIs
IDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBjYWxjKGgpIGNhbGMocykgY2FsYyhsKSAvIGNhbGMoYWxwaGEpKWAsIGByZ2JhKDI2
LCA1MSwgNzcsIDAuNClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAg
dGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKWAsIGByZ2JhKDAs
IDAsIDAsIDApYCk7CkBAIC0yMjgsMTUgKzI2MCwyOSBAQAogICAgIHRlc3RDb21wdXRlZChgaHdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IDI1JSAvIGFscGhhKWAsIGByZ2JhKDI2
LCAxMDcsIDE5MSwgMC40KWApOwogICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCB3IGIgLyAuMjUpYCwgYHJnYmEoMjYsIDUxLCA3NywgMC4yNSlgKTsK
IAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVuY2xlYXIgaWYgdGhpcyBpcyBhbGxvd2Vk
IHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggYiB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMCwgMCwg
MCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCB3IHcg
LyB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBi
IHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
dyB3IC8gdylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMg
bWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGIgdylg
LCBgcmdiKDE1MywgMTAyLCAyMDQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJl
Y2NhcHVycGxlIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMjEzLCAyMTMsIDIxMywgMC40KWApOwor
ICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAvIHcpYCwgYHJn
YmEoMTI4LCA1MSwgMjA0LCAwLjIpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJl
Y2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiKDEyOCwgMTI4LCAxMjgpYCk7
CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIg
dylgLCBgcmdiKDE3OCwgMjAzLCAyMjkpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSBy
Z2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIHcgLyBiKWAsIGByZ2JhKDEwMiwgMTY0LCAy
MjksIDAuNjk4KWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCB3IHcgLyB3KWAsIGByZ2JhKDI2LCAxMjYsIDIyOSwgMC4xKWApOworICAgIHRl
c3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBo
YSAvIGFscGhhKWAsIGByZ2JhKDEwMiwgMTI3LCAxNTMsIDAuNClgKTsKKworICAgIC8vIFRlc3Rp
bmcgaW52YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgZG9uJ3QgbWF0Y2gpLgorICAgIHRlc3RDb21w
dXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSB3IGggYilgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGIgYiAvIGIpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2Fw
dXJwbGUgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVk
KGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJn
YmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIHcgYiBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBiIGIgYiAvIGIpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGggaCBoIC8gaClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21w
dXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEg
LyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNh
bGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBj
YWxjKHcpIGNhbGMoYikpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVk
KGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxjKGgpIGNhbGModykgY2FsYyhi
KSAvIGNhbGMoYWxwaGEpKWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuNClgKTsKIAogICAgIC8vIFRl
c3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2Nh
cHVycGxlIGggMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0yODgsMTYgKzMzNCwy
MiBAQAogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBh
IDM1IC8gYWxwaGEpYCwgYGxhYigyNSUgMjAgMzUgLyAwLjQpYCk7CiAgICAgdGVzdENvbXB1dGVk
KGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYiAvIC4zNSlgLCBgbGFiKDI1JSAy
MCA1MCAvIDAuMzUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNsZWFyIGlm
IHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRlc3RDb21w
dXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBiIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKyAgICAvLyBUZXN0aW5nIHZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBtYXRjaCkuCisgICAg
dGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSlgLCBgbGFiKDI1JSA1
MCAyMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYSBh
IC8gYSlgLCBgbGFiKDI1JSAyMCAyMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxh
YigyNSUgMjAgNTAgLyA0MCUpIGwgYiBhKWAsIGBsYWIoMjUlIDUwIDIwKWApOworICAgIHRlc3RD
b21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGEgLyBhKWAsIGBsYWIo
MjUlIDIwIDIwKWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBl
cyBkb24ndCBtYXRjaCkuCiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUw
KSBsIGFscGhhIGEgLyBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVk
KGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGEgYSAvIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgYWxwaGEgYWxw
aGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgbGFi
KGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
ICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYWxwaGEg
YSAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9t
IGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSBhIC8gYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwog
ICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBh
bHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAKKyAgICAvLyBUZXN0aW5nIHdp
dGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgY2Fs
YyhsKSBjYWxjKGEpIGNhbGMoYikpYCwgYGxhYigyNSUgMjAgNTApYCk7CisgICAgdGVzdENvbXB1
dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYSkgY2FsYyhi
KSAvIGNhbGMoYWxwaGEpKWAsIGBsYWIoMjUlIDIwIDUwIC8gMC40KWApOworCiAgICAgLy8gVGVz
dGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUg
MjAgNTApIGwgMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVk
KGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIDEwIDEwJSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwpAQCAtMzU1LDExICs0MDcsMjggQEAKICAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3
MCUgNDUgMzAgLyA0MCUpIGwgYyAyNWRlZyAvIGFscGhhKWAsIGBsY2goNzAlIDQ1IDI1IC8gMC40
KWApOwogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgbCBj
IGggLyAuMjUpYCwgYGxjaCg3MCUgNDUgMzAgLyAwLjI1KWApOwogCi0gICAgLy8gVGVzdGluZyBw
ZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQgcGVyLXNwZWMsIHdlIGRpc2Fs
bG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhh
IGMgaCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChm
cm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBo
YSBjIGggLyBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsY2go
ZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgcmdiYSgwLCAw
LCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1hdGNo
KS4KKyAgICAvLyBOT1RFOiAnYycgaXMgYSB2YWlsZCBodWUsIGFzIGh1ZSBpcyA8YW5nbGU+fDxu
dW1iZXI+LgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEg
YyBoIC8gbClgLCBgbGNoKDEwMCUgNDUgMzAgLyAwLjcpYCk7CisgICAgdGVzdENvbXB1dGVkKGBs
Y2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGMgYyAvIGFscGhhKWAsIGBsY2goNzAlIDQ1IDQ1KWAp
OworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8g
YWxwaGEpYCwgYGxjaCgxMDAlIDQ1IDMwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20g
bGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBjIC8gYWxwaGEpYCwgYGxjaCgxMDAlIDQ1IDQ1KWApOwor
ICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYyBo
IC8gbClgLCBgbGNoKDQwJSA0NSAzMCAvIDAuNylgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChm
cm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBjIC8gYWxwaGEpYCwgYGxjaCg3MCUgNDUgNDUg
LyAwLjQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAl
KSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgbGNoKDQwJSA0NSAzMCAvIDAuNClgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgYyAvIGFscGhh
KWAsIGBsY2goNDAlIDQ1IDQ1IC8gMC40KWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlkIHBl
cm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJv
bSBsY2goNzAlIDQ1IDMwKSBoIGwgYyAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBjIGMgYyAvIGMpYCwgYHJn
YmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGggbCBjIC8gYWxw
aGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxj
aCg3MCUgNDUgMzAgLyA0MCUpIGMgYyBjIC8gYylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAg
IHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgYWxwaGEgYWxwaGEg
YWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAgLy8gVGVzdGluZyB3
aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGNh
bGMobCkgY2FsYyhjKSBjYWxjKGgpKWAsIGBsY2goNzAlIDQ1IDMwKWApOworICAgIHRlc3RDb21w
dXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgY2FsYyhsKSBjYWxjKGMpIGNhbGMo
aCkgLyBjYWxjKGFscGhhKSlgLCBgbGNoKDcwJSA0NSAzMCAvIDAuNClgKTsKIAogICAgIC8vIFRl
c3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAl
IDQ1IDMwKSBsIDEwJSBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0zNzMsNiArNDQyLDQ0
IEBACiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsaWdodG5lc3Mg
YyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSB4IGMgaClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21w
dXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBnIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClg
KTsKKworCisgICAgLy8gU3BlYyBleGFtcGxlczoKKyAgICAvLyBFeGFtcGxlIDExLgorICAgIHRl
c3RDb21wdXRlZChgcmdiKGZyb20gdmFyKC0tYmctY29sb3IpIHIgZyBiIC8gODAlKWAsIGByZ2Jh
KDAsIDAsIDI1NSwgMC44KWApOworICAgIAorICAgIC8vIEV4YW1wbGUgMTIuCisgICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSB2YXIoLS1jb2xvcikgY2FsYyhsIC8gMikgYyBoKWAsIGBsY2goMjMu
MTM4OTcxJSA2Ny45ODk3MTYgMTM0LjM5MTI1KWApOworICAgIAorICAgIC8vIEV4YW1wbGUgMTMu
CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSB2YXIoLS1jb2xvcikgY2FsYyhyICogLjMgKyBn
ICogLjU5ICsgYiAqIC4xMSkgY2FsYyhyICogLjMgKyBnICogLjU5ICsgYiAqIC4xMSkgY2FsYyhy
ICogLjMgKyBnICogLjU5ICsgYiAqIC4xMSkpYCwgYHJnYig3NiwgNzYsIDc2KWApCisgICAgdGVz
dENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1jb2xvcikgbCAwIGgpYCwgYGxjaCg0Ni4yNzc5NDMl
IDAgMTM0LjM5MTI1KWApCisKKyAgICAvLyBFeGFtcGxlIDE0LgorICAgIHRlc3RDb21wdXRlZChg
cmdiKGZyb20gaW5kaWFucmVkIDI1NSBnIGIpYCwgYHJnYigyNTUsIDkyLCA5MilgKTsKKworICAg
IC8vIEV4YW1wbGUgMTUuCisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSB2YXIoLS1hY2NlbnQp
IGNhbGMoaCArIDE4MGRlZykgcyBsKWAsIGByZ2IoMTc4LCAzMiwgNDApYCk7CisKKyAgICAvLyBF
eGFtcGxlIDE2LgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBh
IGIgLyAxMDAlKWAsIGBsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzKWApOworICAg
IHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyBjYWxjKGFscGhh
ICogMC44KSlgLCBgbGFiKDYyLjc1MTkyMyUgNTIuNDU4MDIgLTM0LjExNzI4MyAvIDAuOClgKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgYSBiIC8gY2FsYyhh
bHBoYSAtIDIwJSkpYCwgYGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAyIC0zNC4xMTcyODMgLyAwLjgp
YCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxNy4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9t
IHZhcigtLW15Y29sb3IpIGwgMCAwKWAsIGBsYWIoNjIuNzUxOTIzJSAwIDApYCk7CisKKyAgICAv
LyBFeGFtcGxlIDE4LgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gcGVydSBjYWxjKGwgKiAw
LjgpIGMgaClgLCBgbGNoKDQ5LjgwMTM4JSA1NC4wMDMyOTYgNjMuNjgwMzE3KWApOworCisgICAg
Ly8gRXhhbXBsZSAxOS4KKyAgICB0ZXN0Q29tcHV0ZWQoYExDSChmcm9tIHZhcigtLWFjY2VudCkg
bCBjIGNhbGMoaCArIDE4MGRlZykpYCwgYGxjaCg2NS40OTQ3MyUgMzkuNDQ2OTAzIDEwLjExNDQ3
MSlgKTsKKworICAgIC8vIEV4YW1wbGUgMjAuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2
YXIoLS1teWNvbG9yKSBsIDAgaClgLCBgbGNoKDYyLjc1MTkyMyUgMCAzMjYuOTYxMTIpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGB2YXIoLS1teWdyYXkpYCwgYGxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2
MTEyKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gdmFyKC0tbXlncmF5KSBsIDMwIGgp
YCwgYGxjaCg2Mi43NTE5MjMlIDMwIDMyNi45NjExMilgKTsKKyAgICAKIDwvc2NyaXB0PgogICAg
IAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430222</attachid>
            <date>2021-05-31 18:47:19 -0700</date>
            <delta_ts>2021-06-01 06:50:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226272-20210531184718.patch</filename>
            <type>text/plain</type>
            <size>92588</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBACisyMDIxLTA1LTMxICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGRlZCBuZXcgYW5kIHVwZGF0ZWQgdGVz
dCBjYXNlcyB0byBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1sLgor
CisgICAgICAgIFVwZGF0ZXMgc3VwcG9ydCBmb3IgdGhlIENTUyBDb2xvciA1ICJSZWxhdGl2ZSBD
b2xvciBTeW50YXgiIHRvIHN1cHBvcnQKKyAgICAgICAgYm90aCBjYWxjKCkgb24gY29tcG9uZW50
cyBhbmQgY29tcG9uZW50IHBlcm11dGF0aW9ucyB3aXRoaW4gdGhlIHN5bnRheC4KKworICAgICAg
ICBUaGlzIGFsbG93cyBmb3IgdGhpbmdzIGxpa2U6CisgICAgICAgIAorICAgICAgICAgICAgYmFj
a2dyb3VuZDogbGNoKGZyb20gdmFyKC0tcHJpbWFyeS1jb2xvcikgNjAlIGNhbGMoYyAqIDAuOCkg
aCk7CisKKyAgICAgICAgICAgIG9yCisKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IGxjaChmcm9t
IHJlYmVjY2FwdXJwbGUgZyBiIHIpOworCisgICAgICAgIFRvIG1ha2UgdGhpcyB3b3JrLCB0aGUg
Y2FsYygpIGluZnJhc3RydWN0dXJlIG5vdyBzdXBwb3J0cyBwYXNzaW5nIGEgQ1NTQ2FsY1N5bWJv
bFRhYmxlCisgICAgICAgIHdoaWNoIGFsbG93cyB0aGUgbG9naWMgaW4gdGhlIHBhcnNlciB0byBs
b29rdXAgdW5rbm93biBpZGVudGlmaWVycyB3aGVuIHBhcnNpbmcgYSB2YWx1ZS4KKyAgICAgICAg
VGhlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBwYXJzZXJzIGNhbiB0aGVuIGJ1aWxkIGFuIGFwcHJv
cHJpYXRlIENTU0NhbGNTeW1ib2xUYWJsZSBmaWxsZWQKKyAgICAgICAgd2l0aCB0aGUgY29tcG9u
ZW50cyBvZiB0aGUgb3JpZ2luIGNvbG9yLgorCisgICAgICAgIFNpbmNlIHRoZXNlIGNhbGMoKSB2
YWx1ZXMgYXJlIG5vdCBzZXJpYWxpemVkLCB0aGlzIGNhbiBhbGwgaGFwcGVuIGluIHRoZSBwYXJz
ZXIsIGJ1dCBpZgorICAgICAgICB3ZSB0byBiZSBhYmxlIHNlcmlhbGl6ZSB0aGVtIGluIHRoZSBm
dXR1cmUsIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUgY291bGQgYmUgdXBkYXRlZAorICAgICAg
ICB0byBzdG9yZSB0aGUgc3ltYm9sIG5hbWUgaW4gYWRkaXRpb24gdG8gc3RvcmluZyB0aGUgdmFs
dWUgYW5kIHR5cGUgKG9yIHdlIGNvdWxkIHdlIGNvdWxkCisgICAgICAgIGFkZCBhIG5ldyBub2Rl
IGZvciBpdCkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5bWJv
bFRhYmxlLmNwcDogQWRkZWQuCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxl
Lmg6IEFkZGVkLgorICAgICAgICBBZGQgQ1NTQ2FsY1N5bWJvbFRhYmxlIHdoaWNoIGNvbnRhaW5z
IGEgbWFwcGluZyBmcm9tIENTU1ZhbHVlSUQgdG8gQ1NTVW5pdFR5cGUvZG91YmxlIHBhaXJzLgor
CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZSk6
CisgICAgICAgIFdoZW4gdHJ5aW5nIHRvIGNvbnN0cnVjdCBhIHZhbHVlIG5vZGUsIGlmIHRoZSB0
b2tlbiBpcyBhIGlkZW50aWZpZXIsIHVzZSB0aGUgbmV3CisgICAgICAgIHN5bWJvbCB0YWJsZSB0
byBsb29rIHVwIGEgdHlwZS92YWx1ZSB0byB1c2UgaW5zdGVhZC4gVXNlIGEgc3dpdGNoIHRvIG1h
a2UgdGhpbmdzCisgICAgICAgIGEgYml0IG1vcmUgY2xlYXIgdGhhdCBkaWZmZXJlbnRpYXRpb24g
aXMgYmVpbmcgZG9uZSBiYXNlZCBvbiB0b2tlbiB0eXBlLgorCisgICAgICAgICogY3NzL2NhbGMv
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmg6CisgICAgICAgIEFkZCByZWZlcmVuY2UgdG8g
YSBDU1NDYWxjU3ltYm9sVGFibGUgdG8gdGhlIHBhcnNlci4gVGhlIHBhcnNlciBzaG91bGQgb25s
eSBldmVyIGJlIHVzZWQKKyAgICAgICAgb24gdGhlIHN0YWNrLCBzbyB0aGlzIHdvcmtzIHdlbGwg
YW5kIGFsbG93cyB1cyB0byBhdm9pZCBjb3B5aW5nIHRoZSB0YWJsZS4KKworICAgICAgICAqIGNz
cy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmg6CisgICAgICAgIFBh
c3MgdGhlIENTU0NhbGNTeW1ib2xUYWJsZSB0byB0aGUgcGFyc2VyIGlmIG9uZSBpcyBwcm92aWRl
ZC4gQW4gb3ZlcmxvYWQgd2FzIHVzZWQKKyAgICAgICAgdG8gYXZvaWQgI2luY2x1ZGluZyBDU1ND
YWxjU3ltYm9sVGFibGUuaCBpbiB0aGUgaGVhZGVyIGp1c3QgdG8gYWRkIGEgZGVmYXVsdCB2YWx1
ZS4KKworICAgICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICBHaXZlIGEgY29uY3Jl
dGUgYmFzZSBvZiB1aW50MTZfdCB0byBhbGxvdyBpdCB0byBiZSBmb3J3YXJkIGRlY2xhcmVkIGFu
ZCBhZGQgRGVmYXVsdEhhc2gKKyAgICAgICAgYW5kIEhhc2hUcmFpdHMgdG8gYWxsb3cgaXQgdG8g
YmUgdXNlZCB3aXRoIEhhc2hUYWJsZS4gVGhlc2UgbWF0Y2ggdGhlIGRlZmluaXRpb24gb2YKKyAg
ICAgICAgQ1NTUHJvcGVydHlJRC4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVs
cGVyczo6Q2FsY1BhcnNlcjo6Q2FsY1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXcpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lUGVyY2VudFdvcmtlclNhZmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5nbGVSYXcp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQW5n
bGVXb3JrZXJTYWZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVy
czo6Y29uc3VtZUFuZ2xlT3JQZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6Y29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3VtZUh1ZU9ySWRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTnVtYmVyT3JJ
ZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVQZXJjZW50T3JJZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmNvbnN1bWVOdW1iZXJPclBlcmNlbnRPcklkZW50Tm9ybWFsaXplZEZvclJlbGF0aXZl
UkdCKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VS
ZWxhdGl2ZVJHQlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZVJlbGF0aXZlSFNMUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VSZWxhdGl2
ZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpwYXJzZVJlbGF0aXZlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6OmV4dHJhY3RDaGFubmVsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpyZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICBSZXdvcmsgcmVsYXRpdmUgY29sb3Igc3lu
dGF4IHBhcnNpbmcgdG8gYWxsb3cgcGVybXV0YXRpb24gb2YgY2hhbm5lbCBzeW1ib2xzCisgICAg
ICAgIGFuZCB1c2Ugb2YgdGhlIGNhbGMoKSBzeW1ib2wgdGFibGUgc3VwcG9ydCB0byBhbGxvdyBw
YXNzaW5nIGluIHRoZSBjaGFubmVscy4KKyAgICAgICAgVGhpcyBtYWtlcyB0aGUgcmVsYXRhdGl2
ZSBjb2xvciBzeW50YXggdmFyaWFudHMgbXVjaCBjbG9zZXIgdG8gdGhlIG5vcm1hbAorICAgICAg
ICB2YXJpYW50cyAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHBhc3NpbmcgdGhlIHN5bWJvbCB0YWJs
ZSkgYW5kIGEgc3Vic2VxdWVudAorICAgICAgICBjaGFuZ2Ugd2lsbCBhdHRlbXB0IHRvIG1lcmdl
IHRoZW0gZnVydGhlci4KKwogMjAyMS0wNS0zMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjc4MjYxKTogQnJva2Ugd2luZG93cyBi
dWlsZCAtIGZvbGxvdy11cCBmaXgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzgyOTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODMxLDYg
KzgzMSw3IEBAIGNzcy9jYWxjL0NTU0NhbGNJbnZlcnROb2RlLmNwcAogY3NzL2NhbGMvQ1NTQ2Fs
Y05lZ2F0ZU5vZGUuY3BwCiBjc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKIGNzcy9j
YWxjL0NTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUuY3BwCitjc3MvY2FsYy9DU1NDYWxjU3ltYm9s
VGFibGUuY3BwCiBjc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCiBjc3MvcGFyc2VyL0NTU0F0UnVs
ZUlELmNwcAogY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNlci5jcHAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI3ODI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDA3Nyw2ICs0MDc3LDcgQEAKIAkJQkM2OTMyNzQwRDdF
MjkzOTAwQUU0NEQxIC8qIEpTRE9NV2luZG93QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2OTMyNzIwRDdFMjkzOTAwQUU0NEQxIC8qIEpTRE9N
V2luZG93QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDNkQ0NEVEMEMwN0YyRUQwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ0NEVCMEMw
N0YyRUQwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCAqLzsgfTsKIAkJQkM2RDZFMjYw
OUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxW
aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QkM3MDlERTAyNjYzMjNDRjAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3MDlEREUyNjYzMjNDRTAw
QjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oICovOyB9OwogCQlCQzc3MkIzQzBDNEVBOTFF
MDA4MzI4NUYgLyogQ1NTSGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDcw
QzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1M
SHR0cFJlcXVlc3QuaCAqLzsgfTsKIAkJQkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVU
eXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0MzA0LDYgKzE0
MzA1LDggQEAKIAkJQkM2RDQ0RUIwQzA3RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRW1iZWRFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1
OSAvKiBTY3JvbGxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jv
bGxWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkVCODQ1MjYyNjZCNjEw
MDMyMjVBNyAvKiBDb2xvckx1bWluYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckx1
bWluYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERFMjY2MzIz
Q0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ2Fs
Y1N5bWJvbFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzA5RERGMjY2
MzIzQ0UwMEI5QTIxQyAvKiBDU1NDYWxjU3ltYm9sVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM3NzJCMzYwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTSGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNzcyQzQ0MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1M
SHR0cFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBS
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzk1Niw2ICsyNzk1OSw4
IEBACiAJCQkJQkNGMTY0NUYyNjYyQTI4RDAwMDJGN0VGIC8qIENTU0NhbGNPcGVyYXRpb25Ob2Rl
LmggKi8sCiAJCQkJQkNGMTY0NTQyNjYyQTEyMjAwMDJGN0VGIC8qIENTU0NhbGNQcmltaXRpdmVW
YWx1ZU5vZGUuY3BwICovLAogCQkJCUJDRjE2NDUzMjY2MkExMjIwMDAyRjdFRiAvKiBDU1NDYWxj
UHJpbWl0aXZlVmFsdWVOb2RlLmggKi8sCisJCQkJQkM3MDlEREYyNjYzMjNDRTAwQjlBMjFDIC8q
IENTU0NhbGNTeW1ib2xUYWJsZS5jcHAgKi8sCisJCQkJQkM3MDlEREUyNjYzMjNDRTAwQjlBMjFD
IC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oICovLAogCQkJCTQ5QUUyRDhDMTM0RUU1MEMwMDcyOTIw
QSAvKiBDU1NDYWxjVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDhEMTM0RUU1MEMwMDcyOTIwQSAv
KiBDU1NDYWxjVmFsdWUuaCAqLywKIAkJCSk7CkBAIC0zNDY2OSw2ICszNDY3NCw3IEBACiAJCQkJ
MjY2MDFFQkYxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0FBNDg3MDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRC
RSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM3MDlERTAy
NjYzMjNDRjAwQjlBMjFDIC8qIENTU0NhbGNTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE1QkUxOTUxRDU0RjVGQjAwREQ3QzY4IC8qIFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzI2RDU2RTIyNTNBRTI4RDAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTJENzcwNUM3MjU1Mjc2Q0QwMDFEMEM5NCAvKiBQbGF0Zm9ybUlt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtl
dmFsdWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBs
CShyZXZpc2lvbiAyNzgyOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAko
d29ya2luZyBjb3B5KQpAQCAtMTY0LDYgKzE2NCw4IEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsK
IAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwNCw2ICsyMDYsMTIgQEAgaW5saW5lIENTU1ZhbHVl
SUQgY29udmVydFRvQ1NTVmFsdWVJRChpbgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
K25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6
Q1NTVmFsdWVJRD4gOiBJbnRIYXNoPHVuc2lnbmVkPiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlSUQ+IDogU3Ryb25nRW51bUhhc2hUcmFpdHM8V2Vi
Q29yZTo6Q1NTVmFsdWVJRD4geyB9OworfSAvLyBuYW1lc3BhY2UgV1RGCisKIEVPRgogY2xvc2Ug
SEVBREVSOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NT
U0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAJKHJldmlzaW9uIDI3ODI5MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NDYWxjTmVnYXRlTm9kZS5o
IgogI2luY2x1ZGUgIkNTU0NhbGNPcGVyYXRpb25Ob2RlLmgiCiAjaW5jbHVkZSAiQ1NTQ2FsY1By
aW1pdGl2ZVZhbHVlTm9kZS5oIgorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xUYWJsZS5oIgogI2lu
Y2x1ZGUgIkNTU0NhbGNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclRva2VuLmgiCiAjaW5j
bHVkZSAiQ1NTUGFyc2VyVG9rZW5SYW5nZS5oIgpAQCAtMTgwLDE5ICsxODEsMzUgQEAgYm9vbCBD
U1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlQwogCiBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIFJl
ZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiByZXN1bHQpCiB7Ci0gICAgLy8gRklYTUU6IEFk
ZCBjb2RlIGhlcmUgdG8gcGFyc2UgQ1NTVmFsaWRJRCBmb3IgbmFtZWQgY29uc3RhbnRzLgorICAg
IGF1dG8gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUgPSBbJl0gKENTU1VuaXRUeXBlIHR5
cGUsIGRvdWJsZSB2YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgIGlmIChjYWxjVW5pdENhdGVnb3J5
KHR5cGUpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVl
Tm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHR5cGUpKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsKIAotICAgIENTU1BhcnNlclRva2VuIHRva2VuID0g
dG9rZW5zLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7Ci0gICAgaWYgKCEodG9rZW4udHlw
ZSgpID09IE51bWJlclRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBQZXJjZW50YWdlVG9rZW4gfHwg
dG9rZW4udHlwZSgpID09IERpbWVuc2lvblRva2VuKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIGF1dG8gdHlwZSA9IHRva2VuLnVuaXRUeXBlKCk7Ci0gICAgaWYgKGNhbGNVbml0
Q2F0ZWdvcnkodHlwZSkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpCisgICAgYXV0byB0
b2tlbiA9IHRva2Vucy5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpOworCisgICAgc3dpdGNo
ICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIElkZW50VG9rZW46IHsKKyAgICAgICAgYXV0byB2
YWx1ZSA9IG1fc3ltYm9sVGFibGUuZ2V0KHRva2VuLmlkKCkpOworICAgICAgICBpZiAoIXZhbHVl
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbWFrZUNTU0NhbGNQ
cmltaXRpdmVWYWx1ZU5vZGUodmFsdWUtPnR5cGUsIHZhbHVlLT52YWx1ZSk7CisgICAgfQorCisg
ICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICBjYXNl
IERpbWVuc2lvblRva2VuOgorICAgICAgICByZXR1cm4gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1
ZU5vZGUodG9rZW4udW5pdFR5cGUoKSwgdG9rZW4ubnVtZXJpY1ZhbHVlKCkpOworCisgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlc3VsdCA9IENTU0NhbGNQ
cmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHRva2Vu
Lm51bWVyaWNWYWx1ZSgpLCB0eXBlKSk7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29s
IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjVmFsdWUoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgdG9rZW5zLCBpbnQgZGVwdGgsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
JiByZXN1bHQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1ND
YWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuaAkocmV2aXNpb24gMjc4MjkxKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDEzICszMiwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1ND
YWxjRXhwcmVzc2lvbk5vZGU7CitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGU7CiBjbGFzcyBDU1NQ
YXJzZXJUb2tlbjsKIGNsYXNzIENTU1BhcnNlclRva2VuUmFuZ2U7CiAKIGNsYXNzIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyKENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSkK
KyAgICBleHBsaWNpdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIoQ2FsY3VsYXRpb25DYXRl
Z29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJv
bFRhYmxlKQogICAgICAgICA6IG1fZGVzdGluYXRpb25DYXRlZ29yeShkZXN0aW5hdGlvbkNhdGVn
b3J5KQorICAgICAgICAsIG1fc3ltYm9sVGFibGUoc3ltYm9sVGFibGUpCiAgICAgewogICAgIH0K
IApAQCAtNTUsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VDYWxjVmFsdWUoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYsIGludCBkZXB0aCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9k
ZT4mKTsKIAogICAgIENhbGN1bGF0aW9uQ2F0ZWdvcnkgbV9kZXN0aW5hdGlvbkNhdGVnb3J5Owor
ICAgIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgbV9zeW1ib2xUYWJsZTsKIH07CiAKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1N5bWJvbFRhYmxlLmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjU3ltYm9sVGFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTQ2FsY1N5bWJvbFRhYmxlLmgiCisKKyNpbmNs
dWRlICJDU1NVbml0cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0NhbGNTeW1ib2xU
YWJsZTo6Q1NTQ2FsY1N5bWJvbFRhYmxlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnR1cGxl
PENTU1ZhbHVlSUQsIENTU1VuaXRUeXBlLCBkb3VibGU+PiBpbml0aWFsaXplcikKK3sKKyAgICBm
b3IgKGF1dG8mIFtpZGVudGlmaWVyLCB0eXBlLCB2YWx1ZV0gOiBpbml0aWFsaXplcikKKyAgICAg
ICAgbV90YWJsZS5hZGQoaWRlbnRpZmllciwgc3RkOjptYWtlX3BhaXIodHlwZSwgdmFsdWUpKTsK
K30KKworc3RkOjpvcHRpb25hbDxDU1NDYWxjU3ltYm9sVGFibGU6OlZhbHVlPiBDU1NDYWxjU3lt
Ym9sVGFibGU6OmdldChDU1NWYWx1ZUlEIHZhbHVlSUQpIGNvbnN0Cit7CisgICAgYXV0byBpdCA9
IG1fdGFibGUuZmluZCh2YWx1ZUlEKTsKKyAgICBpZiAoaXQgPT0gbV90YWJsZS5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBpdC0+dmFsdWUuZmly
c3QsIGl0LT52YWx1ZS5zZWNvbmQgfX07Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNTeW1ib2xUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQ1NTVW5pdFR5
cGUgOiB1aW50OF90OworCitjbGFzcyBDU1NDYWxjU3ltYm9sVGFibGUgeworcHVibGljOgorICAg
IHN0cnVjdCBWYWx1ZSB7CisgICAgICAgIENTU1VuaXRUeXBlIHR5cGU7CisgICAgICAgIGRvdWJs
ZSB2YWx1ZTsKKyAgICB9OworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlKCkgPSBkZWZhdWx0Owor
ICAgIENTU0NhbGNTeW1ib2xUYWJsZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjp0dXBsZTxD
U1NWYWx1ZUlELCBDU1NVbml0VHlwZSwgZG91YmxlPj4pOworCisgICAgc3RkOjpvcHRpb25hbDxW
YWx1ZT4gZ2V0KENTU1ZhbHVlSUQpIGNvbnN0OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8Q1NT
VmFsdWVJRCwgc3RkOjpwYWlyPENTU1VuaXRUeXBlLCBkb3VibGU+PiBtX3RhYmxlOworfTsKKwor
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAkocmV2aXNp
b24gMjc4MjkxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAzLDkgKzMwMyw5IEBAIHZvaWQgQ1NTQ2FsY1ZhbHVlOjpkdW1w
KFRleHRTdHJlYW0mIHRzKSAKICAgICB0cyA8PCAiKVxuIjsKIH0KIAotUmVmUHRyPENTU0NhbGNW
YWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9u
Q2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFuZ2UpCitSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxj
VmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBDU1NQYXJzZXJUb2tlblJh
bmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFs
dWVSYW5nZSByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsK
LSAgICBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIgcGFyc2VyKGRlc3RpbmF0aW9uQ2F0ZWdv
cnkpOworICAgIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXIoZGVzdGluYXRpb25D
YXRlZ29yeSwgc3ltYm9sVGFibGUpOwogICAgIGF1dG8gZXhwcmVzc2lvbiA9IHBhcnNlci5wYXJz
ZUNhbGModG9rZW5zLCBmdW5jdGlvbik7CiAgICAgaWYgKCFleHByZXNzaW9uKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTMxMyw3ICszMTMsMTIgQEAgUmVmUHRyPENTU0NhbGNWYWx1ZT4g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdAogICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwg
IkNTU0NhbGNWYWx1ZTo6Y3JlYXRlICIgPDwgKnJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KLSAgICAKKworUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NT
VmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgcmFuZ2UpCit7
CisgICAgcmV0dXJuIGNyZWF0ZShmdW5jdGlvbiwgdG9rZW5zLCBkZXN0aW5hdGlvbkNhdGVnb3J5
LCByYW5nZSwgeyB9KTsKK30KKwogUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpj
cmVhdGUoY29uc3QgQ2FsY3VsYXRpb25WYWx1ZSYgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSkKIHsKICAgICBhdXRvIGV4cHJlc3Npb24gPSBjcmVhdGVDU1ModmFsdWUuZXhwcmVzc2lv
bigpLCBzdHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuaAko
cmV2aXNpb24gMjc4MjkxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlOworY2xhc3MgQ1NTQ2FsY1N5bWJvbFRhYmxl
OwogY2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGE7CiBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTQ5LDYgKzUwLDcgQEAgZW51bSBjbGFzcyBW
YWx1ZVJhbmdlIDogdWludDhfdDsKIAogY2xhc3MgQ1NTQ2FsY1ZhbHVlIGZpbmFsIDogcHVibGlj
IENTU1ZhbHVlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNWYWx1ZT4gY3Jl
YXRlKENTU1ZhbHVlSUQgZnVuY3Rpb24sIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmLCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UsIGNvbnN0IENT
U0NhbGNTeW1ib2xUYWJsZSYpOwogICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVh
dGUoQ1NTVmFsdWVJRCBmdW5jdGlvbiwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENhbGN1
bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSwgVmFsdWVSYW5nZSk7CiAgICAgc3Rh
dGljIFJlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0ZShjb25zdCBDYWxjdWxhdGlvblZhbHVlJiwg
Y29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB+Q1NTQ2FsY1ZhbHVlKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwCShyZXZpc2lvbiAyNzgyOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
aCIKIAorI2luY2x1ZGUgIkNTU0NhbGNTeW1ib2xUYWJsZS5oIgogI2luY2x1ZGUgIkNTU0NhbGNW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU0NhbnZhc1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQ3Jvc3Nm
YWRlVmFsdWUuaCIKQEAgLTk5LDcgKzEwMCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJs
ZT4gY29uc3VtZU51bWIKIC8vIEZJWE1FOiBjb25zaWRlciBwdWxsaW5nIGluIHRoZSBwYXJzaW5n
IGxvZ2ljIGZyb20gQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLgogY2xhc3MgQ2FsY1BhcnNl
ciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ2FsY1BhcnNlcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5LCBWYWx1ZVJh
bmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwsIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQ
b29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSkKKyAgICBleHBsaWNpdCBDYWxjUGFyc2Vy
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0
aW9uQ2F0ZWdvcnksIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCwgY29u
c3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9IHsgfSwgQ1NTVmFsdWVQb29sJiBj
c3NWYWx1ZVBvb2wgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpKQogICAgICAgICA6IG1fc291
cmNlUmFuZ2UocmFuZ2UpCiAgICAgICAgICwgbV9yYW5nZShyYW5nZSkKICAgICAgICAgLCBtX3Zh
bHVlUG9vbChjc3NWYWx1ZVBvb2wpCkBAIC0xMDcsNyArMTA4LDcgQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgICAgIGF1
dG8gZnVuY3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsKICAgICAgICAgaWYgKENTU0NhbGNW
YWx1ZTo6aXNDYWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCi0gICAgICAgICAgICBtX2NhbGNWYWx1
ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5jdGlvbihtX3Jh
bmdlKSwgZGVzdGluYXRpb25DYXRlZ29yeSwgdmFsdWVSYW5nZSk7CisgICAgICAgICAgICBtX2Nh
bGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5jdGlv
bihtX3JhbmdlKSwgZGVzdGluYXRpb25DYXRlZ29yeSwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUp
OwogICAgIH0KIAogICAgIGNvbnN0IENTU0NhbGNWYWx1ZSogdmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX2NhbGNWYWx1ZS5nZXQoKTsgfQpAQCAtMTIwLDYgKzEyMSwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShXVEZNb3ZlKG1fY2FsY1ZhbHVlKSk7
CiAgICAgfQogCisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVmFsdWVJZkNh
dGVnb3J5KENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCisgICAgeworICAgICAgICBpZiAo
IW1fY2FsY1ZhbHVlIHx8IG1fY2FsY1ZhbHVlLT5jYXRlZ29yeSgpICE9IGNhdGVnb3J5KQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fc291cmNlUmFuZ2UgPSBtX3Jhbmdl
OworICAgICAgICByZXR1cm4gbV92YWx1ZVBvb2wuY3JlYXRlVmFsdWUoV1RGTW92ZShtX2NhbGNW
YWx1ZSkpOworICAgIH0KKwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUlu
dGVnZXIoZG91YmxlIG1pbmltdW1WYWx1ZSkKICAgICB7CiAgICAgICAgIGlmICghbV9jYWxjVmFs
dWUpCkBAIC0yMTgsMTEgKzIyNyw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEludFR5cGU+IHN0ZDo6
b3B0aW9uYWwKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENhbGNQYXJzZXIg
Y2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKTsKLSAgICBpZiAo
Y29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewot
ICAgICAgICBpZiAoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCkgIT0gQ2FsY3VsYXRpb25DYXRlZ29y
eTo6TnVtYmVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoYXV0
byBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKTsgY2FsY3VsYXRpb24gJiYgY2FsY3Vs
YXRpb24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKQogICAgICAg
ICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lSW50ZWdlclR5cGVSYXc8SW50VHlwZT4obWluaW11
bVZhbHVlKTsKLSAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQpAQCAtMjczLDEx
ICsyNzksNyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVOdW1iZXIoCiAgICAg
Y29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygpOwogICAgIGlmICh0b2tl
bi50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewogICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJz
ZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgdmFsdWVSYW5nZSk7Ci0gICAg
ICAgIGlmIChjb25zdCBhdXRvKiBjYWxjVmFsdWUgPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAg
ICAgICAgICAgIGlmIChjYWxjVmFsdWUtPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29y
eTo6TnVtYmVyKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1
ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
Y2FsY1BhcnNlci5jb25zdW1lVmFsdWVJZkNhdGVnb3J5KENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51
bWJlcik7CiAgICAgfQogCiAgICAgaWYgKGF1dG8gbnVtYmVyID0gY29uc3VtZU51bWJlclJhdyhy
YW5nZSwgdmFsdWVSYW5nZSkpCkBAIC0zOTksOCArNDAxLDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBjb25zdW1lTGVuZ3RoKAogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9
IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsK
ICAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpMZW5ndGgsIHZhbHVlUmFuZ2UpOwotICAgICAgICBpZiAoY2FsY1BhcnNlci52YWx1ZSgpICYm
IGNhbGNQYXJzZXIudmFsdWUoKS0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpM
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlSWZDYXRlZ29yeShDYWxjdWxhdGlv
bkNhdGVnb3J5OjpMZW5ndGgpOwogICAgIH0KIAogICAgIGlmIChhdXRvIHJlc3VsdCA9IGNvbnN1
bWVMZW5ndGhSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUsIHZhbHVlUmFuZ2UsIHVuaXRsZXNzKSkK
QEAgLTQzNCwxMiArNDM1LDggQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lUGVy
Y2VudAogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsK
ICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1Bh
cnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1
ZVJhbmdlLCBjc3NWYWx1ZVBvb2wpOwotICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBj
YWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbGN1
bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihy
YW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSwgeyB9LCBjc3NW
YWx1ZVBvb2wpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWVJZkNhdGVn
b3J5KENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpOwogICAgIH0KIAogICAgIGlmIChhdXRv
IHBlcmNlbnQgPSBjb25zdW1lUGVyY2VudFJhdyhyYW5nZSwgdmFsdWVSYW5nZSkpCkBAIC00ODAs
MTAgKzQ3Nyw4IEBAIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoT3JQZXJjZW50UmF3PiBjb25zdW0KICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihy
YW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoLCB2YWx1ZVJhbmdlKTsKLSAgICBpZiAo
Y29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewot
ICAgICAgICBpZiAoY2FuQ29uc3VtZUNhbGNWYWx1ZShjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSwg
Y3NzUGFyc2VyTW9kZSkpCi0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lTGVu
Z3RoT3JQZXJjZW50UmF3KCk7Ci0gICAgfQorICAgIGlmIChhdXRvIGNhbGN1bGF0aW9uID0gY2Fs
Y1BhcnNlci52YWx1ZSgpOyBjYWxjdWxhdGlvbiAmJiBjYW5Db25zdW1lQ2FsY1ZhbHVlKGNhbGN1
bGF0aW9uLT5jYXRlZ29yeSgpLCBjc3NQYXJzZXJNb2RlKSkKKyAgICAgICAgcmV0dXJuIGNhbGNQ
YXJzZXIuY29uc3VtZUxlbmd0aE9yUGVyY2VudFJhdygpOwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKQEAgLTQ5MiwxMCArNDg3LDggQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lTGVuZ3RoTwogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBl
ZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAgICAgICAg
Q2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGgs
IHZhbHVlUmFuZ2UpOwotICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlv
biA9IGNhbGNQYXJzZXIudmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbkNvbnN1bWVDYWxj
VmFsdWUoY2FsY3VsYXRpb24tPmNhdGVnb3J5KCksIGNzc1BhcnNlck1vZGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwotICAgICAgICB9CisgICAg
ICAgIGlmIChhdXRvIGNhbGN1bGF0aW9uID0gY2FsY1BhcnNlci52YWx1ZSgpOyBjYWxjdWxhdGlv
biAmJiBjYW5Db25zdW1lQ2FsY1ZhbHVlKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpLCBjc3NQYXJz
ZXJNb2RlKSkKKyAgICAgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTU0NCwxMiArNTM3LDggQEAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGVXbwogewogICAgIGNvbnN0IENTU1Bh
cnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09
IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgQ2FsY1BhcnNlciBjYWxjUGFyc2VyKHJhbmdlLCBD
YWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgVmFsdWVSYW5nZTo6QWxsLCBjc3NWYWx1ZVBvb2wp
OwotICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IGNhbGNQYXJz
ZXIudmFsdWUoKSkgewotICAgICAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09
IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxj
UGFyc2VyLmNvbnN1bWVWYWx1ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICBDYWxjUGFyc2VyIGNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdv
cnk6OkFuZ2xlLCBWYWx1ZVJhbmdlOjpBbGwsIHsgfSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAg
cmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVlSWZDYXRlZ29yeShDYWxjdWxhdGlvbkNhdGVn
b3J5OjpBbmdsZSk7CiAgICAgfQogCiAgICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVS
YXcocmFuZ2UsIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQpAQCAtNTYx
LDcgKzU1MCw4IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xlV28KIHN0
YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVBbmdsZU9yUGVyY2VudChDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBWYWx1
ZVJhbmdlIHZhbHVlUmFuZ2UsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1
aXJrIHVuaXRsZXNzWmVybykKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBy
YW5nZS5wZWVrKCk7Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewor
ICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKICAg
ICAgICAgc3dpdGNoICh0b2tlbi51bml0VHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19ERUc6CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6CkBAIC01Njks
MjkgKzU1OSwzOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lCiAg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOgogICAgICAgICAgICAgcmV0dXJuIENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGlu
Z1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSwgdG9rZW4udW5pdFR5cGUoKSk7CiAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgfQotICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4g
JiYgc2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFy
c2VyTW9kZSwgdW5pdGxlc3MsIHVuaXRsZXNzWmVybykpCi0gICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0
ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCksIENTU1VuaXRUeXBlOjpDU1NfREVHKTsKKyAgICAgICAg
YnJlYWs7CisgICAgCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgaWYgKHNob3VsZEFj
Y2VwdFVuaXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVu
aXRsZXNzLCB1bml0bGVzc1plcm8pKQorICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2Uo
KS5udW1lcmljVmFsdWUoKSwgQ1NTVW5pdFR5cGU6OkNTU19ERUcpOworICAgICAgICBicmVhazsK
IAotICAgIGlmICh0b2tlbi50eXBlKCkgPT0gUGVyY2VudGFnZVRva2VuKQorICAgIGNhc2UgUGVy
Y2VudGFnZVRva2VuOgogICAgICAgICByZXR1cm4gY29uc3VtZVBlcmNlbnQocmFuZ2UsIHZhbHVl
UmFuZ2UpOwogCi0gICAgIGlmICh0b2tlbi50eXBlKCkgIT0gRnVuY3Rpb25Ub2tlbikKLSAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogeworICAgICAgICBD
YWxjUGFyc2VyIGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5n
bGUsIHZhbHVlUmFuZ2UpOworICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxh
dGlvbiA9IGFuZ2xlQ2FsY1BhcnNlci52YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoY2FsY3Vs
YXRpb24tPmNhdGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGFuZ2xlQ2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKKyAgICAgICAg
fQogCi0gICAgQ2FsY1BhcnNlciBhbmdsZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0
ZWdvcnk6OkFuZ2xlLCB2YWx1ZVJhbmdlKTsKLSAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBj
YWxjdWxhdGlvbiA9IGFuZ2xlQ2FsY1BhcnNlci52YWx1ZSgpKSB7Ci0gICAgICAgIGlmIChjYWxj
dWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSkKLSAgICAg
ICAgICAgIHJldHVybiBhbmdsZUNhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgICAgIENh
bGNQYXJzZXIgcGVyY2VudENhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBl
cmNlbnQsIHZhbHVlUmFuZ2UpOworICAgICAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxj
dWxhdGlvbiA9IHBlcmNlbnRDYWxjUGFyc2VyLnZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmIChj
YWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50KQor
ICAgICAgICAgICAgICAgIHJldHVybiBwZXJjZW50Q2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsK
KyAgICAgICAgfQorICAgIAorICAgICAgICBicmVhazsKICAgICB9Ci0KLSAgICBDYWxjUGFyc2Vy
IHBlcmNlbnRDYWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2
YWx1ZVJhbmdlKTsKLSAgICBpZiAoY29uc3QgQ1NTQ2FsY1ZhbHVlKiBjYWxjdWxhdGlvbiA9IHBl
cmNlbnRDYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAgICAgICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRl
Z29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQpCi0gICAgICAgICAgICByZXR1
cm4gcGVyY2VudENhbGNQYXJzZXIuY29uc3VtZVZhbHVlKCk7CisgICAgCisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTYx
NCwxMSArNjEzLDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVGltZShDUwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENhbGNQYXJzZXIgY2FsY1BhcnNlcihyYW5n
ZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6VGltZSwgdmFsdWVSYW5nZSk7Ci0gICAgaWYgKGNvbnN0
IENTU0NhbGNWYWx1ZSogY2FsY3VsYXRpb24gPSBjYWxjUGFyc2VyLnZhbHVlKCkpIHsKLSAgICAg
ICAgaWYgKGNhbGN1bGF0aW9uLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlRp
bWUpCi0gICAgICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lVmFsdWUoKTsKLSAgICB9
Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNhbGNQYXJzZXIuY29uc3VtZVZhbHVl
SWZDYXRlZ29yeShDYWxjdWxhdGlvbkNhdGVnb3J5OjpUaW1lKTsKIH0KIAogUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBjb25zdW1lUmVzb2x1dGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSwgQWxsb3dYUmVzb2x1dGlvblVuaXQgYWxsb3dYKQpAQCAtNzQ0LDE5ICs3MzksNjcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lT3B0aQogICAgICAgICByZXR1cm4gMS4w
OwogCiAgICAgaWYgKGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1lTnVtYmVyT3JQZXJjZW50
RGl2aWRlZEJ5MTAwUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGNsYW1wVG8oKmFscGhhUGFy
YW1ldGVyLCAwLjAsIDEuMCk7CisgICAgICAgIHJldHVybiBzdGQ6OmNsYW1wKCphbHBoYVBhcmFt
ZXRlciwgMC4wLCAxLjApOwogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdGVtcGxh
dGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJp
YW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudChDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29u
c3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25z
dCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlKQogewotICAgIGlmIChhdXRvIGFscGhh
ID0gY29uc3VtZU9wdGlvbmFsQWxwaGEocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqYWxwaGEg
fTsKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2UpKQorICAg
ICAgICByZXR1cm4gMS4wOworCisgICAgYXV0byBub3JtYWxpemVQZXJjZW50ID0gW10oZG91Ymxl
IHBlcmNlbnQpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6Y2xhbXAocGVyY2VudCAvIDEwMC4wLCAw
LjAsIDEuMCk7CisgICAgfTsKKworICAgIGF1dG8gbm9ybWFsaXplTnVtYmVyID0gW10oZG91Ymxl
IGFscGhhKSB7CisgICAgICAgIHJldHVybiBzdGQ6OmNsYW1wKGFscGhhLCAwLjAsIDEuMCk7Cisg
ICAgfTsKKworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsK
KworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7
CisgICAgICAgIENhbGNQYXJzZXIgcGVyY2VudGFnZUNhbGNQYXJzZXIocmFuZ2UsIENhbGN1bGF0
aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAg
ICAgICBpZiAoYXV0byBwZXJjZW50ID0gcGVyY2VudGFnZUNhbGNQYXJzZXIuY29uc3VtZVBlcmNl
bnRSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50KCpwZXJjZW50KTsK
KyAgICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNlcihyYW5nZSwgQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5bWJvbFRhYmxlKTsK
KyAgICAgICAgaWYgKGF1dG8gbnVtYmVyID0gbnVtYmVyQ2FsY1BhcnNlci5jb25zdW1lTnVtYmVy
UmF3KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKCpudW1iZXIpOwogCi0g
ICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFu
Z2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0
ZDo6aXNpbmYodG9rZW4ubnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUlu
Y2x1ZGluZ1doaXRlc3BhY2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRv
a2VuOgorICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRp
bmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgor
ICAgICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1l
SW5jbHVkaW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlh
YmxlLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFH
RToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFs
dWUpOworCisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAg
ICAgICAgICAgIHJldHVybiBub3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAg
LTc2OCwxNCArODExLDU5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1
ZSgKICAgICByZXR1cm4gY29uc3VtZU51bWJlclJhdyhyYW5nZSk7CiB9CiAKLXRlbXBsYXRlPENT
U1ZhbHVlSUQuLi4gYWxsb3dlZElkZW50cz4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxk
b3VibGUsIENTU1ZhbHVlSUQ+PiBjb25zdW1lSHVlT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gY29uc3VtZUh1ZU9ySWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUpCiB7Ci0gICAgaWYgKGF1
dG8gaHVlID0gY29uc3VtZUh1ZShyYW5nZSwgY29udGV4dCkpCi0gICAgICAgIHJldHVybiB7ICpo
dWUgfTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisK
KyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjogewor
ICAgICAgICBDYWxjUGFyc2VyIGFuZ2xlQ2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRl
Z29yeTo6QW5nbGUsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICBpZiAo
YXV0byBhbmdsZSA9IGFuZ2xlQ2FsY1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKSkKKyAgICAgICAg
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMoYW5nbGUtPnR5cGUs
IGFuZ2xlLT52YWx1ZSk7CisgICAgICAgIAorICAgICAgICBDYWxjUGFyc2VyIG51bWJlckNhbGNQ
YXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwgVmFsdWVSYW5nZTo6QWxs
LCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBudW1iZXJDYWxjUGFyc2VyLmNvbnN1bWVO
dW1iZXJSYXcoKTsKKyAgICB9CisgICAgCisgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjogeworICAg
ICAgICBhdXRvIHVuaXRUeXBlID0gdG9rZW4udW5pdFR5cGUoKTsKKyAgICAgICAgc3dpdGNoICh1
bml0VHlwZSkgeworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOgorICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
R1JBRDoKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46CisgICAgICAgICAgICBy
ZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKHVuaXRUeXBlLCByYW5nZS5j
b25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgY2FzZSBOdW1iZXJUb2tlbjoKKyAgICAgICAgcmV0dXJuIHJhbmdlLmNvbnN1
bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCk7CisKKyAgICBjYXNlIElkZW50
VG9rZW46CisgICAgICAgIGlmIChhdXRvIHZhcmlhYmxlID0gc3ltYm9sVGFibGUuZ2V0KHJhbmdl
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSkpIHsKKyAgICAgICAgICAgIHN3aXRj
aCAodmFyaWFibGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
RUc6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOgorICAgICAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVFVSTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNv
bXB1dGVEZWdyZWVzKHZhcmlhYmxlLT50eXBlLCB2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVy
biB2YXJpYWJsZS0+dmFsdWU7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRl
bnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRlbnQg
fTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KIAor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
QEAgLTc4NCw2NSArODcyLDEzMSBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZUh1ZShkb3VibGUg
aHVlKQogICAgIHJldHVybiBzdGQ6OmZtb2Qoc3RkOjpmbW9kKGh1ZSwgMzYwLjApICsgMzYwLjAs
IDM2MC4wKTsKIH0KIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2VkSWRlbnRzPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+IGNvbnN1bWVOdW1i
ZXJPcklkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyT3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICBpZiAoYXV0
byBudW1iZXIgPSBjb25zdW1lTnVtYmVyUmF3KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKm51
bWJlciB9OworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsK
IAotICAgIGlmIChhdXRvIGlkZW50ID0gY29uc3VtZUlkZW50UmF3PGFsbG93ZWRJZGVudHMuLi4+
KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIHsgKmlkZW50IH07CisgICAgc3dpdGNoICh0b2tlbi50
eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICAgICAgQ2FsY1BhcnNlciBj
YWxjUGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIFZhbHVlUmFuZ2U6
OkFsbCwgc3ltYm9sVGFibGUpOworICAgICAgICByZXR1cm4gY2FsY1BhcnNlci5jb25zdW1lTnVt
YmVyUmF3KCk7CisgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KKyAgICBjYXNl
IE51bWJlclRva2VuOgorICAgICAgICByZXR1cm4gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5udW1lcmljVmFsdWUoKTsKIAotdGVtcGxhdGU8Q1NTVmFsdWVJRC4uLiBhbGxvd2Vk
SWRlbnRzPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgQ1NTVmFsdWVJRD4+
IGNvbnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKLXsKLSAg
ICBpZiAoYXV0byBwZXJjZW50ID0gY29uc3VtZVBlcmNlbnRSYXcocmFuZ2UpKQotICAgICAgICBy
ZXR1cm4geyAqcGVyY2VudCB9OworICAgIGNhc2UgSWRlbnRUb2tlbjoKKyAgICAgICAgaWYgKGF1
dG8gdmFyaWFibGUgPSBzeW1ib2xUYWJsZS5nZXQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5pZCgpKSkgeworICAgICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+dHlwZSkgewor
ICAgICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdmFyaWFibGUtPnZhbHVlOwogCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1l
SWRlbnRSYXc8YWxsb3dlZElkZW50cy4uLj4ocmFuZ2UpKQotICAgICAgICByZXR1cm4geyAqaWRl
bnQgfTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogfQogCi10ZW1wbGF0ZTxDU1NWYWx1ZUlEIEMxLCBDU1NWYWx1ZUlEIEMyLCBDU1NWYWx1ZUlE
IEMzLCBDU1NWYWx1ZUlEIEFscGhhQ2hhbm5lbCwgdHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMg
YXV0byBleHRyYWN0Q2hhbm5lbFZhbHVlKENTU1ZhbHVlSUQgY2hhbm5lbCwgY29uc3QgQ29sb3JU
eXBlJiBvcmlnaW5Db2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlCitz
dGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50T3JJZGVudChDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJs
ZSkKIHsKLSAgICBhdXRvIGNvbXBvbmVudHMgPSBhc0NvbG9yQ29tcG9uZW50cyhvcmlnaW5Db2xv
cik7Ci0gICAgc3dpdGNoIChjaGFubmVsKSB7Ci0gICAgY2FzZSBDMToKLSAgICAgICAgcmV0dXJu
IGNvbXBvbmVudHNbMF07Ci0gICAgY2FzZSBDMjoKLSAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNb
MV07Ci0gICAgY2FzZSBDMzoKLSAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNbMl07Ci0gICAgY2Fz
ZSBBbHBoYUNoYW5uZWw6Ci0gICAgICAgIHJldHVybiBjb21wb25lbnRzWzNdOworICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9r
ZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJz
ZXIgY2FsY1BhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCwgVmFsdWVS
YW5nZTo6QWxsLCBzeW1ib2xUYWJsZSk7CisgICAgICAgIHJldHVybiBjYWxjUGFyc2VyLmNvbnN1
bWVQZXJjZW50UmF3KCk7CisgICAgfQorCisgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CisgICAg
ICAgIGlmIChzdGQ6OmlzaW5mKHRva2VuLm51bWVyaWNWYWx1ZSgpKSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiByYW5nZS5jb25zdW1lSW5jbHVkaW5n
V2hpdGVzcGFjZSgpLm51bWVyaWNWYWx1ZSgpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAg
ICAgICBpZiAoYXV0byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5j
bHVkaW5nV2hpdGVzcGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxl
LT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToK
KyAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGUtPnZhbHVlOworCisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLXRlbXBsYXRlPENTU1ZhbHVlSUQgQzEs
IENTU1ZhbHVlSUQgQzIsIENTU1ZhbHVlSUQgQzMsIENTU1ZhbHVlSUQgQWxwaGFDaGFubmVsLCB0
eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIFZhbHVlVHJhbnNmb3JtZXI+IHN0YXRpYyBkZWNs
dHlwZShhdXRvKSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWwoY29uc3QgVmFyaWFudDxkb3Vi
bGUsIENTU1ZhbHVlSUQ+JiBwYXJzZWRDaGFubmVsLCBjb25zdCBDb2xvclR5cGUmIG9yaWdpbkNv
bG9yLCBWYWx1ZVRyYW5zZm9ybWVyJiYgdmFsdWVUcmFuc2Zvcm1lcikKK2VudW0gY2xhc3MgUkdC
Q29tcG9uZW50VHlwZSB7IE51bWJlciwgUGVyY2VudGFnZSB9OworCitzdGF0aWMgc3RkOjpvcHRp
b25hbDx1aW50OF90PiBjb25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6ZWRGb3JS
ZWxhdGl2ZVJHQihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJv
bFRhYmxlJiBzeW1ib2xUYWJsZSkKIHsKLSAgICByZXR1cm4gc3dpdGNoT24ocGFyc2VkQ2hhbm5l
bCwKLSAgICAgICAgWyZdIChkb3VibGUgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVybiB2YWx1
ZVRyYW5zZm9ybWVyKHZhbHVlKTsKLSAgICAgICAgfSwKLSAgICAgICAgWyZdIChDU1NWYWx1ZUlE
IGNoYW5uZWwpIHsKLSAgICAgICAgICAgIHJldHVybiBleHRyYWN0Q2hhbm5lbFZhbHVlPEMxLCBD
MiwgQzMsIEFscGhhQ2hhbm5lbD4oY2hhbm5lbCwgb3JpZ2luQ29sb3IpOworICAgIGF1dG8gbm9y
bWFsaXplUGVyY2VudCA9IFtdKGRvdWJsZSBwZXJjZW50KSB7CisgICAgICAgIHJldHVybiBjb252
ZXJ0UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JHQkFCeXRlKHBlcmNlbnQgLyAxMDAuMCAqIDI1NS4w
KTsKKyAgICB9OworCisgICAgYXV0byBub3JtYWxpemVOdW1iZXIgPSBbXShkb3VibGUgbnVtYmVy
KSB7CisgICAgICAgIHJldHVybiBjb252ZXJ0UHJlc2NhbGVkU1JHQkFGbG9hdFRvU1JHQkFCeXRl
KG51bWJlcik7CisgICAgfTsKKworICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJh
bmdlLnBlZWsoKTsKKworICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CisgICAgY2FzZSBGdW5j
dGlvblRva2VuOiB7CisgICAgICAgIENhbGNQYXJzZXIgcGVyY2VudGFnZUNhbGNQYXJzZXIocmFu
Z2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIFZhbHVlUmFuZ2U6OkFsbCwgc3ltYm9s
VGFibGUpOworICAgICAgICBpZiAoYXV0byBwZXJjZW50ID0gcGVyY2VudGFnZUNhbGNQYXJzZXIu
Y29uc3VtZVBlcmNlbnRSYXcoKSkKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVQZXJjZW50
KCpwZXJjZW50KTsKKyAgICAgICAgCisgICAgICAgIENhbGNQYXJzZXIgbnVtYmVyQ2FsY1BhcnNl
cihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBWYWx1ZVJhbmdlOjpBbGwsIHN5
bWJvbFRhYmxlKTsKKyAgICAgICAgaWYgKGF1dG8gbnVtYmVyID0gbnVtYmVyQ2FsY1BhcnNlci5j
b25zdW1lTnVtYmVyUmF3KCkpCisgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTnVtYmVyKCpu
dW1iZXIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICBjYXNlIFBlcmNlbnRhZ2VUb2tlbjoKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYodG9rZW4u
bnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAg
ICAgcmV0dXJuIG5vcm1hbGl6ZVBlcmNlbnQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3Bh
Y2UoKS5udW1lcmljVmFsdWUoKSk7CisKKyAgICBjYXNlIE51bWJlclRva2VuOgorICAgICAgICBy
ZXR1cm4gbm9ybWFsaXplTnVtYmVyKHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCku
bnVtZXJpY1ZhbHVlKCkpOworCisgICAgY2FzZSBJZGVudFRva2VuOgorICAgICAgICBpZiAoYXV0
byB2YXJpYWJsZSA9IHN5bWJvbFRhYmxlLmdldChyYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVz
cGFjZSgpLmlkKCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT50eXBlKSB7Cisg
ICAgICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbm9ybWFsaXplUGVyY2VudCh2YXJpYWJsZS0+dmFsdWUpOworCisgICAgICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVy
biBub3JtYWxpemVOdW1iZXIodmFyaWFibGUtPnZhbHVlKTsKKworICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgKTsKLX0KKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotdGVt
cGxhdGU8Q1NTVmFsdWVJRCBDMSwgQ1NTVmFsdWVJRCBDMiwgQ1NTVmFsdWVJRCBDMywgQ1NTVmFs
dWVJRCBBbHBoYUNoYW5uZWwsIHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGRlY2x0eXBlKGF1
dG8pIHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbChjb25zdCBWYXJpYW50PGRvdWJsZSwgQ1NT
VmFsdWVJRD4mIHBhcnNlZENoYW5uZWwsIGNvbnN0IENvbG9yVHlwZSYgb3JpZ2luQ29sb3IpCi17
Ci0gICAgcmV0dXJuIHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDMSwgQzIsIEMzLCBBbHBo
YUNoYW5uZWw+KHBhcnNlZENoYW5uZWwsIG9yaWdpbkNvbG9yLCBbXShhdXRvIHZhbHVlKSB7IHJl
dHVybiB2YWx1ZTsgfSk7Ci19CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9CiAKLWVudW0gY2xhc3MgUkdCQ29tcG9uZW50VHlwZSB7IE51bWJlciwgUGVy
Y2VudGFnZSB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Cit9CiAKIHN0YXRpYyB1aW50OF90IGNsYW1wUkdCQ29tcG9uZW50KGRvdWJsZSB2YWx1
ZSwgUkdCQ29tcG9uZW50VHlwZSBjb21wb25lbnRUeXBlKQogewpAQCAtOTIyLDUyICsxMDc2LDM3
IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlUkdCUGFyYW1ldGVycygKICAgICBpZiAoIW9y
aWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHN0ZDo6b3B0
aW9uYWw8UkdCQ29tcG9uZW50VHlwZT4gY29tcG9uZW50VHlwZTsKLSAgICBhdXRvIHJlZFJlc3Vs
dCA9IGNvbnN1bWVSZWxhdGl2ZVJHQkNvbXBvbmVudDxDU1NWYWx1ZVI+KGFyZ3MsIGNvbXBvbmVu
dFR5cGUpOwotICAgIGlmICghcmVkUmVzdWx0KQorICAgIGF1dG8gb3JpZ2luQ29sb3JBc1NSR0Ig
PSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PFNSR0JBPGZsb2F0Pj4oKTsKKworICAgIENT
U0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAgIHsgQ1NTVmFsdWVSLCBDU1NV
bml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNTUkdCLnJlZCAqIDEwMC4wIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVHLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdp
bkNvbG9yQXNTUkdCLmdyZWVuICogMTAwLjAgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIsIENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc1NSR0IuYmx1ZSAqIDEwMC4wIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBv
cmlnaW5Db2xvckFzU1JHQi5hbHBoYSAqIDEwMC4wIH0KKyAgICB9OworCisgICAgYXV0byByZWQg
PSBjb25zdW1lTnVtYmVyT3JQZXJjZW50T3JJZGVudE5vcm1hbGl6ZWRGb3JSZWxhdGl2ZVJHQihh
cmdzLCBzeW1ib2xUYWJsZSk7CisgICAgaWYgKCFyZWQpCiAgICAgICAgIHJldHVybiB7IH07Ci0g
ICAgYXV0byByZWQgPSByZWRSZXN1bHQtPnZhbHVlOwotICAgIGNvbXBvbmVudFR5cGUgPSByZWRS
ZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRvIGdyZWVuUmVzdWx0ID0gY29uc3VtZVJlbGF0aXZlUkdC
Q29tcG9uZW50PENTU1ZhbHVlRz4oYXJncywgY29tcG9uZW50VHlwZSk7Ci0gICAgaWYgKCFncmVl
blJlc3VsdCkKKyAgICBhdXRvIGdyZWVuID0gY29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnRO
b3JtYWxpemVkRm9yUmVsYXRpdmVSR0IoYXJncywgc3ltYm9sVGFibGUpOworICAgIGlmICghZ3Jl
ZW4pCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgYXV0byBncmVlbiA9IGdyZWVuUmVzdWx0LT52
YWx1ZTsKLSAgICBjb21wb25lbnRUeXBlID0gZ3JlZW5SZXN1bHQtPnR5cGU7CiAKLSAgICBhdXRv
IGJsdWVSZXN1bHQgPSBjb25zdW1lUmVsYXRpdmVSR0JDb21wb25lbnQ8Q1NTVmFsdWVCPihhcmdz
LCBjb21wb25lbnRUeXBlKTsKLSAgICBpZiAoIWJsdWVSZXN1bHQpCisgICAgYXV0byBibHVlID0g
Y29uc3VtZU51bWJlck9yUGVyY2VudE9ySWRlbnROb3JtYWxpemVkRm9yUmVsYXRpdmVSR0IoYXJn
cywgc3ltYm9sVGFibGUpOworICAgIGlmICghYmx1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICBhdXRvIGJsdWUgPSBibHVlUmVzdWx0LT52YWx1ZTsKLSAgICBjb21wb25lbnRUeXBlID0gYmx1
ZVJlc3VsdC0+dHlwZTsKIAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQ8Q1NTVmFsdWVBbHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRp
b25hbEFscGhhT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2
YWx1ZXMgZnJvbSB0aGUgb3JpZ2luIGNvbG9yLgotCi0gICAgLy8gRklYTUU6IERvIHdlIHdhbnQg
dG8gYmVpbmcgZG9pbmcgdGhpcyBpbiB1aW50OF90IHZhbHVlcz8gT3Igc2hvdWxkIHdlIHVzZSAK
LSAgICAvLyBoaWdoZXIgcHJlY2lzaW9uIGFuZCBjbGFtcCBhdCB0aGUgZW5kPyBJdCB3b24ndCBt
YWtlIGEgZGlmZmVyZW5jZSB1bnRpbCB3ZQotICAgIC8vIHN1cHBvcnQgY2FsY3VsYXRpb25zIG9u
IHRoZSBvcmlnaW4ncyBjb21wb25lbnRzLgotICAgIGF1dG8gb3JpZ2luQ29sb3JBc1NSR0IgPSBv
cmlnaW5Db2xvci50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRD
b21wb25lbnRUeXBlID0gY29tcG9uZW50VHlwZS52YWx1ZV9vcihSR0JDb21wb25lbnRUeXBlOjpQ
ZXJjZW50YWdlKTsKLSAgICBhdXRvIGNoYW5uZWxSZXNvbHZlciA9IFtyZXNvbHZlZENvbXBvbmVu
dFR5cGVdKGF1dG8gdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGNsYW1wUkdCQ29tcG9uZW50KHZh
bHVlLCByZXNvbHZlZENvbXBvbmVudFR5cGUpOwotICAgIH07Ci0KLSAgICBhdXRvIHJlc29sdmVk
UmVkID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBD
U1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KHJlZCwgb3JpZ2luQ29sb3JBc1NSR0IsIGNoYW5uZWxS
ZXNvbHZlcik7Ci0gICAgYXV0byByZXNvbHZlZEdyZWVuID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JD
aGFubmVsPENTU1ZhbHVlUiwgQ1NTVmFsdWVHLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KGdy
ZWVuLCBvcmlnaW5Db2xvckFzU1JHQiwgY2hhbm5lbFJlc29sdmVyKTsKLSAgICBhdXRvIHJlc29s
dmVkQmx1ZSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZVIsIENTU1ZhbHVl
RywgQ1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPihibHVlLCBvcmlnaW5Db2xvckFzU1JHQiwgY2hh
bm5lbFJlc29sdmVyKTsKLSAgICBhdXRvIHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWw8Q1NTVmFsdWVSLCBDU1NWYWx1ZUcsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBo
YT4oKmFscGhhLCBvcmlnaW5Db2xvckFzU1JHQiwgW10oYXV0byB2YWx1ZSkgewotICAgICAgICBy
ZXR1cm4gY29udmVydEZsb2F0QWxwaGFUbzx1aW50OF90Pih2YWx1ZSk7Ci0gICAgfSk7CisgICAg
YXV0byBub3JtYWxpemVkQWxwaGEgPSBjb252ZXJ0RmxvYXRBbHBoYVRvPHVpbnQ4X3Q+KCphbHBo
YSk7CiAKLSAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyByZXNvbHZlZFJlZCwgcmVzb2x2ZWRH
cmVlbiwgcmVzb2x2ZWRCbHVlLCByZXNvbHZlZEFscGhhIH07CisgICAgcmV0dXJuIFNSR0JBPHVp
bnQ4X3Q+IHsgKnJlZCwgKmdyZWVuLCAqYmx1ZSwgbm9ybWFsaXplZEFscGhhIH07CiB9CiAKIGVu
dW0gY2xhc3MgUkdCRnVuY3Rpb25Nb2RlIHsgUkdCLCBSR0JBIH07CkBAIC0xMDQ5LDQxICsxMTg4
LDQwIEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlSFNMUGFyYW1ldGVycygKICAgICBpZiAo
IW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8g
aHVlID0gY29uc3VtZUh1ZU9ySWRlbnQ8Q1NTVmFsdWVIPihhcmdzLCBjb250ZXh0KTsKKyAgICBh
dXRvIG9yaWdpbkNvbG9yQXNIU0wgPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PEhTTEE8
ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsKKyAgICAg
ICAgeyBDU1NWYWx1ZUgsIENTU1VuaXRUeXBlOjpDU1NfREVHLCBvcmlnaW5Db2xvckFzSFNMLmh1
ZSB9LAorICAgICAgICB7IENTU1ZhbHVlUywgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBv
cmlnaW5Db2xvckFzSFNMLnNhdHVyYXRpb24gfSwKKyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0hTTC5saWdodG5lc3MgfSwKKyAg
ICAgICAgeyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdp
bkNvbG9yQXNIU0wuYWxwaGEgKiAxMDAuMCB9CisgICAgfTsKKworICAgIGF1dG8gaHVlID0gY29u
c3VtZUh1ZU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNlbnRPcklk
ZW50PENTU1ZhbHVlUz4oYXJncyk7CisgICAgYXV0byBzYXR1cmF0aW9uID0gY29uc3VtZVBlcmNl
bnRPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIXNhdHVyYXRpb24pCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJ
ZGVudDxDU1NWYWx1ZUw+KGFyZ3MpOworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNl
bnRPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWxpZ2h0bmVzcykKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9y
SWRlbnQ8Q1NTVmFsdWVBbHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRp
b25hbEFscGhhT3JJZGVudChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2
YWx1ZXMgZnJvbSB0aGUgb3JpZ2luIGNvbG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzSFNM
ID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxIU0xBPGZsb2F0Pj4oKTsKLQotICAgIGF1
dG8gcmVzb2x2ZWRIdWUgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBD
U1NWYWx1ZVMsIENTU1ZhbHVlTCwgQ1NTVmFsdWVBbHBoYT4oKmh1ZSwgb3JpZ2luQ29sb3JBc0hT
TCwgW10oYXV0byBodWUpIHsKLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUh1ZShodWUpOwotICAg
IH0pOwotICAgIGF1dG8gcmVzb2x2ZWRTYXR1cmF0aW9uID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JD
aGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVTLCBDU1NWYWx1ZUwsIENTU1ZhbHVlQWxwaGE+KCpz
YXR1cmF0aW9uLCBvcmlnaW5Db2xvckFzSFNMLCBbXShhdXRvIHNhdHVyYXRpb24pIHsKLSAgICAg
ICAgcmV0dXJuIGNsYW1wVG8oc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAgfSk7Ci0gICAg
YXV0byByZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NW
YWx1ZUgsIENTU1ZhbHVlUywgQ1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBv
cmlnaW5Db2xvckFzSFNMLCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gY2xh
bXBUbyhsaWdodG5lc3MsIDAuMCwgMTAwLjApOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRB
bHBoYSA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUgsIENTU1ZhbHVlUywg
Q1NTVmFsdWVMLCBDU1NWYWx1ZUFscGhhPigqYWxwaGEsIG9yaWdpbkNvbG9yQXNIU0wpOworICAg
IGF1dG8gbm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKKyAgICBhdXRvIG5vcm1h
bGl6ZWRTYXR1cmF0aW9uID0gc3RkOjpjbGFtcCgqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Cisg
ICAgYXV0byBub3JtYWxpemVkTGlnaHRuZXNzID0gc3RkOjpjbGFtcCgqbGlnaHRuZXNzLCAwLjAs
IDEwMC4wKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRBbHBoYSA9IHN0ZDo6Y2xhbXAoKmFscGhhLCAw
LjAsIDEuMCk7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIU0xB
PGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZs
b2F0PihyZXNvbHZlZFNhdHVyYXRpb24pLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRMaWdo
dG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBbHBoYSkgfSk7CisgICAgcmV0dXJu
IGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxm
bG9hdD4obm9ybWFsaXplZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkU2F0dXJh
dGlvbiksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRBbHBoYSkgfSk7CiB9CiAKIGVudW0gY2xhc3MgSFNMRnVuY3Rp
b25Nb2RlIHsgSFNMLCBIU0xBIH07CkBAIC0xMTIzLDE1ICsxMjYxLDE0IEBAIHRlbXBsYXRlPEhT
TEZ1bmN0aW9uTW9kZSBNb2RlPiBzdGF0aWMgQ28KICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IGF1dG8gbm9ybWFsaXplZEh1ZSA9IG5vcm1hbGl6ZUh1ZSgqaHVlKTsKLSAgICBhdXRvIG5vcm1h
bGl6ZWRTYXR1cmF0aW9uID0gY2xhbXBUbygqc2F0dXJhdGlvbiwgMC4wLCAxMDAuMCk7Ci0gICAg
YXV0byBub3JtYWxpemVkTGlnaHRuZXNzID0gY2xhbXBUbygqbGlnaHRuZXNzLCAwLjAsIDEwMC4w
KTsKLSAgICBhdXRvIG5vcm1hbGl6ZWRBbHBoYSA9IGNsYW1wVG8oKmFscGhhLCAwLjAsIDEuMCk7
CisgICAgYXV0byBub3JtYWxpemVkU2F0dXJhdGlvbiA9IHN0ZDo6Y2xhbXAoKnNhdHVyYXRpb24s
IDAuMCwgMTAwLjApOworICAgIGF1dG8gbm9ybWFsaXplZExpZ2h0bmVzcyA9IHN0ZDo6Y2xhbXAo
KmxpZ2h0bmVzcywgMC4wLCAxMDAuMCk7CisgICAgYXV0byBub3JtYWxpemVkQWxwaGEgPSBzdGQ6
OmNsYW1wKCphbHBoYSwgMC4wLCAxLjApOwogCiAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdC
QTx1aW50OF90Pj4oSFNMQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEh1
ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkU2F0dXJhdGlvbiksIHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6
ZWRBbHBoYSkgfSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+Ci1zdHJ1
Y3QgV2hpdGVuZXNzQmxhY2tuZXNzIHsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbXBvbmVudFR5cGU+
IHN0cnVjdCBXaGl0ZW5lc3NCbGFja25lc3MgewogICAgIENvbXBvbmVudFR5cGUgd2hpdGVuZXNz
OwogICAgIENvbXBvbmVudFR5cGUgYmxhY2tuZXNzOwogfTsKQEAgLTExNjUsMzkgKzEzMDIsMzgg
QEAgc3RhdGljIENvbG9yIHBhcnNlUmVsYXRpdmVIV0JQYXJhbWV0ZXJzKAogICAgIGlmICghb3Jp
Z2luQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBodWUg
PSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFyZ3MsIGNvbnRleHQpOworICAgIGF1dG8g
b3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdpbkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9h
dD4+KCk7CisKKyAgICBDU1NDYWxjU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgeworICAgICAgICB7
IENTU1ZhbHVlSCwgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIG9yaWdpbkNvbG9yQXNIV0IuaHVlIH0s
CisgICAgICAgIHsgQ1NTVmFsdWVXLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdp
bkNvbG9yQXNIV0Iud2hpdGVuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVCLCBDU1NVbml0VHlw
ZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNIV0IuYmxhY2tuZXNzIH0sCisgICAgICAg
IHsgQ1NTVmFsdWVBbHBoYSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFLCBvcmlnaW5Db2xv
ckFzSFdCLmFscGhhICogMTAwLjAgfQorICAgIH07CisKKyAgICBhdXRvIGh1ZSA9IGNvbnN1bWVI
dWVPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWh1ZSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIGF1dG8gd2hpdGVuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENT
U1ZhbHVlVz4oYXJncyk7CisgICAgYXV0byB3aGl0ZW5lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRl
bnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghd2hpdGVuZXNzKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgYXV0byBibGFja25lc3MgPSBjb25zdW1lUGVyY2VudE9ySWRlbnQ8Q1NT
VmFsdWVCPihhcmdzKTsKKyAgICBhdXRvIGJsYWNrbmVzcyA9IGNvbnN1bWVQZXJjZW50T3JJZGVu
dChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFibGFja25lc3MpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50PENT
U1ZhbHVlQWxwaGE+KGFyZ3MpOworICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBo
YU9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghYWxwaGEpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGNvbnZlcnQgaWRlbnRpZmllcnMgdG8gdmFsdWVzIGZy
b20gdGhlIG9yaWdpbiBjb2xvci4KLQotICAgIGF1dG8gb3JpZ2luQ29sb3JBc0hXQiA9IG9yaWdp
bkNvbG9yLnRvQ29sb3JUeXBlTG9zc3k8SFdCQTxmbG9hdD4+KCk7Ci0KLSAgICBhdXRvIHJlc29s
dmVkSHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFsdWVX
LCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCpodWUsIG9yaWdpbkNvbG9yQXNIV0IsIFtdKGF1
dG8gaHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVIdWUoaHVlKTsKLSAgICB9KTsKLSAg
ICBhdXRvIHJlc29sdmVkV2hpdGVuZXNzID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENT
U1ZhbHVlSCwgQ1NTVmFsdWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCp3aGl0ZW5lc3Ms
IG9yaWdpbkNvbG9yQXNIV0IpOwotICAgIGF1dG8gcmVzb2x2ZWRCbGFja25lc3MgPSByZXNvbHZl
UmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVILCBDU1NWYWx1ZVcsIENTU1ZhbHVlQiwgQ1NT
VmFsdWVBbHBoYT4oKmJsYWNrbmVzcywgb3JpZ2luQ29sb3JBc0hXQik7Ci0gICAgYXV0byByZXNv
bHZlZEFscGhhID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFubmVsPENTU1ZhbHVlSCwgQ1NTVmFs
dWVXLCBDU1NWYWx1ZUIsIENTU1ZhbHVlQWxwaGE+KCphbHBoYSwgb3JpZ2luQ29sb3JBc0hXQik7
Ci0KLSAgICBhdXRvIFtub3JtYWxpemVkV2hpdG5lc3MsIG5vcm1hbGl6ZWRCbGFja25lc3NdID0g
bm9ybWFsaXplV2hpdGVuZXNzQmxhY2tuZXNzKHJlc29sdmVkV2hpdGVuZXNzLCByZXNvbHZlZEJs
YWNrbmVzcyk7CisgICAgYXV0byBub3JtYWxpemVkSHVlID0gbm9ybWFsaXplSHVlKCpodWUpOwor
ICAgIGF1dG8gW25vcm1hbGl6ZWRXaGl0bmVzcywgbm9ybWFsaXplZEJsYWNrbmVzc10gPSBub3Jt
YWxpemVXaGl0ZW5lc3NCbGFja25lc3MoKndoaXRlbmVzcywgKmJsYWNrbmVzcyk7CiAKLSAgICBy
ZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19j
YXN0PGZsb2F0PihyZXNvbHZlZEh1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkV2hp
dG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9ybWFsaXplZEJsYWNrbmVzcyksIHN0YXRpY19j
YXN0PGZsb2F0PihyZXNvbHZlZEFscGhhKSB9KTsKKyAgICByZXR1cm4gY29udmVydENvbG9yPFNS
R0JBPHVpbnQ4X3Q+PihIV0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVk
SHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRXaGl0bmVzcyksIHN0YXRpY19jYXN0
PGZsb2F0Pihub3JtYWxpemVkQmxhY2tuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphbHBoYSkg
fSk7CiB9CiAKIHN0YXRpYyBDb2xvciBwYXJzZUhXQlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMjQ2LDM3
ICsxMzgyLDM3IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTGFiUGFyYW1ldGVycygKICAg
ICBpZiAoIW9yaWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7
CisgICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3Nz
eTxMYWI8ZmxvYXQ+PigpOworCisgICAgQ1NTQ2FsY1N5bWJvbFRhYmxlIHN5bWJvbFRhYmxlIHsK
KyAgICAgICAgeyBDU1NWYWx1ZUwsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2lu
Q29sb3JBc0xhYi5saWdodG5lc3MgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUEsIENTU1VuaXRUeXBl
OjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUIs
IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSLCBvcmlnaW5Db2xvckFzTGFiLmIgfSwKKyAgICAgICAg
eyBDU1NWYWx1ZUFscGhhLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9y
QXNMYWIuYWxwaGEgKiAxMDAuMCB9CisgICAgfTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29u
c3VtZVBlcmNlbnRPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWxpZ2h0bmVz
cykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJl
ck9ySWRlbnQ8Q1NTVmFsdWVBPihhcmdzKTsKKyAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1i
ZXJPcklkZW50KGFyZ3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWFWYWx1ZSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJlck9ySWRlbnQ8Q1NT
VmFsdWVCPihhcmdzKTsKKyAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1iZXJPcklkZW50KGFy
Z3MsIHN5bWJvbFRhYmxlKTsKICAgICBpZiAoIWJWYWx1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIGF1dG8gYWxwaGEgPSBjb25zdW1lT3B0aW9uYWxBbHBoYU9ySWRlbnQ8Q1NTVmFsdWVB
bHBoYT4oYXJncyk7CisgICAgYXV0byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVu
dChhcmdzLCBzeW1ib2xUYWJsZSk7CiAgICAgaWYgKCFhbHBoYSkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIGlmICghYXJncy5hdEVuZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
Ly8gQWZ0ZXIgcGFyc2luZywgY29udmVydCBpZGVudGlmaWVycyB0byB2YWx1ZXMgZnJvbSB0aGUg
b3JpZ2luIGNvbG9yLgotCi0gICAgYXV0byBvcmlnaW5Db2xvckFzTGFiID0gb3JpZ2luQ29sb3Iu
dG9Db2xvclR5cGVMb3NzeTxMYWI8ZmxvYXQ+PigpOwotCi0gICAgYXV0byByZXNvbHZlZExpZ2h0
bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwg
Q1NTVmFsdWVCLCBDU1NWYWx1ZUFscGhhPigqbGlnaHRuZXNzLCBvcmlnaW5Db2xvckFzTGFiLCBb
XShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICByZXR1cm4gc3RkOjptYXgoMC4wLCBsaWdodG5l
c3MpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2ZWRBVmFsdWUgPSByZXNvbHZlUmVsYXRpdmVD
b2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBo
YT4oKmFWYWx1ZSwgb3JpZ2luQ29sb3JBc0xhYik7Ci0gICAgYXV0byByZXNvbHZlZEJWYWx1ZSA9
IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hhbm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQSwgQ1NTVmFs
dWVCLCBDU1NWYWx1ZUFscGhhPigqYlZhbHVlLCBvcmlnaW5Db2xvckFzTGFiKTsKLSAgICBhdXRv
IHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBD
U1NWYWx1ZUEsIENTU1ZhbHVlQiwgQ1NTVmFsdWVBbHBoYT4oKmFscGhhLCBvcmlnaW5Db2xvckFz
TGFiKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRMaWdodG5lc3MgPSBzdGQ6Om1heCgwLjAsICpsaWdo
dG5lc3MpOwogCi0gICAgcmV0dXJuIExhYjxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVz
b2x2ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRBVmFsdWUpLCBzdGF0
aWNfY2FzdDxmbG9hdD4ocmVzb2x2ZWRCVmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVzb2x2
ZWRBbHBoYSkgfTsKKyAgICByZXR1cm4gTGFiPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihu
b3JtYWxpemVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCphVmFsdWUpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oKmJWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PigqYWxwaGEpIH07CiB9CiAK
IHN0YXRpYyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC0xMzI0LDM5ICsxNDYwLDM5
IEBAIHN0YXRpYyBDb2xvciBwYXJzZVJlbGF0aXZlTENIUGFyYW1ldGVycygKICAgICBpZiAoIW9y
aWdpbkNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gbGln
aHRuZXNzID0gY29uc3VtZVBlcmNlbnRPcklkZW50PENTU1ZhbHVlTD4oYXJncyk7CisgICAgYXV0
byBvcmlnaW5Db2xvckFzTENIID0gb3JpZ2luQ29sb3IudG9Db2xvclR5cGVMb3NzeTxMQ0hBPGZs
b2F0Pj4oKTsKKworICAgIENTU0NhbGNTeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSB7CisgICAgICAg
IHsgQ1NTVmFsdWVMLCBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UsIG9yaWdpbkNvbG9yQXNM
Q0gubGlnaHRuZXNzIH0sCisgICAgICAgIHsgQ1NTVmFsdWVDLCBDU1NVbml0VHlwZTo6Q1NTX05V
TUJFUiwgb3JpZ2luQ29sb3JBc0xDSC5jaHJvbWEgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUgsIENT
U1VuaXRUeXBlOjpDU1NfREVHLCBvcmlnaW5Db2xvckFzTENILmh1ZSB9LAorICAgICAgICB7IENT
U1ZhbHVlQWxwaGEsIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSwgb3JpZ2luQ29sb3JBc0xD
SC5hbHBoYSAqIDEwMC4wIH0KKyAgICB9OworCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1l
UGVyY2VudE9ySWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghbGlnaHRuZXNzKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBjaHJvbWEgPSBjb25zdW1lTnVtYmVyT3JJ
ZGVudDxDU1NWYWx1ZUM+KGFyZ3MpOworICAgIGF1dG8gY2hyb21hID0gY29uc3VtZU51bWJlck9y
SWRlbnQoYXJncywgc3ltYm9sVGFibGUpOwogICAgIGlmICghY2hyb21hKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgYXV0byBodWUgPSBjb25zdW1lSHVlT3JJZGVudDxDU1NWYWx1ZUg+KGFy
Z3MsIGNvbnRleHQpOworICAgIGF1dG8gaHVlID0gY29uc3VtZUh1ZU9ySWRlbnQoYXJncywgc3lt
Ym9sVGFibGUpOwogICAgIGlmICghaHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0
byBhbHBoYSA9IGNvbnN1bWVPcHRpb25hbEFscGhhT3JJZGVudDxDU1NWYWx1ZUFscGhhPihhcmdz
KTsKKyAgICBhdXRvIGFscGhhID0gY29uc3VtZU9wdGlvbmFsQWxwaGFPcklkZW50KGFyZ3MsIHN5
bWJvbFRhYmxlKTsKICAgICBpZiAoIWFscGhhKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAg
aWYgKCFhcmdzLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIG9yaWdp
bkNvbG9yQXNMQ0ggPSBvcmlnaW5Db2xvci50b0NvbG9yVHlwZUxvc3N5PExDSEE8ZmxvYXQ+Pigp
OwotCi0gICAgYXV0byByZXNvbHZlZExpZ2h0bmVzcyA9IHJlc29sdmVSZWxhdGl2ZUNvbG9yQ2hh
bm5lbDxDU1NWYWx1ZUwsIENTU1ZhbHVlQywgQ1NTVmFsdWVILCBDU1NWYWx1ZUFscGhhPigqbGln
aHRuZXNzLCBvcmlnaW5Db2xvckFzTENILCBbXShhdXRvIGxpZ2h0bmVzcykgewotICAgICAgICBy
ZXR1cm4gc3RkOjptYXgoMC4wLCBsaWdodG5lc3MpOwotICAgIH0pOwotICAgIGF1dG8gcmVzb2x2
ZWRDaHJvbWEgPSByZXNvbHZlUmVsYXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1
ZUMsIENTU1ZhbHVlSCwgQ1NTVmFsdWVBbHBoYT4oKmNocm9tYSwgb3JpZ2luQ29sb3JBc0xDSCwg
W10oYXV0byBjaHJvbWEpIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwgY2hyb21hKTsK
LSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkSHVlID0gcmVzb2x2ZVJlbGF0aXZlQ29sb3JDaGFu
bmVsPENTU1ZhbHVlTCwgQ1NTVmFsdWVDLCBDU1NWYWx1ZUgsIENTU1ZhbHVlQWxwaGE+KCpodWUs
IG9yaWdpbkNvbG9yQXNMQ0gsIFtdKGF1dG8gaHVlKSB7Ci0gICAgICAgIHJldHVybiBub3JtYWxp
emVIdWUoaHVlKTsKLSAgICB9KTsKLSAgICBhdXRvIHJlc29sdmVkQWxwaGEgPSByZXNvbHZlUmVs
YXRpdmVDb2xvckNoYW5uZWw8Q1NTVmFsdWVMLCBDU1NWYWx1ZUMsIENTU1ZhbHVlSCwgQ1NTVmFs
dWVBbHBoYT4oKmFscGhhLCBvcmlnaW5Db2xvckFzTENIKTsKKyAgICBhdXRvIG5vcm1hbGl6ZWRM
aWdodG5lc3MgPSBzdGQ6Om1heCgwLjAsICpsaWdodG5lc3MpOworICAgIGF1dG8gbm9ybWFsaXpl
ZENocm9tYSA9IHN0ZDo6bWF4KDAuMCwgKmNocm9tYSk7CisgICAgYXV0byBub3JtYWxpemVkSHVl
ID0gbm9ybWFsaXplSHVlKCpodWUpOwogCi0gICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkTGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29s
dmVkQ2hyb21hKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlc29sdmVkSHVlKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHJlc29sdmVkQWxwaGEpIH07CisgICAgcmV0dXJuIExDSEE8ZmxvYXQ+IHsgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KG5vcm1hbGl6ZWRMaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4obm9y
bWFsaXplZENocm9tYSksIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWxpemVkSHVlKSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KCphbHBoYSkgfTsKIH0KIAogc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1l
dGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYg
Y29udGV4dCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI5MSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTMxICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGNhbGMoKSBvbiBjb21w
b25lbnRzIGluc2lkZSByZWxhdGl2ZSBjb2xvciBzeW50YXggY29sb3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVcGRhdGVkIHRlc3QgYW5kIHJlc3VsdHMg
Zm9yIHVwZGF0ZSBzdXBwb3J0IGluY2x1ZGluZyBjYWxjKCkgCisgICAgICAgIGFuZCBjb21wb21l
bnQgcGVybXV0YXRpb24uCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNv
bG9yLXN5bnRheC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1yZWxh
dGl2ZS1jb2xvci1zeW50YXguaHRtbDoKKwogMjAyMS0wNS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
NzgyNjEuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9y
LXN5bnRheC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cGFyc2luZy1yZWxhdGl2ZS1jb2xvci1zeW50YXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgy
OTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRh
eC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQyLDIwICs0MiwyNyBAQCBQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMjUgZyBi
IC8gMjUlKSIpIGlzICJyZ2JhKDI1LCA1MSwgNzcsIDAuMjUpIgogUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIg
MjUgYiAvIDI1JSkiKSBpcyAicmdiYSgyNiwgMjUsIDc3LCAwLjI1KSIKIFBBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSByIGcgMjUgLyAyNSUpIikgaXMgInJnYmEoMjYsIDUxLCAyNSwgMC4yNSkiCi1QQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIg
cikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYWxwaGEgciAvIGcpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNj
YXB1cnBsZSBhbHBoYSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGcgYiByKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwg
MzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgciByIHIgLyByKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1Q
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1
cnBsZSByIDEwJSAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIHIgMTAgMTAlKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgMCUgMTAgMTApIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20g
cmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciAxMCUgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgciAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAl
LCAzMCUsIDQwJSkgMCUgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBnIGIg
cikiKSBpcyAicmdiKDUxLCAxNTMsIDEwMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSBiIGFscGhhIHIgLyBnKSIpIGlzICJy
Z2JhKDE1MywgMjU1LCAxMDIsIDAuMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAvIHIpIikgaXMgInJnYmEoMTAy
LCAxMDIsIDEwMiwgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMg
InJnYigyNTUsIDI1NSwgMjU1KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBnIGIgcikiKSBpcyAicmdiKDUx
LCA3NywgMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpIikgaXMgInJnYmEoNzcs
IDEwMiwgMjYsIDAuMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgciByIHIgLyByKSIpIGlzICJyZ2JhKDI2
LCAyNiwgMjYsIDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
cmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBo
YSkiKSBpcyAicmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCUgMTApIikgaXMg
InJnYigxMDIsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAicmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEwJSkiKSBpcyAicmdiKDEwMiwgMTAsIDI2
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZWJl
Y2NhcHVycGxlIDAlIDEwIDEwKSIpIGlzICJyZ2IoMCwgMTAsIDEwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAl
KSByIDEwJSAxMCkiKSBpcyAicmdiKDI2LCAyNiwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAg
MTAlKSIpIGlzICJyZ2IoMjYsIDEwLCAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAicmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgMCUgMTAgMTApIikg
aXMgInJnYigwLCAxMCwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikpIikgaXMg
InJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGcgKiAuNSkgMTApIikgaXMgInJnYigx
MDIsIDI2LCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41KSAxMCkiKSBpcyAicmdiKDEwMiwgNzcs
IDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSBy
ZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgKyBnICogLjUpIDEwKSIpIGlzICJyZ2IoMTAyLCAx
MDIsIDEwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJv
bSByZWJlY2NhcHVycGxlIHIgY2FsYyhiICogLjUgLSBnICogLjUpIDEwKSIpIGlzICJyZ2IoMTAy
LCA1MSwgMTApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihm
cm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApIikgaXMgInJnYigx
MDIsIDUxLCAxMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAicmdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgY2FsYyhyKSBjYWxjKGcpIGNhbGMoYikgLyBj
YWxjKGFscGhhKSkiKSBpcyAicmdiYSgyNiwgNTEsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJlYmVjY2FwdXJwbGUgcmVkIGcgYiki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJyZ2IoZnJvbSByZWJlY2NhcHVycGxlIGwgZyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgaCBnIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC05MSwxNCArOTgs
MjQgQEAgUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgogUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGggMjUlIGwgLyBhbHBoYSkiKSBpcyAicmdiYSgzOSwgNTEsIDY0LCAwLjQpIgogUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIGggcyAyNSUgLyBhbHBoYSkiKSBpcyAicmdiYSgzMiwgNjMsIDk1LCAwLjQp
IgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigx
MCUsIDIwJSwgMzAlLCA0MCUpIGggcyBsIC8gLjI1KSIpIGlzICJyZ2JhKDI2LCA1MSwgNzcsIDAu
MjUpIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJl
YmVjY2FwdXJwbGUgaCBsIHMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhh
IGwgLyBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhz
bChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBzKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJn
YigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgbCAvIHMpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdi
KDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIGwgLyBsKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgot
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSBy
ZWJlY2NhcHVycGxlIGggbCBzKSIpIGlzICJyZ2IoMTI4LCA3NywgMTc5KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggYWxw
aGEgbCAvIHMpIikgaXMgInJnYmEoMTAyLCAwLCAyMDQsIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGwgbCAvIGwp
IikgaXMgInJnYmEoMTAyLCA2MSwgMTQzLCAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBhbHBoYSBhbHBoYSAvIGFs
cGhhKSIpIGlzICJyZ2IoMjU1LCAyNTUsIDI1NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpIikg
aXMgInJnYigxMDEsIDEyNiwgMTUyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBzKSIp
IGlzICJyZ2JhKDMxLCA1MSwgNzIsIDAuNDk0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwgbCAvIGwp
IikgaXMgInJnYmEoNDEsIDUxLCA2MiwgMC4yMDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEg
YWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSg2MSwgMTAxLCAxNDMsIDAuNCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSBzIGgg
bCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVycGxlIHMgcyBzIC8gcykiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2wo
ZnJvbSByZWJlY2NhcHVycGxlIGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZWJlY2NhcHVy
cGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgcyBoIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgcyBzIHMgLyBzKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBo
YSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVjY2FwdXJwbGUgY2Fs
YyhoKSBjYWxjKHMpIGNhbGMobCkpIikgaXMgInJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAl
LCA0MCUpIGNhbGMoaCkgY2FsYyhzKSBjYWxjKGwpIC8gY2FsYyhhbHBoYSkpIikgaXMgInJnYmEo
MjYsIDUxLCA3NywgMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJoc2woZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImhzbChmcm9tIHJlYmVj
Y2FwdXJwbGUgaCAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHNsKGZyb20gcmViZWNjYXB1cnBsZSAxMCUgcyBs
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMTQwLDE0ICsxNTcsMjQgQEAgUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggMjUlIGIg
LyBhbHBoYSkiKSBpcyAicmdiYSg2NCwgNzAsIDc3LCAwLjQpIgogUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGgg
dyAyNSUgLyBhbHBoYSkiKSBpcyAicmdiYSgyNiwgMTA3LCAxOTEsIDAuNCkiCiBQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgaCB3IGIgLyAuMjUpIikgaXMgInJnYmEoMjYsIDUxLCA3NywgMC4yNSkiCi1QQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBo
IGIgdykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIHcgdyAvIHcpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
Ci1QQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCBiIHcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgaCBhbHBoYSB3IC8gYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMw
JSwgNDAlKSBoIHcgdyAvIHcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQw
JSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUg
aCBiIHcpIikgaXMgInJnYigxNTMsIDEwMiwgMjA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpIikg
aXMgInJnYmEoMjEzLCAyMTMsIDIxMywgMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGggdyB3IC8gdykiKSBpcyAicmdi
YSgxMjgsIDUxLCAyMDQsIDAuMikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMg
InJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGIgdykiKSBpcyAicmdiKDE3
OCwgMjAzLCAyMjkpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3
Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpIikgaXMgInJnYmEo
MTAyLCAxNjQsIDIyOSwgMC42OTgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdykiKSBpcyAi
cmdiYSgyNiwgMTI2LCAyMjksIDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBoYSAv
IGFscGhhKSIpIGlzICJyZ2JhKDEwMiwgMTI3LCAxNTMsIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSB3IGggYikiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGIgYiBiIC8gYikiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSBy
ZWJlY2NhcHVycGxlIGggaCBoIC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2IoZnJvbSByZWJlY2NhcHVycGxlIGFs
cGhhIGFscGhhIGFscGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAz
MCUsIDQwJSkgdyBiIGgpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
YiBiIGIgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBo
IC8gaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBhbHBoYSBhbHBo
YSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBj
YWxjKHcpIGNhbGMoYikpIikgaXMgInJnYigxMDIsIDUxLCAxNTMpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGNhbGMoaCkgY2FsYyh3KSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpIikgaXMgInJnYmEoMjYsIDUx
LCA3NywgMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJod2Io
ZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImh3Yihmcm9tIHJlYmVjY2FwdXJw
bGUgaCAxMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiaHdiKGZyb20gcmViZWNjYXB1cnBsZSAxMCUgdyBiKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMTgyLDE0ICsyMDksMTYgQEAgUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIgogUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgMzUgYiAvIGFscGhhKSIp
IGlzICJsYWIoMjUlIDM1IDUwIC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgMzUgLyBhbHBoYSki
KSBpcyAibGFiKDI1JSAyMCAzNSAvIDAuNCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGIgLyAuMzUpIikg
aXMgImxhYigyNSUgMjAgNTAgLyAwLjM1KSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGIgYSkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwKSBsIGIgYSkiKSBpcyAibGFiKDI1JSA1MCAyMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBh
IGEgLyBhKSIpIGlzICJsYWIoMjUlIDIwIDIwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGIgYSkiKSBpcyAi
bGFiKDI1JSA1MCAyMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhIGEgLyBhKSIpIGlzICJsYWIoMjUlIDIw
IDIwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBs
YWIoMjUlIDIwIDUwKSBsIGFscGhhIGEgLyBiKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYihmcm9tIGxhYigyNSUgMjAg
NTApIGwgYSBhIC8gYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFscGhhIGFs
cGhhIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBhIC8gYikiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYSAvIGEpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYihmcm9tIGxhYigyNSUgMjAgNTApIGNhbGMobCkgY2FsYyhhKSBjYWxjKGIpKSIpIGlzICJs
YWIoMjUlIDIwIDUwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBjYWxjKGwpIGNhbGMoYSkgY2FsYyhiKSAvIGNh
bGMoYWxwaGEpKSIpIGlzICJsYWIoMjUlIDIwIDUwIC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIDEwJSAxMCki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIDEwIDEwJSkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJv
bSBsYWIoMjUlIDIwIDUwKSAxMCBhIGIpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCkBAIC0yMzEs
MTAgKzI2MCwyMiBAQCBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0
NSAzMCAvIDQwJSkgbCBjIDI1IC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgMjUgLyAwLjQpIgog
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUg
NDUgMzAgLyA0MCUpIGwgYyAyNWRlZyAvIGFscGhhKSIpIGlzICJsY2goNzAlIDQ1IDI1IC8gMC40
KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2go
NzAlIDQ1IDMwIC8gNDAlKSBsIGMgaCAvIC4yNSkiKSBpcyAibGNoKDcwJSA0NSAzMCAvIDAuMjUp
IgotUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3
MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkg
YWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkg
YWxwaGEgYyBoIC8gbCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBo
YSBjIGggLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGgg
LyBsKSIpIGlzICJsY2goMTAwJSA0NSAzMCAvIDAuNykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBjIGMgLyBhbHBoYSki
KSBpcyAibGNoKDcwJSA0NSA0NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpIikgaXMgImxj
aCgxMDAlIDQ1IDMwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goZnJvbSBsY2goNzAlIDQ1IDMwKSBhbHBoYSBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDEwMCUg
NDUgNDUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGwpIikgaXMgImxjaCg0MCUgNDUgMzAg
LyAwLjcpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBjIC8gYWxwaGEpIikgaXMgImxjaCg3MCUgNDUgNDUg
LyAwLjQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9t
IGxjaCg3MCUgNDUgMzAgLyA0MCUpIGFscGhhIGMgaCAvIGFscGhhKSIpIGlzICJsY2goNDAlIDQ1
IDMwIC8gMC40KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
ZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGMgLyBhbHBoYSkiKSBpcyAibGNoKDQw
JSA0NSA0NSAvIDAuNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgaCBsIGMgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwKSBjIGMgYyAvIGMpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkg
YWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMw
IC8gNDAlKSBoIGwgYyAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0
MCUpIGMgYyBjIC8gYykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBo
YSBhbHBoYSBhbHBoYSAvIGFscGhhKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGNh
bGMobCkgY2FsYyhjKSBjYWxjKGgpKSIpIGlzICJsY2goNzAlIDQ1IDMwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAl
KSBjYWxjKGwpIGNhbGMoYykgY2FsYyhoKSAvIGNhbGMoYWxwaGEpKSIpIGlzICJsY2goNzAlIDQ1
IDMwIC8gMC40KSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
ZnJvbSBsY2goNzAlIDQ1IDMwKSBsIDEwJSBoKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgogUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIGxjaCg3MCUgNDUg
MzApIGwgYyAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCiBQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgMTAgYyBoKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgpAQCAtMjQ0LDYgKzI4NSwyMSBAQCBQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiCiBQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbGlnaHRuZXNzIGMgaCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKIFBBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goZnJvbSBsY2goNzAlIDQ1IDMwKSB4IGMgaCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKIFBB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSBsY2goNzAlIDQ1
IDMwKSBsIGcgYikiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJyZ2IoZnJvbSB2YXIoLS1iZy1jb2xvcikgciBnIGIgLyA4MCUp
IikgaXMgInJnYmEoMCwgMCwgMjU1LCAwLjgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLWNvbG9yKSBjYWxjKGwgLyAyKSBjIGgpIikgaXMg
ImxjaCgyMy4xMzg5NzElIDY3Ljk4OTcxNiAxMzQuMzkxMjUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIHZhcigtLWNvbG9yKSBjYWxjKHIgKiAuMyAr
IGcgKiAuNTkgKyBiICogLjExKSBjYWxjKHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSBjYWxj
KHIgKiAuMyArIGcgKiAuNTkgKyBiICogLjExKSkiKSBpcyAicmdiKDc2LCA3NiwgNzYpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaChmcm9tIHZhcigtLWNvbG9y
KSBsIDAgaCkiKSBpcyAibGNoKDQ2LjI3Nzk0MyUgMCAxMzQuMzkxMjUpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgInJnYihmcm9tIGluZGlhbnJlZCAyNTUgZyBiKSIp
IGlzICJyZ2IoMjU1LCA5MiwgOTIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImhzbChmcm9tIHZhcigtLWFjY2VudCkgY2FsYyhoICsgMTgwZGVnKSBzIGwpIikgaXMg
InJnYigxNzgsIDMyLCA0MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKGZyb20gdmFyKC0tbXljb2xvcikgbCBhIGIgLyAxMDAlKSIpIGlzICJsYWIoNjIuNzUx
OTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEgKiAw
LjgpKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAtMzQuMTE3MjgzIC8gMC44KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNv
bG9yKSBsIGEgYiAvIGNhbGMoYWxwaGEgLSAyMCUpKSIpIGlzICJsYWIoNjIuNzUxOTIzJSA1Mi40
NTgwMiAtMzQuMTE3MjgzIC8gMC44KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoZnJvbSB2YXIoLS1teWNvbG9yKSBsIDAgMCkiKSBpcyAibGFiKDYyLjc1MTky
MyUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJv
bSBwZXJ1IGNhbGMobCAqIDAuOCkgYyBoKSIpIGlzICJsY2goNDkuODAxMzglIDU0LjAwMzI5NiA2
My42ODAzMTcpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgIkxDSChm
cm9tIHZhcigtLWFjY2VudCkgbCBjIGNhbGMoaCArIDE4MGRlZykpIikgaXMgImxjaCg2NS40OTQ3
MyUgMzkuNDQ2OTAzIDEwLjExNDQ3MSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKGZyb20gdmFyKC0tbXljb2xvcikgbCAwIGgpIikgaXMgImxjaCg2Mi43NTE5
MjMlIDAgMzI2Ljk2MTEyKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJ2YXIoLS1teWdyYXkpIikgaXMgImxjaCg2Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goZnJvbSB2YXIoLS1teWdyYXkp
IGwgMzAgaCkiKSBpcyAibGNoKDYyLjc1MTkyMyUgMzAgMzI2Ljk2MTEyKSIKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcGFyc2luZy1yZWxhdGl2ZS1jb2xvci1zeW50YXguaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0aXZlLWNvbG9yLXN5bnRheC5odG1s
CShyZXZpc2lvbiAyNzgyOTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXJlbGF0
aXZlLWNvbG9yLXN5bnRheC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsMTUgQEAKIDwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ1NTUmVsYXRpdmVDb2xvclN5
bnRheEVuYWJsZWQ9dHJ1ZSBdIC0tPgogPGh0bWw+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICBo
dG1sIHsgCisgICAgICAgICAgICAtLWJnLWNvbG9yOiBibHVlOworICAgICAgICAgICAgLS1jb2xv
cjogZ3JlZW47CisgICAgICAgICAgICAtLWFjY2VudDogbGlnaHRzZWFncmVlbjsKKyAgICAgICAg
ICAgIC0tbXljb2xvcjogb3JjaGlkOworICAgICAgICAgICAgLS1teWdyYXk6IGxjaChmcm9tIHZh
cigtLW15Y29sb3IpIGwgMCBoKTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8
Ym9keT4KIDxzY3JpcHQ+CkBAIC05NSwyMyArMTA0LDMyIEBACiAgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDI1IGIgLyAyNSUpYCwgYHJnYmEoMjYs
IDI1LCA3NywgMC4yNSlgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIHIgZyAyNSAvIDI1JSlgLCBgcmdiYSgyNiwgNTEsIDI1LCAwLjI1KWApOwog
Ci0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQg
cGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgZyBiIHIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0
ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgYiBhbHBoYSByIC8gZylgLCBgcmdiYSgwLCAwLCAw
LCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIHIgciAv
IHIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
ZyBiIHIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGIgYWxwaGEgciAvIGcpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IHIgciByIC8gcilgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOwotCi0gICAgLy8gVGVzdGluZyBpbnZhbGlkIG1peGVzIG9m
IG51bWJlciBhbmQgcGVyY2VudGFnZQotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNj
YXB1cnBsZSByIDEwJSAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRl
ZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIDEwIDEwJSlgLCBgcmdiYSgwLCAwLCAwLCAwKWAp
OwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSAwJSAxMCAxMClgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgciAxMCUgMTApYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHIgMTAgMTAlKWAsIGBy
Z2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSAwJSAxMCAxMClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRl
c3RpbmcgcGVybXV0YXRpb24uCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZWJlY2NhcHVy
cGxlIGcgYiByKWAsIGByZ2IoNTEsIDE1MywgMTAyKWApOworICAgIHRlc3RDb21wdXRlZChgcmdi
KGZyb20gcmViZWNjYXB1cnBsZSBiIGFscGhhIHIgLyBnKWAsIGByZ2JhKDE1MywgMjU1LCAxMDIs
IDAuMilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciByIHIg
LyByKWAsIGByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJn
Yihmcm9tIHJlYmVjY2FwdXJwbGUgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiKDI1
NSwgMjU1LCAyNTUpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUs
IDMwJSwgNDAlKSBnIGIgcilgLCBgcmdiKDUxLCA3NywgMjYpYCk7CisgICAgdGVzdENvbXB1dGVk
KGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBiIGFscGhhIHIgLyBnKWAsIGByZ2Jh
KDc3LCAxMDIsIDI2LCAwLjIpYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAl
LCAyMCUsIDMwJSwgNDAlKSByIHIgciAvIHIpYCwgYHJnYmEoMjYsIDI2LCAyNiwgMC4xKWApOwor
ICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEg
YWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjQpYCk7CisKKyAg
ICAvLyBUZXN0aW5nIG1peGVzIG9mIG51bWJlciBhbmQgcGVyY2VudGFnZS4gKFRoZXNlIHdvdWxk
IG5vdCBiZSBhbGxvd2VkIGluIHRoZSBub24tcmVsYXRpdmUgc3ludGF4KS4KKyAgICB0ZXN0Q29t
cHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCUgMTApYCwgYHJnYigxMDIsIDI2LCAx
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciAxMCAxMCUp
YCwgYHJnYigxMDIsIDEwLCAyNilgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVj
Y2FwdXJwbGUgMCUgMTAgMTApYCwgYHJnYigwLCAxMCwgMTApYCk7CisgICAgdGVzdENvbXB1dGVk
KGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSByIDEwJSAxMClgLCBgcmdiKDI2LCAy
NiwgMTApYCk7CisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwg
NDAlKSByIDEwIDEwJSlgLCBgcmdiKDI2LCAxMCwgMjYpYCk7CisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSAwJSAxMCAxMClgLCBgcmdiKDAsIDEwLCAx
MClgKTsKKworICAgIC8vIFRlc3Rpbmcgd2l0aCBjYWxjKCkuCisgICAgdGVzdENvbXB1dGVkKGBy
Z2IoZnJvbSByZWJlY2NhcHVycGxlIGNhbGMocikgY2FsYyhnKSBjYWxjKGIpKWAsIGByZ2IoMTAy
LCA1MSwgMTUzKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSBy
IGNhbGMoZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgMjYsIDEwKWApOworICAgIHRlc3RDb21wdXRl
ZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNhbGMoYiAqIC41KSAxMClgLCBgcmdiKDEwMiwg
NzcsIDEwKWApOworICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByIGNh
bGMoYiAqIC41ICsgZyAqIC41KSAxMClgLCBgcmdiKDEwMiwgMTAyLCAxMClgKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoYHJnYihmcm9tIHJlYmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkg
MTApYCwgYHJnYigxMDIsIDUxLCAxMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJl
YmVjY2FwdXJwbGUgciBjYWxjKGIgKiAuNSAtIGcgKiAuNSkgMTApYCwgYHJnYigxMDIsIDUxLCAx
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYHJnYihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGNhbGMocikgY2FsYyhnKSBjYWxjKGIpIC8gY2FsYyhhbHBoYSkpYCwgYHJnYmEoMjYsIDUxLCA3
NywgMC40KWApOwogCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIGNvbXBvbmVudCBuYW1lcwogICAg
IHRlc3RDb21wdXRlZChgcmdiKGZyb20gcmViZWNjYXB1cnBsZSByZWQgZyBiKWAsIGByZ2JhKDAs
IDAsIDAsIDApYCk7CkBAIC0xNjEsMTUgKzE3OSwyOSBAQAogICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBzIDI1JSAvIGFscGhhKWAsIGByZ2JhKDMy
LCA2MywgOTUsIDAuNClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIw
JSwgMzAlLCA0MCUpIGggcyBsIC8gLjI1KWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuMjUpYCk7CiAK
LSAgICAvLyBUZXN0aW5nIHBlcm11dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBw
ZXItc3BlYywgd2UgZGlzYWxsb3cgaXQpLgotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIGwgcylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRl
ZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBoIGFscGhhIGwgLyBzKWAsIGByZ2JhKDAsIDAsIDAs
IDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGggbCBsIC8g
bClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsK
LSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggbCBz
KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2Io
MTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIGwgLyBzKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
Ci0gICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGwg
bCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9t
IHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0YXRpb24gKHR5cGVzIG1h
dGNoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIHMpYCwg
YHJnYigxMjgsIDc3LCAxNzkpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2Nh
cHVycGxlIGggYWxwaGEgbCAvIHMpYCwgYHJnYmEoMTAyLCAwLCAyMDQsIDAuNSlgKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBsIGwgLyBsKWAsIGByZ2JhKDEw
MiwgNjEsIDE0MywgMC40KWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1
cnBsZSBoIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYigyNTUsIDI1NSwgMjU1KWApOworICAg
IHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBsIHMpYCwg
YHJnYigxMDEsIDEyNiwgMTUyKWApOworICAgIHRlc3RDb21wdXRlZChgaHNsKGZyb20gcmdiKDEw
JSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBsIC8gcylgLCBgcmdiYSgzMSwgNTEsIDcyLCAwLjQ5
NClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGggbCBsIC8gbClgLCBgcmdiYSg0MSwgNTEsIDYyLCAwLjIwNClgKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgYWxwaGEgLyBhbHBo
YSlgLCBgcmdiYSg2MSwgMTAxLCAxNDMsIDAuNClgKTsKKworICAgIC8vIFRlc3RpbmcgaW52YWxp
ZCBwZXJtdXRhdGlvbiAodHlwZXMgZG9uJ3QgbWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmViZWNjYXB1cnBsZSBzIGggbClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRl
c3RDb21wdXRlZChgaHNsKGZyb20gcmViZWNjYXB1cnBsZSBzIHMgcyAvIHMpYCwgYHJnYmEoMCwg
MCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgaCBo
IGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJv
bSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwg
MCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0
MCUpIHMgaCBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2wo
ZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBzIHMgcyAvIHMpYCwgYHJnYmEoMCwgMCwgMCwg
MClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUp
IGggaCBoIC8gaClgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHNs
KGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlg
LCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAg
ICB0ZXN0Q29tcHV0ZWQoYGhzbChmcm9tIHJlYmVjY2FwdXJwbGUgY2FsYyhoKSBjYWxjKHMpIGNh
bGMobCkpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7CisgICAgdGVzdENvbXB1dGVkKGBoc2woZnJv
bSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxjKGgpIGNhbGMocykgY2FsYyhsKSAvIGNhbGMo
YWxwaGEpKWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAuNClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52
YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVkKGBoc2woZnJvbSByZWJlY2NhcHVycGxlIGgg
MTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CkBAIC0yMjgsMTUgKzI2MCwyOSBAQAogICAg
IHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IDI1JSAv
IGFscGhhKWAsIGByZ2JhKDI2LCAxMDcsIDE5MSwgMC40KWApOwogICAgIHRlc3RDb21wdXRlZChg
aHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IGIgLyAuMjUpYCwgYHJnYmEoMjYs
IDUxLCA3NywgMC4yNSlgKTsKIAotICAgIC8vIFRlc3RpbmcgcGVybXV0YXRpb24gKHVuY2xlYXIg
aWYgdGhpcyBpcyBhbGxvd2VkIHBlci1zcGVjLCB3ZSBkaXNhbGxvdyBpdCkuCi0gICAgdGVzdENv
bXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYiB3KWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7Ci0gICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAv
IGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJl
YmVjY2FwdXJwbGUgaCB3IHcgLyB3KWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENv
bXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwg
MjAlLCAzMCUsIDQwJSkgaCBiIHcpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29t
cHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggYWxwaGEgdyAvIGIpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJnYigxMCUs
IDIwJSwgMzAlLCA0MCUpIGggdyB3IC8gdylgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAgIHRl
c3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCBhbHBoYSBhbHBo
YSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CisgICAgLy8gVGVzdGluZyB2YWxpZCBw
ZXJtdXRhdGlvbiAodHlwZXMgbWF0Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmVi
ZWNjYXB1cnBsZSBoIGIgdylgLCBgcmdiKDE1MywgMTAyLCAyMDQpYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgdyAvIGIpYCwgYHJnYmEoMjEzLCAy
MTMsIDIxMywgMC40KWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBs
ZSBoIHcgdyAvIHcpYCwgYHJnYmEoMTI4LCA1MSwgMjA0LCAwLjIpYCk7CisgICAgdGVzdENvbXB1
dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdi
KDEyOCwgMTI4LCAxMjgpYCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAy
MCUsIDMwJSwgNDAlKSBoIGIgdylgLCBgcmdiKDE3OCwgMjAzLCAyMjkpYCk7CisgICAgdGVzdENv
bXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBoIGFscGhhIHcgLyBiKWAs
IGByZ2JhKDEwMiwgMTY0LCAyMjksIDAuNjk4KWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZy
b20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkgaCB3IHcgLyB3KWAsIGByZ2JhKDI2LCAxMjYsIDIy
OSwgMC4xKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUs
IDQwJSkgaCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDEwMiwgMTI3LCAxNTMsIDAuNClg
KTsKKworICAgIC8vIFRlc3RpbmcgaW52YWxpZCBwZXJtdXRhdGlvbiAodHlwZXMgZG9uJ3QgbWF0
Y2gpLgorICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1cnBsZSB3IGggYilgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmViZWNjYXB1
cnBsZSBiIGIgYiAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
YGh3Yihmcm9tIHJlYmVjY2FwdXJwbGUgaCBoIGggLyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGFscGhhIGFscGhhIGFs
cGhhIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3
Yihmcm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIHcgYiBoKWAsIGByZ2JhKDAsIDAsIDAsIDAp
YCk7CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBi
IGIgYiAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihm
cm9tIHJnYigxMCUsIDIwJSwgMzAlLCA0MCUpIGggaCBoIC8gaClgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOworICAgIHRlc3RDb21wdXRlZChgaHdiKGZyb20gcmdiKDEwJSwgMjAlLCAzMCUsIDQwJSkg
YWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworCisgICAg
Ly8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGh3Yihmcm9tIHJlYmVj
Y2FwdXJwbGUgY2FsYyhoKSBjYWxjKHcpIGNhbGMoYikpYCwgYHJnYigxMDIsIDUxLCAxNTMpYCk7
CisgICAgdGVzdENvbXB1dGVkKGBod2IoZnJvbSByZ2IoMTAlLCAyMCUsIDMwJSwgNDAlKSBjYWxj
KGgpIGNhbGModykgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKWAsIGByZ2JhKDI2LCA1MSwgNzcsIDAu
NClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVk
KGBod2IoZnJvbSByZWJlY2NhcHVycGxlIGggMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CkBAIC0yODgsMTYgKzMzNCwyMiBAQAogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1
JSAyMCA1MCAvIDQwJSkgbCBhIDM1IC8gYWxwaGEpYCwgYGxhYigyNSUgMjAgMzUgLyAwLjQpYCk7
CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBsIGEgYiAv
IC4zNSlgLCBgbGFiKDI1JSAyMCA1MCAvIDAuMzUpYCk7CiAKLSAgICAvLyBUZXN0aW5nIHBlcm11
dGF0aW9uICh1bmNsZWFyIGlmIHRoaXMgaXMgYWxsb3dlZCBwZXItc3BlYywgd2UgZGlzYWxsb3cg
aXQpLgotICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCkgbCBiIGEpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICAvLyBUZXN0aW5nIHZhbGlkIHBlcm11dGF0aW9uICh0
eXBlcyBtYXRjaCkuCisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBs
IGIgYSlgLCBgbGFiKDI1JSA1MCAyMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxh
YigyNSUgMjAgNTApIGwgYSBhIC8gYSlgLCBgbGFiKDI1JSAyMCAyMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYiBhKWAsIGBsYWIoMjUlIDUw
IDIwKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkg
bCBhIGEgLyBhKWAsIGBsYWIoMjUlIDIwIDIwKWApOworCisgICAgLy8gVGVzdGluZyBpbnZhbGlk
IHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCiAgICAgdGVzdENvbXB1dGVkKGBsYWIo
ZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGFscGhhIGEgLyBiKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
Ci0gICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIGEgYSAvIGEpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUg
MjAgNTApIGwgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwotICAg
IHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1MCAvIDQwJSkgbCBiIGEpYCwgYHJn
YmEoMCwgMCwgMCwgMClgKTsKICAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAg
NTAgLyA0MCUpIGwgYWxwaGEgYSAvIGIpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0ZXN0
Q29tcHV0ZWQoYGxhYihmcm9tIGxhYigyNSUgMjAgNTAgLyA0MCUpIGwgYSBhIC8gYSlgLCBgcmdi
YSgwLCAwLCAwLCAwKWApOwogICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gbGFiKDI1JSAyMCA1
MCAvIDQwJSkgbCBhbHBoYSBhbHBoYSAvIGFscGhhKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAK
KyAgICAvLyBUZXN0aW5nIHdpdGggY2FsYygpLgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
bGFiKDI1JSAyMCA1MCkgY2FsYyhsKSBjYWxjKGEpIGNhbGMoYikpYCwgYGxhYigyNSUgMjAgNTAp
YCk7CisgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwIC8gNDAlKSBjYWxj
KGwpIGNhbGMoYSkgY2FsYyhiKSAvIGNhbGMoYWxwaGEpKWAsIGBsYWIoMjUlIDIwIDUwIC8gMC40
KWApOworCiAgICAgLy8gVGVzdGluZyBpbnZhbGlkIHZhbHVlcy4KICAgICB0ZXN0Q29tcHV0ZWQo
YGxhYihmcm9tIGxhYigyNSUgMjAgNTApIGwgMTAlIDEwKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CiAgICAgdGVzdENvbXB1dGVkKGBsYWIoZnJvbSBsYWIoMjUlIDIwIDUwKSBsIDEwIDEwJSlgLCBg
cmdiYSgwLCAwLCAwLCAwKWApOwpAQCAtMzU1LDExICs0MDcsMjggQEAKICAgICB0ZXN0Q29tcHV0
ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyAyNWRlZyAvIGFscGhhKWAsIGBs
Y2goNzAlIDQ1IDI1IC8gMC40KWApOwogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcw
JSA0NSAzMCAvIDQwJSkgbCBjIGggLyAuMjUpYCwgYGxjaCg3MCUgNDUgMzAgLyAwLjI1KWApOwog
Ci0gICAgLy8gVGVzdGluZyBwZXJtdXRhdGlvbiAodW5jbGVhciBpZiB0aGlzIGlzIGFsbG93ZWQg
cGVyLXNwZWMsIHdlIGRpc2FsbG93IGl0KS4KLSAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxj
aCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGwpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKLSAgICB0
ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGMgaCAvIGFscGhhKWAs
IGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAl
IDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBsKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7Ci0gICAg
dGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBh
bHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOworICAgIC8vIFRlc3RpbmcgdmFsaWQgcGVybXV0
YXRpb24gKHR5cGVzIG1hdGNoKS4KKyAgICAvLyBOT1RFOiAnYycgaXMgYSB2YWlsZCBodWUsIGFz
IGh1ZSBpcyA8YW5nbGU+fDxudW1iZXI+LgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNo
KDcwJSA0NSAzMCkgYWxwaGEgYyBoIC8gbClgLCBgbGNoKDEwMCUgNDUgMzAgLyAwLjcpYCk7Cisg
ICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIGMgYyAvIGFscGhhKWAs
IGBsY2goNzAlIDQ1IDQ1KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0
NSAzMCkgYWxwaGEgYyBoIC8gYWxwaGEpYCwgYGxjaCgxMDAlIDQ1IDMwKWApOworICAgIHRlc3RD
b21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgYWxwaGEgYyBjIC8gYWxwaGEpYCwgYGxj
aCgxMDAlIDQ1IDQ1KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAz
MCAvIDQwJSkgYWxwaGEgYyBoIC8gbClgLCBgbGNoKDQwJSA0NSAzMCAvIDAuNylgKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGwgYyBjIC8gYWxwaGEp
YCwgYGxjaCg3MCUgNDUgNDUgLyAwLjQpYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBs
Y2goNzAlIDQ1IDMwIC8gNDAlKSBhbHBoYSBjIGggLyBhbHBoYSlgLCBgbGNoKDQwJSA0NSAzMCAv
IDAuNClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUp
IGFscGhhIGMgYyAvIGFscGhhKWAsIGBsY2goNDAlIDQ1IDQ1IC8gMC40KWApOworCisgICAgLy8g
VGVzdGluZyBpbnZhbGlkIHBlcm11dGF0aW9uICh0eXBlcyBkb24ndCBtYXRjaCkuCisgICAgdGVz
dENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBoIGwgYyAvIGFscGhhKWAsIGByZ2Jh
KDAsIDAsIDAsIDApYCk7CisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMw
KSBjIGMgYyAvIGMpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxj
aChmcm9tIGxjaCg3MCUgNDUgMzApIGFscGhhIGFscGhhIGFscGhhIC8gYWxwaGEpYCwgYHJnYmEo
MCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAg
LyA0MCUpIGggbCBjIC8gYWxwaGEpYCwgYHJnYmEoMCwgMCwgMCwgMClgKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoYGxjaChmcm9tIGxjaCg3MCUgNDUgMzAgLyA0MCUpIGMgYyBjIC8gYylgLCBgcmdiYSgw
LCAwLCAwLCAwKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAv
IDQwJSkgYWxwaGEgYWxwaGEgYWxwaGEgLyBhbHBoYSlgLCBgcmdiYSgwLCAwLCAwLCAwKWApOwor
CisgICAgLy8gVGVzdGluZyB3aXRoIGNhbGMoKS4KKyAgICB0ZXN0Q29tcHV0ZWQoYGxjaChmcm9t
IGxjaCg3MCUgNDUgMzApIGNhbGMobCkgY2FsYyhjKSBjYWxjKGgpKWAsIGBsY2goNzAlIDQ1IDMw
KWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCAvIDQwJSkgY2Fs
YyhsKSBjYWxjKGMpIGNhbGMoaCkgLyBjYWxjKGFscGhhKSlgLCBgbGNoKDcwJSA0NSAzMCAvIDAu
NClgKTsKIAogICAgIC8vIFRlc3RpbmcgaW52YWxpZCB2YWx1ZXMuCiAgICAgdGVzdENvbXB1dGVk
KGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSBsIDEwJSBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7
CkBAIC0zNzMsNiArNDQyLDQ0IEBACiAgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSBsY2goNzAl
IDQ1IDMwKSBsaWdodG5lc3MgYyBoKWAsIGByZ2JhKDAsIDAsIDAsIDApYCk7CiAgICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSBsY2goNzAlIDQ1IDMwKSB4IGMgaClgLCBgcmdiYSgwLCAwLCAwLCAw
KWApOwogICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gbGNoKDcwJSA0NSAzMCkgbCBnIGIpYCwg
YHJnYmEoMCwgMCwgMCwgMClgKTsKKworCisgICAgLy8gU3BlYyBleGFtcGxlczoKKyAgICAvLyBF
eGFtcGxlIDExLgorICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gdmFyKC0tYmctY29sb3IpIHIg
ZyBiIC8gODAlKWAsIGByZ2JhKDAsIDAsIDI1NSwgMC44KWApOworICAgIAorICAgIC8vIEV4YW1w
bGUgMTIuCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1jb2xvcikgY2FsYyhsIC8g
MikgYyBoKWAsIGBsY2goMjMuMTM4OTcxJSA2Ny45ODk3MTYgMTM0LjM5MTI1KWApOworICAgIAor
ICAgIC8vIEV4YW1wbGUgMTMuCisgICAgdGVzdENvbXB1dGVkKGByZ2IoZnJvbSB2YXIoLS1jb2xv
cikgY2FsYyhyICogLjMgKyBnICogLjU5ICsgYiAqIC4xMSkgY2FsYyhyICogLjMgKyBnICogLjU5
ICsgYiAqIC4xMSkgY2FsYyhyICogLjMgKyBnICogLjU5ICsgYiAqIC4xMSkpYCwgYHJnYig3Niwg
NzYsIDc2KWApCisgICAgdGVzdENvbXB1dGVkKGBsY2goZnJvbSB2YXIoLS1jb2xvcikgbCAwIGgp
YCwgYGxjaCg0Ni4yNzc5NDMlIDAgMTM0LjM5MTI1KWApCisKKyAgICAvLyBFeGFtcGxlIDE0Lgor
ICAgIHRlc3RDb21wdXRlZChgcmdiKGZyb20gaW5kaWFucmVkIDI1NSBnIGIpYCwgYHJnYigyNTUs
IDkyLCA5MilgKTsKKworICAgIC8vIEV4YW1wbGUgMTUuCisgICAgdGVzdENvbXB1dGVkKGBoc2wo
ZnJvbSB2YXIoLS1hY2NlbnQpIGNhbGMoaCArIDE4MGRlZykgcyBsKWAsIGByZ2IoMTc4LCAzMiwg
NDApYCk7CisKKyAgICAvLyBFeGFtcGxlIDE2LgorICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20g
dmFyKC0tbXljb2xvcikgbCBhIGIgLyAxMDAlKWAsIGBsYWIoNjIuNzUxOTIzJSA1Mi40NTgwMiAt
MzQuMTE3MjgzKWApOworICAgIHRlc3RDb21wdXRlZChgbGFiKGZyb20gdmFyKC0tbXljb2xvcikg
bCBhIGIgLyBjYWxjKGFscGhhICogMC44KSlgLCBgbGFiKDYyLjc1MTkyMyUgNTIuNDU4MDIgLTM0
LjExNzI4MyAvIDAuOClgKTsKKyAgICB0ZXN0Q29tcHV0ZWQoYGxhYihmcm9tIHZhcigtLW15Y29s
b3IpIGwgYSBiIC8gY2FsYyhhbHBoYSAtIDIwJSkpYCwgYGxhYig2Mi43NTE5MjMlIDUyLjQ1ODAy
IC0zNC4xMTcyODMgLyAwLjgpYCk7CisgICAgCisgICAgLy8gRXhhbXBsZSAxNy4KKyAgICB0ZXN0
Q29tcHV0ZWQoYGxhYihmcm9tIHZhcigtLW15Y29sb3IpIGwgMCAwKWAsIGBsYWIoNjIuNzUxOTIz
JSAwIDApYCk7CisKKyAgICAvLyBFeGFtcGxlIDE4LgorICAgIHRlc3RDb21wdXRlZChgbGNoKGZy
b20gcGVydSBjYWxjKGwgKiAwLjgpIGMgaClgLCBgbGNoKDQ5LjgwMTM4JSA1NC4wMDMyOTYgNjMu
NjgwMzE3KWApOworCisgICAgLy8gRXhhbXBsZSAxOS4KKyAgICB0ZXN0Q29tcHV0ZWQoYExDSChm
cm9tIHZhcigtLWFjY2VudCkgbCBjIGNhbGMoaCArIDE4MGRlZykpYCwgYGxjaCg2NS40OTQ3MyUg
MzkuNDQ2OTAzIDEwLjExNDQ3MSlgKTsKKworICAgIC8vIEV4YW1wbGUgMjAuCisgICAgdGVzdENv
bXB1dGVkKGBsY2goZnJvbSB2YXIoLS1teWNvbG9yKSBsIDAgaClgLCBgbGNoKDYyLjc1MTkyMyUg
MCAzMjYuOTYxMTIpYCk7CisgICAgdGVzdENvbXB1dGVkKGB2YXIoLS1teWdyYXkpYCwgYGxjaCg2
Mi43NTE5MjMlIDAgMzI2Ljk2MTEyKWApOworICAgIHRlc3RDb21wdXRlZChgbGNoKGZyb20gdmFy
KC0tbXlncmF5KSBsIDMwIGgpYCwgYGxjaCg2Mi43NTE5MjMlIDMwIDMyNi45NjExMilgKTsKKyAg
ICAKIDwvc2NyaXB0PgogICAgIAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>