<?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>229703</bug_id>
          
          <creation_ts>2021-08-31 02:29:11 -0700</creation_ts>
          <short_desc>[JSC] Implement Temporal.TimeZone</short_desc>
          <delta_ts>2021-09-03 13:24:22 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>223166</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1788832</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-31 02:29:11 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789596</commentid>
    <comment_count>1</comment_count>
      <attachid>437111</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-01 21:31:40 -0700</bug_when>
    <thetext>Created attachment 437111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789608</commentid>
    <comment_count>2</comment_count>
      <attachid>437118</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 00:16:33 -0700</bug_when>
    <thetext>Created attachment 437118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789618</commentid>
    <comment_count>3</comment_count>
      <attachid>437122</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 01:01:40 -0700</bug_when>
    <thetext>Created attachment 437122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789930</commentid>
    <comment_count>4</comment_count>
      <attachid>437122</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-09-02 15:24:48 -0700</bug_when>
    <thetext>Comment on attachment 437122
Patch

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

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:42
&gt; +int32_t parseDecimalInt32(const CharType* characters, unsigned length)

Nice! You should be able to remove the parseInt.h include too.

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:255
&gt; +    //  Maximum and minimum values are +-23:59:59.999999999 = +-86399999999999ns, which can be represented by int64_t / double&apos;s integer part.

nit: Maybe use ± so that it doesn&apos;t look like &quot;+-&quot; can occur?

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:256
&gt; +    return readCharactersForParsing(string, [](auto buffer) -&gt; std::optional&lt;int64_t&gt; {

I feel like it&apos;s useful to keep this part in a separate function to avoid having a huge indented lambda, but what do you think?

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:288
&gt; +        ASSERT(buffer.hasCharactersRemaining());

This one seems a little excessive, right after checking atEnd().

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:289
&gt; +        bool splittedByColon = false;

nit: Technically the participle is still &quot;split&quot;, not &quot;splitted&quot;. English is weird...

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:313
&gt; +        ASSERT(buffer.hasCharactersRemaining());

Ditto (to L288).

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:339
&gt; +        ASSERT(buffer.hasCharactersRemaining());

Ditto (to L288).

&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:380
&gt; +        auto fraction = WTF::numberToStringUnsigned&lt;Vector&lt;LChar, 9&gt;&gt;(nanoseconds);

Clever!

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:210
&gt; +#include &quot;TemporalTimeZoneConstructor.h&quot;

I don&apos;t think you need to include the Constructor header.

&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:65
&gt; +std::optional&lt;TimeZoneID&gt; TemporalTimeZone::isValidTimeZoneName(StringView string)

Hmm, this name doesn&apos;t make sense given its type. How about something more like &quot;idForTimeZoneName&quot;?

&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:98
&gt; +            return jsCast&lt;JSObject*&gt;(timeZoneLike);

May as well use timeZoneLikeObject, since you&apos;ve got it. :)

&gt; JSTests/stress/temporal-timezone.js:21
&gt; +let failures = [

&quot;2059:00&quot; might be a good one to add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790088</commentid>
    <comment_count>5</comment_count>
      <attachid>437122</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-03 01:43:31 -0700</bug_when>
    <thetext>Comment on attachment 437122
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:42
&gt;&gt; +int32_t parseDecimalInt32(const CharType* characters, unsigned length)
&gt; 
&gt; Nice! You should be able to remove the parseInt.h include too.

Ah, still parseDuration etc. is using that.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:255
&gt;&gt; +    //  Maximum and minimum values are +-23:59:59.999999999 = +-86399999999999ns, which can be represented by int64_t / double&apos;s integer part.
&gt; 
&gt; nit: Maybe use ± so that it doesn&apos;t look like &quot;+-&quot; can occur?

Changed.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:256
&gt;&gt; +    return readCharactersForParsing(string, [](auto buffer) -&gt; std::optional&lt;int64_t&gt; {
&gt; 
&gt; I feel like it&apos;s useful to keep this part in a separate function to avoid having a huge indented lambda, but what do you think?

Sounds good! Changed.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:288
&gt;&gt; +        ASSERT(buffer.hasCharactersRemaining());
&gt; 
&gt; This one seems a little excessive, right after checking atEnd().

Removed.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:289
&gt;&gt; +        bool splittedByColon = false;
&gt; 
&gt; nit: Technically the participle is still &quot;split&quot;, not &quot;splitted&quot;. English is weird...

Ah! Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:313
&gt;&gt; +        ASSERT(buffer.hasCharactersRemaining());
&gt; 
&gt; Ditto (to L288).

Removed.

&gt;&gt; Source/JavaScriptCore/runtime/ISO8601.cpp:339
&gt;&gt; +        ASSERT(buffer.hasCharactersRemaining());
&gt; 
&gt; Ditto (to L288).

Removed.

&gt;&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:210
&gt;&gt; +#include &quot;TemporalTimeZoneConstructor.h&quot;
&gt; 
&gt; I don&apos;t think you need to include the Constructor header.

Right! Removed.

&gt;&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:65
&gt;&gt; +std::optional&lt;TimeZoneID&gt; TemporalTimeZone::isValidTimeZoneName(StringView string)
&gt; 
&gt; Hmm, this name doesn&apos;t make sense given its type. How about something more like &quot;idForTimeZoneName&quot;?

Changed

&gt;&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:98
&gt;&gt; +            return jsCast&lt;JSObject*&gt;(timeZoneLike);
&gt; 
&gt; May as well use timeZoneLikeObject, since you&apos;ve got it. :)

Right :) Changed.

&gt;&gt; JSTests/stress/temporal-timezone.js:21
&gt;&gt; +let failures = [
&gt; 
&gt; &quot;2059:00&quot; might be a good one to add.

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790089</commentid>
    <comment_count>6</comment_count>
      <attachid>437253</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-03 01:44:00 -0700</bug_when>
    <thetext>Created attachment 437253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790244</commentid>
    <comment_count>7</comment_count>
      <attachid>437253</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-09-03 10:52:18 -0700</bug_when>
    <thetext>Comment on attachment 437253
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:36
&gt; +static constexpr bool verbose = false;

Seems like you&apos;re not actually using this at present.

&gt; Source/JavaScriptCore/runtime/TemporalTimeZonePrototype.cpp:31
&gt; +#include &quot;IntlObject.h&quot;

Looks like you&apos;re already getting this from TemporalTimeZone.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790320</commentid>
    <comment_count>8</comment_count>
      <attachid>437253</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-03 13:05:50 -0700</bug_when>
    <thetext>Comment on attachment 437253
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/TemporalTimeZone.cpp:36
&gt;&gt; +static constexpr bool verbose = false;
&gt; 
&gt; Seems like you&apos;re not actually using this at present.

Removed

&gt;&gt; Source/JavaScriptCore/runtime/TemporalTimeZonePrototype.cpp:31
&gt;&gt; +#include &quot;IntlObject.h&quot;
&gt; 
&gt; Looks like you&apos;re already getting this from TemporalTimeZone.h.

Removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790330</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-03 13:23:06 -0700</bug_when>
    <thetext>Committed r282018 (241323@main): &lt;https://commits.webkit.org/241323@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790331</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-03 13:24:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/82736513&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437111</attachid>
            <date>2021-09-01 21:31:40 -0700</date>
            <delta_ts>2021-09-02 00:16:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229703-20210901213139.patch</filename>
            <type>text/plain</type>
            <size>67678</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZjAzNWQxNWNiNWVhNjgwNGJmOTIyOWYxNGNmYTFlMmZkN2NkYTZmLi45MjIwODAyNjIyNjRiYjVj
MmQ2ODU5ZDE5MTczYWYzZTY4ODg2MjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMS0wOS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBydW50aW1lL0lTTzg2MDEuY3Bw
OgorICAgICAgICAoSlNDOjpJU084NjAxOjpwYXJzZURlY2ltYWxJbnQzMik6CisgICAgICAgIChK
U0M6OklTTzg2MDE6OmhhbmRsZUZyYWN0aW9uKToKKyAgICAgICAgKEpTQzo6SVNPODYwMTo6cGFy
c2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQpOgorICAgICAgICAoSlNDOjpJU084NjAxOjpmb3Jt
YXRUaW1lWm9uZU9mZnNldFN0cmluZyk6CisgICAgICAgICogcnVudGltZS9JU084NjAxLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6aW50bEF2YWls
YWJsZVRpbWVab25lcyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZVRpbWVab25lcyk6CisgICAg
ICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp0aW1l
Wm9uZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE5vdy5jcHA6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9U
ZW1wb3JhbE5vdy5oOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpjcmVhdGVUaW1lWm9uZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1l
L1RlbXBvcmFsVGltZVpvbmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1l
Wm9uZTo6Y3JlYXRlRnJvbUlEKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZTo6Y3Jl
YXRlRnJvbVVUQ09mZnNldCk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OlRlbXBvcmFsVGlt
ZVpvbmUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lOjppc1ZhbGlkVGltZVpvbmVO
YW1lKToKKyAgICAgICAgKEpTQzo6cGFyc2VUZW1wb3JhbFRpbWVab25lU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZTo6ZnJvbSk6CisgICAgICAgICogcnVudGltZS9UZW1w
b3JhbFRpbWVab25lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0lTTzg2MDEuaC4KKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rv
ci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9y
OjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRp
bWVab25lQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
U084NjAxLmguCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OlRlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaC4KKyAgICAgICAgKiBydW50aW1lL1ZN
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMjEtMDktMDEgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhjZXB0
aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmaXggZm9yIHIyNDExNzEuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE0Yjk5YjNmNDI2
NTMzOWVjNjNlZDY3ZmZhNGE3YjQxMmRjNDRiOTguLjkyNzgwYmZlYWJlMTMxN2Q3N2ZkMGJjNjlk
NTIxZmJjMzVhYmNiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMDEgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBJbXBsZW1lbnQgVGVt
cG9yYWwuVGltZVpvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOgorICAgICAgICAq
IHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg6CisKIDIwMjEtMDgtMjYgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEN1dCBkb3duIG9uIHVzZSBvZiBDRkdldFR5
cGVJRCwgdXNpbmcgZHluYW1pY19jZl9jYXN0IGluc3RlYWQ7IHJlbGF0ZWQgc3RyZWFtbGluaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTE2MzQ3ZDgzOGI5NDEyZmM4
ZDk0MzlkZDI1OWNlZWEzYjRiNzg0Zi4uNjQ1ZjAzZjg0M2JiMTBlNWQ4Njk2NzYwNGU0NGMzMTI0
MDJmNDIxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTExLDcgKzEx
MSwxMCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfT0JKRUNUX0xVVF9TT1VSQ0VTCiAgICAgcnVudGlt
ZS9UZW1wb3JhbENhbGVuZGFyUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvVGVtcG9yYWxEdXJh
dGlvbkNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvVGVtcG9yYWxEdXJhdGlvblByb3RvdHlw
ZS5jcHAKKyAgICBydW50aW1lL1RlbXBvcmFsTm93LmNwcAogICAgIHJ1bnRpbWUvVGVtcG9yYWxP
YmplY3QuY3BwCisgICAgcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3BwCisg
ICAgcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcAogCiAgICAgd2FzbS9qcy9K
U1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20vanMvSlNUb1dhc21JQ0NhbGxlZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKaW5kZXggYTU2NWY3MzdlMGJmMjVlZDE4MzVhM2E4MTNlNTRlOTdiZWEyNDNlMy4uY2U1ZjYy
ODhhYWEyN2NiNzgxN2JlYWUxNDQzNzZlYTI4YWZhZTYzZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE3Myw3
ICsxNzMsMTAgQEAgJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbENhbGVuZGFyQ29uc3Ry
dWN0b3IuY3BwCiAkKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsQ2FsZW5kYXJQcm90b3R5
cGUuY3BwCiAkKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rv
ci5jcHAKICQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5j
cHAKKyQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwCiAkKFBST0pFQ1RfRElS
KS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcAorJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1w
b3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3BwCiskKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuY3BwCiAkKFBST0pFQ1RfRElSKS91Y2QvQ2FzZUZvbGRpbmcu
dHh0CiAkKFBST0pFQ1RfRElSKS91Y2QvRGVyaXZlZEJpbmFyeVByb3BlcnRpZXMudHh0CiAkKFBS
T0pFQ1RfRElSKS91Y2QvRGVyaXZlZENvcmVQcm9wZXJ0aWVzLnR4dApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4
IDYzNjFkNDdhMzMyYjVmYzVlMDc0YzVhYjE1ZjY3NDdjOTkzNDdmNzMuLjFiMDU1YzkyMmMwOTRh
NTk1ODQyNjA4NDFkY2VkZmNhYTczNzY1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTcwLDcgKzcwLDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9U
ZW1wb3JhbENhbGVuZGFyQ29uc3RydWN0b3IuCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9yYWxDYWxlbmRhclByb3RvdHlwZS5sdXQuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBv
cmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUubHV0LmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1w
b3JhbE5vdy5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFT
Y3JpcHRDb3JlL1RlbXBvcmFsT2JqZWN0Lmx1dC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmx1
dC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUv
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1VuaWNvZGVQYXR0ZXJuVGFibGVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9XYXNtQjNJUkdl
bmVyYXRvcklubGluZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0ph
dmFTY3JpcHRDb3JlL1dhc21MTEludEdlbmVyYXRvcklubGluZXMuaApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiYTM3Njk3Nzc0ZTUwODM4NjcxNmE4ZTA4
ODhmNTFiZWZiZDI2ZGZmLi44ODE5MjdlMTdiZGEyMzhkN2RhY2VmMWQ2ZWI1YzNjM2I3NDhiMzc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTk1LDcg
KzE5NSwxMCBAQCBPQkpFQ1RfTFVUX0hFQURFUlMgPSBcCiAgICAgVGVtcG9yYWxDYWxlbmRhclBy
b3RvdHlwZS5sdXQuaCBcCiAgICAgVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yLmx1dC5oIFwK
ICAgICBUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmx1dC5oIFwKKyAgICBUZW1wb3JhbE5vdy5s
dXQuaCBcCiAgICAgVGVtcG9yYWxPYmplY3QubHV0LmggXAorICAgIFRlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5sdXQuaCBcCisgICAgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5sdXQuaCBc
CiAgICAgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUubHV0LmggXAogICAgIFdlYkFzc2VtYmx5R2xv
YmFsQ29uc3RydWN0b3IubHV0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5
NmUyMmQzZGU0MTYyM2U0ZjE4ZTI1MjE5NWExNTZmODA3NjFmY2NhLi5mZjI0ODgxNTMzYWQ4MjQ4
MzM2YWQzODFhNjM4N2UzYzYyMzUwN2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTgyNyw2ICsxODI3LDkgQEAKIAkJRTMwNzE3OEMyNEM3ODI5ODAwREYwNjQ0IC8qIEludGxM
b2NhbGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQUZGOTMwMjQ1QTNDRkMwMEM5QkEzQiAvKiBJbnRsTG9jYWxlUHJvdG90eXBlLmgg
Ki87IH07CiAJCUUzMDcxNzhEMjRDNzgyOUEwMERGMDY0NCAvKiBJbnRsTG9jYWxlQ29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzQUZG
OTJDMjQ1QTNDRkEwMEM5QkEzQiAvKiBJbnRsTG9jYWxlQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJ
RTMwNzE3OEUyNEM3ODI5RDAwREYwNjQ0IC8qIEludGxMb2NhbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzQUZGOTJCMjQ1QTNDRjkwMEM5QkEzQiAv
KiBJbnRsTG9jYWxlLmggKi87IH07CisJCUUzMEU4QTU0MjZERTJFNDgwMERBNDkxNSAvKiBUZW1w
b3JhbFRpbWVab25lUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzBFOEE0RTI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZVByb3RvdHlwZS5oICovOyB9OworCQlFMzBFOEE1NjI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9y
YWxUaW1lWm9uZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTMwRThBNTAyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmUuaCAqLzsgfTsK
KwkJRTMwRThBNTcyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwRThB
NTEyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oICovOyB9
OwogCQlFMzExNzlBQTIyODgzODYxMDA1MTRCMkMgLyogU3ltYm9sVGFibGVPclNjb3BlRGVwdGgu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTE3OUE5
MjI4ODM4NUQwMDUxNEIyQyAvKiBTeW1ib2xUYWJsZU9yU2NvcGVEZXB0aC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMTYxODEzMUVDNUZFMTcw
MDA2QTIxOCAvKiBET01Bbm5vdGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzE2MTgxMDFFQzVGRTA4MDAwNkEyMTggLyogRE9NQW5ub3RhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
MTYxODE1MUVDNUZFMjcwMDA2QTIxOCAvKiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTYxODEyMUVDNUZF
MDgwMDA2QTIxOCAvKiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTA3OSw2ICs1MDgyLDEyIEBACiAJ
CUUzMDcxNzgwMjRDNzgyNDcwMERGMDY0NCAvKiBJbnRsU2VnbWVudGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEludGxTZWdtZW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzA3MTc4MTI0Qzc4MjQ3MDBERjA2NDQgLyogSW50bFNlZ21lbnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnRsU2VnbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDcx
NzgyMjRDNzgyNDcwMERGMDY0NCAvKiBJbnRsU2VnbWVudGVyQ29uc3RydWN0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNEMyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGlt
ZVpvbmVQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzMEU4QTREMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBvcmFsVGltZVpvbmUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzBFOEE0RTI2REUyRTQ3MDBEQTQ5MTUgLyog
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzMEU4QTRGMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGVtcG9yYWxU
aW1lWm9uZUNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMw
RThBNTAyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGVtcG9yYWxUaW1lWm9uZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMzBFOEE1MTI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBvcmFs
VGltZVpvbmVDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzEx
NzlBOTIyODgzODVEMDA1MTRCMkMgLyogU3ltYm9sVGFibGVPclNjb3BlRGVwdGguaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3ltYm9sVGFibGVPclNjb3BlRGVwdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTMxNjE4MTAxRUM1RkUwODAwMDZBMjE4IC8qIERPTUFubm90YXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQW5ub3RhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzE2MTgxMTFFQzVGRTA4MDAwNkEyMTggLyogRE9NQXR0cmli
dXRlR2V0dGVyU2V0dGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERPTUF0dHJpYnV0ZUdldHRlclNldHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03OTk4LDYgKzgwMDcsMTIgQEAKIAkJCQlGNkYxNTAxODI2OTNEMzNEMDA0Qjk4RUYgLyog
VGVtcG9yYWxOb3cuaCAqLywKIAkJCQlGNkYxNTAxOTI2OTNEMzNFMDA0Qjk4RUYgLyogVGVtcG9y
YWxPYmplY3QuY3BwICovLAogCQkJCUY2RjE1MDFBMjY5M0QzM0UwMDRCOThFRiAvKiBUZW1wb3Jh
bE9iamVjdC5oICovLAorCQkJCUUzMEU4QTREMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRp
bWVab25lLmNwcCAqLywKKwkJCQlFMzBFOEE1MDI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9yYWxU
aW1lWm9uZS5oICovLAorCQkJCUUzMEU4QTRGMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRp
bWVab25lQ29uc3RydWN0b3IuY3BwICovLAorCQkJCUUzMEU4QTUxMjZERTJFNDgwMERBNDkxNSAv
KiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCAqLywKKwkJCQlFMzBFOEE0QzI2REUyRTQ3
MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAgKi8sCisJCQkJRTMwRThB
NEUyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuaCAqLywKIAkJ
CQkwRkEyQzE3OTE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmNwcCAqLywKIAkJ
CQkwRkEyQzE3QTE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmggKi8sCiAJCQkJ
RkUyRTZBN0ExRDZFQTVGRTAwNjBGODk2IC8qIFRocm93U2NvcGUuY3BwICovLApAQCAtMTA3MDAs
NiArMTA3MTUsOSBAQAogCQkJCUEzQzdFREJBMjZCMERCMzgwMDRDMzRDNSAvKiBUZW1wb3JhbER1
cmF0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQzdFREI2MjZCMERCMzgw
MDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNkYxNTAyMTI2OTNENDUwMDA0Qjk4RUYgLyogVGVtcG9yYWxPYmplY3QubHV0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMzBFOEE1NjI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMwRThBNTcyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBv
cmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMwRThBNTQyNkRF
MkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDRBN0I0MjBCRjY4RDkwMDIyQjE3MSAvKiBUZXJtaW5hdGVkQ29k
ZU9yaWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBMkMxN0MxN0Q3Q0Y4NDAwOUQwMTVGIC8q
IFRlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50
eHQKaW5kZXggNmI2ODVlYTQ0YzU5MGRiZWQ2MjQ1ZDFjMmUzZmFiZjNmYjQ2NWZhYi4uMzI4Zjky
ZjViMmZiMjA1YzgzODc4MjI0MTlhNTA4NGUwZmExZjdjYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTAxOSw2ICsxMDE5LDkgQEAgcnVudGltZS9UZW1wb3JhbER1cmF0aW9uQ29u
c3RydWN0b3IuY3BwCiBydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUuY3BwCiBydW50
aW1lL1RlbXBvcmFsTm93LmNwcAogcnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAKK3J1bnRpbWUv
VGVtcG9yYWxUaW1lWm9uZS5jcHAKK3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9y
LmNwcAorcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcAogcnVudGltZS9UZXN0
UnVubmVyVXRpbHMuY3BwCiBydW50aW1lL1Rocm93U2NvcGUuY3BwCiBydW50aW1lL1R5cGVMb2Nh
dGlvbkNhY2hlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SVNPODYwMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcApp
bmRleCAzNWJkMzRkMGQwZDhiYWQ3YzE0MGMyODM4ZGU0NjZmODliOTM3N2EyLi4zMTM5MjIzMTUw
ZDVlNDg4NmMyODU0NzRlMTAxN2Y1Y2ZkZWFhZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JU084NjAxLmNwcApAQCAtMzIsNiArMzIsMjMgQEAKIG5hbWVzcGFjZSBKU0Mgewog
bmFtZXNwYWNlIElTTzg2MDEgewogCitzdGF0aWMgY29uc3RleHByIGludDY0X3QgbnNQZXJIb3Vy
ID0gMTAwMExMICogMTAwMCAqIDEwMDAgKiA2MCAqIDYwOworc3RhdGljIGNvbnN0ZXhwciBpbnQ2
NF90IG5zUGVyTWludXRlID0gMTAwMExMICogMTAwMCAqIDEwMDAgKiA2MDsKK3N0YXRpYyBjb25z
dGV4cHIgaW50NjRfdCBuc1BlclNlY29uZCA9IDEwMDBMTCAqIDEwMDAgKiAxMDAwOworc3RhdGlj
IGNvbnN0ZXhwciBpbnQ2NF90IG5zUGVyTWlsbGlzZWNvbmQgPSAxMDAwTEwgKiAxMDAwOworc3Rh
dGljIGNvbnN0ZXhwciBpbnQ2NF90IG5zUGVyTWljcm9zZWNvbmQgPSAxMDAwTEw7CisKK3RlbXBs
YXRlPHR5cGVuYW1lIENoYXJUeXBlPgoraW50MzJfdCBwYXJzZURlY2ltYWxJbnQzMihjb25zdCBD
aGFyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGludDMyX3QgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsr
aW5kZXgpIHsKKyAgICAgICAgQVNTRVJUKGlzQVNDSUlEaWdpdChjaGFyYWN0ZXJzW2luZGV4XSkp
OworICAgICAgICByZXN1bHQgPSAocmVzdWx0ICogMTApICsgY2hhcmFjdGVyc1tpbmRleF0gLSAn
MCc7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIC8vIER1cmF0aW9uSGFuZGxlRnJh
Y3Rpb25zICggZkhvdXJzLCBtaW51dGVzLCBmTWludXRlcywgc2Vjb25kcywgZlNlY29uZHMsIG1p
bGxpc2Vjb25kcywgZk1pbGxpc2Vjb25kcywgbWljcm9zZWNvbmRzLCBmTWljcm9zZWNvbmRzLCBu
YW5vc2Vjb25kcywgZk5hbm9zZWNvbmRzICkKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10
ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLWR1cmF0aW9uaGFuZGxlZnJhY3Rpb25zCiBzdGF0aWMgdm9p
ZCBoYW5kbGVGcmFjdGlvbihEdXJhdGlvbiYgZHVyYXRpb24sIGludCBmYWN0b3IsIFN0cmluZ1Zp
ZXcgZnJhY3Rpb25TdHJpbmcsIFRlbXBvcmFsVW5pdCBmcmFjdGlvblR5cGUpCkBAIC00Myw5ICs2
MCw5IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUZyYWN0aW9uKER1cmF0aW9uJiBkdXJhdGlvbiwgaW50
IGZhY3RvciwgU3RyaW5nVmlldyBmcmFjdGlvblN0CiAgICAgICAgIFZlY3RvcjxMQ2hhciwgOT4g
cGFkZGVkKDksICcwJyk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcmFjdGlv
blN0cmluZy5sZW5ndGgoKTsgaSsrKQogICAgICAgICAgICAgcGFkZGVkW2ldID0gZnJhY3Rpb25T
dHJpbmdbaV07Ci0gICAgICAgIGR1cmF0aW9uLnNldE1pbGxpc2Vjb25kcyhmYWN0b3IgKiBwYXJz
ZUludCh7IHBhZGRlZC5kYXRhKCksIDMgfSwgMTApKTsKLSAgICAgICAgZHVyYXRpb24uc2V0TWlj
cm9zZWNvbmRzKGZhY3RvciAqIHBhcnNlSW50KHsgJnBhZGRlZC5kYXRhKClbM10sIDMgfSwgMTAp
KTsKLSAgICAgICAgZHVyYXRpb24uc2V0TmFub3NlY29uZHMoZmFjdG9yICogcGFyc2VJbnQoeyAm
cGFkZGVkLmRhdGEoKVs2XSwgMyB9LCAxMCkpOworICAgICAgICBkdXJhdGlvbi5zZXRNaWxsaXNl
Y29uZHMoZmFjdG9yICogcGFyc2VEZWNpbWFsSW50MzIocGFkZGVkLmRhdGEoKSwgMykpOworICAg
ICAgICBkdXJhdGlvbi5zZXRNaWNyb3NlY29uZHMoZmFjdG9yICogcGFyc2VEZWNpbWFsSW50MzIo
cGFkZGVkLmRhdGEoKSArIDMsIDMpKTsKKyAgICAgICAgZHVyYXRpb24uc2V0TmFub3NlY29uZHMo
ZmFjdG9yICogcGFyc2VEZWNpbWFsSW50MzIocGFkZGVkLmRhdGEoKSArIDYsIDMpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjI2LDUgKzI0MywxNTQgQEAgc3RkOjpvcHRpb25hbDxE
dXJhdGlvbj4gcGFyc2VEdXJhdGlvbihTdHJpbmdWaWV3IHN0cmluZykKICAgICB9KTsKIH0KIAor
c3RkOjpvcHRpb25hbDxpbnQ2NF90PiBwYXJzZVRpbWVab25lTnVtZXJpY1VUQ09mZnNldChTdHJp
bmdWaWV3IHN0cmluZykKK3sKKyAgICAvLyBUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQgOgorICAg
IC8vICAgICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENPZmZzZXRIb3VyCisgICAg
Ly8gICAgIFRpbWVab25lVVRDT2Zmc2V0U2lnbiBUaW1lWm9uZVVUQ09mZnNldEhvdXIgOiBUaW1l
Wm9uZVVUQ09mZnNldE1pbnV0ZQorICAgIC8vICAgICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGlt
ZVpvbmVVVENPZmZzZXRIb3VyIFRpbWVab25lVVRDT2Zmc2V0TWludXRlCisgICAgLy8gICAgIFRp
bWVab25lVVRDT2Zmc2V0U2lnbiBUaW1lWm9uZVVUQ09mZnNldEhvdXIgOiBUaW1lWm9uZVVUQ09m
ZnNldE1pbnV0ZSA6IFRpbWVab25lVVRDT2Zmc2V0U2Vjb25kIFRpbWVab25lVVRDT2Zmc2V0RnJh
Y3Rpb25bb3B0XQorICAgIC8vICAgICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENP
ZmZzZXRIb3VyIFRpbWVab25lVVRDT2Zmc2V0TWludXRlIFRpbWVab25lVVRDT2Zmc2V0U2Vjb25k
W29wdF0KKyAgICAvLworICAgIC8vICBNYXhpbXVtIGFuZCBtaW5pbXVtIHZhbHVlcyBhcmUgKy0y
Mzo1OTo1OS45OTk5OTk5OTkgPSArLTg2Mzk5OTk5OTk5OTk5bnMsIHdoaWNoIGNhbiBiZSByZXBy
ZXNlbnRlZCBieSBpbnQ2NF90IC8gZG91YmxlJ3MgaW50ZWdlciBwYXJ0LgorICAgIHJldHVybiBy
ZWFkQ2hhcmFjdGVyc0ZvclBhcnNpbmcoc3RyaW5nLCBbXShhdXRvIGJ1ZmZlcikgLT4gc3RkOjpv
cHRpb25hbDxpbnQ2NF90PiB7CisgICAgICAgIC8vIHNpZ24gYW5kIGhvdXIuCisgICAgICAgIGlm
IChidWZmZXIubGVuZ3RoUmVtYWluaW5nKCkgPCAzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBpbnQ2NF90IGZhY3RvciA9IDE7CisgICAgICAgIGlmICgqYnVm
ZmVyID09ICcrJykKKyAgICAgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgICAgIGVsc2Ug
aWYgKCpidWZmZXIgPT0gJy0nIHx8ICpidWZmZXIgPT0gMHgyMjEyKSB7CisgICAgICAgICAgICBm
YWN0b3IgPSAtMTsKKyAgICAgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBpbnQ2NF90IGhv
dXIgPSAwOworICAgICAgICBBU1NFUlQoYnVmZmVyLmxlbmd0aFJlbWFpbmluZygpID49IDIpOwor
ICAgICAgICBhdXRvIGZpcnN0SG91ckNoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAgIGlmIChm
aXJzdEhvdXJDaGFyYWN0ZXIgPj0gJzAnICYmIGZpcnN0SG91ckNoYXJhY3RlciA8PSAnMicpIHsK
KyAgICAgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgICAgICAgICBhdXRvIHNlY29uZEhv
dXJDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoc2Vj
b25kSG91ckNoYXJhY3RlcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICAgICAgICAgIGhvdXIgPSAoc2Vjb25kSG91ckNoYXJhY3RlciAtICcwJykgKyAxMCAqIChm
aXJzdEhvdXJDaGFyYWN0ZXIgLSAnMCcpOworICAgICAgICAgICAgaWYgKGhvdXIgPj0gMjQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIGJ1ZmZlci5h
ZHZhbmNlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBpZiAoYnVmZmVyLmF0RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gKG5z
UGVySG91ciAqIGhvdXIpICogZmFjdG9yOworCisgICAgICAgIEFTU0VSVChidWZmZXIuaGFzQ2hh
cmFjdGVyc1JlbWFpbmluZygpKTsKKyAgICAgICAgYm9vbCBzcGxpdHRlZEJ5Q29sb24gPSBmYWxz
ZTsKKyAgICAgICAgaWYgKCpidWZmZXIgPT0gJzonKSB7CisgICAgICAgICAgICBidWZmZXIuYWR2
YW5jZSgpOworICAgICAgICAgICAgc3BsaXR0ZWRCeUNvbG9uID0gdHJ1ZTsKKyAgICAgICAgfQor
CisgICAgICAgIGludDY0X3QgbWludXRlID0gMDsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGhS
ZW1haW5pbmcoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAg
ICBhdXRvIGZpcnN0TWludXRlQ2hhcmFjdGVyID0gKmJ1ZmZlcjsKKyAgICAgICAgaWYgKGZpcnN0
TWludXRlQ2hhcmFjdGVyID49ICcwJyAmJiBmaXJzdE1pbnV0ZUNoYXJhY3RlciA8PSAnNScpIHsK
KyAgICAgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgICAgICAgICBhdXRvIHNlY29uZE1p
bnV0ZUNoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAgICAgICBpZiAoIWlzQVNDSUlEaWdpdChz
ZWNvbmRNaW51dGVDaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgICAgICAgICBtaW51dGUgPSAoc2Vjb25kTWludXRlQ2hhcmFjdGVyIC0gJzAnKSAr
IDEwICogKGZpcnN0TWludXRlQ2hhcmFjdGVyIC0gJzAnKTsKKyAgICAgICAgICAgIEFTU0VSVCht
aW51dGUgPCA2MCk7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaWYgKGJ1ZmZl
ci5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIChuc1BlckhvdXIgKiBob3VyICsgbnNQZXJN
aW51dGUgKiBtaW51dGUpICogZmFjdG9yOworCisgICAgICAgIEFTU0VSVChidWZmZXIuaGFzQ2hh
cmFjdGVyc1JlbWFpbmluZygpKTsKKyAgICAgICAgaWYgKHNwbGl0dGVkQnlDb2xvbikgeworICAg
ICAgICAgICAgaWYgKCpidWZmZXIgPT0gJzonKQorICAgICAgICAgICAgICAgIGJ1ZmZlci5hZHZh
bmNlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgfQorCisgICAgICAgIGludDY0X3Qgc2Vjb25kID0gMDsKKyAgICAgICAg
aWYgKGJ1ZmZlci5sZW5ndGhSZW1haW5pbmcoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgICAgICBhdXRvIGZpcnN0U2Vjb25kQ2hhcmFjdGVyID0gKmJ1ZmZlcjsK
KyAgICAgICAgaWYgKGZpcnN0U2Vjb25kQ2hhcmFjdGVyID49ICcwJyAmJiBmaXJzdFNlY29uZENo
YXJhY3RlciA8PSAnNScpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgICAg
ICAgICBhdXRvIHNlY29uZFNlY29uZENoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAgICAgICBp
ZiAoIWlzQVNDSUlEaWdpdChzZWNvbmRTZWNvbmRDaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICBzZWNvbmQgPSAoc2Vjb25kU2Vjb25k
Q2hhcmFjdGVyIC0gJzAnKSArIDEwICogKGZpcnN0U2Vjb25kQ2hhcmFjdGVyIC0gJzAnKTsKKyAg
ICAgICAgICAgIEFTU0VSVChtaW51dGUgPCA2MCk7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5j
ZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgaWYgKGJ1ZmZlci5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIChuc1Blckhv
dXIgKiBob3VyICsgbnNQZXJNaW51dGUgKiBtaW51dGUgKyBuc1BlclNlY29uZCAqIHNlY29uZCkg
KiBmYWN0b3I7CisKKyAgICAgICAgQVNTRVJUKGJ1ZmZlci5oYXNDaGFyYWN0ZXJzUmVtYWluaW5n
KCkpOworICAgICAgICBpZiAoKmJ1ZmZlciAhPSAnLicgJiYgKmJ1ZmZlciAhPSAnLCcpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBidWZmZXIuYWR2YW5jZSgpOwor
CisgICAgICAgIHVuc2lnbmVkIGRpZ2l0cyA9IDA7CisgICAgICAgIHdoaWxlIChkaWdpdHMgPCBi
dWZmZXIubGVuZ3RoUmVtYWluaW5nKCkgJiYgaXNBU0NJSURpZ2l0KGJ1ZmZlcltkaWdpdHNdKSkK
KyAgICAgICAgICAgIGRpZ2l0cysrOworICAgICAgICBpZiAoIWRpZ2l0cyB8fCBkaWdpdHMgPiA5
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBWZWN0b3I8TENo
YXIsIDk+IHBhZGRlZCg5LCAnMCcpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZGlnaXRzOyArK2kpCisgICAgICAgICAgICBwYWRkZWRbaV0gPSBidWZmZXJbaV07CisgICAgICAg
IGJ1ZmZlci5hZHZhbmNlQnkoZGlnaXRzKTsKKyAgICAgICAgaWYgKCFidWZmZXIuYXRFbmQoKSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaW50NjRfdCBtaWxs
aXNlY29uZCA9IHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCksIDMpOworICAgICAgICBp
bnQ2NF90IG1pY3Jvc2Vjb25kID0gcGFyc2VEZWNpbWFsSW50MzIocGFkZGVkLmRhdGEoKSArIDMs
IDMpOworICAgICAgICBpbnQ2NF90IG5hbm9zZWNvbmQgPSBwYXJzZURlY2ltYWxJbnQzMihwYWRk
ZWQuZGF0YSgpICsgNiwgMyk7CisKKyAgICAgICAgcmV0dXJuIChuc1BlckhvdXIgKiBob3VyICsg
bnNQZXJNaW51dGUgKiBtaW51dGUgKyBuc1BlclNlY29uZCAqIHNlY29uZCArIG5zUGVyTWlsbGlz
ZWNvbmQgKiBtaWxsaXNlY29uZCArIG5zUGVyTWljcm9zZWNvbmQgKiBtaWNyb3NlY29uZCArIG5h
bm9zZWNvbmQpICogZmFjdG9yOworICAgIH0pOworfQorCisvLyBodHRwczovL3RjMzkuZXMvcHJv
cG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC1mb3JtYXR0aW1lem9uZW9mZnNldHN0cmluZwor
U3RyaW5nIGZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKGludDY0X3Qgb2Zmc2V0KQoreworICAg
IGJvb2wgbmVnYXRpdmUgPSBmYWxzZTsKKyAgICBpZiAob2Zmc2V0IDwgMCkgeworICAgICAgICBu
ZWdhdGl2ZSA9IHRydWU7CisgICAgICAgIG9mZnNldCA9IC1vZmZzZXQ7IC8vIFRoaXMgaXMgT0sg
c2luY2Ugb2Zmc2V0IHJhbmdlIGlzIG11Y2ggbmFycm93ZXIgdGhhbiBbSU5UNjRfTUlOLCBJTlQ2
NF9NQVhdIHJhbmdlLgorICAgIH0KKyAgICBpbnQ2NF90IG5hbm9zZWNvbmRzID0gb2Zmc2V0ICUg
bnNQZXJTZWNvbmQ7CisgICAgaW50NjRfdCBzZWNvbmRzID0gKG9mZnNldCAvIG5zUGVyU2Vjb25k
KSAlIDYwOworICAgIGludDY0X3QgbWludXRlcyA9IChvZmZzZXQgLyBuc1Blck1pbnV0ZSkgJSA2
MDsKKyAgICBpbnQ2NF90IGhvdXJzID0gb2Zmc2V0IC8gbnNQZXJIb3VyOworCisgICAgaWYgKG5h
bm9zZWNvbmRzKSB7CisgICAgICAgIC8vIFNpbmNlIG5zUGVyU2Vjb25kIGlzIDEwMDAwMDAwMDAs
IHN0cmluZ2lmaWVkIG5hbm9zZWNvbmRzIHRha2VzIGF0IG1vc3QgOSBjaGFyYWN0ZXJzICg5OTk5
OTk5OTkpLgorICAgICAgICBhdXRvIGZyYWN0aW9uID0gV1RGOjpudW1iZXJUb1N0cmluZ1Vuc2ln
bmVkPFZlY3RvcjxMQ2hhciwgOT4+KG5hbm9zZWNvbmRzKTsKKyAgICAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOworICAgICAgICB1bnNpZ25lZCBwYWRkaW5nTGVuZ3RoID0gOSAtIGZyYWN0aW9uLnNp
emUoKTsKKyAgICAgICAgZm9yICg7IGluZGV4IDwgZnJhY3Rpb24uc2l6ZSgpOyArK2luZGV4KSB7
CisgICAgICAgICAgICBpZiAoZnJhY3Rpb25baW5kZXhdID09ICcwJykKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBmcmFjdGlvbi5yZXNpemUoaW5kZXgpOworICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZyhuZWdhdGl2ZSA/ICctJyA6ICcrJywgcGFkKCcwJywgMiwg
aG91cnMpLCAnOicsIHBhZCgnMCcsIDIsIG1pbnV0ZXMpLCAnOicsIHBhZCgnMCcsIDIsIHNlY29u
ZHMpLCAnLicsIHBhZCgnMCcsIHBhZGRpbmdMZW5ndGgsIGVtcHR5U3RyaW5nKCkpLCBmcmFjdGlv
bik7CisgICAgfQorICAgIGlmIChzZWNvbmRzKQorICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhu
ZWdhdGl2ZSA/ICctJyA6ICcrJywgcGFkKCcwJywgMiwgaG91cnMpLCAnOicsIHBhZCgnMCcsIDIs
IG1pbnV0ZXMpLCAnOicsIHBhZCgnMCcsIDIsIHNlY29uZHMpKTsKKyAgICByZXR1cm4gbWFrZVN0
cmluZyhuZWdhdGl2ZSA/ICctJyA6ICcrJywgcGFkKCcwJywgMiwgaG91cnMpLCAnOicsIHBhZCgn
MCcsIDIsIG1pbnV0ZXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSVNPODYwMQogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084
NjAxLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmgKaW5kZXggZTU3
YzFjYTUyYjQ3ZjQ3YTkzZDQ3ZmIwYTQ3YjliNWJmY2NiNjA4NS4uNjc2ODlkMWMyNDVhZmVlMmFj
MjY5NTljMjk3MGRkNDk2M2FlMzAwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSVNPODYwMS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lT
Tzg2MDEuaApAQCAtNDksNiArNDksOCBAQCBzdHJ1Y3QgRHVyYXRpb24gewogfTsKIAogc3RkOjpv
cHRpb25hbDxEdXJhdGlvbj4gcGFyc2VEdXJhdGlvbihTdHJpbmdWaWV3KTsKK3N0ZDo6b3B0aW9u
YWw8aW50NjRfdD4gcGFyc2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQoU3RyaW5nVmlldyk7CitT
dHJpbmcgZm9ybWF0VGltZVpvbmVPZmZzZXRTdHJpbmcoaW50NjRfdCk7CiAKIH0gLy8gbmFtZXNw
YWNlIElTTzg2MDEKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBmNzRlNTcxMTc3MmM0ZDFiZDlhNGQ3YmU5ZDky
Mjc2MWI2ZGJjYmM0Li44OGRiNzlmNGY4MTljMDk0ZGUwMDVhNTVhNWY5NTI1MzM2NjEwYTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMTc4
OCw0NSArMTc4OCw1MSBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNhbm9uaWNhbGl6
ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZShjb25zdCBTdHJpbgogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZXRpbWV6b25l
cwotc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRpbWVab25lcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorY29uc3QgVmVjdG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1lWm9uZXMo
KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gYXZhaWxhYmxlVGltZVpvbmVzOworICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBpbml0aWFsaXplT25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplT25jZSwg
WyZdIHsKKyAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVzLmNvbnN0cnVjdCgpOworICAgICAgICBB
U1NFUlQoYXZhaWxhYmxlVGltZVpvbmVzLT5pc0VtcHR5KCkpOwogCi0gICAgVUVycm9yQ29kZSBz
dGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgYXV0byBlbnVtZXJhdGlvbiA9IHN0ZDo6dW5pcXVl
X3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y2FsX29wZW5UaW1l
Wm9uZUlERW51bWVyYXRpb24oVUNBTF9aT05FX1RZUEVfQ0FOT05JQ0FMLCBudWxscHRyLCBudWxs
cHRyLCAmc3RhdHVzKSk7Ci0gICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgIHRo
cm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2
YWlsYWJsZSB0aW1lem9uZXMiX3MpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KKyAgICAg
ICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIGF1dG8gZW51bWVy
YXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Ns
b3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9O
SUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0YXR1cykpOworICAgICAgICBBU1NFUlQoVV9TVUND
RVNTKHN0YXR1cykpOwogCi0gICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0
aW9uLmdldCgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJh
dGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQor
ICAgICAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZz
dGF0dXMpOworICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKHN0YXR1cykpOworICAgICAgICBhdmFp
bGFibGVUaW1lWm9uZXMtPnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOwogCi0gICAgVmVj
dG9yPFN0cmluZywgMT4gZWxlbWVudHM7Ci0gICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShjb3VudCk7Ci0gICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsg
KytpbmRleCkgewotICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Ci0gICAgICAgIGNvbnN0IGNo
YXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3Rh
dHVzKTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgdGltZXpvbmVzIl9zKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGF1
dG8gY3JlYXRlSW1tb3J0YWxUaHJlYWRTYWZlU3RyaW5nID0gWyZdKFN0cmluZyYmIHN0cmluZykg
eworICAgICAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nSW1wbDo6Y3JlYXRlU3RhdGljU3RyaW5nSW1wbChzdHJpbmcuY2hhcmFjdGVyczgo
KSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpjcmVh
dGVTdGF0aWNTdHJpbmdJbXBsKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgp
KTsKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8
IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgICAgICBjb25zdCBjaGFyKiBwb2ludGVyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQo
KSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKHN0YXR1
cykpOworICAgICAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7CisgICAg
ICAgICAgICBpZiAoYXV0byBtYXBwZWQgPSBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWVGcm9tSUNV
VGltZVpvbmUodGltZVpvbmUpKQorICAgICAgICAgICAgICAgIGF2YWlsYWJsZVRpbWVab25lcy0+
YXBwZW5kKGNyZWF0ZUltbW9ydGFsVGhyZWFkU2FmZVN0cmluZyhXVEZNb3ZlKG1hcHBlZC52YWx1
ZSgpKSkpOwogICAgICAgICB9Ci0gICAgICAgIFN0cmluZyB0aW1lWm9uZShwb2ludGVyLCBsZW5n
dGgpOwotICAgICAgICBpZiAoYXV0byBtYXBwZWQgPSBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWVG
cm9tSUNVVGltZVpvbmUodGltZVpvbmUpKQotICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdU
Rk1vdmUobWFwcGVkLnZhbHVlKCkpKTsKLSAgICB9CiAKLSAgICAvLyA0LiBTb3J0IHJlc3VsdCBp
biBvcmRlciBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZSB2YWx1ZXMgaGFkIGJlZW4gc29ydGVk
IHVzaW5nICVBcnJheS5wcm90b3R5cGUuc29ydCUgdXNpbmcgdW5kZWZpbmVkIGFzIGNvbXBhcmVm
bi4KLSAgICBzdGQ6OnNvcnQoZWxlbWVudHMuYmVnaW4oKSwgZWxlbWVudHMuZW5kKCksCi0gICAg
ICAgIFtdKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKGEsIGIpIDwgMDsKLSAgICAgICAgfSk7CisgICAg
ICAgIC8vIFRoZSBBdmFpbGFibGVUaW1lWm9uZXMgYWJzdHJhY3Qgb3BlcmF0aW9uIHJldHVybnMg
YSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lCisgICAgICAgIC8vIHZh
bHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1
bmRlZmluZWQgYXMgY29tcGFyZWZuCisgICAgICAgIHN0ZDo6c29ydChhdmFpbGFibGVUaW1lWm9u
ZXMtPmJlZ2luKCksIGF2YWlsYWJsZVRpbWVab25lcy0+ZW5kKCksCisgICAgICAgICAgICBbXShj
b25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgICAgIHJldHVy
biBXVEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICAgICAgfSk7CisgICAg
fSk7CisgICAgcmV0dXJuIGF2YWlsYWJsZVRpbWVab25lczsKK30KIAotICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKGdsb2JhbE9iamVjdCwg
V1RGTW92ZShlbGVtZW50cykpKTsKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVu
dW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldGltZXpvbmVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxh
YmxlVGltZVpvbmVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJu
IGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIGludGxBdmFpbGFibGVU
aW1lWm9uZXMoKSk7CiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1l
cmF0aW9uLyNzZWMtYXZhaWxhYmxldW5pdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaAppbmRleCBmMjEzN2RlMzVlOTNhNTFlNWM4NTUyZGE2YWRmODliNDU5ZDUw
OTdiLi45NmQyMTg1NWM5Y2E2ZjNlMzE5NmI3NGVhMDJkMGVkNTNkMzljMTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0xMTQsNiArMTE0LDkgQEAg
aW5saW5lIENhbGVuZGFySUQgaXNvODYwMUNhbGVuZGFySUQoKQogICAgIHJldHVybiB2YWx1ZTsK
IH0KIAordXNpbmcgVGltZVpvbmVJRCA9IHVuc2lnbmVkOworY29uc3QgVmVjdG9yPFN0cmluZz4m
IGludGxBdmFpbGFibGVUaW1lWm9uZXMoKTsKKwogVHJpU3RhdGUgaW50bEJvb2xlYW5PcHRpb24o
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucywgUHJvcGVydHlOYW1lKTsKIFN0cmlu
ZyBpbnRsU3RyaW5nT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFBy
b3BlcnR5TmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiB2YWx1ZXMsIGNv
bnN0IGNoYXIqIG5vdEZvdW5kLCBjb25zdCBjaGFyKiBmYWxsYmFjayk7CiB1bnNpZ25lZCBpbnRs
TnVtYmVyT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5
TmFtZSwgdW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQgZmFsbGJh
Y2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCmluZGV4IDZiMmY0NjE4ZGExNzM4YTI4YzA2M2M2ZWVhNjJmNjg2OGM3NGJkZjYuLmY3YzE5
ZWM0ODU0YTJhNzdiMjdiMjQ3NDA3Yzk0MjdjNGI3MmQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTIwNiw2ICsyMDYsOSBA
QAogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb24uaCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0
aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiVGVtcG9yYWxPYmplY3QuaCIKKyNpbmNsdWRlICJU
ZW1wb3JhbFRpbWVab25lLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9y
LmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlZN
VHJhcHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUg
IldlYWtNYXBDb25zdHJ1Y3Rvci5oIgpAQCAtMTIzMCw2ICsxMjMzLDEzIEBAIGNhcGl0YWxOYW1l
ICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/
IGNhcGl0YWxOYW1lCiAgICAgICAgICAgICAgICAgaW5pdC5zZXQoVGVtcG9yYWxEdXJhdGlvbjo6
Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwgZHVyYXRpb25Qcm90b3R5cGUp
KTsKICAgICAgICAgICAgIH0pOwogCisgICAgICAgIG1fdGltZVpvbmVTdHJ1Y3R1cmUuaW5pdExh
dGVyKAorICAgICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4mIGluaXQp
IHsKKyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0
PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lcik7CisgICAgICAgICAgICAgICAgVGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZSogdGltZVpvbmVQcm90b3R5cGUgPSBUZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlOjpjcmVhdGUoaW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBUZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CisgICAgICAgICAgICAgICAgaW5pdC5zZXQoVGVtcG9y
YWxUaW1lWm9uZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwgdGltZVpv
bmVQcm90b3R5cGUpKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgIFRlbXBvcmFsT2JqZWN0
KiB0ZW1wb3JhbCA9IFRlbXBvcmFsT2JqZWN0OjpjcmVhdGUodm0sIFRlbXBvcmFsT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMpKTsKICAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlRlbXBvcmFsLCB0ZW1wb3JhbCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIH0KQEAgLTIx
MTAsNiArMjEyMCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpT
Q2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIAogICAgIHRoaXNPYmplY3QtPm1fY2FsZW5k
YXJTdHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CiAgICAgdGhpc09iamVjdC0+bV9kdXJhdGlvblN0
cnVjdHVyZS52aXNpdCh2aXNpdG9yKTsKKyAgICB0aGlzT2JqZWN0LT5tX3RpbWVab25lU3RydWN0
dXJlLnZpc2l0KHZpc2l0b3IpOwogCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9u
dWxsR2V0dGVyRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fbnVs
bFNldHRlckZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCmluZGV4IGQ0ZGUzMGI2MTM2ZTljYzkzMTg0MjA3NDI0ZTQ3YWYyYTExNWU5
OTEuLmRlYjMzZGJkMTAzMDgzYTE4ZjQwYmE3YWRjNTY5NTI2MDE0OTdkMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzI2LDYgKzMy
Niw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVP
YmplY3QgewogCiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1f
Y2FsZW5kYXJTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmU+IG1fZHVyYXRpb25TdHJ1Y3R1cmU7CisgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fdGltZVpvbmVTdHJ1Y3R1cmU7CiAKICAgICBXcml0ZUJhcnJpZXI8
TnVsbEdldHRlckZ1bmN0aW9uPiBtX251bGxHZXR0ZXJGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJp
ZXI8TnVsbFNldHRlckZ1bmN0aW9uPiBtX251bGxTZXR0ZXJGdW5jdGlvbjsKQEAgLTg3NSw2ICs4
NzYsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0IHsKIAogICAgIFN0cnVjdHVyZSogY2FsZW5kYXJTdHJ1Y3R1cmUoKSB7IHJldHVybiBt
X2NhbGVuZGFyU3RydWN0dXJlLmdldCh0aGlzKTsgfQogICAgIFN0cnVjdHVyZSogZHVyYXRpb25T
dHJ1Y3R1cmUoKSB7IHJldHVybiBtX2R1cmF0aW9uU3RydWN0dXJlLmdldCh0aGlzKTsgfQorICAg
IFN0cnVjdHVyZSogdGltZVpvbmVTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX3RpbWVab25lU3RydWN0
dXJlLmdldCh0aGlzKTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRSZW1vdGVE
ZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgcmVtb3Rl
RGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVGVtcG9yYWxOb3cuY3BwCmluZGV4IDI0YjkyZTgxNjI3MTc5YmYxZjI0OGMzODBhYzRiNjQz
NDEyYWNhOWYuLmUzOTUxMDE1Zjg0MWJmNWM0YWU1Yzg4Nzk4NGNhNWE3NWJhMWY2ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE5vdy5jcHAKQEAgLTI0LDEy
ICsyNCwyNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmpl
Y3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiVGVt
cG9yYWxUaW1lWm9uZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19U
UklWSUFMTFlfREVTVFJVQ1RJQkxFKFRlbXBvcmFsTm93KTsKIAotY29uc3QgQ2xhc3NJbmZvIFRl
bXBvcmFsTm93OjpzX2luZm8gPSB7ICJUZW1wb3JhbC5Ob3ciLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBvcmFsTm93KSB9Oworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUpOworCit9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2luY2x1ZGUgIlRlbXBvcmFsTm93Lmx1dC5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworLyogU291cmNlIGZvciBUZW1wb3JhbE5vdy5sdXQuaAorQGJlZ2luIHRl
bXBvcmFsTm93VGFibGUKKyAgICB0aW1lWm9uZSAgICAgICAgdGVtcG9yYWxOb3dGdW5jVGltZVpv
bmUgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKK0BlbmQKKyovCisKK2NvbnN0IENsYXNzSW5mbyBU
ZW1wb3JhbE5vdzo6c19pbmZvID0geyAiVGVtcG9yYWwuTm93IiwgJkJhc2U6OnNfaW5mbywgJnRl
bXBvcmFsTm93VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVtcG9yYWxOb3cp
IH07CiAKIFRlbXBvcmFsTm93OjpUZW1wb3JhbE5vdyhWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpAQCAtNTUsNCArNzAsMTcgQEAgdm9pZCBU
ZW1wb3JhbE5vdzo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJTkdfVEFH
X1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwt
dGVtcG9yYWwvI3NlYy10ZW1wb3JhbC5ub3cudGltZXpvbmUKKy8vIGh0dHBzOi8vdGMzOS5lcy9w
cm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXN5c3RlbXRpbWV6b25lCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisKKyAgICBTdHJpbmcgdGltZVpvbmVTdHJpbmcgPSB2bS5kYXRlQ2FjaGUuZGVmYXVs
dFRpbWVab25lKCk7CisgICAgc3RkOjpvcHRpb25hbDxUaW1lWm9uZUlEPiBpZGVudGlmaWVyID0g
VGVtcG9yYWxUaW1lWm9uZTo6aXNWYWxpZFRpbWVab25lTmFtZSh0aW1lWm9uZVN0cmluZyk7Cisg
ICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBv
cmFsVGltZVpvbmU6OmNyZWF0ZUZyb21VVENPZmZzZXQodm0sIGdsb2JhbE9iamVjdC0+dGltZVpv
bmVTdHJ1Y3R1cmUoKSwgMCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxU
aW1lWm9uZTo6Y3JlYXRlRnJvbUlEKHZtLCBnbG9iYWxPYmplY3QtPnRpbWVab25lU3RydWN0dXJl
KCksIGlkZW50aWZpZXIudmFsdWUoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE5vdy5oCmluZGV4IDE1MWY2NjgxMjk3
YjMyOGZhMGY5OWE4MDNiMjI1ZWFmMDliNDM5ODUuLmMxYzg2YTM3MTY2YTBhMTMyYmI0OWU2MThh
YThiMThkOWZjYjJkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1RlbXBvcmFsTm93LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9y
YWxOb3cuaApAQCAtMjYsNiArMjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFRlbXBvcmFs
Tm93IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5n
IEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+
CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAKaW5kZXggOTUzNTcx
OWY3ZWMxYTBlOTY1NDE4YTU0YWQzNTBjN2ViZTYxYzQ5OS4uZGY1MTRkNmRkYzE0NTk2ZGQyZjI1
YzllMTExZThhN2NlYWRmYTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1RlbXBvcmFsT2JqZWN0LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIlRlbXBv
cmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb25Qcm90
b3R5cGUuaCIKICNpbmNsdWRlICJUZW1wb3JhbE5vdy5oIgorI2luY2x1ZGUgIlRlbXBvcmFsVGlt
ZVpvbmVDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTU5LDYgKzYxLDEzIEBAIHN0YXRpYyBKU1ZhbHVl
IGNyZWF0ZUR1cmF0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAg
IHJldHVybiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgVGVtcG9yYWxE
dXJhdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PFRlbXBvcmFsRHVyYXRpb25Q
cm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmR1cmF0aW9uU3RydWN0dXJlKCktPnN0b3JlZFByb3Rv
dHlwZU9iamVjdCgpKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlIGNyZWF0ZVRpbWVab25lQ29uc3Ry
dWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQoreworICAgIFRlbXBvcmFsT2JqZWN0KiB0
ZW1wb3JhbE9iamVjdCA9IGpzQ2FzdDxUZW1wb3JhbE9iamVjdCo+KG9iamVjdCk7CisgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRlbXBvcmFsT2JqZWN0LT5nbG9iYWxPYmplY3Qo
dm0pOworICAgIHJldHVybiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwg
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PFRlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPnRpbWVab25lU3RydWN0dXJlKCktPnN0
b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjaW5j
bHVkZSAiVGVtcG9yYWxPYmplY3QubHV0LmgiCkBAIC02OCw4ICs3Nyw5IEBAIG5hbWVzcGFjZSBK
U0MgewogLyogU291cmNlIGZvciBUZW1wb3JhbE9iamVjdC5sdXQuaAogQGJlZ2luIHRlbXBvcmFs
T2JqZWN0VGFibGUKICAgQ2FsZW5kYXIgICAgICAgY3JlYXRlQ2FsZW5kYXJDb25zdHJ1Y3RvciAg
ICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCi0gIE5vdyAgICAgICAgICAgIGNyZWF0ZU5v
d09iamVjdCAgICAgICAgICAgICAgICAgRG9udEVudW18UHJvcGVydHlDYWxsYmFjawogICBEdXJh
dGlvbiAgICAgICBjcmVhdGVEdXJhdGlvbkNvbnN0cnVjdG9yICAgICAgIERvbnRFbnVtfFByb3Bl
cnR5Q2FsbGJhY2sKKyAgTm93ICAgICAgICAgICAgY3JlYXRlTm93T2JqZWN0ICAgICAgICAgICAg
ICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisgIFRpbWVab25lICAgICAgIGNyZWF0ZVRp
bWVab25lQ29uc3RydWN0b3IgICAgICAgRG9udEVudW18UHJvcGVydHlDYWxsYmFjawogQGVuZAog
Ki8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxU
aW1lWm9uZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVa
b25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZTBjNjAwY2U3ZmYzOGMzN2U4YThmNTE5OGIzOGM2NjBiZTlj
M2QxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVt
cG9yYWxUaW1lWm9uZS5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmU6OnNfaW5mbyA9IHsgIk9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoVGVtcG9yYWxUaW1lWm9uZSkgfTsKKworbmFtZXNwYWNlIFRlbXBvcmFsVGltZVpvbmVJbnRl
cm5hbCB7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworfQorCitUZW1w
b3JhbFRpbWVab25lKiBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tSUQoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgVGltZVpvbmVJRCBpZGVudGlmaWVyKQoreworICAgIFRlbXBvcmFs
VGltZVpvbmUqIGZvcm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFsVGlt
ZVpvbmU+KHZtLmhlYXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBzdHJ1Y3R1cmUsIFRpbWVab25l
IHsgV1RGOjppbl9wbGFjZTwwPiwgaWRlbnRpZmllciB9KTsKKyAgICBmb3JtYXQtPmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICByZXR1cm4gZm9ybWF0OworfQorCitUZW1wb3JhbFRpbWVab25lKiBU
ZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDY0X3QgdXRjT2Zmc2V0KQoreworICAgIFRlbXBvcmFsVGltZVpvbmUqIGZv
cm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFsVGltZVpvbmU+KHZtLmhl
YXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBzdHJ1Y3R1cmUsIFRpbWVab25lIHsgV1RGOjppbl9w
bGFjZTwxPiwgdXRjT2Zmc2V0IH0pOworICAgIGZvcm1hdC0+ZmluaXNoQ3JlYXRpb24odm0pOwor
ICAgIHJldHVybiBmb3JtYXQ7Cit9CisKK1N0cnVjdHVyZSogVGVtcG9yYWxUaW1lWm9uZTo6Y3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworfQorCitUZW1wb3JhbFRpbWVab25lOjpUZW1wb3JhbFRpbWVab25lKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRpbWVab25lIHRpbWVab25lKQorICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlKQorICAgICwgbV90aW1lWm9uZSh0aW1lWm9uZSkKK3sKK30KKworLy8gaHR0cHM6
Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzdXAtaXN2YWxpZHRpbWV6b25lbmFtZQorc3Rk
OjpvcHRpb25hbDxUaW1lWm9uZUlEPiBUZW1wb3JhbFRpbWVab25lOjppc1ZhbGlkVGltZVpvbmVO
YW1lKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGNvbnN0IGF1dG8mIHRpbWVab25lcyA9IGlu
dGxBdmFpbGFibGVUaW1lWm9uZXMoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5k
ZXggPCB0aW1lWm9uZXMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKHRpbWVab25lc1tpbmRleF0sIHN0cmluZykpCisgICAgICAgICAgICByZXR1
cm4gaW5kZXg7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKy8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXBhcnNldGVtcG9yYWx0
aW1lWm9uZXN0cmluZworc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGltZVpvbmVJRD4gcGFyc2VUZW1w
b3JhbFRpbWVab25lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cmluZ1Zp
ZXcpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwYXJzaW5nIHRlbXBvcmFsIHRpbWVab25l
IHN0cmluZywgd2hpY2ggcmVxdWlyZXMgZnVsbCBJU08gODYwMSBwYXJzZXIuCisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKyAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImludmFs
aWQgdGltZVpvbmUgSUQiX3MpOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKy8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLnRpbWV6b25lLmZy
b20KKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXRv
dGVtcG9yYWx0aW1lem9uZQorSlNPYmplY3QqIFRlbXBvcmFsVGltZVpvbmU6OmZyb20oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aW1lWm9uZUxpa2UpCit7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIGlmICh0aW1lWm9uZUxpa2UuaXNPYmplY3QoKSkgeworICAgICAg
ICBKU09iamVjdCogdGltZVpvbmVMaWtlT2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4odGltZVpv
bmVMaWtlKTsKKworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgY29kZSBy
ZXRyaWV2aW5nIFRpbWVab25lIGZyb20gVGVtcG9yYWwgRGF0ZSBMaWtlIG9iamVjdHMuIEJ1dAor
ICAgICAgICAvLyBjdXJyZW50bHkgdGhleSBhcmUgbm90IGltcGxlbWVudGVkIHlldC4KKworICAg
ICAgICBib29sIGhhc1Byb3BlcnR5ID0gdGltZVpvbmVMaWtlT2JqZWN0LT5oYXNQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVab25lKTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAg
ICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2UpOworCisgICAg
ICAgIHRpbWVab25lTGlrZSA9IHRpbWVab25lTGlrZU9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwg
dm0ucHJvcGVydHlOYW1lcy0+dGltZVpvbmUpOworICAgICAgICBpZiAodGltZVpvbmVMaWtlLmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBqc0Nhc3Q8SlNPYmpl
Y3QqPih0aW1lWm9uZUxpa2UpLT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPnRpbWVab25lKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgICAgICAgICBpZiAoIWhhc1Byb3BlcnR5KQorICAgICAgICAgICAgICAgIHJl
dHVybiBqc0Nhc3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2UpOworICAgICAgICB9CisgICAgfQor
CisgICAgYXV0byBpZGVudGlmaWVyID0gdGltZVpvbmVMaWtlLnRvV1RGU3RyaW5nKGdsb2JhbE9i
amVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIHN0ZDo6
b3B0aW9uYWw8VGltZVpvbmVJRD4gdGltZVpvbmVJZCA9IGlzVmFsaWRUaW1lWm9uZU5hbWUoaWRl
bnRpZmllcik7CisgICAgaWYgKCF0aW1lWm9uZUlkKSB7CisgICAgICAgIHRpbWVab25lSWQgPSBw
YXJzZVRlbXBvcmFsVGltZVpvbmVTdHJpbmcoZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisKKyAgICBBU1NF
UlQodGltZVpvbmVJZCk7CisgICAgcmV0dXJuIFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21J
RCh2bSwgZ2xvYmFsT2JqZWN0LT50aW1lWm9uZVN0cnVjdHVyZSgpLCB0aW1lWm9uZUlkLnZhbHVl
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzdkMTg4YzJlYTdlNzNm
MGNjNWZlZjYwNmQ1YTI5ZThmYjcwNmYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNs
dWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBK
U0MgeworCitjbGFzcyBUZW1wb3JhbFRpbWVab25lIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OworCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CisgICAg
c3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAgeworICAgICAgICBy
ZXR1cm4gdm0udGVtcG9yYWxUaW1lWm9uZVNwYWNlPG1vZGU+KCk7CisgICAgfQorCisgICAgc3Rh
dGljIFRlbXBvcmFsVGltZVpvbmUqIGNyZWF0ZUZyb21JRChWTSYsIFN0cnVjdHVyZSosIFRpbWVa
b25lSUQpOworICAgIHN0YXRpYyBUZW1wb3JhbFRpbWVab25lKiBjcmVhdGVGcm9tVVRDT2Zmc2V0
KFZNJiwgU3RydWN0dXJlKiwgaW50NjRfdCk7CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworICAgIERFQ0xBUkVf
SU5GTzsKKworICAgIHVzaW5nIFRpbWVab25lID0gVmFyaWFudDxUaW1lWm9uZUlELCBpbnQ2NF90
PjsKKyAgICBUaW1lWm9uZSB0aW1lWm9uZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZVpvbmU7IH0K
KworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRpbWVab25lSUQ+IGlzVmFsaWRUaW1lWm9uZU5h
bWUoU3RyaW5nVmlldyk7CisKKyAgICBzdGF0aWMgSlNPYmplY3QqIGZyb20oSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBUZW1wb3JhbFRpbWVab25lKFZNJiwgU3Ry
dWN0dXJlKiwgVGltZVpvbmUpOworCisgICAgLy8gVGltZVpvbmVJRCBvciBVVEMgb2Zmc2V0Lgor
ICAgIFRpbWVab25lIG1fdGltZVpvbmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVa
b25lQ29uc3RydWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZjE2YmY3Yzc0NTI1NWVkYTc4ODY4ZmU1
NzQyNmY4MDc3M2Q0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3BwCkBAIC0wLDAgKzEsMTE2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlbXBvcmFsVGlt
ZVpvbmVDb25zdHJ1Y3Rvci5oIgorCisjaW5jbHVkZSAiSVNPODYwMS5oIgorI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lLmgiCisjaW5jbHVkZSAiVGVt
cG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworU1RBVElDX0FT
U0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rv
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0ZW1wb3JhbFRpbWVab25lQ29u
c3RydWN0b3JGdW5jRnJvbSk7CisKK30KKworI2luY2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvci5sdXQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBUZW1w
b3JhbFRpbWVab25lQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFs
RnVuY3Rpb246OnNfaW5mbywgJnRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvclRhYmxlLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvcikgfTsK
KworLyogU291cmNlIGZvciBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IubHV0LmgKK0BiZWdp
biB0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JUYWJsZQorICAgIGZyb20gICAgICAgICAgICAg
dGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yRnVuY0Zyb20gICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQorQGVuZAorKi8KKworVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKiBUZW1w
b3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
KQoreworICAgIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I+KHZtLmhl
YXApKSBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgY29u
c3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKTsK
KyAgICByZXR1cm4gY29uc3RydWN0b3I7Cit9CisKK1N0cnVjdHVyZSogVGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKK3sKKyAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0
aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsVGVtcG9yYWxUaW1lWm9uZSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUZW1wb3JhbFRpbWVab25lKTsKKworVGVtcG9yYWxU
aW1lWm9uZUNvbnN0cnVjdG9yOjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVy
ZSwgY2FsbFRlbXBvcmFsVGltZVpvbmUsIGNvbnN0cnVjdFRlbXBvcmFsVGltZVpvbmUpCit7Cit9
CisKK3ZvaWQgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUp
Cit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIDAsICJUaW1lWm9uZSJfcywgUHJvcGVy
dHlBZGRpdGlvbk1vZGU6OldpdGhvdXRTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKKyAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCB0ZW1w
b3JhbFRpbWVab25lUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUZW1wb3JhbFRpbWVab25l
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmpl
Y3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBK
U0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB0aW1lWm9uZVN0cnVjdHVyZSwgbmV3VGFyZ2V0
LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisKKyAgICBhdXRvIHRpbWVab25lU3RyaW5nID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+IHV0Y09mZnNldCA9IElTTzg2
MDE6OnBhcnNlVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0KHRpbWVab25lU3RyaW5nKTsKKyAgICBp
ZiAodXRjT2Zmc2V0KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGlt
ZVpvbmU6OmNyZWF0ZUZyb21VVENPZmZzZXQodm0sIHN0cnVjdHVyZSwgdXRjT2Zmc2V0LnZhbHVl
KCkpKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VGltZVpvbmVJRD4gaWRlbnRpZmllciA9IFRlbXBv
cmFsVGltZVpvbmU6OmlzVmFsaWRUaW1lWm9uZU5hbWUodGltZVpvbmVTdHJpbmcpOworICAgIGlm
ICghaWRlbnRpZmllcikgeworICAgICAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImFyZ3VtZW50IG5lZWRzIHRvIGJlIFVUQyBvZmZzZXQgc3RyaW5nIG9yIFRpbWVab25l
IGlkZW50aWZpZXIiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21JRCh2bSwgc3RydWN0
dXJlLCBpZGVudGlmaWVyLnZhbHVlKCkpKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxUZW1wb3JhbFRpbWVab25lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiVGltZVpvbmUiKSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTih0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JGdW5jRnJvbSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmZyb20oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29u
c3RydWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjExNGEwYTcyMTE5OGFhZWNhYmVjODhiYjhiNjc5ZWZj
YjA2YWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTsKKworY2xhc3Mg
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBJbnRlcm5hbEZ1bmN0aW9uOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisKKyAgICBzdGF0aWMgVGVtcG9yYWxUaW1l
Wm9uZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBUZW1wb3JhbFRpbWVab25l
UHJvdG90eXBlKik7CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworcHJpdmF0
ZToKKyAgICBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSopOwor
fTsKK1NUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKFRlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVa
b25lUHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWEyNWRiZDlmZTYwOTg5NjlkZDgwNzYzOWU1
NjIwNTI2MzgwYWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9u
ZVByb3RvdHlwZS5oIgorCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCisjaW5jbHVkZSAiSVNP
ODYwMS5oIgorI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1
bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0ZW1wb3JhbFRp
bWVab25lUHJvdG90eXBlRnVuY1RvSlNPTik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlR2V0dGVySWQpOworCit9CisKKyNpbmNsdWRl
ICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmx1dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKwor
Y29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRl
bXBvcmFsLlRpbWVab25lIiwgJkJhc2U6OnNfaW5mbywgJnRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlKSB9OworCisvKiBTb3VyY2UgZm9yIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUubHV0
LmgKK0BiZWdpbiB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlVGFibGUKKyAgICB0b1N0cmluZyAg
ICAgICAgdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0cmluZyAgICAgRG9udEVudW18
RnVuY3Rpb24gMAorICAgIHRvSlNPTiAgICAgICAgICB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
RnVuY1RvSlNPTiAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCisgICAgaWQgICAgICAgICAgICAg
IHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVHZXR0ZXJJZCAgICAgICAgIFJlYWRPbmx5fERvbnRF
bnVtfEN1c3RvbUFjY2Vzc29yCitAZW5kCisqLworCitUZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
KiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBUZW1wb3JhbFRp
bWVab25lUHJvdG90eXBlKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxUZW1w
b3JhbFRpbWVab25lUHJvdG90eXBlPih2bS5oZWFwKSkgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlw
ZSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxP
YmplY3QpOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cnVjdHVyZSogVGVtcG9yYWxUaW1l
Wm9uZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCitUZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
OjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK3ZvaWQgVGVtcG9yYWxUaW1lWm9u
ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCit7Cisg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5m
bygpKSk7CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7Cit9CisK
Ky8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLWdldC10ZW1wb3JhbC50
aW1lem9uZS5wcm90b3R5cGUuaWQKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUih0ZW1wb3JhbFRp
bWVab25lUHJvdG90eXBlR2V0dGVySWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS50b1N0cmluZyhnbG9iYWxP
YmplY3QpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMt
dGVtcG9yYWwudGltZXpvbmUucHJvdG90eXBlLnRvc3RyaW5nCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04odGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworCisgICAgYXV0byogdGltZVpvbmUgPSBqc0R5bmFtaWNDYXN0PFRlbXBvcmFsVGlt
ZVpvbmUqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKCF0aW1lWm9uZSkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlRl
bXBvcmFsLlRpbWVab25lLnByb3RvdHlwZS50b1N0cmluZyBjYWxsZWQgb24gdmFsdWUgdGhhdCdz
IG5vdCBhIFRpbWVab25lIl9zKTsKKworICAgIGF1dG8gdmFyaWFudCA9IHRpbWVab25lLT50aW1l
Wm9uZSgpOworICAgIGF1dG8gc3RyaW5nID0gV1RGOjpzd2l0Y2hPbih2YXJpYW50LAorICAgICAg
ICBbXShUaW1lWm9uZUlEIGlkZW50aWZpZXIpIC0+IFN0cmluZyB7CisgICAgICAgICAgICByZXR1
cm4gaW50bEF2YWlsYWJsZVRpbWVab25lcygpW2lkZW50aWZpZXJdOworICAgICAgICB9LAorICAg
ICAgICBbXShpbnQ2NF90IG9mZnNldCkgLT4gU3RyaW5nIHsKKyAgICAgICAgICAgIHJldHVybiBJ
U084NjAxOjpmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmluZyhvZmZzZXQpOworICAgICAgICB9KTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBXVEZNb3ZlKHN0cmluZykp
KTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9y
YWwudGltZXpvbmUucHJvdG90eXBlLnRvanNvbgorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHRl
bXBvcmFsVGltZVpvbmVQcm90b3R5cGVGdW5jVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1N0cmluZyhnbG9iYWxPYmplY3QpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEzNTBj
ZTYwMmQ2NTUwYTFmN2ZlODdiNWY5OGEyM2IyMTlkYzI1ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuaApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJK
U09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9uZVBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1
c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNj
ZXNzPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQorICAgIHsK
KyAgICAgICAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoVGVtcG9yYWxUaW1l
Wm9uZVByb3RvdHlwZSwgQmFzZSk7CisgICAgICAgIHJldHVybiAmdm0ucGxhaW5PYmplY3RTcGFj
ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSogY3JlYXRl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOworCisgICAg
REVDTEFSRV9JTkZPOworCitwcml2YXRlOgorICAgIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUo
Vk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCmluZGV4IDNiZjY5MTQ4MzNiZDA0NjNjYzI5ZjA3MzUzODVlOGIyYTg2ZTM0YjMu
LjAyZjE4OTdiMGYzOTE4NTYwYjUwNTMxOWQ2ZTQ2MWJkYjVkNzEwZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQAogI2luY2x1ZGUgIlN5bWJv
bE9iamVjdC5oIgogI2luY2x1ZGUgIlRlbXBvcmFsQ2FsZW5kYXIuaCIKICNpbmNsdWRlICJUZW1w
b3JhbER1cmF0aW9uLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgogI2luY2x1ZGUg
IlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1
ZGUgIlR5cGVQcm9maWxlci5oIgpAQCAtMTU4Nyw2ICsxNTg4LDcgQEAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJvbFNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXAKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzeW1ib2xP
YmplY3RTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3ltYm9sT2JqZWN0KQogRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHRlbXBsYXRlT2JqZWN0RGVzY3JpcHRv
clNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1RlbXBsYXRlT2Jq
ZWN0RGVzY3JpcHRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh0
ZW1wb3JhbENhbGVuZGFyU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlbXBvcmFsQ2Fs
ZW5kYXIpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codGVtcG9yYWxU
aW1lWm9uZVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBUZW1wb3JhbFRpbWVab25lKQog
RFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQ4QXJyYXlTcGFjZSwg
Y2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50OEFycmF5KQogRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQ4Q2xhbXBlZEFycmF5U3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTVWludDhDbGFtcGVkQXJyYXkpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1codWludDE2QXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNVaW50MTZBcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDZiM2Ew
ZWZkNDU3ZjIxODYyYTBiYWZjNWFiN2QxZmZlYjhlZjY4NTMuLjFlNzI1Y2UzNzQ4NzNlMDA3ZDFi
MDNmNTQ5NTZjNTAyMzA0YzZiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAt
MTk1LDYgKzE5NSw3IEBAIGNsYXNzIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKIGNs
YXNzIFZpcnR1YWxSZWdpc3RlcjsKIGNsYXNzIFZNRW50cnlTY29wZTsKIGNsYXNzIFRlbXBvcmFs
Q2FsZW5kYXI7CitjbGFzcyBUZW1wb3JhbFRpbWVab25lOwogY2xhc3MgVG9wTGV2ZWxHbG9iYWxP
YmplY3RTY29wZTsKIGNsYXNzIFR5cGVQcm9maWxlcjsKIGNsYXNzIFR5cGVQcm9maWxlckxvZzsK
QEAgLTU5NCw2ICs1OTUsNyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIERZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVIoc3ltYm9sT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih0ZW1wbGF0ZU9iamVjdERlc2NyaXB0b3JTcGFjZSkK
ICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHRlbXBvcmFsQ2FsZW5kYXJT
cGFjZSkKKyAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHRlbXBvcmFsVGlt
ZVpvbmVTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHVpbnQ4
QXJyYXlTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHVpbnQ4
Q2xhbXBlZEFycmF5U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Uih1aW50MTZBcnJheVNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9JbnRl
Z2VyVG9TdHJpbmdDb252ZXJzaW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0
cmluZ0NvbnZlcnNpb24uaAppbmRleCAwM2Y1ODYxYzMzY2JlMmYzOWQ1YzEwM2M4YTkyMGU0MWJk
MDFmZWY3Li4yMGVlNTBhZTA2OGJlNGE2ZmVkOWMzM2U4YjlkMmVhYWRkNjdjOWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaApAQCAtMTI3
LDYgKzEyNywxMyBAQCBjb25zdGV4cHIgdW5zaWduZWQgbGVuZ3RoT2ZJbnRlZ2VyQXNTdHJpbmco
SW50ZWdlclR5cGUgaW50ZWdlcikKICAgICAgICAgcmV0dXJuIGxlbmd0aE9mSW50ZWdlckFzU3Ry
aW5nSW1wbDxJbnRlZ2VyVHlwZSwgUG9zaXRpdmVOdW1iZXI+KGludGVnZXIpOwogfQogCit0ZW1w
bGF0ZTxzaXplX3QgTj4KK3N0cnVjdCBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJhaXQ8VmVj
dG9yPExDaGFyLCBOPj4geworICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8TENoYXIsIE4+
OworICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5cGUgPSB2b2lkOworICAgIHN0YXRpYyBS
ZXR1cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIHZvaWQq
KSB7IHJldHVybiB7IGNoYXJhY3RlcnMsIGxlbmd0aCB9OyB9Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogdXNpbmcgV1RGOjpsZW5ndGhPZkludGVnZXJBc1N0cmluZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAyZDg1OWI0NTAwMTQ4Njc1YjNmMTdlMWY0
OGI3ZWU0MDFjYTJjZjI1Li40ZTZjYzM0ZmExM2E3YmRkMTllNzg1ODEzMmQ5MzUwMTE5YWNlNGJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC0xNTAsMjQgKzE1
MCwyOCBAQCB0ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPEFTQ0lJTGl0ZXJhbCwg
dm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZQogICAgIH0KIH07CiAKLXRlbXBsYXRlPD4g
Y2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8VmVjdG9yPGNoYXI+LCB2b2lkPiB7Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyVHlwZSwgc2l6ZV90IE4+CitjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxWZWN0
b3I8Q2hhclR5cGUsIE4+LCB2b2lkPiB7CiBwdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIo
Y29uc3QgVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCisgICAgdXNpbmcgQ2hhclR5cGVGb3JTdHJpbmcg
PSBzdGQ6OmNvbmRpdGlvbmFsX3Q8c2l6ZW9mKENoYXJUeXBlKSA9PSBzaXplb2YoTENoYXIpLCBM
Q2hhciwgVUNoYXI+OworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKENoYXJUeXBlRm9yU3RyaW5n
KSA9PSBzaXplb2YoQ2hhclR5cGUpKTsKKworICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IFZl
Y3RvcjxDaGFyVHlwZSwgTj4mIHZlY3RvcikKICAgICAgICAgOiBtX3ZlY3RvciB7IHZlY3RvciB9
CiAgICAgewogICAgIH0KIAogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Zl
Y3Rvci5zaXplKCk7IH0KLSAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
KyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIHNpemVvZihDaGFyVHlwZSkgPT0gMTsg
fQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFy
YWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVy
cyhkZXN0aW5hdGlvbiwgY2hhcmFjdGVycygpLCBsZW5ndGgoKSk7IH0KIAogcHJpdmF0ZToKLSAg
ICBjb25zdCBMQ2hhciogY2hhcmFjdGVycygpIGNvbnN0CisgICAgY29uc3QgQ2hhclR5cGVGb3JT
dHJpbmcqIGNoYXJhY3RlcnMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihtX3ZlY3Rvci5kYXRhKCkpOworICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBDaGFyVHlwZUZvclN0cmluZyo+KG1fdmVjdG9yLmRhdGEo
KSk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPGNoYXI+JiBtX3ZlY3RvcjsKKyAgICBjb25z
dCBWZWN0b3I8Q2hhclR5cGUsIE4+JiBtX3ZlY3RvcjsKIH07CiAKIHRlbXBsYXRlPD4gY2xhc3Mg
U3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZvaWQ+IHsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWE1ZGQwYWIzMTRhN2I0MTFm
ZjIzODA4YTU5YTc2Y2ZhNTM3N2EzNS4uM2RlODRjNDQwMWY0NDZlOTk2YzBhNjA0NzA4MjAyYmM4
YWM4YTc1YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wOS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5UaW1lWm9u
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21w
bGV4LnlhbWw6CisgICAgICAgICogY29tcGxleC90ZW1wb3JhbC1ub3ctdGltZXpvbmUtd2l0aC1i
cm9rZW4tdHouanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVz
cy90ZW1wb3JhbC10aW1lem9uZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChsZXQudGV4dC5vZi5mYWlsdXJlcy5zaG91bGRU
aHJvdyk6CisKIDIwMjEtMDgtMzEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnku
Y29tPgogCiAgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5EdXJhdGlvbgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9jb21wbGV4LnlhbWwgYi9KU1Rlc3RzL2NvbXBsZXgueWFtbAppbmRleCBi
OTk3ZGI0NThhYzI2MjM3MzdmODBjNjNlZmViOTkyYTZhNzEyZmE3Li4zM2ZlNDE1NTI1YjAwNzU5
ZDUwODQ3ZTgwZjRiNTBiNDVhYzhkNDUxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2NvbXBsZXgueWFt
bAorKysgYi9KU1Rlc3RzL2NvbXBsZXgueWFtbApAQCAtNDYsMyArNDYsNiBAQAogCiAtIHBhdGg6
IGNvbXBsZXgvaW50bC10aW1lem9uZS1jaGVjay5qcwogICBjbWQ6IHJ1bkNvbXBsZXhUZXN0IFtd
LCBbXSwgIlRaPUFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiLS11c2VEb2xsYXJWTT0xIgorCistIHBh
dGg6IGNvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzCisgIGNt
ZDogcnVuQ29tcGxleFRlc3QgW10sIFtdLCAiVFo9VU5ERUZJTkVEIiwgIi0tdXNlRG9sbGFyVk09
MSIsICItLXVzZVRlbXBvcmFsPTEiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL2NvbXBsZXgvdGVtcG9y
YWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzIGIvSlNUZXN0cy9jb21wbGV4L3RlbXBv
cmFsLW5vdy10aW1lem9uZS13aXRoLWJyb2tlbi10ei5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGI1MWQ0M2Ez
NGQwZWU0YzYxMmIxM2YwMjM1ZDAyN2JiNjEyZTk2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9jb21wbGV4L3RlbXBvcmFsLW5vdy10aW1lem9uZS13aXRoLWJyb2tlbi10ei5qcwpAQCAtMCww
ICsxLDYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitzaG91bGRCZShUZW1wb3JhbC5Ob3cudGltZVpvbmUoKS5pZCwg
YCswMDowMGApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdGVtcG9yYWwtdGltZXpvbmUu
anMgYi9KU1Rlc3RzL3N0cmVzcy90ZW1wb3JhbC10aW1lem9uZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmZk
OTc1NWI1N2M4OWI5ODI3MzdiYTIxZmUyNzM2Yjg0NDUyYzFlCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvdGVtcG9yYWwtdGltZXpvbmUuanMKQEAgLTAsMCArMSw1MyBAQAorLy9A
IHJlcXVpcmVPcHRpb25zKCItLXVzZVRlbXBvcmFsPTEiKQorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSwgbWVzc2FnZSkgewor
ICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFu
Y2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJy
b3JUeXBlLm5hbWV9IWApOworICAgIGlmIChtZXNzYWdlICE9PSB1bmRlZmluZWQpCisgICAgICAg
IHNob3VsZEJlKFN0cmluZyhlcnJvciksIG1lc3NhZ2UpOworfQorCitsZXQgZmFpbHVyZXMgPSBb
CisgICAgIiIsCisgICAgIisiLAorICAgICIrMiIsCisgICAgIisyOjAwIiwKKyAgICAiKzI0IiwK
KyAgICAiKzIzOiIsCisgICAgIjIwOjAwIiwKKyAgICAiKzIwOjAwMDAiLAorICAgICIrMjA6NjAi
LAorICAgICIrMjA6NTk6IiwKKyAgICAiKzIwOjU5MDAiLAorICAgICIrMjA6NTk6MDAuMDEyMzQ1
Njc4OSIKK107CisKK2ZvciAobGV0IHRleHQgb2YgZmFpbHVyZXMpIHsKKyAgICBzaG91bGRUaHJv
dygoKSA9PiB7CisgICAgICAgIG5ldyBUZW1wb3JhbC5UaW1lWm9uZSh0ZXh0KTsKKyAgICB9LCBS
YW5nZUVycm9yKTsKK30KKworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCIrMDA6MDAi
KS5pZCwgYCswMDowMGApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCIrMDE6MDAi
KS5pZCwgYCswMTowMGApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCIrMDE6NTki
KS5pZCwgYCswMTo1OWApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCItMDE6NTki
KS5pZCwgYC0wMTo1OWApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCItMDE6NTk6
MzAiKS5pZCwgYC0wMTo1OTozMGApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCIt
MDE6NTk6MzAuMTIzNDUiKS5pZCwgYC0wMTo1OTozMC4xMjM0NWApOworc2hvdWxkQmUobmV3IFRl
bXBvcmFsLlRpbWVab25lKCItMDE6NTk6MzAuMTIzNDUwMDAwIikuaWQsIGAtMDE6NTk6MzAuMTIz
NDVgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjAwMDAwMDAw
MSIpLmlkLCBgLTAxOjU5OjMwLjAwMDAwMDAwMWApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRp
bWVab25lKCItMDE6NTk6MzAuMTIzNDU2Nzg5IikuaWQsIGAtMDE6NTk6MzAuMTIzNDU2Nzg5YCk7
CisKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiQXNpYS9Ub2t5byIpLmlkLCBgQXNp
YS9Ub2t5b2ApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCJBU0lBL1RPS1lPIiku
aWQsIGBBc2lhL1Rva3lvYCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437118</attachid>
            <date>2021-09-02 00:16:33 -0700</date>
            <delta_ts>2021-09-02 01:01:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229703-20210902001632.patch</filename>
            <type>text/plain</type>
            <size>87647</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZjAzNWQxNWNiNWVhNjgwNGJmOTIyOWYxNGNmYTFlMmZkN2NkYTZmLi4wNGIwNGMwYzU1ZmJmNjc0
MzRlZDNiMjY1ZGRkMWVlYTVhOWJiNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAyMS0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBydW50aW1lL0lTTzg2MDEuY3Bw
OgorICAgICAgICAoSlNDOjpJU084NjAxOjpwYXJzZURlY2ltYWxJbnQzMik6CisgICAgICAgIChK
U0M6OklTTzg2MDE6OmhhbmRsZUZyYWN0aW9uKToKKyAgICAgICAgKEpTQzo6SVNPODYwMTo6cGFy
c2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQpOgorICAgICAgICAoSlNDOjpJU084NjAxOjpmb3Jt
YXRUaW1lWm9uZU9mZnNldFN0cmluZyk6CisgICAgICAgICogcnVudGltZS9JU084NjAxLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6aXNWYWxpZFRp
bWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZSk6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbGl6ZVRp
bWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZSk6CisgICAgICAgIChKU0M6OmludGxBdmFpbGFibGVU
aW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVUaW1lWm9uZXMpOgorICAgICAgICAq
IHJ1bnRpbWUvSW50bE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dGltZVpvbmVT
dHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxOb3cuY3BwOgorICAgICAgICAo
SlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9y
YWxOb3cuaDoKKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6Y3JlYXRlVGltZVpvbmVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9UZW1w
b3JhbFRpbWVab25lLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6
OmNyZWF0ZUZyb21JRCk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZy
b21VVENPZmZzZXQpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lOjpUZW1wb3JhbFRpbWVab25l
KToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZTo6aXNWYWxpZFRpbWVab25lTmFtZSk6
CisgICAgICAgIChKU0M6OnBhcnNlVGVtcG9yYWxUaW1lWm9uZVN0cmluZyk6CisgICAgICAgIChK
U0M6OlRlbXBvcmFsVGltZVpvbmU6OmZyb20pOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxU
aW1lWm9uZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084
NjAxLmguCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpjcmVh
dGUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6VGVt
cG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3IuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYw
MS5oLgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGUpOgor
ICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpUZW1wb3JhbFRpbWVa
b25lUHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIp
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmguCisgICAgICAgICogcnVudGltZS9WTS5jcHA6
CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDIxLTA5LTAxICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGV4Y2VwdGlvbiBz
Y29wZSB2ZXJpZmljYXRpb24gZml4IGZvciByMjQxMTcxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxNGI5OWIzZjQyNjUzMzll
YzYzZWQ2N2ZmYTRhN2I0MTJkYzQ0Yjk4Li4yNjE2ODAwNzAwY2E2MTZmNTdmOGI2MjM5MzA0MzIy
YmM0YjI0OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA5LTAyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IFRlbXBvcmFs
LlRpbWVab25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk3MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDoKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oOgorCiAyMDIxLTA4LTI2ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDdXQgZG93biBvbiB1c2Ugb2YgQ0ZHZXRUeXBlSUQs
IHVzaW5nIGR5bmFtaWNfY2ZfY2FzdCBpbnN0ZWFkOyByZWxhdGVkIHN0cmVhbWxpbmluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxNjM0N2Q4MzhiOTQxMmZjOGQ5NDM5
ZGQyNTljZWVhM2I0Yjc4NGYuLjY0NWYwM2Y4NDNiYjEwZTVkODY5Njc2MDRlNDRjMzEyNDAyZjQy
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExMSw3ICsxMTEsMTAg
QEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09VUkNFUwogICAgIHJ1bnRpbWUvVGVt
cG9yYWxDYWxlbmRhclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL1RlbXBvcmFsRHVyYXRpb25D
b25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUuY3Bw
CisgICAgcnVudGltZS9UZW1wb3JhbE5vdy5jcHAKICAgICBydW50aW1lL1RlbXBvcmFsT2JqZWN0
LmNwcAorICAgIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmNwcAorICAgIHJ1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKIAogICAgIHdhc20vanMvSlNXZWJB
c3NlbWJseS5jcHAKICAgICB3YXNtL2pzL0pTVG9XYXNtSUNDYWxsZWUuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGE1NjVmNzM3ZTBiZjI1ZWQxODM1YTNhODEzZTU0ZTk3YmVhMjQzZTMuLmNlNWY2Mjg4YWFh
MjdjYjc4MTdiZWFlMTQ0Mzc2ZWEyOGFmYWU2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNzMsNyArMTcz
LDEwIEBAICQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9y
LmNwcAogJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbENhbGVuZGFyUHJvdG90eXBlLmNw
cAogJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuY3Bw
CiAkKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUuY3BwCisk
KFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsTm93LmNwcAogJChQUk9KRUNUX0RJUikvcnVu
dGltZS9UZW1wb3JhbE9iamVjdC5jcHAKKyQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxU
aW1lWm9uZUNvbnN0cnVjdG9yLmNwcAorJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbFRp
bWVab25lUHJvdG90eXBlLmNwcAogJChQUk9KRUNUX0RJUikvdWNkL0Nhc2VGb2xkaW5nLnR4dAog
JChQUk9KRUNUX0RJUikvdWNkL0Rlcml2ZWRCaW5hcnlQcm9wZXJ0aWVzLnR4dAogJChQUk9KRUNU
X0RJUikvdWNkL0Rlcml2ZWRDb3JlUHJvcGVydGllcy50eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2MzYx
ZDQ3YTMzMmI1ZmM1ZTA3NGM1YWIxNWY2NzQ3Yzk5MzQ3ZjczLi4xYjA1NWM5MjJjMDk0YTU5NTg0
MjYwODQxZGNlZGZjYWE3Mzc2NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03MCw3ICs3MCwxMCBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9y
YWxDYWxlbmRhckNvbnN0cnVjdG9yLgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsQ2FsZW5kYXJQcm90b3R5cGUubHV0LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1wb3JhbER1
cmF0aW9uQ29uc3RydWN0b3IubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmx1dC5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9yYWxO
b3cubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9UZW1wb3JhbE9iamVjdC5sdXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5sdXQuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9Vbmljb2RlUGF0dGVyblRhYmxlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvV2FzbUIzSVJHZW5lcmF0
b3JJbmxpbmVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9XYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmEzNzY5Nzc3NGU1MDgzODY3MTZhOGUwODg4ZjUx
YmVmYmQyNmRmZi4uODgxOTI3ZTE3YmRhMjM4ZDdkYWNlZjFkNmViNWMzYzNiNzQ4YjM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE5NSw3ICsxOTUs
MTAgQEAgT0JKRUNUX0xVVF9IRUFERVJTID0gXAogICAgIFRlbXBvcmFsQ2FsZW5kYXJQcm90b3R5
cGUubHV0LmggXAogICAgIFRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAg
VGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5sdXQuaCBcCisgICAgVGVtcG9yYWxOb3cubHV0Lmgg
XAogICAgIFRlbXBvcmFsT2JqZWN0Lmx1dC5oIFwKKyAgICBUZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3IubHV0LmggXAorICAgIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUubHV0LmggXAogICAg
IFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0LmggXAogICAgIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseUdsb2JhbENv
bnN0cnVjdG9yLmx1dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTZlMjJk
M2RlNDE2MjNlNGYxOGUyNTIxOTVhMTU2ZjgwNzYxZmNjYS4uZmYyNDg4MTUzM2FkODI0ODMzNmFk
MzgxYTYzODdlM2M2MjM1MDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4
MjcsNiArMTgyNyw5IEBACiAJCUUzMDcxNzhDMjRDNzgyOTgwMERGMDY0NCAvKiBJbnRsTG9jYWxl
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBM0FGRjkzMDI0NUEzQ0ZDMDBDOUJBM0IgLyogSW50bExvY2FsZVByb3RvdHlwZS5oICovOyB9
OwogCQlFMzA3MTc4RDI0Qzc4MjlBMDBERjA2NDQgLyogSW50bExvY2FsZUNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FGRjkyQzI0
NUEzQ0ZBMDBDOUJBM0IgLyogSW50bExvY2FsZUNvbnN0cnVjdG9yLmggKi87IH07CiAJCUUzMDcx
NzhFMjRDNzgyOUQwMERGMDY0NCAvKiBJbnRsTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FGRjkyQjI0NUEzQ0Y5MDBDOUJBM0IgLyogSW50
bExvY2FsZS5oICovOyB9OworCQlFMzBFOEE1NDI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMwRThBNEUyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90
b3R5cGUuaCAqLzsgfTsKKwkJRTMwRThBNTYyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGlt
ZVpvbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MEU4QTUwMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggKi87IH07CisJCUUz
MEU4QTU3MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMEU4QTUxMjZE
RTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJ
RTMxMTc5QUEyMjg4Mzg2MTAwNTE0QjJDIC8qIFN5bWJvbFRhYmxlT3JTY29wZURlcHRoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzExNzlBOTIyODgz
ODVEMDA1MTRCMkMgLyogU3ltYm9sVGFibGVPclNjb3BlRGVwdGguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzE2MTgxMzFFQzVGRTE3MDAwNkEy
MTggLyogRE9NQW5ub3RhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMxNjE4MTAxRUM1RkUwODAwMDZBMjE4IC8qIERPTUFubm90YXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzE2MTgx
NTFFQzVGRTI3MDAwNkEyMTggLyogRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzE2MTgxMjFFQzVGRTA4MDAw
NkEyMTggLyogRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNzksNiArNTA4MiwxMiBAQAogCQlFMzA3
MTc4MDI0Qzc4MjQ3MDBERjA2NDQgLyogSW50bFNlZ21lbnRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnRsU2VnbWVudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMw
NzE3ODEyNEM3ODI0NzAwREYwNjQ0IC8qIEludGxTZWdtZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW50bFNlZ21lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3MTc4MjI0
Qzc4MjQ3MDBERjA2NDQgLyogSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzMEU4QTRDMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25l
UHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzBFOEE0RDI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhbFRpbWVab25lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNEUyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzBFOEE0RjI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBvcmFsVGltZVpv
bmVDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMEU4QTUw
MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRlbXBvcmFsVGltZVpvbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMwRThBNTEyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhbFRpbWVa
b25lQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxMTc5QTky
Mjg4Mzg1RDAwNTE0QjJDIC8qIFN5bWJvbFRhYmxlT3JTY29wZURlcHRoLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5bWJvbFRhYmxlT3JTY29wZURlcHRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzMTYxODEwMUVDNUZFMDgwMDA2QTIxOCAvKiBET01Bbm5vdGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUFubm90YXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTMxNjE4MTExRUM1RkUwODAwMDZBMjE4IC8qIERPTUF0dHJpYnV0ZUdl
dHRlclNldHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01B
dHRyaWJ1dGVHZXR0ZXJTZXR0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Nzk5OCw2ICs4MDA3LDEyIEBACiAJCQkJRjZGMTUwMTgyNjkzRDMzRDAwNEI5OEVGIC8qIFRlbXBv
cmFsTm93LmggKi8sCiAJCQkJRjZGMTUwMTkyNjkzRDMzRTAwNEI5OEVGIC8qIFRlbXBvcmFsT2Jq
ZWN0LmNwcCAqLywKIAkJCQlGNkYxNTAxQTI2OTNEMzNFMDA0Qjk4RUYgLyogVGVtcG9yYWxPYmpl
Y3QuaCAqLywKKwkJCQlFMzBFOEE0RDI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZS5jcHAgKi8sCisJCQkJRTMwRThBNTAyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpv
bmUuaCAqLywKKwkJCQlFMzBFOEE0RjI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQlFMzBFOEE1MTI2REUyRTQ4MDBEQTQ5MTUgLyogVGVt
cG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggKi8sCisJCQkJRTMwRThBNEMyNkRFMkU0NzAwREE0
OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuY3BwICovLAorCQkJCUUzMEU4QTRFMjZE
RTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggKi8sCiAJCQkJMEZB
MkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgKi8sCiAJCQkJMEZB
MkMxN0ExN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5oICovLAogCQkJCUZFMkU2
QTdBMUQ2RUE1RkUwMDYwRjg5NiAvKiBUaHJvd1Njb3BlLmNwcCAqLywKQEAgLTEwNzAwLDYgKzEw
NzE1LDkgQEAKIAkJCQlBM0M3RURCQTI2QjBEQjM4MDA0QzM0QzUgLyogVGVtcG9yYWxEdXJhdGlv
bkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0M3RURCNjI2QjBEQjM4MDA0QzM0
QzUgLyogVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjZG
MTUwMjEyNjkzRDQ1MDAwNEI5OEVGIC8qIFRlbXBvcmFsT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTMwRThBNTYyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmUuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzMEU4QTU3MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRp
bWVab25lQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMEU4QTU0MjZERTJFNDgw
MERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjQ0QTdCNDIwQkY2OEQ5MDAyMkIxNzEgLyogVGVybWluYXRlZENvZGVPcmln
aW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0
UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDZiNjg1ZWE0NGM1OTBkYmVkNjI0NWQxYzJlM2ZhYmYzZmI0NjVmYWIuLjMyOGY5MmY1YjJm
YjIwNWM4Mzg3ODIyNDE5YTUwODRlMGZhMWY3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50
eHQKQEAgLTEwMTksNiArMTAxOSw5IEBAIHJ1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVj
dG9yLmNwcAogcnVudGltZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmNwcAogcnVudGltZS9U
ZW1wb3JhbE5vdy5jcHAKIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCitydW50aW1lL1RlbXBv
cmFsVGltZVpvbmUuY3BwCitydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAK
K3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKIHJ1bnRpbWUvVGVzdFJ1bm5l
clV0aWxzLmNwcAogcnVudGltZS9UaHJvd1Njb3BlLmNwcAogcnVudGltZS9UeXBlTG9jYXRpb25D
YWNoZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2
MDEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5jcHAKaW5kZXgg
MzViZDM0ZDBkMGQ4YmFkN2MxNDBjMjgzOGRlNDY2Zjg5YjkzNzdhMi4uMzEzOTIyMzE1MGQ1ZTQ4
ODZjMjg1NDc0ZTEwMTdmNWNmZGVhYWVlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSVNPODYwMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSVNPODYwMS5jcHAKQEAgLTMyLDYgKzMyLDIzIEBACiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVz
cGFjZSBJU084NjAxIHsKIAorc3RhdGljIGNvbnN0ZXhwciBpbnQ2NF90IG5zUGVySG91ciA9IDEw
MDBMTCAqIDEwMDAgKiAxMDAwICogNjAgKiA2MDsKK3N0YXRpYyBjb25zdGV4cHIgaW50NjRfdCBu
c1Blck1pbnV0ZSA9IDEwMDBMTCAqIDEwMDAgKiAxMDAwICogNjA7CitzdGF0aWMgY29uc3RleHBy
IGludDY0X3QgbnNQZXJTZWNvbmQgPSAxMDAwTEwgKiAxMDAwICogMTAwMDsKK3N0YXRpYyBjb25z
dGV4cHIgaW50NjRfdCBuc1Blck1pbGxpc2Vjb25kID0gMTAwMExMICogMTAwMDsKK3N0YXRpYyBj
b25zdGV4cHIgaW50NjRfdCBuc1Blck1pY3Jvc2Vjb25kID0gMTAwMExMOworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyVHlwZT4KK2ludDMyX3QgcGFyc2VEZWNpbWFsSW50MzIoY29uc3QgQ2hhclR5
cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBpbnQzMl90IHJlc3VsdCA9
IDA7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4
KSB7CisgICAgICAgIEFTU0VSVChpc0FTQ0lJRGlnaXQoY2hhcmFjdGVyc1tpbmRleF0pKTsKKyAg
ICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDEwKSArIGNoYXJhY3RlcnNbaW5kZXhdIC0gJzAnOwor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiAvLyBEdXJhdGlvbkhhbmRsZUZyYWN0aW9u
cyAoIGZIb3VycywgbWludXRlcywgZk1pbnV0ZXMsIHNlY29uZHMsIGZTZWNvbmRzLCBtaWxsaXNl
Y29uZHMsIGZNaWxsaXNlY29uZHMsIG1pY3Jvc2Vjb25kcywgZk1pY3Jvc2Vjb25kcywgbmFub3Nl
Y29uZHMsIGZOYW5vc2Vjb25kcyApCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9y
YWwvI3NlYy10ZW1wb3JhbC1kdXJhdGlvbmhhbmRsZWZyYWN0aW9ucwogc3RhdGljIHZvaWQgaGFu
ZGxlRnJhY3Rpb24oRHVyYXRpb24mIGR1cmF0aW9uLCBpbnQgZmFjdG9yLCBTdHJpbmdWaWV3IGZy
YWN0aW9uU3RyaW5nLCBUZW1wb3JhbFVuaXQgZnJhY3Rpb25UeXBlKQpAQCAtNDMsOSArNjAsOSBA
QCBzdGF0aWMgdm9pZCBoYW5kbGVGcmFjdGlvbihEdXJhdGlvbiYgZHVyYXRpb24sIGludCBmYWN0
b3IsIFN0cmluZ1ZpZXcgZnJhY3Rpb25TdAogICAgICAgICBWZWN0b3I8TENoYXIsIDk+IHBhZGRl
ZCg5LCAnMCcpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhY3Rpb25TdHJp
bmcubGVuZ3RoKCk7IGkrKykKICAgICAgICAgICAgIHBhZGRlZFtpXSA9IGZyYWN0aW9uU3RyaW5n
W2ldOwotICAgICAgICBkdXJhdGlvbi5zZXRNaWxsaXNlY29uZHMoZmFjdG9yICogcGFyc2VJbnQo
eyBwYWRkZWQuZGF0YSgpLCAzIH0sIDEwKSk7Ci0gICAgICAgIGR1cmF0aW9uLnNldE1pY3Jvc2Vj
b25kcyhmYWN0b3IgKiBwYXJzZUludCh7ICZwYWRkZWQuZGF0YSgpWzNdLCAzIH0sIDEwKSk7Ci0g
ICAgICAgIGR1cmF0aW9uLnNldE5hbm9zZWNvbmRzKGZhY3RvciAqIHBhcnNlSW50KHsgJnBhZGRl
ZC5kYXRhKClbNl0sIDMgfSwgMTApKTsKKyAgICAgICAgZHVyYXRpb24uc2V0TWlsbGlzZWNvbmRz
KGZhY3RvciAqIHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCksIDMpKTsKKyAgICAgICAg
ZHVyYXRpb24uc2V0TWljcm9zZWNvbmRzKGZhY3RvciAqIHBhcnNlRGVjaW1hbEludDMyKHBhZGRl
ZC5kYXRhKCkgKyAzLCAzKSk7CisgICAgICAgIGR1cmF0aW9uLnNldE5hbm9zZWNvbmRzKGZhY3Rv
ciAqIHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCkgKyA2LCAzKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTIyNiw1ICsyNDMsMTU0IEBAIHN0ZDo6b3B0aW9uYWw8RHVyYXRp
b24+IHBhcnNlRHVyYXRpb24oU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgfSk7CiB9CiAKK3N0ZDo6
b3B0aW9uYWw8aW50NjRfdD4gcGFyc2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQoU3RyaW5nVmll
dyBzdHJpbmcpCit7CisgICAgLy8gVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0IDoKKyAgICAvLyAg
ICAgVGltZVpvbmVVVENPZmZzZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0SG91cgorICAgIC8vICAg
ICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENPZmZzZXRIb3VyIDogVGltZVpvbmVV
VENPZmZzZXRNaW51dGUKKyAgICAvLyAgICAgVGltZVpvbmVVVENPZmZzZXRTaWduIFRpbWVab25l
VVRDT2Zmc2V0SG91ciBUaW1lWm9uZVVUQ09mZnNldE1pbnV0ZQorICAgIC8vICAgICBUaW1lWm9u
ZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENPZmZzZXRIb3VyIDogVGltZVpvbmVVVENPZmZzZXRN
aW51dGUgOiBUaW1lWm9uZVVUQ09mZnNldFNlY29uZCBUaW1lWm9uZVVUQ09mZnNldEZyYWN0aW9u
W29wdF0KKyAgICAvLyAgICAgVGltZVpvbmVVVENPZmZzZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0
SG91ciBUaW1lWm9uZVVUQ09mZnNldE1pbnV0ZSBUaW1lWm9uZVVUQ09mZnNldFNlY29uZFtvcHRd
CisgICAgLy8KKyAgICAvLyAgTWF4aW11bSBhbmQgbWluaW11bSB2YWx1ZXMgYXJlICstMjM6NTk6
NTkuOTk5OTk5OTk5ID0gKy04NjM5OTk5OTk5OTk5OW5zLCB3aGljaCBjYW4gYmUgcmVwcmVzZW50
ZWQgYnkgaW50NjRfdCAvIGRvdWJsZSdzIGludGVnZXIgcGFydC4KKyAgICByZXR1cm4gcmVhZENo
YXJhY3RlcnNGb3JQYXJzaW5nKHN0cmluZywgW10oYXV0byBidWZmZXIpIC0+IHN0ZDo6b3B0aW9u
YWw8aW50NjRfdD4geworICAgICAgICAvLyBzaWduIGFuZCBob3VyLgorICAgICAgICBpZiAoYnVm
ZmVyLmxlbmd0aFJlbWFpbmluZygpIDwgMykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgaW50NjRfdCBmYWN0b3IgPSAxOworICAgICAgICBpZiAoKmJ1ZmZlciA9
PSAnKycpCisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICBlbHNlIGlmICgq
YnVmZmVyID09ICctJyB8fCAqYnVmZmVyID09IDB4MjIxMikgeworICAgICAgICAgICAgZmFjdG9y
ID0gLTE7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaW50NjRfdCBob3VyID0g
MDsKKyAgICAgICAgQVNTRVJUKGJ1ZmZlci5sZW5ndGhSZW1haW5pbmcoKSA+PSAyKTsKKyAgICAg
ICAgYXV0byBmaXJzdEhvdXJDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICBpZiAoZmlyc3RI
b3VyQ2hhcmFjdGVyID49ICcwJyAmJiBmaXJzdEhvdXJDaGFyYWN0ZXIgPD0gJzInKSB7CisgICAg
ICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAgYXV0byBzZWNvbmRIb3VyQ2hh
cmFjdGVyID0gKmJ1ZmZlcjsKKyAgICAgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KHNlY29uZEhv
dXJDaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgICAgICBob3VyID0gKHNlY29uZEhvdXJDaGFyYWN0ZXIgLSAnMCcpICsgMTAgKiAoZmlyc3RI
b3VyQ2hhcmFjdGVyIC0gJzAnKTsKKyAgICAgICAgICAgIGlmIChob3VyID49IDI0KQorICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5j
ZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgaWYgKGJ1ZmZlci5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIChuc1Blckhv
dXIgKiBob3VyKSAqIGZhY3RvcjsKKworICAgICAgICBBU1NFUlQoYnVmZmVyLmhhc0NoYXJhY3Rl
cnNSZW1haW5pbmcoKSk7CisgICAgICAgIGJvb2wgc3BsaXR0ZWRCeUNvbG9uID0gZmFsc2U7Cisg
ICAgICAgIGlmICgqYnVmZmVyID09ICc6JykgeworICAgICAgICAgICAgYnVmZmVyLmFkdmFuY2Uo
KTsKKyAgICAgICAgICAgIHNwbGl0dGVkQnlDb2xvbiA9IHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICBpbnQ2NF90IG1pbnV0ZSA9IDA7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoUmVtYWlu
aW5nKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0
byBmaXJzdE1pbnV0ZUNoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAgIGlmIChmaXJzdE1pbnV0
ZUNoYXJhY3RlciA+PSAnMCcgJiYgZmlyc3RNaW51dGVDaGFyYWN0ZXIgPD0gJzUnKSB7CisgICAg
ICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAgYXV0byBzZWNvbmRNaW51dGVD
aGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoc2Vjb25k
TWludXRlQ2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICAgICAgbWludXRlID0gKHNlY29uZE1pbnV0ZUNoYXJhY3RlciAtICcwJykgKyAxMCAq
IChmaXJzdE1pbnV0ZUNoYXJhY3RlciAtICcwJyk7CisgICAgICAgICAgICBBU1NFUlQobWludXRl
IDwgNjApOworICAgICAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIGlmIChidWZmZXIuYXRF
bmQoKSkKKyAgICAgICAgICAgIHJldHVybiAobnNQZXJIb3VyICogaG91ciArIG5zUGVyTWludXRl
ICogbWludXRlKSAqIGZhY3RvcjsKKworICAgICAgICBBU1NFUlQoYnVmZmVyLmhhc0NoYXJhY3Rl
cnNSZW1haW5pbmcoKSk7CisgICAgICAgIGlmIChzcGxpdHRlZEJ5Q29sb24pIHsKKyAgICAgICAg
ICAgIGlmICgqYnVmZmVyID09ICc6JykKKyAgICAgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgICAgIH0KKworICAgICAgICBpbnQ2NF90IHNlY29uZCA9IDA7CisgICAgICAgIGlmIChi
dWZmZXIubGVuZ3RoUmVtYWluaW5nKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgYXV0byBmaXJzdFNlY29uZENoYXJhY3RlciA9ICpidWZmZXI7CisgICAg
ICAgIGlmIChmaXJzdFNlY29uZENoYXJhY3RlciA+PSAnMCcgJiYgZmlyc3RTZWNvbmRDaGFyYWN0
ZXIgPD0gJzUnKSB7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAg
YXV0byBzZWNvbmRTZWNvbmRDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICAgICAgaWYgKCFp
c0FTQ0lJRGlnaXQoc2Vjb25kU2Vjb25kQ2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgc2Vjb25kID0gKHNlY29uZFNlY29uZENoYXJh
Y3RlciAtICcwJykgKyAxMCAqIChmaXJzdFNlY29uZENoYXJhY3RlciAtICcwJyk7CisgICAgICAg
ICAgICBBU1NFUlQobWludXRlIDwgNjApOworICAgICAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIGlmIChidWZmZXIuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiAobnNQZXJIb3VyICog
aG91ciArIG5zUGVyTWludXRlICogbWludXRlICsgbnNQZXJTZWNvbmQgKiBzZWNvbmQpICogZmFj
dG9yOworCisgICAgICAgIEFTU0VSVChidWZmZXIuaGFzQ2hhcmFjdGVyc1JlbWFpbmluZygpKTsK
KyAgICAgICAgaWYgKCpidWZmZXIgIT0gJy4nICYmICpidWZmZXIgIT0gJywnKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKworICAg
ICAgICB1bnNpZ25lZCBkaWdpdHMgPSAwOworICAgICAgICB3aGlsZSAoZGlnaXRzIDwgYnVmZmVy
Lmxlbmd0aFJlbWFpbmluZygpICYmIGlzQVNDSUlEaWdpdChidWZmZXJbZGlnaXRzXSkpCisgICAg
ICAgICAgICBkaWdpdHMrKzsKKyAgICAgICAgaWYgKCFkaWdpdHMgfHwgZGlnaXRzID4gOSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVjdG9yPExDaGFyLCA5
PiBwYWRkZWQoOSwgJzAnKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRpZ2l0
czsgKytpKQorICAgICAgICAgICAgcGFkZGVkW2ldID0gYnVmZmVyW2ldOworICAgICAgICBidWZm
ZXIuYWR2YW5jZUJ5KGRpZ2l0cyk7CisgICAgICAgIGlmICghYnVmZmVyLmF0RW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIGludDY0X3QgbWlsbGlzZWNv
bmQgPSBwYXJzZURlY2ltYWxJbnQzMihwYWRkZWQuZGF0YSgpLCAzKTsKKyAgICAgICAgaW50NjRf
dCBtaWNyb3NlY29uZCA9IHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCkgKyAzLCAzKTsK
KyAgICAgICAgaW50NjRfdCBuYW5vc2Vjb25kID0gcGFyc2VEZWNpbWFsSW50MzIocGFkZGVkLmRh
dGEoKSArIDYsIDMpOworCisgICAgICAgIHJldHVybiAobnNQZXJIb3VyICogaG91ciArIG5zUGVy
TWludXRlICogbWludXRlICsgbnNQZXJTZWNvbmQgKiBzZWNvbmQgKyBuc1Blck1pbGxpc2Vjb25k
ICogbWlsbGlzZWNvbmQgKyBuc1Blck1pY3Jvc2Vjb25kICogbWljcm9zZWNvbmQgKyBuYW5vc2Vj
b25kKSAqIGZhY3RvcjsKKyAgICB9KTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtZm9ybWF0dGltZXpvbmVvZmZzZXRzdHJpbmcKK1N0cmlu
ZyBmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmluZyhpbnQ2NF90IG9mZnNldCkKK3sKKyAgICBib29s
IG5lZ2F0aXZlID0gZmFsc2U7CisgICAgaWYgKG9mZnNldCA8IDApIHsKKyAgICAgICAgbmVnYXRp
dmUgPSB0cnVlOworICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OyAvLyBUaGlzIGlzIE9LIHNpbmNl
IG9mZnNldCByYW5nZSBpcyBtdWNoIG5hcnJvd2VyIHRoYW4gW0lOVDY0X01JTiwgSU5UNjRfTUFY
XSByYW5nZS4KKyAgICB9CisgICAgaW50NjRfdCBuYW5vc2Vjb25kcyA9IG9mZnNldCAlIG5zUGVy
U2Vjb25kOworICAgIGludDY0X3Qgc2Vjb25kcyA9IChvZmZzZXQgLyBuc1BlclNlY29uZCkgJSA2
MDsKKyAgICBpbnQ2NF90IG1pbnV0ZXMgPSAob2Zmc2V0IC8gbnNQZXJNaW51dGUpICUgNjA7Cisg
ICAgaW50NjRfdCBob3VycyA9IG9mZnNldCAvIG5zUGVySG91cjsKKworICAgIGlmIChuYW5vc2Vj
b25kcykgeworICAgICAgICAvLyBTaW5jZSBuc1BlclNlY29uZCBpcyAxMDAwMDAwMDAwLCBzdHJp
bmdpZmllZCBuYW5vc2Vjb25kcyB0YWtlcyBhdCBtb3N0IDkgY2hhcmFjdGVycyAoOTk5OTk5OTk5
KS4KKyAgICAgICAgYXV0byBmcmFjdGlvbiA9IFdURjo6bnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxW
ZWN0b3I8TENoYXIsIDk+PihuYW5vc2Vjb25kcyk7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0g
MDsKKyAgICAgICAgdW5zaWduZWQgcGFkZGluZ0xlbmd0aCA9IDkgLSBmcmFjdGlvbi5zaXplKCk7
CisgICAgICAgIGZvciAoOyBpbmRleCA8IGZyYWN0aW9uLnNpemUoKTsgKytpbmRleCkgeworICAg
ICAgICAgICAgaWYgKGZyYWN0aW9uW2luZGV4XSA9PSAnMCcpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgZnJhY3Rpb24ucmVzaXplKGluZGV4KTsKKyAgICAgICAg
cmV0dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJz
KSwgJzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSwgJzonLCBwYWQoJzAnLCAyLCBzZWNvbmRzKSwg
Jy4nLCBwYWQoJzAnLCBwYWRkaW5nTGVuZ3RoLCBlbXB0eVN0cmluZygpKSwgZnJhY3Rpb24pOwor
ICAgIH0KKyAgICBpZiAoc2Vjb25kcykKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobmVnYXRp
dmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJzKSwgJzonLCBwYWQoJzAnLCAyLCBtaW51
dGVzKSwgJzonLCBwYWQoJzAnLCAyLCBzZWNvbmRzKSk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmco
bmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJzKSwgJzonLCBwYWQoJzAnLCAy
LCBtaW51dGVzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElTTzg2MDEKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCmluZGV4IGU1N2MxY2E1
MmI0N2Y0N2E5M2Q0N2ZiMGE0N2I5YjViZmNjYjYwODUuLjY3Njg5ZDFjMjQ1YWZlZTJhYzI2OTU5
YzI5NzBkZDQ5NjNhZTMwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0lTTzg2MDEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAx
LmgKQEAgLTQ5LDYgKzQ5LDggQEAgc3RydWN0IER1cmF0aW9uIHsKIH07CiAKIHN0ZDo6b3B0aW9u
YWw8RHVyYXRpb24+IHBhcnNlRHVyYXRpb24oU3RyaW5nVmlldyk7CitzdGQ6Om9wdGlvbmFsPGlu
dDY0X3Q+IHBhcnNlVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0KFN0cmluZ1ZpZXcpOworU3RyaW5n
IGZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKGludDY0X3QpOwogCiB9IC8vIG5hbWVzcGFjZSBJ
U084NjAxCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAKaW5kZXggZjc0ZTU3MTE3NzJjNGQxYmQ5YTRkN2JlOWQ5MjI3NjFi
NmRiY2JjNC4uOGQ4ZTk2ZTc3NTVkNThhYjg0MmUzNjBjZmFmYjE5ZDAwZmUyNjI3MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTE3NzAsNjMg
KzE3NzAsNzkgQEAgc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUoZWxlbWVu
dHMpKSk7CiB9CiAKLS8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9u
LyNzZWMtY2Fub25pY2FsaXpldGltZXpvbmVuYW1lCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZShjb25zdCBTdHJpbmcm
IHRpbWVab25lTmFtZSkKK3N0YXRpYyBib29sIGlzVmFsaWRUaW1lWm9uZU5hbWVGcm9tSUNVVGlt
ZVpvbmUoU3RyaW5nVmlldyB0aW1lWm9uZU5hbWUpCiB7CiAgICAgLy8gU29tZSB0aW1lIHpvbmUg
bmFtZXMgYXJlIGluY2x1ZGVkIGluIElDVSwgYnV0IHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0
aGUgSUFOQSBUaW1lIFpvbmUgRGF0YWJhc2UuCiAgICAgLy8gV2UgbmVlZCB0byBmaWx0ZXIgdGhl
bSBvdXQuCiAgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJTeXN0ZW1WLyIpKQotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJFdGMvIikpCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybiBpc1VUQ0VxdWl2YWxlbnQodGltZVpvbmVOYW1lKTsKICAg
ICAvLyBJQU5BIHRpbWUgem9uZSBuYW1lcyBpbmNsdWRlICcvJy4gU29tZSBvZiB0aGVtIGFyZSBu
b3QgaW5jbHVkaW5nLCBidXQgaXQgaXMgaW4gYmFja3dhcmQgbGlua3MuCiAgICAgLy8gQW5kIElD
VSBhbHJlYWR5IHJlc29sdmVkIHRoZXNlIGJhY2t3YXJkIGxpbmtzLgogICAgIGlmICghdGltZVpv
bmVOYW1lLmNvbnRhaW5zKCcvJykpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgIHJldHVybiB0aW1lWm9uZU5hbWUgPT0gIlVUQyJfcyB8fCB0aW1lWm9uZU5hbWUgPT0gIkdN
VCJfczsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIHJldHVybiB0aW1lWm9uZU5hbWU7Cisv
LyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWNhbm9uaWNh
bGl6ZXRpbWV6b25lbmFtZQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjYW5vbmljYWxp
emVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUoU3RyaW5nJiYgdGltZVpvbmVOYW1lKQorewor
ICAgIGlmIChpc1VUQ0VxdWl2YWxlbnQodGltZVpvbmVOYW1lKSkKKyAgICAgICAgcmV0dXJuICJV
VEMiX3M7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3ZlKHRpbWVab25lTmFt
ZSkpOwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8j
c2VjLWF2YWlsYWJsZXRpbWV6b25lcwotc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRpbWVab25l
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorY29uc3QgVmVjdG9yPFN0cmluZz4mIGlu
dGxBdmFpbGFibGVUaW1lWm9uZXMoKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBhdXRvIGVudW1lcmF0aW9uID0gc3Rk
Ojp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjYWxf
b3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9DQU5PTklDQUwsIG51bGxw
dHIsIG51bGxwdHIsICZzdGF0dXMpKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
fQotCi0gICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAm
c3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxl
IHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQorICAgIHN0YXRpYyBM
YXp5TmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGF2YWlsYWJsZVRpbWVab25lczsKKyAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9uY2U7CisgICAgc3RkOjpjYWxsX29u
Y2UoaW5pdGlhbGl6ZU9uY2UsIFsmXSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRlbXBvcmFy
eTsKKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIGF1
dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVy
PHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uKFVDQUxfWk9ORV9U
WVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0YXR1cykpOworICAgICAgICBBU1NF
UlQoVV9TVUNDRVNTKHN0YXR1cykpOwogCi0gICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7
Ci0gICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7Ci0gICAgZm9yIChp
bnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgewotICAgICAgICBpbnQz
Ml90IGxlbmd0aCA9IDA7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0
KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKLSAgICAgICAgaWYgKFVfRkFJ
TFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKLSAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGludDMyX3QgY291bnQgPSB1ZW51bV9jb3Vu
dChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgICAgIEFTU0VSVChVX1NVQ0NFU1Mo
c3RhdHVzKSk7CisgICAgICAgIHRlbXBvcmFyeS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50
KTsKKyAgICAgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRl
eCkgeworICAgICAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAgICAgICAgY29uc3Qg
Y2hhciogcG9pbnRlciA9IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZz
dGF0dXMpOworICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAgICAgICAg
ICAgIFN0cmluZyB0aW1lWm9uZShwb2ludGVyLCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKGlz
VmFsaWRUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUodGltZVpvbmUpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gbWFwcGVkID0gY2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRp
bWVab25lKFdURk1vdmUodGltZVpvbmUpKSkKKyAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5
LmFwcGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KLSAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7Ci0gICAgICAgIGlm
IChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZSh0
aW1lWm9uZSkpCi0gICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFs
dWUoKSkpOwotICAgIH0KIAotICAgIC8vIDQuIFNvcnQgcmVzdWx0IGluIG9yZGVyIGFzIGlmIGFu
IEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnBy
b3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuLgotICAgIHN0ZDo6c29y
dChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKLSAgICAgICAgW10oY29uc3QgU3Ry
aW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKLSAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQ
b2ludENvbXBhcmUoYSwgYikgPCAwOwotICAgICAgICB9KTsKKyAgICAgICAgLy8gVGhlIEF2YWls
YWJsZVRpbWVab25lcyBhYnN0cmFjdCBvcGVyYXRpb24gcmV0dXJucyBhIExpc3QsIG9yZGVyZWQg
YXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUKKyAgICAgICAgLy8gdmFsdWVzIGhhZCBiZWVuIHNv
cnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5nIHVuZGVmaW5lZCBhcyBjb21w
YXJlZm4KKyAgICAgICAgc3RkOjpzb3J0KHRlbXBvcmFyeS5iZWdpbigpLCB0ZW1wb3JhcnkuZW5k
KCksCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgewor
ICAgICAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGF1dG8gZW5kID0gc3RkOjp1bmlxdWUodGVtcG9yYXJ5
LmJlZ2luKCksIHRlbXBvcmFyeS5lbmQoKSk7CisgICAgICAgIGF2YWlsYWJsZVRpbWVab25lcy5j
b25zdHJ1Y3QoKTsKKyAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVzLT5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGVuZCAtIHRlbXBvcmFyeS5iZWdpbigpKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKGdsb2JhbE9iamVjdCwgV1RGTW92
ZShlbGVtZW50cykpKTsKKyAgICAgICAgYXV0byBjcmVhdGVJbW1vcnRhbFRocmVhZFNhZmVTdHJp
bmcgPSBbJl0oU3RyaW5nJiYgc3RyaW5nKSB7CisgICAgICAgICAgICBpZiAoc3RyaW5nLmlzOEJp
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpjcmVhdGVTdGF0aWNTdHJp
bmdJbXBsKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZVN0YXRpY1N0cmluZ0ltcGwoc3RyaW5nLmNoYXJh
Y3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICB9OworICAgICAgICBmb3IgKGF1
dG8gaXRlcmF0b3IgPSB0ZW1wb3JhcnkuYmVnaW4oKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJh
dG9yKQorICAgICAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVzLT51bmNoZWNrZWRBcHBlbmQoY3Jl
YXRlSW1tb3J0YWxUaHJlYWRTYWZlU3RyaW5nKFdURk1vdmUoKml0ZXJhdG9yKSkpOworICAgIH0p
OworICAgIHJldHVybiBhdmFpbGFibGVUaW1lWm9uZXM7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5l
cy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldGltZXpvbmVzCitzdGF0
aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmpl
Y3QsIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKSk7CiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9w
cm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldW5pdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCBmMjEzN2RlMzVlOTNhNTFlNWM4
NTUyZGE2YWRmODliNDU5ZDUwOTdiLi45NmQyMTg1NWM5Y2E2ZjNlMzE5NmI3NGVhMDJkMGVkNTNk
MzljMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBA
IC0xMTQsNiArMTE0LDkgQEAgaW5saW5lIENhbGVuZGFySUQgaXNvODYwMUNhbGVuZGFySUQoKQog
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAordXNpbmcgVGltZVpvbmVJRCA9IHVuc2lnbmVkOworY29u
c3QgVmVjdG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKTsKKwogVHJpU3RhdGUg
aW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucywgUHJv
cGVydHlOYW1lKTsKIFN0cmluZyBpbnRsU3RyaW5nT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0
IGNoYXIqPiB2YWx1ZXMsIGNvbnN0IGNoYXIqIG5vdEZvdW5kLCBjb25zdCBjaGFyKiBmYWxsYmFj
ayk7CiB1bnNpZ25lZCBpbnRsTnVtYmVyT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11
bSwgdW5zaWduZWQgZmFsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDZiMmY0NjE4ZGExNzM4YTI4YzA2M2M2ZWVhNjJm
Njg2OGM3NGJkZjYuLmY3YzE5ZWM0ODU0YTJhNzdiMjdiMjQ3NDA3Yzk0MjdjNGI3MmQ0NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
QEAgLTIwNiw2ICsyMDYsOSBAQAogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb24uaCIKICNpbmNs
dWRlICJUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiVGVtcG9yYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxU
aW1lWm9uZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlw
ZS5oIgogI2luY2x1ZGUgIlZNVHJhcHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUNhcGFiaWxp
dGllcy5oIgogI2luY2x1ZGUgIldlYWtNYXBDb25zdHJ1Y3Rvci5oIgpAQCAtMTIzMCw2ICsxMjMz
LDEzIEBAIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0
b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0YWxOYW1lCiAgICAgICAgICAgICAgICAgaW5pdC5zZXQo
VGVtcG9yYWxEdXJhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwg
ZHVyYXRpb25Qcm90b3R5cGUpKTsKICAgICAgICAgICAgIH0pOwogCisgICAgICAgIG1fdGltZVpv
bmVTdHJ1Y3R1cmUuaW5pdExhdGVyKAorICAgICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVy
PFN0cnVjdHVyZT4mIGluaXQpIHsKKyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lcik7CisgICAgICAg
ICAgICAgICAgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSogdGltZVpvbmVQcm90b3R5cGUgPSBU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CisgICAgICAgICAgICAg
ICAgaW5pdC5zZXQoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGds
b2JhbE9iamVjdCwgdGltZVpvbmVQcm90b3R5cGUpKTsKKyAgICAgICAgICAgIH0pOworCiAgICAg
ICAgIFRlbXBvcmFsT2JqZWN0KiB0ZW1wb3JhbCA9IFRlbXBvcmFsT2JqZWN0OjpjcmVhdGUodm0s
IFRlbXBvcmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMpKTsKICAgICAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlRlbXBvcmFsLCB0
ZW1wb3JhbCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIH0KQEAgLTIxMTAsNiArMjEyMCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZp
c2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIAogICAgIHRo
aXNPYmplY3QtPm1fY2FsZW5kYXJTdHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CiAgICAgdGhpc09i
amVjdC0+bV9kdXJhdGlvblN0cnVjdHVyZS52aXNpdCh2aXNpdG9yKTsKKyAgICB0aGlzT2JqZWN0
LT5tX3RpbWVab25lU3RydWN0dXJlLnZpc2l0KHZpc2l0b3IpOwogCiAgICAgdmlzaXRvci5hcHBl
bmQodGhpc09iamVjdC0+bV9udWxsR2V0dGVyRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5k
KHRoaXNPYmplY3QtPm1fbnVsbFNldHRlckZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGQ0ZGUzMGI2MTM2ZTljYzkzMTg0
MjA3NDI0ZTQ3YWYyYTExNWU5OTEuLmRlYjMzZGJkMTAzMDgzYTE4ZjQwYmE3YWRjNTY5NTI2MDE0
OTdkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaApAQCAtMzI2LDYgKzMyNiw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsZW5kYXJTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpT
R2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fZHVyYXRpb25TdHJ1Y3R1cmU7CisgICAgTGF6eVBy
b3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fdGltZVpvbmVTdHJ1Y3R1cmU7CiAK
ICAgICBXcml0ZUJhcnJpZXI8TnVsbEdldHRlckZ1bmN0aW9uPiBtX251bGxHZXR0ZXJGdW5jdGlv
bjsKICAgICBXcml0ZUJhcnJpZXI8TnVsbFNldHRlckZ1bmN0aW9uPiBtX251bGxTZXR0ZXJGdW5j
dGlvbjsKQEAgLTg3NSw2ICs4NzYsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBK
U1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIFN0cnVjdHVyZSogY2FsZW5kYXJTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX2NhbGVuZGFyU3RydWN0dXJlLmdldCh0aGlzKTsgfQogICAgIFN0
cnVjdHVyZSogZHVyYXRpb25TdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2R1cmF0aW9uU3RydWN0dXJl
LmdldCh0aGlzKTsgfQorICAgIFN0cnVjdHVyZSogdGltZVpvbmVTdHJ1Y3R1cmUoKSB7IHJldHVy
biBtX3RpbWVab25lU3RydWN0dXJlLmdldCh0aGlzKTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzZXRSZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgcmVtb3RlRGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwCmluZGV4IDI0YjkyZTgxNjI3MTc5
YmYxZjI0OGMzODBhYzRiNjQzNDEyYWNhOWYuLmUzOTUxMDE1Zjg0MWJmNWM0YWU1Yzg4Nzk4NGNh
NWE3NWJhMWY2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rl
bXBvcmFsTm93LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3Jh
bE5vdy5jcHAKQEAgLTI0LDEyICsyNCwyNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiSlNPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBl
LmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAog
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFRlbXBvcmFsTm93KTsKIAot
Y29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsTm93OjpzX2luZm8gPSB7ICJUZW1wb3JhbC5Ob3ciLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBv
cmFsTm93KSB9Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxOb3dG
dW5jVGltZVpvbmUpOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2luY2x1ZGUgIlRlbXBvcmFs
Tm93Lmx1dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworLyogU291cmNlIGZvciBUZW1wb3JhbE5v
dy5sdXQuaAorQGJlZ2luIHRlbXBvcmFsTm93VGFibGUKKyAgICB0aW1lWm9uZSAgICAgICAgdGVt
cG9yYWxOb3dGdW5jVGltZVpvbmUgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKK0BlbmQKKyovCisK
K2NvbnN0IENsYXNzSW5mbyBUZW1wb3JhbE5vdzo6c19pbmZvID0geyAiVGVtcG9yYWwuTm93Iiwg
JkJhc2U6OnNfaW5mbywgJnRlbXBvcmFsTm93VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoVGVtcG9yYWxOb3cpIH07CiAKIFRlbXBvcmFsTm93OjpUZW1wb3JhbE5vdyhWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpAQCAtNTUs
NCArNzAsMTcgQEAgdm9pZCBUZW1wb3JhbE5vdzo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAg
IEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCisvLyBodHRwczov
L3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC5ub3cudGltZXpvbmUKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXN5c3RlbXRp
bWV6b25lCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKK3sKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBTdHJpbmcgdGltZVpvbmVTdHJpbmcgPSB2
bS5kYXRlQ2FjaGUuZGVmYXVsdFRpbWVab25lKCk7CisgICAgc3RkOjpvcHRpb25hbDxUaW1lWm9u
ZUlEPiBpZGVudGlmaWVyID0gVGVtcG9yYWxUaW1lWm9uZTo6aXNWYWxpZFRpbWVab25lTmFtZSh0
aW1lWm9uZVN0cmluZyk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21VVENPZmZzZXQodm0sIGds
b2JhbE9iamVjdC0+dGltZVpvbmVTdHJ1Y3R1cmUoKSwgMCkpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbUlEKHZtLCBnbG9iYWxPYmplY3Qt
PnRpbWVab25lU3RydWN0dXJlKCksIGlkZW50aWZpZXIudmFsdWUoKSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rl
bXBvcmFsTm93LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE5vdy5o
CmluZGV4IDE1MWY2NjgxMjk3YjMyOGZhMGY5OWE4MDNiMjI1ZWFmMDliNDM5ODUuLmMxYzg2YTM3
MTY2YTBhMTMyYmI0OWU2MThhYThiMThkOWZjYjJkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuaApAQCAtMjYsNiArMjYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIFRlbXBvcmFsTm93IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlw
ZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihW
TSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE9iamVj
dC5jcHAKaW5kZXggOTUzNTcxOWY3ZWMxYTBlOTY1NDE4YTU0YWQzNTBjN2ViZTYxYzQ5OS4uZGY1
MTRkNmRkYzE0NTk2ZGQyZjI1YzllMTExZThhN2NlYWRmYTIwYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcApAQCAtMzMsNiArMzMsOCBA
QAogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlRl
bXBvcmFsRHVyYXRpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJUZW1wb3JhbE5vdy5oIgorI2lu
Y2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIlRlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTU5LDYgKzYxLDEz
IEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUR1cmF0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBKU09i
amVjdCogb2JqZWN0KQogICAgIHJldHVybiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3I6OmNy
ZWF0ZSh2bSwgVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0
PFRlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmR1cmF0aW9uU3RydWN0
dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlIGNy
ZWF0ZVRpbWVab25lQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQoreworICAg
IFRlbXBvcmFsT2JqZWN0KiB0ZW1wb3JhbE9iamVjdCA9IGpzQ2FzdDxUZW1wb3JhbE9iamVjdCo+
KG9iamVjdCk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRlbXBvcmFsT2Jq
ZWN0LT5nbG9iYWxPYmplY3Qodm0pOworICAgIHJldHVybiBUZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3I6OmNyZWF0ZSh2bSwgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgp
KSwganNDYXN0PFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPnRpbWVa
b25lU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCiAjaW5jbHVkZSAiVGVtcG9yYWxPYmplY3QubHV0LmgiCkBAIC02OCw4ICs3
Nyw5IEBAIG5hbWVzcGFjZSBKU0MgewogLyogU291cmNlIGZvciBUZW1wb3JhbE9iamVjdC5sdXQu
aAogQGJlZ2luIHRlbXBvcmFsT2JqZWN0VGFibGUKICAgQ2FsZW5kYXIgICAgICAgY3JlYXRlQ2Fs
ZW5kYXJDb25zdHJ1Y3RvciAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCi0gIE5vdyAg
ICAgICAgICAgIGNyZWF0ZU5vd09iamVjdCAgICAgICAgICAgICAgICAgRG9udEVudW18UHJvcGVy
dHlDYWxsYmFjawogICBEdXJhdGlvbiAgICAgICBjcmVhdGVEdXJhdGlvbkNvbnN0cnVjdG9yICAg
ICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKKyAgTm93ICAgICAgICAgICAgY3JlYXRlTm93
T2JqZWN0ICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisgIFRpbWVa
b25lICAgICAgIGNyZWF0ZVRpbWVab25lQ29uc3RydWN0b3IgICAgICAgRG9udEVudW18UHJvcGVy
dHlDYWxsYmFjawogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTBjNjAwY2U3ZmYzOGMzN2U4
YThmNTE5OGIzOGM2NjBiZTljM2QxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9u
ZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpv
bmU6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoVGVtcG9yYWxUaW1lWm9uZSkgfTsKKworbmFtZXNwYWNlIFRl
bXBvcmFsVGltZVpvbmVJbnRlcm5hbCB7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworfQorCitUZW1wb3JhbFRpbWVab25lKiBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVG
cm9tSUQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgVGltZVpvbmVJRCBpZGVudGlmaWVy
KQoreworICAgIFRlbXBvcmFsVGltZVpvbmUqIGZvcm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2Nh
dGVDZWxsPFRlbXBvcmFsVGltZVpvbmU+KHZtLmhlYXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBz
dHJ1Y3R1cmUsIFRpbWVab25lIHsgV1RGOjppbl9wbGFjZTwwPiwgaWRlbnRpZmllciB9KTsKKyAg
ICBmb3JtYXQtPmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICByZXR1cm4gZm9ybWF0OworfQorCitU
ZW1wb3JhbFRpbWVab25lKiBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDY0X3QgdXRjT2Zmc2V0KQoreworICAgIFRl
bXBvcmFsVGltZVpvbmUqIGZvcm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBv
cmFsVGltZVpvbmU+KHZtLmhlYXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBzdHJ1Y3R1cmUsIFRp
bWVab25lIHsgV1RGOjppbl9wbGFjZTwxPiwgdXRjT2Zmc2V0IH0pOworICAgIGZvcm1hdC0+Zmlu
aXNoQ3JlYXRpb24odm0pOworICAgIHJldHVybiBmb3JtYXQ7Cit9CisKK1N0cnVjdHVyZSogVGVt
cG9yYWxUaW1lWm9uZTo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCitUZW1wb3JhbFRpbWVab25lOjpUZW1wb3Jh
bFRpbWVab25lKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRpbWVab25lIHRpbWVab25l
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgICwgbV90aW1lWm9uZSh0aW1lWm9uZSkK
K3sKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzdXAtaXN2YWxp
ZHRpbWV6b25lbmFtZQorc3RkOjpvcHRpb25hbDxUaW1lWm9uZUlEPiBUZW1wb3JhbFRpbWVab25l
Ojppc1ZhbGlkVGltZVpvbmVOYW1lKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGNvbnN0IGF1
dG8mIHRpbWVab25lcyA9IGludGxBdmFpbGFibGVUaW1lWm9uZXMoKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGluZGV4ID0gMDsgaW5kZXggPCB0aW1lWm9uZXMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRpbWVab25lc1tpbmRleF0sIHN0cmluZykp
CisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBv
cmFsLXBhcnNldGVtcG9yYWx0aW1lWm9uZXN0cmluZworc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGlt
ZVpvbmVJRD4gcGFyc2VUZW1wb3JhbFRpbWVab25lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cmluZ1ZpZXcpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwYXJzaW5n
IHRlbXBvcmFsIHRpbWVab25lIHN0cmluZywgd2hpY2ggcmVxdWlyZXMgZnVsbCBJU08gODYwMSBw
YXJzZXIuCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgImludmFsaWQgdGltZVpvbmUgSUQiX3MpOworICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRl
bXBvcmFsLnRpbWV6b25lLmZyb20KKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3Jh
bC8jc2VjLXRlbXBvcmFsLXRvdGVtcG9yYWx0aW1lem9uZQorSlNPYmplY3QqIFRlbXBvcmFsVGlt
ZVpvbmU6OmZyb20oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aW1lWm9u
ZUxpa2UpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGlmICh0aW1lWm9uZUxpa2UuaXNP
YmplY3QoKSkgeworICAgICAgICBKU09iamVjdCogdGltZVpvbmVMaWtlT2JqZWN0ID0ganNDYXN0
PEpTT2JqZWN0Kj4odGltZVpvbmVMaWtlKTsKKworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0
byBpbXBsZW1lbnQgY29kZSByZXRyaWV2aW5nIFRpbWVab25lIGZyb20gVGVtcG9yYWwgRGF0ZSBM
aWtlIG9iamVjdHMuIEJ1dAorICAgICAgICAvLyBjdXJyZW50bHkgdGhleSBhcmUgbm90IGltcGxl
bWVudGVkIHlldC4KKworICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gdGltZVpvbmVMaWtlT2Jq
ZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVab25l
KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgaWYg
KCFoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPih0aW1l
Wm9uZUxpa2UpOworCisgICAgICAgIHRpbWVab25lTGlrZSA9IHRpbWVab25lTGlrZU9iamVjdC0+
Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dGltZVpvbmUpOworICAgICAgICBp
ZiAodGltZVpvbmVMaWtlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVy
dHkgPSBqc0Nhc3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2UpLT5oYXNQcm9wZXJ0eShnbG9iYWxP
YmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVab25lKTsKKyAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBpZiAoIWhhc1Byb3BlcnR5KQor
ICAgICAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2UpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBpZGVudGlmaWVyID0gdGltZVpvbmVMaWtlLnRv
V1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VGltZVpvbmVJRD4gdGltZVpvbmVJZCA9IGlzVmFs
aWRUaW1lWm9uZU5hbWUoaWRlbnRpZmllcik7CisgICAgaWYgKCF0aW1lWm9uZUlkKSB7CisgICAg
ICAgIHRpbWVab25lSWQgPSBwYXJzZVRlbXBvcmFsVGltZVpvbmVTdHJpbmcoZ2xvYmFsT2JqZWN0
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICB9CisKKyAgICBBU1NFUlQodGltZVpvbmVJZCk7CisgICAgcmV0dXJuIFRlbXBvcmFsVGlt
ZVpvbmU6OmNyZWF0ZUZyb21JRCh2bSwgZ2xvYmFsT2JqZWN0LT50aW1lWm9uZVN0cnVjdHVyZSgp
LCB0aW1lWm9uZUlkLnZhbHVlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzdkMTg4YzJlYTdlNzNmMGNjNWZlZjYwNmQ1YTI5ZThmYjcwNmYyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIklu
dGxPYmplY3QuaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50
Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBUZW1wb3JhbFRpbWVab25lIGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU05v
bkZpbmFsT2JqZWN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNl
QWNjZXNzIG1vZGU+CisgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0p
CisgICAgeworICAgICAgICByZXR1cm4gdm0udGVtcG9yYWxUaW1lWm9uZVNwYWNlPG1vZGU+KCk7
CisgICAgfQorCisgICAgc3RhdGljIFRlbXBvcmFsVGltZVpvbmUqIGNyZWF0ZUZyb21JRChWTSYs
IFN0cnVjdHVyZSosIFRpbWVab25lSUQpOworICAgIHN0YXRpYyBUZW1wb3JhbFRpbWVab25lKiBj
cmVhdGVGcm9tVVRDT2Zmc2V0KFZNJiwgU3RydWN0dXJlKiwgaW50NjRfdCk7CisgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHVzaW5nIFRpbWVab25lID0gVmFyaWFudDxU
aW1lWm9uZUlELCBpbnQ2NF90PjsKKyAgICBUaW1lWm9uZSB0aW1lWm9uZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdGltZVpvbmU7IH0KKworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRpbWVab25lSUQ+
IGlzVmFsaWRUaW1lWm9uZU5hbWUoU3RyaW5nVmlldyk7CisKKyAgICBzdGF0aWMgSlNPYmplY3Qq
IGZyb20oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBUZW1wb3Jh
bFRpbWVab25lKFZNJiwgU3RydWN0dXJlKiwgVGltZVpvbmUpOworCisgICAgLy8gVGltZVpvbmVJ
RCBvciBVVEMgb2Zmc2V0LgorICAgIFRpbWVab25lIG1fdGltZVpvbmU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rl
bXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZjE2YmY3
Yzc0NTI1NWVkYTc4ODY4ZmU1NzQyNmY4MDc3M2Q0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3Bw
CkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oIgorCisjaW5jbHVkZSAiSVNPODYw
MS5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25l
LmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFRlbXBvcmFs
VGltZVpvbmVDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0
ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JGdW5jRnJvbSk7CisKK30KKworI2luY2x1ZGUgIlRl
bXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5sdXQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2Nv
bnN0IENsYXNzSW5mbyBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgJnRlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBvcmFsVGltZVpv
bmVDb25zdHJ1Y3RvcikgfTsKKworLyogU291cmNlIGZvciBUZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3IubHV0LmgKK0BiZWdpbiB0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JUYWJsZQorICAg
IGZyb20gICAgICAgICAgICAgdGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yRnVuY0Zyb20gICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorQGVuZAorKi8KKworVGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiB0ZW1wb3Jh
bFRpbWVab25lUHJvdG90eXBlKQoreworICAgIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvciog
Y29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxUZW1wb3JhbFRpbWVab25l
Q29uc3RydWN0b3I+KHZtLmhlYXApKSBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3Iodm0sIHN0
cnVjdHVyZSk7CisgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCB0ZW1wb3JhbFRp
bWVab25lUHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3RydWN0b3I7Cit9CisKK1N0cnVjdHVy
ZSogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKK3sKKyAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQor
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVGVtcG9yYWxUaW1lWm9uZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUZW1wb3JhbFRpbWVa
b25lKTsKKworVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpUZW1wb3JhbFRpbWVab25lQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVu
Y3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFRlbXBvcmFsVGltZVpvbmUsIGNvbnN0cnVjdFRlbXBv
cmFsVGltZVpvbmUpCit7Cit9CisKK3ZvaWQgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqIHRlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIDAsICJU
aW1lWm9uZSJfcywgUHJvcGVydHlBZGRpdGlvbk1vZGU6OldpdGhvdXRTdHJ1Y3R1cmVUcmFuc2l0
aW9uKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cHJvdG90eXBlLCB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RUZW1wb3JhbFRpbWVab25lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU09iamVjdCog
bmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB0aW1lWm9uZVN0
cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBhdXRvIHRpbWVab25lU3RyaW5nID0gY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+
IHV0Y09mZnNldCA9IElTTzg2MDE6OnBhcnNlVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0KHRpbWVa
b25lU3RyaW5nKTsKKyAgICBpZiAodXRjT2Zmc2V0KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21VVENPZmZzZXQodm0sIHN0cnVjdHVy
ZSwgdXRjT2Zmc2V0LnZhbHVlKCkpKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VGltZVpvbmVJRD4g
aWRlbnRpZmllciA9IFRlbXBvcmFsVGltZVpvbmU6OmlzVmFsaWRUaW1lWm9uZU5hbWUodGltZVpv
bmVTdHJpbmcpOworICAgIGlmICghaWRlbnRpZmllcikgeworICAgICAgICB0aHJvd1JhbmdlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImFyZ3VtZW50IG5lZWRzIHRvIGJlIFVUQyBvZmZzZXQg
c3RyaW5nIG9yIFRpbWVab25lIGlkZW50aWZpZXIiX3MpOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0
ZUZyb21JRCh2bSwgc3RydWN0dXJlLCBpZGVudGlmaWVyLnZhbHVlKCkpKTsKK30KKworSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUZW1wb3JhbFRpbWVab25lLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNG
dW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVGltZVpvbmUiKSk7Cit9CisK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JGdW5j
RnJvbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmZyb20o
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9y
YWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjExNGEwYTcyMTE5OGFh
ZWNhYmVjODhiYjhiNjc5ZWZjYjA2YWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSW50ZXJuYWxG
dW5jdGlvbi5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9uZVBy
b3RvdHlwZTsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yIGZpbmFsIDogcHVi
bGljIEludGVybmFsRnVuY3Rpb24geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBJbnRlcm5h
bEZ1bmN0aW9uOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisKKyAgICBz
dGF0aWMgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUq
LCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKik7CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworICAgIERFQ0xB
UkVfSU5GTzsKKworcHJpdmF0ZToKKyAgICBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgVGVtcG9yYWxUaW1l
Wm9uZVByb3RvdHlwZSopOworfTsKK1NUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxF
KFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CisKK30gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWEyNWRiZDlm
ZTYwOTg5NjlkZDgwNzYzOWU1NjIwNTI2MzgwYWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKQEAg
LTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgorCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVz
LmgiCisjaW5jbHVkZSAiSVNPODYwMS5oIgorI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlRnVuY1RvSlNPTik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlR2V0dGVySWQp
OworCit9CisKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmx1dC5oIgorCitu
YW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIlRlbXBvcmFsLlRpbWVab25lIiwgJkJhc2U6OnNfaW5mbywgJnRlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKSB9OworCisvKiBTb3VyY2UgZm9yIFRlbXBvcmFsVGlt
ZVpvbmVQcm90b3R5cGUubHV0LmgKK0BiZWdpbiB0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlVGFi
bGUKKyAgICB0b1N0cmluZyAgICAgICAgdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0
cmluZyAgICAgRG9udEVudW18RnVuY3Rpb24gMAorICAgIHRvSlNPTiAgICAgICAgICB0ZW1wb3Jh
bFRpbWVab25lUHJvdG90eXBlRnVuY1RvSlNPTiAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCisg
ICAgaWQgICAgICAgICAgICAgIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVHZXR0ZXJJZCAgICAg
ICAgIFJlYWRPbmx5fERvbnRFbnVtfEN1c3RvbUFjY2Vzc29yCitAZW5kCisqLworCitUZW1wb3Jh
bFRpbWVab25lUHJvdG90eXBlKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
K3sKKyAgICBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiBvYmplY3QgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlPih2bS5oZWFwKSkgVGVtcG9y
YWxUaW1lWm9uZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmZpbmlzaENy
ZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cnVj
dHVyZSogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCit7CisgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCitUZW1wb3Jh
bFRpbWVab25lUHJvdG90eXBlOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK3Zv
aWQgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCopCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VS
VChpbmhlcml0cyh2bSwgaW5mbygpKSk7CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9U
UkFOU0lUSU9OKCk7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8j
c2VjLWdldC10ZW1wb3JhbC50aW1lem9uZS5wcm90b3R5cGUuaWQKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlR2V0dGVySWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
Cit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KS50b1N0cmluZyhnbG9iYWxPYmplY3QpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bv
c2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwudGltZXpvbmUucHJvdG90eXBlLnRvc3RyaW5nCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgYXV0byogdGltZVpvbmUgPSBqc0R5bmFt
aWNDYXN0PFRlbXBvcmFsVGltZVpvbmUqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Cisg
ICAgaWYgKCF0aW1lWm9uZSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlRlbXBvcmFsLlRpbWVab25lLnByb3RvdHlwZS50b1N0cmluZyBjYWxs
ZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhIFRpbWVab25lIl9zKTsKKworICAgIGF1dG8gdmFyaWFu
dCA9IHRpbWVab25lLT50aW1lWm9uZSgpOworICAgIGF1dG8gc3RyaW5nID0gV1RGOjpzd2l0Y2hP
bih2YXJpYW50LAorICAgICAgICBbXShUaW1lWm9uZUlEIGlkZW50aWZpZXIpIC0+IFN0cmluZyB7
CisgICAgICAgICAgICByZXR1cm4gaW50bEF2YWlsYWJsZVRpbWVab25lcygpW2lkZW50aWZpZXJd
OworICAgICAgICB9LAorICAgICAgICBbXShpbnQ2NF90IG9mZnNldCkgLT4gU3RyaW5nIHsKKyAg
ICAgICAgICAgIHJldHVybiBJU084NjAxOjpmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmluZyhvZmZz
ZXQpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZt
LCBXVEZNb3ZlKHN0cmluZykpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRl
bXBvcmFsLyNzZWMtdGVtcG9yYWwudGltZXpvbmUucHJvdG90eXBlLnRvanNvbgorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVGdW5jVG9KU09OLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1N0cmluZyhn
bG9iYWxPYmplY3QpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzEzNTBjZTYwMmQ2NTUwYTFmN2ZlODdiNWY5OGEyM2IyMTlkYzI1ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGlt
ZVpvbmVQcm90b3R5cGUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3Mg
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2Vs
bFR5cGUsIFN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3IoVk0mIHZtKQorICAgIHsKKyAgICAgICAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSwgQmFzZSk7CisgICAgICAgIHJldHVybiAm
dm0ucGxhaW5PYmplY3RTcGFjZTsKKyAgICB9CisKKyAgICBzdGF0aWMgVGVtcG9yYWxUaW1lWm9u
ZVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCos
IEpTVmFsdWUpOworCisgICAgREVDTEFSRV9JTkZPOworCitwcml2YXRlOgorICAgIFRlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDNiZjY5MTQ4MzNiZDA0NjNjYzI5ZjA3
MzUzODVlOGIyYTg2ZTM0YjMuLjAyZjE4OTdiMGYzOTE4NTYwYjUwNTMxOWQ2ZTQ2MWJkYjVkNzEw
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTE2NCw2ICsxNjQsNyBA
QAogI2luY2x1ZGUgIlN5bWJvbE9iamVjdC5oIgogI2luY2x1ZGUgIlRlbXBvcmFsQ2FsZW5kYXIu
aCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0aW9uLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1l
Wm9uZS5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlRodW5rR2Vu
ZXJhdG9ycy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlci5oIgpAQCAtMTU4Nyw2ICsxNTg4LDcg
QEAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJvbFNwYWNlLCBk
ZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXAKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhzeW1ib2xPYmplY3RTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3lt
Ym9sT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHRlbXBs
YXRlT2JqZWN0RGVzY3JpcHRvclNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbENhbGVuZGFyU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIFRlbXBvcmFsQ2FsZW5kYXIpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSX1NMT1codGVtcG9yYWxUaW1lWm9uZVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBU
ZW1wb3JhbFRpbWVab25lKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHVpbnQ4QXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50OEFycmF5KQog
RFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQ4Q2xhbXBlZEFycmF5
U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVWludDhDbGFtcGVkQXJyYXkpCiBEWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codWludDE2QXJyYXlTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50MTZBcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCmluZGV4IDZiM2EwZWZkNDU3ZjIxODYyYTBiYWZjNWFiN2QxZmZlYjhlZjY4NTMuLjFl
NzI1Y2UzNzQ4NzNlMDA3ZDFiMDNmNTQ5NTZjNTAyMzA0YzZiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaApAQCAtMTk1LDYgKzE5NSw3IEBAIGNsYXNzIFVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jazsKIGNsYXNzIFZpcnR1YWxSZWdpc3RlcjsKIGNsYXNzIFZNRW50cnlTY29w
ZTsKIGNsYXNzIFRlbXBvcmFsQ2FsZW5kYXI7CitjbGFzcyBUZW1wb3JhbFRpbWVab25lOwogY2xh
c3MgVG9wTGV2ZWxHbG9iYWxPYmplY3RTY29wZTsKIGNsYXNzIFR5cGVQcm9maWxlcjsKIGNsYXNz
IFR5cGVQcm9maWxlckxvZzsKQEAgLTU5NCw2ICs1OTUsNyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4g
ewogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoc3ltYm9sT2JqZWN0U3Bh
Y2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih0ZW1wbGF0ZU9iamVj
dERlc2NyaXB0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
KHRlbXBvcmFsQ2FsZW5kYXJTcGFjZSkKKyAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHRlbXBvcmFsVGltZVpvbmVTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKHVpbnQ4QXJyYXlTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKHVpbnQ4Q2xhbXBlZEFycmF5U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUih1aW50MTZBcnJheVNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaAppbmRleCAwM2Y1ODYxYzMzY2JlMmYz
OWQ1YzEwM2M4YTkyMGU0MWJkMDFmZWY3Li4yMGVlNTBhZTA2OGJlNGE2ZmVkOWMzM2U4YjlkMmVh
YWRkNjdjOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmlu
Z0NvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0Nv
bnZlcnNpb24uaApAQCAtMTI3LDYgKzEyNywxMyBAQCBjb25zdGV4cHIgdW5zaWduZWQgbGVuZ3Ro
T2ZJbnRlZ2VyQXNTdHJpbmcoSW50ZWdlclR5cGUgaW50ZWdlcikKICAgICAgICAgcmV0dXJuIGxl
bmd0aE9mSW50ZWdlckFzU3RyaW5nSW1wbDxJbnRlZ2VyVHlwZSwgUG9zaXRpdmVOdW1iZXI+KGlu
dGVnZXIpOwogfQogCit0ZW1wbGF0ZTxzaXplX3QgTj4KK3N0cnVjdCBJbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uVHJhaXQ8VmVjdG9yPExDaGFyLCBOPj4geworICAgIHVzaW5nIFJldHVyblR5cGUg
PSBWZWN0b3I8TENoYXIsIE4+OworICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5cGUgPSB2
b2lkOworICAgIHN0YXRpYyBSZXR1cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgsIHZvaWQqKSB7IHJldHVybiB7IGNoYXJhY3RlcnMsIGxlbmd0aCB9OyB9Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpsZW5ndGhPZkludGVnZXJBc1N0
cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAyZDg1OWI0
NTAwMTQ4Njc1YjNmMTdlMWY0OGI3ZWU0MDFjYTJjZjI1Li40ZTZjYzM0ZmExM2E3YmRkMTllNzg1
ODEzMmQ5MzUwMTE5YWNlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0
ZS5oCkBAIC0xNTAsMjQgKzE1MCwyOCBAQCB0ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFw
dGVyPEFTQ0lJTGl0ZXJhbCwgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZQogICAgIH0K
IH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8VmVjdG9yPGNoYXI+LCB2
b2lkPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZSwgc2l6ZV90IE4+CitjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjxWZWN0b3I8Q2hhclR5cGUsIE4+LCB2b2lkPiB7CiBwdWJsaWM6Ci0gICAg
U3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCisgICAgdXNpbmcg
Q2hhclR5cGVGb3JTdHJpbmcgPSBzdGQ6OmNvbmRpdGlvbmFsX3Q8c2l6ZW9mKENoYXJUeXBlKSA9
PSBzaXplb2YoTENoYXIpLCBMQ2hhciwgVUNoYXI+OworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KENoYXJUeXBlRm9yU3RyaW5nKSA9PSBzaXplb2YoQ2hhclR5cGUpKTsKKworICAgIFN0cmluZ1R5
cGVBZGFwdGVyKGNvbnN0IFZlY3RvcjxDaGFyVHlwZSwgTj4mIHZlY3RvcikKICAgICAgICAgOiBt
X3ZlY3RvciB7IHZlY3RvciB9CiAgICAgewogICAgIH0KIAogICAgIHNpemVfdCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX3ZlY3Rvci5zaXplKCk7IH0KLSAgICBib29sIGlzOEJpdCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIHNpemVv
ZihDaGFyVHlwZSkgPT0gMTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhkZXN0aW5hdGlvbiwgY2hhcmFjdGVycygpLCBsZW5ndGgoKSk7
IH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycygpIGNvbnN0CisgICAg
Y29uc3QgQ2hhclR5cGVGb3JTdHJpbmcqIGNoYXJhY3RlcnMoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihtX3ZlY3Rvci5kYXRhKCkp
OworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDaGFyVHlwZUZvclN0cmlu
Zyo+KG1fdmVjdG9yLmRhdGEoKSk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPGNoYXI+JiBt
X3ZlY3RvcjsKKyAgICBjb25zdCBWZWN0b3I8Q2hhclR5cGUsIE4+JiBtX3ZlY3RvcjsKIH07CiAK
IHRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZvaWQ+IHsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZWE1ZGQwYWIzMTRhN2I0MTFmZjIzODA4YTU5YTc2Y2ZhNTM3N2EzNS4uN2EwNzNjMDJlYTlhZGZl
ZDBhMDY3NDNmNjg1ZDgxZWZiYzZiM2NmMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOS0wMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEltcGxlbWVu
dCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBjb21wbGV4LnlhbWw6CisgICAgICAgICogY29tcGxleC90ZW1wb3JhbC1u
b3ctdGltZXpvbmUtd2l0aC1icm9rZW4tdHouanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAqIHN0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzOgorICAgICAgICAqIHN0cmVz
cy90ZW1wb3JhbC10aW1lem9uZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChsZXQudGV4dC5vZi5mYWlsdXJlcy5zaG91bGRU
aHJvdyk6CisKIDIwMjEtMDgtMzEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnku
Y29tPgogCiAgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5EdXJhdGlvbgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9jb21wbGV4LnlhbWwgYi9KU1Rlc3RzL2NvbXBsZXgueWFtbAppbmRleCBi
OTk3ZGI0NThhYzI2MjM3MzdmODBjNjNlZmViOTkyYTZhNzEyZmE3Li4zM2ZlNDE1NTI1YjAwNzU5
ZDUwODQ3ZTgwZjRiNTBiNDVhYzhkNDUxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2NvbXBsZXgueWFt
bAorKysgYi9KU1Rlc3RzL2NvbXBsZXgueWFtbApAQCAtNDYsMyArNDYsNiBAQAogCiAtIHBhdGg6
IGNvbXBsZXgvaW50bC10aW1lem9uZS1jaGVjay5qcwogICBjbWQ6IHJ1bkNvbXBsZXhUZXN0IFtd
LCBbXSwgIlRaPUFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiLS11c2VEb2xsYXJWTT0xIgorCistIHBh
dGg6IGNvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzCisgIGNt
ZDogcnVuQ29tcGxleFRlc3QgW10sIFtdLCAiVFo9VU5ERUZJTkVEIiwgIi0tdXNlRG9sbGFyVk09
MSIsICItLXVzZVRlbXBvcmFsPTEiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL2NvbXBsZXgvdGVtcG9y
YWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzIGIvSlNUZXN0cy9jb21wbGV4L3RlbXBv
cmFsLW5vdy10aW1lem9uZS13aXRoLWJyb2tlbi10ei5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGI1MWQ0M2Ez
NGQwZWU0YzYxMmIxM2YwMjM1ZDAyN2JiNjEyZTk2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9jb21wbGV4L3RlbXBvcmFsLW5vdy10aW1lem9uZS13aXRoLWJyb2tlbi10ei5qcwpAQCAtMCww
ICsxLDYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitzaG91bGRCZShUZW1wb3JhbC5Ob3cudGltZVpvbmUoKS5pZCwg
YCswMDowMGApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5q
cyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanMKaW5kZXggM2NlMjA1NDEzNTZk
Y2NlNTZjN2ZmNWUzYjZjNDM1ZjhiMjM4OGU4OS4uZDEyNTFkYzk2ZjFjYjBmZGVkYTQxMjkwNTQw
MWI1ZGI0NmUyOWZmNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlv
bi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzCkBAIC0yOSw3ICsy
OSw3IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkQmUo
bnVtYmVyaW5nU3lzdGVtc1N0cmluZyA9PT0gYFsiYWRsbSIsImFob20iLCJhcmFiIiwiYXJhYmV4
dCIsImFybW4iLCJhcm1ubG93IiwiYmFsaSIsImJlbmciLCJiaGtzIiwiYnJhaCIsImNha20iLCJj
aGFtIiwiY3lybCIsImRldmEiLCJkaWFrIiwiZXRoaSIsImZ1bGx3aWRlIiwiZ2VvciIsImdvbmci
LCJnb25tIiwiZ3JlayIsImdyZWtsb3ciLCJndWpyIiwiZ3VydSIsImhhbmlkYXlzIiwiaGFuaWRl
YyIsImhhbnMiLCJoYW5zZmluIiwiaGFudCIsImhhbnRmaW4iLCJoZWJyIiwiaG1uZyIsImhtbnAi
LCJqYXZhIiwianBhbiIsImpwYW5maW4iLCJqcGFueWVhciIsImthbGkiLCJraG1yIiwia25kYSIs
ImxhbmEiLCJsYW5hdGhhbSIsImxhb28iLCJsYXRuIiwibGVwYyIsImxpbWIiLCJtYXRoYm9sZCIs
Im1hdGhkYmwiLCJtYXRobW9ubyIsIm1hdGhzYW5iIiwibWF0aHNhbnMiLCJtbHltIiwibW9kaSIs
Im1vbmciLCJtcm9vIiwibXRlaSIsIm15bXIiLCJteW1yc2hhbiIsIm15bXJ0bG5nIiwibmV3YSIs
Im5rb28iLCJvbGNrIiwib3J5YSIsIm9zbWEiLCJyb2hnIiwicm9tYW4iLCJyb21hbmxvdyIsInNh
dXIiLCJzZWdtZW50Iiwic2hyZCIsInNpbmQiLCJzaW5oIiwic29yYSIsInN1bmQiLCJ0YWtyIiwi
dGFsdSIsInRhbWwiLCJ0YW1sZGVjIiwidGVsdSIsInRoYWkiLCJ0aWJ0IiwidGlyaCIsInZhaWki
LCJ3YXJhIiwid2NobyJdYCB8fCBudW1iZXJpbmdTeXN0ZW1zU3RyaW5nID09PSBgWyJhZGxtIiwi
YWhvbSIsImFyYWIiLCJhcmFiZXh0IiwiYXJtbiIsImFybW5sb3ciLCJiYWxpIiwiYmVuZyIsImJo
a3MiLCJicmFoIiwiY2FrbSIsImNoYW0iLCJjeXJsIiwiZGV2YSIsImV0aGkiLCJmdWxsd2lkZSIs
Imdlb3IiLCJnb25nIiwiZ29ubSIsImdyZWsiLCJncmVrbG93IiwiZ3VqciIsImd1cnUiLCJoYW5p
ZGF5cyIsImhhbmlkZWMiLCJoYW5zIiwiaGFuc2ZpbiIsImhhbnQiLCJoYW50ZmluIiwiaGViciIs
ImhtbmciLCJobW5wIiwiamF2YSIsImpwYW4iLCJqcGFuZmluIiwianBhbnllYXIiLCJrYWxpIiwi
a2htciIsImtuZGEiLCJsYW5hIiwibGFuYXRoYW0iLCJsYW9vIiwibGF0biIsImxlcGMiLCJsaW1i
IiwibWF0aGJvbGQiLCJtYXRoZGJsIiwibWF0aG1vbm8iLCJtYXRoc2FuYiIsIm1hdGhzYW5zIiwi
bWx5bSIsIm1vZGkiLCJtb25nIiwibXJvbyIsIm10ZWkiLCJteW1yIiwibXltcnNoYW4iLCJteW1y
dGxuZyIsIm5ld2EiLCJua29vIiwib2xjayIsIm9yeWEiLCJvc21hIiwicm9oZyIsInJvbWFuIiwi
cm9tYW5sb3ciLCJzYXVyIiwic2hyZCIsInNpbmQiLCJzaW5oIiwic29yYSIsInN1bmQiLCJ0YWty
IiwidGFsdSIsInRhbWwiLCJ0YW1sZGVjIiwidGVsdSIsInRoYWkiLCJ0aWJ0IiwidGlyaCIsInZh
aWkiLCJ3YXJhIiwid2NobyJdYCwgdHJ1ZSk7CiAKIGxldCB0aW1lWm9uZXMgPSBJbnRsLnN1cHBv
cnRlZFZhbHVlc09mKCJ0aW1lWm9uZSIpOwotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkodGltZVpv
bmVzKSwgYFsiQWZyaWNhL0FiaWRqYW4iLCJBZnJpY2EvQWNjcmEiLCJBZnJpY2EvQWRkaXNfQWJh
YmEiLCJBZnJpY2EvQWxnaWVycyIsIkFmcmljYS9Bc21lcmEiLCJBZnJpY2EvQmFtYWtvIiwiQWZy
aWNhL0Jhbmd1aSIsIkFmcmljYS9CYW5qdWwiLCJBZnJpY2EvQmlzc2F1IiwiQWZyaWNhL0JsYW50
eXJlIiwiQWZyaWNhL0JyYXp6YXZpbGxlIiwiQWZyaWNhL0J1anVtYnVyYSIsIkFmcmljYS9DYWly
byIsIkFmcmljYS9DYXNhYmxhbmNhIiwiQWZyaWNhL0NldXRhIiwiQWZyaWNhL0NvbmFrcnkiLCJB
ZnJpY2EvRGFrYXIiLCJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsIkFmcmljYS9Eamlib3V0aSIsIkFm
cmljYS9Eb3VhbGEiLCJBZnJpY2EvRWxfQWFpdW4iLCJBZnJpY2EvRnJlZXRvd24iLCJBZnJpY2Ev
R2Fib3JvbmUiLCJBZnJpY2EvSGFyYXJlIiwiQWZyaWNhL0pvaGFubmVzYnVyZyIsIkFmcmljYS9K
dWJhIiwiQWZyaWNhL0thbXBhbGEiLCJBZnJpY2EvS2hhcnRvdW0iLCJBZnJpY2EvS2lnYWxpIiwi
QWZyaWNhL0tpbnNoYXNhIiwiQWZyaWNhL0xhZ29zIiwiQWZyaWNhL0xpYnJldmlsbGUiLCJBZnJp
Y2EvTG9tZSIsIkFmcmljYS9MdWFuZGEiLCJBZnJpY2EvTHVidW1iYXNoaSIsIkFmcmljYS9MdXNh
a2EiLCJBZnJpY2EvTWFsYWJvIiwiQWZyaWNhL01hcHV0byIsIkFmcmljYS9NYXNlcnUiLCJBZnJp
Y2EvTWJhYmFuZSIsIkFmcmljYS9Nb2dhZGlzaHUiLCJBZnJpY2EvTW9ucm92aWEiLCJBZnJpY2Ev
TmFpcm9iaSIsIkFmcmljYS9OZGphbWVuYSIsIkFmcmljYS9OaWFtZXkiLCJBZnJpY2EvTm91YWtj
aG90dCIsIkFmcmljYS9PdWFnYWRvdWdvdSIsIkFmcmljYS9Qb3J0by1Ob3ZvIiwiQWZyaWNhL1Nh
b19Ub21lIiwiQWZyaWNhL1RyaXBvbGkiLCJBZnJpY2EvVHVuaXMiLCJBZnJpY2EvV2luZGhvZWsi
LCJBbWVyaWNhL0FkYWsiLCJBbWVyaWNhL0FuY2hvcmFnZSIsIkFtZXJpY2EvQW5ndWlsbGEiLCJB
bWVyaWNhL0FudGlndWEiLCJBbWVyaWNhL0FyYWd1YWluYSIsIkFtZXJpY2EvQXJnZW50aW5hL0xh
X1Jpb2phIiwiQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zIiwiQW1lcmljYS9BcmdlbnRp
bmEvU2FsdGEiLCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbiIsIkFtZXJpY2EvQXJnZW50aW5h
L1Nhbl9MdWlzIiwiQW1lcmljYS9BcmdlbnRpbmEvVHVjdW1hbiIsIkFtZXJpY2EvQXJnZW50aW5h
L1VzaHVhaWEiLCJBbWVyaWNhL0FydWJhIiwiQW1lcmljYS9Bc3VuY2lvbiIsIkFtZXJpY2EvQmFo
aWEiLCJBbWVyaWNhL0JhaGlhX0JhbmRlcmFzIiwiQW1lcmljYS9CYXJiYWRvcyIsIkFtZXJpY2Ev
QmVsZW0iLCJBbWVyaWNhL0JlbGl6ZSIsIkFtZXJpY2EvQmxhbmMtU2FibG9uIiwiQW1lcmljYS9C
b2FfVmlzdGEiLCJBbWVyaWNhL0JvZ290YSIsIkFtZXJpY2EvQm9pc2UiLCJBbWVyaWNhL0J1ZW5v
c19BaXJlcyIsIkFtZXJpY2EvQ2FtYnJpZGdlX0JheSIsIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwi
QW1lcmljYS9DYW5jdW4iLCJBbWVyaWNhL0NhcmFjYXMiLCJBbWVyaWNhL0NhdGFtYXJjYSIsIkFt
ZXJpY2EvQ2F5ZW5uZSIsIkFtZXJpY2EvQ2F5bWFuIiwiQW1lcmljYS9DaGljYWdvIiwiQW1lcmlj
YS9DaGlodWFodWEiLCJBbWVyaWNhL0NvcmFsX0hhcmJvdXIiLCJBbWVyaWNhL0NvcmRvYmEiLCJB
bWVyaWNhL0Nvc3RhX1JpY2EiLCJBbWVyaWNhL0NyZXN0b24iLCJBbWVyaWNhL0N1aWFiYSIsIkFt
ZXJpY2EvQ3VyYWNhbyIsIkFtZXJpY2EvRGFubWFya3NoYXZuIiwiQW1lcmljYS9EYXdzb24iLCJB
bWVyaWNhL0Rhd3Nvbl9DcmVlayIsIkFtZXJpY2EvRGVudmVyIiwiQW1lcmljYS9EZXRyb2l0Iiwi
QW1lcmljYS9Eb21pbmljYSIsIkFtZXJpY2EvRWRtb250b24iLCJBbWVyaWNhL0VpcnVuZXBlIiwi
QW1lcmljYS9FbF9TYWx2YWRvciIsIkFtZXJpY2EvRm9ydF9OZWxzb24iLCJBbWVyaWNhL0ZvcnRh
bGV6YSIsIkFtZXJpY2EvR2xhY2VfQmF5IiwiQW1lcmljYS9Hb2R0aGFiIiwiQW1lcmljYS9Hb29z
ZV9CYXkiLCJBbWVyaWNhL0dyYW5kX1R1cmsiLCJBbWVyaWNhL0dyZW5hZGEiLCJBbWVyaWNhL0d1
YWRlbG91cGUiLCJBbWVyaWNhL0d1YXRlbWFsYSIsIkFtZXJpY2EvR3VheWFxdWlsIiwiQW1lcmlj
YS9HdXlhbmEiLCJBbWVyaWNhL0hhbGlmYXgiLCJBbWVyaWNhL0hhdmFuYSIsIkFtZXJpY2EvSGVy
bW9zaWxsbyIsIkFtZXJpY2EvSW5kaWFuYS9Lbm94IiwiQW1lcmljYS9JbmRpYW5hL01hcmVuZ28i
LCJBbWVyaWNhL0luZGlhbmEvUGV0ZXJzYnVyZyIsIkFtZXJpY2EvSW5kaWFuYS9UZWxsX0NpdHki
LCJBbWVyaWNhL0luZGlhbmEvVmV2YXkiLCJBbWVyaWNhL0luZGlhbmEvVmluY2VubmVzIiwiQW1l
cmljYS9JbmRpYW5hL1dpbmFtYWMiLCJBbWVyaWNhL0luZGlhbmFwb2xpcyIsIkFtZXJpY2EvSW51
dmlrIiwiQW1lcmljYS9JcWFsdWl0IiwiQW1lcmljYS9KYW1haWNhIiwiQW1lcmljYS9KdWp1eSIs
IkFtZXJpY2EvSnVuZWF1IiwiQW1lcmljYS9LZW50dWNreS9Nb250aWNlbGxvIiwiQW1lcmljYS9L
cmFsZW5kaWprIiwiQW1lcmljYS9MYV9QYXoiLCJBbWVyaWNhL0xpbWEiLCJBbWVyaWNhL0xvc19B
bmdlbGVzIiwiQW1lcmljYS9Mb3Vpc3ZpbGxlIiwiQW1lcmljYS9Mb3dlcl9QcmluY2VzIiwiQW1l
cmljYS9NYWNlaW8iLCJBbWVyaWNhL01hbmFndWEiLCJBbWVyaWNhL01hbmF1cyIsIkFtZXJpY2Ev
TWFyaWdvdCIsIkFtZXJpY2EvTWFydGluaXF1ZSIsIkFtZXJpY2EvTWF0YW1vcm9zIiwiQW1lcmlj
YS9NYXphdGxhbiIsIkFtZXJpY2EvTWVuZG96YSIsIkFtZXJpY2EvTWVub21pbmVlIiwiQW1lcmlj
YS9NZXJpZGEiLCJBbWVyaWNhL01ldGxha2F0bGEiLCJBbWVyaWNhL01leGljb19DaXR5IiwiQW1l
cmljYS9NaXF1ZWxvbiIsIkFtZXJpY2EvTW9uY3RvbiIsIkFtZXJpY2EvTW9udGVycmV5IiwiQW1l
cmljYS9Nb250ZXZpZGVvIiwiQW1lcmljYS9Nb250cmVhbCIsIkFtZXJpY2EvTW9udHNlcnJhdCIs
IkFtZXJpY2EvTmFzc2F1IiwiQW1lcmljYS9OZXdfWW9yayIsIkFtZXJpY2EvTmlwaWdvbiIsIkFt
ZXJpY2EvTm9tZSIsIkFtZXJpY2EvTm9yb25oYSIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0JldWxh
aCIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0NlbnRlciIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL05l
d19TYWxlbSIsIkFtZXJpY2EvT2ppbmFnYSIsIkFtZXJpY2EvUGFuYW1hIiwiQW1lcmljYS9QYW5n
bmlydHVuZyIsIkFtZXJpY2EvUGFyYW1hcmlibyIsIkFtZXJpY2EvUGhvZW5peCIsIkFtZXJpY2Ev
UG9ydC1hdS1QcmluY2UiLCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLCJBbWVyaWNhL1BvcnRvX1Zl
bGhvIiwiQW1lcmljYS9QdWVydG9fUmljbyIsIkFtZXJpY2EvUHVudGFfQXJlbmFzIiwiQW1lcmlj
YS9SYWlueV9SaXZlciIsIkFtZXJpY2EvUmFua2luX0lubGV0IiwiQW1lcmljYS9SZWNpZmUiLCJB
bWVyaWNhL1JlZ2luYSIsIkFtZXJpY2EvUmVzb2x1dGUiLCJBbWVyaWNhL1Jpb19CcmFuY28iLCJB
bWVyaWNhL1NhbnRhX0lzYWJlbCIsIkFtZXJpY2EvU2FudGFyZW0iLCJBbWVyaWNhL1NhbnRpYWdv
IiwiQW1lcmljYS9TYW50b19Eb21pbmdvIiwiQW1lcmljYS9TYW9fUGF1bG8iLCJBbWVyaWNhL1Nj
b3Jlc2J5c3VuZCIsIkFtZXJpY2EvU2l0a2EiLCJBbWVyaWNhL1N0X0JhcnRoZWxlbXkiLCJBbWVy
aWNhL1N0X0pvaG5zIiwiQW1lcmljYS9TdF9LaXR0cyIsIkFtZXJpY2EvU3RfTHVjaWEiLCJBbWVy
aWNhL1N0X1Rob21hcyIsIkFtZXJpY2EvU3RfVmluY2VudCIsIkFtZXJpY2EvU3dpZnRfQ3VycmVu
dCIsIkFtZXJpY2EvVGVndWNpZ2FscGEiLCJBbWVyaWNhL1RodWxlIiwiQW1lcmljYS9UaHVuZGVy
X0JheSIsIkFtZXJpY2EvVGlqdWFuYSIsIkFtZXJpY2EvVG9yb250byIsIkFtZXJpY2EvVG9ydG9s
YSIsIkFtZXJpY2EvVmFuY291dmVyIiwiQW1lcmljYS9XaGl0ZWhvcnNlIiwiQW1lcmljYS9XaW5u
aXBlZyIsIkFtZXJpY2EvWWFrdXRhdCIsIkFtZXJpY2EvWWVsbG93a25pZmUiLCJBbnRhcmN0aWNh
L0Nhc2V5IiwiQW50YXJjdGljYS9EYXZpcyIsIkFudGFyY3RpY2EvRHVtb250RFVydmlsbGUiLCJB
bnRhcmN0aWNhL01hY3F1YXJpZSIsIkFudGFyY3RpY2EvTWF3c29uIiwiQW50YXJjdGljYS9NY011
cmRvIiwiQW50YXJjdGljYS9QYWxtZXIiLCJBbnRhcmN0aWNhL1JvdGhlcmEiLCJBbnRhcmN0aWNh
L1N5b3dhIiwiQW50YXJjdGljYS9Ucm9sbCIsIkFudGFyY3RpY2EvVm9zdG9rIiwiQXJjdGljL0xv
bmd5ZWFyYnllbiIsIkFzaWEvQWRlbiIsIkFzaWEvQWxtYXR5IiwiQXNpYS9BbW1hbiIsIkFzaWEv
QW5hZHlyIiwiQXNpYS9BcXRhdSIsIkFzaWEvQXF0b2JlIiwiQXNpYS9Bc2hnYWJhdCIsIkFzaWEv
QXR5cmF1IiwiQXNpYS9CYWdoZGFkIiwiQXNpYS9CYWhyYWluIiwiQXNpYS9CYWt1IiwiQXNpYS9C
YW5na29rIiwiQXNpYS9CYXJuYXVsIiwiQXNpYS9CZWlydXQiLCJBc2lhL0Jpc2hrZWsiLCJBc2lh
L0JydW5laSIsIkFzaWEvQ2FsY3V0dGEiLCJBc2lhL0NoaXRhIiwiQXNpYS9DaG9pYmFsc2FuIiwi
QXNpYS9Db2xvbWJvIiwiQXNpYS9EYW1hc2N1cyIsIkFzaWEvRGhha2EiLCJBc2lhL0RpbGkiLCJB
c2lhL0R1YmFpIiwiQXNpYS9EdXNoYW5iZSIsIkFzaWEvRmFtYWd1c3RhIiwiQXNpYS9HYXphIiwi
QXNpYS9IZWJyb24iLCJBc2lhL0hvbmdfS29uZyIsIkFzaWEvSG92ZCIsIkFzaWEvSXJrdXRzayIs
IkFzaWEvSmFrYXJ0YSIsIkFzaWEvSmF5YXB1cmEiLCJBc2lhL0plcnVzYWxlbSIsIkFzaWEvS2Fi
dWwiLCJBc2lhL0thbWNoYXRrYSIsIkFzaWEvS2FyYWNoaSIsIkFzaWEvS2F0bWFuZHUiLCJBc2lh
L0toYW5keWdhIiwiQXNpYS9LcmFzbm95YXJzayIsIkFzaWEvS3VhbGFfTHVtcHVyIiwiQXNpYS9L
dWNoaW5nIiwiQXNpYS9LdXdhaXQiLCJBc2lhL01hY2F1IiwiQXNpYS9NYWdhZGFuIiwiQXNpYS9N
YWthc3NhciIsIkFzaWEvTWFuaWxhIiwiQXNpYS9NdXNjYXQiLCJBc2lhL05pY29zaWEiLCJBc2lh
L05vdm9rdXpuZXRzayIsIkFzaWEvTm92b3NpYmlyc2siLCJBc2lhL09tc2siLCJBc2lhL09yYWwi
LCJBc2lhL1Bobm9tX1BlbmgiLCJBc2lhL1BvbnRpYW5hayIsIkFzaWEvUHlvbmd5YW5nIiwiQXNp
YS9RYXRhciIsIkFzaWEvUW9zdGFuYXkiLCJBc2lhL1F5enlsb3JkYSIsIkFzaWEvUmFuZ29vbiIs
IkFzaWEvUml5YWRoIiwiQXNpYS9TYWlnb24iLCJBc2lhL1Nha2hhbGluIiwiQXNpYS9TYW1hcmth
bmQiLCJBc2lhL1Nlb3VsIiwiQXNpYS9TaGFuZ2hhaSIsIkFzaWEvU2luZ2Fwb3JlIiwiQXNpYS9T
cmVkbmVrb2x5bXNrIiwiQXNpYS9UYWlwZWkiLCJBc2lhL1Rhc2hrZW50IiwiQXNpYS9UYmlsaXNp
IiwiQXNpYS9UZWhyYW4iLCJBc2lhL1RoaW1waHUiLCJBc2lhL1Rva3lvIiwiQXNpYS9Ub21zayIs
IkFzaWEvVWxhYW5iYWF0YXIiLCJBc2lhL1VydW1xaSIsIkFzaWEvVXN0LU5lcmEiLCJBc2lhL1Zp
ZW50aWFuZSIsIkFzaWEvVmxhZGl2b3N0b2siLCJBc2lhL1lha3V0c2siLCJBc2lhL1lla2F0ZXJp
bmJ1cmciLCJBc2lhL1llcmV2YW4iLCJBdGxhbnRpYy9Bem9yZXMiLCJBdGxhbnRpYy9CZXJtdWRh
IiwiQXRsYW50aWMvQ2FuYXJ5IiwiQXRsYW50aWMvQ2FwZV9WZXJkZSIsIkF0bGFudGljL0ZhZXJv
ZSIsIkF0bGFudGljL01hZGVpcmEiLCJBdGxhbnRpYy9SZXlramF2aWsiLCJBdGxhbnRpYy9Tb3V0
aF9HZW9yZ2lhIiwiQXRsYW50aWMvU3RfSGVsZW5hIiwiQXRsYW50aWMvU3RhbmxleSIsIkF1c3Ry
YWxpYS9BZGVsYWlkZSIsIkF1c3RyYWxpYS9CcmlzYmFuZSIsIkF1c3RyYWxpYS9Ccm9rZW5fSGls
bCIsIkF1c3RyYWxpYS9DdXJyaWUiLCJBdXN0cmFsaWEvRGFyd2luIiwiQXVzdHJhbGlhL0V1Y2xh
IiwiQXVzdHJhbGlhL0hvYmFydCIsIkF1c3RyYWxpYS9MaW5kZW1hbiIsIkF1c3RyYWxpYS9Mb3Jk
X0hvd2UiLCJBdXN0cmFsaWEvTWVsYm91cm5lIiwiQXVzdHJhbGlhL1BlcnRoIiwiQXVzdHJhbGlh
L1N5ZG5leSIsIkV1cm9wZS9BbXN0ZXJkYW0iLCJFdXJvcGUvQW5kb3JyYSIsIkV1cm9wZS9Bc3Ry
YWtoYW4iLCJFdXJvcGUvQXRoZW5zIiwiRXVyb3BlL0JlbGdyYWRlIiwiRXVyb3BlL0JlcmxpbiIs
IkV1cm9wZS9CcmF0aXNsYXZhIiwiRXVyb3BlL0JydXNzZWxzIiwiRXVyb3BlL0J1Y2hhcmVzdCIs
IkV1cm9wZS9CdWRhcGVzdCIsIkV1cm9wZS9CdXNpbmdlbiIsIkV1cm9wZS9DaGlzaW5hdSIsIkV1
cm9wZS9Db3BlbmhhZ2VuIiwiRXVyb3BlL0R1YmxpbiIsIkV1cm9wZS9HaWJyYWx0YXIiLCJFdXJv
cGUvR3Vlcm5zZXkiLCJFdXJvcGUvSGVsc2lua2kiLCJFdXJvcGUvSXNsZV9vZl9NYW4iLCJFdXJv
cGUvSXN0YW5idWwiLCJFdXJvcGUvSmVyc2V5IiwiRXVyb3BlL0thbGluaW5ncmFkIiwiRXVyb3Bl
L0tpZXYiLCJFdXJvcGUvS2lyb3YiLCJFdXJvcGUvTGlzYm9uIiwiRXVyb3BlL0xqdWJsamFuYSIs
IkV1cm9wZS9Mb25kb24iLCJFdXJvcGUvTHV4ZW1ib3VyZyIsIkV1cm9wZS9NYWRyaWQiLCJFdXJv
cGUvTWFsdGEiLCJFdXJvcGUvTWFyaWVoYW1uIiwiRXVyb3BlL01pbnNrIiwiRXVyb3BlL01vbmFj
byIsIkV1cm9wZS9Nb3Njb3ciLCJFdXJvcGUvT3NsbyIsIkV1cm9wZS9QYXJpcyIsIkV1cm9wZS9Q
b2Rnb3JpY2EiLCJFdXJvcGUvUHJhZ3VlIiwiRXVyb3BlL1JpZ2EiLCJFdXJvcGUvUm9tZSIsIkV1
cm9wZS9TYW1hcmEiLCJFdXJvcGUvU2FuX01hcmlubyIsIkV1cm9wZS9TYXJhamV2byIsIkV1cm9w
ZS9TYXJhdG92IiwiRXVyb3BlL1NpbWZlcm9wb2wiLCJFdXJvcGUvU2tvcGplIiwiRXVyb3BlL1Nv
ZmlhIiwiRXVyb3BlL1N0b2NraG9sbSIsIkV1cm9wZS9UYWxsaW5uIiwiRXVyb3BlL1RpcmFuZSIs
IkV1cm9wZS9VbHlhbm92c2siLCJFdXJvcGUvVXpoZ29yb2QiLCJFdXJvcGUvVmFkdXoiLCJFdXJv
cGUvVmF0aWNhbiIsIkV1cm9wZS9WaWVubmEiLCJFdXJvcGUvVmlsbml1cyIsIkV1cm9wZS9Wb2xn
b2dyYWQiLCJFdXJvcGUvV2Fyc2F3IiwiRXVyb3BlL1phZ3JlYiIsIkV1cm9wZS9aYXBvcm96aHll
IiwiRXVyb3BlL1p1cmljaCIsIkluZGlhbi9BbnRhbmFuYXJpdm8iLCJJbmRpYW4vQ2hhZ29zIiwi
SW5kaWFuL0NocmlzdG1hcyIsIkluZGlhbi9Db2NvcyIsIkluZGlhbi9Db21vcm8iLCJJbmRpYW4v
S2VyZ3VlbGVuIiwiSW5kaWFuL01haGUiLCJJbmRpYW4vTWFsZGl2ZXMiLCJJbmRpYW4vTWF1cml0
aXVzIiwiSW5kaWFuL01heW90dGUiLCJJbmRpYW4vUmV1bmlvbiIsIlBhY2lmaWMvQXBpYSIsIlBh
Y2lmaWMvQXVja2xhbmQiLCJQYWNpZmljL0JvdWdhaW52aWxsZSIsIlBhY2lmaWMvQ2hhdGhhbSIs
IlBhY2lmaWMvRWFzdGVyIiwiUGFjaWZpYy9FZmF0ZSIsIlBhY2lmaWMvRW5kZXJidXJ5IiwiUGFj
aWZpYy9GYWthb2ZvIiwiUGFjaWZpYy9GaWppIiwiUGFjaWZpYy9GdW5hZnV0aSIsIlBhY2lmaWMv
R2FsYXBhZ29zIiwiUGFjaWZpYy9HYW1iaWVyIiwiUGFjaWZpYy9HdWFkYWxjYW5hbCIsIlBhY2lm
aWMvR3VhbSIsIlBhY2lmaWMvSG9ub2x1bHUiLCJQYWNpZmljL0pvaG5zdG9uIiwiUGFjaWZpYy9L
aXJpdGltYXRpIiwiUGFjaWZpYy9Lb3NyYWUiLCJQYWNpZmljL0t3YWphbGVpbiIsIlBhY2lmaWMv
TWFqdXJvIiwiUGFjaWZpYy9NYXJxdWVzYXMiLCJQYWNpZmljL01pZHdheSIsIlBhY2lmaWMvTmF1
cnUiLCJQYWNpZmljL05pdWUiLCJQYWNpZmljL05vcmZvbGsiLCJQYWNpZmljL05vdW1lYSIsIlBh
Y2lmaWMvUGFnb19QYWdvIiwiUGFjaWZpYy9QYWxhdSIsIlBhY2lmaWMvUGl0Y2Fpcm4iLCJQYWNp
ZmljL1BvbmFwZSIsIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwiUGFjaWZpYy9SYXJvdG9uZ2EiLCJQ
YWNpZmljL1NhaXBhbiIsIlBhY2lmaWMvVGFoaXRpIiwiUGFjaWZpYy9UYXJhd2EiLCJQYWNpZmlj
L1RvbmdhdGFwdSIsIlBhY2lmaWMvVHJ1ayIsIlBhY2lmaWMvV2FrZSIsIlBhY2lmaWMvV2FsbGlz
Il1gKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KHRpbWVab25lcyksIGBbIkFmcmljYS9BYmlk
amFuIiwiQWZyaWNhL0FjY3JhIiwiQWZyaWNhL0FkZGlzX0FiYWJhIiwiQWZyaWNhL0FsZ2llcnMi
LCJBZnJpY2EvQXNtZXJhIiwiQWZyaWNhL0JhbWFrbyIsIkFmcmljYS9CYW5ndWkiLCJBZnJpY2Ev
QmFuanVsIiwiQWZyaWNhL0Jpc3NhdSIsIkFmcmljYS9CbGFudHlyZSIsIkFmcmljYS9CcmF6emF2
aWxsZSIsIkFmcmljYS9CdWp1bWJ1cmEiLCJBZnJpY2EvQ2Fpcm8iLCJBZnJpY2EvQ2FzYWJsYW5j
YSIsIkFmcmljYS9DZXV0YSIsIkFmcmljYS9Db25ha3J5IiwiQWZyaWNhL0Rha2FyIiwiQWZyaWNh
L0Rhcl9lc19TYWxhYW0iLCJBZnJpY2EvRGppYm91dGkiLCJBZnJpY2EvRG91YWxhIiwiQWZyaWNh
L0VsX0FhaXVuIiwiQWZyaWNhL0ZyZWV0b3duIiwiQWZyaWNhL0dhYm9yb25lIiwiQWZyaWNhL0hh
cmFyZSIsIkFmcmljYS9Kb2hhbm5lc2J1cmciLCJBZnJpY2EvSnViYSIsIkFmcmljYS9LYW1wYWxh
IiwiQWZyaWNhL0toYXJ0b3VtIiwiQWZyaWNhL0tpZ2FsaSIsIkFmcmljYS9LaW5zaGFzYSIsIkFm
cmljYS9MYWdvcyIsIkFmcmljYS9MaWJyZXZpbGxlIiwiQWZyaWNhL0xvbWUiLCJBZnJpY2EvTHVh
bmRhIiwiQWZyaWNhL0x1YnVtYmFzaGkiLCJBZnJpY2EvTHVzYWthIiwiQWZyaWNhL01hbGFibyIs
IkFmcmljYS9NYXB1dG8iLCJBZnJpY2EvTWFzZXJ1IiwiQWZyaWNhL01iYWJhbmUiLCJBZnJpY2Ev
TW9nYWRpc2h1IiwiQWZyaWNhL01vbnJvdmlhIiwiQWZyaWNhL05haXJvYmkiLCJBZnJpY2EvTmRq
YW1lbmEiLCJBZnJpY2EvTmlhbWV5IiwiQWZyaWNhL05vdWFrY2hvdHQiLCJBZnJpY2EvT3VhZ2Fk
b3Vnb3UiLCJBZnJpY2EvUG9ydG8tTm92byIsIkFmcmljYS9TYW9fVG9tZSIsIkFmcmljYS9Ucmlw
b2xpIiwiQWZyaWNhL1R1bmlzIiwiQWZyaWNhL1dpbmRob2VrIiwiQW1lcmljYS9BZGFrIiwiQW1l
cmljYS9BbmNob3JhZ2UiLCJBbWVyaWNhL0FuZ3VpbGxhIiwiQW1lcmljYS9BbnRpZ3VhIiwiQW1l
cmljYS9BcmFndWFpbmEiLCJBbWVyaWNhL0FyZ2VudGluYS9MYV9SaW9qYSIsIkFtZXJpY2EvQXJn
ZW50aW5hL1Jpb19HYWxsZWdvcyIsIkFtZXJpY2EvQXJnZW50aW5hL1NhbHRhIiwiQW1lcmljYS9B
cmdlbnRpbmEvU2FuX0p1YW4iLCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fTHVpcyIsIkFtZXJpY2Ev
QXJnZW50aW5hL1R1Y3VtYW4iLCJBbWVyaWNhL0FyZ2VudGluYS9Vc2h1YWlhIiwiQW1lcmljYS9B
cnViYSIsIkFtZXJpY2EvQXN1bmNpb24iLCJBbWVyaWNhL0JhaGlhIiwiQW1lcmljYS9CYWhpYV9C
YW5kZXJhcyIsIkFtZXJpY2EvQmFyYmFkb3MiLCJBbWVyaWNhL0JlbGVtIiwiQW1lcmljYS9CZWxp
emUiLCJBbWVyaWNhL0JsYW5jLVNhYmxvbiIsIkFtZXJpY2EvQm9hX1Zpc3RhIiwiQW1lcmljYS9C
b2dvdGEiLCJBbWVyaWNhL0JvaXNlIiwiQW1lcmljYS9CdWVub3NfQWlyZXMiLCJBbWVyaWNhL0Nh
bWJyaWRnZV9CYXkiLCJBbWVyaWNhL0NhbXBvX0dyYW5kZSIsIkFtZXJpY2EvQ2FuY3VuIiwiQW1l
cmljYS9DYXJhY2FzIiwiQW1lcmljYS9DYXRhbWFyY2EiLCJBbWVyaWNhL0NheWVubmUiLCJBbWVy
aWNhL0NheW1hbiIsIkFtZXJpY2EvQ2hpY2FnbyIsIkFtZXJpY2EvQ2hpaHVhaHVhIiwiQW1lcmlj
YS9Db3JhbF9IYXJib3VyIiwiQW1lcmljYS9Db3Jkb2JhIiwiQW1lcmljYS9Db3N0YV9SaWNhIiwi
QW1lcmljYS9DcmVzdG9uIiwiQW1lcmljYS9DdWlhYmEiLCJBbWVyaWNhL0N1cmFjYW8iLCJBbWVy
aWNhL0Rhbm1hcmtzaGF2biIsIkFtZXJpY2EvRGF3c29uIiwiQW1lcmljYS9EYXdzb25fQ3JlZWsi
LCJBbWVyaWNhL0RlbnZlciIsIkFtZXJpY2EvRGV0cm9pdCIsIkFtZXJpY2EvRG9taW5pY2EiLCJB
bWVyaWNhL0VkbW9udG9uIiwiQW1lcmljYS9FaXJ1bmVwZSIsIkFtZXJpY2EvRWxfU2FsdmFkb3Ii
LCJBbWVyaWNhL0ZvcnRfTmVsc29uIiwiQW1lcmljYS9Gb3J0YWxlemEiLCJBbWVyaWNhL0dsYWNl
X0JheSIsIkFtZXJpY2EvR29kdGhhYiIsIkFtZXJpY2EvR29vc2VfQmF5IiwiQW1lcmljYS9HcmFu
ZF9UdXJrIiwiQW1lcmljYS9HcmVuYWRhIiwiQW1lcmljYS9HdWFkZWxvdXBlIiwiQW1lcmljYS9H
dWF0ZW1hbGEiLCJBbWVyaWNhL0d1YXlhcXVpbCIsIkFtZXJpY2EvR3V5YW5hIiwiQW1lcmljYS9I
YWxpZmF4IiwiQW1lcmljYS9IYXZhbmEiLCJBbWVyaWNhL0hlcm1vc2lsbG8iLCJBbWVyaWNhL0lu
ZGlhbmEvS25veCIsIkFtZXJpY2EvSW5kaWFuYS9NYXJlbmdvIiwiQW1lcmljYS9JbmRpYW5hL1Bl
dGVyc2J1cmciLCJBbWVyaWNhL0luZGlhbmEvVGVsbF9DaXR5IiwiQW1lcmljYS9JbmRpYW5hL1Zl
dmF5IiwiQW1lcmljYS9JbmRpYW5hL1ZpbmNlbm5lcyIsIkFtZXJpY2EvSW5kaWFuYS9XaW5hbWFj
IiwiQW1lcmljYS9JbmRpYW5hcG9saXMiLCJBbWVyaWNhL0ludXZpayIsIkFtZXJpY2EvSXFhbHVp
dCIsIkFtZXJpY2EvSmFtYWljYSIsIkFtZXJpY2EvSnVqdXkiLCJBbWVyaWNhL0p1bmVhdSIsIkFt
ZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsIkFtZXJpY2EvS3JhbGVuZGlqayIsIkFtZXJpY2Ev
TGFfUGF6IiwiQW1lcmljYS9MaW1hIiwiQW1lcmljYS9Mb3NfQW5nZWxlcyIsIkFtZXJpY2EvTG91
aXN2aWxsZSIsIkFtZXJpY2EvTG93ZXJfUHJpbmNlcyIsIkFtZXJpY2EvTWFjZWlvIiwiQW1lcmlj
YS9NYW5hZ3VhIiwiQW1lcmljYS9NYW5hdXMiLCJBbWVyaWNhL01hcmlnb3QiLCJBbWVyaWNhL01h
cnRpbmlxdWUiLCJBbWVyaWNhL01hdGFtb3JvcyIsIkFtZXJpY2EvTWF6YXRsYW4iLCJBbWVyaWNh
L01lbmRvemEiLCJBbWVyaWNhL01lbm9taW5lZSIsIkFtZXJpY2EvTWVyaWRhIiwiQW1lcmljYS9N
ZXRsYWthdGxhIiwiQW1lcmljYS9NZXhpY29fQ2l0eSIsIkFtZXJpY2EvTWlxdWVsb24iLCJBbWVy
aWNhL01vbmN0b24iLCJBbWVyaWNhL01vbnRlcnJleSIsIkFtZXJpY2EvTW9udGV2aWRlbyIsIkFt
ZXJpY2EvTW9udHJlYWwiLCJBbWVyaWNhL01vbnRzZXJyYXQiLCJBbWVyaWNhL05hc3NhdSIsIkFt
ZXJpY2EvTmV3X1lvcmsiLCJBbWVyaWNhL05pcGlnb24iLCJBbWVyaWNhL05vbWUiLCJBbWVyaWNh
L05vcm9uaGEiLCJBbWVyaWNhL05vcnRoX0Rha290YS9CZXVsYWgiLCJBbWVyaWNhL05vcnRoX0Rh
a290YS9DZW50ZXIiLCJBbWVyaWNhL05vcnRoX0Rha290YS9OZXdfU2FsZW0iLCJBbWVyaWNhL09q
aW5hZ2EiLCJBbWVyaWNhL1BhbmFtYSIsIkFtZXJpY2EvUGFuZ25pcnR1bmciLCJBbWVyaWNhL1Bh
cmFtYXJpYm8iLCJBbWVyaWNhL1Bob2VuaXgiLCJBbWVyaWNhL1BvcnQtYXUtUHJpbmNlIiwiQW1l
cmljYS9Qb3J0X29mX1NwYWluIiwiQW1lcmljYS9Qb3J0b19WZWxobyIsIkFtZXJpY2EvUHVlcnRv
X1JpY28iLCJBbWVyaWNhL1B1bnRhX0FyZW5hcyIsIkFtZXJpY2EvUmFpbnlfUml2ZXIiLCJBbWVy
aWNhL1Jhbmtpbl9JbmxldCIsIkFtZXJpY2EvUmVjaWZlIiwiQW1lcmljYS9SZWdpbmEiLCJBbWVy
aWNhL1Jlc29sdXRlIiwiQW1lcmljYS9SaW9fQnJhbmNvIiwiQW1lcmljYS9TYW50YV9Jc2FiZWwi
LCJBbWVyaWNhL1NhbnRhcmVtIiwiQW1lcmljYS9TYW50aWFnbyIsIkFtZXJpY2EvU2FudG9fRG9t
aW5nbyIsIkFtZXJpY2EvU2FvX1BhdWxvIiwiQW1lcmljYS9TY29yZXNieXN1bmQiLCJBbWVyaWNh
L1NpdGthIiwiQW1lcmljYS9TdF9CYXJ0aGVsZW15IiwiQW1lcmljYS9TdF9Kb2hucyIsIkFtZXJp
Y2EvU3RfS2l0dHMiLCJBbWVyaWNhL1N0X0x1Y2lhIiwiQW1lcmljYS9TdF9UaG9tYXMiLCJBbWVy
aWNhL1N0X1ZpbmNlbnQiLCJBbWVyaWNhL1N3aWZ0X0N1cnJlbnQiLCJBbWVyaWNhL1RlZ3VjaWdh
bHBhIiwiQW1lcmljYS9UaHVsZSIsIkFtZXJpY2EvVGh1bmRlcl9CYXkiLCJBbWVyaWNhL1RpanVh
bmEiLCJBbWVyaWNhL1Rvcm9udG8iLCJBbWVyaWNhL1RvcnRvbGEiLCJBbWVyaWNhL1ZhbmNvdXZl
ciIsIkFtZXJpY2EvV2hpdGVob3JzZSIsIkFtZXJpY2EvV2lubmlwZWciLCJBbWVyaWNhL1lha3V0
YXQiLCJBbWVyaWNhL1llbGxvd2tuaWZlIiwiQW50YXJjdGljYS9DYXNleSIsIkFudGFyY3RpY2Ev
RGF2aXMiLCJBbnRhcmN0aWNhL0R1bW9udERVcnZpbGxlIiwiQW50YXJjdGljYS9NYWNxdWFyaWUi
LCJBbnRhcmN0aWNhL01hd3NvbiIsIkFudGFyY3RpY2EvTWNNdXJkbyIsIkFudGFyY3RpY2EvUGFs
bWVyIiwiQW50YXJjdGljYS9Sb3RoZXJhIiwiQW50YXJjdGljYS9TeW93YSIsIkFudGFyY3RpY2Ev
VHJvbGwiLCJBbnRhcmN0aWNhL1Zvc3RvayIsIkFyY3RpYy9Mb25neWVhcmJ5ZW4iLCJBc2lhL0Fk
ZW4iLCJBc2lhL0FsbWF0eSIsIkFzaWEvQW1tYW4iLCJBc2lhL0FuYWR5ciIsIkFzaWEvQXF0YXUi
LCJBc2lhL0FxdG9iZSIsIkFzaWEvQXNoZ2FiYXQiLCJBc2lhL0F0eXJhdSIsIkFzaWEvQmFnaGRh
ZCIsIkFzaWEvQmFocmFpbiIsIkFzaWEvQmFrdSIsIkFzaWEvQmFuZ2tvayIsIkFzaWEvQmFybmF1
bCIsIkFzaWEvQmVpcnV0IiwiQXNpYS9CaXNoa2VrIiwiQXNpYS9CcnVuZWkiLCJBc2lhL0NhbGN1
dHRhIiwiQXNpYS9DaGl0YSIsIkFzaWEvQ2hvaWJhbHNhbiIsIkFzaWEvQ29sb21ibyIsIkFzaWEv
RGFtYXNjdXMiLCJBc2lhL0RoYWthIiwiQXNpYS9EaWxpIiwiQXNpYS9EdWJhaSIsIkFzaWEvRHVz
aGFuYmUiLCJBc2lhL0ZhbWFndXN0YSIsIkFzaWEvR2F6YSIsIkFzaWEvSGVicm9uIiwiQXNpYS9I
b25nX0tvbmciLCJBc2lhL0hvdmQiLCJBc2lhL0lya3V0c2siLCJBc2lhL0pha2FydGEiLCJBc2lh
L0pheWFwdXJhIiwiQXNpYS9KZXJ1c2FsZW0iLCJBc2lhL0thYnVsIiwiQXNpYS9LYW1jaGF0a2Ei
LCJBc2lhL0thcmFjaGkiLCJBc2lhL0thdG1hbmR1IiwiQXNpYS9LaGFuZHlnYSIsIkFzaWEvS3Jh
c25veWFyc2siLCJBc2lhL0t1YWxhX0x1bXB1ciIsIkFzaWEvS3VjaGluZyIsIkFzaWEvS3V3YWl0
IiwiQXNpYS9NYWNhdSIsIkFzaWEvTWFnYWRhbiIsIkFzaWEvTWFrYXNzYXIiLCJBc2lhL01hbmls
YSIsIkFzaWEvTXVzY2F0IiwiQXNpYS9OaWNvc2lhIiwiQXNpYS9Ob3Zva3V6bmV0c2siLCJBc2lh
L05vdm9zaWJpcnNrIiwiQXNpYS9PbXNrIiwiQXNpYS9PcmFsIiwiQXNpYS9QaG5vbV9QZW5oIiwi
QXNpYS9Qb250aWFuYWsiLCJBc2lhL1B5b25neWFuZyIsIkFzaWEvUWF0YXIiLCJBc2lhL1Fvc3Rh
bmF5IiwiQXNpYS9ReXp5bG9yZGEiLCJBc2lhL1Jhbmdvb24iLCJBc2lhL1JpeWFkaCIsIkFzaWEv
U2FpZ29uIiwiQXNpYS9TYWtoYWxpbiIsIkFzaWEvU2FtYXJrYW5kIiwiQXNpYS9TZW91bCIsIkFz
aWEvU2hhbmdoYWkiLCJBc2lhL1NpbmdhcG9yZSIsIkFzaWEvU3JlZG5la29seW1zayIsIkFzaWEv
VGFpcGVpIiwiQXNpYS9UYXNoa2VudCIsIkFzaWEvVGJpbGlzaSIsIkFzaWEvVGVocmFuIiwiQXNp
YS9UaGltcGh1IiwiQXNpYS9Ub2t5byIsIkFzaWEvVG9tc2siLCJBc2lhL1VsYWFuYmFhdGFyIiwi
QXNpYS9VcnVtcWkiLCJBc2lhL1VzdC1OZXJhIiwiQXNpYS9WaWVudGlhbmUiLCJBc2lhL1ZsYWRp
dm9zdG9rIiwiQXNpYS9ZYWt1dHNrIiwiQXNpYS9ZZWthdGVyaW5idXJnIiwiQXNpYS9ZZXJldmFu
IiwiQXRsYW50aWMvQXpvcmVzIiwiQXRsYW50aWMvQmVybXVkYSIsIkF0bGFudGljL0NhbmFyeSIs
IkF0bGFudGljL0NhcGVfVmVyZGUiLCJBdGxhbnRpYy9GYWVyb2UiLCJBdGxhbnRpYy9NYWRlaXJh
IiwiQXRsYW50aWMvUmV5a2phdmlrIiwiQXRsYW50aWMvU291dGhfR2VvcmdpYSIsIkF0bGFudGlj
L1N0X0hlbGVuYSIsIkF0bGFudGljL1N0YW5sZXkiLCJBdXN0cmFsaWEvQWRlbGFpZGUiLCJBdXN0
cmFsaWEvQnJpc2JhbmUiLCJBdXN0cmFsaWEvQnJva2VuX0hpbGwiLCJBdXN0cmFsaWEvQ3Vycmll
IiwiQXVzdHJhbGlhL0RhcndpbiIsIkF1c3RyYWxpYS9FdWNsYSIsIkF1c3RyYWxpYS9Ib2JhcnQi
LCJBdXN0cmFsaWEvTGluZGVtYW4iLCJBdXN0cmFsaWEvTG9yZF9Ib3dlIiwiQXVzdHJhbGlhL01l
bGJvdXJuZSIsIkF1c3RyYWxpYS9QZXJ0aCIsIkF1c3RyYWxpYS9TeWRuZXkiLCJFdXJvcGUvQW1z
dGVyZGFtIiwiRXVyb3BlL0FuZG9ycmEiLCJFdXJvcGUvQXN0cmFraGFuIiwiRXVyb3BlL0F0aGVu
cyIsIkV1cm9wZS9CZWxncmFkZSIsIkV1cm9wZS9CZXJsaW4iLCJFdXJvcGUvQnJhdGlzbGF2YSIs
IkV1cm9wZS9CcnVzc2VscyIsIkV1cm9wZS9CdWNoYXJlc3QiLCJFdXJvcGUvQnVkYXBlc3QiLCJF
dXJvcGUvQnVzaW5nZW4iLCJFdXJvcGUvQ2hpc2luYXUiLCJFdXJvcGUvQ29wZW5oYWdlbiIsIkV1
cm9wZS9EdWJsaW4iLCJFdXJvcGUvR2licmFsdGFyIiwiRXVyb3BlL0d1ZXJuc2V5IiwiRXVyb3Bl
L0hlbHNpbmtpIiwiRXVyb3BlL0lzbGVfb2ZfTWFuIiwiRXVyb3BlL0lzdGFuYnVsIiwiRXVyb3Bl
L0plcnNleSIsIkV1cm9wZS9LYWxpbmluZ3JhZCIsIkV1cm9wZS9LaWV2IiwiRXVyb3BlL0tpcm92
IiwiRXVyb3BlL0xpc2JvbiIsIkV1cm9wZS9ManVibGphbmEiLCJFdXJvcGUvTG9uZG9uIiwiRXVy
b3BlL0x1eGVtYm91cmciLCJFdXJvcGUvTWFkcmlkIiwiRXVyb3BlL01hbHRhIiwiRXVyb3BlL01h
cmllaGFtbiIsIkV1cm9wZS9NaW5zayIsIkV1cm9wZS9Nb25hY28iLCJFdXJvcGUvTW9zY293Iiwi
RXVyb3BlL09zbG8iLCJFdXJvcGUvUGFyaXMiLCJFdXJvcGUvUG9kZ29yaWNhIiwiRXVyb3BlL1By
YWd1ZSIsIkV1cm9wZS9SaWdhIiwiRXVyb3BlL1JvbWUiLCJFdXJvcGUvU2FtYXJhIiwiRXVyb3Bl
L1Nhbl9NYXJpbm8iLCJFdXJvcGUvU2FyYWpldm8iLCJFdXJvcGUvU2FyYXRvdiIsIkV1cm9wZS9T
aW1mZXJvcG9sIiwiRXVyb3BlL1Nrb3BqZSIsIkV1cm9wZS9Tb2ZpYSIsIkV1cm9wZS9TdG9ja2hv
bG0iLCJFdXJvcGUvVGFsbGlubiIsIkV1cm9wZS9UaXJhbmUiLCJFdXJvcGUvVWx5YW5vdnNrIiwi
RXVyb3BlL1V6aGdvcm9kIiwiRXVyb3BlL1ZhZHV6IiwiRXVyb3BlL1ZhdGljYW4iLCJFdXJvcGUv
Vmllbm5hIiwiRXVyb3BlL1ZpbG5pdXMiLCJFdXJvcGUvVm9sZ29ncmFkIiwiRXVyb3BlL1dhcnNh
dyIsIkV1cm9wZS9aYWdyZWIiLCJFdXJvcGUvWmFwb3Jvemh5ZSIsIkV1cm9wZS9adXJpY2giLCJJ
bmRpYW4vQW50YW5hbmFyaXZvIiwiSW5kaWFuL0NoYWdvcyIsIkluZGlhbi9DaHJpc3RtYXMiLCJJ
bmRpYW4vQ29jb3MiLCJJbmRpYW4vQ29tb3JvIiwiSW5kaWFuL0tlcmd1ZWxlbiIsIkluZGlhbi9N
YWhlIiwiSW5kaWFuL01hbGRpdmVzIiwiSW5kaWFuL01hdXJpdGl1cyIsIkluZGlhbi9NYXlvdHRl
IiwiSW5kaWFuL1JldW5pb24iLCJQYWNpZmljL0FwaWEiLCJQYWNpZmljL0F1Y2tsYW5kIiwiUGFj
aWZpYy9Cb3VnYWludmlsbGUiLCJQYWNpZmljL0NoYXRoYW0iLCJQYWNpZmljL0Vhc3RlciIsIlBh
Y2lmaWMvRWZhdGUiLCJQYWNpZmljL0VuZGVyYnVyeSIsIlBhY2lmaWMvRmFrYW9mbyIsIlBhY2lm
aWMvRmlqaSIsIlBhY2lmaWMvRnVuYWZ1dGkiLCJQYWNpZmljL0dhbGFwYWdvcyIsIlBhY2lmaWMv
R2FtYmllciIsIlBhY2lmaWMvR3VhZGFsY2FuYWwiLCJQYWNpZmljL0d1YW0iLCJQYWNpZmljL0hv
bm9sdWx1IiwiUGFjaWZpYy9Kb2huc3RvbiIsIlBhY2lmaWMvS2lyaXRpbWF0aSIsIlBhY2lmaWMv
S29zcmFlIiwiUGFjaWZpYy9Ld2FqYWxlaW4iLCJQYWNpZmljL01hanVybyIsIlBhY2lmaWMvTWFy
cXVlc2FzIiwiUGFjaWZpYy9NaWR3YXkiLCJQYWNpZmljL05hdXJ1IiwiUGFjaWZpYy9OaXVlIiwi
UGFjaWZpYy9Ob3Jmb2xrIiwiUGFjaWZpYy9Ob3VtZWEiLCJQYWNpZmljL1BhZ29fUGFnbyIsIlBh
Y2lmaWMvUGFsYXUiLCJQYWNpZmljL1BpdGNhaXJuIiwiUGFjaWZpYy9Qb25hcGUiLCJQYWNpZmlj
L1BvcnRfTW9yZXNieSIsIlBhY2lmaWMvUmFyb3RvbmdhIiwiUGFjaWZpYy9TYWlwYW4iLCJQYWNp
ZmljL1RhaGl0aSIsIlBhY2lmaWMvVGFyYXdhIiwiUGFjaWZpYy9Ub25nYXRhcHUiLCJQYWNpZmlj
L1RydWsiLCJQYWNpZmljL1dha2UiLCJQYWNpZmljL1dhbGxpcyIsIlVUQyJdYCk7CiAKIGxldCB1
bml0cyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoInVuaXQiKTsKIHNob3VsZEJlKEpTT04uc3Ry
aW5naWZ5KHVuaXRzKSwgYFsiYWNyZSIsImJpdCIsImJ5dGUiLCJjZWxzaXVzIiwiY2VudGltZXRl
ciIsImRheSIsImRlZ3JlZSIsImZhaHJlbmhlaXQiLCJmbHVpZC1vdW5jZSIsImZvb3QiLCJnYWxs
b24iLCJnaWdhYml0IiwiZ2lnYWJ5dGUiLCJncmFtIiwiaGVjdGFyZSIsImhvdXIiLCJpbmNoIiwi
a2lsb2JpdCIsImtpbG9ieXRlIiwia2lsb2dyYW0iLCJraWxvbWV0ZXIiLCJsaXRlciIsIm1lZ2Fi
aXQiLCJtZWdhYnl0ZSIsIm1ldGVyIiwibWlsZSIsIm1pbGUtc2NhbmRpbmF2aWFuIiwibWlsbGls
aXRlciIsIm1pbGxpbWV0ZXIiLCJtaWxsaXNlY29uZCIsIm1pbnV0ZSIsIm1vbnRoIiwib3VuY2Ui
LCJwZXJjZW50IiwicGV0YWJ5dGUiLCJwb3VuZCIsInNlY29uZCIsInN0b25lIiwidGVyYWJpdCIs
InRlcmFieXRlIiwid2VlayIsInlhcmQiLCJ5ZWFyIl1gKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3RlbXBvcmFsLXRpbWV6b25lLmpzIGIvSlNUZXN0cy9zdHJlc3MvdGVtcG9yYWwtdGlt
ZXpvbmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI4ZWNjOTBkMTY1NDhlM2IwOTZkZGI5ZjZiZjE0MWIzNTc3
NDgxMgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3RlbXBvcmFsLXRpbWV6b25l
LmpzCkBAIC0wLDAgKzEsNTQgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VUZW1wb3JhbD0x
IikKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVj
dGVkfSBidXQgZ290ICR7YWN0dWFsfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5j
LCBlcnJvclR5cGUsIG1lc3NhZ2UpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAg
ICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0K
KworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSFgKTsKKyAgICBpZiAobWVzc2Fn
ZSAhPT0gdW5kZWZpbmVkKQorICAgICAgICBzaG91bGRCZShTdHJpbmcoZXJyb3IpLCBtZXNzYWdl
KTsKK30KKworbGV0IGZhaWx1cmVzID0gWworICAgICIiLAorICAgICIrIiwKKyAgICAiKzIiLAor
ICAgICIrMjowMCIsCisgICAgIisyNCIsCisgICAgIisyMzoiLAorICAgICIyMDowMCIsCisgICAg
IisyMDowMDAwIiwKKyAgICAiKzIwOjYwIiwKKyAgICAiKzIwOjU5OiIsCisgICAgIisyMDo1OTAw
IiwKKyAgICAiKzIwOjU5OjAwLjAxMjM0NTY3ODkiCitdOworCitmb3IgKGxldCB0ZXh0IG9mIGZh
aWx1cmVzKSB7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBuZXcgVGVtcG9yYWwu
VGltZVpvbmUodGV4dCk7CisgICAgfSwgUmFuZ2VFcnJvcik7Cit9CisKK3Nob3VsZEJlKG5ldyBU
ZW1wb3JhbC5UaW1lWm9uZSgiKzAwOjAwIikuaWQsIGArMDA6MDBgKTsKK3Nob3VsZEJlKG5ldyBU
ZW1wb3JhbC5UaW1lWm9uZSgiKzAxOjAwIikuaWQsIGArMDE6MDBgKTsKK3Nob3VsZEJlKG5ldyBU
ZW1wb3JhbC5UaW1lWm9uZSgiKzAxOjU5IikuaWQsIGArMDE6NTlgKTsKK3Nob3VsZEJlKG5ldyBU
ZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5IikuaWQsIGAtMDE6NTlgKTsKK3Nob3VsZEJlKG5ldyBU
ZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwIikuaWQsIGAtMDE6NTk6MzBgKTsKK3Nob3VsZEJl
KG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1IikuaWQsIGAtMDE6NTk6MzAu
MTIzNDVgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1
MDAwMCIpLmlkLCBgLTAxOjU5OjMwLjEyMzQ1YCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGlt
ZVpvbmUoIi0wMTo1OTozMC4wMDAwMDAwMDEiKS5pZCwgYC0wMTo1OTozMC4wMDAwMDAwMDFgKTsK
K3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1Njc4OSIpLmlk
LCBgLTAxOjU5OjMwLjEyMzQ1Njc4OWApOworCitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpv
bmUoIkFzaWEvVG9reW8iKS5pZCwgYEFzaWEvVG9reW9gKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3Jh
bC5UaW1lWm9uZSgiQVNJQS9UT0tZTyIpLmlkLCBgQXNpYS9Ub2t5b2ApOworc2hvdWxkQmUobmV3
IFRlbXBvcmFsLlRpbWVab25lKCJVVEMiKS5pZCwgYFVUQ2ApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437122</attachid>
            <date>2021-09-02 01:01:40 -0700</date>
            <delta_ts>2021-09-03 01:43:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229703-20210902010139.patch</filename>
            <type>text/plain</type>
            <size>91656</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZjAzNWQxNWNiNWVhNjgwNGJmOTIyOWYxNGNmYTFlMmZkN2NkYTZmLi5jYzliZjNjNWMyY2JiNWY0
NzkzZTUwODU4MmVkNDE0M2I4OTZmYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MyBAQAorMjAyMS0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIFRlbXBvcmFsLlRpbWVab25lLiBXaGlsZSB0aGlzIHBhdGNoIGRvZXMgbm90IGltcGxlbWVu
dCBmZWF0dXJlcyB3aGljaCByZXF1aXJlcyBUZW1wb3JhbC5JbnN0YW50LAorICAgICAgICB3ZSBp
bXBsZW1lbnQgdGhlIGNvcmUgb2YgVGVtcG9yYWwuVGltZVpvbmUsIGhvbGRpbmcgVVRDIG9mZnNl
dCBvciBJQU5BIFRpbWVab25lIElELiBUaGlzIHBhdGNoIGltcGxlbWVudHMgcGFyc2luZyBUaW1l
Wm9uZU51bWVyaWNVVENPZmZzZXQKKyAgICAgICAgdG8gcG9wdWxhdGUgVGltZVpvbmUgZnJvbSB0
aGF0IGZvcm1hdC4KKworICAgICAgICBTaW5jZSBUZW1wb3JhbC5UaW1lWm9uZSBpcyBpbXBsZW1l
bnRlZCwgd2UgYWxzbyBzdXBwb3J0IGBUZW1wb3JhbC5Ob3cudGltZVpvbmUoKWAsIHdoaWNoIHJl
dHVybnMgY3VycmVudCBzeXN0ZW0gVGltZVpvbmUuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW50
bCBlbnVtZXJhdGlvbiBub3QgaW5jbHVkaW5nICJVVEMiLiBTaW5jZSBpdCBpcyBpbmNsdWRlZCBp
biBJQU5BIFRpbWVab25lcywgd2Ugc2hvdWxkIGluY2x1ZGUgdGhhdC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIHJ1bnRp
bWUvSVNPODYwMS5jcHA6CisgICAgICAgIChKU0M6OklTTzg2MDE6OnBhcnNlRGVjaW1hbEludDMy
KToKKyAgICAgICAgKEpTQzo6SVNPODYwMTo6aGFuZGxlRnJhY3Rpb24pOgorICAgICAgICAoSlND
OjpJU084NjAxOjpwYXJzZVRpbWVab25lTnVtZXJpY1VUQ09mZnNldCk6CisgICAgICAgIChKU0M6
OklTTzg2MDE6OmZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1l
L0lTTzg2MDEuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjppc1ZhbGlkVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6
Y2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6
aW50bEF2YWlsYWJsZVRpbWVab25lcyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZVRpbWVab25l
cyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojp0aW1lWm9uZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE5vdy5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
cnVudGltZS9UZW1wb3JhbE5vdy5oOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVUaW1lWm9uZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6VGVt
cG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbUlEKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1l
Wm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNldCk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpv
bmU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OlRl
bXBvcmFsVGltZVpvbmUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lOjppc1ZhbGlk
VGltZVpvbmVOYW1lKToKKyAgICAgICAgKEpTQzo6cGFyc2VUZW1wb3JhbFRpbWVab25lU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZTo6ZnJvbSk6CisgICAgICAgICogcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0lTTzg2MDEuaC4KKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lQ29u
c3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZUNv
bnN0cnVjdG9yOjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpU
ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpT
Qzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFs
VGltZVpvbmVDb25zdHJ1Y3Rvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JU084NjAxLmguCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6
OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVa
b25lUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaC4KKyAgICAgICAgKiBy
dW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMjEtMDktMDEgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmaXggZm9yIHIyNDExNzEuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE0
Yjk5YjNmNDI2NTMzOWVjNjNlZDY3ZmZhNGE3YjQxMmRjNDRiOTguLjU0YmRjOGQ1YTViNTMzODk1
MGYzOGU4ZDRhMDU0NDg4YmE1M2UyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMDIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBJbXBs
ZW1lbnQgVGVtcG9yYWwuVGltZVpvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyOTcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOiBT
dXBwb3J0IGludGVnZXIgc2VyaWFsaXphdGlvbiBpbnRvIFZlY3Rvci4KKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oOiBFeHRlbmRzIFN0cmluZ0NvbmNhdGVuYXRlIGZlYXR1
cmUgZm9yIFZlY3RvciB3aXRoIFVDaGFyL0xDaGFyICsgTiBzaXplLgorCiAyMDIxLTA4LTI2ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDdXQgZG93biBvbiB1c2Ug
b2YgQ0ZHZXRUeXBlSUQsIHVzaW5nIGR5bmFtaWNfY2ZfY2FzdCBpbnN0ZWFkOyByZWxhdGVkIHN0
cmVhbWxpbmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxNjM0N2Q4
MzhiOTQxMmZjOGQ5NDM5ZGQyNTljZWVhM2I0Yjc4NGYuLjY0NWYwM2Y4NDNiYjEwZTVkODY5Njc2
MDRlNDRjMzEyNDAyZjQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTExMSw3ICsxMTEsMTAgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09VUkNFUwog
ICAgIHJ1bnRpbWUvVGVtcG9yYWxDYWxlbmRhclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL1Rl
bXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1lL1RlbXBvcmFsRHVyYXRp
b25Qcm90b3R5cGUuY3BwCisgICAgcnVudGltZS9UZW1wb3JhbE5vdy5jcHAKICAgICBydW50aW1l
L1RlbXBvcmFsT2JqZWN0LmNwcAorICAgIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVj
dG9yLmNwcAorICAgIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKIAogICAg
IHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKICAgICB3YXNtL2pzL0pTVG9XYXNtSUNDYWxsZWUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGE1NjVmNzM3ZTBiZjI1ZWQxODM1YTNhODEzZTU0ZTk3YmVhMjQz
ZTMuLmNlNWY2Mjg4YWFhMjdjYjc4MTdiZWFlMTQ0Mzc2ZWEyOGFmYWU2M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xNzMsNyArMTczLDEwIEBAICQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxDYWxl
bmRhckNvbnN0cnVjdG9yLmNwcAogJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbENhbGVu
ZGFyUHJvdG90eXBlLmNwcAogJChQUk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbER1cmF0aW9u
Q29uc3RydWN0b3IuY3BwCiAkKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Q
cm90b3R5cGUuY3BwCiskKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsTm93LmNwcAogJChQ
Uk9KRUNUX0RJUikvcnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAKKyQoUFJPSkVDVF9ESVIpL3J1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmNwcAorJChQUk9KRUNUX0RJUikvcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcAogJChQUk9KRUNUX0RJUikvdWNkL0Nh
c2VGb2xkaW5nLnR4dAogJChQUk9KRUNUX0RJUikvdWNkL0Rlcml2ZWRCaW5hcnlQcm9wZXJ0aWVz
LnR4dAogJChQUk9KRUNUX0RJUikvdWNkL0Rlcml2ZWRDb3JlUHJvcGVydGllcy50eHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCA2MzYxZDQ3YTMzMmI1ZmM1ZTA3NGM1YWIxNWY2NzQ3Yzk5MzQ3ZjczLi4xYjA1
NWM5MjJjMDk0YTU5NTg0MjYwODQxZGNlZGZjYWE3Mzc2NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03
MCw3ICs3MCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmUvVGVtcG9yYWxDYWxlbmRhckNvbnN0cnVjdG9yLgogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsQ2FsZW5kYXJQcm90b3R5
cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9UZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90
eXBlLmx1dC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvVGVtcG9yYWxOb3cubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1wb3JhbE9iamVjdC5sdXQuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvci5sdXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFT
Y3JpcHRDb3JlL1RlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9Vbmljb2RlUGF0dGVyblRhYmxl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUv
V2FzbUIzSVJHZW5lcmF0b3JJbmxpbmVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9XYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmEzNzY5Nzc3NGU1MDgz
ODY3MTZhOGUwODg4ZjUxYmVmYmQyNmRmZi4uODgxOTI3ZTE3YmRhMjM4ZDdkYWNlZjFkNmViNWMz
YzNiNzQ4YjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTE5NSw3ICsxOTUsMTAgQEAgT0JKRUNUX0xVVF9IRUFERVJTID0gXAogICAgIFRlbXBvcmFs
Q2FsZW5kYXJQcm90b3R5cGUubHV0LmggXAogICAgIFRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rv
ci5sdXQuaCBcCiAgICAgVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5sdXQuaCBcCisgICAgVGVt
cG9yYWxOb3cubHV0LmggXAogICAgIFRlbXBvcmFsT2JqZWN0Lmx1dC5oIFwKKyAgICBUZW1wb3Jh
bFRpbWVab25lQ29uc3RydWN0b3IubHV0LmggXAorICAgIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGUubHV0LmggXAogICAgIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0Lmgg
XAogICAgIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBXZWJB
c3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmx1dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOTZlMjJkM2RlNDE2MjNlNGYxOGUyNTIxOTVhMTU2ZjgwNzYxZmNjYS4uZmYyNDg4
MTUzM2FkODI0ODMzNmFkMzgxYTYzODdlM2M2MjM1MDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE4MjcsNiArMTgyNyw5IEBACiAJCUUzMDcxNzhDMjRDNzgyOTgwMERGMDY0
NCAvKiBJbnRsTG9jYWxlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBM0FGRjkzMDI0NUEzQ0ZDMDBDOUJBM0IgLyogSW50bExvY2FsZVBy
b3RvdHlwZS5oICovOyB9OwogCQlFMzA3MTc4RDI0Qzc4MjlBMDBERjA2NDQgLyogSW50bExvY2Fs
ZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBM0FGRjkyQzI0NUEzQ0ZBMDBDOUJBM0IgLyogSW50bExvY2FsZUNvbnN0cnVjdG9yLmgg
Ki87IH07CiAJCUUzMDcxNzhFMjRDNzgyOUQwMERGMDY0NCAvKiBJbnRsTG9jYWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FGRjkyQjI0NUEzQ0Y5
MDBDOUJBM0IgLyogSW50bExvY2FsZS5oICovOyB9OworCQlFMzBFOEE1NDI2REUyRTQ4MDBEQTQ5
MTUgLyogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwRThBNEUyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuaCAqLzsgfTsKKwkJRTMwRThBNTYyNkRFMkU0ODAwREE0OTE1
IC8qIFRlbXBvcmFsVGltZVpvbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzMEU4QTUwMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25l
LmggKi87IH07CisJCUUzMEU4QTU3MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25l
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzMEU4QTUxMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3IuaCAqLzsgfTsKIAkJRTMxMTc5QUEyMjg4Mzg2MTAwNTE0QjJDIC8qIFN5bWJvbFRhYmxlT3JT
Y29wZURlcHRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzExNzlBOTIyODgzODVEMDA1MTRCMkMgLyogU3ltYm9sVGFibGVPclNjb3BlRGVwdGguaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzE2MTgx
MzFFQzVGRTE3MDAwNkEyMTggLyogRE9NQW5ub3RhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxNjE4MTAxRUM1RkUwODAwMDZBMjE4IC8qIERP
TUFubm90YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzE2MTgxNTFFQzVGRTI3MDAwNkEyMTggLyogRE9NQXR0cmlidXRlR2V0dGVyU2V0
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzE2
MTgxMjFFQzVGRTA4MDAwNkEyMTggLyogRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNzksNiArNTA4
MiwxMiBAQAogCQlFMzA3MTc4MDI0Qzc4MjQ3MDBERjA2NDQgLyogSW50bFNlZ21lbnRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbnRsU2VnbWVudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMwNzE3ODEyNEM3ODI0NzAwREYwNjQ0IC8qIEludGxTZWdtZW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW50bFNlZ21lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzA3MTc4MjI0Qzc4MjQ3MDBERjA2NDQgLyogSW50bFNlZ21lbnRlckNvbnN0cnVjdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMEU4QTRDMjZERTJFNDcwMERBNDkxNSAvKiBU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMzBFOEE0RDI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9u
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhbFRpbWVa
b25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNEUyNkRFMkU0NzAw
REE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzBFOEE0RjI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1l
Wm9uZUNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzMEU4QTUwMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBvcmFsVGltZVpvbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNTEyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBv
cmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTMxMTc5QTkyMjg4Mzg1RDAwNTE0QjJDIC8qIFN5bWJvbFRhYmxlT3JTY29wZURlcHRo
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN5bWJvbFRhYmxlT3JTY29wZURlcHRoLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMTYxODEwMUVDNUZFMDgwMDA2QTIxOCAvKiBET01Bbm5vdGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUFubm90YXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNjE4MTExRUM1RkUwODAwMDZBMjE4IC8q
IERPTUF0dHJpYnV0ZUdldHRlclNldHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzk5OCw2ICs4MDA3LDEyIEBACiAJCQkJRjZGMTUwMTgyNjkzRDMzRDAw
NEI5OEVGIC8qIFRlbXBvcmFsTm93LmggKi8sCiAJCQkJRjZGMTUwMTkyNjkzRDMzRTAwNEI5OEVG
IC8qIFRlbXBvcmFsT2JqZWN0LmNwcCAqLywKIAkJCQlGNkYxNTAxQTI2OTNEMzNFMDA0Qjk4RUYg
LyogVGVtcG9yYWxPYmplY3QuaCAqLywKKwkJCQlFMzBFOEE0RDI2REUyRTQ3MDBEQTQ5MTUgLyog
VGVtcG9yYWxUaW1lWm9uZS5jcHAgKi8sCisJCQkJRTMwRThBNTAyNkRFMkU0ODAwREE0OTE1IC8q
IFRlbXBvcmFsVGltZVpvbmUuaCAqLywKKwkJCQlFMzBFOEE0RjI2REUyRTQ3MDBEQTQ5MTUgLyog
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQlFMzBFOEE1MTI2REUyRTQ4
MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggKi8sCisJCQkJRTMwRThB
NEMyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuY3BwICovLAor
CQkJCUUzMEU4QTRFMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
LmggKi8sCiAJCQkJMEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5j
cHAgKi8sCiAJCQkJMEZBMkMxN0ExN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5o
ICovLAogCQkJCUZFMkU2QTdBMUQ2RUE1RkUwMDYwRjg5NiAvKiBUaHJvd1Njb3BlLmNwcCAqLywK
QEAgLTEwNzAwLDYgKzEwNzE1LDkgQEAKIAkJCQlBM0M3RURCQTI2QjBEQjM4MDA0QzM0QzUgLyog
VGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0M3RURC
NjI2QjBEQjM4MDA0QzM0QzUgLyogVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjZGMTUwMjEyNjkzRDQ1MDAwNEI5OEVGIC8qIFRlbXBvcmFsT2JqZWN0Lmx1
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMwRThBNTYyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBv
cmFsVGltZVpvbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMEU4QTU3MjZERTJFNDgwMERBNDkx
NSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
MEU4QTU0MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVy
U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ0QTdCNDIwQkY2OEQ5MDAyMkIxNzEgLyogVGVy
bWluYXRlZENvZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTJDMTdDMTdEN0NGODQw
MDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDZiNjg1ZWE0NGM1OTBkYmVkNjI0NWQxYzJlM2ZhYmYzZmI0NjVm
YWIuLjMyOGY5MmY1YjJmYjIwNWM4Mzg3ODIyNDE5YTUwODRlMGZhMWY3Y2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQKQEAgLTEwMTksNiArMTAxOSw5IEBAIHJ1bnRpbWUvVGVtcG9yYWxE
dXJhdGlvbkNvbnN0cnVjdG9yLmNwcAogcnVudGltZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90eXBl
LmNwcAogcnVudGltZS9UZW1wb3JhbE5vdy5jcHAKIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3Bw
CitydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuY3BwCitydW50aW1lL1RlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5jcHAKK3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAKIHJ1
bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcAogcnVudGltZS9UaHJvd1Njb3BlLmNwcAogcnVudGlt
ZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0lTTzg2MDEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNP
ODYwMS5jcHAKaW5kZXggMzViZDM0ZDBkMGQ4YmFkN2MxNDBjMjgzOGRlNDY2Zjg5YjkzNzdhMi4u
MzEzOTIyMzE1MGQ1ZTQ4ODZjMjg1NDc0ZTEwMTdmNWNmZGVhYWVlNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5jcHAKQEAgLTMyLDYgKzMyLDIzIEBACiBuYW1lc3Bh
Y2UgSlNDIHsKIG5hbWVzcGFjZSBJU084NjAxIHsKIAorc3RhdGljIGNvbnN0ZXhwciBpbnQ2NF90
IG5zUGVySG91ciA9IDEwMDBMTCAqIDEwMDAgKiAxMDAwICogNjAgKiA2MDsKK3N0YXRpYyBjb25z
dGV4cHIgaW50NjRfdCBuc1Blck1pbnV0ZSA9IDEwMDBMTCAqIDEwMDAgKiAxMDAwICogNjA7Citz
dGF0aWMgY29uc3RleHByIGludDY0X3QgbnNQZXJTZWNvbmQgPSAxMDAwTEwgKiAxMDAwICogMTAw
MDsKK3N0YXRpYyBjb25zdGV4cHIgaW50NjRfdCBuc1Blck1pbGxpc2Vjb25kID0gMTAwMExMICog
MTAwMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50NjRfdCBuc1Blck1pY3Jvc2Vjb25kID0gMTAwMExM
OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZT4KK2ludDMyX3QgcGFyc2VEZWNpbWFsSW50
MzIoY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBp
bnQzMl90IHJlc3VsdCA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwg
bGVuZ3RoOyArK2luZGV4KSB7CisgICAgICAgIEFTU0VSVChpc0FTQ0lJRGlnaXQoY2hhcmFjdGVy
c1tpbmRleF0pKTsKKyAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAqIDEwKSArIGNoYXJhY3RlcnNb
aW5kZXhdIC0gJzAnOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiAvLyBEdXJhdGlv
bkhhbmRsZUZyYWN0aW9ucyAoIGZIb3VycywgbWludXRlcywgZk1pbnV0ZXMsIHNlY29uZHMsIGZT
ZWNvbmRzLCBtaWxsaXNlY29uZHMsIGZNaWxsaXNlY29uZHMsIG1pY3Jvc2Vjb25kcywgZk1pY3Jv
c2Vjb25kcywgbmFub3NlY29uZHMsIGZOYW5vc2Vjb25kcyApCiAvLyBodHRwczovL3RjMzkuZXMv
cHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC1kdXJhdGlvbmhhbmRsZWZyYWN0aW9ucwog
c3RhdGljIHZvaWQgaGFuZGxlRnJhY3Rpb24oRHVyYXRpb24mIGR1cmF0aW9uLCBpbnQgZmFjdG9y
LCBTdHJpbmdWaWV3IGZyYWN0aW9uU3RyaW5nLCBUZW1wb3JhbFVuaXQgZnJhY3Rpb25UeXBlKQpA
QCAtNDMsOSArNjAsOSBAQCBzdGF0aWMgdm9pZCBoYW5kbGVGcmFjdGlvbihEdXJhdGlvbiYgZHVy
YXRpb24sIGludCBmYWN0b3IsIFN0cmluZ1ZpZXcgZnJhY3Rpb25TdAogICAgICAgICBWZWN0b3I8
TENoYXIsIDk+IHBhZGRlZCg5LCAnMCcpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZnJhY3Rpb25TdHJpbmcubGVuZ3RoKCk7IGkrKykKICAgICAgICAgICAgIHBhZGRlZFtpXSA9
IGZyYWN0aW9uU3RyaW5nW2ldOwotICAgICAgICBkdXJhdGlvbi5zZXRNaWxsaXNlY29uZHMoZmFj
dG9yICogcGFyc2VJbnQoeyBwYWRkZWQuZGF0YSgpLCAzIH0sIDEwKSk7Ci0gICAgICAgIGR1cmF0
aW9uLnNldE1pY3Jvc2Vjb25kcyhmYWN0b3IgKiBwYXJzZUludCh7ICZwYWRkZWQuZGF0YSgpWzNd
LCAzIH0sIDEwKSk7Ci0gICAgICAgIGR1cmF0aW9uLnNldE5hbm9zZWNvbmRzKGZhY3RvciAqIHBh
cnNlSW50KHsgJnBhZGRlZC5kYXRhKClbNl0sIDMgfSwgMTApKTsKKyAgICAgICAgZHVyYXRpb24u
c2V0TWlsbGlzZWNvbmRzKGZhY3RvciAqIHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCks
IDMpKTsKKyAgICAgICAgZHVyYXRpb24uc2V0TWljcm9zZWNvbmRzKGZhY3RvciAqIHBhcnNlRGVj
aW1hbEludDMyKHBhZGRlZC5kYXRhKCkgKyAzLCAzKSk7CisgICAgICAgIGR1cmF0aW9uLnNldE5h
bm9zZWNvbmRzKGZhY3RvciAqIHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCkgKyA2LCAz
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIyNiw1ICsyNDMsMTU0IEBAIHN0ZDo6
b3B0aW9uYWw8RHVyYXRpb24+IHBhcnNlRHVyYXRpb24oU3RyaW5nVmlldyBzdHJpbmcpCiAgICAg
fSk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8aW50NjRfdD4gcGFyc2VUaW1lWm9uZU51bWVyaWNVVENP
ZmZzZXQoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgLy8gVGltZVpvbmVOdW1lcmljVVRDT2Zm
c2V0IDoKKyAgICAvLyAgICAgVGltZVpvbmVVVENPZmZzZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0
SG91cgorICAgIC8vICAgICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENPZmZzZXRI
b3VyIDogVGltZVpvbmVVVENPZmZzZXRNaW51dGUKKyAgICAvLyAgICAgVGltZVpvbmVVVENPZmZz
ZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0SG91ciBUaW1lWm9uZVVUQ09mZnNldE1pbnV0ZQorICAg
IC8vICAgICBUaW1lWm9uZVVUQ09mZnNldFNpZ24gVGltZVpvbmVVVENPZmZzZXRIb3VyIDogVGlt
ZVpvbmVVVENPZmZzZXRNaW51dGUgOiBUaW1lWm9uZVVUQ09mZnNldFNlY29uZCBUaW1lWm9uZVVU
Q09mZnNldEZyYWN0aW9uW29wdF0KKyAgICAvLyAgICAgVGltZVpvbmVVVENPZmZzZXRTaWduIFRp
bWVab25lVVRDT2Zmc2V0SG91ciBUaW1lWm9uZVVUQ09mZnNldE1pbnV0ZSBUaW1lWm9uZVVUQ09m
ZnNldFNlY29uZFtvcHRdCisgICAgLy8KKyAgICAvLyAgTWF4aW11bSBhbmQgbWluaW11bSB2YWx1
ZXMgYXJlICstMjM6NTk6NTkuOTk5OTk5OTk5ID0gKy04NjM5OTk5OTk5OTk5OW5zLCB3aGljaCBj
YW4gYmUgcmVwcmVzZW50ZWQgYnkgaW50NjRfdCAvIGRvdWJsZSdzIGludGVnZXIgcGFydC4KKyAg
ICByZXR1cm4gcmVhZENoYXJhY3RlcnNGb3JQYXJzaW5nKHN0cmluZywgW10oYXV0byBidWZmZXIp
IC0+IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4geworICAgICAgICAvLyBzaWduIGFuZCBob3VyLgor
ICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aFJlbWFpbmluZygpIDwgMykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaW50NjRfdCBmYWN0b3IgPSAxOworICAgICAg
ICBpZiAoKmJ1ZmZlciA9PSAnKycpCisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAg
ICAgICBlbHNlIGlmICgqYnVmZmVyID09ICctJyB8fCAqYnVmZmVyID09IDB4MjIxMikgeworICAg
ICAgICAgICAgZmFjdG9yID0gLTE7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
aW50NjRfdCBob3VyID0gMDsKKyAgICAgICAgQVNTRVJUKGJ1ZmZlci5sZW5ndGhSZW1haW5pbmco
KSA+PSAyKTsKKyAgICAgICAgYXV0byBmaXJzdEhvdXJDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAg
ICAgICBpZiAoZmlyc3RIb3VyQ2hhcmFjdGVyID49ICcwJyAmJiBmaXJzdEhvdXJDaGFyYWN0ZXIg
PD0gJzInKSB7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAgYXV0
byBzZWNvbmRIb3VyQ2hhcmFjdGVyID0gKmJ1ZmZlcjsKKyAgICAgICAgICAgIGlmICghaXNBU0NJ
SURpZ2l0KHNlY29uZEhvdXJDaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgICAgICBob3VyID0gKHNlY29uZEhvdXJDaGFyYWN0ZXIgLSAnMCcp
ICsgMTAgKiAoZmlyc3RIb3VyQ2hhcmFjdGVyIC0gJzAnKTsKKyAgICAgICAgICAgIGlmIChob3Vy
ID49IDI0KQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAg
ICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaWYgKGJ1ZmZlci5hdEVuZCgpKQorICAgICAgICAgICAg
cmV0dXJuIChuc1BlckhvdXIgKiBob3VyKSAqIGZhY3RvcjsKKworICAgICAgICBBU1NFUlQoYnVm
ZmVyLmhhc0NoYXJhY3RlcnNSZW1haW5pbmcoKSk7CisgICAgICAgIGJvb2wgc3BsaXR0ZWRCeUNv
bG9uID0gZmFsc2U7CisgICAgICAgIGlmICgqYnVmZmVyID09ICc6JykgeworICAgICAgICAgICAg
YnVmZmVyLmFkdmFuY2UoKTsKKyAgICAgICAgICAgIHNwbGl0dGVkQnlDb2xvbiA9IHRydWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpbnQ2NF90IG1pbnV0ZSA9IDA7CisgICAgICAgIGlmIChidWZm
ZXIubGVuZ3RoUmVtYWluaW5nKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgYXV0byBmaXJzdE1pbnV0ZUNoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAg
IGlmIChmaXJzdE1pbnV0ZUNoYXJhY3RlciA+PSAnMCcgJiYgZmlyc3RNaW51dGVDaGFyYWN0ZXIg
PD0gJzUnKSB7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAgYXV0
byBzZWNvbmRNaW51dGVDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICAgICAgaWYgKCFpc0FT
Q0lJRGlnaXQoc2Vjb25kTWludXRlQ2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICAgICAgbWludXRlID0gKHNlY29uZE1pbnV0ZUNoYXJhY3Rl
ciAtICcwJykgKyAxMCAqIChmaXJzdE1pbnV0ZUNoYXJhY3RlciAtICcwJyk7CisgICAgICAgICAg
ICBBU1NFUlQobWludXRlIDwgNjApOworICAgICAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
IGlmIChidWZmZXIuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiAobnNQZXJIb3VyICogaG91
ciArIG5zUGVyTWludXRlICogbWludXRlKSAqIGZhY3RvcjsKKworICAgICAgICBBU1NFUlQoYnVm
ZmVyLmhhc0NoYXJhY3RlcnNSZW1haW5pbmcoKSk7CisgICAgICAgIGlmIChzcGxpdHRlZEJ5Q29s
b24pIHsKKyAgICAgICAgICAgIGlmICgqYnVmZmVyID09ICc6JykKKyAgICAgICAgICAgICAgICBi
dWZmZXIuYWR2YW5jZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQ2NF90IHNlY29uZCA9IDA7
CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoUmVtYWluaW5nKCkgPCAyKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBmaXJzdFNlY29uZENoYXJhY3RlciA9
ICpidWZmZXI7CisgICAgICAgIGlmIChmaXJzdFNlY29uZENoYXJhY3RlciA+PSAnMCcgJiYgZmly
c3RTZWNvbmRDaGFyYWN0ZXIgPD0gJzUnKSB7CisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgp
OworICAgICAgICAgICAgYXV0byBzZWNvbmRTZWNvbmRDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAg
ICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoc2Vjb25kU2Vjb25kQ2hhcmFjdGVyKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgc2Vjb25kID0gKHNl
Y29uZFNlY29uZENoYXJhY3RlciAtICcwJykgKyAxMCAqIChmaXJzdFNlY29uZENoYXJhY3RlciAt
ICcwJyk7CisgICAgICAgICAgICBBU1NFUlQobWludXRlIDwgNjApOworICAgICAgICAgICAgYnVm
ZmVyLmFkdmFuY2UoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIGlmIChidWZmZXIuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVy
biAobnNQZXJIb3VyICogaG91ciArIG5zUGVyTWludXRlICogbWludXRlICsgbnNQZXJTZWNvbmQg
KiBzZWNvbmQpICogZmFjdG9yOworCisgICAgICAgIEFTU0VSVChidWZmZXIuaGFzQ2hhcmFjdGVy
c1JlbWFpbmluZygpKTsKKyAgICAgICAgaWYgKCpidWZmZXIgIT0gJy4nICYmICpidWZmZXIgIT0g
JywnKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYnVmZmVyLmFk
dmFuY2UoKTsKKworICAgICAgICB1bnNpZ25lZCBkaWdpdHMgPSAwOworICAgICAgICB3aGlsZSAo
ZGlnaXRzIDwgYnVmZmVyLmxlbmd0aFJlbWFpbmluZygpICYmIGlzQVNDSUlEaWdpdChidWZmZXJb
ZGlnaXRzXSkpCisgICAgICAgICAgICBkaWdpdHMrKzsKKyAgICAgICAgaWYgKCFkaWdpdHMgfHwg
ZGlnaXRzID4gOSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
VmVjdG9yPExDaGFyLCA5PiBwYWRkZWQoOSwgJzAnKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGRpZ2l0czsgKytpKQorICAgICAgICAgICAgcGFkZGVkW2ldID0gYnVmZmVyW2ld
OworICAgICAgICBidWZmZXIuYWR2YW5jZUJ5KGRpZ2l0cyk7CisgICAgICAgIGlmICghYnVmZmVy
LmF0RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIGlu
dDY0X3QgbWlsbGlzZWNvbmQgPSBwYXJzZURlY2ltYWxJbnQzMihwYWRkZWQuZGF0YSgpLCAzKTsK
KyAgICAgICAgaW50NjRfdCBtaWNyb3NlY29uZCA9IHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5k
YXRhKCkgKyAzLCAzKTsKKyAgICAgICAgaW50NjRfdCBuYW5vc2Vjb25kID0gcGFyc2VEZWNpbWFs
SW50MzIocGFkZGVkLmRhdGEoKSArIDYsIDMpOworCisgICAgICAgIHJldHVybiAobnNQZXJIb3Vy
ICogaG91ciArIG5zUGVyTWludXRlICogbWludXRlICsgbnNQZXJTZWNvbmQgKiBzZWNvbmQgKyBu
c1Blck1pbGxpc2Vjb25kICogbWlsbGlzZWNvbmQgKyBuc1Blck1pY3Jvc2Vjb25kICogbWljcm9z
ZWNvbmQgKyBuYW5vc2Vjb25kKSAqIGZhY3RvcjsKKyAgICB9KTsKK30KKworLy8gaHR0cHM6Ly90
YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtZm9ybWF0dGltZXpvbmVvZmZz
ZXRzdHJpbmcKK1N0cmluZyBmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmluZyhpbnQ2NF90IG9mZnNl
dCkKK3sKKyAgICBib29sIG5lZ2F0aXZlID0gZmFsc2U7CisgICAgaWYgKG9mZnNldCA8IDApIHsK
KyAgICAgICAgbmVnYXRpdmUgPSB0cnVlOworICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OyAvLyBU
aGlzIGlzIE9LIHNpbmNlIG9mZnNldCByYW5nZSBpcyBtdWNoIG5hcnJvd2VyIHRoYW4gW0lOVDY0
X01JTiwgSU5UNjRfTUFYXSByYW5nZS4KKyAgICB9CisgICAgaW50NjRfdCBuYW5vc2Vjb25kcyA9
IG9mZnNldCAlIG5zUGVyU2Vjb25kOworICAgIGludDY0X3Qgc2Vjb25kcyA9IChvZmZzZXQgLyBu
c1BlclNlY29uZCkgJSA2MDsKKyAgICBpbnQ2NF90IG1pbnV0ZXMgPSAob2Zmc2V0IC8gbnNQZXJN
aW51dGUpICUgNjA7CisgICAgaW50NjRfdCBob3VycyA9IG9mZnNldCAvIG5zUGVySG91cjsKKwor
ICAgIGlmIChuYW5vc2Vjb25kcykgeworICAgICAgICAvLyBTaW5jZSBuc1BlclNlY29uZCBpcyAx
MDAwMDAwMDAwLCBzdHJpbmdpZmllZCBuYW5vc2Vjb25kcyB0YWtlcyBhdCBtb3N0IDkgY2hhcmFj
dGVycyAoOTk5OTk5OTk5KS4KKyAgICAgICAgYXV0byBmcmFjdGlvbiA9IFdURjo6bnVtYmVyVG9T
dHJpbmdVbnNpZ25lZDxWZWN0b3I8TENoYXIsIDk+PihuYW5vc2Vjb25kcyk7CisgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gMDsKKyAgICAgICAgdW5zaWduZWQgcGFkZGluZ0xlbmd0aCA9IDkgLSBm
cmFjdGlvbi5zaXplKCk7CisgICAgICAgIGZvciAoOyBpbmRleCA8IGZyYWN0aW9uLnNpemUoKTsg
KytpbmRleCkgeworICAgICAgICAgICAgaWYgKGZyYWN0aW9uW2luZGV4XSA9PSAnMCcpCisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZnJhY3Rpb24ucmVzaXplKGlu
ZGV4KTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBh
ZCgnMCcsIDIsIGhvdXJzKSwgJzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSwgJzonLCBwYWQoJzAn
LCAyLCBzZWNvbmRzKSwgJy4nLCBwYWQoJzAnLCBwYWRkaW5nTGVuZ3RoLCBlbXB0eVN0cmluZygp
KSwgZnJhY3Rpb24pOworICAgIH0KKyAgICBpZiAoc2Vjb25kcykKKyAgICAgICAgcmV0dXJuIG1h
a2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJzKSwgJzonLCBw
YWQoJzAnLCAyLCBtaW51dGVzKSwgJzonLCBwYWQoJzAnLCAyLCBzZWNvbmRzKSk7CisgICAgcmV0
dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJzKSwg
JzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElTTzg2MDEK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSVNPODYwMS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5o
CmluZGV4IGU1N2MxY2E1MmI0N2Y0N2E5M2Q0N2ZiMGE0N2I5YjViZmNjYjYwODUuLjY3Njg5ZDFj
MjQ1YWZlZTJhYzI2OTU5YzI5NzBkZDQ5NjNhZTMwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JU084NjAxLmgKQEAgLTQ5LDYgKzQ5LDggQEAgc3RydWN0IER1cmF0aW9uIHsKIH07
CiAKIHN0ZDo6b3B0aW9uYWw8RHVyYXRpb24+IHBhcnNlRHVyYXRpb24oU3RyaW5nVmlldyk7Citz
dGQ6Om9wdGlvbmFsPGludDY0X3Q+IHBhcnNlVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0KFN0cmlu
Z1ZpZXcpOworU3RyaW5nIGZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKGludDY0X3QpOwogCiB9
IC8vIG5hbWVzcGFjZSBJU084NjAxCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggZjc0ZTU3MTE3NzJjNGQxYmQ5
YTRkN2JlOWQ5MjI3NjFiNmRiY2JjNC4uOGQ4ZTk2ZTc3NTVkNThhYjg0MmUzNjBjZmFmYjE5ZDAw
ZmUyNjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAKQEAgLTE3NzAsNjMgKzE3NzAsNzkgQEAgc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZU51bWJl
cmluZ1N5c3RlbXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3Qs
IFdURk1vdmUoZWxlbWVudHMpKSk7CiB9CiAKLS8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1p
bnRsLWVudW1lcmF0aW9uLyNzZWMtY2Fub25pY2FsaXpldGltZXpvbmVuYW1lCi1zdGF0aWMgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1lWm9u
ZShjb25zdCBTdHJpbmcmIHRpbWVab25lTmFtZSkKK3N0YXRpYyBib29sIGlzVmFsaWRUaW1lWm9u
ZU5hbWVGcm9tSUNVVGltZVpvbmUoU3RyaW5nVmlldyB0aW1lWm9uZU5hbWUpCiB7CiAgICAgLy8g
U29tZSB0aW1lIHpvbmUgbmFtZXMgYXJlIGluY2x1ZGVkIGluIElDVSwgYnV0IHRoZXkgYXJlIG5v
dCBpbmNsdWRlZCBpbiB0aGUgSUFOQSBUaW1lIFpvbmUgRGF0YWJhc2UuCiAgICAgLy8gV2UgbmVl
ZCB0byBmaWx0ZXIgdGhlbSBvdXQuCiAgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJT
eXN0ZW1WLyIpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJFdGMvIikpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBpc1VUQ0VxdWl2YWxlbnQodGlt
ZVpvbmVOYW1lKTsKICAgICAvLyBJQU5BIHRpbWUgem9uZSBuYW1lcyBpbmNsdWRlICcvJy4gU29t
ZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5nLCBidXQgaXQgaXMgaW4gYmFja3dhcmQgbGlua3Mu
CiAgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJlc29sdmVkIHRoZXNlIGJhY2t3YXJkIGxpbmtzLgog
ICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRhaW5zKCcvJykpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB0aW1lWm9uZU5hbWUgPT0gIlVUQyJfcyB8fCB0aW1l
Wm9uZU5hbWUgPT0gIkdNVCJfczsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIHJldHVybiB0
aW1lWm9uZU5hbWU7CisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlv
bi8jc2VjLWNhbm9uaWNhbGl6ZXRpbWV6b25lbmFtZQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUoU3RyaW5nJiYgdGlt
ZVpvbmVOYW1lKQoreworICAgIGlmIChpc1VUQ0VxdWl2YWxlbnQodGltZVpvbmVOYW1lKSkKKyAg
ICAgICAgcmV0dXJuICJVVEMiX3M7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZN
b3ZlKHRpbWVab25lTmFtZSkpOwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50
bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZXRpbWV6b25lcwotc3RhdGljIEpTQXJyYXkqIGF2
YWlsYWJsZVRpbWVab25lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorY29uc3QgVmVj
dG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKQogewotICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0KLSAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBhdXRvIGVu
dW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51
bV9jbG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9D
QU5PTklDQUwsIG51bGxwdHIsIG51bGxwdHIsICZzdGF0dXMpKTsKLSAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgfQotCi0gICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1l
cmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
fQorICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGF2YWlsYWJs
ZVRpbWVab25lczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9uY2U7Cisg
ICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU9uY2UsIFsmXSB7CisgICAgICAgIFZlY3RvcjxT
dHJpbmc+IHRlbXBvcmFyeTsKKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJS
T1I7CisgICAgICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0
aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0
aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0YXR1cykp
OworICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKHN0YXR1cykpOwogCi0gICAgVmVjdG9yPFN0cmlu
ZywgMT4gZWxlbWVudHM7Ci0gICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3Vu
dCk7Ci0gICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkg
ewotICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHBvaW50
ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKLSAg
ICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGlt
ZXpvbmVzIl9zKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGludDMyX3QgY291
bnQgPSB1ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgICAgIEFT
U0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CisgICAgICAgIHRlbXBvcmFyeS5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGNvdW50KTsKKyAgICAgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXgg
PCBjb3VudDsgKytpbmRleCkgeworICAgICAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAg
ICAgICAgICAgY29uc3QgY2hhciogcG9pbnRlciA9IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0
KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhzdGF0
dXMpKTsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lWm9uZShwb2ludGVyLCBsZW5ndGgpOworICAg
ICAgICAgICAgaWYgKGlzVmFsaWRUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUodGltZVpvbmUp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gY2Fub25pY2FsaXplVGltZVpv
bmVOYW1lRnJvbUlDVVRpbWVab25lKFdURk1vdmUodGltZVpvbmUpKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVtcG9yYXJ5LmFwcGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0
aCk7Ci0gICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZy
b21JQ1VUaW1lWm9uZSh0aW1lWm9uZSkpCi0gICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RG
TW92ZShtYXBwZWQudmFsdWUoKSkpOwotICAgIH0KIAotICAgIC8vIDQuIFNvcnQgcmVzdWx0IGlu
IG9yZGVyIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQg
dXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZu
LgotICAgIHN0ZDo6c29ydChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKLSAgICAg
ICAgW10oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKLSAgICAgICAgICAgIHJl
dHVybiBXVEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwotICAgICAgICB9KTsKKyAgICAg
ICAgLy8gVGhlIEF2YWlsYWJsZVRpbWVab25lcyBhYnN0cmFjdCBvcGVyYXRpb24gcmV0dXJucyBh
IExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUKKyAgICAgICAgLy8gdmFs
dWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5nIHVu
ZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICAgICAgc3RkOjpzb3J0KHRlbXBvcmFyeS5iZWdpbigp
LCB0ZW1wb3JhcnkuZW5kKCksCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0
IFN0cmluZyYgYikgeworICAgICAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENvbXBh
cmUoYSwgYikgPCAwOworICAgICAgICAgICAgfSk7CisgICAgICAgIGF1dG8gZW5kID0gc3RkOjp1
bmlxdWUodGVtcG9yYXJ5LmJlZ2luKCksIHRlbXBvcmFyeS5lbmQoKSk7CisgICAgICAgIGF2YWls
YWJsZVRpbWVab25lcy5jb25zdHJ1Y3QoKTsKKyAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVzLT5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KGVuZCAtIHRlbXBvcmFyeS5iZWdpbigpKTsKIAotICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKGdsb2Jh
bE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpKTsKKyAgICAgICAgYXV0byBjcmVhdGVJbW1vcnRh
bFRocmVhZFNhZmVTdHJpbmcgPSBbJl0oU3RyaW5nJiYgc3RyaW5nKSB7CisgICAgICAgICAgICBp
ZiAoc3RyaW5nLmlzOEJpdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpj
cmVhdGVTdGF0aWNTdHJpbmdJbXBsKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3Ro
KCkpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZVN0YXRpY1N0cmluZ0lt
cGwoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICB9Owor
ICAgICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgPSB0ZW1wb3JhcnkuYmVnaW4oKTsgaXRlcmF0b3Ig
IT0gZW5kOyArK2l0ZXJhdG9yKQorICAgICAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVzLT51bmNo
ZWNrZWRBcHBlbmQoY3JlYXRlSW1tb3J0YWxUaHJlYWRTYWZlU3RyaW5nKFdURk1vdmUoKml0ZXJh
dG9yKSkpOworICAgIH0pOworICAgIHJldHVybiBhdmFpbGFibGVUaW1lWm9uZXM7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
dGltZXpvbmVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1Zl
Y3RvcihnbG9iYWxPYmplY3QsIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKSk7CiB9CiAKIC8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldW5p
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCBmMjEz
N2RlMzVlOTNhNTFlNWM4NTUyZGE2YWRmODliNDU5ZDUwOTdiLi45NmQyMTg1NWM5Y2E2ZjNlMzE5
NmI3NGVhMDJkMGVkNTNkMzljMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5oCkBAIC0xMTQsNiArMTE0LDkgQEAgaW5saW5lIENhbGVuZGFySUQgaXNvODYw
MUNhbGVuZGFySUQoKQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAordXNpbmcgVGltZVpvbmVJRCA9
IHVuc2lnbmVkOworY29uc3QgVmVjdG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1lWm9uZXMo
KTsKKwogVHJpU3RhdGUgaW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCogb3B0aW9ucywgUHJvcGVydHlOYW1lKTsKIFN0cmluZyBpbnRsU3RyaW5nT3B0aW9uKEpTR2xv
YmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgc3RkOjppbml0aWFs
aXplcl9saXN0PGNvbnN0IGNoYXIqPiB2YWx1ZXMsIGNvbnN0IGNoYXIqIG5vdEZvdW5kLCBjb25z
dCBjaGFyKiBmYWxsYmFjayk7CiB1bnNpZ25lZCBpbnRsTnVtYmVyT3B0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgbWluaW11bSwg
dW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQgZmFsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDZiMmY0NjE4ZGExNzM4
YTI4YzA2M2M2ZWVhNjJmNjg2OGM3NGJkZjYuLmY3YzE5ZWM0ODU0YTJhNzdiMjdiMjQ3NDA3Yzk0
MjdjNGI3MmQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTIwNiw2ICsyMDYsOSBAQAogI2luY2x1ZGUgIlRlbXBvcmFsRHVy
YXRpb24uaCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiVGVtcG9yYWxPYmplY3QuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lLmgiCisjaW5j
bHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlZNVHJhcHNJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiV2FzbUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIldlYWtNYXBDb25zdHJ1Y3Rvci5oIgpA
QCAtMTIzMCw2ICsxMjMzLDEzIEBAIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yKiBsb3dlck5h
bWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0YWxOYW1lCiAgICAgICAgICAg
ICAgICAgaW5pdC5zZXQoVGVtcG9yYWxEdXJhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0s
IGdsb2JhbE9iamVjdCwgZHVyYXRpb25Qcm90b3R5cGUpKTsKICAgICAgICAgICAgIH0pOwogCisg
ICAgICAgIG1fdGltZVpvbmVTdHJ1Y3R1cmUuaW5pdExhdGVyKAorICAgICAgICAgICAgW10gKGNv
bnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4mIGluaXQpIHsKKyAgICAgICAgICAgICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5v
d25lcik7CisgICAgICAgICAgICAgICAgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSogdGltZVpv
bmVQcm90b3R5cGUgPSBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwg
Z2xvYmFsT2JqZWN0LCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
aW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7
CisgICAgICAgICAgICAgICAgaW5pdC5zZXQoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlU3RydWN0
dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwgdGltZVpvbmVQcm90b3R5cGUpKTsKKyAgICAgICAg
ICAgIH0pOworCiAgICAgICAgIFRlbXBvcmFsT2JqZWN0KiB0ZW1wb3JhbCA9IFRlbXBvcmFsT2Jq
ZWN0OjpjcmVhdGUodm0sIFRlbXBvcmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMp
KTsKICAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPlRlbXBvcmFsLCB0ZW1wb3JhbCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIH0KQEAgLTIxMTAsNiArMjEyMCw3IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlz
aXRvcikKIAogICAgIHRoaXNPYmplY3QtPm1fY2FsZW5kYXJTdHJ1Y3R1cmUudmlzaXQodmlzaXRv
cik7CiAgICAgdGhpc09iamVjdC0+bV9kdXJhdGlvblN0cnVjdHVyZS52aXNpdCh2aXNpdG9yKTsK
KyAgICB0aGlzT2JqZWN0LT5tX3RpbWVab25lU3RydWN0dXJlLnZpc2l0KHZpc2l0b3IpOwogCiAg
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9udWxsR2V0dGVyRnVuY3Rpb24pOwogICAg
IHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fbnVsbFNldHRlckZ1bmN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGQ0ZGUz
MGI2MTM2ZTljYzkzMTg0MjA3NDI0ZTQ3YWYyYTExNWU5OTEuLmRlYjMzZGJkMTAzMDgzYTE4ZjQw
YmE3YWRjNTY5NTI2MDE0OTdkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzI2LDYgKzMyNiw3IEBAIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgTGF6eVByb3Bl
cnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsZW5kYXJTdHJ1Y3R1cmU7CiAgICAg
TGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fZHVyYXRpb25TdHJ1Y3R1
cmU7CisgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fdGltZVpv
bmVTdHJ1Y3R1cmU7CiAKICAgICBXcml0ZUJhcnJpZXI8TnVsbEdldHRlckZ1bmN0aW9uPiBtX251
bGxHZXR0ZXJGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8TnVsbFNldHRlckZ1bmN0aW9uPiBt
X251bGxTZXR0ZXJGdW5jdGlvbjsKQEAgLTg3NSw2ICs4NzYsNyBAQCBjbGFzcyBKU0dsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIFN0cnVjdHVy
ZSogY2FsZW5kYXJTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2NhbGVuZGFyU3RydWN0dXJlLmdldCh0
aGlzKTsgfQogICAgIFN0cnVjdHVyZSogZHVyYXRpb25TdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2R1
cmF0aW9uU3RydWN0dXJlLmdldCh0aGlzKTsgfQorICAgIFN0cnVjdHVyZSogdGltZVpvbmVTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX3RpbWVab25lU3RydWN0dXJlLmdldCh0aGlzKTsgfQogCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRSZW1vdGVEZWJ1Z2dpbmdFbmFibGVkKGJvb2wpOwog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgcmVtb3RlRGVidWdnaW5nRW5hYmxlZCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwCmluZGV4
IDI0YjkyZTgxNjI3MTc5YmYxZjI0OGMzODBhYzRiNjQzNDEyYWNhOWYuLmUzOTUxMDE1Zjg0MWJm
NWM0YWU1Yzg4Nzk4NGNhNWE3NWJhMWY2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UZW1wb3JhbE5vdy5jcHAKQEAgLTI0LDEyICsyNCwyNyBAQAogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
T2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFRl
bXBvcmFsTm93KTsKIAotY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsTm93OjpzX2luZm8gPSB7ICJU
ZW1wb3JhbC5Ob3ciLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKFRlbXBvcmFsTm93KSB9Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUpOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2lu
Y2x1ZGUgIlRlbXBvcmFsTm93Lmx1dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworLyogU291cmNl
IGZvciBUZW1wb3JhbE5vdy5sdXQuaAorQGJlZ2luIHRlbXBvcmFsTm93VGFibGUKKyAgICB0aW1l
Wm9uZSAgICAgICAgdGVtcG9yYWxOb3dGdW5jVGltZVpvbmUgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDAKK0BlbmQKKyovCisKK2NvbnN0IENsYXNzSW5mbyBUZW1wb3JhbE5vdzo6c19pbmZvID0geyAi
VGVtcG9yYWwuTm93IiwgJkJhc2U6OnNfaW5mbywgJnRlbXBvcmFsTm93VGFibGUsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoVGVtcG9yYWxOb3cpIH07CiAKIFRlbXBvcmFsTm93OjpUZW1w
b3JhbE5vdyhWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQpAQCAtNTUsNCArNzAsMTcgQEAgdm9pZCBUZW1wb3JhbE5vdzo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwog
fQogCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC5u
b3cudGltZXpvbmUKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRl
bXBvcmFsLXN5c3RlbXRpbWV6b25lCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxO
b3dGdW5jVGltZVpvbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBTdHJpbmcgdGlt
ZVpvbmVTdHJpbmcgPSB2bS5kYXRlQ2FjaGUuZGVmYXVsdFRpbWVab25lKCk7CisgICAgc3RkOjpv
cHRpb25hbDxUaW1lWm9uZUlEPiBpZGVudGlmaWVyID0gVGVtcG9yYWxUaW1lWm9uZTo6aXNWYWxp
ZFRpbWVab25lTmFtZSh0aW1lWm9uZVN0cmluZyk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21V
VENPZmZzZXQodm0sIGdsb2JhbE9iamVjdC0+dGltZVpvbmVTdHJ1Y3R1cmUoKSwgMCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbUlEKHZt
LCBnbG9iYWxPYmplY3QtPnRpbWVab25lU3RydWN0dXJlKCksIGlkZW50aWZpZXIudmFsdWUoKSkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UZW1wb3JhbE5vdy5oCmluZGV4IDE1MWY2NjgxMjk3YjMyOGZhMGY5OWE4MDNiMjI1ZWFmMDli
NDM5ODUuLmMxYzg2YTM3MTY2YTBhMTMyYmI0OWU2MThhYThiMThkOWZjYjJkNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuaApAQCAtMjYsNiArMjYsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFRlbXBvcmFsTm93IGZpbmFsIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNl
KiBzdWJzcGFjZUZvcihWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UZW1wb3JhbE9iamVjdC5jcHAKaW5kZXggOTUzNTcxOWY3ZWMxYTBlOTY1NDE4YTU0YWQzNTBj
N2ViZTYxYzQ5OS4uZGY1MTRkNmRkYzE0NTk2ZGQyZjI1YzllMTExZThhN2NlYWRmYTIwYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcApA
QCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5o
IgogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJUZW1w
b3JhbE5vdy5oIgorI2luY2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTU5LDYgKzYxLDEzIEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUR1cmF0aW9uQ29uc3RydWN0
b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBUZW1wb3JhbER1cmF0aW9u
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3Rv
dHlwZSgpKSwganNDYXN0PFRlbXBvcmFsRHVyYXRpb25Qcm90b3R5cGUqPihnbG9iYWxPYmplY3Qt
PmR1cmF0aW9uU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CiB9CiAKK3N0
YXRpYyBKU1ZhbHVlIGNyZWF0ZVRpbWVab25lQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCog
b2JqZWN0KQoreworICAgIFRlbXBvcmFsT2JqZWN0KiB0ZW1wb3JhbE9iamVjdCA9IGpzQ2FzdDxU
ZW1wb3JhbE9iamVjdCo+KG9iamVjdCk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHRlbXBvcmFsT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pOworICAgIHJldHVybiBUZW1wb3Jh
bFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5j
dGlvblByb3RvdHlwZSgpKSwganNDYXN0PFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqPihnbG9i
YWxPYmplY3QtPnRpbWVab25lU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjaW5jbHVkZSAiVGVtcG9yYWxPYmplY3QubHV0
LmgiCkBAIC02OCw4ICs3Nyw5IEBAIG5hbWVzcGFjZSBKU0MgewogLyogU291cmNlIGZvciBUZW1w
b3JhbE9iamVjdC5sdXQuaAogQGJlZ2luIHRlbXBvcmFsT2JqZWN0VGFibGUKICAgQ2FsZW5kYXIg
ICAgICAgY3JlYXRlQ2FsZW5kYXJDb25zdHJ1Y3RvciAgICAgICBEb250RW51bXxQcm9wZXJ0eUNh
bGxiYWNrCi0gIE5vdyAgICAgICAgICAgIGNyZWF0ZU5vd09iamVjdCAgICAgICAgICAgICAgICAg
RG9udEVudW18UHJvcGVydHlDYWxsYmFjawogICBEdXJhdGlvbiAgICAgICBjcmVhdGVEdXJhdGlv
bkNvbnN0cnVjdG9yICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKKyAgTm93ICAgICAg
ICAgICAgY3JlYXRlTm93T2JqZWN0ICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNh
bGxiYWNrCisgIFRpbWVab25lICAgICAgIGNyZWF0ZVRpbWVab25lQ29uc3RydWN0b3IgICAgICAg
RG9udEVudW18UHJvcGVydHlDYWxsYmFjawogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzRl
ODViMjkxN2NhYWI5NTExNjNmNGRhMTk0NThmM2M1MGEwOTNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5jcHAKQEAgLTAs
MCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VGVtcG9yYWxUaW1lWm9uZS5oIgorCisjaW5jbHVkZSAiSVNPODYwMS5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmU6OnNfaW5mbyA9IHsgIk9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoVGVtcG9yYWxUaW1lWm9uZSkgfTsKKworbmFtZXNwYWNlIFRlbXBvcmFsVGltZVpvbmVJbnRl
cm5hbCB7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworfQorCitUZW1w
b3JhbFRpbWVab25lKiBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tSUQoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgVGltZVpvbmVJRCBpZGVudGlmaWVyKQoreworICAgIFRlbXBvcmFs
VGltZVpvbmUqIGZvcm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFsVGlt
ZVpvbmU+KHZtLmhlYXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBzdHJ1Y3R1cmUsIFRpbWVab25l
IHsgV1RGOjppbl9wbGFjZTwwPiwgaWRlbnRpZmllciB9KTsKKyAgICBmb3JtYXQtPmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICByZXR1cm4gZm9ybWF0OworfQorCitUZW1wb3JhbFRpbWVab25lKiBU
ZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDY0X3QgdXRjT2Zmc2V0KQoreworICAgIFRlbXBvcmFsVGltZVpvbmUqIGZv
cm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFsVGltZVpvbmU+KHZtLmhl
YXApKSBUZW1wb3JhbFRpbWVab25lKHZtLCBzdHJ1Y3R1cmUsIFRpbWVab25lIHsgV1RGOjppbl9w
bGFjZTwxPiwgdXRjT2Zmc2V0IH0pOworICAgIGZvcm1hdC0+ZmluaXNoQ3JlYXRpb24odm0pOwor
ICAgIHJldHVybiBmb3JtYXQ7Cit9CisKK1N0cnVjdHVyZSogVGVtcG9yYWxUaW1lWm9uZTo6Y3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworfQorCitUZW1wb3JhbFRpbWVab25lOjpUZW1wb3JhbFRpbWVab25lKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRpbWVab25lIHRpbWVab25lKQorICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlKQorICAgICwgbV90aW1lWm9uZSh0aW1lWm9uZSkKK3sKK30KKworLy8gaHR0cHM6
Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzdXAtaXN2YWxpZHRpbWV6b25lbmFtZQorc3Rk
OjpvcHRpb25hbDxUaW1lWm9uZUlEPiBUZW1wb3JhbFRpbWVab25lOjppc1ZhbGlkVGltZVpvbmVO
YW1lKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGNvbnN0IGF1dG8mIHRpbWVab25lcyA9IGlu
dGxBdmFpbGFibGVUaW1lWm9uZXMoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5k
ZXggPCB0aW1lWm9uZXMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKHRpbWVab25lc1tpbmRleF0sIHN0cmluZykpCisgICAgICAgICAgICByZXR1
cm4gaW5kZXg7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKy8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXBhcnNldGVtcG9yYWx0
aW1lWm9uZXN0cmluZworc3RhdGljIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gcGFyc2VUZW1wb3Jh
bFRpbWVab25lU3RyaW5nKFN0cmluZ1ZpZXcpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBw
YXJzaW5nIHRlbXBvcmFsIHRpbWVab25lIHN0cmluZywgd2hpY2ggcmVxdWlyZXMgZnVsbCBJU08g
ODYwMSBwYXJzZXIuCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworLy8gaHR0cHM6Ly90
YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwudGltZXpvbmUuZnJvbQorLy8g
aHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtdG90ZW1wb3Jh
bHRpbWV6b25lCitKU09iamVjdCogVGVtcG9yYWxUaW1lWm9uZTo6ZnJvbShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHRpbWVab25lTGlrZSkKK3sKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgaWYgKHRpbWVab25lTGlrZS5pc09iamVjdCgpKSB7CisgICAgICAgIEpTT2Jq
ZWN0KiB0aW1lWm9uZUxpa2VPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2Up
OworCisgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGltcGxlbWVudCBjb2RlIHJldHJpZXZp
bmcgVGltZVpvbmUgZnJvbSBUZW1wb3JhbCBEYXRlIExpa2Ugb2JqZWN0cy4gQnV0CisgICAgICAg
IC8vIGN1cnJlbnRseSB0aGV5IGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0LgorCisgICAgICAgIGJv
b2wgaGFzUHJvcGVydHkgPSB0aW1lWm9uZUxpa2VPYmplY3QtPmhhc1Byb3BlcnR5KGdsb2JhbE9i
amVjdCwgdm0ucHJvcGVydHlOYW1lcy0+dGltZVpvbmUpOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICBpZiAoIWhhc1Byb3BlcnR5KQorICAgICAgICAg
ICAgcmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KHRpbWVab25lTGlrZSk7CisKKyAgICAgICAgdGlt
ZVpvbmVMaWtlID0gdGltZVpvbmVMaWtlT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9w
ZXJ0eU5hbWVzLT50aW1lWm9uZSk7CisgICAgICAgIGlmICh0aW1lWm9uZUxpa2UuaXNPYmplY3Qo
KSkgeworICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGpzQ2FzdDxKU09iamVjdCo+KHRp
bWVab25lTGlrZSktPmhhc1Byb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+
dGltZVpvbmUpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICAgICAgICAgIGlmICghaGFzUHJvcGVydHkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpz
Q2FzdDxKU09iamVjdCo+KHRpbWVab25lTGlrZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBh
dXRvIHRpbWVab25lU3RyaW5nID0gdGltZVpvbmVMaWtlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8aW50NjRfdD4gdXRjT2Zmc2V0ID0gSVNPODYwMTo6cGFyc2VUaW1lWm9uZU51bWVyaWNV
VENPZmZzZXQodGltZVpvbmVTdHJpbmcpOworICAgIGlmICh1dGNPZmZzZXQpCisgICAgICAgIHJl
dHVybiBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KHZtLCBnbG9iYWxPYmpl
Y3QtPnRpbWVab25lU3RydWN0dXJlKCksIHV0Y09mZnNldC52YWx1ZSgpKTsKKworICAgIHN0ZDo6
b3B0aW9uYWw8VGltZVpvbmVJRD4gaWRlbnRpZmllciA9IGlzVmFsaWRUaW1lWm9uZU5hbWUodGlt
ZVpvbmVTdHJpbmcpOworICAgIGlmIChpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gVGVtcG9y
YWxUaW1lWm9uZTo6Y3JlYXRlRnJvbUlEKHZtLCBnbG9iYWxPYmplY3QtPnRpbWVab25lU3RydWN0
dXJlKCksIGlkZW50aWZpZXIudmFsdWUoKSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+
IHV0Y09mZnNldEZyb21JbnN0YW50ID0gcGFyc2VUZW1wb3JhbFRpbWVab25lU3RyaW5nKHRpbWVa
b25lU3RyaW5nKTsKKyAgICBpZiAodXRjT2Zmc2V0RnJvbUluc3RhbnQpCisgICAgICAgIHJldHVy
biBUZW1wb3JhbFRpbWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KHZtLCBnbG9iYWxPYmplY3Qt
PnRpbWVab25lU3RydWN0dXJlKCksIHV0Y09mZnNldEZyb21JbnN0YW50LnZhbHVlKCkpOworCisg
ICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJhcmd1bWVudCBuZWVkcyB0
byBiZSBVVEMgb2Zmc2V0IHN0cmluZywgVGltZVpvbmUgaWRlbnRpZmllciwgb3IgdGVtcG9yYWwg
SW5zdGFudCBzdHJpbmciX3MpOworICAgIHJldHVybiB7IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxU
aW1lWm9uZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9u
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3N2QxODhjMmVhN2U3M2YwY2M1ZmVmNjA2ZDVhMjllOGZiNzA2ZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3Jh
bFRpbWVab25lLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiSW50bE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFRlbXBvcmFsVGlt
ZVpvbmUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdXNp
bmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxs
VHlwZSwgU3Vic3BhY2VBY2Nlc3MgbW9kZT4KKyAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9yKFZNJiB2bSkKKyAgICB7CisgICAgICAgIHJldHVybiB2bS50ZW1wb3JhbFRpbWVab25l
U3BhY2U8bW9kZT4oKTsKKyAgICB9CisKKyAgICBzdGF0aWMgVGVtcG9yYWxUaW1lWm9uZSogY3Jl
YXRlRnJvbUlEKFZNJiwgU3RydWN0dXJlKiwgVGltZVpvbmVJRCk7CisgICAgc3RhdGljIFRlbXBv
cmFsVGltZVpvbmUqIGNyZWF0ZUZyb21VVENPZmZzZXQoVk0mLCBTdHJ1Y3R1cmUqLCBpbnQ2NF90
KTsKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9i
amVjdCosIEpTVmFsdWUpOworCisgICAgREVDTEFSRV9JTkZPOworCisgICAgdXNpbmcgVGltZVpv
bmUgPSBWYXJpYW50PFRpbWVab25lSUQsIGludDY0X3Q+OworICAgIFRpbWVab25lIHRpbWVab25l
KCkgY29uc3QgeyByZXR1cm4gbV90aW1lWm9uZTsgfQorCisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8VGltZVpvbmVJRD4gaXNWYWxpZFRpbWVab25lTmFtZShTdHJpbmdWaWV3KTsKKworICAgIHN0
YXRpYyBKU09iamVjdCogZnJvbShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOworCitwcml2YXRl
OgorICAgIFRlbXBvcmFsVGltZVpvbmUoVk0mLCBTdHJ1Y3R1cmUqLCBUaW1lWm9uZSk7CisKKyAg
ICAvLyBUaW1lWm9uZUlEIG9yIFVUQyBvZmZzZXQuCisgICAgVGltZVpvbmUgbV90aW1lWm9uZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2JmMTZiZjdjNzQ1MjU1ZWRhNzg4NjhmZTU3NDI2ZjgwNzczZDQxMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgiCisKKyNp
bmNsdWRlICJJU084NjAxLmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIlRl
bXBvcmFsVGltZVpvbmUuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvckZ1bmNGcm9tKTsKKworfQor
CisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmx1dC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmdGVtcG9y
YWxUaW1lWm9uZUNvbnN0cnVjdG9yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKSB9OworCisvKiBTb3VyY2UgZm9yIFRlbXBvcmFs
VGltZVpvbmVDb25zdHJ1Y3Rvci5sdXQuaAorQGJlZ2luIHRlbXBvcmFsVGltZVpvbmVDb25zdHJ1
Y3RvclRhYmxlCisgICAgZnJvbSAgICAgICAgICAgICB0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3JGdW5jRnJvbSAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCitAZW5kCisqLworCitU
ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IqIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRlbXBvcmFsVGltZVpvbmVQcm90
b3R5cGUqIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUpCit7CisgICAgVGVtcG9yYWxUaW1lWm9u
ZUNvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRl
bXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIFRlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvcih2bSwgc3RydWN0dXJlKTsKKyAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24o
dm0sIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUpOworICAgIHJldHVybiBjb25zdHJ1Y3RvcjsK
K30KKworU3RydWN0dXJlKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7Cit9CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxUZW1w
b3JhbFRpbWVab25lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dFRlbXBvcmFsVGltZVpvbmUpOworCitUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OlRlbXBv
cmFsVGltZVpvbmVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsVGVtcG9yYWxUaW1lWm9uZSwg
Y29uc3RydWN0VGVtcG9yYWxUaW1lWm9uZSkKK3sKK30KKwordm9pZCBUZW1wb3JhbFRpbWVab25l
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgVGVtcG9yYWxUaW1lWm9uZVByb3Rv
dHlwZSogdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSwgMCwgIlRpbWVab25lIl9zLCBQcm9wZXJ0eUFkZGl0aW9uTW9kZTo6V2l0aG91dFN0
cnVjdHVyZVRyYW5zaXRpb24pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdFRlbXBvcmFsVGltZVpvbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwor
ICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgp
KTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUo
dm0sIHRpbWVab25lU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGF1dG8gdGltZVpv
bmVTdHJpbmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8aW50NjRfdD4gdXRjT2Zmc2V0ID0gSVNPODYwMTo6cGFyc2VUaW1lWm9uZU51bWVyaWNV
VENPZmZzZXQodGltZVpvbmVTdHJpbmcpOworICAgIGlmICh1dGNPZmZzZXQpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNl
dCh2bSwgc3RydWN0dXJlLCB1dGNPZmZzZXQudmFsdWUoKSkpOworCisgICAgc3RkOjpvcHRpb25h
bDxUaW1lWm9uZUlEPiBpZGVudGlmaWVyID0gVGVtcG9yYWxUaW1lWm9uZTo6aXNWYWxpZFRpbWVa
b25lTmFtZSh0aW1lWm9uZVN0cmluZyk7CisgICAgaWYgKCFpZGVudGlmaWVyKSB7CisgICAgICAg
IHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiYXJndW1lbnQgbmVlZHMgdG8g
YmUgVVRDIG9mZnNldCBzdHJpbmcgb3IgVGltZVpvbmUgaWRlbnRpZmllciJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxU
aW1lWm9uZTo6Y3JlYXRlRnJvbUlEKHZtLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIudmFsdWUoKSkp
OworfQorCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRlbXBvcmFsVGltZVpvbmUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKK3sKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fu
bm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUaW1l
Wm9uZSIpKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHRlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3RvckZ1bmNGcm9tLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxU
aW1lWm9uZTo6ZnJvbShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
MTE0YTBhNzIxMTk4YWFlY2FiZWM4OGJiOGI2NzllZmNiMDZhY2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3IuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBUZW1w
b3JhbFRpbWVab25lUHJvdG90eXBlOworCitjbGFzcyBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CitwdWJsaWM6CisgICAgdXNpbmcg
QmFzZSA9IEludGVybmFsRnVuY3Rpb247CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZTsKKworICAgIHN0YXRpYyBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IqIGNyZWF0ZShW
TSYsIFN0cnVjdHVyZSosIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqKTsKKyAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUp
OworCisgICAgREVDTEFSRV9JTkZPOworCitwcml2YXRlOgorICAgIFRlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKik7Cit9OworU1RBVElDX0FTU0VSVF9JU09fU1VC
U1BBQ0VfU0hBUkFCTEUoVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0
aW9uKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllYTI1ZGJkOWZlNjA5ODk2OWRkODA3NjM5ZTU2MjA1MjYzODBhY2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgiCisKKyNpbmNsdWRl
ICJCdWlsdGluTmFtZXMuaCIKKyNpbmNsdWRlICJJU084NjAxLmgiCisjaW5jbHVkZSAiSW50bE9i
amVjdC5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVa
b25lLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlRnVuY1RvU3RyaW5nKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVGdW5jVG9KU09O
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHRlbXBvcmFsVGltZVpvbmVQcm90
b3R5cGVHZXR0ZXJJZCk7CisKK30KKworI2luY2x1ZGUgIlRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGUubHV0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25zdCBDbGFzc0luZm8gVGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVtcG9yYWwuVGltZVpvbmUiLCAmQmFzZTo6
c19pbmZvLCAmdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUpIH07CisKKy8qIFNvdXJjZSBm
b3IgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5sdXQuaAorQGJlZ2luIHRlbXBvcmFsVGltZVpv
bmVQcm90b3R5cGVUYWJsZQorICAgIHRvU3RyaW5nICAgICAgICB0ZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlRnVuY1RvU3RyaW5nICAgICBEb250RW51bXxGdW5jdGlvbiAwCisgICAgdG9KU09OICAg
ICAgICAgIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVGdW5jVG9KU09OICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDAKKyAgICBpZCAgICAgICAgICAgICAgdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlw
ZUdldHRlcklkICAgICAgICAgUmVhZE9ubHl8RG9udEVudW18Q3VzdG9tQWNjZXNzb3IKK0BlbmQK
KyovCisKK1RlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQoreworICAgIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUqIG9iamVjdCA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU+KHZt
LmhlYXApKSBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOworICAgIG9i
amVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIG9iamVj
dDsKK30KKworU3RydWN0dXJlKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKK3sKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
Cit9CisKK1RlbXBvcmFsVGltZVpvbmVQcm90b3R5cGU6OlRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKK3sKK30KKwordm9pZCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICBKU0NfVE9fU1RSSU5H
X1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bv
c2FsLXRlbXBvcmFsLyNzZWMtZ2V0LXRlbXBvcmFsLnRpbWV6b25lLnByb3RvdHlwZS5pZAorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVHZXR0ZXJJZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpLnRvU3RyaW5nKGdsb2JhbE9iamVjdCkpOworfQorCisvLyBodHRwczov
L3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC50aW1lem9uZS5wcm90b3R5
cGUudG9zdHJpbmcKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0ZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBhdXRvKiB0aW1l
Wm9uZSA9IGpzRHluYW1pY0Nhc3Q8VGVtcG9yYWxUaW1lWm9uZSo+KHZtLCBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpKTsKKyAgICBpZiAoIXRpbWVab25lKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVGVtcG9yYWwuVGltZVpvbmUucHJvdG90eXBl
LnRvU3RyaW5nIGNhbGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGEgVGltZVpvbmUiX3MpOworCisg
ICAgYXV0byB2YXJpYW50ID0gdGltZVpvbmUtPnRpbWVab25lKCk7CisgICAgYXV0byBzdHJpbmcg
PSBXVEY6OnN3aXRjaE9uKHZhcmlhbnQsCisgICAgICAgIFtdKFRpbWVab25lSUQgaWRlbnRpZmll
cikgLT4gU3RyaW5nIHsKKyAgICAgICAgICAgIHJldHVybiBpbnRsQXZhaWxhYmxlVGltZVpvbmVz
KClbaWRlbnRpZmllcl07CisgICAgICAgIH0sCisgICAgICAgIFtdKGludDY0X3Qgb2Zmc2V0KSAt
PiBTdHJpbmcgeworICAgICAgICAgICAgcmV0dXJuIElTTzg2MDE6OmZvcm1hdFRpbWVab25lT2Zm
c2V0U3RyaW5nKG9mZnNldCk7CisgICAgICAgIH0pOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNTdHJpbmcodm0sIFdURk1vdmUoc3RyaW5nKSkpOworfQorCisvLyBodHRwczovL3RjMzku
ZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC50aW1lem9uZS5wcm90b3R5cGUudG9q
c29uCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1
bmNUb0pTT04sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpLnRvU3RyaW5nKGdsb2JhbE9iamVjdCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpv
bmVQcm90b3R5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTM1MGNlNjAyZDY1NTBhMWY3ZmU4N2I1Zjk4YTIz
YjIxOWRjMjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitjbGFzcyBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2Jq
ZWN0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CisgICAgc3RhdGljIElzb1N1YnNw
YWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAgeworICAgICAgICBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLCBCYXNlKTsKKyAg
ICAgICAgcmV0dXJuICZ2bS5wbGFpbk9iamVjdFNwYWNlOworICAgIH0KKworICAgIHN0YXRpYyBU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSopOworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpT
R2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisKKyAgICBERUNMQVJFX0lORk87CisKK3ByaXZhdGU6
CisgICAgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOworICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggM2JmNjkxNDgz
M2JkMDQ2M2NjMjlmMDczNTM4NWU4YjJhODZlMzRiMy4uMDJmMTg5N2IwZjM5MTg1NjBiNTA1MzE5
ZDZlNDYxYmRiNWQ3MTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAt
MTY0LDYgKzE2NCw3IEBACiAjaW5jbHVkZSAiU3ltYm9sT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGVt
cG9yYWxDYWxlbmRhci5oIgogI2luY2x1ZGUgIlRlbXBvcmFsRHVyYXRpb24uaCIKKyNpbmNsdWRl
ICJUZW1wb3JhbFRpbWVab25lLmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5j
bHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyLmgiCkBAIC0x
NTg3LDYgKzE1ODgsNyBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
c3ltYm9sU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cAogRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJvbE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxU
eXBlLmdldCgpLCBTeW1ib2xPYmplY3QpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSX1NMT1codGVtcGxhdGVPYmplY3REZXNjcmlwdG9yU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yKQogRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHRlbXBvcmFsQ2FsZW5kYXJTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgVGVtcG9yYWxDYWxlbmRhcikKK0RZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbFRpbWVab25lU3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIFRlbXBvcmFsVGltZVpvbmUpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1codWludDhBcnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBK
U1VpbnQ4QXJyYXkpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codWlu
dDhDbGFtcGVkQXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50OENsYW1w
ZWRBcnJheSkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh1aW50MTZB
cnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1VpbnQxNkFycmF5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggNmIzYTBlZmQ0NTdmMjE4NjJhMGJhZmM1YWI3ZDFm
ZmViOGVmNjg1My4uMWU3MjVjZTM3NDg3M2UwMDdkMWIwM2Y1NDk1NmM1MDIzMDRjNmIzNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0xOTUsNiArMTk1LDcgQEAgY2xhc3MgVW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3MgVmlydHVhbFJlZ2lzdGVyOwogY2xh
c3MgVk1FbnRyeVNjb3BlOwogY2xhc3MgVGVtcG9yYWxDYWxlbmRhcjsKK2NsYXNzIFRlbXBvcmFs
VGltZVpvbmU7CiBjbGFzcyBUb3BMZXZlbEdsb2JhbE9iamVjdFNjb3BlOwogY2xhc3MgVHlwZVBy
b2ZpbGVyOwogY2xhc3MgVHlwZVByb2ZpbGVyTG9nOwpAQCAtNTk0LDYgKzU5NSw3IEBAIGNsYXNz
IFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtl
ZExpc3ROb2RlPFZNPiB7CiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihz
eW1ib2xPYmplY3RTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
KHRlbXBsYXRlT2JqZWN0RGVzY3JpcHRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVIodGVtcG9yYWxDYWxlbmRhclNwYWNlKQorICAgIERZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVIodGVtcG9yYWxUaW1lWm9uZVNwYWNlKQogICAgIERZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIodWludDhBcnJheVNwYWNlKQogICAgIERZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIodWludDhDbGFtcGVkQXJyYXlTcGFjZSkKICAgICBE
WU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHVpbnQxNkFycmF5U3BhY2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCmluZGV4IDAz
ZjU4NjFjMzNjYmUyZjM5ZDVjMTAzYzhhOTIwZTQxYmQwMWZlZjcuLjIwZWU1MGFlMDY4YmU0YTZm
ZWQ5YzMzZThiOWQyZWFhZGQ2N2M5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
SW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCkBAIC0xMjcsNiArMTI3LDEzIEBAIGNvbnN0ZXhwciB1
bnNpZ25lZCBsZW5ndGhPZkludGVnZXJBc1N0cmluZyhJbnRlZ2VyVHlwZSBpbnRlZ2VyKQogICAg
ICAgICByZXR1cm4gbGVuZ3RoT2ZJbnRlZ2VyQXNTdHJpbmdJbXBsPEludGVnZXJUeXBlLCBQb3Np
dGl2ZU51bWJlcj4oaW50ZWdlcik7CiB9CiAKK3RlbXBsYXRlPHNpemVfdCBOPgorc3RydWN0IElu
dGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxWZWN0b3I8TENoYXIsIE4+PiB7CisgICAgdXNp
bmcgUmV0dXJuVHlwZSA9IFZlY3RvcjxMQ2hhciwgTj47CisgICAgdXNpbmcgQWRkaXRpb25hbEFy
Z3VtZW50VHlwZSA9IHZvaWQ7CisgICAgc3RhdGljIFJldHVyblR5cGUgZmx1c2goTENoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgdm9pZCopIHsgcmV0dXJuIHsgY2hhcmFjdGVycywg
bGVuZ3RoIH07IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6Omxlbmd0
aE9mSW50ZWdlckFzU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5o
CmluZGV4IDJkODU5YjQ1MDAxNDg2NzViM2YxN2UxZjQ4YjdlZTQwMWNhMmNmMjUuLjRlNmNjMzRm
YTEzYTdiZGQxOWU3ODU4MTMyZDkzNTAxMTlhY2U0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlLmgKQEAgLTE1MCwyNCArMTUwLDI4IEBAIHRlbXBsYXRlPD4gY2xhc3Mg
U3RyaW5nVHlwZUFkYXB0ZXI8QVNDSUlMaXRlcmFsLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBl
QWRhcHRlCiAgICAgfQogfTsKIAotdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxW
ZWN0b3I8Y2hhcj4sIHZvaWQ+IHsKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlLCBzaXplX3Qg
Tj4KK2NsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFZlY3RvcjxDaGFyVHlwZSwgTj4sIHZvaWQ+IHsK
IHB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBWZWN0b3I8Y2hhcj4mIHZlY3Rv
cikKKyAgICB1c2luZyBDaGFyVHlwZUZvclN0cmluZyA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxzaXpl
b2YoQ2hhclR5cGUpID09IHNpemVvZihMQ2hhciksIExDaGFyLCBVQ2hhcj47CisgICAgc3RhdGlj
X2Fzc2VydChzaXplb2YoQ2hhclR5cGVGb3JTdHJpbmcpID09IHNpemVvZihDaGFyVHlwZSkpOwor
CisgICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgVmVjdG9yPENoYXJUeXBlLCBOPiYgdmVjdG9y
KQogICAgICAgICA6IG1fdmVjdG9yIHsgdmVjdG9yIH0KICAgICB7CiAgICAgfQogCiAgICAgc2l6
ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdmVjdG9yLnNpemUoKTsgfQotICAgIGJvb2wg
aXM4Qml0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3Qg
eyByZXR1cm4gc2l6ZW9mKENoYXJUeXBlKSA9PSAxOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBj
b25zdCB7IFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uLCBjaGFyYWN0ZXJz
KCksIGxlbmd0aCgpKTsgfQogCiBwcml2YXRlOgotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJz
KCkgY29uc3QKKyAgICBjb25zdCBDaGFyVHlwZUZvclN0cmluZyogY2hhcmFjdGVycygpIGNvbnN0
CiAgICAgewotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KG1f
dmVjdG9yLmRhdGEoKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IENo
YXJUeXBlRm9yU3RyaW5nKj4obV92ZWN0b3IuZGF0YSgpKTsKICAgICB9CiAKLSAgICBjb25zdCBW
ZWN0b3I8Y2hhcj4mIG1fdmVjdG9yOworICAgIGNvbnN0IFZlY3RvcjxDaGFyVHlwZSwgTj4mIG1f
dmVjdG9yOwogfTsKIAogdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJ
bXBsKiwgdm9pZD4gewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCBlYTVkZDBhYjMxNGE3YjQxMWZmMjM4MDhhNTlhNzZjZmE1Mzc3YTM1Li5j
MjFiMjUwOWZmMGJhNTM5MTBiZGNjYmRmM2UyMDk1YjU5ZDA3NWM3IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDIxLTA5LTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0pTQ10gSW1wbGVtZW50IFRlbXBvcmFsLlRpbWVab25lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3MDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbXBsZXgueWFtbDoKKyAgICAgICAgKiBjb21w
bGV4L3RlbXBvcmFsLW5vdy10aW1lem9uZS1jaGVjay5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgICogY29tcGxleC90ZW1wb3JhbC1ub3ctdGltZXpvbmUtd2l0aC1icm9r
ZW4tdHouanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9p
bnRsLWVudW1lcmF0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy90ZW1wb3JhbC10aW1lem9uZS5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6Cisg
ICAgICAgIChsZXQudGV4dC5vZi5mYWlsdXJlcy5zaG91bGRUaHJvdyk6CisgICAgICAgIChyZXZp
dmVyKToKKwogMjAyMS0wOC0zMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgW0pTQ10gSW1wbGVtZW50IFRlbXBvcmFsLkR1cmF0aW9uCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL2NvbXBsZXgueWFtbCBiL0pTVGVzdHMvY29tcGxleC55YW1sCmluZGV4IGI5
OTdkYjQ1OGFjMjYyMzczN2Y4MGM2M2VmZWI5OTJhNmE3MTJmYTcuLjgxZmY1ZTZhZjU2NmM5YTgy
N2MxM2FlYTMyYmE0NTYwOGE2NjI5OWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvY29tcGxleC55YW1s
CisrKyBiL0pTVGVzdHMvY29tcGxleC55YW1sCkBAIC00NiwzICs0Niw5IEBACiAKIC0gcGF0aDog
Y29tcGxleC9pbnRsLXRpbWV6b25lLWNoZWNrLmpzCiAgIGNtZDogcnVuQ29tcGxleFRlc3QgW10s
IFtdLCAiVFo9QW1lcmljYS9Mb3NfQW5nZWxlcyIsICItLXVzZURvbGxhclZNPTEiCisKKy0gcGF0
aDogY29tcGxleC90ZW1wb3JhbC1ub3ctdGltZXpvbmUtY2hlY2suanMKKyAgY21kOiBydW5Db21w
bGV4VGVzdCBbXSwgW10sICJUWj1BbWVyaWNhL0xvc19BbmdlbGVzIiwgIi0tdXNlRG9sbGFyVk09
MSIsICItLXVzZVRlbXBvcmFsPTEiCisKKy0gcGF0aDogY29tcGxleC90ZW1wb3JhbC1ub3ctdGlt
ZXpvbmUtd2l0aC1icm9rZW4tdHouanMKKyAgY21kOiBydW5Db21wbGV4VGVzdCBbXSwgW10sICJU
Wj1VTkRFRklORUQiLCAiLS11c2VEb2xsYXJWTT0xIiwgIi0tdXNlVGVtcG9yYWw9MSIKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvY29tcGxleC90ZW1wb3JhbC1ub3ctdGltZXpvbmUtY2hlY2suanMgYi9K
U1Rlc3RzL2NvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLWNoZWNrLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQxNzQwYzI5ZjAyOTZkOWJlY2U5N2QzYTU1YmI1YzRkNGM4NWIzNGQKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL2NvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLWNoZWNrLmpzCkBAIC0w
LDAgKzEsNiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKFRlbXBvcmFsLk5vdy50aW1lWm9uZSgpLmlk
LCBgQW1lcmljYS9Mb3NfQW5nZWxlc2ApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9jb21wbGV4L3Rl
bXBvcmFsLW5vdy10aW1lem9uZS13aXRoLWJyb2tlbi10ei5qcyBiL0pTVGVzdHMvY29tcGxleC90
ZW1wb3JhbC1ub3ctdGltZXpvbmUtd2l0aC1icm9rZW4tdHouanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4ZDMw
ZDc3NTk3NTRjZjVjZDAwOWMzNmExZDMxNTZlNGRhODgxMgotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvY29tcGxleC90ZW1wb3JhbC1ub3ctdGltZXpvbmUtd2l0aC1icm9rZW4tdHouanMKQEAg
LTAsMCArMSw2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworc2hvdWxkQmUoVGVtcG9yYWwuTm93LnRpbWVab25lKCku
aWQsIGBVVENgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24u
anMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzCmluZGV4IDNjZTIwNTQxMzU2
ZGNjZTU2YzdmZjVlM2I2YzQzNWY4YjIzODhlODkuLmQxMjUxZGM5NmYxY2IwZmRlZGE0MTI5MDU0
MDFiNWRiNDZlMjlmZjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRp
b24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcwpAQCAtMjksNyAr
MjksNyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZEJl
KG51bWJlcmluZ1N5c3RlbXNTdHJpbmcgPT09IGBbImFkbG0iLCJhaG9tIiwiYXJhYiIsImFyYWJl
eHQiLCJhcm1uIiwiYXJtbmxvdyIsImJhbGkiLCJiZW5nIiwiYmhrcyIsImJyYWgiLCJjYWttIiwi
Y2hhbSIsImN5cmwiLCJkZXZhIiwiZGlhayIsImV0aGkiLCJmdWxsd2lkZSIsImdlb3IiLCJnb25n
IiwiZ29ubSIsImdyZWsiLCJncmVrbG93IiwiZ3VqciIsImd1cnUiLCJoYW5pZGF5cyIsImhhbmlk
ZWMiLCJoYW5zIiwiaGFuc2ZpbiIsImhhbnQiLCJoYW50ZmluIiwiaGViciIsImhtbmciLCJobW5w
IiwiamF2YSIsImpwYW4iLCJqcGFuZmluIiwianBhbnllYXIiLCJrYWxpIiwia2htciIsImtuZGEi
LCJsYW5hIiwibGFuYXRoYW0iLCJsYW9vIiwibGF0biIsImxlcGMiLCJsaW1iIiwibWF0aGJvbGQi
LCJtYXRoZGJsIiwibWF0aG1vbm8iLCJtYXRoc2FuYiIsIm1hdGhzYW5zIiwibWx5bSIsIm1vZGki
LCJtb25nIiwibXJvbyIsIm10ZWkiLCJteW1yIiwibXltcnNoYW4iLCJteW1ydGxuZyIsIm5ld2Ei
LCJua29vIiwib2xjayIsIm9yeWEiLCJvc21hIiwicm9oZyIsInJvbWFuIiwicm9tYW5sb3ciLCJz
YXVyIiwic2VnbWVudCIsInNocmQiLCJzaW5kIiwic2luaCIsInNvcmEiLCJzdW5kIiwidGFrciIs
InRhbHUiLCJ0YW1sIiwidGFtbGRlYyIsInRlbHUiLCJ0aGFpIiwidGlidCIsInRpcmgiLCJ2YWlp
Iiwid2FyYSIsIndjaG8iXWAgfHwgbnVtYmVyaW5nU3lzdGVtc1N0cmluZyA9PT0gYFsiYWRsbSIs
ImFob20iLCJhcmFiIiwiYXJhYmV4dCIsImFybW4iLCJhcm1ubG93IiwiYmFsaSIsImJlbmciLCJi
aGtzIiwiYnJhaCIsImNha20iLCJjaGFtIiwiY3lybCIsImRldmEiLCJldGhpIiwiZnVsbHdpZGUi
LCJnZW9yIiwiZ29uZyIsImdvbm0iLCJncmVrIiwiZ3Jla2xvdyIsImd1anIiLCJndXJ1IiwiaGFu
aWRheXMiLCJoYW5pZGVjIiwiaGFucyIsImhhbnNmaW4iLCJoYW50IiwiaGFudGZpbiIsImhlYnIi
LCJobW5nIiwiaG1ucCIsImphdmEiLCJqcGFuIiwianBhbmZpbiIsImpwYW55ZWFyIiwia2FsaSIs
ImtobXIiLCJrbmRhIiwibGFuYSIsImxhbmF0aGFtIiwibGFvbyIsImxhdG4iLCJsZXBjIiwibGlt
YiIsIm1hdGhib2xkIiwibWF0aGRibCIsIm1hdGhtb25vIiwibWF0aHNhbmIiLCJtYXRoc2FucyIs
Im1seW0iLCJtb2RpIiwibW9uZyIsIm1yb28iLCJtdGVpIiwibXltciIsIm15bXJzaGFuIiwibXlt
cnRsbmciLCJuZXdhIiwibmtvbyIsIm9sY2siLCJvcnlhIiwib3NtYSIsInJvaGciLCJyb21hbiIs
InJvbWFubG93Iiwic2F1ciIsInNocmQiLCJzaW5kIiwic2luaCIsInNvcmEiLCJzdW5kIiwidGFr
ciIsInRhbHUiLCJ0YW1sIiwidGFtbGRlYyIsInRlbHUiLCJ0aGFpIiwidGlidCIsInRpcmgiLCJ2
YWlpIiwid2FyYSIsIndjaG8iXWAsIHRydWUpOwogCiBsZXQgdGltZVpvbmVzID0gSW50bC5zdXBw
b3J0ZWRWYWx1ZXNPZigidGltZVpvbmUiKTsKLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KHRpbWVa
b25lcyksIGBbIkFmcmljYS9BYmlkamFuIiwiQWZyaWNhL0FjY3JhIiwiQWZyaWNhL0FkZGlzX0Fi
YWJhIiwiQWZyaWNhL0FsZ2llcnMiLCJBZnJpY2EvQXNtZXJhIiwiQWZyaWNhL0JhbWFrbyIsIkFm
cmljYS9CYW5ndWkiLCJBZnJpY2EvQmFuanVsIiwiQWZyaWNhL0Jpc3NhdSIsIkFmcmljYS9CbGFu
dHlyZSIsIkFmcmljYS9CcmF6emF2aWxsZSIsIkFmcmljYS9CdWp1bWJ1cmEiLCJBZnJpY2EvQ2Fp
cm8iLCJBZnJpY2EvQ2FzYWJsYW5jYSIsIkFmcmljYS9DZXV0YSIsIkFmcmljYS9Db25ha3J5Iiwi
QWZyaWNhL0Rha2FyIiwiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLCJBZnJpY2EvRGppYm91dGkiLCJB
ZnJpY2EvRG91YWxhIiwiQWZyaWNhL0VsX0FhaXVuIiwiQWZyaWNhL0ZyZWV0b3duIiwiQWZyaWNh
L0dhYm9yb25lIiwiQWZyaWNhL0hhcmFyZSIsIkFmcmljYS9Kb2hhbm5lc2J1cmciLCJBZnJpY2Ev
SnViYSIsIkFmcmljYS9LYW1wYWxhIiwiQWZyaWNhL0toYXJ0b3VtIiwiQWZyaWNhL0tpZ2FsaSIs
IkFmcmljYS9LaW5zaGFzYSIsIkFmcmljYS9MYWdvcyIsIkFmcmljYS9MaWJyZXZpbGxlIiwiQWZy
aWNhL0xvbWUiLCJBZnJpY2EvTHVhbmRhIiwiQWZyaWNhL0x1YnVtYmFzaGkiLCJBZnJpY2EvTHVz
YWthIiwiQWZyaWNhL01hbGFibyIsIkFmcmljYS9NYXB1dG8iLCJBZnJpY2EvTWFzZXJ1IiwiQWZy
aWNhL01iYWJhbmUiLCJBZnJpY2EvTW9nYWRpc2h1IiwiQWZyaWNhL01vbnJvdmlhIiwiQWZyaWNh
L05haXJvYmkiLCJBZnJpY2EvTmRqYW1lbmEiLCJBZnJpY2EvTmlhbWV5IiwiQWZyaWNhL05vdWFr
Y2hvdHQiLCJBZnJpY2EvT3VhZ2Fkb3Vnb3UiLCJBZnJpY2EvUG9ydG8tTm92byIsIkFmcmljYS9T
YW9fVG9tZSIsIkFmcmljYS9Ucmlwb2xpIiwiQWZyaWNhL1R1bmlzIiwiQWZyaWNhL1dpbmRob2Vr
IiwiQW1lcmljYS9BZGFrIiwiQW1lcmljYS9BbmNob3JhZ2UiLCJBbWVyaWNhL0FuZ3VpbGxhIiwi
QW1lcmljYS9BbnRpZ3VhIiwiQW1lcmljYS9BcmFndWFpbmEiLCJBbWVyaWNhL0FyZ2VudGluYS9M
YV9SaW9qYSIsIkFtZXJpY2EvQXJnZW50aW5hL1Jpb19HYWxsZWdvcyIsIkFtZXJpY2EvQXJnZW50
aW5hL1NhbHRhIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLCJBbWVyaWNhL0FyZ2VudGlu
YS9TYW5fTHVpcyIsIkFtZXJpY2EvQXJnZW50aW5hL1R1Y3VtYW4iLCJBbWVyaWNhL0FyZ2VudGlu
YS9Vc2h1YWlhIiwiQW1lcmljYS9BcnViYSIsIkFtZXJpY2EvQXN1bmNpb24iLCJBbWVyaWNhL0Jh
aGlhIiwiQW1lcmljYS9CYWhpYV9CYW5kZXJhcyIsIkFtZXJpY2EvQmFyYmFkb3MiLCJBbWVyaWNh
L0JlbGVtIiwiQW1lcmljYS9CZWxpemUiLCJBbWVyaWNhL0JsYW5jLVNhYmxvbiIsIkFtZXJpY2Ev
Qm9hX1Zpc3RhIiwiQW1lcmljYS9Cb2dvdGEiLCJBbWVyaWNhL0JvaXNlIiwiQW1lcmljYS9CdWVu
b3NfQWlyZXMiLCJBbWVyaWNhL0NhbWJyaWRnZV9CYXkiLCJBbWVyaWNhL0NhbXBvX0dyYW5kZSIs
IkFtZXJpY2EvQ2FuY3VuIiwiQW1lcmljYS9DYXJhY2FzIiwiQW1lcmljYS9DYXRhbWFyY2EiLCJB
bWVyaWNhL0NheWVubmUiLCJBbWVyaWNhL0NheW1hbiIsIkFtZXJpY2EvQ2hpY2FnbyIsIkFtZXJp
Y2EvQ2hpaHVhaHVhIiwiQW1lcmljYS9Db3JhbF9IYXJib3VyIiwiQW1lcmljYS9Db3Jkb2JhIiwi
QW1lcmljYS9Db3N0YV9SaWNhIiwiQW1lcmljYS9DcmVzdG9uIiwiQW1lcmljYS9DdWlhYmEiLCJB
bWVyaWNhL0N1cmFjYW8iLCJBbWVyaWNhL0Rhbm1hcmtzaGF2biIsIkFtZXJpY2EvRGF3c29uIiwi
QW1lcmljYS9EYXdzb25fQ3JlZWsiLCJBbWVyaWNhL0RlbnZlciIsIkFtZXJpY2EvRGV0cm9pdCIs
IkFtZXJpY2EvRG9taW5pY2EiLCJBbWVyaWNhL0VkbW9udG9uIiwiQW1lcmljYS9FaXJ1bmVwZSIs
IkFtZXJpY2EvRWxfU2FsdmFkb3IiLCJBbWVyaWNhL0ZvcnRfTmVsc29uIiwiQW1lcmljYS9Gb3J0
YWxlemEiLCJBbWVyaWNhL0dsYWNlX0JheSIsIkFtZXJpY2EvR29kdGhhYiIsIkFtZXJpY2EvR29v
c2VfQmF5IiwiQW1lcmljYS9HcmFuZF9UdXJrIiwiQW1lcmljYS9HcmVuYWRhIiwiQW1lcmljYS9H
dWFkZWxvdXBlIiwiQW1lcmljYS9HdWF0ZW1hbGEiLCJBbWVyaWNhL0d1YXlhcXVpbCIsIkFtZXJp
Y2EvR3V5YW5hIiwiQW1lcmljYS9IYWxpZmF4IiwiQW1lcmljYS9IYXZhbmEiLCJBbWVyaWNhL0hl
cm1vc2lsbG8iLCJBbWVyaWNhL0luZGlhbmEvS25veCIsIkFtZXJpY2EvSW5kaWFuYS9NYXJlbmdv
IiwiQW1lcmljYS9JbmRpYW5hL1BldGVyc2J1cmciLCJBbWVyaWNhL0luZGlhbmEvVGVsbF9DaXR5
IiwiQW1lcmljYS9JbmRpYW5hL1ZldmF5IiwiQW1lcmljYS9JbmRpYW5hL1ZpbmNlbm5lcyIsIkFt
ZXJpY2EvSW5kaWFuYS9XaW5hbWFjIiwiQW1lcmljYS9JbmRpYW5hcG9saXMiLCJBbWVyaWNhL0lu
dXZpayIsIkFtZXJpY2EvSXFhbHVpdCIsIkFtZXJpY2EvSmFtYWljYSIsIkFtZXJpY2EvSnVqdXki
LCJBbWVyaWNhL0p1bmVhdSIsIkFtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsIkFtZXJpY2Ev
S3JhbGVuZGlqayIsIkFtZXJpY2EvTGFfUGF6IiwiQW1lcmljYS9MaW1hIiwiQW1lcmljYS9Mb3Nf
QW5nZWxlcyIsIkFtZXJpY2EvTG91aXN2aWxsZSIsIkFtZXJpY2EvTG93ZXJfUHJpbmNlcyIsIkFt
ZXJpY2EvTWFjZWlvIiwiQW1lcmljYS9NYW5hZ3VhIiwiQW1lcmljYS9NYW5hdXMiLCJBbWVyaWNh
L01hcmlnb3QiLCJBbWVyaWNhL01hcnRpbmlxdWUiLCJBbWVyaWNhL01hdGFtb3JvcyIsIkFtZXJp
Y2EvTWF6YXRsYW4iLCJBbWVyaWNhL01lbmRvemEiLCJBbWVyaWNhL01lbm9taW5lZSIsIkFtZXJp
Y2EvTWVyaWRhIiwiQW1lcmljYS9NZXRsYWthdGxhIiwiQW1lcmljYS9NZXhpY29fQ2l0eSIsIkFt
ZXJpY2EvTWlxdWVsb24iLCJBbWVyaWNhL01vbmN0b24iLCJBbWVyaWNhL01vbnRlcnJleSIsIkFt
ZXJpY2EvTW9udGV2aWRlbyIsIkFtZXJpY2EvTW9udHJlYWwiLCJBbWVyaWNhL01vbnRzZXJyYXQi
LCJBbWVyaWNhL05hc3NhdSIsIkFtZXJpY2EvTmV3X1lvcmsiLCJBbWVyaWNhL05pcGlnb24iLCJB
bWVyaWNhL05vbWUiLCJBbWVyaWNhL05vcm9uaGEiLCJBbWVyaWNhL05vcnRoX0Rha290YS9CZXVs
YWgiLCJBbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLCJBbWVyaWNhL05vcnRoX0Rha290YS9O
ZXdfU2FsZW0iLCJBbWVyaWNhL09qaW5hZ2EiLCJBbWVyaWNhL1BhbmFtYSIsIkFtZXJpY2EvUGFu
Z25pcnR1bmciLCJBbWVyaWNhL1BhcmFtYXJpYm8iLCJBbWVyaWNhL1Bob2VuaXgiLCJBbWVyaWNh
L1BvcnQtYXUtUHJpbmNlIiwiQW1lcmljYS9Qb3J0X29mX1NwYWluIiwiQW1lcmljYS9Qb3J0b19W
ZWxobyIsIkFtZXJpY2EvUHVlcnRvX1JpY28iLCJBbWVyaWNhL1B1bnRhX0FyZW5hcyIsIkFtZXJp
Y2EvUmFpbnlfUml2ZXIiLCJBbWVyaWNhL1Jhbmtpbl9JbmxldCIsIkFtZXJpY2EvUmVjaWZlIiwi
QW1lcmljYS9SZWdpbmEiLCJBbWVyaWNhL1Jlc29sdXRlIiwiQW1lcmljYS9SaW9fQnJhbmNvIiwi
QW1lcmljYS9TYW50YV9Jc2FiZWwiLCJBbWVyaWNhL1NhbnRhcmVtIiwiQW1lcmljYS9TYW50aWFn
byIsIkFtZXJpY2EvU2FudG9fRG9taW5nbyIsIkFtZXJpY2EvU2FvX1BhdWxvIiwiQW1lcmljYS9T
Y29yZXNieXN1bmQiLCJBbWVyaWNhL1NpdGthIiwiQW1lcmljYS9TdF9CYXJ0aGVsZW15IiwiQW1l
cmljYS9TdF9Kb2hucyIsIkFtZXJpY2EvU3RfS2l0dHMiLCJBbWVyaWNhL1N0X0x1Y2lhIiwiQW1l
cmljYS9TdF9UaG9tYXMiLCJBbWVyaWNhL1N0X1ZpbmNlbnQiLCJBbWVyaWNhL1N3aWZ0X0N1cnJl
bnQiLCJBbWVyaWNhL1RlZ3VjaWdhbHBhIiwiQW1lcmljYS9UaHVsZSIsIkFtZXJpY2EvVGh1bmRl
cl9CYXkiLCJBbWVyaWNhL1RpanVhbmEiLCJBbWVyaWNhL1Rvcm9udG8iLCJBbWVyaWNhL1RvcnRv
bGEiLCJBbWVyaWNhL1ZhbmNvdXZlciIsIkFtZXJpY2EvV2hpdGVob3JzZSIsIkFtZXJpY2EvV2lu
bmlwZWciLCJBbWVyaWNhL1lha3V0YXQiLCJBbWVyaWNhL1llbGxvd2tuaWZlIiwiQW50YXJjdGlj
YS9DYXNleSIsIkFudGFyY3RpY2EvRGF2aXMiLCJBbnRhcmN0aWNhL0R1bW9udERVcnZpbGxlIiwi
QW50YXJjdGljYS9NYWNxdWFyaWUiLCJBbnRhcmN0aWNhL01hd3NvbiIsIkFudGFyY3RpY2EvTWNN
dXJkbyIsIkFudGFyY3RpY2EvUGFsbWVyIiwiQW50YXJjdGljYS9Sb3RoZXJhIiwiQW50YXJjdGlj
YS9TeW93YSIsIkFudGFyY3RpY2EvVHJvbGwiLCJBbnRhcmN0aWNhL1Zvc3RvayIsIkFyY3RpYy9M
b25neWVhcmJ5ZW4iLCJBc2lhL0FkZW4iLCJBc2lhL0FsbWF0eSIsIkFzaWEvQW1tYW4iLCJBc2lh
L0FuYWR5ciIsIkFzaWEvQXF0YXUiLCJBc2lhL0FxdG9iZSIsIkFzaWEvQXNoZ2FiYXQiLCJBc2lh
L0F0eXJhdSIsIkFzaWEvQmFnaGRhZCIsIkFzaWEvQmFocmFpbiIsIkFzaWEvQmFrdSIsIkFzaWEv
QmFuZ2tvayIsIkFzaWEvQmFybmF1bCIsIkFzaWEvQmVpcnV0IiwiQXNpYS9CaXNoa2VrIiwiQXNp
YS9CcnVuZWkiLCJBc2lhL0NhbGN1dHRhIiwiQXNpYS9DaGl0YSIsIkFzaWEvQ2hvaWJhbHNhbiIs
IkFzaWEvQ29sb21ibyIsIkFzaWEvRGFtYXNjdXMiLCJBc2lhL0RoYWthIiwiQXNpYS9EaWxpIiwi
QXNpYS9EdWJhaSIsIkFzaWEvRHVzaGFuYmUiLCJBc2lhL0ZhbWFndXN0YSIsIkFzaWEvR2F6YSIs
IkFzaWEvSGVicm9uIiwiQXNpYS9Ib25nX0tvbmciLCJBc2lhL0hvdmQiLCJBc2lhL0lya3V0c2si
LCJBc2lhL0pha2FydGEiLCJBc2lhL0pheWFwdXJhIiwiQXNpYS9KZXJ1c2FsZW0iLCJBc2lhL0th
YnVsIiwiQXNpYS9LYW1jaGF0a2EiLCJBc2lhL0thcmFjaGkiLCJBc2lhL0thdG1hbmR1IiwiQXNp
YS9LaGFuZHlnYSIsIkFzaWEvS3Jhc25veWFyc2siLCJBc2lhL0t1YWxhX0x1bXB1ciIsIkFzaWEv
S3VjaGluZyIsIkFzaWEvS3V3YWl0IiwiQXNpYS9NYWNhdSIsIkFzaWEvTWFnYWRhbiIsIkFzaWEv
TWFrYXNzYXIiLCJBc2lhL01hbmlsYSIsIkFzaWEvTXVzY2F0IiwiQXNpYS9OaWNvc2lhIiwiQXNp
YS9Ob3Zva3V6bmV0c2siLCJBc2lhL05vdm9zaWJpcnNrIiwiQXNpYS9PbXNrIiwiQXNpYS9PcmFs
IiwiQXNpYS9QaG5vbV9QZW5oIiwiQXNpYS9Qb250aWFuYWsiLCJBc2lhL1B5b25neWFuZyIsIkFz
aWEvUWF0YXIiLCJBc2lhL1Fvc3RhbmF5IiwiQXNpYS9ReXp5bG9yZGEiLCJBc2lhL1Jhbmdvb24i
LCJBc2lhL1JpeWFkaCIsIkFzaWEvU2FpZ29uIiwiQXNpYS9TYWtoYWxpbiIsIkFzaWEvU2FtYXJr
YW5kIiwiQXNpYS9TZW91bCIsIkFzaWEvU2hhbmdoYWkiLCJBc2lhL1NpbmdhcG9yZSIsIkFzaWEv
U3JlZG5la29seW1zayIsIkFzaWEvVGFpcGVpIiwiQXNpYS9UYXNoa2VudCIsIkFzaWEvVGJpbGlz
aSIsIkFzaWEvVGVocmFuIiwiQXNpYS9UaGltcGh1IiwiQXNpYS9Ub2t5byIsIkFzaWEvVG9tc2si
LCJBc2lhL1VsYWFuYmFhdGFyIiwiQXNpYS9VcnVtcWkiLCJBc2lhL1VzdC1OZXJhIiwiQXNpYS9W
aWVudGlhbmUiLCJBc2lhL1ZsYWRpdm9zdG9rIiwiQXNpYS9ZYWt1dHNrIiwiQXNpYS9ZZWthdGVy
aW5idXJnIiwiQXNpYS9ZZXJldmFuIiwiQXRsYW50aWMvQXpvcmVzIiwiQXRsYW50aWMvQmVybXVk
YSIsIkF0bGFudGljL0NhbmFyeSIsIkF0bGFudGljL0NhcGVfVmVyZGUiLCJBdGxhbnRpYy9GYWVy
b2UiLCJBdGxhbnRpYy9NYWRlaXJhIiwiQXRsYW50aWMvUmV5a2phdmlrIiwiQXRsYW50aWMvU291
dGhfR2VvcmdpYSIsIkF0bGFudGljL1N0X0hlbGVuYSIsIkF0bGFudGljL1N0YW5sZXkiLCJBdXN0
cmFsaWEvQWRlbGFpZGUiLCJBdXN0cmFsaWEvQnJpc2JhbmUiLCJBdXN0cmFsaWEvQnJva2VuX0hp
bGwiLCJBdXN0cmFsaWEvQ3VycmllIiwiQXVzdHJhbGlhL0RhcndpbiIsIkF1c3RyYWxpYS9FdWNs
YSIsIkF1c3RyYWxpYS9Ib2JhcnQiLCJBdXN0cmFsaWEvTGluZGVtYW4iLCJBdXN0cmFsaWEvTG9y
ZF9Ib3dlIiwiQXVzdHJhbGlhL01lbGJvdXJuZSIsIkF1c3RyYWxpYS9QZXJ0aCIsIkF1c3RyYWxp
YS9TeWRuZXkiLCJFdXJvcGUvQW1zdGVyZGFtIiwiRXVyb3BlL0FuZG9ycmEiLCJFdXJvcGUvQXN0
cmFraGFuIiwiRXVyb3BlL0F0aGVucyIsIkV1cm9wZS9CZWxncmFkZSIsIkV1cm9wZS9CZXJsaW4i
LCJFdXJvcGUvQnJhdGlzbGF2YSIsIkV1cm9wZS9CcnVzc2VscyIsIkV1cm9wZS9CdWNoYXJlc3Qi
LCJFdXJvcGUvQnVkYXBlc3QiLCJFdXJvcGUvQnVzaW5nZW4iLCJFdXJvcGUvQ2hpc2luYXUiLCJF
dXJvcGUvQ29wZW5oYWdlbiIsIkV1cm9wZS9EdWJsaW4iLCJFdXJvcGUvR2licmFsdGFyIiwiRXVy
b3BlL0d1ZXJuc2V5IiwiRXVyb3BlL0hlbHNpbmtpIiwiRXVyb3BlL0lzbGVfb2ZfTWFuIiwiRXVy
b3BlL0lzdGFuYnVsIiwiRXVyb3BlL0plcnNleSIsIkV1cm9wZS9LYWxpbmluZ3JhZCIsIkV1cm9w
ZS9LaWV2IiwiRXVyb3BlL0tpcm92IiwiRXVyb3BlL0xpc2JvbiIsIkV1cm9wZS9ManVibGphbmEi
LCJFdXJvcGUvTG9uZG9uIiwiRXVyb3BlL0x1eGVtYm91cmciLCJFdXJvcGUvTWFkcmlkIiwiRXVy
b3BlL01hbHRhIiwiRXVyb3BlL01hcmllaGFtbiIsIkV1cm9wZS9NaW5zayIsIkV1cm9wZS9Nb25h
Y28iLCJFdXJvcGUvTW9zY293IiwiRXVyb3BlL09zbG8iLCJFdXJvcGUvUGFyaXMiLCJFdXJvcGUv
UG9kZ29yaWNhIiwiRXVyb3BlL1ByYWd1ZSIsIkV1cm9wZS9SaWdhIiwiRXVyb3BlL1JvbWUiLCJF
dXJvcGUvU2FtYXJhIiwiRXVyb3BlL1Nhbl9NYXJpbm8iLCJFdXJvcGUvU2FyYWpldm8iLCJFdXJv
cGUvU2FyYXRvdiIsIkV1cm9wZS9TaW1mZXJvcG9sIiwiRXVyb3BlL1Nrb3BqZSIsIkV1cm9wZS9T
b2ZpYSIsIkV1cm9wZS9TdG9ja2hvbG0iLCJFdXJvcGUvVGFsbGlubiIsIkV1cm9wZS9UaXJhbmUi
LCJFdXJvcGUvVWx5YW5vdnNrIiwiRXVyb3BlL1V6aGdvcm9kIiwiRXVyb3BlL1ZhZHV6IiwiRXVy
b3BlL1ZhdGljYW4iLCJFdXJvcGUvVmllbm5hIiwiRXVyb3BlL1ZpbG5pdXMiLCJFdXJvcGUvVm9s
Z29ncmFkIiwiRXVyb3BlL1dhcnNhdyIsIkV1cm9wZS9aYWdyZWIiLCJFdXJvcGUvWmFwb3Jvemh5
ZSIsIkV1cm9wZS9adXJpY2giLCJJbmRpYW4vQW50YW5hbmFyaXZvIiwiSW5kaWFuL0NoYWdvcyIs
IkluZGlhbi9DaHJpc3RtYXMiLCJJbmRpYW4vQ29jb3MiLCJJbmRpYW4vQ29tb3JvIiwiSW5kaWFu
L0tlcmd1ZWxlbiIsIkluZGlhbi9NYWhlIiwiSW5kaWFuL01hbGRpdmVzIiwiSW5kaWFuL01hdXJp
dGl1cyIsIkluZGlhbi9NYXlvdHRlIiwiSW5kaWFuL1JldW5pb24iLCJQYWNpZmljL0FwaWEiLCJQ
YWNpZmljL0F1Y2tsYW5kIiwiUGFjaWZpYy9Cb3VnYWludmlsbGUiLCJQYWNpZmljL0NoYXRoYW0i
LCJQYWNpZmljL0Vhc3RlciIsIlBhY2lmaWMvRWZhdGUiLCJQYWNpZmljL0VuZGVyYnVyeSIsIlBh
Y2lmaWMvRmFrYW9mbyIsIlBhY2lmaWMvRmlqaSIsIlBhY2lmaWMvRnVuYWZ1dGkiLCJQYWNpZmlj
L0dhbGFwYWdvcyIsIlBhY2lmaWMvR2FtYmllciIsIlBhY2lmaWMvR3VhZGFsY2FuYWwiLCJQYWNp
ZmljL0d1YW0iLCJQYWNpZmljL0hvbm9sdWx1IiwiUGFjaWZpYy9Kb2huc3RvbiIsIlBhY2lmaWMv
S2lyaXRpbWF0aSIsIlBhY2lmaWMvS29zcmFlIiwiUGFjaWZpYy9Ld2FqYWxlaW4iLCJQYWNpZmlj
L01hanVybyIsIlBhY2lmaWMvTWFycXVlc2FzIiwiUGFjaWZpYy9NaWR3YXkiLCJQYWNpZmljL05h
dXJ1IiwiUGFjaWZpYy9OaXVlIiwiUGFjaWZpYy9Ob3Jmb2xrIiwiUGFjaWZpYy9Ob3VtZWEiLCJQ
YWNpZmljL1BhZ29fUGFnbyIsIlBhY2lmaWMvUGFsYXUiLCJQYWNpZmljL1BpdGNhaXJuIiwiUGFj
aWZpYy9Qb25hcGUiLCJQYWNpZmljL1BvcnRfTW9yZXNieSIsIlBhY2lmaWMvUmFyb3RvbmdhIiwi
UGFjaWZpYy9TYWlwYW4iLCJQYWNpZmljL1RhaGl0aSIsIlBhY2lmaWMvVGFyYXdhIiwiUGFjaWZp
Yy9Ub25nYXRhcHUiLCJQYWNpZmljL1RydWsiLCJQYWNpZmljL1dha2UiLCJQYWNpZmljL1dhbGxp
cyJdYCk7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeSh0aW1lWm9uZXMpLCBgWyJBZnJpY2EvQWJp
ZGphbiIsIkFmcmljYS9BY2NyYSIsIkFmcmljYS9BZGRpc19BYmFiYSIsIkFmcmljYS9BbGdpZXJz
IiwiQWZyaWNhL0FzbWVyYSIsIkFmcmljYS9CYW1ha28iLCJBZnJpY2EvQmFuZ3VpIiwiQWZyaWNh
L0Jhbmp1bCIsIkFmcmljYS9CaXNzYXUiLCJBZnJpY2EvQmxhbnR5cmUiLCJBZnJpY2EvQnJhenph
dmlsbGUiLCJBZnJpY2EvQnVqdW1idXJhIiwiQWZyaWNhL0NhaXJvIiwiQWZyaWNhL0Nhc2FibGFu
Y2EiLCJBZnJpY2EvQ2V1dGEiLCJBZnJpY2EvQ29uYWtyeSIsIkFmcmljYS9EYWthciIsIkFmcmlj
YS9EYXJfZXNfU2FsYWFtIiwiQWZyaWNhL0RqaWJvdXRpIiwiQWZyaWNhL0RvdWFsYSIsIkFmcmlj
YS9FbF9BYWl1biIsIkFmcmljYS9GcmVldG93biIsIkFmcmljYS9HYWJvcm9uZSIsIkFmcmljYS9I
YXJhcmUiLCJBZnJpY2EvSm9oYW5uZXNidXJnIiwiQWZyaWNhL0p1YmEiLCJBZnJpY2EvS2FtcGFs
YSIsIkFmcmljYS9LaGFydG91bSIsIkFmcmljYS9LaWdhbGkiLCJBZnJpY2EvS2luc2hhc2EiLCJB
ZnJpY2EvTGFnb3MiLCJBZnJpY2EvTGlicmV2aWxsZSIsIkFmcmljYS9Mb21lIiwiQWZyaWNhL0x1
YW5kYSIsIkFmcmljYS9MdWJ1bWJhc2hpIiwiQWZyaWNhL0x1c2FrYSIsIkFmcmljYS9NYWxhYm8i
LCJBZnJpY2EvTWFwdXRvIiwiQWZyaWNhL01hc2VydSIsIkFmcmljYS9NYmFiYW5lIiwiQWZyaWNh
L01vZ2FkaXNodSIsIkFmcmljYS9Nb25yb3ZpYSIsIkFmcmljYS9OYWlyb2JpIiwiQWZyaWNhL05k
amFtZW5hIiwiQWZyaWNhL05pYW1leSIsIkFmcmljYS9Ob3Vha2Nob3R0IiwiQWZyaWNhL091YWdh
ZG91Z291IiwiQWZyaWNhL1BvcnRvLU5vdm8iLCJBZnJpY2EvU2FvX1RvbWUiLCJBZnJpY2EvVHJp
cG9saSIsIkFmcmljYS9UdW5pcyIsIkFmcmljYS9XaW5kaG9layIsIkFtZXJpY2EvQWRhayIsIkFt
ZXJpY2EvQW5jaG9yYWdlIiwiQW1lcmljYS9Bbmd1aWxsYSIsIkFtZXJpY2EvQW50aWd1YSIsIkFt
ZXJpY2EvQXJhZ3VhaW5hIiwiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEiLCJBbWVyaWNhL0Fy
Z2VudGluYS9SaW9fR2FsbGVnb3MiLCJBbWVyaWNhL0FyZ2VudGluYS9TYWx0YSIsIkFtZXJpY2Ev
QXJnZW50aW5hL1Nhbl9KdWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0x1aXMiLCJBbWVyaWNh
L0FyZ2VudGluYS9UdWN1bWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvVXNodWFpYSIsIkFtZXJpY2Ev
QXJ1YmEiLCJBbWVyaWNhL0FzdW5jaW9uIiwiQW1lcmljYS9CYWhpYSIsIkFtZXJpY2EvQmFoaWFf
QmFuZGVyYXMiLCJBbWVyaWNhL0JhcmJhZG9zIiwiQW1lcmljYS9CZWxlbSIsIkFtZXJpY2EvQmVs
aXplIiwiQW1lcmljYS9CbGFuYy1TYWJsb24iLCJBbWVyaWNhL0JvYV9WaXN0YSIsIkFtZXJpY2Ev
Qm9nb3RhIiwiQW1lcmljYS9Cb2lzZSIsIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwiQW1lcmljYS9D
YW1icmlkZ2VfQmF5IiwiQW1lcmljYS9DYW1wb19HcmFuZGUiLCJBbWVyaWNhL0NhbmN1biIsIkFt
ZXJpY2EvQ2FyYWNhcyIsIkFtZXJpY2EvQ2F0YW1hcmNhIiwiQW1lcmljYS9DYXllbm5lIiwiQW1l
cmljYS9DYXltYW4iLCJBbWVyaWNhL0NoaWNhZ28iLCJBbWVyaWNhL0NoaWh1YWh1YSIsIkFtZXJp
Y2EvQ29yYWxfSGFyYm91ciIsIkFtZXJpY2EvQ29yZG9iYSIsIkFtZXJpY2EvQ29zdGFfUmljYSIs
IkFtZXJpY2EvQ3Jlc3RvbiIsIkFtZXJpY2EvQ3VpYWJhIiwiQW1lcmljYS9DdXJhY2FvIiwiQW1l
cmljYS9EYW5tYXJrc2hhdm4iLCJBbWVyaWNhL0Rhd3NvbiIsIkFtZXJpY2EvRGF3c29uX0NyZWVr
IiwiQW1lcmljYS9EZW52ZXIiLCJBbWVyaWNhL0RldHJvaXQiLCJBbWVyaWNhL0RvbWluaWNhIiwi
QW1lcmljYS9FZG1vbnRvbiIsIkFtZXJpY2EvRWlydW5lcGUiLCJBbWVyaWNhL0VsX1NhbHZhZG9y
IiwiQW1lcmljYS9Gb3J0X05lbHNvbiIsIkFtZXJpY2EvRm9ydGFsZXphIiwiQW1lcmljYS9HbGFj
ZV9CYXkiLCJBbWVyaWNhL0dvZHRoYWIiLCJBbWVyaWNhL0dvb3NlX0JheSIsIkFtZXJpY2EvR3Jh
bmRfVHVyayIsIkFtZXJpY2EvR3JlbmFkYSIsIkFtZXJpY2EvR3VhZGVsb3VwZSIsIkFtZXJpY2Ev
R3VhdGVtYWxhIiwiQW1lcmljYS9HdWF5YXF1aWwiLCJBbWVyaWNhL0d1eWFuYSIsIkFtZXJpY2Ev
SGFsaWZheCIsIkFtZXJpY2EvSGF2YW5hIiwiQW1lcmljYS9IZXJtb3NpbGxvIiwiQW1lcmljYS9J
bmRpYW5hL0tub3giLCJBbWVyaWNhL0luZGlhbmEvTWFyZW5nbyIsIkFtZXJpY2EvSW5kaWFuYS9Q
ZXRlcnNidXJnIiwiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eSIsIkFtZXJpY2EvSW5kaWFuYS9W
ZXZheSIsIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLCJBbWVyaWNhL0luZGlhbmEvV2luYW1h
YyIsIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwiQW1lcmljYS9JbnV2aWsiLCJBbWVyaWNhL0lxYWx1
aXQiLCJBbWVyaWNhL0phbWFpY2EiLCJBbWVyaWNhL0p1anV5IiwiQW1lcmljYS9KdW5lYXUiLCJB
bWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG8iLCJBbWVyaWNhL0tyYWxlbmRpamsiLCJBbWVyaWNh
L0xhX1BheiIsIkFtZXJpY2EvTGltYSIsIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCJBbWVyaWNhL0xv
dWlzdmlsbGUiLCJBbWVyaWNhL0xvd2VyX1ByaW5jZXMiLCJBbWVyaWNhL01hY2VpbyIsIkFtZXJp
Y2EvTWFuYWd1YSIsIkFtZXJpY2EvTWFuYXVzIiwiQW1lcmljYS9NYXJpZ290IiwiQW1lcmljYS9N
YXJ0aW5pcXVlIiwiQW1lcmljYS9NYXRhbW9yb3MiLCJBbWVyaWNhL01hemF0bGFuIiwiQW1lcmlj
YS9NZW5kb3phIiwiQW1lcmljYS9NZW5vbWluZWUiLCJBbWVyaWNhL01lcmlkYSIsIkFtZXJpY2Ev
TWV0bGFrYXRsYSIsIkFtZXJpY2EvTWV4aWNvX0NpdHkiLCJBbWVyaWNhL01pcXVlbG9uIiwiQW1l
cmljYS9Nb25jdG9uIiwiQW1lcmljYS9Nb250ZXJyZXkiLCJBbWVyaWNhL01vbnRldmlkZW8iLCJB
bWVyaWNhL01vbnRyZWFsIiwiQW1lcmljYS9Nb250c2VycmF0IiwiQW1lcmljYS9OYXNzYXUiLCJB
bWVyaWNhL05ld19Zb3JrIiwiQW1lcmljYS9OaXBpZ29uIiwiQW1lcmljYS9Ob21lIiwiQW1lcmlj
YS9Ob3JvbmhhIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwiQW1lcmljYS9Ob3J0aF9E
YWtvdGEvQ2VudGVyIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvTmV3X1NhbGVtIiwiQW1lcmljYS9P
amluYWdhIiwiQW1lcmljYS9QYW5hbWEiLCJBbWVyaWNhL1BhbmduaXJ0dW5nIiwiQW1lcmljYS9Q
YXJhbWFyaWJvIiwiQW1lcmljYS9QaG9lbml4IiwiQW1lcmljYS9Qb3J0LWF1LVByaW5jZSIsIkFt
ZXJpY2EvUG9ydF9vZl9TcGFpbiIsIkFtZXJpY2EvUG9ydG9fVmVsaG8iLCJBbWVyaWNhL1B1ZXJ0
b19SaWNvIiwiQW1lcmljYS9QdW50YV9BcmVuYXMiLCJBbWVyaWNhL1JhaW55X1JpdmVyIiwiQW1l
cmljYS9SYW5raW5fSW5sZXQiLCJBbWVyaWNhL1JlY2lmZSIsIkFtZXJpY2EvUmVnaW5hIiwiQW1l
cmljYS9SZXNvbHV0ZSIsIkFtZXJpY2EvUmlvX0JyYW5jbyIsIkFtZXJpY2EvU2FudGFfSXNhYmVs
IiwiQW1lcmljYS9TYW50YXJlbSIsIkFtZXJpY2EvU2FudGlhZ28iLCJBbWVyaWNhL1NhbnRvX0Rv
bWluZ28iLCJBbWVyaWNhL1Nhb19QYXVsbyIsIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwiQW1lcmlj
YS9TaXRrYSIsIkFtZXJpY2EvU3RfQmFydGhlbGVteSIsIkFtZXJpY2EvU3RfSm9obnMiLCJBbWVy
aWNhL1N0X0tpdHRzIiwiQW1lcmljYS9TdF9MdWNpYSIsIkFtZXJpY2EvU3RfVGhvbWFzIiwiQW1l
cmljYS9TdF9WaW5jZW50IiwiQW1lcmljYS9Td2lmdF9DdXJyZW50IiwiQW1lcmljYS9UZWd1Y2ln
YWxwYSIsIkFtZXJpY2EvVGh1bGUiLCJBbWVyaWNhL1RodW5kZXJfQmF5IiwiQW1lcmljYS9UaWp1
YW5hIiwiQW1lcmljYS9Ub3JvbnRvIiwiQW1lcmljYS9Ub3J0b2xhIiwiQW1lcmljYS9WYW5jb3V2
ZXIiLCJBbWVyaWNhL1doaXRlaG9yc2UiLCJBbWVyaWNhL1dpbm5pcGVnIiwiQW1lcmljYS9ZYWt1
dGF0IiwiQW1lcmljYS9ZZWxsb3drbmlmZSIsIkFudGFyY3RpY2EvQ2FzZXkiLCJBbnRhcmN0aWNh
L0RhdmlzIiwiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsIkFudGFyY3RpY2EvTWFjcXVhcmll
IiwiQW50YXJjdGljYS9NYXdzb24iLCJBbnRhcmN0aWNhL01jTXVyZG8iLCJBbnRhcmN0aWNhL1Bh
bG1lciIsIkFudGFyY3RpY2EvUm90aGVyYSIsIkFudGFyY3RpY2EvU3lvd2EiLCJBbnRhcmN0aWNh
L1Ryb2xsIiwiQW50YXJjdGljYS9Wb3N0b2siLCJBcmN0aWMvTG9uZ3llYXJieWVuIiwiQXNpYS9B
ZGVuIiwiQXNpYS9BbG1hdHkiLCJBc2lhL0FtbWFuIiwiQXNpYS9BbmFkeXIiLCJBc2lhL0FxdGF1
IiwiQXNpYS9BcXRvYmUiLCJBc2lhL0FzaGdhYmF0IiwiQXNpYS9BdHlyYXUiLCJBc2lhL0JhZ2hk
YWQiLCJBc2lhL0JhaHJhaW4iLCJBc2lhL0Jha3UiLCJBc2lhL0Jhbmdrb2siLCJBc2lhL0Jhcm5h
dWwiLCJBc2lhL0JlaXJ1dCIsIkFzaWEvQmlzaGtlayIsIkFzaWEvQnJ1bmVpIiwiQXNpYS9DYWxj
dXR0YSIsIkFzaWEvQ2hpdGEiLCJBc2lhL0Nob2liYWxzYW4iLCJBc2lhL0NvbG9tYm8iLCJBc2lh
L0RhbWFzY3VzIiwiQXNpYS9EaGFrYSIsIkFzaWEvRGlsaSIsIkFzaWEvRHViYWkiLCJBc2lhL0R1
c2hhbmJlIiwiQXNpYS9GYW1hZ3VzdGEiLCJBc2lhL0dhemEiLCJBc2lhL0hlYnJvbiIsIkFzaWEv
SG9uZ19Lb25nIiwiQXNpYS9Ib3ZkIiwiQXNpYS9Jcmt1dHNrIiwiQXNpYS9KYWthcnRhIiwiQXNp
YS9KYXlhcHVyYSIsIkFzaWEvSmVydXNhbGVtIiwiQXNpYS9LYWJ1bCIsIkFzaWEvS2FtY2hhdGth
IiwiQXNpYS9LYXJhY2hpIiwiQXNpYS9LYXRtYW5kdSIsIkFzaWEvS2hhbmR5Z2EiLCJBc2lhL0ty
YXNub3lhcnNrIiwiQXNpYS9LdWFsYV9MdW1wdXIiLCJBc2lhL0t1Y2hpbmciLCJBc2lhL0t1d2Fp
dCIsIkFzaWEvTWFjYXUiLCJBc2lhL01hZ2FkYW4iLCJBc2lhL01ha2Fzc2FyIiwiQXNpYS9NYW5p
bGEiLCJBc2lhL011c2NhdCIsIkFzaWEvTmljb3NpYSIsIkFzaWEvTm92b2t1em5ldHNrIiwiQXNp
YS9Ob3Zvc2liaXJzayIsIkFzaWEvT21zayIsIkFzaWEvT3JhbCIsIkFzaWEvUGhub21fUGVuaCIs
IkFzaWEvUG9udGlhbmFrIiwiQXNpYS9QeW9uZ3lhbmciLCJBc2lhL1FhdGFyIiwiQXNpYS9Rb3N0
YW5heSIsIkFzaWEvUXl6eWxvcmRhIiwiQXNpYS9SYW5nb29uIiwiQXNpYS9SaXlhZGgiLCJBc2lh
L1NhaWdvbiIsIkFzaWEvU2FraGFsaW4iLCJBc2lhL1NhbWFya2FuZCIsIkFzaWEvU2VvdWwiLCJB
c2lhL1NoYW5naGFpIiwiQXNpYS9TaW5nYXBvcmUiLCJBc2lhL1NyZWRuZWtvbHltc2siLCJBc2lh
L1RhaXBlaSIsIkFzaWEvVGFzaGtlbnQiLCJBc2lhL1RiaWxpc2kiLCJBc2lhL1RlaHJhbiIsIkFz
aWEvVGhpbXBodSIsIkFzaWEvVG9reW8iLCJBc2lhL1RvbXNrIiwiQXNpYS9VbGFhbmJhYXRhciIs
IkFzaWEvVXJ1bXFpIiwiQXNpYS9Vc3QtTmVyYSIsIkFzaWEvVmllbnRpYW5lIiwiQXNpYS9WbGFk
aXZvc3RvayIsIkFzaWEvWWFrdXRzayIsIkFzaWEvWWVrYXRlcmluYnVyZyIsIkFzaWEvWWVyZXZh
biIsIkF0bGFudGljL0F6b3JlcyIsIkF0bGFudGljL0Jlcm11ZGEiLCJBdGxhbnRpYy9DYW5hcnki
LCJBdGxhbnRpYy9DYXBlX1ZlcmRlIiwiQXRsYW50aWMvRmFlcm9lIiwiQXRsYW50aWMvTWFkZWly
YSIsIkF0bGFudGljL1JleWtqYXZpayIsIkF0bGFudGljL1NvdXRoX0dlb3JnaWEiLCJBdGxhbnRp
Yy9TdF9IZWxlbmEiLCJBdGxhbnRpYy9TdGFubGV5IiwiQXVzdHJhbGlhL0FkZWxhaWRlIiwiQXVz
dHJhbGlhL0JyaXNiYW5lIiwiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwiQXVzdHJhbGlhL0N1cnJp
ZSIsIkF1c3RyYWxpYS9EYXJ3aW4iLCJBdXN0cmFsaWEvRXVjbGEiLCJBdXN0cmFsaWEvSG9iYXJ0
IiwiQXVzdHJhbGlhL0xpbmRlbWFuIiwiQXVzdHJhbGlhL0xvcmRfSG93ZSIsIkF1c3RyYWxpYS9N
ZWxib3VybmUiLCJBdXN0cmFsaWEvUGVydGgiLCJBdXN0cmFsaWEvU3lkbmV5IiwiRXVyb3BlL0Ft
c3RlcmRhbSIsIkV1cm9wZS9BbmRvcnJhIiwiRXVyb3BlL0FzdHJha2hhbiIsIkV1cm9wZS9BdGhl
bnMiLCJFdXJvcGUvQmVsZ3JhZGUiLCJFdXJvcGUvQmVybGluIiwiRXVyb3BlL0JyYXRpc2xhdmEi
LCJFdXJvcGUvQnJ1c3NlbHMiLCJFdXJvcGUvQnVjaGFyZXN0IiwiRXVyb3BlL0J1ZGFwZXN0Iiwi
RXVyb3BlL0J1c2luZ2VuIiwiRXVyb3BlL0NoaXNpbmF1IiwiRXVyb3BlL0NvcGVuaGFnZW4iLCJF
dXJvcGUvRHVibGluIiwiRXVyb3BlL0dpYnJhbHRhciIsIkV1cm9wZS9HdWVybnNleSIsIkV1cm9w
ZS9IZWxzaW5raSIsIkV1cm9wZS9Jc2xlX29mX01hbiIsIkV1cm9wZS9Jc3RhbmJ1bCIsIkV1cm9w
ZS9KZXJzZXkiLCJFdXJvcGUvS2FsaW5pbmdyYWQiLCJFdXJvcGUvS2lldiIsIkV1cm9wZS9LaXJv
diIsIkV1cm9wZS9MaXNib24iLCJFdXJvcGUvTGp1YmxqYW5hIiwiRXVyb3BlL0xvbmRvbiIsIkV1
cm9wZS9MdXhlbWJvdXJnIiwiRXVyb3BlL01hZHJpZCIsIkV1cm9wZS9NYWx0YSIsIkV1cm9wZS9N
YXJpZWhhbW4iLCJFdXJvcGUvTWluc2siLCJFdXJvcGUvTW9uYWNvIiwiRXVyb3BlL01vc2NvdyIs
IkV1cm9wZS9Pc2xvIiwiRXVyb3BlL1BhcmlzIiwiRXVyb3BlL1BvZGdvcmljYSIsIkV1cm9wZS9Q
cmFndWUiLCJFdXJvcGUvUmlnYSIsIkV1cm9wZS9Sb21lIiwiRXVyb3BlL1NhbWFyYSIsIkV1cm9w
ZS9TYW5fTWFyaW5vIiwiRXVyb3BlL1NhcmFqZXZvIiwiRXVyb3BlL1NhcmF0b3YiLCJFdXJvcGUv
U2ltZmVyb3BvbCIsIkV1cm9wZS9Ta29wamUiLCJFdXJvcGUvU29maWEiLCJFdXJvcGUvU3RvY2to
b2xtIiwiRXVyb3BlL1RhbGxpbm4iLCJFdXJvcGUvVGlyYW5lIiwiRXVyb3BlL1VseWFub3ZzayIs
IkV1cm9wZS9Vemhnb3JvZCIsIkV1cm9wZS9WYWR1eiIsIkV1cm9wZS9WYXRpY2FuIiwiRXVyb3Bl
L1ZpZW5uYSIsIkV1cm9wZS9WaWxuaXVzIiwiRXVyb3BlL1ZvbGdvZ3JhZCIsIkV1cm9wZS9XYXJz
YXciLCJFdXJvcGUvWmFncmViIiwiRXVyb3BlL1phcG9yb3poeWUiLCJFdXJvcGUvWnVyaWNoIiwi
SW5kaWFuL0FudGFuYW5hcml2byIsIkluZGlhbi9DaGFnb3MiLCJJbmRpYW4vQ2hyaXN0bWFzIiwi
SW5kaWFuL0NvY29zIiwiSW5kaWFuL0NvbW9ybyIsIkluZGlhbi9LZXJndWVsZW4iLCJJbmRpYW4v
TWFoZSIsIkluZGlhbi9NYWxkaXZlcyIsIkluZGlhbi9NYXVyaXRpdXMiLCJJbmRpYW4vTWF5b3R0
ZSIsIkluZGlhbi9SZXVuaW9uIiwiUGFjaWZpYy9BcGlhIiwiUGFjaWZpYy9BdWNrbGFuZCIsIlBh
Y2lmaWMvQm91Z2FpbnZpbGxlIiwiUGFjaWZpYy9DaGF0aGFtIiwiUGFjaWZpYy9FYXN0ZXIiLCJQ
YWNpZmljL0VmYXRlIiwiUGFjaWZpYy9FbmRlcmJ1cnkiLCJQYWNpZmljL0Zha2FvZm8iLCJQYWNp
ZmljL0ZpamkiLCJQYWNpZmljL0Z1bmFmdXRpIiwiUGFjaWZpYy9HYWxhcGFnb3MiLCJQYWNpZmlj
L0dhbWJpZXIiLCJQYWNpZmljL0d1YWRhbGNhbmFsIiwiUGFjaWZpYy9HdWFtIiwiUGFjaWZpYy9I
b25vbHVsdSIsIlBhY2lmaWMvSm9obnN0b24iLCJQYWNpZmljL0tpcml0aW1hdGkiLCJQYWNpZmlj
L0tvc3JhZSIsIlBhY2lmaWMvS3dhamFsZWluIiwiUGFjaWZpYy9NYWp1cm8iLCJQYWNpZmljL01h
cnF1ZXNhcyIsIlBhY2lmaWMvTWlkd2F5IiwiUGFjaWZpYy9OYXVydSIsIlBhY2lmaWMvTml1ZSIs
IlBhY2lmaWMvTm9yZm9sayIsIlBhY2lmaWMvTm91bWVhIiwiUGFjaWZpYy9QYWdvX1BhZ28iLCJQ
YWNpZmljL1BhbGF1IiwiUGFjaWZpYy9QaXRjYWlybiIsIlBhY2lmaWMvUG9uYXBlIiwiUGFjaWZp
Yy9Qb3J0X01vcmVzYnkiLCJQYWNpZmljL1Jhcm90b25nYSIsIlBhY2lmaWMvU2FpcGFuIiwiUGFj
aWZpYy9UYWhpdGkiLCJQYWNpZmljL1RhcmF3YSIsIlBhY2lmaWMvVG9uZ2F0YXB1IiwiUGFjaWZp
Yy9UcnVrIiwiUGFjaWZpYy9XYWtlIiwiUGFjaWZpYy9XYWxsaXMiLCJVVEMiXWApOwogCiBsZXQg
dW5pdHMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCJ1bml0Iik7CiBzaG91bGRCZShKU09OLnN0
cmluZ2lmeSh1bml0cyksIGBbImFjcmUiLCJiaXQiLCJieXRlIiwiY2Vsc2l1cyIsImNlbnRpbWV0
ZXIiLCJkYXkiLCJkZWdyZWUiLCJmYWhyZW5oZWl0IiwiZmx1aWQtb3VuY2UiLCJmb290IiwiZ2Fs
bG9uIiwiZ2lnYWJpdCIsImdpZ2FieXRlIiwiZ3JhbSIsImhlY3RhcmUiLCJob3VyIiwiaW5jaCIs
ImtpbG9iaXQiLCJraWxvYnl0ZSIsImtpbG9ncmFtIiwia2lsb21ldGVyIiwibGl0ZXIiLCJtZWdh
Yml0IiwibWVnYWJ5dGUiLCJtZXRlciIsIm1pbGUiLCJtaWxlLXNjYW5kaW5hdmlhbiIsIm1pbGxp
bGl0ZXIiLCJtaWxsaW1ldGVyIiwibWlsbGlzZWNvbmQiLCJtaW51dGUiLCJtb250aCIsIm91bmNl
IiwicGVyY2VudCIsInBldGFieXRlIiwicG91bmQiLCJzZWNvbmQiLCJzdG9uZSIsInRlcmFiaXQi
LCJ0ZXJhYnl0ZSIsIndlZWsiLCJ5YXJkIiwieWVhciJdYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy90ZW1wb3JhbC10aW1lem9uZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3RlbXBvcmFsLXRp
bWV6b25lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZWEwYzJkODM3Njk1MjQyMTI4NjRmZTBmNTk2MzUwYzgw
Y2MzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy90ZW1wb3JhbC10aW1lem9u
ZS5qcwpAQCAtMCwwICsxLDk5IEBACisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlVGVtcG9yYWw9
MSIpCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtleHBl
Y3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVu
YywgZXJyb3JUeXBlLCBtZXNzYWdlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAg
ICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9
CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0hYCk7CisgICAgaWYgKG1lc3Nh
Z2UgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgc2hvdWxkQmUoU3RyaW5nKGVycm9yKSwgbWVzc2Fn
ZSk7Cit9CisKK2xldCBmYWlsdXJlcyA9IFsKKyAgICAiIiwKKyAgICAiKyIsCisgICAgIisyIiwK
KyAgICAiKzI6MDAiLAorICAgICIrMjQiLAorICAgICIrMjM6IiwKKyAgICAiMjA6MDAiLAorICAg
ICIrMjA6MDAwMCIsCisgICAgIisyMDo2MCIsCisgICAgIisyMDo1OToiLAorICAgICIrMjA6NTkw
MCIsCisgICAgIisyMDo1OTowMC4wMTIzNDU2Nzg5IiwKKyAgICAibG9jYWwiLAorXTsKKworZm9y
IChsZXQgdGV4dCBvZiBmYWlsdXJlcykgeworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAg
ICAgbmV3IFRlbXBvcmFsLlRpbWVab25lKHRleHQpOworICAgIH0sIFJhbmdlRXJyb3IpOworfQor
CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIiswMDowMCIpLmlkLCBgKzAwOjAwYCk7
CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIiswMTowMCIpLmlkLCBgKzAxOjAwYCk7
CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIiswMTo1OSIpLmlkLCBgKzAxOjU5YCk7
CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIi0wMTo1OSIpLmlkLCBgLTAxOjU5YCk7
CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIi0wMTo1OTozMCIpLmlkLCBgLTAxOjU5
OjMwYCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIi0wMTo1OTozMC4xMjM0NSIp
LmlkLCBgLTAxOjU5OjMwLjEyMzQ1YCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUo
Ii0wMTo1OTozMC4wMDAwMDEiKS5pZCwgYC0wMTo1OTozMC4wMDAwMDFgKTsKK3Nob3VsZEJlKG5l
dyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1MDAwMCIpLmlkLCBgLTAxOjU5OjMw
LjEyMzQ1YCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIi0wMTo1OTozMC4wMDAw
MDAwMDEiKS5pZCwgYC0wMTo1OTozMC4wMDAwMDAwMDFgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3Jh
bC5UaW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1Njc4OSIpLmlkLCBgLTAxOjU5OjMwLjEyMzQ1Njc4
OWApOworCitsZXQgdHogPSBuZXcgVGVtcG9yYWwuVGltZVpvbmUoIi0wMTo1OTozMC4xMjM0NTY3
ODkiKQorc2hvdWxkQmUodHouaWQsIFN0cmluZyh0eikpOworCitzaG91bGRCZShuZXcgVGVtcG9y
YWwuVGltZVpvbmUoIkFzaWEvVG9reW8iKS5pZCwgYEFzaWEvVG9reW9gKTsKK3Nob3VsZEJlKG5l
dyBUZW1wb3JhbC5UaW1lWm9uZSgiQVNJQS9UT0tZTyIpLmlkLCBgQXNpYS9Ub2t5b2ApOworc2hv
dWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCJVVEMiKS5pZCwgYFVUQ2ApOworCitzaG91bGRC
ZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoJ1VUQycpLmlkLCBgVVRDYCk7CitzaG91bGRCZShuZXcg
VGVtcG9yYWwuVGltZVpvbmUoJ0FmcmljYS9DYWlybycpLmlkLCBgQWZyaWNhL0NhaXJvYCk7Citz
aG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoJ2FtZXJpY2EvVkFOQ09VVkVSJykuaWQsIGBB
bWVyaWNhL1ZhbmNvdXZlcmApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCdBc2lh
L0thdG1hbmR1JykuaWQsIGBBc2lhL0thdG1hbmR1YCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwu
VGltZVpvbmUoJy0wNDowMCcpLmlkLCBgLTA0OjAwYCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwu
VGltZVpvbmUoJyswNjQ1JykuaWQsIGArMDY6NDVgKTsKKworc2hvdWxkQmUoVGVtcG9yYWwuVGlt
ZVpvbmUuZnJvbSgnVVRDJykuaWQsIGBVVENgKTsKK3Nob3VsZEJlKFRlbXBvcmFsLlRpbWVab25l
LmZyb20oJ0FmcmljYS9DYWlybycpLmlkLCBgQWZyaWNhL0NhaXJvYCk7CitzaG91bGRCZShUZW1w
b3JhbC5UaW1lWm9uZS5mcm9tKCdBZnJpY2EvQ2Fpcm8nKS50b1N0cmluZygpLCBgQWZyaWNhL0Nh
aXJvYCk7CitzaG91bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCdBZnJpY2EvQ2Fpcm8nKS50
b0pTT04oKSwgYEFmcmljYS9DYWlyb2ApOworc2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUuZnJv
bSgnYW1lcmljYS9WQU5DT1VWRVInKS5pZCwgYEFtZXJpY2EvVmFuY291dmVyYCk7CitzaG91bGRC
ZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCdBc2lhL0thdG1hbmR1JykuaWQsIGBBc2lhL0thdG1h
bmR1YCk7CitzaG91bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCctMDQ6MDAnKS5pZCwgYC0w
NDowMGApOworc2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUuZnJvbSgnKzA2NDUnKS5pZCwgYCsw
Njo0NWApOworc2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUuZnJvbSgnKzA2NDUnKS50b1N0cmlu
ZygpLCBgKzA2OjQ1YCk7CitzaG91bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCcrMDY0NScp
LnRvSlNPTigpLCBgKzA2OjQ1YCk7CisKKy8vIElTTyA4NjAxIHN0cmluZyB3aXRoIHRpbWUgem9u
ZSBvZmZzZXQgcGFydAorLy8gRklYTUU6IFdlIHdpbGwgc3VwcG9ydCBUZW1wb3JhbCBJbnN0YW50
IGZvcm1hdCBpbiBUZW1wb3JhbC5UaW1lWm9uZS5mcm9tLgorLy8gc2hvdWxkQmUoVGVtcG9yYWwu
VGltZVpvbmUuZnJvbSgnMjAyMC0wMS0xNFQwMDozMTowMC4wNjU4NTgwODZaJykuaWQsIGBgKTsK
Ky8vIHNob3VsZEJlKFRlbXBvcmFsLlRpbWVab25lLmZyb20oJzIwMjAtMDEtMTNUMTY6MzE6MDAu
MDY1ODU4MDg2LTA4OjAwJykuaWQsIGBgKTsKKy8vIHNob3VsZEJlKFRlbXBvcmFsLlRpbWVab25l
LmZyb20oJzIwMjAtMDEtMTNUMTY6MzE6MDAuMDY1ODU4MDg2LTA4OjAwW0FtZXJpY2EvVmFuY291
dmVyXScpLmlkLCBgYCk7CisKK2NvbnN0IHVzZXIgPSB7CisgIGlkOiA3NzUsCisgIHVzZXJuYW1l
OiAncm9ib3RjYXQnLAorICBwYXNzd29yZDogJ2h1bnRlcjInLCAvLyBOb3RlOiBEb24ndCByZWFs
bHkgc3RvcmUgcGFzc3dvcmRzIGxpa2UgdGhhdAorICB1c2VyVGltZVpvbmU6IFRlbXBvcmFsLlRp
bWVab25lLmZyb20oJ0V1cm9wZS9NYWRyaWQnKQorfTsKK2NvbnN0IHN0ciA9IEpTT04uc3RyaW5n
aWZ5KHVzZXIpOworc2hvdWxkQmUoc3RyLCBgeyJpZCI6Nzc1LCJ1c2VybmFtZSI6InJvYm90Y2F0
IiwicGFzc3dvcmQiOiJodW50ZXIyIiwidXNlclRpbWVab25lIjoiRXVyb3BlL01hZHJpZCJ9YCk7
CitmdW5jdGlvbiByZXZpdmVyKGtleSwgdmFsdWUpIHsKKyAgaWYgKGtleS5lbmRzV2l0aCgnVGlt
ZVpvbmUnKSkgcmV0dXJuIFRlbXBvcmFsLlRpbWVab25lLmZyb20odmFsdWUpOworICByZXR1cm4g
dmFsdWU7Cit9Citjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHN0ciwgcmV2aXZlcik7CitzaG91
bGRCZShwYXJzZWQudXNlclRpbWVab25lIGluc3RhbmNlb2YgVGVtcG9yYWwuVGltZVpvbmUsIHRy
dWUpOworc2hvdWxkQmUocGFyc2VkLnVzZXJUaW1lWm9uZS5pZCwgYEV1cm9wZS9NYWRyaWRgKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437253</attachid>
            <date>2021-09-03 01:44:00 -0700</date>
            <delta_ts>2021-09-03 10:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229703-20210903014400.patch</filename>
            <type>text/plain</type>
            <size>91340</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzhiNmM1OTNjNTk0MTNiMzIzN2YyN2I3MTk5MTY1YTJlY2NkYWEyLi44YWIxOWNkOGYzZmQ5NWZh
ZWI5ODYzYzliY2I4MTk4ZjQ4ZjM3ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MyBAQAorMjAyMS0wOS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIFRlbXBvcmFsLlRpbWVab25lLiBXaGlsZSB0aGlzIHBhdGNoIGRvZXMgbm90IGltcGxlbWVu
dCBmZWF0dXJlcyB3aGljaCByZXF1aXJlcyBUZW1wb3JhbC5JbnN0YW50LAorICAgICAgICB3ZSBp
bXBsZW1lbnQgdGhlIGNvcmUgb2YgVGVtcG9yYWwuVGltZVpvbmUsIGhvbGRpbmcgVVRDIG9mZnNl
dCBvciBJQU5BIFRpbWVab25lIElELiBUaGlzIHBhdGNoIGltcGxlbWVudHMgcGFyc2luZyBUaW1l
Wm9uZU51bWVyaWNVVENPZmZzZXQKKyAgICAgICAgdG8gcG9wdWxhdGUgVGltZVpvbmUgZnJvbSB0
aGF0IGZvcm1hdC4KKworICAgICAgICBTaW5jZSBUZW1wb3JhbC5UaW1lWm9uZSBpcyBpbXBsZW1l
bnRlZCwgd2UgYWxzbyBzdXBwb3J0IGBUZW1wb3JhbC5Ob3cudGltZVpvbmUoKWAsIHdoaWNoIHJl
dHVybnMgY3VycmVudCBzeXN0ZW0gVGltZVpvbmUuCisKKyAgICAgICAgV2UgYWxzbyBmaXggSW50
bCBlbnVtZXJhdGlvbiBub3QgaW5jbHVkaW5nICJVVEMiLiBTaW5jZSBpdCBpcyBpbmNsdWRlZCBp
biBJQU5BIFRpbWVab25lcywgd2Ugc2hvdWxkIGluY2x1ZGUgdGhhdC4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIHJ1bnRp
bWUvSVNPODYwMS5jcHA6CisgICAgICAgIChKU0M6OklTTzg2MDE6OnBhcnNlRGVjaW1hbEludDMy
KToKKyAgICAgICAgKEpTQzo6SVNPODYwMTo6aGFuZGxlRnJhY3Rpb24pOgorICAgICAgICAoSlND
OjpJU084NjAxOjpwYXJzZVRpbWVab25lTnVtZXJpY1VUQ09mZnNldCk6CisgICAgICAgIChKU0M6
OklTTzg2MDE6OmZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1l
L0lTTzg2MDEuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjppc1ZhbGlkVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6
Y2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6
aW50bEF2YWlsYWJsZVRpbWVab25lcyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZVRpbWVab25l
cyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojp0aW1lWm9uZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE5vdy5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
cnVudGltZS9UZW1wb3JhbE5vdy5oOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVUaW1lWm9uZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBydW50aW1lL1RlbXBvcmFsVGltZVpvbmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6VGVt
cG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbUlEKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1l
Wm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNldCk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpv
bmU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OlRl
bXBvcmFsVGltZVpvbmUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lOjppZEZvclRp
bWVab25lTmFtZSk6CisgICAgICAgIChKU0M6OnBhcnNlVGVtcG9yYWxUaW1lWm9uZVN0cmluZyk6
CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmU6OmZyb20pOgorICAgICAgICAqIHJ1bnRp
bWUvVGVtcG9yYWxUaW1lWm9uZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JU084NjAxLmguCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29u
c3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9uZUNvbnN0
cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFsVGltZVpvbmVDb25z
dHJ1Y3Rvcjo6VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6VGVt
cG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbFRp
bWVab25lQ29uc3RydWN0b3IuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSVNPODYwMS5oLgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3Rv
dHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6VGVtcG9yYWxUaW1lWm9u
ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIpOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmguCisgICAgICAgICogcnVu
dGltZS9WTS5jcHA6CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDIxLTA5LTAyICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRml4IFdlYktp
dEFkZGl0aW9ucyBkaXJlY3RvcnkgdHJhdmVyc2FsIGluIG9mZmxpbmVhc20KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYTc0MWY4
NjljMDY0NDhmZjVjOGE5ZTRjMzVlODJiYmYzNmU4MmI5MC4uNzc4YmE5OGMzNmM3NDNhMDQ1Yzhh
ODBmZWNmYWM1OWZkZGQ3OTVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wOS0wMyAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEltcGxlbWVu
dCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg6IFN1cHBv
cnQgaW50ZWdlciBzZXJpYWxpemF0aW9uIGludG8gVmVjdG9yLgorICAgICAgICAqIHd0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmg6IEV4dGVuZHMgU3RyaW5nQ29uY2F0ZW5hdGUgZmVhdHVyZSBm
b3IgVmVjdG9yIHdpdGggVUNoYXIvTENoYXIgKyBOIHNpemUuCisKIDIwMjEtMDktMDIgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZWplY3Qg
bm9uLUlQdjQgaG9zdG5hbWVzIHRoYXQgZW5kIGluIG51bWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAwMWU4ZTA4NjUxMjc4ODQzYTEwNmMzM2Y5ZGY4MDdkNDIzYzUx
MDVjLi5lY2EwODMxNGI2NDQ1OWM3OGNhMDM4NjQyODE1MzdmODUxOGRiZWUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNyArMTExLDEwIEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9PQkpFQ1RfTFVUX1NPVVJDRVMKICAgICBydW50aW1lL1RlbXBvcmFsQ2FsZW5kYXJQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9UZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuY3Bw
CiAgICAgcnVudGltZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmNwcAorICAgIHJ1bnRpbWUv
VGVtcG9yYWxOb3cuY3BwCiAgICAgcnVudGltZS9UZW1wb3JhbE9iamVjdC5jcHAKKyAgICBydW50
aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAKKyAgICBydW50aW1lL1RlbXBvcmFs
VGltZVpvbmVQcm90b3R5cGUuY3BwCiAKICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwCiAg
ICAgd2FzbS9qcy9KU1RvV2FzbUlDQ2FsbGVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBhNTY1ZjczN2Uw
YmYyNWVkMTgzNWEzYTgxM2U1NGU5N2JlYTI0M2UzLi5jZTVmNjI4OGFhYTI3Y2I3ODE3YmVhZTE0
NDM3NmVhMjhhZmFlNjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDcgKzE3MywxMCBAQCAkKFBST0pF
Q1RfRElSKS9ydW50aW1lL1RlbXBvcmFsQ2FsZW5kYXJDb25zdHJ1Y3Rvci5jcHAKICQoUFJPSkVD
VF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxDYWxlbmRhclByb3RvdHlwZS5jcHAKICQoUFJPSkVDVF9E
SVIpL3J1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yLmNwcAogJChQUk9KRUNUX0RJ
UikvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmNwcAorJChQUk9KRUNUX0RJUikv
cnVudGltZS9UZW1wb3JhbE5vdy5jcHAKICQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxP
YmplY3QuY3BwCiskKFBST0pFQ1RfRElSKS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1
Y3Rvci5jcHAKKyQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlw
ZS5jcHAKICQoUFJPSkVDVF9ESVIpL3VjZC9DYXNlRm9sZGluZy50eHQKICQoUFJPSkVDVF9ESVIp
L3VjZC9EZXJpdmVkQmluYXJ5UHJvcGVydGllcy50eHQKICQoUFJPSkVDVF9ESVIpL3VjZC9EZXJp
dmVkQ29yZVByb3BlcnRpZXMudHh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNjM2MWQ0N2EzMzJiNWZjNWUw
NzRjNWFiMTVmNjc0N2M5OTM0N2Y3My4uMWIwNTVjOTIyYzA5NGE1OTU4NDI2MDg0MWRjZWRmY2Fh
NzM3NjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNzAsNyArNzAsMTAgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsQ2FsZW5kYXJDb25z
dHJ1Y3Rvci4KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9UZW1wb3JhbENhbGVuZGFyUHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVj
dG9yLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5sdXQuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1RlbXBvcmFsTm93Lmx1dC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvVGVtcG9yYWxP
YmplY3QubHV0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IubHV0LmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9UZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmUvVW5pY29kZVBhdHRlcm5UYWJsZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1dhc21CM0lSR2VuZXJhdG9ySW5saW5lcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvV2FzbUxM
SW50R2VuZXJhdG9ySW5saW5lcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGJhMzc2OTc3NzRlNTA4Mzg2NzE2YThlMDg4OGY1MWJlZmJkMjZkZmYuLjg4
MTkyN2UxN2JkYTIzOGQ3ZGFjZWYxZDZlYjVjM2MzYjc0OGIzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xOTUsNyArMTk1LDEwIEBAIE9CSkVDVF9M
VVRfSEVBREVSUyA9IFwKICAgICBUZW1wb3JhbENhbGVuZGFyUHJvdG90eXBlLmx1dC5oIFwKICAg
ICBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IubHV0LmggXAogICAgIFRlbXBvcmFsRHVyYXRp
b25Qcm90b3R5cGUubHV0LmggXAorICAgIFRlbXBvcmFsTm93Lmx1dC5oIFwKICAgICBUZW1wb3Jh
bE9iamVjdC5sdXQuaCBcCisgICAgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmx1dC5oIFwK
KyAgICBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBXZWJBc3NlbWJseUNvbXBpbGVFcnJv
clByb3RvdHlwZS5sdXQuaCBcCiAgICAgV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5sdXQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU3ODc3ZGMxNzM3ODNhZTllNjE3
MTYzYjE3Mzg5NTRjNjg3ZTUzYTIuLmQ1NzMzNDhmYTNkNmU2N2VhYzlmYWJhYmM0NjI5M2RiNWIz
Mzc3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODI4LDYgKzE4MjgsOSBA
QAogCQlFMzA3MTc4QzI0Qzc4Mjk4MDBERjA2NDQgLyogSW50bExvY2FsZVByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTNBRkY5MzAyNDVB
M0NGQzAwQzlCQTNCIC8qIEludGxMb2NhbGVQcm90b3R5cGUuaCAqLzsgfTsKIAkJRTMwNzE3OEQy
NEM3ODI5QTAwREYwNjQ0IC8qIEludGxMb2NhbGVDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTNBRkY5MkMyNDVBM0NGQTAwQzlCQTNC
IC8qIEludGxMb2NhbGVDb25zdHJ1Y3Rvci5oICovOyB9OwogCQlFMzA3MTc4RTI0Qzc4MjlEMDBE
RjA2NDQgLyogSW50bExvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTNBRkY5MkIyNDVBM0NGOTAwQzlCQTNCIC8qIEludGxMb2NhbGUuaCAqLzsg
fTsKKwkJRTMwRThBNTQyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMEU4
QTRFMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmggKi87IH07
CisJCUUzMEU4QTU2MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzBFOEE1MDI2REUyRTQ4
MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZS5oICovOyB9OworCQlFMzBFOEE1NzI2REUyRTQ4
MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzBFOEE1MTI2REUyRTQ4MDBEQTQ5MTUg
LyogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggKi87IH07CiAJCUUzMTE3OUFBMjI4ODM4
NjEwMDUxNEIyQyAvKiBTeW1ib2xUYWJsZU9yU2NvcGVEZXB0aC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxMTc5QTkyMjg4Mzg1RDAwNTE0QjJDIC8q
IFN5bWJvbFRhYmxlT3JTY29wZURlcHRoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNjE4MTMxRUM1RkUxNzAwMDZBMjE4IC8qIERPTUFubm90
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MTYxODEwMUVDNUZFMDgwMDA2QTIxOCAvKiBET01Bbm5vdGF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNjE4MTUxRUM1RkUyNzAwMDZB
MjE4IC8qIERPTUF0dHJpYnV0ZUdldHRlclNldHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxNjE4MTIxRUM1RkUwODAwMDZBMjE4IC8qIERPTUF0
dHJpYnV0ZUdldHRlclNldHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC01MDgxLDYgKzUwODQsMTIgQEAKIAkJRTMwNzE3ODAyNEM3ODI0NzAw
REYwNjQ0IC8qIEludGxTZWdtZW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50bFNlZ21l
bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDcxNzgxMjRDNzgyNDcw
MERGMDY0NCAvKiBJbnRsU2VnbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGxTZWdtZW50ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwNzE3ODIyNEM3ODI0NzAwREYwNjQ0
IC8qIEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRs
U2VnbWVudGVyQ29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzBFOEE0QzI2REUyRTQ3MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNEQyNkRFMkU0
NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGVtcG9yYWxUaW1lWm9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzMEU4QTRFMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lUHJv
dG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBvcmFsVGltZVpv
bmVQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwRThBNEYyNkRF
MkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzBFOEE1MDI2REUyRTQ4MDBEQTQ5
MTUgLyogVGVtcG9yYWxUaW1lWm9uZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZW1wb3JhbFRpbWVab25lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMEU4
QTUxMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMTE3OUE5MjI4ODM4NUQwMDUxNEIy
QyAvKiBTeW1ib2xUYWJsZU9yU2NvcGVEZXB0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xUYWJs
ZU9yU2NvcGVEZXB0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzE2MTgxMDFF
QzVGRTA4MDAwNkEyMTggLyogRE9NQW5ub3RhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01Bbm5vdGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMTYxODExMUVDNUZFMDgwMDA2QTIxOCAvKiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NQXR0cmlidXRlR2V0dGVy
U2V0dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMDAsNiArODAwOSwx
MiBAQAogCQkJCUY2RjE1MDE4MjY5M0QzM0QwMDRCOThFRiAvKiBUZW1wb3JhbE5vdy5oICovLAog
CQkJCUY2RjE1MDE5MjY5M0QzM0UwMDRCOThFRiAvKiBUZW1wb3JhbE9iamVjdC5jcHAgKi8sCiAJ
CQkJRjZGMTUwMUEyNjkzRDMzRTAwNEI5OEVGIC8qIFRlbXBvcmFsT2JqZWN0LmggKi8sCisJCQkJ
RTMwRThBNEQyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmUuY3BwICovLAorCQkJ
CUUzMEU4QTUwMjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggKi8sCisJCQkJ
RTMwRThBNEYyNkRFMkU0NzAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5j
cHAgKi8sCisJCQkJRTMwRThBNTEyNkRFMkU0ODAwREE0OTE1IC8qIFRlbXBvcmFsVGltZVpvbmVD
b25zdHJ1Y3Rvci5oICovLAorCQkJCUUzMEU4QTRDMjZERTJFNDcwMERBNDkxNSAvKiBUZW1wb3Jh
bFRpbWVab25lUHJvdG90eXBlLmNwcCAqLywKKwkJCQlFMzBFOEE0RTI2REUyRTQ3MDBEQTQ5MTUg
LyogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oICovLAogCQkJCTBGQTJDMTc5MTdEN0NGODQw
MDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuY3BwICovLAogCQkJCTBGQTJDMTdBMTdEN0NGODQw
MDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLywKIAkJCQlGRTJFNkE3QTFENkVBNUZFMDA2
MEY4OTYgLyogVGhyb3dTY29wZS5jcHAgKi8sCkBAIC0xMDcwNCw2ICsxMDcxOSw5IEBACiAJCQkJ
QTNDN0VEQkEyNkIwREIzODAwNEMzNEM1IC8qIFRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTNDN0VEQjYyNkIwREIzODAwNEMzNEM1IC8qIFRlbXBvcmFs
RHVyYXRpb25Qcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY2RjE1MDIxMjY5M0Q0NTAw
MDRCOThFRiAvKiBUZW1wb3JhbE9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMEU4
QTU2MjZERTJFNDgwMERBNDkxNSAvKiBUZW1wb3JhbFRpbWVab25lLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzBFOEE1NzI2REUyRTQ4MDBEQTQ5MTUgLyogVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzBFOEE1NDI2REUyRTQ4MDBEQTQ5MTUgLyogVGVt
cG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEYxN0VF
Mjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0
NEE3QjQyMEJGNjhEOTAwMjJCMTcxIC8qIFRlcm1pbmF0ZWRDb2RlT3JpZ2luLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkEyQzE3QzE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA2YjY4NWVhNDRj
NTkwZGJlZDYyNDVkMWMyZTNmYWJmM2ZiNDY1ZmFiLi4zMjhmOTJmNWIyZmIyMDVjODM4NzgyMjQx
OWE1MDg0ZTBmYTFmN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC0xMDE5LDYg
KzEwMTksOSBAQCBydW50aW1lL1RlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvci5jcHAKIHJ1bnRp
bWUvVGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZS5jcHAKIHJ1bnRpbWUvVGVtcG9yYWxOb3cuY3Bw
CiBydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcAorcnVudGltZS9UZW1wb3JhbFRpbWVab25lLmNw
cAorcnVudGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuY3BwCitydW50aW1lL1RlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuY3BwCiBydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5jcHAKIHJ1
bnRpbWUvVGhyb3dTY29wZS5jcHAKIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3BwCmluZGV4IDM1YmQzNGQwZDBkOGJh
ZDdjMTQwYzI4MzhkZTQ2NmY4OWI5Mzc3YTIuLjllNDJhZmMxMzNjMDdlM2ZiOTFiODk3NzU2ZTNh
MTU1MTIzYWY5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lT
Tzg2MDEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3Bw
CkBAIC0zMiw2ICszMiwyMyBAQAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgSVNPODYwMSB7
CiAKK3N0YXRpYyBjb25zdGV4cHIgaW50NjRfdCBuc1BlckhvdXIgPSAxMDAwTEwgKiAxMDAwICog
MTAwMCAqIDYwICogNjA7CitzdGF0aWMgY29uc3RleHByIGludDY0X3QgbnNQZXJNaW51dGUgPSAx
MDAwTEwgKiAxMDAwICogMTAwMCAqIDYwOworc3RhdGljIGNvbnN0ZXhwciBpbnQ2NF90IG5zUGVy
U2Vjb25kID0gMTAwMExMICogMTAwMCAqIDEwMDA7CitzdGF0aWMgY29uc3RleHByIGludDY0X3Qg
bnNQZXJNaWxsaXNlY29uZCA9IDEwMDBMTCAqIDEwMDA7CitzdGF0aWMgY29uc3RleHByIGludDY0
X3QgbnNQZXJNaWNyb3NlY29uZCA9IDEwMDBMTDsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclR5
cGU+CitpbnQzMl90IHBhcnNlRGVjaW1hbEludDMyKGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaW50MzJfdCByZXN1bHQgPSAwOworICAgIGZvciAo
dW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgeworICAgICAgICBB
U1NFUlQoaXNBU0NJSURpZ2l0KGNoYXJhY3RlcnNbaW5kZXhdKSk7CisgICAgICAgIHJlc3VsdCA9
IChyZXN1bHQgKiAxMCkgKyBjaGFyYWN0ZXJzW2luZGV4XSAtICcwJzsKKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogLy8gRHVyYXRpb25IYW5kbGVGcmFjdGlvbnMgKCBmSG91cnMsIG1p
bnV0ZXMsIGZNaW51dGVzLCBzZWNvbmRzLCBmU2Vjb25kcywgbWlsbGlzZWNvbmRzLCBmTWlsbGlz
ZWNvbmRzLCBtaWNyb3NlY29uZHMsIGZNaWNyb3NlY29uZHMsIG5hbm9zZWNvbmRzLCBmTmFub3Nl
Y29uZHMgKQogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9y
YWwtZHVyYXRpb25oYW5kbGVmcmFjdGlvbnMKIHN0YXRpYyB2b2lkIGhhbmRsZUZyYWN0aW9uKER1
cmF0aW9uJiBkdXJhdGlvbiwgaW50IGZhY3RvciwgU3RyaW5nVmlldyBmcmFjdGlvblN0cmluZywg
VGVtcG9yYWxVbml0IGZyYWN0aW9uVHlwZSkKQEAgLTQzLDkgKzYwLDkgQEAgc3RhdGljIHZvaWQg
aGFuZGxlRnJhY3Rpb24oRHVyYXRpb24mIGR1cmF0aW9uLCBpbnQgZmFjdG9yLCBTdHJpbmdWaWV3
IGZyYWN0aW9uU3QKICAgICAgICAgVmVjdG9yPExDaGFyLCA5PiBwYWRkZWQoOSwgJzAnKTsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYWN0aW9uU3RyaW5nLmxlbmd0aCgpOyBp
KyspCiAgICAgICAgICAgICBwYWRkZWRbaV0gPSBmcmFjdGlvblN0cmluZ1tpXTsKLSAgICAgICAg
ZHVyYXRpb24uc2V0TWlsbGlzZWNvbmRzKGZhY3RvciAqIHBhcnNlSW50KHsgcGFkZGVkLmRhdGEo
KSwgMyB9LCAxMCkpOwotICAgICAgICBkdXJhdGlvbi5zZXRNaWNyb3NlY29uZHMoZmFjdG9yICog
cGFyc2VJbnQoeyAmcGFkZGVkLmRhdGEoKVszXSwgMyB9LCAxMCkpOwotICAgICAgICBkdXJhdGlv
bi5zZXROYW5vc2Vjb25kcyhmYWN0b3IgKiBwYXJzZUludCh7ICZwYWRkZWQuZGF0YSgpWzZdLCAz
IH0sIDEwKSk7CisgICAgICAgIGR1cmF0aW9uLnNldE1pbGxpc2Vjb25kcyhmYWN0b3IgKiBwYXJz
ZURlY2ltYWxJbnQzMihwYWRkZWQuZGF0YSgpLCAzKSk7CisgICAgICAgIGR1cmF0aW9uLnNldE1p
Y3Jvc2Vjb25kcyhmYWN0b3IgKiBwYXJzZURlY2ltYWxJbnQzMihwYWRkZWQuZGF0YSgpICsgMywg
MykpOworICAgICAgICBkdXJhdGlvbi5zZXROYW5vc2Vjb25kcyhmYWN0b3IgKiBwYXJzZURlY2lt
YWxJbnQzMihwYWRkZWQuZGF0YSgpICsgNiwgMykpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0yMjYsNSArMjQzLDE1OCBAQCBzdGQ6Om9wdGlvbmFsPER1cmF0aW9uPiBwYXJzZUR1cmF0
aW9uKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIH0pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPgorc3RhdGljIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gcGFyc2VUaW1lWm9u
ZU51bWVyaWNVVENPZmZzZXQoU3RyaW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYgYnVm
ZmVyKQoreworICAgIC8vIFRpbWVab25lTnVtZXJpY1VUQ09mZnNldCA6CisgICAgLy8gICAgIFRp
bWVab25lVVRDT2Zmc2V0U2lnbiBUaW1lWm9uZVVUQ09mZnNldEhvdXIKKyAgICAvLyAgICAgVGlt
ZVpvbmVVVENPZmZzZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0SG91ciA6IFRpbWVab25lVVRDT2Zm
c2V0TWludXRlCisgICAgLy8gICAgIFRpbWVab25lVVRDT2Zmc2V0U2lnbiBUaW1lWm9uZVVUQ09m
ZnNldEhvdXIgVGltZVpvbmVVVENPZmZzZXRNaW51dGUKKyAgICAvLyAgICAgVGltZVpvbmVVVENP
ZmZzZXRTaWduIFRpbWVab25lVVRDT2Zmc2V0SG91ciA6IFRpbWVab25lVVRDT2Zmc2V0TWludXRl
IDogVGltZVpvbmVVVENPZmZzZXRTZWNvbmQgVGltZVpvbmVVVENPZmZzZXRGcmFjdGlvbltvcHRd
CisgICAgLy8gICAgIFRpbWVab25lVVRDT2Zmc2V0U2lnbiBUaW1lWm9uZVVUQ09mZnNldEhvdXIg
VGltZVpvbmVVVENPZmZzZXRNaW51dGUgVGltZVpvbmVVVENPZmZzZXRTZWNvbmRbb3B0XQorICAg
IC8vCisgICAgLy8gIE1heGltdW0gYW5kIG1pbmltdW0gdmFsdWVzIGFyZSDCsTIzOjU5OjU5Ljk5
OTk5OTk5OSA9IMKxODYzOTk5OTk5OTk5OTlucywgd2hpY2ggY2FuIGJlIHJlcHJlc2VudGVkIGJ5
IGludDY0X3QgLyBkb3VibGUncyBpbnRlZ2VyIHBhcnQuCisKKyAgICAvLyBzaWduIGFuZCBob3Vy
LgorICAgIGlmIChidWZmZXIubGVuZ3RoUmVtYWluaW5nKCkgPCAzKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgaW50NjRfdCBmYWN0b3IgPSAxOworICAgIGlmICgqYnVmZmVy
ID09ICcrJykKKyAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKyAgICBlbHNlIGlmICgqYnVmZmVy
ID09ICctJyB8fCAqYnVmZmVyID09IDB4MjIxMikgeworICAgICAgICBmYWN0b3IgPSAtMTsKKyAg
ICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIGludDY0X3QgaG91ciA9IDA7CisgICAgQVNTRVJUKGJ1ZmZlci5sZW5n
dGhSZW1haW5pbmcoKSA+PSAyKTsKKyAgICBhdXRvIGZpcnN0SG91ckNoYXJhY3RlciA9ICpidWZm
ZXI7CisgICAgaWYgKGZpcnN0SG91ckNoYXJhY3RlciA+PSAnMCcgJiYgZmlyc3RIb3VyQ2hhcmFj
dGVyIDw9ICcyJykgeworICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICBhdXRvIHNl
Y29uZEhvdXJDaGFyYWN0ZXIgPSAqYnVmZmVyOworICAgICAgICBpZiAoIWlzQVNDSUlEaWdpdChz
ZWNvbmRIb3VyQ2hhcmFjdGVyKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIGhvdXIgPSAoc2Vjb25kSG91ckNoYXJhY3RlciAtICcwJykgKyAxMCAqIChmaXJzdEhv
dXJDaGFyYWN0ZXIgLSAnMCcpOworICAgICAgICBpZiAoaG91ciA+PSAyNCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGJ1ZmZlci5hZHZhbmNlKCk7CisgICAgfSBl
bHNlCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoYnVmZmVyLmF0RW5k
KCkpCisgICAgICAgIHJldHVybiAobnNQZXJIb3VyICogaG91cikgKiBmYWN0b3I7CisKKyAgICBi
b29sIHNwbGl0QnlDb2xvbiA9IGZhbHNlOworICAgIGlmICgqYnVmZmVyID09ICc6JykgeworICAg
ICAgICBidWZmZXIuYWR2YW5jZSgpOworICAgICAgICBzcGxpdEJ5Q29sb24gPSB0cnVlOworICAg
IH0KKworICAgIGludDY0X3QgbWludXRlID0gMDsKKyAgICBpZiAoYnVmZmVyLmxlbmd0aFJlbWFp
bmluZygpIDwgMikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZpcnN0
TWludXRlQ2hhcmFjdGVyID0gKmJ1ZmZlcjsKKyAgICBpZiAoZmlyc3RNaW51dGVDaGFyYWN0ZXIg
Pj0gJzAnICYmIGZpcnN0TWludXRlQ2hhcmFjdGVyIDw9ICc1JykgeworICAgICAgICBidWZmZXIu
YWR2YW5jZSgpOworICAgICAgICBhdXRvIHNlY29uZE1pbnV0ZUNoYXJhY3RlciA9ICpidWZmZXI7
CisgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KHNlY29uZE1pbnV0ZUNoYXJhY3RlcikpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBtaW51dGUgPSAoc2Vjb25kTWlu
dXRlQ2hhcmFjdGVyIC0gJzAnKSArIDEwICogKGZpcnN0TWludXRlQ2hhcmFjdGVyIC0gJzAnKTsK
KyAgICAgICAgQVNTRVJUKG1pbnV0ZSA8IDYwKTsKKyAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChidWZm
ZXIuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIChuc1BlckhvdXIgKiBob3VyICsgbnNQZXJNaW51
dGUgKiBtaW51dGUpICogZmFjdG9yOworCisgICAgaWYgKHNwbGl0QnlDb2xvbikgeworICAgICAg
ICBpZiAoKmJ1ZmZlciA9PSAnOicpCisgICAgICAgICAgICBidWZmZXIuYWR2YW5jZSgpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAg
IGludDY0X3Qgc2Vjb25kID0gMDsKKyAgICBpZiAoYnVmZmVyLmxlbmd0aFJlbWFpbmluZygpIDwg
MikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZpcnN0U2Vjb25kQ2hh
cmFjdGVyID0gKmJ1ZmZlcjsKKyAgICBpZiAoZmlyc3RTZWNvbmRDaGFyYWN0ZXIgPj0gJzAnICYm
IGZpcnN0U2Vjb25kQ2hhcmFjdGVyIDw9ICc1JykgeworICAgICAgICBidWZmZXIuYWR2YW5jZSgp
OworICAgICAgICBhdXRvIHNlY29uZFNlY29uZENoYXJhY3RlciA9ICpidWZmZXI7CisgICAgICAg
IGlmICghaXNBU0NJSURpZ2l0KHNlY29uZFNlY29uZENoYXJhY3RlcikpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBzZWNvbmQgPSAoc2Vjb25kU2Vjb25kQ2hhcmFj
dGVyIC0gJzAnKSArIDEwICogKGZpcnN0U2Vjb25kQ2hhcmFjdGVyIC0gJzAnKTsKKyAgICAgICAg
QVNTRVJUKG1pbnV0ZSA8IDYwKTsKKyAgICAgICAgYnVmZmVyLmFkdmFuY2UoKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChidWZmZXIuYXRFbmQo
KSkKKyAgICAgICAgcmV0dXJuIChuc1BlckhvdXIgKiBob3VyICsgbnNQZXJNaW51dGUgKiBtaW51
dGUgKyBuc1BlclNlY29uZCAqIHNlY29uZCkgKiBmYWN0b3I7CisKKyAgICBpZiAoKmJ1ZmZlciAh
PSAnLicgJiYgKmJ1ZmZlciAhPSAnLCcpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgYnVmZmVyLmFkdmFuY2UoKTsKKworICAgIHVuc2lnbmVkIGRpZ2l0cyA9IDA7CisgICAgd2hp
bGUgKGRpZ2l0cyA8IGJ1ZmZlci5sZW5ndGhSZW1haW5pbmcoKSAmJiBpc0FTQ0lJRGlnaXQoYnVm
ZmVyW2RpZ2l0c10pKQorICAgICAgICBkaWdpdHMrKzsKKyAgICBpZiAoIWRpZ2l0cyB8fCBkaWdp
dHMgPiA5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPExDaGFy
LCA5PiBwYWRkZWQoOSwgJzAnKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGlnaXRz
OyArK2kpCisgICAgICAgIHBhZGRlZFtpXSA9IGJ1ZmZlcltpXTsKKyAgICBidWZmZXIuYWR2YW5j
ZUJ5KGRpZ2l0cyk7CisgICAgaWYgKCFidWZmZXIuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGludDY0X3QgbWlsbGlzZWNvbmQgPSBwYXJzZURlY2ltYWxJbnQz
MihwYWRkZWQuZGF0YSgpLCAzKTsKKyAgICBpbnQ2NF90IG1pY3Jvc2Vjb25kID0gcGFyc2VEZWNp
bWFsSW50MzIocGFkZGVkLmRhdGEoKSArIDMsIDMpOworICAgIGludDY0X3QgbmFub3NlY29uZCA9
IHBhcnNlRGVjaW1hbEludDMyKHBhZGRlZC5kYXRhKCkgKyA2LCAzKTsKKworICAgIHJldHVybiAo
bnNQZXJIb3VyICogaG91ciArIG5zUGVyTWludXRlICogbWludXRlICsgbnNQZXJTZWNvbmQgKiBz
ZWNvbmQgKyBuc1Blck1pbGxpc2Vjb25kICogbWlsbGlzZWNvbmQgKyBuc1Blck1pY3Jvc2Vjb25k
ICogbWljcm9zZWNvbmQgKyBuYW5vc2Vjb25kKSAqIGZhY3RvcjsKK30KKworc3RkOjpvcHRpb25h
bDxpbnQ2NF90PiBwYXJzZVRpbWVab25lTnVtZXJpY1VUQ09mZnNldChTdHJpbmdWaWV3IHN0cmlu
ZykKK3sKKyAgICByZXR1cm4gcmVhZENoYXJhY3RlcnNGb3JQYXJzaW5nKHN0cmluZywgW10oYXV0
byBidWZmZXIpIC0+IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4geworICAgICAgICByZXR1cm4gcGFy
c2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQoYnVmZmVyKTsKKyAgICB9KTsKK30KKworLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtZm9ybWF0dGltZXpv
bmVvZmZzZXRzdHJpbmcKK1N0cmluZyBmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmluZyhpbnQ2NF90
IG9mZnNldCkKK3sKKyAgICBib29sIG5lZ2F0aXZlID0gZmFsc2U7CisgICAgaWYgKG9mZnNldCA8
IDApIHsKKyAgICAgICAgbmVnYXRpdmUgPSB0cnVlOworICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0
OyAvLyBUaGlzIGlzIE9LIHNpbmNlIG9mZnNldCByYW5nZSBpcyBtdWNoIG5hcnJvd2VyIHRoYW4g
W0lOVDY0X01JTiwgSU5UNjRfTUFYXSByYW5nZS4KKyAgICB9CisgICAgaW50NjRfdCBuYW5vc2Vj
b25kcyA9IG9mZnNldCAlIG5zUGVyU2Vjb25kOworICAgIGludDY0X3Qgc2Vjb25kcyA9IChvZmZz
ZXQgLyBuc1BlclNlY29uZCkgJSA2MDsKKyAgICBpbnQ2NF90IG1pbnV0ZXMgPSAob2Zmc2V0IC8g
bnNQZXJNaW51dGUpICUgNjA7CisgICAgaW50NjRfdCBob3VycyA9IG9mZnNldCAvIG5zUGVySG91
cjsKKworICAgIGlmIChuYW5vc2Vjb25kcykgeworICAgICAgICAvLyBTaW5jZSBuc1BlclNlY29u
ZCBpcyAxMDAwMDAwMDAwLCBzdHJpbmdpZmllZCBuYW5vc2Vjb25kcyB0YWtlcyBhdCBtb3N0IDkg
Y2hhcmFjdGVycyAoOTk5OTk5OTk5KS4KKyAgICAgICAgYXV0byBmcmFjdGlvbiA9IFdURjo6bnVt
YmVyVG9TdHJpbmdVbnNpZ25lZDxWZWN0b3I8TENoYXIsIDk+PihuYW5vc2Vjb25kcyk7CisgICAg
ICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgICAgdW5zaWduZWQgcGFkZGluZ0xlbmd0aCA9
IDkgLSBmcmFjdGlvbi5zaXplKCk7CisgICAgICAgIGZvciAoOyBpbmRleCA8IGZyYWN0aW9uLnNp
emUoKTsgKytpbmRleCkgeworICAgICAgICAgICAgaWYgKGZyYWN0aW9uW2luZGV4XSA9PSAnMCcp
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZnJhY3Rpb24ucmVz
aXplKGluZGV4KTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAn
KycsIHBhZCgnMCcsIDIsIGhvdXJzKSwgJzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSwgJzonLCBw
YWQoJzAnLCAyLCBzZWNvbmRzKSwgJy4nLCBwYWQoJzAnLCBwYWRkaW5nTGVuZ3RoLCBlbXB0eVN0
cmluZygpKSwgZnJhY3Rpb24pOworICAgIH0KKyAgICBpZiAoc2Vjb25kcykKKyAgICAgICAgcmV0
dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhvdXJzKSwg
JzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSwgJzonLCBwYWQoJzAnLCAyLCBzZWNvbmRzKSk7Cisg
ICAgcmV0dXJuIG1ha2VTdHJpbmcobmVnYXRpdmUgPyAnLScgOiAnKycsIHBhZCgnMCcsIDIsIGhv
dXJzKSwgJzonLCBwYWQoJzAnLCAyLCBtaW51dGVzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElT
Tzg2MDEKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSVNPODYwMS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNP
ODYwMS5oCmluZGV4IGU1N2MxY2E1MmI0N2Y0N2E5M2Q0N2ZiMGE0N2I5YjViZmNjYjYwODUuLjY3
Njg5ZDFjMjQ1YWZlZTJhYzI2OTU5YzI5NzBkZDQ5NjNhZTMwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JU084NjAxLmgKQEAgLTQ5LDYgKzQ5LDggQEAgc3RydWN0IER1cmF0aW9u
IHsKIH07CiAKIHN0ZDo6b3B0aW9uYWw8RHVyYXRpb24+IHBhcnNlRHVyYXRpb24oU3RyaW5nVmll
dyk7CitzdGQ6Om9wdGlvbmFsPGludDY0X3Q+IHBhcnNlVGltZVpvbmVOdW1lcmljVVRDT2Zmc2V0
KFN0cmluZ1ZpZXcpOworU3RyaW5nIGZvcm1hdFRpbWVab25lT2Zmc2V0U3RyaW5nKGludDY0X3Qp
OwogCiB9IC8vIG5hbWVzcGFjZSBJU084NjAxCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggZjc0ZTU3MTE3NzJj
NGQxYmQ5YTRkN2JlOWQ5MjI3NjFiNmRiY2JjNC4uOGQ4ZTk2ZTc3NTVkNThhYjg0MmUzNjBjZmFm
YjE5ZDAwZmUyNjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5jcHAKQEAgLTE3NzAsNjMgKzE3NzAsNzkgQEAgc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJs
ZU51bWJlcmluZ1N5c3RlbXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxP
YmplY3QsIFdURk1vdmUoZWxlbWVudHMpKSk7CiB9CiAKLS8vIGh0dHBzOi8vdGMzOS5lcy9wcm9w
b3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtY2Fub25pY2FsaXpldGltZXpvbmVuYW1lCi1zdGF0
aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VU
aW1lWm9uZShjb25zdCBTdHJpbmcmIHRpbWVab25lTmFtZSkKK3N0YXRpYyBib29sIGlzVmFsaWRU
aW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUoU3RyaW5nVmlldyB0aW1lWm9uZU5hbWUpCiB7CiAg
ICAgLy8gU29tZSB0aW1lIHpvbmUgbmFtZXMgYXJlIGluY2x1ZGVkIGluIElDVSwgYnV0IHRoZXkg
YXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgSUFOQSBUaW1lIFpvbmUgRGF0YWJhc2UuCiAgICAgLy8g
V2UgbmVlZCB0byBmaWx0ZXIgdGhlbSBvdXQuCiAgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNX
aXRoKCJTeXN0ZW1WLyIpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJFdGMvIikpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBpc1VUQ0VxdWl2YWxl
bnQodGltZVpvbmVOYW1lKTsKICAgICAvLyBJQU5BIHRpbWUgem9uZSBuYW1lcyBpbmNsdWRlICcv
Jy4gU29tZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5nLCBidXQgaXQgaXMgaW4gYmFja3dhcmQg
bGlua3MuCiAgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJlc29sdmVkIHRoZXNlIGJhY2t3YXJkIGxp
bmtzLgogICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRhaW5zKCcvJykpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB0aW1lWm9uZU5hbWUgPT0gIlVUQyJfcyB8
fCB0aW1lWm9uZU5hbWUgPT0gIkdNVCJfczsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIHJl
dHVybiB0aW1lWm9uZU5hbWU7CisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVt
ZXJhdGlvbi8jc2VjLWNhbm9uaWNhbGl6ZXRpbWV6b25lbmFtZQorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUoU3RyaW5n
JiYgdGltZVpvbmVOYW1lKQoreworICAgIGlmIChpc1VUQ0VxdWl2YWxlbnQodGltZVpvbmVOYW1l
KSkKKyAgICAgICAgcmV0dXJuICJVVEMiX3M7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25h
bChXVEZNb3ZlKHRpbWVab25lTmFtZSkpOwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9z
YWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZXRpbWV6b25lcwotc3RhdGljIEpTQXJy
YXkqIGF2YWlsYWJsZVRpbWVab25lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorY29u
c3QgVmVjdG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKQogewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0KLSAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBh
dXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRl
cjx1ZW51bV9jbG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVf
VFlQRV9DQU5PTklDQUwsIG51bGxwdHIsIG51bGxwdHIsICZzdGF0dXMpKTsKLSAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAg
ICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50
KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykp
IHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0
byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7Ci0gICAgICAgIHJldHVybiB7IH07
Ci0gICAgfQorICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGF2
YWlsYWJsZVRpbWVab25lczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9u
Y2U7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU9uY2UsIFsmXSB7CisgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXBvcmFyeTsKKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pF
Uk9fRVJST1I7CisgICAgICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVu
dW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVu
dW1lcmF0aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0
YXR1cykpOworICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKHN0YXR1cykpOwogCi0gICAgVmVjdG9y
PFN0cmluZywgMT4gZWxlbWVudHM7Ci0gICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShjb3VudCk7Ci0gICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytp
bmRleCkgewotICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Ci0gICAgICAgIGNvbnN0IGNoYXIq
IHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVz
KTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFi
bGUgdGltZXpvbmVzIl9zKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGludDMy
X3QgY291bnQgPSB1ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAg
ICAgIEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CisgICAgICAgIHRlbXBvcmFyeS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNvdW50KTsKKyAgICAgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICAgICAgaW50MzJfdCBsZW5ndGggPSAw
OworICAgICAgICAgICAgY29uc3QgY2hhciogcG9pbnRlciA9IHVlbnVtX25leHQoZW51bWVyYXRp
b24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VT
UyhzdGF0dXMpKTsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lWm9uZShwb2ludGVyLCBsZW5ndGgp
OworICAgICAgICAgICAgaWYgKGlzVmFsaWRUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUodGlt
ZVpvbmUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gY2Fub25pY2FsaXpl
VGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKFdURk1vdmUodGltZVpvbmUpKSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVtcG9yYXJ5LmFwcGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIs
IGxlbmd0aCk7Ci0gICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25l
TmFtZUZyb21JQ1VUaW1lWm9uZSh0aW1lWm9uZSkpCi0gICAgICAgICAgICBlbGVtZW50cy5hcHBl
bmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwotICAgIH0KIAotICAgIC8vIDQuIFNvcnQgcmVz
dWx0IGluIG9yZGVyIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBz
b3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29t
cGFyZWZuLgotICAgIHN0ZDo6c29ydChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwK
LSAgICAgICAgW10oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKLSAgICAgICAg
ICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwotICAgICAgICB9KTsK
KyAgICAgICAgLy8gVGhlIEF2YWlsYWJsZVRpbWVab25lcyBhYnN0cmFjdCBvcGVyYXRpb24gcmV0
dXJucyBhIExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUKKyAgICAgICAg
Ly8gdmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVz
aW5nIHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICAgICAgc3RkOjpzb3J0KHRlbXBvcmFyeS5i
ZWdpbigpLCB0ZW1wb3JhcnkuZW5kKCksCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEs
IGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2lu
dENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICAgICAgfSk7CisgICAgICAgIGF1dG8gZW5kID0g
c3RkOjp1bmlxdWUodGVtcG9yYXJ5LmJlZ2luKCksIHRlbXBvcmFyeS5lbmQoKSk7CisgICAgICAg
IGF2YWlsYWJsZVRpbWVab25lcy5jb25zdHJ1Y3QoKTsKKyAgICAgICAgYXZhaWxhYmxlVGltZVpv
bmVzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGVuZCAtIHRlbXBvcmFyeS5iZWdpbigpKTsKIAot
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9y
KGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpKTsKKyAgICAgICAgYXV0byBjcmVhdGVJ
bW1vcnRhbFRocmVhZFNhZmVTdHJpbmcgPSBbJl0oU3RyaW5nJiYgc3RyaW5nKSB7CisgICAgICAg
ICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdJ
bXBsOjpjcmVhdGVTdGF0aWNTdHJpbmdJbXBsKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcu
bGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZVN0YXRpY1N0
cmluZ0ltcGwoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAg
ICB9OworICAgICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgPSB0ZW1wb3JhcnkuYmVnaW4oKTsgaXRl
cmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKQorICAgICAgICAgICAgYXZhaWxhYmxlVGltZVpvbmVz
LT51bmNoZWNrZWRBcHBlbmQoY3JlYXRlSW1tb3J0YWxUaHJlYWRTYWZlU3RyaW5nKFdURk1vdmUo
Kml0ZXJhdG9yKSkpOworICAgIH0pOworICAgIHJldHVybiBhdmFpbGFibGVUaW1lWm9uZXM7Cit9
CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZh
aWxhYmxldGltZXpvbmVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0
cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIGludGxBdmFpbGFibGVUaW1lWm9uZXMoKSk7CiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxh
YmxldW5pdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRl
eCBmMjEzN2RlMzVlOTNhNTFlNWM4NTUyZGE2YWRmODliNDU5ZDUwOTdiLi45NmQyMTg1NWM5Y2E2
ZjNlMzE5NmI3NGVhMDJkMGVkNTNkMzljMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5oCkBAIC0xMTQsNiArMTE0LDkgQEAgaW5saW5lIENhbGVuZGFySUQg
aXNvODYwMUNhbGVuZGFySUQoKQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAordXNpbmcgVGltZVpv
bmVJRCA9IHVuc2lnbmVkOworY29uc3QgVmVjdG9yPFN0cmluZz4mIGludGxBdmFpbGFibGVUaW1l
Wm9uZXMoKTsKKwogVHJpU3RhdGUgaW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCogb3B0aW9ucywgUHJvcGVydHlOYW1lKTsKIFN0cmluZyBpbnRsU3RyaW5nT3B0aW9u
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgc3RkOjpp
bml0aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiB2YWx1ZXMsIGNvbnN0IGNoYXIqIG5vdEZvdW5k
LCBjb25zdCBjaGFyKiBmYWxsYmFjayk7CiB1bnNpZ25lZCBpbnRsTnVtYmVyT3B0aW9uKEpTR2xv
YmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgbWlu
aW11bSwgdW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQgZmFsbGJhY2spOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDZiMmY0NjE4
ZGExNzM4YTI4YzA2M2M2ZWVhNjJmNjg2OGM3NGJkZjYuLmIyZmRmNDY0MzZlODc3NjA0OTA2NDhh
ZmQwMTQxYzgyMjM2MTQ5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTIwNiw2ICsyMDYsOCBAQAogI2luY2x1ZGUgIlRlbXBv
cmFsRHVyYXRpb24uaCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlLmgiCiAj
aW5jbHVkZSAiVGVtcG9yYWxPYmplY3QuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lLmgi
CisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlZNVHJh
cHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIldl
YWtNYXBDb25zdHJ1Y3Rvci5oIgpAQCAtMTIzMCw2ICsxMjMyLDEzIEBAIGNhcGl0YWxOYW1lICMj
IENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNh
cGl0YWxOYW1lCiAgICAgICAgICAgICAgICAgaW5pdC5zZXQoVGVtcG9yYWxEdXJhdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwgZHVyYXRpb25Qcm90b3R5cGUpKTsK
ICAgICAgICAgICAgIH0pOwogCisgICAgICAgIG1fdGltZVpvbmVTdHJ1Y3R1cmUuaW5pdExhdGVy
KAorICAgICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPFN0cnVjdHVyZT4mIGluaXQpIHsK
KyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpT
R2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lcik7CisgICAgICAgICAgICAgICAgVGVtcG9yYWxUaW1l
Wm9uZVByb3RvdHlwZSogdGltZVpvbmVQcm90b3R5cGUgPSBUZW1wb3JhbFRpbWVab25lUHJvdG90
eXBlOjpjcmVhdGUoaW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBUZW1wb3JhbFRpbWVab25lUHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSk7CisgICAgICAgICAgICAgICAgaW5pdC5zZXQoVGVtcG9yYWxU
aW1lWm9uZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGdsb2JhbE9iamVjdCwgdGltZVpvbmVQ
cm90b3R5cGUpKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgIFRlbXBvcmFsT2JqZWN0KiB0
ZW1wb3JhbCA9IFRlbXBvcmFsT2JqZWN0OjpjcmVhdGUodm0sIFRlbXBvcmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMpKTsKICAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlRlbXBvcmFsLCB0ZW1wb3JhbCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIH0KQEAgLTIxMTAs
NiArMjExOSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2Vs
bCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIAogICAgIHRoaXNPYmplY3QtPm1fY2FsZW5kYXJT
dHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CiAgICAgdGhpc09iamVjdC0+bV9kdXJhdGlvblN0cnVj
dHVyZS52aXNpdCh2aXNpdG9yKTsKKyAgICB0aGlzT2JqZWN0LT5tX3RpbWVab25lU3RydWN0dXJl
LnZpc2l0KHZpc2l0b3IpOwogCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9udWxs
R2V0dGVyRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fbnVsbFNl
dHRlckZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCmluZGV4IGQ0ZGUzMGI2MTM2ZTljYzkzMTg0MjA3NDI0ZTQ3YWYyYTExNWU5OTEu
LmRlYjMzZGJkMTAzMDgzYTE4ZjQwYmE3YWRjNTY5NTI2MDE0OTdkMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMzI2LDYgKzMyNiw3
IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QgewogCiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2Fs
ZW5kYXJTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fZHVyYXRpb25TdHJ1Y3R1cmU7CisgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmU+IG1fdGltZVpvbmVTdHJ1Y3R1cmU7CiAKICAgICBXcml0ZUJhcnJpZXI8TnVs
bEdldHRlckZ1bmN0aW9uPiBtX251bGxHZXR0ZXJGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8
TnVsbFNldHRlckZ1bmN0aW9uPiBtX251bGxTZXR0ZXJGdW5jdGlvbjsKQEAgLTg3NSw2ICs4NzYs
NyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0IHsKIAogICAgIFN0cnVjdHVyZSogY2FsZW5kYXJTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Nh
bGVuZGFyU3RydWN0dXJlLmdldCh0aGlzKTsgfQogICAgIFN0cnVjdHVyZSogZHVyYXRpb25TdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX2R1cmF0aW9uU3RydWN0dXJlLmdldCh0aGlzKTsgfQorICAgIFN0
cnVjdHVyZSogdGltZVpvbmVTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX3RpbWVab25lU3RydWN0dXJl
LmdldCh0aGlzKTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRSZW1vdGVEZWJ1
Z2dpbmdFbmFibGVkKGJvb2wpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgcmVtb3RlRGVi
dWdnaW5nRW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVGVtcG9yYWxOb3cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxOb3cuY3BwCmluZGV4IDI0YjkyZTgxNjI3MTc5YmYxZjI0OGMzODBhYzRiNjQzNDEy
YWNhOWYuLmIwYTdlZWU0YzRhMDEzNjBiYTNjZmE1YWQ1ZTVhNDdiOTRiNjczM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE5vdy5jcHAKQEAgLTI0LDEyICsy
NCwyNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3RJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiVGVtcG9y
YWxUaW1lWm9uZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklW
SUFMTFlfREVTVFJVQ1RJQkxFKFRlbXBvcmFsTm93KTsKIAotY29uc3QgQ2xhc3NJbmZvIFRlbXBv
cmFsTm93OjpzX2luZm8gPSB7ICJUZW1wb3JhbC5Ob3ciLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBvcmFsTm93KSB9Oworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUpOworCit9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2luY2x1ZGUgIlRlbXBvcmFsTm93Lmx1dC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworLyogU291cmNlIGZvciBUZW1wb3JhbE5vdy5sdXQuaAorQGJlZ2luIHRlbXBv
cmFsTm93VGFibGUKKyAgICB0aW1lWm9uZSAgICAgICAgdGVtcG9yYWxOb3dGdW5jVGltZVpvbmUg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKK0BlbmQKKyovCisKK2NvbnN0IENsYXNzSW5mbyBUZW1w
b3JhbE5vdzo6c19pbmZvID0geyAiVGVtcG9yYWwuTm93IiwgJkJhc2U6OnNfaW5mbywgJnRlbXBv
cmFsTm93VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVtcG9yYWxOb3cpIH07
CiAKIFRlbXBvcmFsTm93OjpUZW1wb3JhbE5vdyhWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpAQCAtNTUsNCArNzAsMTcgQEAgdm9pZCBUZW1w
b3JhbE5vdzo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJ
VEhPVVRfVFJBTlNJVElPTigpOwogfQogCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVt
cG9yYWwvI3NlYy10ZW1wb3JhbC5ub3cudGltZXpvbmUKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9w
b3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXN5c3RlbXRpbWV6b25lCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04odGVtcG9yYWxOb3dGdW5jVGltZVpvbmUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisKKyAgICBTdHJpbmcgdGltZVpvbmVTdHJpbmcgPSB2bS5kYXRlQ2FjaGUuZGVmYXVsdFRp
bWVab25lKCk7CisgICAgc3RkOjpvcHRpb25hbDxUaW1lWm9uZUlEPiBpZGVudGlmaWVyID0gVGVt
cG9yYWxUaW1lWm9uZTo6aWRGb3JUaW1lWm9uZU5hbWUodGltZVpvbmVTdHJpbmcpOworICAgIGlm
ICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShUZW1wb3JhbFRp
bWVab25lOjpjcmVhdGVGcm9tVVRDT2Zmc2V0KHZtLCBnbG9iYWxPYmplY3QtPnRpbWVab25lU3Ry
dWN0dXJlKCksIDApKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpv
bmU6OmNyZWF0ZUZyb21JRCh2bSwgZ2xvYmFsT2JqZWN0LT50aW1lWm9uZVN0cnVjdHVyZSgpLCBp
ZGVudGlmaWVyLnZhbHVlKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE5vdy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxOb3cuaAppbmRleCAxNTFmNjY4MTI5N2IzMjhm
YTBmOTlhODAzYjIyNWVhZjA5YjQzOTg1Li5jMWM4NmEzNzE2NmEwYTEzMmJiNDllNjE4YWE4YjE4
ZDlmY2IyZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1w
b3JhbE5vdy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsTm93
LmgKQEAgLTI2LDYgKzI2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBUZW1wb3JhbE5vdyBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNl
ID0gSlNOb25GaW5hbE9iamVjdDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAg
IHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCmluZGV4IDk1MzU3MTlmN2Vj
MWEwZTk2NTQxOGE1NGFkMzUwYzdlYmU2MWM0OTkuLmRmNTE0ZDZkZGMxNDU5NmRkMmYyNWM5ZTEx
MWU4YTdjZWFkZmEyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1RlbXBvcmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbE9iamVjdC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJUZW1wb3JhbER1
cmF0aW9uQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiVGVtcG9yYWxOb3cuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25l
Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkBAIC01OSw2ICs2MSwxMyBAQCBzdGF0aWMgSlNWYWx1ZSBjcmVh
dGVEdXJhdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKICAgICByZXR1
cm4gVGVtcG9yYWxEdXJhdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFRlbXBvcmFsRHVyYXRp
b25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxUZW1wb3JhbER1cmF0aW9uUHJvdG90
eXBlKj4oZ2xvYmFsT2JqZWN0LT5kdXJhdGlvblN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVP
YmplY3QoKSkpOwogfQogCitzdGF0aWMgSlNWYWx1ZSBjcmVhdGVUaW1lWm9uZUNvbnN0cnVjdG9y
KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKK3sKKyAgICBUZW1wb3JhbE9iamVjdCogdGVtcG9y
YWxPYmplY3QgPSBqc0Nhc3Q8VGVtcG9yYWxPYmplY3QqPihvYmplY3QpOworICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0ZW1wb3JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsK
KyAgICByZXR1cm4gVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFRlbXBv
cmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxUZW1wb3JhbFRpbWVa
b25lUHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT50aW1lWm9uZVN0cnVjdHVyZSgpLT5zdG9yZWRQ
cm90b3R5cGVPYmplY3QoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2luY2x1ZGUg
IlRlbXBvcmFsT2JqZWN0Lmx1dC5oIgpAQCAtNjgsOCArNzcsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IC8qIFNvdXJjZSBmb3IgVGVtcG9yYWxPYmplY3QubHV0LmgKIEBiZWdpbiB0ZW1wb3JhbE9iamVj
dFRhYmxlCiAgIENhbGVuZGFyICAgICAgIGNyZWF0ZUNhbGVuZGFyQ29uc3RydWN0b3IgICAgICAg
RG9udEVudW18UHJvcGVydHlDYWxsYmFjawotICBOb3cgICAgICAgICAgICBjcmVhdGVOb3dPYmpl
Y3QgICAgICAgICAgICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKICAgRHVyYXRpb24g
ICAgICAgY3JlYXRlRHVyYXRpb25Db25zdHJ1Y3RvciAgICAgICBEb250RW51bXxQcm9wZXJ0eUNh
bGxiYWNrCisgIE5vdyAgICAgICAgICAgIGNyZWF0ZU5vd09iamVjdCAgICAgICAgICAgICAgICAg
RG9udEVudW18UHJvcGVydHlDYWxsYmFjaworICBUaW1lWm9uZSAgICAgICBjcmVhdGVUaW1lWm9u
ZUNvbnN0cnVjdG9yICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKIEBlbmQKICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpv
bmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2JkMzBjOWQ2MmFmMzYzNDE5M2EyYjgzNjU4NzA2ZGNhODBjMmJhYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFs
VGltZVpvbmUuY3BwCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlRlbXBvcmFsVGltZVpvbmUuaCIKKworI2luY2x1ZGUgIklTTzg2
MDEuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBUZW1wb3JhbFRpbWVa
b25lOjpzX2luZm8gPSB7ICJPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlbXBvcmFsVGltZVpvbmUpIH07CisKK25hbWVzcGFjZSBU
ZW1wb3JhbFRpbWVab25lSW50ZXJuYWwgeworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKK30KKworVGVtcG9yYWxUaW1lWm9uZSogVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRl
RnJvbUlEKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRpbWVab25lSUQgaWRlbnRpZmll
cikKK3sKKyAgICBUZW1wb3JhbFRpbWVab25lKiBmb3JtYXQgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxUZW1wb3JhbFRpbWVab25lPih2bS5oZWFwKSkgVGVtcG9yYWxUaW1lWm9uZSh2bSwg
c3RydWN0dXJlLCBUaW1lWm9uZSB7IFdURjo6aW5fcGxhY2U8MD4sIGlkZW50aWZpZXIgfSk7Cisg
ICAgZm9ybWF0LT5maW5pc2hDcmVhdGlvbih2bSk7CisgICAgcmV0dXJuIGZvcm1hdDsKK30KKwor
VGVtcG9yYWxUaW1lWm9uZSogVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNldChW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQ2NF90IHV0Y09mZnNldCkKK3sKKyAgICBU
ZW1wb3JhbFRpbWVab25lKiBmb3JtYXQgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxUZW1w
b3JhbFRpbWVab25lPih2bS5oZWFwKSkgVGVtcG9yYWxUaW1lWm9uZSh2bSwgc3RydWN0dXJlLCBU
aW1lWm9uZSB7IFdURjo6aW5fcGxhY2U8MT4sIHV0Y09mZnNldCB9KTsKKyAgICBmb3JtYXQtPmZp
bmlzaENyZWF0aW9uKHZtKTsKKyAgICByZXR1cm4gZm9ybWF0OworfQorCitTdHJ1Y3R1cmUqIFRl
bXBvcmFsVGltZVpvbmU6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKK30KKworVGVtcG9yYWxUaW1lWm9uZTo6VGVtcG9y
YWxUaW1lWm9uZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBUaW1lWm9uZSB0aW1lWm9u
ZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICAsIG1fdGltZVpvbmUodGltZVpvbmUp
Cit7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc3VwLWlzdmFs
aWR0aW1lem9uZW5hbWUKK3N0ZDo6b3B0aW9uYWw8VGltZVpvbmVJRD4gVGVtcG9yYWxUaW1lWm9u
ZTo6aWRGb3JUaW1lWm9uZU5hbWUoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgY29uc3QgYXV0
byYgdGltZVpvbmVzID0gaW50bEF2YWlsYWJsZVRpbWVab25lcygpOworICAgIGZvciAodW5zaWdu
ZWQgaW5kZXggPSAwOyBpbmRleCA8IHRpbWVab25lcy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodGltZVpvbmVzW2luZGV4XSwgc3RyaW5nKSkK
KyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9y
YWwtcGFyc2V0ZW1wb3JhbHRpbWVab25lc3RyaW5nCitzdGF0aWMgc3RkOjpvcHRpb25hbDxpbnQ2
NF90PiBwYXJzZVRlbXBvcmFsVGltZVpvbmVTdHJpbmcoU3RyaW5nVmlldykKK3sKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHBhcnNpbmcgdGVtcG9yYWwgdGltZVpvbmUgc3RyaW5nLCB3aGljaCBy
ZXF1aXJlcyBmdWxsIElTTyA4NjAxIHBhcnNlci4KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
fQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC50
aW1lem9uZS5mcm9tCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10
ZW1wb3JhbC10b3RlbXBvcmFsdGltZXpvbmUKK0pTT2JqZWN0KiBUZW1wb3JhbFRpbWVab25lOjpm
cm9tKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdGltZVpvbmVMaWtlKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAodGltZVpvbmVMaWtlLmlzT2JqZWN0KCkp
IHsKKyAgICAgICAgSlNPYmplY3QqIHRpbWVab25lTGlrZU9iamVjdCA9IGpzQ2FzdDxKU09iamVj
dCo+KHRpbWVab25lTGlrZSk7CisKKyAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gaW1wbGVt
ZW50IGNvZGUgcmV0cmlldmluZyBUaW1lWm9uZSBmcm9tIFRlbXBvcmFsIERhdGUgTGlrZSBvYmpl
Y3RzLiBCdXQKKyAgICAgICAgLy8gY3VycmVudGx5IHRoZXkgYXJlIG5vdCBpbXBsZW1lbnRlZCB5
ZXQuCisKKyAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IHRpbWVab25lTGlrZU9iamVjdC0+aGFz
UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZSk7CisgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGlmICghaGFzUHJv
cGVydHkpCisgICAgICAgICAgICByZXR1cm4gdGltZVpvbmVMaWtlT2JqZWN0OworCisgICAgICAg
IHRpbWVab25lTGlrZSA9IHRpbWVab25lTGlrZU9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgdm0u
cHJvcGVydHlOYW1lcy0+dGltZVpvbmUpOworICAgICAgICBpZiAodGltZVpvbmVMaWtlLmlzT2Jq
ZWN0KCkpIHsKKyAgICAgICAgICAgIEpTT2JqZWN0KiB0aW1lWm9uZUxpa2VPYmplY3QgPSBqc0Nh
c3Q8SlNPYmplY3QqPih0aW1lWm9uZUxpa2UpOworICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0
eSA9IHRpbWVab25lTGlrZU9iamVjdC0+aGFzUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bS5wcm9w
ZXJ0eU5hbWVzLT50aW1lWm9uZSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgICAgICAgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdGltZVpvbmVMaWtlT2JqZWN0OworICAgICAgICB9CisgICAgfQorCisgICAgYXV0
byB0aW1lWm9uZVN0cmluZyA9IHRpbWVab25lTGlrZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3Qp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPGludDY0X3Q+IHV0Y09mZnNldCA9IElTTzg2MDE6OnBhcnNlVGltZVpvbmVOdW1lcmljVVRD
T2Zmc2V0KHRpbWVab25lU3RyaW5nKTsKKyAgICBpZiAodXRjT2Zmc2V0KQorICAgICAgICByZXR1
cm4gVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNldCh2bSwgZ2xvYmFsT2JqZWN0
LT50aW1lWm9uZVN0cnVjdHVyZSgpLCB1dGNPZmZzZXQudmFsdWUoKSk7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPFRpbWVab25lSUQ+IGlkZW50aWZpZXIgPSBpZEZvclRpbWVab25lTmFtZSh0aW1lWm9u
ZVN0cmluZyk7CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBUZW1wb3JhbFRp
bWVab25lOjpjcmVhdGVGcm9tSUQodm0sIGdsb2JhbE9iamVjdC0+dGltZVpvbmVTdHJ1Y3R1cmUo
KSwgaWRlbnRpZmllci52YWx1ZSgpKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gdXRj
T2Zmc2V0RnJvbUluc3RhbnQgPSBwYXJzZVRlbXBvcmFsVGltZVpvbmVTdHJpbmcodGltZVpvbmVT
dHJpbmcpOworICAgIGlmICh1dGNPZmZzZXRGcm9tSW5zdGFudCkKKyAgICAgICAgcmV0dXJuIFRl
bXBvcmFsVGltZVpvbmU6OmNyZWF0ZUZyb21VVENPZmZzZXQodm0sIGdsb2JhbE9iamVjdC0+dGlt
ZVpvbmVTdHJ1Y3R1cmUoKSwgdXRjT2Zmc2V0RnJvbUluc3RhbnQudmFsdWUoKSk7CisKKyAgICB0
aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImFyZ3VtZW50IG5lZWRzIHRvIGJl
IFVUQyBvZmZzZXQgc3RyaW5nLCBUaW1lWm9uZSBpZGVudGlmaWVyLCBvciB0ZW1wb3JhbCBJbnN0
YW50IHN0cmluZyJfcyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVa
b25lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmMyODE1M2I3ZmQyNWJiNzY1ZTI1MDZmZDk2ZmE3NmI1ZTUxMGFkYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGlt
ZVpvbmUuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9u
ZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1c2luZyBC
YXNlID0gSlNOb25GaW5hbE9iamVjdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBl
LCBTdWJzcGFjZUFjY2VzcyBtb2RlPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3IoVk0mIHZtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZtLnRlbXBvcmFsVGltZVpvbmVTcGFj
ZTxtb2RlPigpOworICAgIH0KKworICAgIHN0YXRpYyBUZW1wb3JhbFRpbWVab25lKiBjcmVhdGVG
cm9tSUQoVk0mLCBTdHJ1Y3R1cmUqLCBUaW1lWm9uZUlEKTsKKyAgICBzdGF0aWMgVGVtcG9yYWxU
aW1lWm9uZSogY3JlYXRlRnJvbVVUQ09mZnNldChWTSYsIFN0cnVjdHVyZSosIGludDY0X3QpOwor
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSk7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICB1c2luZyBUaW1lWm9uZSA9
IFZhcmlhbnQ8VGltZVpvbmVJRCwgaW50NjRfdD47CisgICAgVGltZVpvbmUgdGltZVpvbmUoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVab25lOyB9CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxU
aW1lWm9uZUlEPiBpZEZvclRpbWVab25lTmFtZShTdHJpbmdWaWV3KTsKKworICAgIHN0YXRpYyBK
U09iamVjdCogZnJvbShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOworCitwcml2YXRlOgorICAg
IFRlbXBvcmFsVGltZVpvbmUoVk0mLCBTdHJ1Y3R1cmUqLCBUaW1lWm9uZSk7CisKKyAgICAvLyBU
aW1lWm9uZUlEIG9yIFVUQyBvZmZzZXQuCisgICAgVGltZVpvbmUgbV90aW1lWm9uZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTkzMzY1YWIzMzJmOGZmYWQ4NzU4ODAwMDgxMGNkMzBlZGRhNjFkNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsVGltZVpvbmVDb25zdHJ1
Y3Rvci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRl
ICJJU084NjAxLmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIlRlbXBvcmFs
VGltZVpvbmUuaCIKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmgiCisKK25h
bWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvckZ1bmNGcm9tKTsKKworfQorCisjaW5j
bHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmx1dC5oIgorCituYW1lc3BhY2UgSlND
IHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmdGVtcG9yYWxUaW1l
Wm9uZUNvbnN0cnVjdG9yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVtcG9y
YWxUaW1lWm9uZUNvbnN0cnVjdG9yKSB9OworCisvKiBTb3VyY2UgZm9yIFRlbXBvcmFsVGltZVpv
bmVDb25zdHJ1Y3Rvci5sdXQuaAorQGJlZ2luIHRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvclRh
YmxlCisgICAgZnJvbSAgICAgICAgICAgICB0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3JGdW5j
RnJvbSAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCitAZW5kCisqLworCitUZW1wb3Jh
bFRpbWVab25lQ29uc3RydWN0b3IqIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUq
IHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUpCit7CisgICAgVGVtcG9yYWxUaW1lWm9uZUNvbnN0
cnVjdG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFRlbXBvcmFs
VGltZVpvbmVDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3Rv
cih2bSwgc3RydWN0dXJlKTsKKyAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sIHRl
bXBvcmFsVGltZVpvbmVQcm90b3R5cGUpOworICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKK30KKwor
U3RydWN0dXJlKiBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQor
eworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7Cit9CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxUZW1wb3JhbFRp
bWVab25lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFRlbXBv
cmFsVGltZVpvbmUpOworCitUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3I6OlRlbXBvcmFsVGlt
ZVpvbmVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsVGVtcG9yYWxUaW1lWm9uZSwgY29uc3Ry
dWN0VGVtcG9yYWxUaW1lWm9uZSkKK3sKK30KKwordm9pZCBUZW1wb3JhbFRpbWVab25lQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSog
dGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSwgMCwgIlRpbWVab25lIl9zLCBQcm9wZXJ0eUFkZGl0aW9uTW9kZTo6V2l0aG91dFN0cnVjdHVy
ZVRyYW5zaXRpb24pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdFRlbXBvcmFsVGltZVpvbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpT
T2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHRp
bWVab25lU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGF1dG8gdGltZVpvbmVTdHJp
bmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8
aW50NjRfdD4gdXRjT2Zmc2V0ID0gSVNPODYwMTo6cGFyc2VUaW1lWm9uZU51bWVyaWNVVENPZmZz
ZXQodGltZVpvbmVTdHJpbmcpOworICAgIGlmICh1dGNPZmZzZXQpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoVGVtcG9yYWxUaW1lWm9uZTo6Y3JlYXRlRnJvbVVUQ09mZnNldCh2bSwg
c3RydWN0dXJlLCB1dGNPZmZzZXQudmFsdWUoKSkpOworCisgICAgc3RkOjpvcHRpb25hbDxUaW1l
Wm9uZUlEPiBpZGVudGlmaWVyID0gVGVtcG9yYWxUaW1lWm9uZTo6aWRGb3JUaW1lWm9uZU5hbWUo
dGltZVpvbmVTdHJpbmcpOworICAgIGlmICghaWRlbnRpZmllcikgeworICAgICAgICB0aHJvd1Jh
bmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImFyZ3VtZW50IG5lZWRzIHRvIGJlIFVUQyBv
ZmZzZXQgc3RyaW5nIG9yIFRpbWVab25lIGlkZW50aWZpZXIiX3MpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6
OmNyZWF0ZUZyb21JRCh2bSwgc3RydWN0dXJlLCBpZGVudGlmaWVyLnZhbHVlKCkpKTsKK30KKwor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUZW1wb3JhbFRpbWVab25lLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCit7CisgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2Fs
bGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVGltZVpvbmUiKSk7
Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0ZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3JGdW5jRnJvbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFRlbXBvcmFsVGltZVpvbmU6
OmZyb20oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbFRpbWVab25lQ29uc3RydWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjExNGEwYTcy
MTE5OGFhZWNhYmVjODhiYjhiNjc5ZWZjYjA2YWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSW50
ZXJuYWxGdW5jdGlvbi5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgVGVtcG9yYWxUaW1l
Wm9uZVByb3RvdHlwZTsKKworY2xhc3MgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yIGZpbmFs
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBJ
bnRlcm5hbEZ1bmN0aW9uOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisK
KyAgICBzdGF0aWMgVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1
Y3R1cmUqLCBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKik7CisgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKKworICAg
IERFQ0xBUkVfSU5GTzsKKworcHJpdmF0ZToKKyAgICBUZW1wb3JhbFRpbWVab25lQ29uc3RydWN0
b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgVGVtcG9y
YWxUaW1lWm9uZVByb3RvdHlwZSopOworfTsKK1NUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NI
QVJBQkxFKFRlbXBvcmFsVGltZVpvbmVDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CisK
K30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWEy
NWRiZDlmZTYwOTg5NjlkZDgwNzYzOWU1NjIwNTI2MzgwYWNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5j
cHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZS5oIgorCisjaW5jbHVkZSAiQnVpbHRp
bk5hbWVzLmgiCisjaW5jbHVkZSAiSVNPODYwMS5oIgorI2luY2x1ZGUgIkludGxPYmplY3QuaCIK
KyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZS5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odGVt
cG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlRnVuY1RvSlNPTik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlR2V0
dGVySWQpOworCit9CisKKyNpbmNsdWRlICJUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlLmx1dC5o
IgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsVGltZVpvbmVQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlbXBvcmFsLlRpbWVab25lIiwgJkJhc2U6OnNfaW5mbywg
JnRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKSB9OworCisvKiBTb3VyY2UgZm9yIFRlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUubHV0LmgKK0BiZWdpbiB0ZW1wb3JhbFRpbWVab25lUHJvdG90
eXBlVGFibGUKKyAgICB0b1N0cmluZyAgICAgICAgdGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1
bmNUb1N0cmluZyAgICAgRG9udEVudW18RnVuY3Rpb24gMAorICAgIHRvSlNPTiAgICAgICAgICB0
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlRnVuY1RvSlNPTiAgICAgICBEb250RW51bXxGdW5jdGlv
biAwCisgICAgaWQgICAgICAgICAgICAgIHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVHZXR0ZXJJ
ZCAgICAgICAgIFJlYWRPbmx5fERvbnRFbnVtfEN1c3RvbUFjY2Vzc29yCitAZW5kCisqLworCitU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpjcmVh
dGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKK3sKKyAgICBUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKiBvYmplY3QgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlPih2bS5oZWFwKSkg
VGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmZp
bmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBvYmplY3Q7Cit9CisK
K1N0cnVjdHVyZSogVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCit7
CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworfQorCitU
ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlOjpUZW1wb3JhbFRpbWVab25lUHJvdG90eXBlKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCit7Cit9
CisKK3ZvaWQgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCopCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAg
IEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lU
SE9VVF9UUkFOU0lUSU9OKCk7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1w
b3JhbC8jc2VjLWdldC10ZW1wb3JhbC50aW1lem9uZS5wcm90b3R5cGUuaWQKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUih0ZW1wb3JhbFRpbWVab25lUHJvdG90eXBlR2V0dGVySWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKS50b1N0cmluZyhnbG9iYWxPYmplY3QpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVz
L3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwudGltZXpvbmUucHJvdG90eXBlLnRvc3Ry
aW5nCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZUZ1
bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgYXV0byogdGltZVpvbmUgPSBq
c0R5bmFtaWNDYXN0PFRlbXBvcmFsVGltZVpvbmUqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUo
KSk7CisgICAgaWYgKCF0aW1lWm9uZSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgIlRlbXBvcmFsLlRpbWVab25lLnByb3RvdHlwZS50b1N0cmlu
ZyBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhIFRpbWVab25lIl9zKTsKKworICAgIGF1dG8g
dmFyaWFudCA9IHRpbWVab25lLT50aW1lWm9uZSgpOworICAgIGF1dG8gc3RyaW5nID0gV1RGOjpz
d2l0Y2hPbih2YXJpYW50LAorICAgICAgICBbXShUaW1lWm9uZUlEIGlkZW50aWZpZXIpIC0+IFN0
cmluZyB7CisgICAgICAgICAgICByZXR1cm4gaW50bEF2YWlsYWJsZVRpbWVab25lcygpW2lkZW50
aWZpZXJdOworICAgICAgICB9LAorICAgICAgICBbXShpbnQ2NF90IG9mZnNldCkgLT4gU3RyaW5n
IHsKKyAgICAgICAgICAgIHJldHVybiBJU084NjAxOjpmb3JtYXRUaW1lWm9uZU9mZnNldFN0cmlu
ZyhvZmZzZXQpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3Ry
aW5nKHZtLCBXVEZNb3ZlKHN0cmluZykpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bv
c2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwudGltZXpvbmUucHJvdG90eXBlLnRvanNvbgorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHRlbXBvcmFsVGltZVpvbmVQcm90b3R5cGVGdW5jVG9KU09O
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1N0
cmluZyhnbG9iYWxPYmplY3QpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbFRpbWVab25lUHJvdG90
eXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzEzNTBjZTYwMmQ2NTUwYTFmN2ZlODdiNWY5OGEyM2IyMTlkYzI1
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBv
cmFsVGltZVpvbmVQcm90b3R5cGUuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKwor
Y2xhc3MgVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vi
c3BhY2VGb3IoVk0mIHZtKQorICAgIHsKKyAgICAgICAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoVGVtcG9yYWxUaW1lWm9uZVByb3RvdHlwZSwgQmFzZSk7CisgICAgICAgIHJl
dHVybiAmdm0ucGxhaW5PYmplY3RTcGFjZTsKKyAgICB9CisKKyAgICBzdGF0aWMgVGVtcG9yYWxU
aW1lWm9uZVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9i
amVjdCosIEpTVmFsdWUpOworCisgICAgREVDTEFSRV9JTkZPOworCitwcml2YXRlOgorICAgIFRl
bXBvcmFsVGltZVpvbmVQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDNiZjY5MTQ4MzNiZDA0NjNj
YzI5ZjA3MzUzODVlOGIyYTg2ZTM0YjMuLjAyZjE4OTdiMGYzOTE4NTYwYjUwNTMxOWQ2ZTQ2MWJk
YjVkNzEwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTE2NCw2ICsx
NjQsNyBAQAogI2luY2x1ZGUgIlN5bWJvbE9iamVjdC5oIgogI2luY2x1ZGUgIlRlbXBvcmFsQ2Fs
ZW5kYXIuaCIKICNpbmNsdWRlICJUZW1wb3JhbER1cmF0aW9uLmgiCisjaW5jbHVkZSAiVGVtcG9y
YWxUaW1lWm9uZS5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlRo
dW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlci5oIgpAQCAtMTU4Nyw2ICsx
NTg4LDcgQEAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJvbFNw
YWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXAKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhzeW1ib2xPYmplY3RTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgU3ltYm9sT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHRlbXBsYXRlT2JqZWN0RGVzY3JpcHRvclNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxU
eXBlLmdldCgpLCBKU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvcikKIERZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbENhbGVuZGFyU3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIFRlbXBvcmFsQ2FsZW5kYXIpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1codGVtcG9yYWxUaW1lWm9uZVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBUZW1wb3JhbFRpbWVab25lKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHVpbnQ4QXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50OEFy
cmF5KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQ4Q2xhbXBl
ZEFycmF5U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVWludDhDbGFtcGVkQXJyYXkp
CiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codWludDE2QXJyYXlTcGFj
ZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNVaW50MTZBcnJheSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCmluZGV4IDZiM2EwZWZkNDU3ZjIxODYyYTBiYWZjNWFiN2QxZmZlYjhlZjY4
NTMuLjFlNzI1Y2UzNzQ4NzNlMDA3ZDFiMDNmNTQ5NTZjNTAyMzA0YzZiMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMTk1LDYgKzE5NSw3IEBAIGNsYXNzIFVubGlua2VkTW9k
dWxlUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFZpcnR1YWxSZWdpc3RlcjsKIGNsYXNzIFZNRW50
cnlTY29wZTsKIGNsYXNzIFRlbXBvcmFsQ2FsZW5kYXI7CitjbGFzcyBUZW1wb3JhbFRpbWVab25l
OwogY2xhc3MgVG9wTGV2ZWxHbG9iYWxPYmplY3RTY29wZTsKIGNsYXNzIFR5cGVQcm9maWxlcjsK
IGNsYXNzIFR5cGVQcm9maWxlckxvZzsKQEAgLTU5NCw2ICs1OTUsNyBAQCBjbGFzcyBWTSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9k
ZTxWTT4gewogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoc3ltYm9sT2Jq
ZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih0ZW1wbGF0
ZU9iamVjdERlc2NyaXB0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHRlbXBvcmFsQ2FsZW5kYXJTcGFjZSkKKyAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKHRlbXBvcmFsVGltZVpvbmVTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSKHVpbnQ4QXJyYXlTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSKHVpbnQ4Q2xhbXBlZEFycmF5U3BhY2UpCiAgICAgRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih1aW50MTZBcnJheVNwYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaAppbmRleCAwM2Y1ODYxYzMz
Y2JlMmYzOWQ1YzEwM2M4YTkyMGU0MWJkMDFmZWY3Li4yMGVlNTBhZTA2OGJlNGE2ZmVkOWMzM2U4
YjlkMmVhYWRkNjdjOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVnZXJUb1N0
cmluZ0NvbnZlcnNpb24uaApAQCAtMTI3LDYgKzEyNywxMyBAQCBjb25zdGV4cHIgdW5zaWduZWQg
bGVuZ3RoT2ZJbnRlZ2VyQXNTdHJpbmcoSW50ZWdlclR5cGUgaW50ZWdlcikKICAgICAgICAgcmV0
dXJuIGxlbmd0aE9mSW50ZWdlckFzU3RyaW5nSW1wbDxJbnRlZ2VyVHlwZSwgUG9zaXRpdmVOdW1i
ZXI+KGludGVnZXIpOwogfQogCit0ZW1wbGF0ZTxzaXplX3QgTj4KK3N0cnVjdCBJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uVHJhaXQ8VmVjdG9yPExDaGFyLCBOPj4geworICAgIHVzaW5nIFJldHVy
blR5cGUgPSBWZWN0b3I8TENoYXIsIE4+OworICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5
cGUgPSB2b2lkOworICAgIHN0YXRpYyBSZXR1cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgsIHZvaWQqKSB7IHJldHVybiB7IGNoYXJhY3RlcnMsIGxlbmd0aCB9
OyB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpsZW5ndGhPZkludGVn
ZXJBc1N0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0
ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAy
ZDg1OWI0NTAwMTQ4Njc1YjNmMTdlMWY0OGI3ZWU0MDFjYTJjZjI1Li40ZTZjYzM0ZmExM2E3YmRk
MTllNzg1ODEzMmQ5MzUwMTE5YWNlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oCkBAIC0xNTAsMjQgKzE1MCwyOCBAQCB0ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5
cGVBZGFwdGVyPEFTQ0lJTGl0ZXJhbCwgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZQog
ICAgIH0KIH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8VmVjdG9yPGNo
YXI+LCB2b2lkPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZSwgc2l6ZV90IE4+CitjbGFz
cyBTdHJpbmdUeXBlQWRhcHRlcjxWZWN0b3I8Q2hhclR5cGUsIE4+LCB2b2lkPiB7CiBwdWJsaWM6
Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCisgICAg
dXNpbmcgQ2hhclR5cGVGb3JTdHJpbmcgPSBzdGQ6OmNvbmRpdGlvbmFsX3Q8c2l6ZW9mKENoYXJU
eXBlKSA9PSBzaXplb2YoTENoYXIpLCBMQ2hhciwgVUNoYXI+OworICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKENoYXJUeXBlRm9yU3RyaW5nKSA9PSBzaXplb2YoQ2hhclR5cGUpKTsKKworICAgIFN0
cmluZ1R5cGVBZGFwdGVyKGNvbnN0IFZlY3RvcjxDaGFyVHlwZSwgTj4mIHZlY3RvcikKICAgICAg
ICAgOiBtX3ZlY3RvciB7IHZlY3RvciB9CiAgICAgewogICAgIH0KIAogICAgIHNpemVfdCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX3ZlY3Rvci5zaXplKCk7IH0KLSAgICBib29sIGlzOEJpdCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJu
IHNpemVvZihDaGFyVHlwZSkgPT0gMTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhkZXN0aW5hdGlvbiwgY2hhcmFjdGVycygpLCBsZW5n
dGgoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycygpIGNvbnN0
CisgICAgY29uc3QgQ2hhclR5cGVGb3JTdHJpbmcqIGNoYXJhY3RlcnMoKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihtX3ZlY3Rvci5k
YXRhKCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDaGFyVHlwZUZv
clN0cmluZyo+KG1fdmVjdG9yLmRhdGEoKSk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPGNo
YXI+JiBtX3ZlY3RvcjsKKyAgICBjb25zdCBWZWN0b3I8Q2hhclR5cGUsIE4+JiBtX3ZlY3RvcjsK
IH07CiAKIHRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZv
aWQ+IHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZWE1ZGQwYWIzMTRhN2I0MTFmZjIzODA4YTU5YTc2Y2ZhNTM3N2EzNS4uNzRlNDg0ZTVi
YzVlMjVkMTI4YjI2YzU2YWUyZTEzZmFjNzI5NjhjZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0w
MyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIElt
cGxlbWVudCBUZW1wb3JhbC5UaW1lWm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBjb21wbGV4LnlhbWw6CisgICAgICAgICogY29tcGxleC90ZW1w
b3JhbC1ub3ctdGltZXpvbmUtY2hlY2suanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAqIGNvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1lbnVt
ZXJhdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3MvdGVtcG9yYWwtdGltZXpvbmUuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAo
bGV0LnRleHQub2YuZmFpbHVyZXMuc2hvdWxkVGhyb3cpOgorICAgICAgICAocmV2aXZlcik6CisK
IDIwMjEtMDgtMzEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAg
ICAgICAgIFtKU0NdIEltcGxlbWVudCBUZW1wb3JhbC5EdXJhdGlvbgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9jb21wbGV4LnlhbWwgYi9KU1Rlc3RzL2NvbXBsZXgueWFtbAppbmRleCBiOTk3ZGI0NThh
YzI2MjM3MzdmODBjNjNlZmViOTkyYTZhNzEyZmE3Li44MWZmNWU2YWY1NjZjOWE4MjdjMTNhZWEz
MmJhNDU2MDhhNjYyOTlkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2NvbXBsZXgueWFtbAorKysgYi9K
U1Rlc3RzL2NvbXBsZXgueWFtbApAQCAtNDYsMyArNDYsOSBAQAogCiAtIHBhdGg6IGNvbXBsZXgv
aW50bC10aW1lem9uZS1jaGVjay5qcwogICBjbWQ6IHJ1bkNvbXBsZXhUZXN0IFtdLCBbXSwgIlRa
PUFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiLS11c2VEb2xsYXJWTT0xIgorCistIHBhdGg6IGNvbXBs
ZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLWNoZWNrLmpzCisgIGNtZDogcnVuQ29tcGxleFRlc3Qg
W10sIFtdLCAiVFo9QW1lcmljYS9Mb3NfQW5nZWxlcyIsICItLXVzZURvbGxhclZNPTEiLCAiLS11
c2VUZW1wb3JhbD0xIgorCistIHBhdGg6IGNvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLXdp
dGgtYnJva2VuLXR6LmpzCisgIGNtZDogcnVuQ29tcGxleFRlc3QgW10sIFtdLCAiVFo9VU5ERUZJ
TkVEIiwgIi0tdXNlRG9sbGFyVk09MSIsICItLXVzZVRlbXBvcmFsPTEiCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL2NvbXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLWNoZWNrLmpzIGIvSlNUZXN0cy9j
b21wbGV4L3RlbXBvcmFsLW5vdy10aW1lem9uZS1jaGVjay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTc0MGMy
OWYwMjk2ZDliZWNlOTdkM2E1NWJiNWM0ZDRjODViMzRkCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9jb21wbGV4L3RlbXBvcmFsLW5vdy10aW1lem9uZS1jaGVjay5qcwpAQCAtMCwwICsxLDYg
QEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBh
Y3R1YWwpOworfQorCitzaG91bGRCZShUZW1wb3JhbC5Ob3cudGltZVpvbmUoKS5pZCwgYEFtZXJp
Y2EvTG9zX0FuZ2VsZXNgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvY29tcGxleC90ZW1wb3JhbC1u
b3ctdGltZXpvbmUtd2l0aC1icm9rZW4tdHouanMgYi9KU1Rlc3RzL2NvbXBsZXgvdGVtcG9yYWwt
bm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmOGQzMGQ3NzU5NzU0
Y2Y1Y2QwMDljMzZhMWQzMTU2ZTRkYTg4MTIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL2Nv
bXBsZXgvdGVtcG9yYWwtbm93LXRpbWV6b25lLXdpdGgtYnJva2VuLXR6LmpzCkBAIC0wLDAgKzEs
NiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKFRlbXBvcmFsLk5vdy50aW1lWm9uZSgpLmlkLCBgVVRD
YCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcwppbmRleCAzY2UyMDU0MTM1NmRjY2U1NmM3
ZmY1ZTNiNmM0MzVmOGIyMzg4ZTg5Li5kMTI1MWRjOTZmMWNiMGZkZWRhNDEyOTA1NDAxYjVkYjQ2
ZTI5ZmY1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanMKQEAgLTI5LDcgKzI5LDcgQEAg
ZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRCZShudW1iZXJp
bmdTeXN0ZW1zU3RyaW5nID09PSBgWyJhZGxtIiwiYWhvbSIsImFyYWIiLCJhcmFiZXh0IiwiYXJt
biIsImFybW5sb3ciLCJiYWxpIiwiYmVuZyIsImJoa3MiLCJicmFoIiwiY2FrbSIsImNoYW0iLCJj
eXJsIiwiZGV2YSIsImRpYWsiLCJldGhpIiwiZnVsbHdpZGUiLCJnZW9yIiwiZ29uZyIsImdvbm0i
LCJncmVrIiwiZ3Jla2xvdyIsImd1anIiLCJndXJ1IiwiaGFuaWRheXMiLCJoYW5pZGVjIiwiaGFu
cyIsImhhbnNmaW4iLCJoYW50IiwiaGFudGZpbiIsImhlYnIiLCJobW5nIiwiaG1ucCIsImphdmEi
LCJqcGFuIiwianBhbmZpbiIsImpwYW55ZWFyIiwia2FsaSIsImtobXIiLCJrbmRhIiwibGFuYSIs
ImxhbmF0aGFtIiwibGFvbyIsImxhdG4iLCJsZXBjIiwibGltYiIsIm1hdGhib2xkIiwibWF0aGRi
bCIsIm1hdGhtb25vIiwibWF0aHNhbmIiLCJtYXRoc2FucyIsIm1seW0iLCJtb2RpIiwibW9uZyIs
Im1yb28iLCJtdGVpIiwibXltciIsIm15bXJzaGFuIiwibXltcnRsbmciLCJuZXdhIiwibmtvbyIs
Im9sY2siLCJvcnlhIiwib3NtYSIsInJvaGciLCJyb21hbiIsInJvbWFubG93Iiwic2F1ciIsInNl
Z21lbnQiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3JhIiwic3VuZCIsInRha3IiLCJ0YWx1Iiwi
dGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQiLCJ0aXJoIiwidmFpaSIsIndhcmEi
LCJ3Y2hvIl1gIHx8IG51bWJlcmluZ1N5c3RlbXNTdHJpbmcgPT09IGBbImFkbG0iLCJhaG9tIiwi
YXJhYiIsImFyYWJleHQiLCJhcm1uIiwiYXJtbmxvdyIsImJhbGkiLCJiZW5nIiwiYmhrcyIsImJy
YWgiLCJjYWttIiwiY2hhbSIsImN5cmwiLCJkZXZhIiwiZXRoaSIsImZ1bGx3aWRlIiwiZ2VvciIs
ImdvbmciLCJnb25tIiwiZ3JlayIsImdyZWtsb3ciLCJndWpyIiwiZ3VydSIsImhhbmlkYXlzIiwi
aGFuaWRlYyIsImhhbnMiLCJoYW5zZmluIiwiaGFudCIsImhhbnRmaW4iLCJoZWJyIiwiaG1uZyIs
ImhtbnAiLCJqYXZhIiwianBhbiIsImpwYW5maW4iLCJqcGFueWVhciIsImthbGkiLCJraG1yIiwi
a25kYSIsImxhbmEiLCJsYW5hdGhhbSIsImxhb28iLCJsYXRuIiwibGVwYyIsImxpbWIiLCJtYXRo
Ym9sZCIsIm1hdGhkYmwiLCJtYXRobW9ubyIsIm1hdGhzYW5iIiwibWF0aHNhbnMiLCJtbHltIiwi
bW9kaSIsIm1vbmciLCJtcm9vIiwibXRlaSIsIm15bXIiLCJteW1yc2hhbiIsIm15bXJ0bG5nIiwi
bmV3YSIsIm5rb28iLCJvbGNrIiwib3J5YSIsIm9zbWEiLCJyb2hnIiwicm9tYW4iLCJyb21hbmxv
dyIsInNhdXIiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3JhIiwic3VuZCIsInRha3IiLCJ0YWx1
IiwidGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQiLCJ0aXJoIiwidmFpaSIsIndh
cmEiLCJ3Y2hvIl1gLCB0cnVlKTsKIAogbGV0IHRpbWVab25lcyA9IEludGwuc3VwcG9ydGVkVmFs
dWVzT2YoInRpbWVab25lIik7Ci1zaG91bGRCZShKU09OLnN0cmluZ2lmeSh0aW1lWm9uZXMpLCBg
WyJBZnJpY2EvQWJpZGphbiIsIkFmcmljYS9BY2NyYSIsIkFmcmljYS9BZGRpc19BYmFiYSIsIkFm
cmljYS9BbGdpZXJzIiwiQWZyaWNhL0FzbWVyYSIsIkFmcmljYS9CYW1ha28iLCJBZnJpY2EvQmFu
Z3VpIiwiQWZyaWNhL0Jhbmp1bCIsIkFmcmljYS9CaXNzYXUiLCJBZnJpY2EvQmxhbnR5cmUiLCJB
ZnJpY2EvQnJhenphdmlsbGUiLCJBZnJpY2EvQnVqdW1idXJhIiwiQWZyaWNhL0NhaXJvIiwiQWZy
aWNhL0Nhc2FibGFuY2EiLCJBZnJpY2EvQ2V1dGEiLCJBZnJpY2EvQ29uYWtyeSIsIkFmcmljYS9E
YWthciIsIkFmcmljYS9EYXJfZXNfU2FsYWFtIiwiQWZyaWNhL0RqaWJvdXRpIiwiQWZyaWNhL0Rv
dWFsYSIsIkFmcmljYS9FbF9BYWl1biIsIkFmcmljYS9GcmVldG93biIsIkFmcmljYS9HYWJvcm9u
ZSIsIkFmcmljYS9IYXJhcmUiLCJBZnJpY2EvSm9oYW5uZXNidXJnIiwiQWZyaWNhL0p1YmEiLCJB
ZnJpY2EvS2FtcGFsYSIsIkFmcmljYS9LaGFydG91bSIsIkFmcmljYS9LaWdhbGkiLCJBZnJpY2Ev
S2luc2hhc2EiLCJBZnJpY2EvTGFnb3MiLCJBZnJpY2EvTGlicmV2aWxsZSIsIkFmcmljYS9Mb21l
IiwiQWZyaWNhL0x1YW5kYSIsIkFmcmljYS9MdWJ1bWJhc2hpIiwiQWZyaWNhL0x1c2FrYSIsIkFm
cmljYS9NYWxhYm8iLCJBZnJpY2EvTWFwdXRvIiwiQWZyaWNhL01hc2VydSIsIkFmcmljYS9NYmFi
YW5lIiwiQWZyaWNhL01vZ2FkaXNodSIsIkFmcmljYS9Nb25yb3ZpYSIsIkFmcmljYS9OYWlyb2Jp
IiwiQWZyaWNhL05kamFtZW5hIiwiQWZyaWNhL05pYW1leSIsIkFmcmljYS9Ob3Vha2Nob3R0Iiwi
QWZyaWNhL091YWdhZG91Z291IiwiQWZyaWNhL1BvcnRvLU5vdm8iLCJBZnJpY2EvU2FvX1RvbWUi
LCJBZnJpY2EvVHJpcG9saSIsIkFmcmljYS9UdW5pcyIsIkFmcmljYS9XaW5kaG9layIsIkFtZXJp
Y2EvQWRhayIsIkFtZXJpY2EvQW5jaG9yYWdlIiwiQW1lcmljYS9Bbmd1aWxsYSIsIkFtZXJpY2Ev
QW50aWd1YSIsIkFtZXJpY2EvQXJhZ3VhaW5hIiwiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEi
LCJBbWVyaWNhL0FyZ2VudGluYS9SaW9fR2FsbGVnb3MiLCJBbWVyaWNhL0FyZ2VudGluYS9TYWx0
YSIsIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9KdWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0x1
aXMiLCJBbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvVXNodWFp
YSIsIkFtZXJpY2EvQXJ1YmEiLCJBbWVyaWNhL0FzdW5jaW9uIiwiQW1lcmljYS9CYWhpYSIsIkFt
ZXJpY2EvQmFoaWFfQmFuZGVyYXMiLCJBbWVyaWNhL0JhcmJhZG9zIiwiQW1lcmljYS9CZWxlbSIs
IkFtZXJpY2EvQmVsaXplIiwiQW1lcmljYS9CbGFuYy1TYWJsb24iLCJBbWVyaWNhL0JvYV9WaXN0
YSIsIkFtZXJpY2EvQm9nb3RhIiwiQW1lcmljYS9Cb2lzZSIsIkFtZXJpY2EvQnVlbm9zX0FpcmVz
IiwiQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwiQW1lcmljYS9DYW1wb19HcmFuZGUiLCJBbWVyaWNh
L0NhbmN1biIsIkFtZXJpY2EvQ2FyYWNhcyIsIkFtZXJpY2EvQ2F0YW1hcmNhIiwiQW1lcmljYS9D
YXllbm5lIiwiQW1lcmljYS9DYXltYW4iLCJBbWVyaWNhL0NoaWNhZ28iLCJBbWVyaWNhL0NoaWh1
YWh1YSIsIkFtZXJpY2EvQ29yYWxfSGFyYm91ciIsIkFtZXJpY2EvQ29yZG9iYSIsIkFtZXJpY2Ev
Q29zdGFfUmljYSIsIkFtZXJpY2EvQ3Jlc3RvbiIsIkFtZXJpY2EvQ3VpYWJhIiwiQW1lcmljYS9D
dXJhY2FvIiwiQW1lcmljYS9EYW5tYXJrc2hhdm4iLCJBbWVyaWNhL0Rhd3NvbiIsIkFtZXJpY2Ev
RGF3c29uX0NyZWVrIiwiQW1lcmljYS9EZW52ZXIiLCJBbWVyaWNhL0RldHJvaXQiLCJBbWVyaWNh
L0RvbWluaWNhIiwiQW1lcmljYS9FZG1vbnRvbiIsIkFtZXJpY2EvRWlydW5lcGUiLCJBbWVyaWNh
L0VsX1NhbHZhZG9yIiwiQW1lcmljYS9Gb3J0X05lbHNvbiIsIkFtZXJpY2EvRm9ydGFsZXphIiwi
QW1lcmljYS9HbGFjZV9CYXkiLCJBbWVyaWNhL0dvZHRoYWIiLCJBbWVyaWNhL0dvb3NlX0JheSIs
IkFtZXJpY2EvR3JhbmRfVHVyayIsIkFtZXJpY2EvR3JlbmFkYSIsIkFtZXJpY2EvR3VhZGVsb3Vw
ZSIsIkFtZXJpY2EvR3VhdGVtYWxhIiwiQW1lcmljYS9HdWF5YXF1aWwiLCJBbWVyaWNhL0d1eWFu
YSIsIkFtZXJpY2EvSGFsaWZheCIsIkFtZXJpY2EvSGF2YW5hIiwiQW1lcmljYS9IZXJtb3NpbGxv
IiwiQW1lcmljYS9JbmRpYW5hL0tub3giLCJBbWVyaWNhL0luZGlhbmEvTWFyZW5nbyIsIkFtZXJp
Y2EvSW5kaWFuYS9QZXRlcnNidXJnIiwiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eSIsIkFtZXJp
Y2EvSW5kaWFuYS9WZXZheSIsIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLCJBbWVyaWNhL0lu
ZGlhbmEvV2luYW1hYyIsIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwiQW1lcmljYS9JbnV2aWsiLCJB
bWVyaWNhL0lxYWx1aXQiLCJBbWVyaWNhL0phbWFpY2EiLCJBbWVyaWNhL0p1anV5IiwiQW1lcmlj
YS9KdW5lYXUiLCJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG8iLCJBbWVyaWNhL0tyYWxlbmRp
amsiLCJBbWVyaWNhL0xhX1BheiIsIkFtZXJpY2EvTGltYSIsIkFtZXJpY2EvTG9zX0FuZ2VsZXMi
LCJBbWVyaWNhL0xvdWlzdmlsbGUiLCJBbWVyaWNhL0xvd2VyX1ByaW5jZXMiLCJBbWVyaWNhL01h
Y2VpbyIsIkFtZXJpY2EvTWFuYWd1YSIsIkFtZXJpY2EvTWFuYXVzIiwiQW1lcmljYS9NYXJpZ290
IiwiQW1lcmljYS9NYXJ0aW5pcXVlIiwiQW1lcmljYS9NYXRhbW9yb3MiLCJBbWVyaWNhL01hemF0
bGFuIiwiQW1lcmljYS9NZW5kb3phIiwiQW1lcmljYS9NZW5vbWluZWUiLCJBbWVyaWNhL01lcmlk
YSIsIkFtZXJpY2EvTWV0bGFrYXRsYSIsIkFtZXJpY2EvTWV4aWNvX0NpdHkiLCJBbWVyaWNhL01p
cXVlbG9uIiwiQW1lcmljYS9Nb25jdG9uIiwiQW1lcmljYS9Nb250ZXJyZXkiLCJBbWVyaWNhL01v
bnRldmlkZW8iLCJBbWVyaWNhL01vbnRyZWFsIiwiQW1lcmljYS9Nb250c2VycmF0IiwiQW1lcmlj
YS9OYXNzYXUiLCJBbWVyaWNhL05ld19Zb3JrIiwiQW1lcmljYS9OaXBpZ29uIiwiQW1lcmljYS9O
b21lIiwiQW1lcmljYS9Ob3JvbmhhIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwiQW1l
cmljYS9Ob3J0aF9EYWtvdGEvQ2VudGVyIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvTmV3X1NhbGVt
IiwiQW1lcmljYS9PamluYWdhIiwiQW1lcmljYS9QYW5hbWEiLCJBbWVyaWNhL1BhbmduaXJ0dW5n
IiwiQW1lcmljYS9QYXJhbWFyaWJvIiwiQW1lcmljYS9QaG9lbml4IiwiQW1lcmljYS9Qb3J0LWF1
LVByaW5jZSIsIkFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsIkFtZXJpY2EvUG9ydG9fVmVsaG8iLCJB
bWVyaWNhL1B1ZXJ0b19SaWNvIiwiQW1lcmljYS9QdW50YV9BcmVuYXMiLCJBbWVyaWNhL1JhaW55
X1JpdmVyIiwiQW1lcmljYS9SYW5raW5fSW5sZXQiLCJBbWVyaWNhL1JlY2lmZSIsIkFtZXJpY2Ev
UmVnaW5hIiwiQW1lcmljYS9SZXNvbHV0ZSIsIkFtZXJpY2EvUmlvX0JyYW5jbyIsIkFtZXJpY2Ev
U2FudGFfSXNhYmVsIiwiQW1lcmljYS9TYW50YXJlbSIsIkFtZXJpY2EvU2FudGlhZ28iLCJBbWVy
aWNhL1NhbnRvX0RvbWluZ28iLCJBbWVyaWNhL1Nhb19QYXVsbyIsIkFtZXJpY2EvU2NvcmVzYnlz
dW5kIiwiQW1lcmljYS9TaXRrYSIsIkFtZXJpY2EvU3RfQmFydGhlbGVteSIsIkFtZXJpY2EvU3Rf
Sm9obnMiLCJBbWVyaWNhL1N0X0tpdHRzIiwiQW1lcmljYS9TdF9MdWNpYSIsIkFtZXJpY2EvU3Rf
VGhvbWFzIiwiQW1lcmljYS9TdF9WaW5jZW50IiwiQW1lcmljYS9Td2lmdF9DdXJyZW50IiwiQW1l
cmljYS9UZWd1Y2lnYWxwYSIsIkFtZXJpY2EvVGh1bGUiLCJBbWVyaWNhL1RodW5kZXJfQmF5Iiwi
QW1lcmljYS9UaWp1YW5hIiwiQW1lcmljYS9Ub3JvbnRvIiwiQW1lcmljYS9Ub3J0b2xhIiwiQW1l
cmljYS9WYW5jb3V2ZXIiLCJBbWVyaWNhL1doaXRlaG9yc2UiLCJBbWVyaWNhL1dpbm5pcGVnIiwi
QW1lcmljYS9ZYWt1dGF0IiwiQW1lcmljYS9ZZWxsb3drbmlmZSIsIkFudGFyY3RpY2EvQ2FzZXki
LCJBbnRhcmN0aWNhL0RhdmlzIiwiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsIkFudGFyY3Rp
Y2EvTWFjcXVhcmllIiwiQW50YXJjdGljYS9NYXdzb24iLCJBbnRhcmN0aWNhL01jTXVyZG8iLCJB
bnRhcmN0aWNhL1BhbG1lciIsIkFudGFyY3RpY2EvUm90aGVyYSIsIkFudGFyY3RpY2EvU3lvd2Ei
LCJBbnRhcmN0aWNhL1Ryb2xsIiwiQW50YXJjdGljYS9Wb3N0b2siLCJBcmN0aWMvTG9uZ3llYXJi
eWVuIiwiQXNpYS9BZGVuIiwiQXNpYS9BbG1hdHkiLCJBc2lhL0FtbWFuIiwiQXNpYS9BbmFkeXIi
LCJBc2lhL0FxdGF1IiwiQXNpYS9BcXRvYmUiLCJBc2lhL0FzaGdhYmF0IiwiQXNpYS9BdHlyYXUi
LCJBc2lhL0JhZ2hkYWQiLCJBc2lhL0JhaHJhaW4iLCJBc2lhL0Jha3UiLCJBc2lhL0Jhbmdrb2si
LCJBc2lhL0Jhcm5hdWwiLCJBc2lhL0JlaXJ1dCIsIkFzaWEvQmlzaGtlayIsIkFzaWEvQnJ1bmVp
IiwiQXNpYS9DYWxjdXR0YSIsIkFzaWEvQ2hpdGEiLCJBc2lhL0Nob2liYWxzYW4iLCJBc2lhL0Nv
bG9tYm8iLCJBc2lhL0RhbWFzY3VzIiwiQXNpYS9EaGFrYSIsIkFzaWEvRGlsaSIsIkFzaWEvRHVi
YWkiLCJBc2lhL0R1c2hhbmJlIiwiQXNpYS9GYW1hZ3VzdGEiLCJBc2lhL0dhemEiLCJBc2lhL0hl
YnJvbiIsIkFzaWEvSG9uZ19Lb25nIiwiQXNpYS9Ib3ZkIiwiQXNpYS9Jcmt1dHNrIiwiQXNpYS9K
YWthcnRhIiwiQXNpYS9KYXlhcHVyYSIsIkFzaWEvSmVydXNhbGVtIiwiQXNpYS9LYWJ1bCIsIkFz
aWEvS2FtY2hhdGthIiwiQXNpYS9LYXJhY2hpIiwiQXNpYS9LYXRtYW5kdSIsIkFzaWEvS2hhbmR5
Z2EiLCJBc2lhL0tyYXNub3lhcnNrIiwiQXNpYS9LdWFsYV9MdW1wdXIiLCJBc2lhL0t1Y2hpbmci
LCJBc2lhL0t1d2FpdCIsIkFzaWEvTWFjYXUiLCJBc2lhL01hZ2FkYW4iLCJBc2lhL01ha2Fzc2Fy
IiwiQXNpYS9NYW5pbGEiLCJBc2lhL011c2NhdCIsIkFzaWEvTmljb3NpYSIsIkFzaWEvTm92b2t1
em5ldHNrIiwiQXNpYS9Ob3Zvc2liaXJzayIsIkFzaWEvT21zayIsIkFzaWEvT3JhbCIsIkFzaWEv
UGhub21fUGVuaCIsIkFzaWEvUG9udGlhbmFrIiwiQXNpYS9QeW9uZ3lhbmciLCJBc2lhL1FhdGFy
IiwiQXNpYS9Rb3N0YW5heSIsIkFzaWEvUXl6eWxvcmRhIiwiQXNpYS9SYW5nb29uIiwiQXNpYS9S
aXlhZGgiLCJBc2lhL1NhaWdvbiIsIkFzaWEvU2FraGFsaW4iLCJBc2lhL1NhbWFya2FuZCIsIkFz
aWEvU2VvdWwiLCJBc2lhL1NoYW5naGFpIiwiQXNpYS9TaW5nYXBvcmUiLCJBc2lhL1NyZWRuZWtv
bHltc2siLCJBc2lhL1RhaXBlaSIsIkFzaWEvVGFzaGtlbnQiLCJBc2lhL1RiaWxpc2kiLCJBc2lh
L1RlaHJhbiIsIkFzaWEvVGhpbXBodSIsIkFzaWEvVG9reW8iLCJBc2lhL1RvbXNrIiwiQXNpYS9V
bGFhbmJhYXRhciIsIkFzaWEvVXJ1bXFpIiwiQXNpYS9Vc3QtTmVyYSIsIkFzaWEvVmllbnRpYW5l
IiwiQXNpYS9WbGFkaXZvc3RvayIsIkFzaWEvWWFrdXRzayIsIkFzaWEvWWVrYXRlcmluYnVyZyIs
IkFzaWEvWWVyZXZhbiIsIkF0bGFudGljL0F6b3JlcyIsIkF0bGFudGljL0Jlcm11ZGEiLCJBdGxh
bnRpYy9DYW5hcnkiLCJBdGxhbnRpYy9DYXBlX1ZlcmRlIiwiQXRsYW50aWMvRmFlcm9lIiwiQXRs
YW50aWMvTWFkZWlyYSIsIkF0bGFudGljL1JleWtqYXZpayIsIkF0bGFudGljL1NvdXRoX0dlb3Jn
aWEiLCJBdGxhbnRpYy9TdF9IZWxlbmEiLCJBdGxhbnRpYy9TdGFubGV5IiwiQXVzdHJhbGlhL0Fk
ZWxhaWRlIiwiQXVzdHJhbGlhL0JyaXNiYW5lIiwiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwiQXVz
dHJhbGlhL0N1cnJpZSIsIkF1c3RyYWxpYS9EYXJ3aW4iLCJBdXN0cmFsaWEvRXVjbGEiLCJBdXN0
cmFsaWEvSG9iYXJ0IiwiQXVzdHJhbGlhL0xpbmRlbWFuIiwiQXVzdHJhbGlhL0xvcmRfSG93ZSIs
IkF1c3RyYWxpYS9NZWxib3VybmUiLCJBdXN0cmFsaWEvUGVydGgiLCJBdXN0cmFsaWEvU3lkbmV5
IiwiRXVyb3BlL0Ftc3RlcmRhbSIsIkV1cm9wZS9BbmRvcnJhIiwiRXVyb3BlL0FzdHJha2hhbiIs
IkV1cm9wZS9BdGhlbnMiLCJFdXJvcGUvQmVsZ3JhZGUiLCJFdXJvcGUvQmVybGluIiwiRXVyb3Bl
L0JyYXRpc2xhdmEiLCJFdXJvcGUvQnJ1c3NlbHMiLCJFdXJvcGUvQnVjaGFyZXN0IiwiRXVyb3Bl
L0J1ZGFwZXN0IiwiRXVyb3BlL0J1c2luZ2VuIiwiRXVyb3BlL0NoaXNpbmF1IiwiRXVyb3BlL0Nv
cGVuaGFnZW4iLCJFdXJvcGUvRHVibGluIiwiRXVyb3BlL0dpYnJhbHRhciIsIkV1cm9wZS9HdWVy
bnNleSIsIkV1cm9wZS9IZWxzaW5raSIsIkV1cm9wZS9Jc2xlX29mX01hbiIsIkV1cm9wZS9Jc3Rh
bmJ1bCIsIkV1cm9wZS9KZXJzZXkiLCJFdXJvcGUvS2FsaW5pbmdyYWQiLCJFdXJvcGUvS2lldiIs
IkV1cm9wZS9LaXJvdiIsIkV1cm9wZS9MaXNib24iLCJFdXJvcGUvTGp1YmxqYW5hIiwiRXVyb3Bl
L0xvbmRvbiIsIkV1cm9wZS9MdXhlbWJvdXJnIiwiRXVyb3BlL01hZHJpZCIsIkV1cm9wZS9NYWx0
YSIsIkV1cm9wZS9NYXJpZWhhbW4iLCJFdXJvcGUvTWluc2siLCJFdXJvcGUvTW9uYWNvIiwiRXVy
b3BlL01vc2NvdyIsIkV1cm9wZS9Pc2xvIiwiRXVyb3BlL1BhcmlzIiwiRXVyb3BlL1BvZGdvcmlj
YSIsIkV1cm9wZS9QcmFndWUiLCJFdXJvcGUvUmlnYSIsIkV1cm9wZS9Sb21lIiwiRXVyb3BlL1Nh
bWFyYSIsIkV1cm9wZS9TYW5fTWFyaW5vIiwiRXVyb3BlL1NhcmFqZXZvIiwiRXVyb3BlL1NhcmF0
b3YiLCJFdXJvcGUvU2ltZmVyb3BvbCIsIkV1cm9wZS9Ta29wamUiLCJFdXJvcGUvU29maWEiLCJF
dXJvcGUvU3RvY2tob2xtIiwiRXVyb3BlL1RhbGxpbm4iLCJFdXJvcGUvVGlyYW5lIiwiRXVyb3Bl
L1VseWFub3ZzayIsIkV1cm9wZS9Vemhnb3JvZCIsIkV1cm9wZS9WYWR1eiIsIkV1cm9wZS9WYXRp
Y2FuIiwiRXVyb3BlL1ZpZW5uYSIsIkV1cm9wZS9WaWxuaXVzIiwiRXVyb3BlL1ZvbGdvZ3JhZCIs
IkV1cm9wZS9XYXJzYXciLCJFdXJvcGUvWmFncmViIiwiRXVyb3BlL1phcG9yb3poeWUiLCJFdXJv
cGUvWnVyaWNoIiwiSW5kaWFuL0FudGFuYW5hcml2byIsIkluZGlhbi9DaGFnb3MiLCJJbmRpYW4v
Q2hyaXN0bWFzIiwiSW5kaWFuL0NvY29zIiwiSW5kaWFuL0NvbW9ybyIsIkluZGlhbi9LZXJndWVs
ZW4iLCJJbmRpYW4vTWFoZSIsIkluZGlhbi9NYWxkaXZlcyIsIkluZGlhbi9NYXVyaXRpdXMiLCJJ
bmRpYW4vTWF5b3R0ZSIsIkluZGlhbi9SZXVuaW9uIiwiUGFjaWZpYy9BcGlhIiwiUGFjaWZpYy9B
dWNrbGFuZCIsIlBhY2lmaWMvQm91Z2FpbnZpbGxlIiwiUGFjaWZpYy9DaGF0aGFtIiwiUGFjaWZp
Yy9FYXN0ZXIiLCJQYWNpZmljL0VmYXRlIiwiUGFjaWZpYy9FbmRlcmJ1cnkiLCJQYWNpZmljL0Zh
a2FvZm8iLCJQYWNpZmljL0ZpamkiLCJQYWNpZmljL0Z1bmFmdXRpIiwiUGFjaWZpYy9HYWxhcGFn
b3MiLCJQYWNpZmljL0dhbWJpZXIiLCJQYWNpZmljL0d1YWRhbGNhbmFsIiwiUGFjaWZpYy9HdWFt
IiwiUGFjaWZpYy9Ib25vbHVsdSIsIlBhY2lmaWMvSm9obnN0b24iLCJQYWNpZmljL0tpcml0aW1h
dGkiLCJQYWNpZmljL0tvc3JhZSIsIlBhY2lmaWMvS3dhamFsZWluIiwiUGFjaWZpYy9NYWp1cm8i
LCJQYWNpZmljL01hcnF1ZXNhcyIsIlBhY2lmaWMvTWlkd2F5IiwiUGFjaWZpYy9OYXVydSIsIlBh
Y2lmaWMvTml1ZSIsIlBhY2lmaWMvTm9yZm9sayIsIlBhY2lmaWMvTm91bWVhIiwiUGFjaWZpYy9Q
YWdvX1BhZ28iLCJQYWNpZmljL1BhbGF1IiwiUGFjaWZpYy9QaXRjYWlybiIsIlBhY2lmaWMvUG9u
YXBlIiwiUGFjaWZpYy9Qb3J0X01vcmVzYnkiLCJQYWNpZmljL1Jhcm90b25nYSIsIlBhY2lmaWMv
U2FpcGFuIiwiUGFjaWZpYy9UYWhpdGkiLCJQYWNpZmljL1RhcmF3YSIsIlBhY2lmaWMvVG9uZ2F0
YXB1IiwiUGFjaWZpYy9UcnVrIiwiUGFjaWZpYy9XYWtlIiwiUGFjaWZpYy9XYWxsaXMiXWApOwor
c2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkodGltZVpvbmVzKSwgYFsiQWZyaWNhL0FiaWRqYW4iLCJB
ZnJpY2EvQWNjcmEiLCJBZnJpY2EvQWRkaXNfQWJhYmEiLCJBZnJpY2EvQWxnaWVycyIsIkFmcmlj
YS9Bc21lcmEiLCJBZnJpY2EvQmFtYWtvIiwiQWZyaWNhL0Jhbmd1aSIsIkFmcmljYS9CYW5qdWwi
LCJBZnJpY2EvQmlzc2F1IiwiQWZyaWNhL0JsYW50eXJlIiwiQWZyaWNhL0JyYXp6YXZpbGxlIiwi
QWZyaWNhL0J1anVtYnVyYSIsIkFmcmljYS9DYWlybyIsIkFmcmljYS9DYXNhYmxhbmNhIiwiQWZy
aWNhL0NldXRhIiwiQWZyaWNhL0NvbmFrcnkiLCJBZnJpY2EvRGFrYXIiLCJBZnJpY2EvRGFyX2Vz
X1NhbGFhbSIsIkFmcmljYS9Eamlib3V0aSIsIkFmcmljYS9Eb3VhbGEiLCJBZnJpY2EvRWxfQWFp
dW4iLCJBZnJpY2EvRnJlZXRvd24iLCJBZnJpY2EvR2Fib3JvbmUiLCJBZnJpY2EvSGFyYXJlIiwi
QWZyaWNhL0pvaGFubmVzYnVyZyIsIkFmcmljYS9KdWJhIiwiQWZyaWNhL0thbXBhbGEiLCJBZnJp
Y2EvS2hhcnRvdW0iLCJBZnJpY2EvS2lnYWxpIiwiQWZyaWNhL0tpbnNoYXNhIiwiQWZyaWNhL0xh
Z29zIiwiQWZyaWNhL0xpYnJldmlsbGUiLCJBZnJpY2EvTG9tZSIsIkFmcmljYS9MdWFuZGEiLCJB
ZnJpY2EvTHVidW1iYXNoaSIsIkFmcmljYS9MdXNha2EiLCJBZnJpY2EvTWFsYWJvIiwiQWZyaWNh
L01hcHV0byIsIkFmcmljYS9NYXNlcnUiLCJBZnJpY2EvTWJhYmFuZSIsIkFmcmljYS9Nb2dhZGlz
aHUiLCJBZnJpY2EvTW9ucm92aWEiLCJBZnJpY2EvTmFpcm9iaSIsIkFmcmljYS9OZGphbWVuYSIs
IkFmcmljYS9OaWFtZXkiLCJBZnJpY2EvTm91YWtjaG90dCIsIkFmcmljYS9PdWFnYWRvdWdvdSIs
IkFmcmljYS9Qb3J0by1Ob3ZvIiwiQWZyaWNhL1Nhb19Ub21lIiwiQWZyaWNhL1RyaXBvbGkiLCJB
ZnJpY2EvVHVuaXMiLCJBZnJpY2EvV2luZGhvZWsiLCJBbWVyaWNhL0FkYWsiLCJBbWVyaWNhL0Fu
Y2hvcmFnZSIsIkFtZXJpY2EvQW5ndWlsbGEiLCJBbWVyaWNhL0FudGlndWEiLCJBbWVyaWNhL0Fy
YWd1YWluYSIsIkFtZXJpY2EvQXJnZW50aW5hL0xhX1Jpb2phIiwiQW1lcmljYS9BcmdlbnRpbmEv
UmlvX0dhbGxlZ29zIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FsdGEiLCJBbWVyaWNhL0FyZ2VudGlu
YS9TYW5fSnVhbiIsIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlzIiwiQW1lcmljYS9BcmdlbnRp
bmEvVHVjdW1hbiIsIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWEiLCJBbWVyaWNhL0FydWJhIiwi
QW1lcmljYS9Bc3VuY2lvbiIsIkFtZXJpY2EvQmFoaWEiLCJBbWVyaWNhL0JhaGlhX0JhbmRlcmFz
IiwiQW1lcmljYS9CYXJiYWRvcyIsIkFtZXJpY2EvQmVsZW0iLCJBbWVyaWNhL0JlbGl6ZSIsIkFt
ZXJpY2EvQmxhbmMtU2FibG9uIiwiQW1lcmljYS9Cb2FfVmlzdGEiLCJBbWVyaWNhL0JvZ290YSIs
IkFtZXJpY2EvQm9pc2UiLCJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsIkFtZXJpY2EvQ2FtYnJpZGdl
X0JheSIsIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwiQW1lcmljYS9DYW5jdW4iLCJBbWVyaWNhL0Nh
cmFjYXMiLCJBbWVyaWNhL0NhdGFtYXJjYSIsIkFtZXJpY2EvQ2F5ZW5uZSIsIkFtZXJpY2EvQ2F5
bWFuIiwiQW1lcmljYS9DaGljYWdvIiwiQW1lcmljYS9DaGlodWFodWEiLCJBbWVyaWNhL0NvcmFs
X0hhcmJvdXIiLCJBbWVyaWNhL0NvcmRvYmEiLCJBbWVyaWNhL0Nvc3RhX1JpY2EiLCJBbWVyaWNh
L0NyZXN0b24iLCJBbWVyaWNhL0N1aWFiYSIsIkFtZXJpY2EvQ3VyYWNhbyIsIkFtZXJpY2EvRGFu
bWFya3NoYXZuIiwiQW1lcmljYS9EYXdzb24iLCJBbWVyaWNhL0Rhd3Nvbl9DcmVlayIsIkFtZXJp
Y2EvRGVudmVyIiwiQW1lcmljYS9EZXRyb2l0IiwiQW1lcmljYS9Eb21pbmljYSIsIkFtZXJpY2Ev
RWRtb250b24iLCJBbWVyaWNhL0VpcnVuZXBlIiwiQW1lcmljYS9FbF9TYWx2YWRvciIsIkFtZXJp
Y2EvRm9ydF9OZWxzb24iLCJBbWVyaWNhL0ZvcnRhbGV6YSIsIkFtZXJpY2EvR2xhY2VfQmF5Iiwi
QW1lcmljYS9Hb2R0aGFiIiwiQW1lcmljYS9Hb29zZV9CYXkiLCJBbWVyaWNhL0dyYW5kX1R1cmsi
LCJBbWVyaWNhL0dyZW5hZGEiLCJBbWVyaWNhL0d1YWRlbG91cGUiLCJBbWVyaWNhL0d1YXRlbWFs
YSIsIkFtZXJpY2EvR3VheWFxdWlsIiwiQW1lcmljYS9HdXlhbmEiLCJBbWVyaWNhL0hhbGlmYXgi
LCJBbWVyaWNhL0hhdmFuYSIsIkFtZXJpY2EvSGVybW9zaWxsbyIsIkFtZXJpY2EvSW5kaWFuYS9L
bm94IiwiQW1lcmljYS9JbmRpYW5hL01hcmVuZ28iLCJBbWVyaWNhL0luZGlhbmEvUGV0ZXJzYnVy
ZyIsIkFtZXJpY2EvSW5kaWFuYS9UZWxsX0NpdHkiLCJBbWVyaWNhL0luZGlhbmEvVmV2YXkiLCJB
bWVyaWNhL0luZGlhbmEvVmluY2VubmVzIiwiQW1lcmljYS9JbmRpYW5hL1dpbmFtYWMiLCJBbWVy
aWNhL0luZGlhbmFwb2xpcyIsIkFtZXJpY2EvSW51dmlrIiwiQW1lcmljYS9JcWFsdWl0IiwiQW1l
cmljYS9KYW1haWNhIiwiQW1lcmljYS9KdWp1eSIsIkFtZXJpY2EvSnVuZWF1IiwiQW1lcmljYS9L
ZW50dWNreS9Nb250aWNlbGxvIiwiQW1lcmljYS9LcmFsZW5kaWprIiwiQW1lcmljYS9MYV9QYXoi
LCJBbWVyaWNhL0xpbWEiLCJBbWVyaWNhL0xvc19BbmdlbGVzIiwiQW1lcmljYS9Mb3Vpc3ZpbGxl
IiwiQW1lcmljYS9Mb3dlcl9QcmluY2VzIiwiQW1lcmljYS9NYWNlaW8iLCJBbWVyaWNhL01hbmFn
dWEiLCJBbWVyaWNhL01hbmF1cyIsIkFtZXJpY2EvTWFyaWdvdCIsIkFtZXJpY2EvTWFydGluaXF1
ZSIsIkFtZXJpY2EvTWF0YW1vcm9zIiwiQW1lcmljYS9NYXphdGxhbiIsIkFtZXJpY2EvTWVuZG96
YSIsIkFtZXJpY2EvTWVub21pbmVlIiwiQW1lcmljYS9NZXJpZGEiLCJBbWVyaWNhL01ldGxha2F0
bGEiLCJBbWVyaWNhL01leGljb19DaXR5IiwiQW1lcmljYS9NaXF1ZWxvbiIsIkFtZXJpY2EvTW9u
Y3RvbiIsIkFtZXJpY2EvTW9udGVycmV5IiwiQW1lcmljYS9Nb250ZXZpZGVvIiwiQW1lcmljYS9N
b250cmVhbCIsIkFtZXJpY2EvTW9udHNlcnJhdCIsIkFtZXJpY2EvTmFzc2F1IiwiQW1lcmljYS9O
ZXdfWW9yayIsIkFtZXJpY2EvTmlwaWdvbiIsIkFtZXJpY2EvTm9tZSIsIkFtZXJpY2EvTm9yb25o
YSIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0JldWxhaCIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0Nl
bnRlciIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL05ld19TYWxlbSIsIkFtZXJpY2EvT2ppbmFnYSIs
IkFtZXJpY2EvUGFuYW1hIiwiQW1lcmljYS9QYW5nbmlydHVuZyIsIkFtZXJpY2EvUGFyYW1hcmli
byIsIkFtZXJpY2EvUGhvZW5peCIsIkFtZXJpY2EvUG9ydC1hdS1QcmluY2UiLCJBbWVyaWNhL1Bv
cnRfb2ZfU3BhaW4iLCJBbWVyaWNhL1BvcnRvX1ZlbGhvIiwiQW1lcmljYS9QdWVydG9fUmljbyIs
IkFtZXJpY2EvUHVudGFfQXJlbmFzIiwiQW1lcmljYS9SYWlueV9SaXZlciIsIkFtZXJpY2EvUmFu
a2luX0lubGV0IiwiQW1lcmljYS9SZWNpZmUiLCJBbWVyaWNhL1JlZ2luYSIsIkFtZXJpY2EvUmVz
b2x1dGUiLCJBbWVyaWNhL1Jpb19CcmFuY28iLCJBbWVyaWNhL1NhbnRhX0lzYWJlbCIsIkFtZXJp
Y2EvU2FudGFyZW0iLCJBbWVyaWNhL1NhbnRpYWdvIiwiQW1lcmljYS9TYW50b19Eb21pbmdvIiwi
QW1lcmljYS9TYW9fUGF1bG8iLCJBbWVyaWNhL1Njb3Jlc2J5c3VuZCIsIkFtZXJpY2EvU2l0a2Ei
LCJBbWVyaWNhL1N0X0JhcnRoZWxlbXkiLCJBbWVyaWNhL1N0X0pvaG5zIiwiQW1lcmljYS9TdF9L
aXR0cyIsIkFtZXJpY2EvU3RfTHVjaWEiLCJBbWVyaWNhL1N0X1Rob21hcyIsIkFtZXJpY2EvU3Rf
VmluY2VudCIsIkFtZXJpY2EvU3dpZnRfQ3VycmVudCIsIkFtZXJpY2EvVGVndWNpZ2FscGEiLCJB
bWVyaWNhL1RodWxlIiwiQW1lcmljYS9UaHVuZGVyX0JheSIsIkFtZXJpY2EvVGlqdWFuYSIsIkFt
ZXJpY2EvVG9yb250byIsIkFtZXJpY2EvVG9ydG9sYSIsIkFtZXJpY2EvVmFuY291dmVyIiwiQW1l
cmljYS9XaGl0ZWhvcnNlIiwiQW1lcmljYS9XaW5uaXBlZyIsIkFtZXJpY2EvWWFrdXRhdCIsIkFt
ZXJpY2EvWWVsbG93a25pZmUiLCJBbnRhcmN0aWNhL0Nhc2V5IiwiQW50YXJjdGljYS9EYXZpcyIs
IkFudGFyY3RpY2EvRHVtb250RFVydmlsbGUiLCJBbnRhcmN0aWNhL01hY3F1YXJpZSIsIkFudGFy
Y3RpY2EvTWF3c29uIiwiQW50YXJjdGljYS9NY011cmRvIiwiQW50YXJjdGljYS9QYWxtZXIiLCJB
bnRhcmN0aWNhL1JvdGhlcmEiLCJBbnRhcmN0aWNhL1N5b3dhIiwiQW50YXJjdGljYS9Ucm9sbCIs
IkFudGFyY3RpY2EvVm9zdG9rIiwiQXJjdGljL0xvbmd5ZWFyYnllbiIsIkFzaWEvQWRlbiIsIkFz
aWEvQWxtYXR5IiwiQXNpYS9BbW1hbiIsIkFzaWEvQW5hZHlyIiwiQXNpYS9BcXRhdSIsIkFzaWEv
QXF0b2JlIiwiQXNpYS9Bc2hnYWJhdCIsIkFzaWEvQXR5cmF1IiwiQXNpYS9CYWdoZGFkIiwiQXNp
YS9CYWhyYWluIiwiQXNpYS9CYWt1IiwiQXNpYS9CYW5na29rIiwiQXNpYS9CYXJuYXVsIiwiQXNp
YS9CZWlydXQiLCJBc2lhL0Jpc2hrZWsiLCJBc2lhL0JydW5laSIsIkFzaWEvQ2FsY3V0dGEiLCJB
c2lhL0NoaXRhIiwiQXNpYS9DaG9pYmFsc2FuIiwiQXNpYS9Db2xvbWJvIiwiQXNpYS9EYW1hc2N1
cyIsIkFzaWEvRGhha2EiLCJBc2lhL0RpbGkiLCJBc2lhL0R1YmFpIiwiQXNpYS9EdXNoYW5iZSIs
IkFzaWEvRmFtYWd1c3RhIiwiQXNpYS9HYXphIiwiQXNpYS9IZWJyb24iLCJBc2lhL0hvbmdfS29u
ZyIsIkFzaWEvSG92ZCIsIkFzaWEvSXJrdXRzayIsIkFzaWEvSmFrYXJ0YSIsIkFzaWEvSmF5YXB1
cmEiLCJBc2lhL0plcnVzYWxlbSIsIkFzaWEvS2FidWwiLCJBc2lhL0thbWNoYXRrYSIsIkFzaWEv
S2FyYWNoaSIsIkFzaWEvS2F0bWFuZHUiLCJBc2lhL0toYW5keWdhIiwiQXNpYS9LcmFzbm95YXJz
ayIsIkFzaWEvS3VhbGFfTHVtcHVyIiwiQXNpYS9LdWNoaW5nIiwiQXNpYS9LdXdhaXQiLCJBc2lh
L01hY2F1IiwiQXNpYS9NYWdhZGFuIiwiQXNpYS9NYWthc3NhciIsIkFzaWEvTWFuaWxhIiwiQXNp
YS9NdXNjYXQiLCJBc2lhL05pY29zaWEiLCJBc2lhL05vdm9rdXpuZXRzayIsIkFzaWEvTm92b3Np
Ymlyc2siLCJBc2lhL09tc2siLCJBc2lhL09yYWwiLCJBc2lhL1Bobm9tX1BlbmgiLCJBc2lhL1Bv
bnRpYW5hayIsIkFzaWEvUHlvbmd5YW5nIiwiQXNpYS9RYXRhciIsIkFzaWEvUW9zdGFuYXkiLCJB
c2lhL1F5enlsb3JkYSIsIkFzaWEvUmFuZ29vbiIsIkFzaWEvUml5YWRoIiwiQXNpYS9TYWlnb24i
LCJBc2lhL1Nha2hhbGluIiwiQXNpYS9TYW1hcmthbmQiLCJBc2lhL1Nlb3VsIiwiQXNpYS9TaGFu
Z2hhaSIsIkFzaWEvU2luZ2Fwb3JlIiwiQXNpYS9TcmVkbmVrb2x5bXNrIiwiQXNpYS9UYWlwZWki
LCJBc2lhL1Rhc2hrZW50IiwiQXNpYS9UYmlsaXNpIiwiQXNpYS9UZWhyYW4iLCJBc2lhL1RoaW1w
aHUiLCJBc2lhL1Rva3lvIiwiQXNpYS9Ub21zayIsIkFzaWEvVWxhYW5iYWF0YXIiLCJBc2lhL1Vy
dW1xaSIsIkFzaWEvVXN0LU5lcmEiLCJBc2lhL1ZpZW50aWFuZSIsIkFzaWEvVmxhZGl2b3N0b2si
LCJBc2lhL1lha3V0c2siLCJBc2lhL1lla2F0ZXJpbmJ1cmciLCJBc2lhL1llcmV2YW4iLCJBdGxh
bnRpYy9Bem9yZXMiLCJBdGxhbnRpYy9CZXJtdWRhIiwiQXRsYW50aWMvQ2FuYXJ5IiwiQXRsYW50
aWMvQ2FwZV9WZXJkZSIsIkF0bGFudGljL0ZhZXJvZSIsIkF0bGFudGljL01hZGVpcmEiLCJBdGxh
bnRpYy9SZXlramF2aWsiLCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhIiwiQXRsYW50aWMvU3RfSGVs
ZW5hIiwiQXRsYW50aWMvU3RhbmxleSIsIkF1c3RyYWxpYS9BZGVsYWlkZSIsIkF1c3RyYWxpYS9C
cmlzYmFuZSIsIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbCIsIkF1c3RyYWxpYS9DdXJyaWUiLCJBdXN0
cmFsaWEvRGFyd2luIiwiQXVzdHJhbGlhL0V1Y2xhIiwiQXVzdHJhbGlhL0hvYmFydCIsIkF1c3Ry
YWxpYS9MaW5kZW1hbiIsIkF1c3RyYWxpYS9Mb3JkX0hvd2UiLCJBdXN0cmFsaWEvTWVsYm91cm5l
IiwiQXVzdHJhbGlhL1BlcnRoIiwiQXVzdHJhbGlhL1N5ZG5leSIsIkV1cm9wZS9BbXN0ZXJkYW0i
LCJFdXJvcGUvQW5kb3JyYSIsIkV1cm9wZS9Bc3RyYWtoYW4iLCJFdXJvcGUvQXRoZW5zIiwiRXVy
b3BlL0JlbGdyYWRlIiwiRXVyb3BlL0JlcmxpbiIsIkV1cm9wZS9CcmF0aXNsYXZhIiwiRXVyb3Bl
L0JydXNzZWxzIiwiRXVyb3BlL0J1Y2hhcmVzdCIsIkV1cm9wZS9CdWRhcGVzdCIsIkV1cm9wZS9C
dXNpbmdlbiIsIkV1cm9wZS9DaGlzaW5hdSIsIkV1cm9wZS9Db3BlbmhhZ2VuIiwiRXVyb3BlL0R1
YmxpbiIsIkV1cm9wZS9HaWJyYWx0YXIiLCJFdXJvcGUvR3Vlcm5zZXkiLCJFdXJvcGUvSGVsc2lu
a2kiLCJFdXJvcGUvSXNsZV9vZl9NYW4iLCJFdXJvcGUvSXN0YW5idWwiLCJFdXJvcGUvSmVyc2V5
IiwiRXVyb3BlL0thbGluaW5ncmFkIiwiRXVyb3BlL0tpZXYiLCJFdXJvcGUvS2lyb3YiLCJFdXJv
cGUvTGlzYm9uIiwiRXVyb3BlL0xqdWJsamFuYSIsIkV1cm9wZS9Mb25kb24iLCJFdXJvcGUvTHV4
ZW1ib3VyZyIsIkV1cm9wZS9NYWRyaWQiLCJFdXJvcGUvTWFsdGEiLCJFdXJvcGUvTWFyaWVoYW1u
IiwiRXVyb3BlL01pbnNrIiwiRXVyb3BlL01vbmFjbyIsIkV1cm9wZS9Nb3Njb3ciLCJFdXJvcGUv
T3NsbyIsIkV1cm9wZS9QYXJpcyIsIkV1cm9wZS9Qb2Rnb3JpY2EiLCJFdXJvcGUvUHJhZ3VlIiwi
RXVyb3BlL1JpZ2EiLCJFdXJvcGUvUm9tZSIsIkV1cm9wZS9TYW1hcmEiLCJFdXJvcGUvU2FuX01h
cmlubyIsIkV1cm9wZS9TYXJhamV2byIsIkV1cm9wZS9TYXJhdG92IiwiRXVyb3BlL1NpbWZlcm9w
b2wiLCJFdXJvcGUvU2tvcGplIiwiRXVyb3BlL1NvZmlhIiwiRXVyb3BlL1N0b2NraG9sbSIsIkV1
cm9wZS9UYWxsaW5uIiwiRXVyb3BlL1RpcmFuZSIsIkV1cm9wZS9VbHlhbm92c2siLCJFdXJvcGUv
VXpoZ29yb2QiLCJFdXJvcGUvVmFkdXoiLCJFdXJvcGUvVmF0aWNhbiIsIkV1cm9wZS9WaWVubmEi
LCJFdXJvcGUvVmlsbml1cyIsIkV1cm9wZS9Wb2xnb2dyYWQiLCJFdXJvcGUvV2Fyc2F3IiwiRXVy
b3BlL1phZ3JlYiIsIkV1cm9wZS9aYXBvcm96aHllIiwiRXVyb3BlL1p1cmljaCIsIkluZGlhbi9B
bnRhbmFuYXJpdm8iLCJJbmRpYW4vQ2hhZ29zIiwiSW5kaWFuL0NocmlzdG1hcyIsIkluZGlhbi9D
b2NvcyIsIkluZGlhbi9Db21vcm8iLCJJbmRpYW4vS2VyZ3VlbGVuIiwiSW5kaWFuL01haGUiLCJJ
bmRpYW4vTWFsZGl2ZXMiLCJJbmRpYW4vTWF1cml0aXVzIiwiSW5kaWFuL01heW90dGUiLCJJbmRp
YW4vUmV1bmlvbiIsIlBhY2lmaWMvQXBpYSIsIlBhY2lmaWMvQXVja2xhbmQiLCJQYWNpZmljL0Jv
dWdhaW52aWxsZSIsIlBhY2lmaWMvQ2hhdGhhbSIsIlBhY2lmaWMvRWFzdGVyIiwiUGFjaWZpYy9F
ZmF0ZSIsIlBhY2lmaWMvRW5kZXJidXJ5IiwiUGFjaWZpYy9GYWthb2ZvIiwiUGFjaWZpYy9GaWpp
IiwiUGFjaWZpYy9GdW5hZnV0aSIsIlBhY2lmaWMvR2FsYXBhZ29zIiwiUGFjaWZpYy9HYW1iaWVy
IiwiUGFjaWZpYy9HdWFkYWxjYW5hbCIsIlBhY2lmaWMvR3VhbSIsIlBhY2lmaWMvSG9ub2x1bHUi
LCJQYWNpZmljL0pvaG5zdG9uIiwiUGFjaWZpYy9LaXJpdGltYXRpIiwiUGFjaWZpYy9Lb3NyYWUi
LCJQYWNpZmljL0t3YWphbGVpbiIsIlBhY2lmaWMvTWFqdXJvIiwiUGFjaWZpYy9NYXJxdWVzYXMi
LCJQYWNpZmljL01pZHdheSIsIlBhY2lmaWMvTmF1cnUiLCJQYWNpZmljL05pdWUiLCJQYWNpZmlj
L05vcmZvbGsiLCJQYWNpZmljL05vdW1lYSIsIlBhY2lmaWMvUGFnb19QYWdvIiwiUGFjaWZpYy9Q
YWxhdSIsIlBhY2lmaWMvUGl0Y2Fpcm4iLCJQYWNpZmljL1BvbmFwZSIsIlBhY2lmaWMvUG9ydF9N
b3Jlc2J5IiwiUGFjaWZpYy9SYXJvdG9uZ2EiLCJQYWNpZmljL1NhaXBhbiIsIlBhY2lmaWMvVGFo
aXRpIiwiUGFjaWZpYy9UYXJhd2EiLCJQYWNpZmljL1RvbmdhdGFwdSIsIlBhY2lmaWMvVHJ1ayIs
IlBhY2lmaWMvV2FrZSIsIlBhY2lmaWMvV2FsbGlzIiwiVVRDIl1gKTsKIAogbGV0IHVuaXRzID0g
SW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigidW5pdCIpOwogc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnko
dW5pdHMpLCBgWyJhY3JlIiwiYml0IiwiYnl0ZSIsImNlbHNpdXMiLCJjZW50aW1ldGVyIiwiZGF5
IiwiZGVncmVlIiwiZmFocmVuaGVpdCIsImZsdWlkLW91bmNlIiwiZm9vdCIsImdhbGxvbiIsImdp
Z2FiaXQiLCJnaWdhYnl0ZSIsImdyYW0iLCJoZWN0YXJlIiwiaG91ciIsImluY2giLCJraWxvYml0
Iiwia2lsb2J5dGUiLCJraWxvZ3JhbSIsImtpbG9tZXRlciIsImxpdGVyIiwibWVnYWJpdCIsIm1l
Z2FieXRlIiwibWV0ZXIiLCJtaWxlIiwibWlsZS1zY2FuZGluYXZpYW4iLCJtaWxsaWxpdGVyIiwi
bWlsbGltZXRlciIsIm1pbGxpc2Vjb25kIiwibWludXRlIiwibW9udGgiLCJvdW5jZSIsInBlcmNl
bnQiLCJwZXRhYnl0ZSIsInBvdW5kIiwic2Vjb25kIiwic3RvbmUiLCJ0ZXJhYml0IiwidGVyYWJ5
dGUiLCJ3ZWVrIiwieWFyZCIsInllYXIiXWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
dGVtcG9yYWwtdGltZXpvbmUuanMgYi9KU1Rlc3RzL3N0cmVzcy90ZW1wb3JhbC10aW1lem9uZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODhmOGM4ODdlODQ0YWUyZjAzMDllYWYxNTFlY2EyMjAxNDQxOTU2Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvdGVtcG9yYWwtdGltZXpvbmUuanMKQEAg
LTAsMCArMSwxMDEgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VUZW1wb3JhbD0xIikKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBi
dXQgZ290ICR7YWN0dWFsfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJv
clR5cGUsIG1lc3NhZ2UpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVu
YygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAg
IGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSFgKTsKKyAgICBpZiAobWVzc2FnZSAhPT0g
dW5kZWZpbmVkKQorICAgICAgICBzaG91bGRCZShTdHJpbmcoZXJyb3IpLCBtZXNzYWdlKTsKK30K
KworbGV0IGZhaWx1cmVzID0gWworICAgICIiLAorICAgICIrIiwKKyAgICAiKzIiLAorICAgICIr
MjowMCIsCisgICAgIisyNCIsCisgICAgIisyMzoiLAorICAgICIyMDowMCIsCisgICAgIisyMDow
MDAwIiwKKyAgICAiKzIwOjYwIiwKKyAgICAiKzIwOjU5OiIsCisgICAgIjIwNTk6MDAiLAorICAg
ICIrMjA1OTowMCIsCisgICAgIisyMDo1OTAwIiwKKyAgICAiKzIwOjU5OjAwLjAxMjM0NTY3ODki
LAorICAgICJsb2NhbCIsCitdOworCitmb3IgKGxldCB0ZXh0IG9mIGZhaWx1cmVzKSB7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBuZXcgVGVtcG9yYWwuVGltZVpvbmUodGV4dCk7
CisgICAgfSwgUmFuZ2VFcnJvcik7Cit9CisKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9u
ZSgiKzAwOjAwIikuaWQsIGArMDA6MDBgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9u
ZSgiKzAxOjAwIikuaWQsIGArMDE6MDBgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9u
ZSgiKzAxOjU5IikuaWQsIGArMDE6NTlgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9u
ZSgiLTAxOjU5IikuaWQsIGAtMDE6NTlgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9u
ZSgiLTAxOjU5OjMwIikuaWQsIGAtMDE6NTk6MzBgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5U
aW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1IikuaWQsIGAtMDE6NTk6MzAuMTIzNDVgKTsKK3Nob3Vs
ZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiLTAxOjU5OjMwLjAwMDAwMSIpLmlkLCBgLTAxOjU5
OjMwLjAwMDAwMWApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCItMDE6NTk6MzAu
MTIzNDUwMDAwIikuaWQsIGAtMDE6NTk6MzAuMTIzNDVgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3Jh
bC5UaW1lWm9uZSgiLTAxOjU5OjMwLjAwMDAwMDAwMSIpLmlkLCBgLTAxOjU5OjMwLjAwMDAwMDAw
MWApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCItMDE6NTk6MzAuMTIzNDU2Nzg5
IikuaWQsIGAtMDE6NTk6MzAuMTIzNDU2Nzg5YCk7CisKK2xldCB0eiA9IG5ldyBUZW1wb3JhbC5U
aW1lWm9uZSgiLTAxOjU5OjMwLjEyMzQ1Njc4OSIpCitzaG91bGRCZSh0ei5pZCwgU3RyaW5nKHR6
KSk7CisKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgiQXNpYS9Ub2t5byIpLmlkLCBg
QXNpYS9Ub2t5b2ApOworc2hvdWxkQmUobmV3IFRlbXBvcmFsLlRpbWVab25lKCJBU0lBL1RPS1lP
IikuaWQsIGBBc2lhL1Rva3lvYCk7CitzaG91bGRCZShuZXcgVGVtcG9yYWwuVGltZVpvbmUoIlVU
QyIpLmlkLCBgVVRDYCk7CisKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgnVVRDJyku
aWQsIGBVVENgKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgnQWZyaWNhL0NhaXJv
JykuaWQsIGBBZnJpY2EvQ2Fpcm9gKTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgn
YW1lcmljYS9WQU5DT1VWRVInKS5pZCwgYEFtZXJpY2EvVmFuY291dmVyYCk7CitzaG91bGRCZShu
ZXcgVGVtcG9yYWwuVGltZVpvbmUoJ0FzaWEvS2F0bWFuZHUnKS5pZCwgYEFzaWEvS2F0bWFuZHVg
KTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgnLTA0OjAwJykuaWQsIGAtMDQ6MDBg
KTsKK3Nob3VsZEJlKG5ldyBUZW1wb3JhbC5UaW1lWm9uZSgnKzA2NDUnKS5pZCwgYCswNjo0NWAp
OworCitzaG91bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCdVVEMnKS5pZCwgYFVUQ2ApOwor
c2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUuZnJvbSgnQWZyaWNhL0NhaXJvJykuaWQsIGBBZnJp
Y2EvQ2Fpcm9gKTsKK3Nob3VsZEJlKFRlbXBvcmFsLlRpbWVab25lLmZyb20oJ0FmcmljYS9DYWly
bycpLnRvU3RyaW5nKCksIGBBZnJpY2EvQ2Fpcm9gKTsKK3Nob3VsZEJlKFRlbXBvcmFsLlRpbWVa
b25lLmZyb20oJ0FmcmljYS9DYWlybycpLnRvSlNPTigpLCBgQWZyaWNhL0NhaXJvYCk7CitzaG91
bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCdhbWVyaWNhL1ZBTkNPVVZFUicpLmlkLCBgQW1l
cmljYS9WYW5jb3V2ZXJgKTsKK3Nob3VsZEJlKFRlbXBvcmFsLlRpbWVab25lLmZyb20oJ0FzaWEv
S2F0bWFuZHUnKS5pZCwgYEFzaWEvS2F0bWFuZHVgKTsKK3Nob3VsZEJlKFRlbXBvcmFsLlRpbWVa
b25lLmZyb20oJy0wNDowMCcpLmlkLCBgLTA0OjAwYCk7CitzaG91bGRCZShUZW1wb3JhbC5UaW1l
Wm9uZS5mcm9tKCcrMDY0NScpLmlkLCBgKzA2OjQ1YCk7CitzaG91bGRCZShUZW1wb3JhbC5UaW1l
Wm9uZS5mcm9tKCcrMDY0NScpLnRvU3RyaW5nKCksIGArMDY6NDVgKTsKK3Nob3VsZEJlKFRlbXBv
cmFsLlRpbWVab25lLmZyb20oJyswNjQ1JykudG9KU09OKCksIGArMDY6NDVgKTsKKworLy8gSVNP
IDg2MDEgc3RyaW5nIHdpdGggdGltZSB6b25lIG9mZnNldCBwYXJ0CisvLyBGSVhNRTogV2Ugd2ls
bCBzdXBwb3J0IFRlbXBvcmFsIEluc3RhbnQgZm9ybWF0IGluIFRlbXBvcmFsLlRpbWVab25lLmZy
b20uCisvLyBzaG91bGRCZShUZW1wb3JhbC5UaW1lWm9uZS5mcm9tKCcyMDIwLTAxLTE0VDAwOjMx
OjAwLjA2NTg1ODA4NlonKS5pZCwgYGApOworLy8gc2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUu
ZnJvbSgnMjAyMC0wMS0xM1QxNjozMTowMC4wNjU4NTgwODYtMDg6MDAnKS5pZCwgYGApOworLy8g
c2hvdWxkQmUoVGVtcG9yYWwuVGltZVpvbmUuZnJvbSgnMjAyMC0wMS0xM1QxNjozMTowMC4wNjU4
NTgwODYtMDg6MDBbQW1lcmljYS9WYW5jb3V2ZXJdJykuaWQsIGBgKTsKKworY29uc3QgdXNlciA9
IHsKKyAgaWQ6IDc3NSwKKyAgdXNlcm5hbWU6ICdyb2JvdGNhdCcsCisgIHBhc3N3b3JkOiAnaHVu
dGVyMicsIC8vIE5vdGU6IERvbid0IHJlYWxseSBzdG9yZSBwYXNzd29yZHMgbGlrZSB0aGF0Cisg
IHVzZXJUaW1lWm9uZTogVGVtcG9yYWwuVGltZVpvbmUuZnJvbSgnRXVyb3BlL01hZHJpZCcpCit9
OworY29uc3Qgc3RyID0gSlNPTi5zdHJpbmdpZnkodXNlcik7CitzaG91bGRCZShzdHIsIGB7Imlk
Ijo3NzUsInVzZXJuYW1lIjoicm9ib3RjYXQiLCJwYXNzd29yZCI6Imh1bnRlcjIiLCJ1c2VyVGlt
ZVpvbmUiOiJFdXJvcGUvTWFkcmlkIn1gKTsKK2Z1bmN0aW9uIHJldml2ZXIoa2V5LCB2YWx1ZSkg
eworICBpZiAoa2V5LmVuZHNXaXRoKCdUaW1lWm9uZScpKSByZXR1cm4gVGVtcG9yYWwuVGltZVpv
bmUuZnJvbSh2YWx1ZSk7CisgIHJldHVybiB2YWx1ZTsKK30KK2NvbnN0IHBhcnNlZCA9IEpTT04u
cGFyc2Uoc3RyLCByZXZpdmVyKTsKK3Nob3VsZEJlKHBhcnNlZC51c2VyVGltZVpvbmUgaW5zdGFu
Y2VvZiBUZW1wb3JhbC5UaW1lWm9uZSwgdHJ1ZSk7CitzaG91bGRCZShwYXJzZWQudXNlclRpbWVa
b25lLmlkLCBgRXVyb3BlL01hZHJpZGApOwo=
</data>
<flag name="review"
          id="460397"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>