<?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>233795</bug_id>
          
          <creation_ts>2021-12-02 18:12:49 -0800</creation_ts>
          <short_desc>Use `Seconds` as the underlying value for `MonotonicTime`/`WallTime`/etc.</short_desc>
          <delta_ts>2022-02-28 03:44:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233781</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>galpeter</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819981</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 18:12:49 -0800</bug_when>
    <thetext>It&apos;s already the case that `MonotonicTime`/`WallTime`/etc. use seconds as the internal representation, so we should just use `Seconds` to make it easier to convert to/from these wrapper/POD-esque objects (e.g. we would be able to drop `fromRawSeconds` and instead have a compile-time guarantee that the developer knows that the underlying value represents seconds when creating a `MonotonicTime`/`WallTime`/etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819986</commentid>
    <comment_count>1</comment_count>
      <attachid>445799</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 18:27:57 -0800</bug_when>
    <thetext>Created attachment 445799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819987</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-02 18:29:02 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820225</commentid>
    <comment_count>3</comment_count>
      <attachid>445874</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 11:02:15 -0800</bug_when>
    <thetext>Created attachment 445874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821303</commentid>
    <comment_count>4</comment_count>
      <attachid>446263</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 17:29:18 -0800</bug_when>
    <thetext>Created attachment 446263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821306</commentid>
    <comment_count>5</comment_count>
      <attachid>446265</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 17:31:57 -0800</bug_when>
    <thetext>Created attachment 446265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821855</commentid>
    <comment_count>6</comment_count>
      <attachid>446265</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-12-08 16:35:16 -0800</bug_when>
    <thetext>Comment on attachment 446265
Patch

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

Phil should probably be the one to review this.

&gt; Source/WTF/wtf/ApproximateTime.cpp:49
&gt; -    out.print(&quot;Approximate(&quot;, m_value, &quot; sec)&quot;);
&gt; +    out.print(&quot;Approximate(&quot;);
&gt; +    secondsSinceEpoch().dump(out);
&gt; +    out.print(&quot;)&quot;);

Can&apos;t we add the necessary facilities to make this change not necessary?

&gt; Source/WTF/wtf/CurrentTime.cpp:251
&gt; -    return fromRawSeconds(currentTime());
&gt; +    return WallTime(Seconds(currentTime()));

Is it really necessary to make fromRawSeconds() no longer work?

&gt; Source/WTF/wtf/CurrentTime.cpp:277
&gt; -    return static_cast&lt;uint64_t&gt;((m_value * 1.0e9 * info.denom) / info.numer);
&gt; +    return static_cast&lt;uint64_t&gt;((secondsSinceEpoch().value() * 1.0e9 * info.denom) / info.numer);

Is this really better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821870</commentid>
    <comment_count>7</comment_count>
      <attachid>446265</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-08 16:58:48 -0800</bug_when>
    <thetext>Comment on attachment 446265
Patch

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

I think that my main worry about this change is that I&apos;m not super sure what it improves?

But, I think it&apos;s OK, if you make the changes I suggest.

&gt;&gt; Source/WTF/wtf/ApproximateTime.cpp:49
&gt;&gt; +    out.print(&quot;)&quot;);
&gt; 
&gt; Can&apos;t we add the necessary facilities to make this change not necessary?

Why can&apos;t you just say: out.print(&quot;Approximate(&quot;, secondsSinceEpoch(), &quot;)&quot;)?

&gt; Source/WTF/wtf/MonotonicTime.h:51
&gt; +    explicit constexpr MonotonicTime(Seconds seconds)
&gt; +        : GenericTimeMixin&lt;MonotonicTime&gt;(seconds)
&gt; +    {
&gt; +    }
&gt; +

Why isn&apos;t this called &quot;fromSecondsSinceEpoch()&quot; rather than making it a constructor?

&gt; Source/WTF/wtf/TimeWithDynamicClockType.cpp:136
&gt; +    out.print(&quot;(&quot;);
&gt; +    m_seconds.dump(out);
&gt; +    out.print(&quot;)&quot;);

Why isn&apos;t this just out.print(&quot;(&quot;, m_seconds, &quot;)&quot;)?

&gt; Source/WTF/wtf/WallTime.cpp:44
&gt; +    out.print(&quot;Wall(&quot;);
&gt; +    secondsSinceEpoch().dump(out);
&gt; +    out.print(&quot;)&quot;);
&gt;  }

Ditto.

&gt; Source/WTF/wtf/WallTime.h:52
&gt; +    explicit constexpr WallTime(Seconds seconds)
&gt; +        : GenericTimeMixin&lt;WallTime&gt;(seconds)
&gt; +    {
&gt; +    }
&gt; +

Ditto - I&apos;d much rather force people to say WallTime::fromSecondsSinceEpoch(...) than WallTime(...).

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2816
&gt; -        auto dateToInsert = OperatingDate::fromWallTime(WallTime::fromRawSeconds(daysAgoInSeconds));
&gt; +        auto dateToInsert = OperatingDate::fromWallTime(WallTime(Seconds(daysAgoInSeconds)));

Seems like it would be great to still be able to say fromRawSeconds.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:186
&gt; -    virtual void setLastSeen(const RegistrableDomain&amp; primaryDomain, Seconds) = 0;
&gt; +    virtual void setLastSeen(const RegistrableDomain&amp; primaryDomain, WallTime) = 0;

Are changes like this really related to this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822474</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-09 18:13:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/86301424&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445799</attachid>
            <date>2021-12-02 18:27:57 -0800</date>
            <delta_ts>2021-12-03 11:02:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233795-20211202192756.patch</filename>
            <type>text/plain</type>
            <size>131478</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMWM2NzMzOGNiODkzOGViYjNhYTk0YTcyOGMxZjMzYmYzMTU3MTg3Yi4uMDY2Mzc2ZTRk
N2M4MTA5YmYzNDU3MDZlMDU2ZGNlZDZlZjE0YmU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDYgQEAKKzIw
MjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBgU2Vjb25kc2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9g
V2FsbFRpbWVgL2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEl0J3MgYWxyZWFkeSB0aGUgY2FzZSB0aGF0IGBNb25vdG9uaWNUaW1lYC9gV2FsbFRp
bWVgL2V0Yy4gdXNlIHNlY29uZHMgYXMgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgdmFsdWUsIHNv
IHdlIHNob3VsZCBqdXN0IHVzZSBgU2Vjb25kc2AgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29udmVy
dCB0by9mcm9tIHRoZXNlCisgICAgICAgIHdyYXBwZXIvUE9ELWVzcXVlIG9iamVjdHMgKGUuZy4g
d2Ugd291bGQgYmUgYWJsZSB0byBkcm9wIGBmcm9tUmF3U2Vjb25kc2AgYW5kIGluc3RlYWQgaGF2
ZSBhCisgICAgICAgIGNvbXBpbGUtdGltZSBndWFyYW50ZWUgdGhhdCB0aGUgZGV2ZWxvcGVyIGtu
b3dzIHRoYXQgdGhlIHVuZGVybHlpbmcgdmFsdWUgcmVwcmVzZW50cyBzZWNvbmRzCisgICAgICAg
IHdoZW4gY3JlYXRpbmcgYSBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuKS4KKworICAg
ICAgICAqIHd0Zi9BcHByb3hpbWF0ZVRpbWUuaDoKKyAgICAgICAgKFdURjo6QXBwcm94aW1hdGVU
aW1lOjpBcHByb3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAg
ICAgIChzdGQ6OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0
Zi9BcHByb3hpbWF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OmR1
bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5jcHA6CisgICAgICAgIChXVEY6
OldhbGxUaW1lOjpub3cpOgorICAgICAgICAoV1RGOjpNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFi
c29sdXRlVGltZSk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6OnRvTWFjaEFic29sdXRl
VGltZSBjb25zdCk6CisgICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6ZnJvbU1hY2hBcHBy
b3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OnRvTWFjaEFwcHJv
eGltYXRlVGltZSBjb25zdCk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Om5vdyk6Cisg
ICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6bm93KToKKyAgICAgICAgKiB3dGYvR2VuZXJp
Y1RpbWVNaXhpbi5oOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjppbmZpbml0eSk6
CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om5hbik6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6
R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNU
aW1lTWl4aW46Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4
aW46Om9wZXJhdG9yJSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I+IGNvbnN0KToK
KyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAg
ICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpHZW5lcmljVGltZU1peGluOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5l
cmljVGltZU1peGluOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpH
ZW5lcmljVGltZU1peGluKToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6ZnJvbVJh
d1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9Nb25vdG9uaWNUaW1lLmg6CisgICAg
ICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Ok1vbm90b25pY1RpbWUpOgorICAgICAgICAoV1RGOjpN
b25vdG9uaWNUaW1lOjpNYXJrYWJsZVRyYWl0czo6aXNFbXB0eVZhbHVlKToKKyAgICAgICAgKHN0
ZDo6aXNuYW4pOgorICAgICAgICAoc3RkOjppc2luZik6CisgICAgICAgIChzdGQ6OmlzZmluaXRl
KToKKyAgICAgICAgKiB3dGYvTW9ub3RvbmljVGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1vbm90
b25pY1RpbWU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9TZWNvbmRzLmNwcDoKKyAgICAg
ICAgKFdURjo6U2Vjb25kczo6b3BlcmF0b3ItIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlLmg6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKToKKyAgICAgICAgKFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUpOiBSZW5hbWVkIGZy
b20gYFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUaW1lOjp3aXRoU2FtZUNsb2NrQW5kUmF3U2Vj
b25kc2AuCisgICAgICAgIChzdGQ6OmlzbmFuKToKKyAgICAgICAgKHN0ZDo6aXNpbmYpOgorICAg
ICAgICAoc3RkOjppc2Zpbml0ZSk6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6ZnJvbVJhd1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9UaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6OndhbGxUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlOjptb25vdG9uaWNUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlOjphcHByb3hpbWF0ZVRpbWUgY29uc3QpOgorICAgICAgICAoV1RGOjpUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6VGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RGOjpU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RG
OjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RG
OjpoYXNFbGFwc2VkKToKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Ok1hcmthYmxlVHJh
aXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAgICAgIChzdGQ6
OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0Zi9XYWxsVGlt
ZS5jcHA6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpkdW1wIGNvbnN0KToKKworICAgICAgICAq
IHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg6CisgICAgICAgIChXVEY6OlBlcnNp
c3RlbmNlOjpDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
UGVyc2lzdGVuY2U6OkNvZGVyPFNlY29uZHM+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgU2Vjb25kc2AgYW5kIGBHZW5l
cmljVGltZU1peGluYCBkZWZpbmUgbWVtYmVyIGBlbmNvZGVgL2BkZWNvZGVgLgorCisgICAgICAg
ICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6dG9X
YWxsVGltZSk6CisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlTW9kaWZpY2F0aW9uVGlt
ZSk6CisgICAgICAgICogd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlQ3JlYXRpb25UaW1lKToKKyAgICAgICAgKiB3dGYvcG9z
aXgvVGhyZWFkaW5nUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRp
bWVkV2FpdCk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6OmZpbGVDcmVhdGlvblRpbWUpOgorICAgICAgICBSZXBsYWNl
IGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorCiAyMDIx
LTEyLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V1BdIFN0cmVuZ3RoZW4gc2FuZGJveCB3aGVuIEFwcENhY2hlIGlzIGRpc2FibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYTFkODU3N2Q2NGQ1YmMzZGIxZTRhZDk2NzA4N2M2NDc0YTAyNTRiZi4uMzgyN2ZhNWZj
YWM0ZjViODUwZDU1M2I1NGM3YzFjYzYzZmUwOTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcw
IEBACisyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBgTW9ub3Rvbmlj
VGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhhdCBgTW9ub3RvbmljVGltZWAv
YFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRoZSB1bmRlcmx5aW5nCisgICAgICAgIHZh
bHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29uZHNgIHRvIG1ha2UgaXQgZWFzaWVyIHRv
IGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3cmFwcGVyL1BPRC1lc3F1ZSBvYmplY3Rz
IChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBgZnJvbVJhd1NlY29uZHNgIGFuZCBpbnN0
ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUgZ3VhcmFudGVlIHRoYXQgdGhlIGRldmVs
b3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHJlcHJlc2VudHMgc2Vjb25kcwor
ICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25pY1RpbWVgL2BXYWxsVGltZWAvZXRjLiku
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUkdhbWVwYWQ6OldlYlhSR2FtZXBhZCk6CisgICAgICAgICogaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NWaWRlb0ZyYW1lTWV0
YWRhdGFUaW1lc3RhbXBzKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZyYW1lUmF0ZU1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVSYXRlTW9uaXRv
cjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2Vi
QXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViQXVkaW9TcmNSZW5k
ZXJBbmRQdXNoRnJhbWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1l
bnVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvU3lzdGVtQ2xvY2tUaW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6dG9TeXN0ZW1DbG9ja1Rp
bWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y2xlYXJNZWRpYUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjp3YWxsVGltZUZvckV2ZW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndhbGxUaW1lRm9y
RXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3Jt
VG91Y2hFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcw
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnBhcnNlSFRUUERhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0
d29ya0xvYWRNZXRyaWNzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
bGFzdE1vZGlmaWVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05l
dHdvcmtMb2FkTWV0cmljcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGVUb01vbm90b25pY1Rp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29raWVKYXJEQjo6c2V0Q29va2llKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VybENhY2hlRW50cnk6OkN1cmxDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxD
YWNoZUVudHJ5OjpwYXJzZVJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
OgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZSk6
CisgICAgICAgICogcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmg6CisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJlY29yZHMpOgor
ICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMo
Li4uKSlgLgorICAgICAgICBEcml2ZS1ieTogVXNlIGBXYWxsVGltZWAvYE1vbm90b25pY1RpbWVg
L2V0Yy4gaW5zdGVhZCBvZiBhIHJhdyBgZG91YmxlYCB3aGVyZSBjb252ZW5pZW50LgorCiAyMDIx
LTEyLTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFUgUHJvY2Vzc10gTW92ZSB0aGUgRmlsdGVyRWZmZWN0IGJvdW5kYXJpZXMgdG8gYSBuZXcgY2xh
c3MgRmlsdGVyRWZmZWN0R2VvbWV0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjNmZTMyZDJiZGRjMmFlMTJjMmQ2
Y2U3ODYzM2Q5MzczNWRjYTA5OC4uMjVkOTdhOGU2MmY4YzE0MGQxZTNiNzNlODM5MGYyYjI4NjRi
NDQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAyMS0xMi0wMiAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGBTZWNvbmRzYCBhcyB0aGUgdW5k
ZXJseWluZyB2YWx1ZSBmb3IgYE1vbm90b25pY1RpbWVgL2BXYWxsVGltZWAvZXRjLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBhbHJlYWR5IHRo
ZSBjYXNlIHRoYXQgYE1vbm90b25pY1RpbWVgL2BXYWxsVGltZWAvZXRjLiB1c2Ugc2Vjb25kcyBh
cyB0aGUgdW5kZXJseWluZworICAgICAgICB2YWx1ZSwgc28gd2Ugc2hvdWxkIGp1c3QgdXNlIGBT
ZWNvbmRzYCB0byBtYWtlIGl0IGVhc2llciB0byBjb252ZXJ0IHRvL2Zyb20gdGhlc2UKKyAgICAg
ICAgd3JhcHBlci9QT0QtZXNxdWUgb2JqZWN0cyAoZS5nLiB3ZSB3b3VsZCBiZSBhYmxlIHRvIGRy
b3AgYGZyb21SYXdTZWNvbmRzYCBhbmQgaW5zdGVhZCBoYXZlIGEKKyAgICAgICAgY29tcGlsZS10
aW1lIGd1YXJhbnRlZSB0aGF0IHRoZSBkZXZlbG9wZXIga25vd3MgdGhhdCB0aGUgdW5kZXJseWlu
ZyB2YWx1ZSByZXByZXNlbnRzIHNlY29uZHMKKyAgICAgICAgd2hlbiBjcmVhdGluZyBhIGBNb25v
dG9uaWNUaW1lYC9gV2FsbFRpbWVgL2V0Yy4pLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWlucyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vlbik6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBp
cmVkU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxpdGll
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlVXRpbGl0aWVzOjpidWlsZFByaXZhdGVD
bGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6ZmlsZVRpbWVzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAg
ICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjp0YXNrOmRpZEZpbmlzaENv
bGxlY3RpbmdNZXRyaWNzOl0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6
OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OnJl
c3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRTdGFydFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRSZXN0YXJ0KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW06CisgICAgICAgIChXZWJL
aXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAq
IFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViSU9TRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYklPU0V2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xl
YXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICh0b1N5c3RlbUNsb2NrVGltZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tOgorICAgICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZv
IGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAgICAoZGVjb2RlSFRUUEJvZHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwOgorICAg
ICAgICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsZWFyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZp
Y2VJZEhhc2hTYWx0U3RvcmFnZTo6Z2V0RGF0YUZyb21EZWNvZGVyIGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TGFzdFNlZW4pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tOgorICAgICAgICAoLVtXS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIgY3JlYXRlTW91c2VFdmVudFdpdGhUeXBlOndhc0NhbmNlbGxlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmRlY29kZUZvcm1EYXRhRWxlbWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tC
dW5kbGVQYWdlU2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxh
dGVNb3VzZVVwKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VNb3Rpb24pOgor
ICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMo
Li4uKSlgLgorICAgICAgICBEcml2ZS1ieTogVXNlIGBXYWxsVGltZWAvYE1vbm90b25pY1RpbWVg
L2V0Yy4gaW5zdGVhZCBvZiBhIHJhdyBgZG91YmxlYCB3aGVyZSBjb252ZW5pZW50LgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxs
VGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2Fs
bFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBz
aW5jZSBgR2VuZXJpY1RpbWVNaXhpbmAgZGVmaW5lcyBtZW1iZXIgYGVuY29kZWAvYGRlY29kZWAu
CisKIDIwMjEtMTItMDIgIFJhY2hlbCBHaW5zYmVyZyAgPHJnaW5zYmVyZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBlbnVtIHZhbHVlcyBjb25zaXN0ZW4gaW4gQXBwbGljYXRpb25NYW5pZmVz
dDo6SWNvbjo6UHVycG9zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXBwcm94aW1hdGVU
aW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5jcHAKaW5kZXggZDE3OWVk
NWNhMGQ3NDFiYjMyYTRlMjQ5MzBmNzcyYzE4ZDQ1YmI5Mi4uMTkwMjYwYjE1NWE4ZDIzM2UyZDA2
MmY0ODJiN2U0ZDQzOTg2OGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXBwcm94aW1h
dGVUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuY3BwCkBAIC00
NCw3ICs0NCw5IEBAIE1vbm90b25pY1RpbWUgQXBwcm94aW1hdGVUaW1lOjphcHByb3hpbWF0ZU1v
bm90b25pY1RpbWUoKSBjb25zdAogCiB2b2lkIEFwcHJveGltYXRlVGltZTo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludCgiQXBwcm94aW1hdGUoIiwgbV92YWx1
ZSwgIiBzZWMpIik7CisgICAgb3V0LnByaW50KCJBcHByb3hpbWF0ZSgiKTsKKyAgICBzZWNvbmRz
U2luY2VFcG9jaCgpLmR1bXAob3V0KTsKKyAgICBvdXQucHJpbnQoIikiKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUu
aCBiL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCmluZGV4IGNiYTNlMGMwMGM4NmZh
YTJjYzUyZTViZmViNjlkODEwMjMzOTRiYmUuLjYxN2UwMDBlYWZkNWY5MTdiMzJhMzA3ZjA3OTAy
MGJmMDdlNGQxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCkBAIC00Miw2ICs0MiwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVw
b2NoKCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBBcHByb3hpbWF0ZVRpbWUoKS4KICAgICBj
b25zdGV4cHIgQXBwcm94aW1hdGVUaW1lKCkgPSBkZWZhdWx0OwogCisgICAgZXhwbGljaXQgY29u
c3RleHByIEFwcHJveGltYXRlVGltZShTZWNvbmRzIHNlY29uZHMpCisgICAgICAgIDogR2VuZXJp
Y1RpbWVNaXhpbjxBcHByb3hpbWF0ZVRpbWU+KHNlY29uZHMpCisgICAgeworICAgIH0KKwogI2lm
IE9TKERBUldJTikKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEFwcHJveGltYXRlVGlt
ZSBmcm9tTWFjaEFwcHJveGltYXRlVGltZSh1aW50NjRfdCk7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHVpbnQ2NF90IHRvTWFjaEFwcHJveGltYXRlVGltZSgpIGNvbnN0OwpAQCAtNTYsMjAgKzYx
LDEzIEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAKICAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW48QXBwcm94aW1hdGVUaW1lPjsKLSAgICBj
b25zdGV4cHIgQXBwcm94aW1hdGVUaW1lKGRvdWJsZSByYXdWYWx1ZSkKLSAgICAgICAgOiBHZW5l
cmljVGltZU1peGluPEFwcHJveGltYXRlVGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07
CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihBcHByb3hpbWF0ZVRpbWUpID09IHNpemVvZihkb3VibGUp
KTsKIAogc3RydWN0IEFwcHJveGltYXRlVGltZTo6TWFya2FibGVUcmFpdHMgewogICAgIHN0YXRp
YyBib29sIGlzRW1wdHlWYWx1ZShBcHByb3hpbWF0ZVRpbWUgdGltZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBzdGQ6OmlzbmFuKHRpbWUubV92YWx1ZSk7CisgICAgICAgIHJldHVybiBzdGQ6Omlz
bmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBBcHByb3hpbWF0ZVRpbWUgZW1wdHlWYWx1ZSgpCkBAIC04NCwxNyArODIsMTcgQEAgbmFt
ZXNwYWNlIHN0ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6QXBwcm94aW1hdGVUaW1lIHRp
bWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCkpOworICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7
CiB9CiAKIGlubGluZSBib29sIGlzaW5mKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0g
ICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwor
ICAgIHJldHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlu
bGluZSBib29sIGlzZmluaXRlKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0gICAgcmV0
dXJuIHN0ZDo6aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAg
IHJldHVybiBzdGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIHN0ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUu
Y3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4IGFhNjhjZGRjMTFjMzc2
MDYzNjdhNmE5Mzg1N2M5OGQ1OWJjNWE2NDAuLjI5MDcyMzUwMGNiYmNkZTIxMDU4ODJhMGRjNzAx
MDBlYWQzYjY3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBz
dGF0aWMgaW5saW5lIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKIFdhbGxUaW1lIFdhbGxUaW1lOjpu
b3coKQogewotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhjdXJyZW50VGltZSgpKTsKKyAgICBy
ZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50VGltZSgpKSk7CiB9CiAKICNpZiBPUyhEQVJX
SU4pCkBAIC0yNjgsNDcgKzI2OCw0NyBAQCBzdGF0aWMgbWFjaF90aW1lYmFzZV9pbmZvX2RhdGFf
dCYgbWFjaFRpbWViYXNlSW5mbygpCiBNb25vdG9uaWNUaW1lIE1vbm90b25pY1RpbWU6OmZyb21N
YWNoQWJzb2x1dGVUaW1lKHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byYg
aW5mbyA9IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoKG1h
Y2hBYnNvbHV0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKTsKKyAg
ICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogaW5mby5u
dW1lcikgLyAoMS4wZTkgKiBpbmZvLmRlbm9tKSkpOwogfQogCiB1aW50NjRfdCBNb25vdG9uaWNU
aW1lOjp0b01hY2hBYnNvbHV0ZVRpbWUoKSBjb25zdAogewogICAgIGF1dG8mIGluZm8gPSBtYWNo
VGltZWJhc2VJbmZvKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PigobV92YWx1
ZSAqIDEuMGU5ICogaW5mby5kZW5vbSkgLyBpbmZvLm51bWVyKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KChzZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgKiAxLjBlOSAqIGlu
Zm8uZGVub20pIC8gaW5mby5udW1lcik7CiB9CiAKIEFwcHJveGltYXRlVGltZSBBcHByb3hpbWF0
ZVRpbWU6OmZyb21NYWNoQXBwcm94aW1hdGVUaW1lKHVpbnQ2NF90IG1hY2hBcHByb3hpbWF0ZVRp
bWUpCiB7CiAgICAgYXV0byYgaW5mbyA9IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4g
ZnJvbVJhd1NlY29uZHMoKG1hY2hBcHByb3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBl
OSAqIGluZm8uZGVub20pKTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHMoKG1h
Y2hBcHByb3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKSk7
CiB9CiAKIHVpbnQ2NF90IEFwcHJveGltYXRlVGltZTo6dG9NYWNoQXBwcm94aW1hdGVUaW1lKCkg
Y29uc3QKIHsKICAgICBhdXRvJiBpbmZvID0gbWFjaFRpbWViYXNlSW5mbygpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1aW50NjRfdD4oKG1fdmFsdWUgKiAxLjBlOSAqIGluZm8uZGVub20pIC8g
aW5mby5udW1lcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pigoc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpICogMS4wZTkgKiBpbmZvLmRlbm9tKSAvIGluZm8ubnVtZXIpOwog
fQogI2VuZGlmCiAKIE1vbm90b25pY1RpbWUgTW9ub3RvbmljVGltZTo6bm93KCkKIHsKICNpZiBV
U0UoR0xJQikKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihn
X2dldF9tb25vdG9uaWNfdGltZSgpIC8gMTAwMDAwMC4wKSk7CisgICAgcmV0dXJuIE1vbm90b25p
Y1RpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdfZ2V0X21vbm90b25pY190aW1lKCkg
LyAxMDAwMDAwLjApKSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgcmV0dXJuIGZyb21NYWNoQWJz
b2x1dGVUaW1lKG1hY2hfYWJzb2x1dGVfdGltZSgpKTsKICNlbGlmIE9TKEZVQ0hTSUEpCi0gICAg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKHp4X2Nsb2NrX2dldF9tb25vdG9uaWMoKSAvIHN0YXRpY19j
YXN0PGRvdWJsZT4oWlhfU0VDKDEpKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25k
cyh6eF9jbG9ja19nZXRfbW9ub3RvbmljKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KFpYX1NFQygx
KSkpKTsKICNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNEKSB8fCBP
UyhORVRCU0QpCiAgICAgc3RydWN0IHRpbWVzcGVjIHRzIHsgfTsKICAgICBjbG9ja19nZXR0aW1l
KENMT0NLX01PTk9UT05JQywgJnRzKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGlj
X2Nhc3Q8ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KTsKKyAgICByZXR1
cm4gTW9ub3RvbmljVGltZShTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSAr
IHRzLnR2X25zZWMgLyAxLjBlOSkpOwogI2Vsc2UKICAgICBzdGF0aWMgZG91YmxlIGxhc3RUaW1l
ID0gMDsKICAgICBkb3VibGUgY3VycmVudFRpbWVOb3cgPSBjdXJyZW50VGltZSgpOwogICAgIGlm
IChjdXJyZW50VGltZU5vdyA8IGxhc3RUaW1lKQogICAgICAgICByZXR1cm4gbGFzdFRpbWU7CiAg
ICAgbGFzdFRpbWUgPSBjdXJyZW50VGltZU5vdzsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMo
Y3VycmVudFRpbWVOb3cpOworICAgIHJldHVybiBNb25vdG9uaWNUaW1lKFNlY29uZHMoY3VycmVu
dFRpbWVOb3cpKTsKICNlbmRpZgogfQogCkBAIC0zMTksMTMgKzMxOSwxMyBAQCBBcHByb3hpbWF0
ZVRpbWUgQXBwcm94aW1hdGVUaW1lOjpub3coKQogI2VsaWYgT1MoTElOVVgpCiAgICAgc3RydWN0
IHRpbWVzcGVjIHRzIHsgfTsKICAgICBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQ19DT0FS
U0UsICZ0cyk7Ci0gICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4o
dHMudHZfc2VjKSArIHRzLnR2X25zZWMgLyAxLjBlOSk7CisgICAgcmV0dXJuIEFwcHJveGltYXRl
VGltZShTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRzLnR2X25zZWMg
LyAxLjBlOSkpOwogI2VsaWYgT1MoRlJFRUJTRCkKICAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgeyB9
OwogICAgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDX0ZBU1QsICZ0cyk7Ci0gICAgcmV0
dXJuIGZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRzLnR2
X25zZWMgLyAxLjBlOSk7CisgICAgcmV0dXJuIEFwcHJveGltYXRlVGltZShTZWNvbmRzKHN0YXRp
Y19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRzLnR2X25zZWMgLyAxLjBlOSkpOwogI2Vsc2UK
LSAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lOjpmcm9tUmF3U2Vjb25kcyhNb25vdG9uaWNUaW1l
Ojpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBBcHByb3hp
bWF0ZVRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAppbmRleCA2NGJhYzZiNmI3MDAxNjEwYjUzZjJlMWQz
MDkyNjdiZDVhNDBmNTM4Li5mMDJiN2M4MWM3NjNkNDZkN2EzYmIyNGQ1MzU0YmRjNDZmOWQyYWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9GaWxlU3lzdGVtLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8IWhhc190b190aW1lX3Q8dHlwZW5hbWUgRmlsZVRpbWVUeXBlOjpjbG9jaz46
OnZhbHVlLCBzCiBzdGF0aWMgV2FsbFRpbWUgdG9XYWxsVGltZShzdGQ6OmZpbGVzeXN0ZW06OmZp
bGVfdGltZV90eXBlIGZpbGVUaW1lKQogewogICAgIC8vIEZJWE1FOiBVc2Ugc3RkOjpjaHJvbm86
OmZpbGVfY2xvY2s6OnRvX3N5cygpIG9uY2Ugd2UgY2FuIHVzZSBDKysyMC4KLSAgICByZXR1cm4g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRvVGltZVQoZmlsZVRpbWUpKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kcyh0b1RpbWVUKGZpbGVUaW1lKSkpOwogfQogCiAjZW5kaWYgLy8gSEFW
RShTVERfRklMRVNZU1RFTSkgfHwgSEFWRShTVERfRVhQRVJJTUVOVEFMX0ZJTEVTWVNURU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9HZW5lcmljVGltZU1peGluLmggYi9Tb3VyY2UvV1RG
L3d0Zi9HZW5lcmljVGltZU1peGluLmgKaW5kZXggYWJiZWUwYWVlZGZjMzhjYjc0NDRjYTEyMDRh
NjM2MDJiNmE0ODY4MC4uMGVhOGU5YTA4MjJlMjdjZjdkODBkZGJiNzAzNTk1ZjMxYmM5NGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0dlbmVyaWNUaW1lTWl4aW4uaApAQCAtMzMsNDAgKzMzLDMzIEBAIHRlbXBsYXRl
PHR5cGVuYW1lIERlcml2ZWRUaW1lPgogY2xhc3MgR2VuZXJpY1RpbWVNaXhpbiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgLy8gQ2FsbCB0aGlzIGlmIHlvdSBr
bm93IGZvciBzdXJlIHRoYXQgdGhlIGRvdWJsZSByZXByZXNlbnRzIHRoZSB0aW1lIGFjY29yZGlu
ZyB0byB0aGUKLSAgICAvLyBzYW1lIHRpbWUgc291cmNlIGFzIERlcml2ZWRUaW1lLiBJdCBtdXN0
IGJlIGluIHNlY29uZHMuCi0gICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBmcm9tUmF3
U2Vjb25kcyhkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gRGVyaXZlZFRpbWUo
dmFsdWUpOwotICAgIH0KKyAgICBzdGF0aWMgY29uc3RleHByIERlcml2ZWRUaW1lIGluZmluaXR5
KCkgeyByZXR1cm4gRGVyaXZlZFRpbWUoU2Vjb25kczo6aW5maW5pdHkoKSk7IH0KKyAgICBzdGF0
aWMgY29uc3RleHByIERlcml2ZWRUaW1lIG5hbigpIHsgcmV0dXJuIERlcml2ZWRUaW1lKFNlY29u
ZHM6Om5hbigpKTsgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBpbmZpbml0
eSgpIHsgcmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
aW5maW5pdHkoKSk7IH0KLSAgICBzdGF0aWMgY29uc3RleHByIERlcml2ZWRUaW1lIG5hbigpIHsg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRf
TmFOKCkpOyB9CisgICAgY29uc3RleHByIFNlY29uZHMgc2Vjb25kc1NpbmNlRXBvY2goKSBjb25z
dCB7IHJldHVybiBtX3NlY29uZHM7IH0KIAotICAgIGNvbnN0ZXhwciBTZWNvbmRzIHNlY29uZHNT
aW5jZUVwb2NoKCkgY29uc3QgeyByZXR1cm4gU2Vjb25kcyhtX3ZhbHVlKTsgfQotCi0gICAgZXhw
bGljaXQgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fdmFsdWU7
IH0KKyAgICBleHBsaWNpdCBjb25zdGV4cHIgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV9zZWNvbmRzOyB9CiAKICAgICBjb25zdGV4cHIgRGVyaXZlZFRpbWUgb3BlcmF0b3IrKFNl
Y29uZHMgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMo
bV92YWx1ZSArIG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gRGVyaXZlZFRpbWUobV9z
ZWNvbmRzICsgb3RoZXIpOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBvcGVy
YXRvci0oU2Vjb25kcyBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBmcm9tUmF3
U2Vjb25kcyhtX3ZhbHVlIC0gb3RoZXIudmFsdWUoKSk7CisgICAgICAgIHJldHVybiBEZXJpdmVk
VGltZShtX3NlY29uZHMgLSBvdGhlcik7CiAgICAgfQogCiAgICAgU2Vjb25kcyBvcGVyYXRvciUo
U2Vjb25kcyBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBTZWNvbmRzIHsgZm1v
ZChtX3ZhbHVlLCBvdGhlci52YWx1ZSgpKSB9OworICAgICAgICByZXR1cm4gU2Vjb25kcyhmbW9k
KG1fc2Vjb25kcy52YWx1ZSgpLCBvdGhlci5zZWNvbmRzKCkpKTsKICAgICB9CiAKICAgICAvLyBU
aW1lIGlzIGEgc2NhbGFyIGFuZCBzY2FsYXJzIGNhbiBiZSBuZWdhdGVkIGFzIHRoaXMgY291bGQg
YXJpc2UgZnJvbSBhbGdlYnJhaWMKICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMuIFNvLCB3ZSBhbGxv
dyBpdC4KICAgICBjb25zdGV4cHIgRGVyaXZlZFRpbWUgb3BlcmF0b3ItKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcygtbV92YWx1ZSk7CisgICAgICAgIHJldHVy
biBEZXJpdmVkVGltZSgtbV9zZWNvbmRzKTsKICAgICB9CiAKICAgICBEZXJpdmVkVGltZSBvcGVy
YXRvcis9KFNlY29uZHMgb3RoZXIpCkBAIC04MSwzNyArNzQsMzcgQEAgcHVibGljOgogCiAgICAg
Y29uc3RleHByIFNlY29uZHMgb3BlcmF0b3ItKERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAg
IHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHMobV92YWx1ZSAtIG90aGVyLm1fdmFsdWUpOworICAg
ICAgICByZXR1cm4gbV9zZWNvbmRzIC0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPT0oRGVyaXZlZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4g
bV9zZWNvbmRzID09IG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAgICBjb25zdGV4cHIgYm9v
bCBvcGVyYXRvciE9KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fdmFsdWUgIT0gb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyAh
PSBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I8
KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUg
PCBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4gbV9zZWNvbmRzIDwgb3RoZXIubV9zZWNv
bmRzOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPihEZXJpdmVkVGltZSBv
dGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlID4gb3RoZXIubV92YWx1
ZTsKKyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyA+IG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAK
ICAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjw9KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUgPD0gb3RoZXIubV92YWx1ZTsKKyAgICAgICAg
cmV0dXJuIG1fc2Vjb25kcyA8PSBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAgY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3I+PShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFsdWU7CisgICAgICAgIHJldHVybiBtX3Nl
Y29uZHMgPj0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIERlcml2ZWRUaW1lIGlzb2xh
dGVkQ29weSgpIGNvbnN0CkBAIC0xMjIsMjcgKzExNSwyNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBtX3ZhbHVlOworICAgICAgICBlbmNvZGVyIDw8
IG1fc2Vjb25kczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPERlcml2ZWRUaW1lPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiB0aW1lOwotICAgICAgICBkZWNv
ZGVyID4+IHRpbWU7Ci0gICAgICAgIGlmICghdGltZSkKKyAgICAgICAgc3RkOjpvcHRpb25hbDxT
ZWNvbmRzPiBzZWNvbmRzOworICAgICAgICBkZWNvZGVyID4+IHNlY29uZHM7CisgICAgICAgIGlm
ICghc2Vjb25kcykKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHJl
dHVybiBEZXJpdmVkVGltZTo6ZnJvbVJhd1NlY29uZHMoKnRpbWUpOworICAgICAgICByZXR1cm4g
RGVyaXZlZFRpbWUoKnNlY29uZHMpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBEZXJpdmVkVGltZSYgdGltZSkKICAgICB7Ci0gICAgICAgIGRvdWJsZSB2YWx1ZTsK
LSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisgICAgICAgIFNlY29uZHMgc2Vj
b25kczsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZWNvbmRzKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICB0aW1lID0gRGVyaXZlZFRpbWU6OmZyb21SYXdTZWNv
bmRzKHZhbHVlKTsKKyAgICAgICAgdGltZSA9IERlcml2ZWRUaW1lKHNlY29uZHMpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE1MCwxMiArMTQzLDEzIEBAIHByb3RlY3RlZDoK
ICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1NpbmNlRXBvY2goKSBzaG91
bGQgYmUgdGhlIHNhbWUgYXMgeCAtIERlcml2ZWRUaW1lKCkuCiAgICAgY29uc3RleHByIEdlbmVy
aWNUaW1lTWl4aW4oKSA9IGRlZmF1bHQ7CiAKLSAgICBjb25zdGV4cHIgR2VuZXJpY1RpbWVNaXhp
bihkb3VibGUgcmF3VmFsdWUpCi0gICAgICAgIDogbV92YWx1ZShyYXdWYWx1ZSkKKyAgICBleHBs
aWNpdCBjb25zdGV4cHIgR2VuZXJpY1RpbWVNaXhpbihTZWNvbmRzIHNlY29uZHMpCisgICAgICAg
IDogbV9zZWNvbmRzKHNlY29uZHMpCiAgICAgewogICAgIH0KIAotICAgIGRvdWJsZSBtX3ZhbHVl
IHsgMCB9OworcHJpdmF0ZToKKyAgICBTZWNvbmRzIG1fc2Vjb25kczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmNwcAppbmRleCA0N2M1MDQ2Y2FiMjMyYjZj
OTJlYWMyNTFhMzQyYTlmMmE5NGNkNGNkLi41MTZhZDI0YjhjMWY1MTNkMmI5NWYzNDIxNDE5YTFi
YzlhNjdhMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmNwcApAQCAtMzgsNyArMzgsOSBAQCBX
YWxsVGltZSBNb25vdG9uaWNUaW1lOjphcHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3QKIAogdm9p
ZCBNb25vdG9uaWNUaW1lOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgb3V0
LnByaW50KCJNb25vdG9uaWMoIiwgbV92YWx1ZSwgIiBzZWMpIik7CisgICAgb3V0LnByaW50KCJN
b25vdG9uaWMoIik7CisgICAgc2Vjb25kc1NpbmNlRXBvY2goKS5kdW1wKG91dCk7CisgICAgb3V0
LnByaW50KCIpIik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTW9ub3RvbmljVGltZS5oIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5o
CmluZGV4IGZlMmE3YWFlOTFjMGU1OGJkYWRlYzYyMjY2NDVjZmFhZTI4NmVlY2YuLmE3ZjU1OGJm
YWFlMjkyYjQzMDI0MDJmODhmNGQzZWY1NzYyNDdlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01vbm90b25pY1RpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgK
QEAgLTQ0LDYgKzQ0LDExIEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28s
IHguc2Vjb25kc1NpbmNlRXBvY2goKSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeCAtIE1vbm90b25p
Y1RpbWUoKS4KICAgICBjb25zdGV4cHIgTW9ub3RvbmljVGltZSgpID0gZGVmYXVsdDsKIAorICAg
IGV4cGxpY2l0IGNvbnN0ZXhwciBNb25vdG9uaWNUaW1lKFNlY29uZHMgc2Vjb25kcykKKyAgICAg
ICAgOiBHZW5lcmljVGltZU1peGluPE1vbm90b25pY1RpbWU+KHNlY29uZHMpCisgICAgeworICAg
IH0KKwogI2lmIE9TKERBUldJTikKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIE1vbm90
b25pY1RpbWUgZnJvbU1hY2hBYnNvbHV0ZVRpbWUodWludDY0X3QpOwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB1aW50NjRfdCB0b01hY2hBYnNvbHV0ZVRpbWUoKSBjb25zdDsKQEAgLTU3LDIwICs2
MiwxMyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OwogCiAgICAgc3RydWN0IE1hcmthYmxlVHJhaXRzOwotCi1wcml2YXRlOgot
ICAgIGZyaWVuZCBjbGFzcyBHZW5lcmljVGltZU1peGluPE1vbm90b25pY1RpbWU+OwotICAgIGNv
bnN0ZXhwciBNb25vdG9uaWNUaW1lKGRvdWJsZSByYXdWYWx1ZSkKLSAgICAgICAgOiBHZW5lcmlj
VGltZU1peGluPE1vbm90b25pY1RpbWU+KHJhd1ZhbHVlKQotICAgIHsKLSAgICB9CiB9Owogc3Rh
dGljX2Fzc2VydChzaXplb2YoTW9ub3RvbmljVGltZSkgPT0gc2l6ZW9mKGRvdWJsZSkpOwogCiBz
dHJ1Y3QgTW9ub3RvbmljVGltZTo6TWFya2FibGVUcmFpdHMgewogICAgIHN0YXRpYyBib29sIGlz
RW1wdHlWYWx1ZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgewotICAgICAgICByZXR1cm4gc3Rk
Ojppc25hbih0aW1lLm1fdmFsdWUpOworICAgICAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNl
Y29uZHNTaW5jZUVwb2NoKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdGV4cHIgTW9ub3Rv
bmljVGltZSBlbXB0eVZhbHVlKCkKQEAgLTg1LDE3ICs4MywxNyBAQCBuYW1lc3BhY2Ugc3RkIHsK
IAogaW5saW5lIGJvb2wgaXNuYW4oV1RGOjpNb25vdG9uaWNUaW1lIHRpbWUpCiB7Ci0gICAgcmV0
dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJl
dHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBi
b29sIGlzaW5mKFdURjo6TW9ub3RvbmljVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6Omlz
aW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjpp
c2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2Zpbml0
ZShXVEY6Ok1vbm90b25pY1RpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjppc2Zpbml0ZSh0
aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6aXNmaW5p
dGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ugc3RkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Nl
Y29uZHMuY3BwCmluZGV4IGY5ZjJmMWJjNGQ4MDMxNTI3OGVmN2M3MDIzZWViMjBhMDhjZDlkODEu
Ljc0M2ZlNThmZDQxYWNiZjRkNTBiMDU5OWY4Y2ZmYmZlYjYwYTgyMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1NlY29uZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuY3Bw
CkBAIC01OSwyMiArNTksMjIgQEAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIFNlY29uZHM6Om9w
ZXJhdG9yKyhjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGUKIAogV2FsbFRpbWUg
U2Vjb25kczo6b3BlcmF0b3ItKFdhbGxUaW1lIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUoKSAtIG90aGVyLnNlY29uZHNTaW5jZUVwb2No
KCkudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKCp0aGlzIC0gb3RoZXIuc2Vjb25kc1Np
bmNlRXBvY2goKSk7CiB9CiAKIE1vbm90b25pY1RpbWUgU2Vjb25kczo6b3BlcmF0b3ItKE1vbm90
b25pY1RpbWUgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21S
YXdTZWNvbmRzKHZhbHVlKCkgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwor
ICAgIHJldHVybiBNb25vdG9uaWNUaW1lKCp0aGlzIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2go
KSk7CiB9CiAKIEFwcHJveGltYXRlVGltZSBTZWNvbmRzOjpvcGVyYXRvci0oQXBwcm94aW1hdGVU
aW1lIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBBcHByb3hpbWF0ZVRpbWU6OmZyb21SYXdT
ZWNvbmRzKHZhbHVlKCkgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAg
IHJldHVybiBBcHByb3hpbWF0ZVRpbWUoKnRoaXMgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgp
KTsKIH0KIAogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIFNlY29uZHM6Om9wZXJhdG9yLShjb25z
dCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBv
dGhlci53aXRoU2FtZUNsb2NrQW5kUmF3U2Vjb25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gb3RoZXIud2l0aFNlY29uZHNGb3JTYW1l
Q2xvY2tUeXBlKCp0aGlzIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIHZvaWQg
U2Vjb25kczo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Rp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5jcHAKaW5kZXggZTI4NWEzYTE0YjI4MmMxMGRjZTc3YzY3
ZDAzNmQxYzBkZDQwOTdhZS4uOWYxYjYzNTJkOTViYmQ5MTNmMjk5M2MwNGY0ZTU2MGI2NjUwYmRm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwCkBAIC01
NSwxOSArNTUsMTkgQEAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZTo6bm93V2l0aFNhbWVDbG9jaygpIGNvbnN0CiBXYWxsVGltZSBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6OndhbGxUaW1lKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3R5
cGUgPT0gQ2xvY2tUeXBlOjpXYWxsKTsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKG1fdmFsdWUpOworICAgIHJldHVybiBXYWxsVGltZShtX3NlY29uZHMpOwogfQogCiBNb25v
dG9uaWNUaW1lIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6bW9ub3RvbmljVGltZSgpIGNvbnN0
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IENsb2NrVHlwZTo6TW9ub3RvbmljKTsK
LSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMobV92YWx1ZSk7CisgICAg
cmV0dXJuIE1vbm90b25pY1RpbWUobV9zZWNvbmRzKTsKIH0KIAogQXBwcm94aW1hdGVUaW1lIFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6YXBwcm94aW1hdGVUaW1lKCkgY29uc3QKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3R5cGUgPT0gQ2xvY2tUeXBlOjpBcHByb3hpbWF0ZSk7Ci0gICAgcmV0
dXJuIEFwcHJveGltYXRlVGltZTo6ZnJvbVJhd1NlY29uZHMobV92YWx1ZSk7CisgICAgcmV0dXJu
IEFwcHJveGltYXRlVGltZShtX3NlY29uZHMpOwogfQogCiBXYWxsVGltZSBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6OmFwcHJveGltYXRlV2FsbFRpbWUoKSBjb25zdApAQCAtMTAxLDM2ICsxMDEs
MzkgQEAgTW9ub3RvbmljVGltZSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmFwcHJveGltYXRl
TW9ub3RvbmljVGltZSgpIGNvbnN0CiBTZWNvbmRzIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6
b3BlcmF0b3ItKGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0CiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IG90aGVyLm1fdHlwZSk7Ci0gICAgcmV0dXJu
IFNlY29uZHMobV92YWx1ZSAtIG90aGVyLm1fdmFsdWUpOworICAgIHJldHVybiBtX3NlY29uZHMg
LSBvdGhlci5tX3NlY29uZHM7CiB9CiAKIGJvb2wgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpv
cGVyYXRvcjwoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4g
bV92YWx1ZSA8IG90aGVyLm1fdmFsdWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA8IG90aGVyLm1f
c2Vjb25kczsKIH0KIAogYm9vbCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPihj
b25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewogICAgIFJFTEVB
U0VfQVNTRVJUKG1fdHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJldHVybiBtX3ZhbHVlID4g
b3RoZXIubV92YWx1ZTsKKyAgICByZXR1cm4gbV9zZWNvbmRzID4gb3RoZXIubV9zZWNvbmRzOwog
fQogCiBib29sIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I8PShjb25zdCBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJU
KG1fdHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJldHVybiBtX3ZhbHVlIDw9IG90aGVyLm1f
dmFsdWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA8PSBvdGhlci5tX3NlY29uZHM7CiB9CiAKIGJv
b2wgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcj49KGNvbnN0IFRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBl
ID09IG90aGVyLm1fdHlwZSk7Ci0gICAgcmV0dXJuIG1fdmFsdWUgPj0gb3RoZXIubV92YWx1ZTsK
KyAgICByZXR1cm4gbV9zZWNvbmRzID49IG90aGVyLm1fc2Vjb25kczsKIH0KIAogdm9pZCBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAg
ICBvdXQucHJpbnQobV90eXBlLCAiKCIsIG1fdmFsdWUsICIgc2VjKSIpOworICAgIG91dC5wcmlu
dChtX3R5cGUpOworICAgIG91dC5wcmludCgiKCIpOworICAgIG1fc2Vjb25kcy5kdW1wKG91dCk7
CisgICAgb3V0LnByaW50KCIpIik7CiB9CiAKIHZvaWQgc2xlZXAoY29uc3QgVGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlJiB0aW1lKQpAQCAtMTQ0LDcgKzE0Nyw3IEBAIHZvaWQgc2xlZXAoY29uc3Qg
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lKQogYm9vbCBoYXNFbGFwc2VkKGNvbnN0IFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZSkKIHsKICAgICAvLyBBdm9pZCBkb2luZyBub3co
KS4KLSAgICBpZiAoISh0aW1lID4gdGltZS53aXRoU2FtZUNsb2NrQW5kUmF3U2Vjb25kcygwKSkp
CisgICAgaWYgKCEodGltZSA+IHRpbWUud2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tUeXBlKDBfcykp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoc3RkOjppc2luZih0aW1lLnNlY29uZHNT
aW5jZUVwb2NoKCkudmFsdWUoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oIGIvU291cmNlL1dURi93
dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmgKaW5kZXggNGMzZTQxZTc5YmFkYjY4ZGIyNzhi
ZWQ2MWNlZDExNTZlODA4MjFjOS4uYzM2ZGI3Y2QwYTIwMmM3YmM0OTY4NmUwZGVhNzZlZmEyNTkz
ZDU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
LmgKKysrIGIvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmgKQEAgLTM4
LDQzICszOCwzOCBAQCBjbGFzcyBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgZmluYWwgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSgpIHsgfQorCisgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFNlY29uZHMgc2Vj
b25kcywgQ2xvY2tUeXBlIHR5cGUpCisgICAgICAgIDogbV9zZWNvbmRzKHNlY29uZHMpCisgICAg
ICAgICwgbV90eXBlKHR5cGUpCisgICAgeworICAgIH0KICAgICAKICAgICBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUoV2FsbFRpbWUgdGltZSkKLSAgICAgICAgOiBtX3ZhbHVlKHRpbWUuc2Vjb25k
c1NpbmNlRXBvY2goKS52YWx1ZSgpKQotICAgICAgICAsIG1fdHlwZShDbG9ja1R5cGU6OldhbGwp
CisgICAgICAgIDogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKHRpbWUuc2Vjb25kc1NpbmNlRXBv
Y2goKSwgQ2xvY2tUeXBlOjpXYWxsKQogICAgIHsKICAgICB9CiAgICAgCiAgICAgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlKE1vbm90b25pY1RpbWUgdGltZSkKLSAgICAgICAgOiBtX3ZhbHVlKHRp
bWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKQotICAgICAgICAsIG1fdHlwZShDbG9ja1R5
cGU6Ok1vbm90b25pYykKKyAgICAgICAgOiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUodGltZS5z
ZWNvbmRzU2luY2VFcG9jaCgpLCBDbG9ja1R5cGU6Ok1vbm90b25pYykKICAgICB7CiAgICAgfQog
CiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKEFwcHJveGltYXRlVGltZSB0aW1lKQotICAg
ICAgICA6IG1fdmFsdWUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpCi0gICAgICAg
ICwgbV90eXBlKENsb2NrVHlwZTo6QXBwcm94aW1hdGUpCisgICAgICAgIDogVGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSwgQ2xvY2tUeXBlOjpBcHByb3hp
bWF0ZSkKICAgICB7CiAgICAgfQotCi0gICAgc3RhdGljIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZSBmcm9tUmF3U2Vjb25kcyhkb3VibGUgdmFsdWUsIENsb2NrVHlwZSB0eXBlKQotICAgIHsKLSAg
ICAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1f
dmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgcmVzdWx0Lm1fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQogICAgIAotICAgIFNlY29uZHMgc2Vjb25kc1NpbmNlRXBvY2go
KSBjb25zdCB7IHJldHVybiBTZWNvbmRzKG1fdmFsdWUpOyB9CisgICAgU2Vjb25kcyBzZWNvbmRz
U2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25kczsgfQogICAgIENsb2NrVHlwZSBj
bG9ja1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBub3coQ2xvY2tUeXBlKTsK
ICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIG5v
d1dpdGhTYW1lQ2xvY2soKSBjb25zdDsKICAgICAKLSAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGUgd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdAorICAgIFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUoU2Vjb25k
cyBzZWNvbmRzKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZTo6ZnJvbVJhd1NlY29uZHModmFsdWUsIGNsb2NrVHlwZSgpKTsKKyAgICAgICAgcmV0
dXJuIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShzZWNvbmRzLCBjbG9ja1R5cGUoKSk7CiAgICAg
fQogICAgIAogICAgIC8vIEFzc2VydHMgdGhhdCB0aGUgdGltZSBpcyBvZiB0aGUgdHlwZSB5b3Ug
d2FudC4KQEAgLTg1LDIzICs4MCwyMyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IFdhbGxUaW1lIGFwcHJveGltYXRlV2FsbFRpbWUoKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgTW9ub3RvbmljVGltZSBhcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSBjb25zdDsKICAg
ICAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3ZhbHVl
OyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9zZWNv
bmRzOyB9CiAgICAgCiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIG9wZXJhdG9yKyhTZWNv
bmRzIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHdpdGhTYW1lQ2xvY2tBbmRS
YXdTZWNvbmRzKG1fdmFsdWUgKyBvdGhlci52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIHdpdGhT
ZWNvbmRzRm9yU2FtZUNsb2NrVHlwZShtX3NlY29uZHMgKyBvdGhlcik7CiAgICAgfQogICAgIAog
ICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBvcGVyYXRvci0oU2Vjb25kcyBvdGhlcikgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiB3aXRoU2FtZUNsb2NrQW5kUmF3U2Vjb25kcyhtX3Zh
bHVlIC0gb3RoZXIudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB3aXRoU2Vjb25kc0ZvclNhbWVD
bG9ja1R5cGUobV9zZWNvbmRzIC0gb3RoZXIpOwogICAgIH0KICAgICAKICAgICAvLyBUaW1lIGlz
IGEgc2NhbGFyIGFuZCBzY2FsYXJzIGNhbiBiZSBuZWdhdGVkIGFzIHRoaXMgY291bGQgYXJpc2Ug
ZnJvbSBhbGdlYnJhaWMKICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMuIFNvLCB3ZSBhbGxvdyBpdC4K
ICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3ItKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIHJldHVybiB3aXRoU2FtZUNsb2NrQW5kUmF3U2Vjb25kcygtbV92YWx1ZSk7CisgICAg
ICAgIHJldHVybiB3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUoLW1fc2Vjb25kcyk7CiAgICAg
fQogICAgIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBvcGVyYXRvcis9KFNlY29uZHMg
b3RoZXIpCkBAIC0xMTgsNyArMTEzLDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZQorICAgICAgICByZXR1cm4g
bV9zZWNvbmRzID09IG90aGVyLm1fc2Vjb25kcwogICAgICAgICAgICAgJiYgbV90eXBlID09IG90
aGVyLm1fdHlwZTsKICAgICB9CiAgICAgCkBAIC0xMzYsNyArMTMxLDcgQEAgcHVibGljOgogICAg
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAK
IHByaXZhdGU6Ci0gICAgZG91YmxlIG1fdmFsdWUgeyAwIH07CisgICAgU2Vjb25kcyBtX3NlY29u
ZHM7CiAgICAgQ2xvY2tUeXBlIG1fdHlwZSB7IENsb2NrVHlwZTo6V2FsbCB9OwogfTsKIApAQCAt
MTUwLDE3ICsxNDUsMTcgQEAgbmFtZXNwYWNlIHN0ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdU
Rjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNu
YW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6Omlz
bmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBib29sIGlzaW5mKFdU
Rjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNp
bmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6Omlz
aW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBib29sIGlzZmluaXRl
KFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBz
dGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIHN0ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2FsbFRpbWUuY3BwIGIvU291cmNl
L1dURi93dGYvV2FsbFRpbWUuY3BwCmluZGV4IGQzMTVmOTU0YzM0MWVjOTVhMWUxOTQxYTFlZjM4
MDYzZGU5YTMxMTIuLjQ0MzY2ZGQ2ZTAwNWMxNjhmMzY4ZTUwYmI3MjZjNjBlOTc2YjlkMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9XYWxsVGltZS5jcHAKQEAgLTM4LDcgKzM4LDkgQEAgTW9ub3RvbmljVGltZSBXYWxsVGltZTo6
YXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3QKIAogdm9pZCBXYWxsVGltZTo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludCgiV2FsbCgiLCBtX3ZhbHVl
LCAiIHNlYykiKTsKKyAgICBvdXQucHJpbnQoIldhbGwoIik7CisgICAgc2Vjb25kc1NpbmNlRXBv
Y2goKS5kdW1wKG91dCk7CisgICAgb3V0LnByaW50KCIpIik7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaCBiL1NvdXJjZS9XVEYv
d3RmL1dhbGxUaW1lLmgKaW5kZXggNGQ0YWY5ZGI5YjAxMGU0ODExYTk5YjE3MTVmMzE1NWE5OGU5
YmFjMy4uYTliYjY0OTRiYjZjNjljNDhkNTNkNzUxODdmM2ZmZmZhZTgyMThhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGlt
ZS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2gu
IFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBXYWxs
VGltZSgpLgogICAgIGNvbnN0ZXhwciBXYWxsVGltZSgpID0gZGVmYXVsdDsKIAorICAgIGV4cGxp
Y2l0IGNvbnN0ZXhwciBXYWxsVGltZShTZWNvbmRzIHNlY29uZHMpCisgICAgICAgIDogR2VuZXJp
Y1RpbWVNaXhpbjxXYWxsVGltZT4oc2Vjb25kcykKKyAgICB7CisgICAgfQorCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBXYWxsVGltZSBub3coKTsKICAgICAKICAgICBXYWxsVGltZSBh
cHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KQEAgLTUzLDIwICs1
OCwxMyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OwogICAgIAogICAgIHN0cnVjdCBNYXJrYWJsZVRyYWl0czsKLQotcHJpdmF0
ZToKLSAgICBmcmllbmQgY2xhc3MgR2VuZXJpY1RpbWVNaXhpbjxXYWxsVGltZT47Ci0gICAgY29u
c3RleHByIFdhbGxUaW1lKGRvdWJsZSByYXdWYWx1ZSkKLSAgICAgICAgOiBHZW5lcmljVGltZU1p
eGluPFdhbGxUaW1lPihyYXdWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKFdhbGxUaW1lKSA9PSBzaXplb2YoZG91YmxlKSk7CiAKIHN0cnVjdCBXYWxsVGltZTo6
TWFya2FibGVUcmFpdHMgewogICAgIHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShXYWxsVGltZSB0
aW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5tX3ZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKICAgICB9
CiAKICAgICBzdGF0aWMgY29uc3RleHByIFdhbGxUaW1lIGVtcHR5VmFsdWUoKQpAQCAtODMsMTcg
KzgxLDE3IEBAIG5hbWVzcGFjZSBzdGQgewogCiBpbmxpbmUgYm9vbCBpc25hbihXVEY6OldhbGxU
aW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBv
Y2goKSk7CiB9CiAKIGlubGluZSBib29sIGlzaW5mKFdURjo6V2FsbFRpbWUgdGltZSkKIHsKLSAg
ICByZXR1cm4gc3RkOjppc2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogaW5s
aW5lIGJvb2wgaXNmaW5pdGUoV1RGOjpXYWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6
OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4g
c3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBzdGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3Rl
bnRDb2RlcnMuaCBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMu
aAppbmRleCAyNjA4ZTcxZWIzODdmZTZjNjhmMGQ0ZWM2OTE5MDQ1NWVkMTE4MGEyLi41MjFjMTQw
MzRkMDAxOTkyMTI0MjhlM2FlNWRjYWE4Y2RjOWI5ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dURi93dGYv
cGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCkBAIC0zMSw5ICszMSw3IEBACiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9TSEExLmg+Ci0jaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0jaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNl
L1BlcnNpc3RlbnREZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3Rl
bnRFbmNvZGVyLmg+CiAKQEAgLTI1NSwzOSArMjUzLDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5
QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBDb2Rl
cjwKICAgICB9CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2RlcjxTZWNvbmRzPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29u
ZHMpCi0gICAgewotICAgICAgICBlbmNvZGVyIDw8IHNlY29uZHMudmFsdWUoKTsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLSAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiB2YWx1ZTsKLSAgICAgICAg
ZGVjb2RlciA+PiB2YWx1ZTsKLSAgICAgICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHJldHVybiBTZWNvbmRzKCp2YWx1ZSk7Ci0gICAgfQot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29kZXI8V2FsbFRpbWU+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCi0gICAgewot
ICAgICAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwotICAg
IH0KLQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLSAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiB2YWx1ZTsKLSAg
ICAgICAgZGVjb2RlciA+PiB2YWx1ZTsKLSAgICAgICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcygqdmFsdWUpOwotICAgIH0KLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IENvZGVyPEF0
b21TdHJpbmc+IHsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9GaWxlU3lzdGVtUGxheVN0YXRpb24uY3BwIGIv
U291cmNlL1dURi93dGYvcGxheXN0YXRpb24vRmlsZVN5c3RlbVBsYXlTdGF0aW9uLmNwcAppbmRl
eCBiODgwZWI3N2RiMGI5ZTUxNzNmZDUxM2U5NzAwYTAxNGJiNzY0ZWUxLi5kN2E2ZjQ2Zjc3YzEw
MjQ2ODlhYmI3NjQ3NzI3YzNmMjZlYzJmYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9w
bGF5c3RhdGlvbi9GaWxlU3lzdGVtUGxheVN0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlvbi5jcHAKQEAgLTI2NSw3ICsyNjUsNyBA
QCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBmaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJp
bmcmIHBhdGgpCiAgICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhmaWxlSW5mby5zdF9tdGltZSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoZmls
ZUluZm8uc3RfbXRpbWUpKTsKIH0KIAogYm9vbCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZShj
b25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cAppbmRleCBmMTIxMjUzODc2MzQ1MzU0MTkyNDNkODFlYzZjNGZmMGIxYmYwM2IyLi4wNTFlNWU1
NWUwYTZhN2NhMGIxODkxYjI1MTA5YzZkZTk3YmE0YjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4
L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGQ6Om9wdGlvbmFsPFdh
bGxUaW1lPiBmaWxlQ3JlYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBpZiAoc3Rh
dChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGZpbGVJbmZvLnN0X2JpcnRo
dGltZSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1l
KSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYXRoKTsKICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3Bw
IGIvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwCmluZGV4IGQ5MjQ0OTBk
MWI1N2YzZWUwNmVlNWVhZDhhMmQzYzExYzIwY2I1ZDEuLjUzNWQwOGQzOThlMzUxMjRjZGY3NWJl
ZmY5MzJkMzk4NzIxMjIyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVh
ZGluZ1BPU0lYLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9UaHJlYWRpbmdQT1NJWC5j
cHAKQEAgLTYyMiw3ICs2MjIsNyBAQCBib29sIFRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KE11
dGV4JiBtdXRleCwgV2FsbFRpbWUgYWJzb2x1dGVUaW1lKQogICAgIGlmIChhYnNvbHV0ZVRpbWUg
PCBXYWxsVGltZTo6bm93KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChhYnNv
bHV0ZVRpbWUgPiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoSU5UX01BWCkpIHsKKyAgICBpZiAo
YWJzb2x1dGVUaW1lID4gV2FsbFRpbWUoU2Vjb25kcyhJTlRfTUFYKSkpIHsKICAgICAgICAgd2Fp
dChtdXRleCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxl
U3lzdGVtV2luLmNwcAppbmRleCAyYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJk
OTRhLi41NzAxNjljYWUxYjQ0ODJkMTBhNjAxNzNhYmI4YTlmNzhjZmM2Mzc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gZmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpCiAKICAgICB0
aW1lX3QgdGltZSA9IDA7CiAgICAgZmlsZUNyZWF0aW9uVGltZUZyb21GaW5kRGF0YShmaW5kRGF0
YSwgdGltZSk7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyh0aW1lKSk7CiB9CiAKICNpZiAhVVNFKENGKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkdhbWVwYWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkdhbWVwYWQuY3BwCmluZGV4IDUyODY4
MTA4OWU1YTNjNWQxYjJjYTk0NTRjYzIzNTRmNWIwNjI1NTkuLjQ1MGNjNDM3NGU2ZWY5N2MzZTUw
ZGQyN2ZlZjlmMGI0MjUwM2JmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSR2FtZXBhZC5jcHAKQEAgLTQyLDggKzQyLDggQEAgY29uc3RleHByIGludCBEZWZhdWx0
WFJHYW1lcGFkSWQgPSAtMTsKIFdlYlhSR2FtZXBhZDo6V2ViWFJHYW1lcGFkKGRvdWJsZSB0aW1l
c3RhbXAsIGRvdWJsZSBjb25uZWN0VGltZSwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFt
ZURhdGE6OklucHV0U291cmNlJiBzb3VyY2UpCiAgICAgOiBQbGF0Zm9ybUdhbWVwYWQoRGVmYXVs
dFhSR2FtZXBhZElkKQogewotICAgIG1fbGFzdFVwZGF0ZVRpbWUgPSBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVzdGFtcCkudmFsdWUo
KSk7Ci0gICAgbV9jb25uZWN0VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKFNl
Y29uZHM6OmZyb21NaWxsaXNlY29uZHMoY29ubmVjdFRpbWUpLnZhbHVlKCkpOworICAgIG1fbGFz
dFVwZGF0ZVRpbWUgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGlt
ZXN0YW1wKSk7CisgICAgbV9jb25uZWN0VGltZSA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJv
bU1pbGxpc2Vjb25kcyhjb25uZWN0VGltZSkpOwogICAgIC8vIEluIG9yZGVyIHRvIHJlcG9ydCBh
IG1hcHBpbmcgb2YgInhyLXN0YW5kYXJkIiB0aGUgZGV2aWNlIE1VU1QgcmVwb3J0IGEgdGFyZ2V0
UmF5TW9kZSBvZiAidHJhY2tlZC1wb2ludGVyIiBhbmQgTVVTVCBoYXZlIGEgbm9uLW51bGwgZ3Jp
cFNwYWNlLgogICAgIC8vIEl0IE1VU1QgaGF2ZSBhdCBsZWFzdCBvbmUgcHJpbWFyeSB0cmlnZ2Vy
LCBzZXBhcmF0ZSBmcm9tIGFueSB0b3VjaHBhZHMgb3IgdGh1bWJzdGlja3MKICAgICBpZiAoc291
cmNlLnRhcmdldFJheU1vZGUgPT0gWFJUYXJnZXRSYXlNb2RlOjpUcmFja2VkUG9pbnRlciAmJiAh
c291cmNlLmJ1dHRvbnMuaXNFbXB0eSgpICYmIHNvdXJjZS5ncmlwT3JpZ2luKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggOTQ4ZDFkNDE3NDhlOWZhZDI5MjJj
YWY3MGNlYjY2OGI0ODhlOTk0MS4uMzg2MzQ5YWNhOTE1NjcyZGViZWM5NGZlMmFiODljMWYwNTgw
NzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC02MTgs
MTIgKzYxOCwxMiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVDYWxs
YmFjayh1bnNpZ25lZCBpZGVudGlmaWVyKQogCiBzdGF0aWMgdm9pZCBwcm9jZXNzVmlkZW9GcmFt
ZU1ldGFkYXRhVGltZXN0YW1wcyhWaWRlb0ZyYW1lTWV0YWRhdGEmIG1ldGFkYXRhLCBQZXJmb3Jt
YW5jZSYgcGVyZm9ybWFuY2UpCiB7Ci0gICAgbWV0YWRhdGEucHJlc2VudGF0aW9uVGltZSA9IHBl
cmZvcm1hbmNlLnJlbGF0aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihN
b25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lKSk7
Ci0gICAgbWV0YWRhdGEuZXhwZWN0ZWREaXNwbGF5VGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZl
VGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lOjpmcm9t
UmF3U2Vjb25kcyhtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1lKSk7CisgICAgbWV0YWRhdGEu
cHJlc2VudGF0aW9uVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZlVGltZUZyb21UaW1lT3JpZ2lu
SW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lKFNlY29uZHMobWV0YWRhdGEucHJlc2Vu
dGF0aW9uVGltZSkpKTsKKyAgICBtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1lID0gcGVyZm9y
bWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90
b25pY1RpbWUoU2Vjb25kcyhtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1lKSkpOwogICAgIGlm
IChtZXRhZGF0YS5jYXB0dXJlVGltZSkKLSAgICAgICAgbWV0YWRhdGEuY2FwdHVyZVRpbWUgPSBw
ZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24o
TW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoKm1ldGFkYXRhLmNhcHR1cmVUaW1lKSk7Cisg
ICAgICAgIG1ldGFkYXRhLmNhcHR1cmVUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJv
bVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWUoU2Vjb25kcygqbWV0
YWRhdGEuY2FwdHVyZVRpbWUpKSk7CiAgICAgaWYgKG1ldGFkYXRhLnJlY2VpdmVUaW1lKQotICAg
ICAgICBtZXRhZGF0YS5yZWNlaXZlVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZlVGltZUZyb21U
aW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25k
cygqbWV0YWRhdGEucmVjZWl2ZVRpbWUpKTsKKyAgICAgICAgbWV0YWRhdGEucmVjZWl2ZVRpbWUg
PSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRp
b24oTW9ub3RvbmljVGltZShTZWNvbmRzKCptZXRhZGF0YS5yZWNlaXZlVGltZSkpKTsKIH0KIAog
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3Mo
UmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIG5vdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCBlNTU1YjI3OTdkOGM1Y2Y3Mjk4ZTc3
MDk5NWQ2YmZkMDBkYWIzNzkzLi5iNzg2YjE3ODUxNWJiNDQxMTQzNjQ5M2Y0OTM3MjM1MGZhZGU0
MGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MuY3BwCkBAIC0zMTgsNyArMzE4LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpk
ZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBtb2RlbFZlcnNpb24KICAgICBk
b3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRG91YmxlKCJtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIiwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlKTsKKyAgICBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lKFNlY29uZHMobW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvblRpbWVBc0RvdWJsZSkpOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woImdy
YW5kZmF0aGVyZWQiLCBncmFuZGZhdGhlcmVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MzI2LDcgKzMyNiw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6ZGVjb2RlKEtleWVk
RGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgbW9kZWxWZXJzaW9uCiAgICAgZG91YmxlIGxhc3RT
ZWVuVGltZUFzRG91YmxlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVEb3VibGUoImxhc3RTZWVu
IiwgbGFzdFNlZW5UaW1lQXNEb3VibGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbGFz
dFNlZW4gPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobGFzdFNlZW5UaW1lQXNEb3VibGUpOwor
ICAgIGxhc3RTZWVuID0gV2FsbFRpbWUoU2Vjb25kcyhsYXN0U2VlblRpbWVBc0RvdWJsZSkpOwog
CiAgICAgaWYgKG1vZGVsVmVyc2lvbiA+PSAxMSkgewogICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlVUludDMyKCJ0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24i
LCB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24pKQpAQCAtNTY5
LDcgKzU2OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6bWVyZ2UoY29uc3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYgb3RoZXIpCiAKIFdhbGxUaW1lIFJlc291cmNlTG9hZFN0YXRp
c3RpY3M6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJu
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGQ6OmZsb29yKHRpbWUuc2Vjb25kc1NpbmNlRXBv
Y2goKSAvIHRpbWVzdGFtcFJlc29sdXRpb24pICogdGltZXN0YW1wUmVzb2x1dGlvbi5zZWNvbmRz
KCkpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKHN0ZDo6Zmxvb3IodGltZS5zZWNvbmRz
U2luY2VFcG9jaCgpIC8gdGltZXN0YW1wUmVzb2x1dGlvbikgKiB0aW1lc3RhbXBSZXNvbHV0aW9u
LnNlY29uZHMoKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MuaAppbmRleCBhOWI1ODI4NzNhZTQ1NTkxNzM3ZTgwNjg5MjRjZGFmNDVk
NDFjZjg1Li5hMWQxM2IwZTE3MzQ0NDM2YjAyYzFhNGUwYWZjNmZlZjY2MzY2ZTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKQEAgLTcyLDcg
KzcyLDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MgewogICAgIC8vIFVzZXIgaW50
ZXJhY3Rpb24KICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAgICAgLy8g
VGltZXN0YW1wLiBEZWZhdWx0IHZhbHVlIGlzIG5lZ2F0aXZlLCAwIG1lYW5zIGl0IHdhcyByZXNl
dC4KLSAgICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSB7IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcygtMSkgfTsKKyAgICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZSB7IC0xX3MgfTsKICAgICBib29sIGdyYW5kZmF0aGVyZWQgeyBmYWxzZSB9Owog
CiAgICAgLy8gU3RvcmFnZSBhY2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZyYW1lUmF0ZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVS
YXRlTW9uaXRvci5jcHAKaW5kZXggM2ZiZTE2ZjU0NGRjNjEzZmFlNDJlZmU4Y2U4YzM0MDM2NmEw
ODI4ZC4uMjRlOGMzNzlmZWE4YmY5M2ZjODdjN2ZmYTI0ZDc4NDg2YzIxZDFjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5jcHAKQEAgLTM2LDIyICszNiwy
MiBAQCB2b2lkIEZyYW1lUmF0ZU1vbml0b3I6OnVwZGF0ZSgpCiB7CiAgICAgKyttX2ZyYW1lQ291
bnQ7CiAKLSAgICBhdXRvIGZyYW1lVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNT
aW5jZUVwb2NoKCkudmFsdWUoKTsKKyAgICBhdXRvIGZyYW1lVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogICAgIGF1dG8gbGFzdEZyYW1lVGltZSA9IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFt
cHMuaXNFbXB0eSgpID8gZnJhbWVUaW1lIDogbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5sYXN0
KCk7CiAKICAgICBpZiAobV9vYnNlcnZlZEZyYW1lUmF0ZSkgewotICAgICAgICBhdXRvIG1heERl
bGF5ID0gTWF4RnJhbWVEZWxheUNvdW50IC8gbV9vYnNlcnZlZEZyYW1lUmF0ZTsKKyAgICAgICAg
YXV0byBtYXhEZWxheSA9IFNlY29uZHMoTWF4RnJhbWVEZWxheUNvdW50IC8gbV9vYnNlcnZlZEZy
YW1lUmF0ZSk7CiAgICAgICAgIGlmICgoZnJhbWVUaW1lIC0gbGFzdEZyYW1lVGltZSkgPiBtYXhE
ZWxheSkKLSAgICAgICAgICAgIG1fbGF0ZUZyYW1lQ2FsbGJhY2soeyBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyhmcmFtZVRpbWUpLCBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhs
YXN0RnJhbWVUaW1lKSB9KTsKKyAgICAgICAgICAgIG1fbGF0ZUZyYW1lQ2FsbGJhY2soeyBmcmFt
ZVRpbWUsIGxhc3RGcmFtZVRpbWUgfSk7CiAgICAgfQogICAgIG1fb2JzZXJ2ZWRGcmFtZVRpbWVT
dGFtcHMuYXBwZW5kKGZyYW1lVGltZSk7CiAgICAgbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5y
ZW1vdmVBbGxNYXRjaGluZyhbJl0oYXV0byB0aW1lKSB7Ci0gICAgICAgIHJldHVybiB0aW1lIDw9
IGZyYW1lVGltZSAtIE1heFF1ZXVlRHVyYXRpb24udmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHRp
bWUgPD0gZnJhbWVUaW1lIC0gTWF4UXVldWVEdXJhdGlvbjsKICAgICB9KTsKIAogICAgIGF1dG8g
cXVldWVEdXJhdGlvbiA9IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHMubGFzdCgpIC0gbV9vYnNl
cnZlZEZyYW1lVGltZVN0YW1wcy5maXJzdCgpOwotICAgIGlmIChxdWV1ZUR1cmF0aW9uID4gTWlu
aW11bUF2ZXJhZ2VEdXJhdGlvbi52YWx1ZSgpKQotICAgICAgICBtX29ic2VydmVkRnJhbWVSYXRl
ID0gKG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHMuc2l6ZSgpIC8gcXVldWVEdXJhdGlvbik7Cisg
ICAgaWYgKHF1ZXVlRHVyYXRpb24gPiBNaW5pbXVtQXZlcmFnZUR1cmF0aW9uKQorICAgICAgICBt
X29ic2VydmVkRnJhbWVSYXRlID0gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5zaXplKCkgLyBx
dWV1ZUR1cmF0aW9uLnNlY29uZHMoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RnJhbWVSYXRlTW9uaXRvci5oCmluZGV4IDMzMDc3MDFhNTE5MWUzNmFjY2FmZGRlMGM1Zjk3MGY0
ODQwNmYzMWMuLjE4Y2JmODNmMmFkNDU2M2ZjZDQ1NmQ0OWZjMmYzNDM4ZDI2Zjc5ZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYW1lUmF0ZU1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmgKQEAgLTQ3LDcgKzQ3LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIExhdGVGcmFtZUNhbGxiYWNrIG1fbGF0ZUZyYW1l
Q2FsbGJhY2s7Ci0gICAgRGVxdWU8ZG91YmxlLCAxMjA+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFt
cHM7CisgICAgRGVxdWU8TW9ub3RvbmljVGltZSwgMTIwPiBtX29ic2VydmVkRnJhbWVUaW1lU3Rh
bXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9OwogICAgIHVpbnQ2NF90
IG1fZnJhbWVDb3VudCB7IDAgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCAxYzY5OWZiZWU0NThhMzg1MjdhNTAyMWYxZjBjYTAyN2Qy
ZDliMTk4Li4yNWNkYzYzMWYyNmUzZjk2NGUwNzY5ZWQ2MzA0MGNmYjZkNzFlODBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM1OCw3ICsz
NTgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMo
R1JlZlB0cjxHc3RFbGVtZW50PiYmIGVsZW1lbnQsCiAgICAgaWYgKGF1dG8gY2xvY2sgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKGVsZW1lbnQuZ2V0KCkpKSkgewogICAgICAgICBh
dXRvIGNsb2NrVGltZSA9IGdzdF9jbG9ja19nZXRfdGltZShjbG9jay5nZXQoKSk7CiAgICAgICAg
IG91dHB1dFRpbWVzdGFtcC5wb3NpdGlvbiA9IFNlY29uZHM6OmZyb21OYW5vc2Vjb25kcyh0aW1l
c3RhbXApOwotICAgICAgICBvdXRwdXRUaW1lc3RhbXAudGltZXN0YW1wID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPigoZ19nZXRfbW9ub3RvbmljX3Rp
bWUoKSArIEdTVF9USU1FX0FTX1VTRUNPTkRTKGNsb2NrVGltZSkpIC8gMTAwMDAwMC4wKSk7Cisg
ICAgICAgIG91dHB1dFRpbWVzdGFtcC50aW1lc3RhbXAgPSBXYWxsVGltZShTZWNvbmRzKHN0YXRp
Y19jYXN0PGRvdWJsZT4oKGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBHU1RfVElNRV9BU19VU0VD
T05EUyhjbG9ja1RpbWUpKSAvIDEwMDAwMDAuMCkpKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTog
QWRkIHN1cHBvcnQgZm9yIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NlYXJjaFBvcHVwTWVudUNvY29hLm1tCmluZGV4IDNi
ZGY0OTU5Y2I2MDFhNzZlM2EzMjlkZmFhMzI3YzQyMzEzMTk4ZmEuLmQ0ZmIyY2QzMWI2Zjc0ZTE4
MmQ0OGZmNjI4NGJlMWEwOTg1ZGZjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NlYXJjaFBvcHVwTWVudUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1NlYXJjaFBvcHVwTWVudUNvY29hLm1tCkBAIC01Nyw3ICs1Nyw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gcmVhZFNlYXJjaEZpZWxkUmVjZW50
U2VhcmNoZXNQbGlzdCgpCiBzdGF0aWMgV2FsbFRpbWUgdG9TeXN0ZW1DbG9ja1RpbWUoTlNEYXRl
ICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKTsKKyAgICByZXR1cm4gV2FsbFRp
bWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpOwogfQogCiBzdGF0aWMgTlNE
YXRlICp0b05TRGF0ZUZyb21TeXN0ZW1DbG9jayhXYWxsVGltZSB0aW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggZDE4YTg1YTc5NGY1MjNmOTQ5MTJlMjdmMDhiN2NjYmU4OTNjOGVkMC4u
YTA5NzdiNGJlMTFkZWRmYWNmZjkxNWY1OTA5ZjYwYWU5ZDIwZGIyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0zODYsNyArMzg2LDcgQEAgSGFzaFNldDxTZWN1cml0eU9yaWdpbkRhdGE+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om9yaWdpbnNJbk1lZGlhQ2EKIHN0
YXRpYyBXYWxsVGltZSB0b1N5c3RlbUNsb2NrVGltZShOU0RhdGUgKmRhdGUpCiB7CiAgICAgQVNT
RVJUKGRhdGUpOwotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZGF0ZS50aW1l
SW50ZXJ2YWxTaW5jZTE5NzApOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKGRhdGUudGlt
ZUludGVydmFsU2luY2UxOTcwKSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2FsbFRpbWUg
bW9kaWZpZWRTaW5jZSkKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgsIFdh
bAogICAgIE5TRmlsZU1hbmFnZXIgKmZpbGVNYW5hZ2VyID0gW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdOwogICAgIE5TVVJMICpiYXNlVVJMID0gW2Fzc2V0Q2FjaGUgVVJMXTsKIAotICAg
IGlmIChtb2RpZmllZFNpbmNlIDw9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSkgeworICAg
IGlmIChtb2RpZmllZFNpbmNlIDw9IFdhbGxUaW1lKCkpIHsKICAgICAgICAgW2ZpbGVNYW5hZ2Vy
IHJlbW92ZUl0ZW1BdFVSTDpiYXNlVVJMIGVycm9yOm5pbF07CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCmluZGV4
IDdiMGQ2ZGU5OGIzODMzYzZlMjJiOTU5NzBiOWM1NThjNDAzMmI2NTEuLjA0MDg4NmQzNmQxYzhh
MzA1YmU5MzdhMjdmNDAxZTc2MTg5YWZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HdGtVdGlsaXRpZXMuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgV2FsbFRpbWUgd2FsbFRp
bWVGb3JFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAjZW5kaWYKICAgICBpZiAodGltZSA9
PSBHREtfQ1VSUkVOVF9USU1FKQogICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpOwotICAg
IHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lIC8gMTAwMC4pLmFwcHJv
eGltYXRlV2FsbFRpbWUoKTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKHRpbWUpKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CiB9CiAKIFN0cmluZyBk
ZWZhdWx0R3RrU3lzdGVtRm9udCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRp
bGl0aWVzLmgKaW5kZXggYTVmYWNiMjEwZDFjY2ViZDA4YWU2ZjQ2ZjFmMzRhNGM5YmMyZWY3OS4u
MDBjY2U3YWM4ZGFkZmQxMzk5YTZjMWUwZGUzOThlOWI4ODgzNjgyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaApAQCAtNDEsNyArNDEsNyBAQCBXYWxsVGlt
ZSB3YWxsVGltZUZvckV2ZW50KGNvbnN0IEdka0V2ZW50VHlwZSogZXZlbnQpCiAgICAgY29uc3Qg
YXV0byBldmVudFRpbWUgPSBnZGtfZXZlbnRfZ2V0X3RpbWUocmVpbnRlcnByZXRfY2FzdDxHZGtF
dmVudCo+KGNvbnN0X2Nhc3Q8R2RrRXZlbnRUeXBlKj4oZXZlbnQpKSk7CiAgICAgaWYgKGV2ZW50
VGltZSA9PSBHREtfQ1VSUkVOVF9USU1FKQogICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygp
OwotICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudFRpbWUgLyAx
MDAwLikuYXBwcm94aW1hdGVXYWxsVGltZSgpOworICAgIHJldHVybiBNb25vdG9uaWNUaW1lKFNl
Y29uZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnRUaW1lKSkuYXBwcm94aW1hdGVXYWxsVGltZSgp
OwogfQogCiB0ZW1wbGF0ZTw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDc3M2Y1ODg2ZTQwYTAyZWE5ZTNj
YTA4MDIwNWM0NzJhOWIyODM0OS4uMTY3ZGQ5ZjdmYTZiMWU5MjRhZmJkZWEzYmZmYTE2YWMyMmY1
Nzk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5tbQpAQCAtNjAyLDcgKzYwMiw3IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9tb2RpZmll
cnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CisgICAgICAgIG1fdGltZXN0
YW1wID0gV2FsbFRpbWUoU2Vjb25kcyhldmVudC50aW1lc3RhbXApKTsKIAogICAgICAgICBtX2dl
c3R1cmVTY2FsZSA9IGV2ZW50Lmdlc3R1cmVTY2FsZTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRp
b24gPSBldmVudC5nZXN0dXJlUm90YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMzVmYzZhZjU5YjZh
ZmNiNGY5NTU0YzBmMmE4NGEzMzQyODM5NmU1ZS4uZDU1NDYxYmYzYzNkMWMzYmEyNmVmYmEyMTEy
YjM0MGUxOWNhYWJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNjA5LDcgKzYwOSw3IEBAIHN0YXRpYyBD
RlRpbWVJbnRlcnZhbCBjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkKIAogV2Fs
bFRpbWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wKQog
ewotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91Ymxl
PihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyB0aW1lc3RhbXApKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2Ux
OTcwKCkgKyB0aW1lc3RhbXApKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVu
dChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHAKaW5kZXggZjNmODdhNGY3ZTliYjhlNzc2N2E5ZTg5MTU3YjdiMmU2M2Mz
ZTdkZC4uZmNkZGJlYTg2OTkzYjkzMGE1MWRlMzRkZGRmNzBiNGQ3YWZhZTYwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyNyw3
ICszMjcsNyBAQCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBwYXJzZUhUVFBEYXRlKGNvbnN0IFN0
cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgLy8gVGhpcyBh
c3N1bWVzIHN5c3RlbV9jbG9jayBlcG9jaCBlcXVhbHMgVW5peCBlcG9jaCB3aGljaCBpcyB0cnVl
IGZvciBhbGwgaW1wbGVtZW50YXRpb25zIGJ1dCB1bnNwZWNpZmllZC4KICAgICAvLyBGSVhNRTog
VGhlIHBhcnNpbmcgZnVuY3Rpb24gc2hvdWxkIGJlIHN3aXRjaGVkIHRvIFdhbGxUaW1lIHRvby4K
LSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGVJbk1pbGxpc2Vjb25kc1Np
bmNlRXBvY2ggLyAxMDAwLjApOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzOjpmcm9tTWls
bGlzZWNvbmRzKGRhdGVJbk1pbGxpc2Vjb25kc1NpbmNlRXBvY2gpKTsKIH0KIAogLy8gRklYTUU6
IFRoaXMgZnVuY3Rpb24gZG9lc24ndCBjb21wbHkgd2l0aCBSRkMgNjI2Ni4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oCmluZGV4
IGNiMGQ4YjNhYWM0ZDZiMWZlZTliOWVhMjI0NTM0Y2EyMzIwNDg4MWUuLjQ0MGE2YmVjZjM3OTZi
NGFlMjNiZmFiMzQyMWQ3MmE5ODdmN2NlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaApAQCAtNTYsNyArNTYsNyBAQCBl
bnVtIGNsYXNzIFByaXZhY3lTdGFuY2UgOiB1aW50OF90IHsKICAgICBEaXJlY3QsCiB9OwogCi1j
b25zdGV4cHIgTW9ub3RvbmljVGltZSByZXVzZWRUTFNDb25uZWN0aW9uU2VudGluZWwgeyBNb25v
dG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcygtMSkgfTsKK2NvbnN0ZXhwciBNb25vdG9uaWNUaW1l
IHJldXNlZFRMU0Nvbm5lY3Rpb25TZW50aW5lbCB7IC0xX3MgfTsKIAogc3RydWN0IEFkZGl0aW9u
YWxOZXR3b3JrTG9hZE1ldHJpY3NGb3JXZWJJbnNwZWN0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5k
ZXggOTUwZTgyNjdlMmE1ZTg2YmE3OWQ2NzllN2Q3MzYxMTAxYzBmYmFlYi4uMDY4NWQzYzA5ZTEx
MTQ3ZTU2OGE1YTAyMDE2YTRkMWNlYjgwNTEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTczNyw4
ICs3MzcsNyBAQCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
bGFzdE1vZGlmaWVkKCkgY29uc3QKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgLy8gQ0ZO
ZXR3b3JrIGNvbnZlcnRzIG1hbGZvcm1lZCBkYXRlcyBpbnRvIEVwb2NoIHNvIHdlIG5lZWQgdG8g
dHJlYXQgRXBvY2ggYXMKICAgICAgICAgLy8gYW4gaW52YWxpZCB2YWx1ZSAocmRhcjovL3Byb2Js
ZW0vMjIzNTI4MzgpLgotICAgICAgICBjb25zdCBXYWxsVGltZSBlcG9jaCA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcygwKTsKLSAgICAgICAgaWYgKG1fbGFzdE1vZGlmaWVkICYmIG1fbGFzdE1v
ZGlmaWVkLnZhbHVlKCkgPT0gZXBvY2gpCisgICAgICAgIGlmIChtX2xhc3RNb2RpZmllZCAmJiAh
bV9sYXN0TW9kaWZpZWQudmFsdWUoKSkKICAgICAgICAgICAgIG1fbGFzdE1vZGlmaWVkID0gc3Rk
OjpudWxsb3B0OwogI2VuZGlmCiAgICAgICAgIG1faGF2ZVBhcnNlZExhc3RNb2RpZmllZEhlYWRl
ciA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtMb2FkTWV0cmljcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvTmV0d29ya0xvYWRNZXRyaWNzLm1tCmluZGV4IDYzMTJlMDY4NDI5N2I0M2MzMzEx
ZTQ3MzliNjgxYWI0NDVjMzM2NzIuLjRkMzUwNGRkMWQ2YmM2N2U1MzA2YzcwNTg4NGEzZDNlMjlm
ZjE2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
TmV0d29ya0xvYWRNZXRyaWNzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvTmV0d29ya0xvYWRNZXRyaWNzLm1tCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHN0YXRpYyBNb25vdG9uaWNUaW1lIGRhdGVUb01vbm90b25pY1RpbWUoTlNE
YXRlICpkYXRlKQogewogICAgIGlmIChhdXRvIGludGVydmFsID0gZGF0ZS50aW1lSW50ZXJ2YWxT
aW5jZTE5NzApCi0gICAgICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoaW50ZXJ2
YWwpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpOworICAgICAgICByZXR1cm4gV2FsbFRpbWUo
U2Vjb25kcyhpbnRlcnZhbCkpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpOwogICAgIHJldHVy
biB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyREIuY3BwCmluZGV4IDk1ZDc2OGFjZTA4MGIyZjY2MjU5MTUxNTQxY2FjYjg5
ZDE0YmMwMjYuLjZkNzRiZGUzNDcwNTMwNjAyNmMyNDZiMjY0NjNmM2I0NGVlOWI1MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRC
LmNwcApAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wgQ29va2llSmFyREI6OmNhbkFjY2VwdENvb2tp
ZShjb25zdCBDb29raWUmIGNvb2tpZSwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjCiBib29sIENv
b2tpZUphckRCOjpzZXRDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCiB7CiAgICAgYXV0byBl
eHBpcmVzID0gY29va2llLmV4cGlyZXMudmFsdWVfb3IoMC4wKTsKLSAgICBpZiAoIWNvb2tpZS5z
ZXNzaW9uICYmIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGV4cGlyZXMgLyBtc1BlclNl
Y29uZCkgPD0gTW9ub3RvbmljVGltZTo6bm93KCkpCisgICAgaWYgKCFjb29raWUuc2Vzc2lvbiAm
JiBNb25vdG9uaWNUaW1lKFNlY29uZHMoZXhwaXJlcyAvIG1zUGVyU2Vjb25kKSkgPD0gTW9ub3Rv
bmljVGltZTo6bm93KCkpCiAgICAgICAgIHJldHVybiBkZWxldGVDb29raWVJbnRlcm5hbChjb29r
aWUubmFtZSwgY29va2llLmRvbWFpbiwgY29va2llLnBhdGgpOwogCiAgICAgYXV0byYgc3RhdGVt
ZW50ID0gcHJlcGFyZWRTdGF0ZW1lbnQoU0VUX0NPT0tJRV9TUUwpOwpAQCAtNTUzLDcgKzU1Myw3
IEBAIGJvb2wgQ29va2llSmFyREI6OnNldENvb2tpZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKGNhcHBlZExpZmV0aW1lICYmIGNv
b2tpZS0+ZXhwaXJlcykgewogICAgICAgICBBU1NFUlQoKmNhcHBlZExpZmV0aW1lID49IDBfcyk7
CiAgICAgICAgIGF1dG8gY2FwcGVkRXhwaXJlcyA9IFdhbGxUaW1lOjpub3coKSArICpjYXBwZWRM
aWZldGltZTsKLSAgICAgICAgaWYgKGNhcHBlZEV4cGlyZXMgPCBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoKmNvb2tpZS0+ZXhwaXJlcyAvIG1zUGVyU2Vjb25kKSkKKyAgICAgICAgaWYgKGNhcHBl
ZEV4cGlyZXMgPCBXYWxsVGltZShTZWNvbmRzKCpjb29raWUtPmV4cGlyZXMgLyBtc1BlclNlY29u
ZCkpKQogICAgICAgICAgICAgY29va2llLT5leHBpcmVzID0gY2FwcGVkRXhwaXJlcy5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAKaW5kZXgg
NjhjYWYwNTQ2YjYyY2Y0OTY0N2Q0YjljNGJlN2Y1OWViNWJiNWM5Yy4uOTQyMzk4YjA5M2IyYTA2
OTgzNzVjNmJkMGRiZTMwMmMyNmRkZDAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIEN1cmxDYWNoZUVudHJ5OjpDdXJsQ2FjaGVFbnRyeShjb25zdCBTdHJpbmcmIHVybCwgUmVz
b3VyY2VIYW5kbGUqIGpvYiwgY29uc3QgU3RyCiAgICAgLCBtX2NvbnRlbnRGaWxlbmFtZShjYWNo
ZURpcikKICAgICAsIG1fY29udGVudEZpbGUoRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSkKICAgICAsIG1fZW50cnlTaXplKDApCi0gICAgLCBtX2V4cGlyZURhdGUoV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKC0xKSkKKyAgICAsIG1fZXhwaXJlRGF0ZShXYWxsVGltZSgtMV9z
KSkKICAgICAsIG1faGVhZGVyUGFyc2VkKGZhbHNlKQogICAgICwgbV9pc0xvYWRpbmcoZmFsc2Up
CiAgICAgLCBtX2pvYihqb2IpCkBAIC0yOTAsMTggKzI5MCwxOCBAQCBib29sIEN1cmxDYWNoZUVu
dHJ5OjpwYXJzZVJlc3BvbnNlSGVhZGVycyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKICAgICBpZiAobWF4QWdlICYmICFyZXNwb25zZS5jYWNoZUNvbnRyb2xDb250YWluc011c3RS
ZXZhbGlkYXRlKCkpIHsKICAgICAgICAgLy8gV2hlbiBib3RoIHRoZSBjYWNoZSBlbnRyeSBhbmQg
dGhlIHJlc3BvbnNlIGNvbnRhaW4gbWF4LWFnZSwgdGhlIGxlc3NlciBvbmUgdGFrZXMgcHJpb3Jp
dHkKICAgICAgICAgV2FsbFRpbWUgZXhwaXJlcyA9IGZpbGVUaW1lICsgKm1heEFnZTsKLSAgICAg
ICAgaWYgKG1fZXhwaXJlRGF0ZSA9PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoLTEpIHx8IG1f
ZXhwaXJlRGF0ZSA+IGV4cGlyZXMpCisgICAgICAgIGlmIChtX2V4cGlyZURhdGUgPT0gV2FsbFRp
bWUoLTFfcykgfHwgbV9leHBpcmVEYXRlID4gZXhwaXJlcykKICAgICAgICAgICAgIG1fZXhwaXJl
RGF0ZSA9IGV4cGlyZXM7CiAgICAgfSBlbHNlIGlmIChyZXNwb25zZURhdGUgJiYgZXhwaXJhdGlv
bkRhdGUpIHsKICAgICAgICAgaWYgKCpleHBpcmF0aW9uRGF0ZSA+PSAqcmVzcG9uc2VEYXRlKQog
ICAgICAgICAgICAgbV9leHBpcmVEYXRlID0gZmlsZVRpbWUgKyAoKmV4cGlyYXRpb25EYXRlIC0g
KnJlc3BvbnNlRGF0ZSk7CiAgICAgfQogICAgIC8vIElmIHRoZXJlIGlzIG5vIGxpZmV0aW1lIGlu
Zm9ybWF0aW9uCi0gICAgaWYgKG1fZXhwaXJlRGF0ZSA9PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoLTEpKSB7CisgICAgaWYgKG1fZXhwaXJlRGF0ZSA9PSBXYWxsVGltZSgtMV9zKSkgewogICAg
ICAgICBpZiAobGFzdE1vZGlmaWNhdGlvbkRhdGUpCiAgICAgICAgICAgICBtX2V4cGlyZURhdGUg
PSBmaWxlVGltZSArIChmaWxlVGltZSAtICpsYXN0TW9kaWZpY2F0aW9uRGF0ZSkgKiAwLjE7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZXhwaXJlRGF0ZSA9IFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcygwKTsKKyAgICAgICAgICAgIG1fZXhwaXJlRGF0ZSA9IFdhbGxUaW1lKCk7CiAgICAg
fQogCiAgICAgU3RyaW5nIGV0YWcgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OkVUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4IDMxNWUwNjUxNTMwZGNkYjAyODAxNjU0
Yjc1N2Q4MTQ3M2MyMGZkMzAuLjQ5MTVmODUxNWFjOWI4Y2ZhMjI4NDJkZjRiMjliY2EyNjc5ZGEz
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0KQEAgLTMzNiw3ICszMzYsNyBAQCAtICh2b2lkKWNvbm5lY3Rp
b25EaWRGaW5pc2hMb2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uCiAKICAgICAg
ICAgaWYgKGF1dG8gbWV0cmljcyA9IG1faGFuZGxlLT5uZXR3b3JrTG9hZE1ldHJpY3MoKSkgewog
ICAgICAgICAgICAgaWYgKGRvdWJsZSByZXNwb25zZUVuZFRpbWUgPSBbW3RpbWluZ0RhdGEgb2Jq
ZWN0Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VFbmQiXSBkb3VibGVWYWx1ZV0pCi0g
ICAgICAgICAgICAgICAgbWV0cmljcy0+cmVzcG9uc2VFbmQgPSBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZVJl
ZmVyZW5jZURhdGU6cmVzcG9uc2VFbmRUaW1lXSkuZ2V0KCkudGltZUludGVydmFsU2luY2UxOTcw
KS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKTsKKyAgICAgICAgICAgICAgICBtZXRyaWNzLT5y
ZXNwb25zZUVuZCA9IFdhbGxUaW1lKFNlY29uZHMoYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5p
dFdpdGhUaW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGU6cmVzcG9uc2VFbmRUaW1lXSkuZ2V0
KCkudGltZUludGVydmFsU2luY2UxOTcwKSkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCk7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbWV0cmljcy0+cmVzcG9uc2VFbmQgPSBt
ZXRyaWNzLT5yZXNwb25zZVN0YXJ0OwogICAgICAgICAgICAgbWV0cmljcy0+cHJvdG9jb2wgPSAo
TlNTdHJpbmcgKilbdGltaW5nRGF0YSBvYmplY3RGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFOZXR3
b3JrUHJvdG9jb2xOYW1lIl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhjNGQzNi4uNTA5ODZlOWQ3MjRi
M2ZkNWNlMmM3ZDcxNmJlM2JjNTNhNTFhOTgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpkZWxldGVBbGxDb29raWVzKCkKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVB
bGxDb29raWVzTW9kaWZpZWRTaW5jZShXYWxsVGltZSB0aW1lc3RhbXApCiB7CiAgICAgLy8gRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBkZWxldGluZyBjb29raWVzIG1vZGlmaWVkIHNpbmNlIHRoZSBn
aXZlbiB0aW1lc3RhbXAuIEl0IHNob3VsZCBwcm9iYWJseSBiZSBhZGRlZCB0byBsaWJzb3VwLgot
ICAgIGlmICh0aW1lc3RhbXAgPT0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDApKQorICAgIGlm
ICghdGltZXN0YW1wKQogICAgICAgICBkZWxldGVBbGxDb29raWVzKCk7CiAgICAgZWxzZQogICAg
ICAgICBnX3dhcm5pbmcoIkRlbGV0aW5nIGNvb2tpZXMgbW9kaWZpZWQgc2luY2UgYSBnaXZlbiB0
aW1lIHNwYW4gaXMgbm90IHN1cHBvcnRlZCB5ZXQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vS2V5RXZlbnRXaW4uY3BwCmluZGV4IGFhZTZjOTlkZDA1Mjk4NWE0MzcxODg0NmI2ODUz
NjQ1NDA1MGMyMzQuLjhlMjlmNjU5YmU2MGZjNzNmYTFjNGQ5YmQyNzJiYjU1NDQwYzRjZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApAQCAtMjI2LDcg
KzIyNiw3IEBAIHN0YXRpYyBXaW5kb3dzS2V5TmFtZXMmIHdpbmRvd3NLZXlOYW1lcygpCiB9CiAK
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEhXTkQsIFdQQVJB
TSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgVHlwZSB0eXBlLCBib29sIHN5c3RlbUtleSkKLSAgICA6
IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKKyAgICA6IFBsYXRm
b3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFTS19TSE9S
VCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlT
dGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCBXYWxsVGltZShTZWNv
bmRzKDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkpKQogICAgICwgbV90ZXh0KCh0eXBlID09IFBs
YXRmb3JtRXZlbnQ6OkNoYXIpID8gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGNvZGUpIDogU3RyaW5n
KCkpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIp
ID8gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGNvZGUpIDogU3RyaW5nKCkpCiAgICAgLCBtX2tleSh0
eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIgPyB3aW5kb3dzS2V5TmFtZXMoKS5kb21LZXlGcm9t
Q2hhcihjb2RlKSA6IHdpbmRvd3NLZXlOYW1lcygpLmRvbUtleUZyb21QYXJhbXMoY29kZSwga2V5
RGF0YSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVu
dFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAK
aW5kZXggMGI2YjcwZTcwZjExMTIyYTNmZWIwOTFmZDk5NDRhZDk5ZTFkOTM4Yy4uNjQzMzIwOTlm
NWYzNTVmN2IxOThkMDg1NGJkNzZhZTZhZWFiMWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50
IHZlcnRpY2FsU2Nyb2xsTGluZXMoKQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3Jt
V2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wg
aXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWws
IHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19N
RU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9C
SVRfTUFTS19TSE9SVCwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFy
YW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkg
JiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01B
U0tfU0hPUlQsIFdhbGxUaW1lKFNlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkpCiAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1f
Z2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQogICAg
ICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YS5oCmluZGV4IDMxNGUwM2UwNDdlOTM2ZWQ5MmE4ZjZkYWJjNjYyNWEwZGY5YjgwYmEu
LjY3NmRlYmYwYWEyMjgxOWE2NTMxZWUwMmVlMmM5ODY3MGFkODhkZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YS5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YSB7CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2RlciA8PCBrZXkgPDwgaWRlbnRpZmllciA8PCBzY29wZVVSTCA8PCB1cGRhdGVWaWFD
YWNoZSA8PCBsYXN0VXBkYXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgPDwgaW5z
dGFsbGluZ1dvcmtlciA8PCB3YWl0aW5nV29ya2VyIDw8IGFjdGl2ZVdvcmtlcjsKKyAgICBlbmNv
ZGVyIDw8IGtleSA8PCBpZGVudGlmaWVyIDw8IHNjb3BlVVJMIDw8IHVwZGF0ZVZpYUNhY2hlIDw8
IGxhc3RVcGRhdGVUaW1lIDw8IGluc3RhbGxpbmdXb3JrZXIgPDwgd2FpdGluZ1dvcmtlciA8PCBh
Y3RpdmVXb3JrZXI7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC04Niw5ICs4Niw5
IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhOjpkZWNvCiAgICAgaWYgKCF1cGRhdGVWaWFDYWNoZSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBy
YXdXYWxsVGltZTsKLSAgICBkZWNvZGVyID4+IHJhd1dhbGxUaW1lOwotICAgIGlmICghcmF3V2Fs
bFRpbWUpCisgICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gd2FsbFRpbWU7CisgICAgZGVjb2Rl
ciA+PiB3YWxsVGltZTsKKyAgICBpZiAoIXdhbGxUaW1lKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJE
YXRhPj4gaW5zdGFsbGluZ1dvcmtlcjsKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YTo6ZGVjbwogICAgIGlmICghYWN0aXZlV29ya2VyKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCi0gICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCprZXkpLCBXVEZNb3ZlKCppZGVudGlm
aWVyKSwgV1RGTW92ZSgqc2NvcGVVUkwpLCBXVEZNb3ZlKCp1cGRhdGVWaWFDYWNoZSksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcygqcmF3V2FsbFRpbWUpLCBXVEZNb3ZlKCppbnN0YWxsaW5nV29y
a2VyKSwgV1RGTW92ZSgqd2FpdGluZ1dvcmtlciksIFdURk1vdmUoKmFjdGl2ZVdvcmtlcikgfSB9
OworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqa2V5KSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdU
Rk1vdmUoKnNjb3BlVVJMKSwgV1RGTW92ZSgqdXBkYXRlVmlhQ2FjaGUpLCBXVEZNb3ZlKCp3YWxs
VGltZSksIFdURk1vdmUoKmluc3RhbGxpbmdXb3JrZXIpLCBXVEZNb3ZlKCp3YWl0aW5nV29ya2Vy
KSwgV1RGTW92ZSgqYWN0aXZlV29ya2VyKSB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCBjYmJlMzBlNTk0YTU5MGIwZjlkNTZhODcw
YjZjM2YxZDNhNWI1NDY1Li5lNDFhZDNkNWQ5ZTI5YmJjMjdlOTcwMGI3MWY0NDUzNjIzNDIyY2M4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtNTE0LDcgKzUxNCw3IEBAIFN0cmlu
ZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gc2Nv
cGVQYXRoID0gc3FsLT5jb2x1bW5UZXh0KDIpOwogICAgICAgICBhdXRvIHNjb3BlVVJMID0gVVJM
IHsgb3JpZ2luVVJMLCBzY29wZVBhdGggfTsKICAgICAgICAgYXV0byB0b3BPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIoc3FsLT5jb2x1bW5UZXh0KDMp
KTsKLSAgICAgICAgYXV0byBsYXN0VXBkYXRlQ2hlY2tUaW1lID0gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHNxbC0+Y29sdW1uRG91YmxlKDQpKTsKKyAgICAgICAgYXV0byBsYXN0VXBkYXRlQ2hl
Y2tUaW1lID0gV2FsbFRpbWUoU2Vjb25kcyhzcWwtPmNvbHVtbkRvdWJsZSg0KSkpOwogICAgICAg
ICBhdXRvIHVwZGF0ZVZpYUNhY2hlID0gc3RyaW5nVG9VcGRhdGVWaWFDYWNoZShzcWwtPmNvbHVt
blRleHQoNSkpOwogICAgICAgICBhdXRvIHNjcmlwdFVSTCA9IFVSTCB7IFVSTCgpLCBzcWwtPmNv
bHVtblRleHQoNikgfTsKICAgICAgICAgYXV0byB3b3JrZXJUeXBlID0gc3RyaW5nVG9Xb3JrZXJU
eXBlKHNxbC0+Y29sdW1uVGV4dCg3KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAzNTViYjg0ZmNiYTdkNmVhYmFhOTc1
MjAyMjc2YmU5YWIzZTZmZmI3Li4zZWM4MDVlYWI0ZWU2YzY3YWJhNDc4NThlYThjOWU1YjQ3Yjg4
ZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAKQEAgLTgzNSw4ICs4MzUsOCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptZXJnZShXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqIGN1cnJlbgog
ICAgIGF1dG8gdHJhbnNhY3Rpb25TY29wZSA9IGJlZ2luVHJhbnNhY3Rpb25JZk5lY2Vzc2FyeSgp
OwogCiAgICAgYXV0byBjdXJyZW50UmVnaXN0cmFibGVEb21haW4gPSBjdXJyZW50LT5jb2x1bW5U
ZXh0KFJlZ2lzdHJhYmxlRG9tYWluSW5kZXgpOwotICAgIGF1dG8gY3VycmVudExhc3RTZWVuID0g
Y3VycmVudC0+Y29sdW1uRG91YmxlKExhc3RTZWVuSW5kZXgpOwotICAgIGF1dG8gY3VycmVudE1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gPSBjdXJyZW50LT5jb2x1bW5Eb3VibGUoTW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCk7CisgICAgYXV0byBjdXJyZW50TGFzdFNlZW4gPSBX
YWxsVGltZShTZWNvbmRzKGN1cnJlbnQtPmNvbHVtbkRvdWJsZShMYXN0U2VlbkluZGV4KSkpOwor
ICAgIGF1dG8gY3VycmVudE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gPSBXYWxsVGltZShTZWNv
bmRzKGN1cnJlbnQtPmNvbHVtbkRvdWJsZShNb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUlu
ZGV4KSkpOwogICAgIGJvb2wgY3VycmVudEdyYW5kZmF0aGVyZWQgPSBjdXJyZW50LT5jb2x1bW5J
bnQoR3JhbmRmYXRoZXJlZEluZGV4KTsKICAgICBib29sIGN1cnJlbnRJc1ByZXZhbGVudCA9IGN1
cnJlbnQtPmNvbHVtbkludChJc1ByZXZhbGVudEluZGV4KTsKICAgICBib29sIGN1cnJlbnRJc1Zl
cnlQcmV2YWxlbnQgPSBjdXJyZW50LT5jb2x1bW5JbnQoSXNWZXJ5UHJldmFsZW50SW5kZXgpOwpA
QCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Om1lcmdlKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCogY3VycmVuCiAKICAgICBBU1NFUlQo
Y3VycmVudFJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmlu
ZygpKTsKIAotICAgIGlmIChXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoY3VycmVudExhc3RTZWVu
KSA8IG90aGVyLmxhc3RTZWVuKQorICAgIGlmIChjdXJyZW50TGFzdFNlZW4gPCBvdGhlci5sYXN0
U2VlbikKICAgICAgICAgdXBkYXRlTGFzdFNlZW4ob3RoZXIucmVnaXN0cmFibGVEb21haW4sIG90
aGVyLmxhc3RTZWVuKTsKIAogICAgIGlmICghb3RoZXIuaGFkVXNlckludGVyYWN0aW9uKSB7CkBA
IC04NTMsNyArODUzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bWVyZ2UoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50KiBjdXJyZW4KICAgICAgICAgaWYgKCFv
dGhlci5tb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSkKICAgICAgICAgICAgIHNldFVzZXJJ
bnRlcmFjdGlvbihvdGhlci5yZWdpc3RyYWJsZURvbWFpbiwgZmFsc2UsIHsgfSk7CiAgICAgfSBl
bHNlCi0gICAgICAgIHNldFVzZXJJbnRlcmFjdGlvbihvdGhlci5yZWdpc3RyYWJsZURvbWFpbiwg
dHJ1ZSwgc3RkOjptYXgoV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGN1cnJlbnRNb3N0UmVjZW50
VXNlckludGVyYWN0aW9uKSwgb3RoZXIubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUpKTsK
KyAgICAgICAgc2V0VXNlckludGVyYWN0aW9uKG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluLCB0cnVl
LCBzdGQ6Om1heChjdXJyZW50TW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgb3RoZXIubW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvblRpbWUpKTsKIAogICAgIGlmIChvdGhlci5ncmFuZGZhdGhlcmVk
ICYmICFjdXJyZW50R3JhbmRmYXRoZXJlZCkKICAgICAgICAgc2V0R3JhbmRmYXRoZXJlZChvdGhl
ci5yZWdpc3RyYWJsZURvbWFpbiwgdHJ1ZSk7CkBAIC0xNTk2LDcgKzE1OTYsNyBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUmVnaXN0cmFibAogICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc2NvcGVkU3RhdGVtZW50LT5jb2x1bW5E
b3VibGUoMSkpOworICAgIGF1dG8gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxs
VGltZShTZWNvbmRzKHNjb3BlZFN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDEpKSk7CiAKICAgICBp
ZiAoaGFzU3RhdGlzdGljc0V4cGlyZWQobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9w
ZXJhdGluZ0RhdGVzV2luZG93KSkgewogICAgICAgICAvLyBEcm9wIHByaXZhY3kgc2Vuc2l0aXZl
IGRhdGEgYmVjYXVzZSB3ZSBubyBsb25nZXIgbmVlZCBpdC4KQEAgLTIyMDIsNyArMjIwMiw3IEBA
IFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6RG9tYWluRGF0YT4g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhCiAgICAgd2hpbGUgKHN0YXRlbWVudC0+c3RlcCgpID09
IFNRTElURV9ST1cpIHsKICAgICAgICAgcmVzdWx0cy5hcHBlbmQoeyBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oc3RhdGVtZW50LT5jb2x1bW5JbnQoMCkpCiAgICAgICAgICAgICAsIFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoc3RhdGVt
ZW50LT5jb2x1bW5UZXh0KDEpKQotICAgICAgICAgICAgLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoc3RhdGVtZW50LT5jb2x1bW5Eb3VibGUoMikpCisgICAgICAgICAgICAsIFdhbGxUaW1lKFNl
Y29uZHMoc3RhdGVtZW50LT5jb2x1bW5Eb3VibGUoMikpKQogICAgICAgICAgICAgLCBzdGF0ZW1l
bnQtPmNvbHVtbkludCgzKSA/IHRydWUgOiBmYWxzZQogICAgICAgICAgICAgLCBzdGF0ZW1lbnQt
PmNvbHVtbkludCg0KSA/IHRydWUgOiBmYWxzZQogICAgICAgICAgICAgLCBzdGF0ZW1lbnQtPmNv
bHVtbkludCg1KSA/IHRydWUgOiBmYWxzZQpAQCAtMjQwNCw3ICsyNDA0LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNlZW4oY29uc3QgUmVn
aXN0cmFibGVEb21haW4KICAgICB9CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IFNlY29uZHMgc2Vjb25kcykKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFdhbGxUaW1l
IGxhc3RTZWVuKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yNDE2
LDcgKzI0MTYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
ZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHVwZGF0ZUxhc3RTZWVuKGRvbWFpbiwgV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHNlY29uZHMuc2Vjb25kcygpKSk7CisgICAgdXBkYXRlTGFzdFNlZW4oZG9tYWluLCBs
YXN0U2Vlbik7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCkBA
IC0yODEzLDcgKzI4MTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdAogICAgIGZvciAodW5z
aWduZWQgaSA9IDE7IGkgPD0gbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkOyBpKyspIHsKICAg
ICAgICAgZG91YmxlIGRheXNUb1N1YnRyYWN0ID0gU2Vjb25kczo6ZnJvbUhvdXJzKDI0ICogaSku
dmFsdWUoKTsKICAgICAgICAgZGF5c0Fnb0luU2Vjb25kcyA9IFdhbGxUaW1lOjpub3coKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBkYXlzVG9TdWJ0cmFjdDsKLSAgICAgICAgYXV0byBk
YXRlVG9JbnNlcnQgPSBPcGVyYXRpbmdEYXRlOjpmcm9tV2FsbFRpbWUoV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGRheXNBZ29JblNlY29uZHMpKTsKKyAgICAgICAgYXV0byBkYXRlVG9JbnNlcnQg
PSBPcGVyYXRpbmdEYXRlOjpmcm9tV2FsbFRpbWUoV2FsbFRpbWUoU2Vjb25kcyhkYXlzQWdvSW5T
ZWNvbmRzKSkpOwogCiAgICAgICAgIGF1dG8gaW5zZXJ0T3BlcmF0aW5nRGF0ZVN0YXRlbWVudCA9
IG1fZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudCgiSU5TRVJUIE9SIElHTk9SRSBJTlRPIE9wZXJh
dGluZ0RhdGVzICh5ZWFyLCBtb250aCwgbW9udGhEYXkpIFNFTEVDVCA/LCA/LCA/OyJfcyk7CiAg
ICAgICAgIGlmICghaW5zZXJ0T3BlcmF0aW5nRGF0ZVN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCA2OTAxODZmMjE0
NjA5YzI5MDgyMmIxNWI3Y2NmNmFkOTY0OTY3MjE5Li5hZmIyMzBlZTZmZmFjZmVlNDIyNWNkYzk1
MDdjODVhZGMwMTBlMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBT
ZWNvbmRzKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgV2FsbFRpbWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNDb3JyZWN0U3ViU3RhdGlz
dGljc0NvdW50KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
KTsKICAgICB2b2lkIHJlc291cmNlVG9TdHJpbmcoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OwogICAgIFNlY29uZHMgZ2V0TW9zdFJlY2VudGx5VXBkYXRlZFRpbWVzdGFtcChj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5kZXgg
NTZmNjdiZjA4OGRjNjAwMjIzZjhiZmEzMGZkZjc4NDhlMGJlZWQyOS4uMDU0YTU5MWRjZDE4ZDM2
ZDkxOWNkZDhkNmEzMjkwNTI0ZTg5N2RmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29sIGhhc0hhZFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIE9wZXJhdGluZ0RhdGVzV2luZG93
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgV2FsbFRpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlRGF0YUZv
ckRvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwogICAgIFZlY3RvcjxS
ZWdpc3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaW5z
ZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1
bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFzVXNlckludGVyYWN0
aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQ
cmV2YWxlbnQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDFhM2IwOGJmNzNlMTRmYzdjZTBhNjU3ZGU1ODNmOWYyMmQ0YWE4MjIuLjcxNzdh
YTY1MTE1ZGM3NDBlZWI0ODg4NWI1MzhjOWFkZmUxNDYyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTE4Myw3ICsxODMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhh
c0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIE9wZXJhdGluZ0Rh
dGVzV2luZG93KSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHByaW1hcnlEb21haW4sIFNlY29uZHMpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHByaW1hcnlEb21haW4s
IFdhbGxUaW1lKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRGF0YUZvckRvbWFpbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBkZTc2NWRlNDUwNzFmNDFmM2ZjNGQ0Njk3
MDUzODE2ZTE4OTllYmZhLi5iZDExNzEyY2E4YTMwMzg3ZWE0YWRjOTEwZWZhMzRmYWJmODNiY2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApA
QCAtODE2LDI3ICs4MTYsMjcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
Omhhc0hhZFVzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbChjb25zdCBSZWdpc3QKICAgICBjb21wbGV0
aW9uSGFuZGxlcihtX2RvbWFpbnNXaXRoRXBoZW1lcmFsVXNlckludGVyYWN0aW9uLmNvbnRhaW5z
KGRvbWFpbikpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0
TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBzZWNvbmRz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRD
b3B5KCksIHNlY29uZHMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFpbi5p
c29sYXRlZENvcHkoKSwgbGFzdFNlZW4sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9y
ZSkKLSAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXRMYXN0U2Vlbihkb21haW4sIHNl
Y29uZHMpOworICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldExhc3RTZWVuKGRvbWFp
biwgbGFzdFNlZW4pOwogICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29s
IGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQs
IHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRV
c2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZy
YW1lRG9tYWluMSA9IHRvcEZyYW1lRG9tYWluMS5pc29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21h
aW4yID0gdG9wRnJhbWVEb21haW4yLmlzb2xhdGVkQ29weSgpLCBsYXN0U2VlbiwgaGFkVXNlcklu
dGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlz
UHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKSB7CiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzIHN0YXRpc3RpYyhkb21haW4pOwotICAgICAgICAgICAgc3RhdGlzdGljLmxhc3RTZWVu
ID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGxhc3RTZWVuLnNlY29uZHMoKSk7CisgICAgICAg
ICAgICBzdGF0aXN0aWMubGFzdFNlZW4gPSBsYXN0U2VlbjsKICAgICAgICAgICAgIHN0YXRpc3Rp
Yy5oYWRVc2VySW50ZXJhY3Rpb24gPSBoYWRVc2VySW50ZXJhY3Rpb247Ci0gICAgICAgICAgICBz
dGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbi5zZWNvbmRzKCkpOworICAgICAgICAg
ICAgc3RhdGlzdGljLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbjsKICAgICAgICAgICAgIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkID0gaXNH
cmFuZGZhdGhlcmVkOwogICAgICAgICAgICAgc3RhdGlzdGljLmlzUHJldmFsZW50UmVzb3VyY2Ug
PSBpc1ByZXZhbGVudDsKICAgICAgICAgICAgIHN0YXRpc3RpYy5pc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZSA9IGlzVmVyeVByZXZhbGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaAppbmRleCA2NjFiMTU2M2VjNjRiNjZlNzhmMWY4ZDU1NGM2ZDlkZjM3MzFh
ZTZiLi40YTE0ZmUyOWM3YzNhYzY1NTc2MGRhNTU3NWQyNjA4NzQ5ZTg5MWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xNjAsOCArMTYwLDgg
QEAgcHVibGljOgogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NTY29wZSwgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQpPiYmKTsKLSAgICB2b2lkIHNldExhc3RTZWVuKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBXYWxsVGlt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjIs
IFdhbGxUaW1lIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2
YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9u
bHlJbkRhdGFiYXNlT25jZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQ
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0RhdGFiYXNlVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRGF0
YWJhc2VVdGlsaXRpZXMuY3BwCmluZGV4IDE0ODZkNTIyOTZmNjc1MWYzMTBjNzk4MTY2YmY3ZWRi
ZWQyYWI0MzIuLjljNDdiMzRhYzE5OTIxYjQwZTQ3NWI2MThlYTk0MzA5YWZmZGMyMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRGF0YWJhc2VVdGlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRGF0YWJhc2VVdGlsaXRpZXMuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgRGF0
YWJhc2VVdGlsaXRpZXM6OmJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQKICAgICBpZiAoYnVu
ZGxlSUQuaXNFbXB0eSgpKQogICAgICAgICBidW5kbGVJRCA9IHNhZmFyaUJ1bmRsZUlEOwogCi0g
ICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhzb3VyY2VTaXRl
RG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRl
RnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKGRlc3RpbmF0aW9uU2l0ZURvbWFpbikpLCBidW5k
bGVJRCwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVPZkFkQ2xpY2spLCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vKTsKKyAgICBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoc291cmNlSUQpLCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHNvdXJjZVNpdGVEb21h
aW4pKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGlu
YXRpb25TaXRlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9t
UmVnaXN0cmFibGVEb21haW5TdHJpbmcoZGVzdGluYXRpb25TaXRlRG9tYWluKSksIGJ1bmRsZUlE
LCBXYWxsVGltZShTZWNvbmRzKHRpbWVPZkFkQ2xpY2spKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyk7CiAKICAgICBpZiAoYXR0cmli
dXRpb25UeXBlID09IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRy
aWJ1dGVkKSB7CiAgICAgICAgIGF1dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IHN0YXRlbWVu
dC5jb2x1bW5JbnQoMyk7CkBAIC0xNzQsMTAgKzE3NCwxMCBAQCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBEYXRhYmFzZVV0aWxpdGllczo6YnVpbGRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudAogCiAgICAgICAgIC8vIEEgdmFsdWUgb2YgMC4wIGluZGljYXRlcyB0aGF0IHRoZSByZXBv
cnQgaGFzIGJlZW4gc2VudCB0byB0aGUgcmVzcGVjdGl2ZSBzaXRlLgogICAgICAgICBpZiAoc291
cmNlRWFybGllc3RUaW1lVG9TZW5kVmFsdWUgPiAwLjApCi0gICAgICAgICAgICBzb3VyY2VFYXJs
aWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc291cmNlRWFybGllc3RU
aW1lVG9TZW5kVmFsdWUpOworICAgICAgICAgICAgc291cmNlRWFybGllc3RUaW1lVG9TZW5kID0g
V2FsbFRpbWUoU2Vjb25kcyhzb3VyY2VFYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSkpOwogCiAgICAg
ICAgIGlmIChkZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZFZhbHVlID4gMC4wKQotICAgICAg
ICAgICAgZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSk7CisgICAgICAgICAgICBk
ZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZCA9IFdhbGxUaW1lKFNlY29uZHMoZGVzdGluYXRp
b25FYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSkpOwogCiAgICAgICAgIGF0dHJpYnV0aW9uLnNldFRp
bWVzVG9TZW5kKHsgc291cmNlRWFybGllc3RUaW1lVG9TZW5kLCBkZXN0aW5hdGlvbkVhcmxpZXN0
VGltZVRvU2VuZCB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDY2NmJjYzFiMjFiOTVkMDg5MmIyZjIzZmRjMTI5ZmJh
ZTYxZmUzMjEuLmQ4OWEwYzFkNjJkNGE5MWJkMmQxM2QxYzFkMTUwYThjNmQyMTAyZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC05
MzgsMTEgKzkzOCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgogfQogICAgIAogICAgIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nl
c3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldExh
c3RTZWVuKGRvbWFpbiwgc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
ICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0TGFzdFNlZW4oZG9tYWluLCBsYXN0
U2VlbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0gZWxzZSB7CkBAIC05NjQsNyArOTY0LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWEKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3M6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIs
IFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFs
ZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxU
aW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29s
IGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNS
ZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5l
dHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOWQzMmQ1Nzk3M2EwZWJhYzFk
MDcxNzVjNmRmODc5ZDQ2NmNlNjhhOC4uYTZmYzgzNDE5MzczNGVkMzZhYjBhMmY2NjA2YWExY2Rh
OTlmZGFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMjQ2LDkgKzI0Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXRpc3RpY3NEYXRh
YmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldExhc3RTZWVuKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25J
RCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2
b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBi
b29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxl
bnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVE
b21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBs
YXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29s
IGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQg
bnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9v
bCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWluaW11bVRpbWVC
ZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDMyYWIzODQwYjY2YTdjNzhkNTNh
MzU0NTkxMjBkZGRiMmNmNGU5YmMuLmMxNTkxNDgwZjdjMGE2OTY3ZDlkNDNlYmIyYjVkNWZmZGNh
NzMzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODgsOCArODgsOCBAQCBtZXNzYWdlcyAtPiBOZXR3
b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbikgLT4gKGJvb2wgaXNQcmV2YWxlbnQpIEFzeW5jCiAgICAgSXNWZXJ5UHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pIC0+IChib29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKICAgICBTZXRB
Z2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRMYXN0U2VlbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4g
KCkgQXN5bmMKKyAgICBTZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbikg
LT4gKCkgQXN5bmMKKyAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFdhbGxUaW1lIGxhc3RTZWVuLCBib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBp
c0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1
aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCiAgICAgSW5zZXJ0RXhwaXJl
ZFN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgdWludDY0X3QgbnVtYmVyT2ZPcGVyYXRp
bmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZv
ckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSAtPiAoKSBBc3luYwog
ICAgIFNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0
UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUZpbGVTeXN0ZW0uY3BwCmluZGV4IGM4NzVjOTM2NGVlMDUzNTI2ZDNmOWU3YzM2Mjc1
ZDkzMTljNWMxMGUuLjdiYTZiMmE0ZmIxOTgxMTM3MzVhZmZhNDVhNzM3NmM4OGU1YzdmNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmNwcApAQCAtNjksNyArNjksNyBAQCBGaWxlVGltZXMgZmls
ZVRpbWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBzdHJ1Y3Qgc3RhdCBmaWxlSW5mbzsKICAg
ICBpZiAoc3RhdChGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0
YSgpLCAmZmlsZUluZm8pKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiB7IFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhmaWxlSW5mby5zdF9iaXJ0aHRpbWUpLCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZmlsZUluZm8uc3RfbXRpbWUpIH07CisgICAgcmV0dXJuIHsgV2FsbFRpbWUo
U2Vjb25kcyhmaWxlSW5mby5zdF9iaXJ0aHRpbWUpKSwgV2FsbFRpbWUoU2Vjb25kcyhmaWxlSW5m
by5zdF9tdGltZSkpIH07CiAjZWxpZiBVU0UoU09VUCkKICAgICAvLyBUaGVyZSdzIG5vIHN0X2Jp
cnRodGltZSBpbiBzb21lIG9wZXJhdGluZyBzeXN0ZW1zIGxpa2UgTGludXgsIHNvIHdlIHVzZSB4
YXR0cnMgdG8gc2V0L2dldCB0aGUgY3JlYXRpb24gdGltZS4KICAgICBHUmVmUHRyPEdGaWxlPiBm
aWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgoRmlsZVN5c3RlbTo6ZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSkpOwpAQCAtNzksOCArNzksMTAgQEAgRmlsZVRp
bWVzIGZpbGVUaW1lcyhjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgY29uc3QgY2hhciogYmlydGh0
aW1lU3RyaW5nID0gZ19maWxlX2luZm9fZ2V0X2F0dHJpYnV0ZV9zdHJpbmcoZmlsZUluZm8uZ2V0
KCksICJ4YXR0cjo6YmlydGh0aW1lIik7CiAgICAgaWYgKCFiaXJ0aHRpbWVTdHJpbmcpCiAgICAg
ICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHsgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdf
YXNjaWlfc3RydG91bGwoYmlydGh0aW1lU3RyaW5nLCBudWxscHRyLCAxMCkpLAotICAgICAgICBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ19maWxlX2luZm9fZ2V0X2F0dHJpYnV0ZV91aW50NjQo
ZmlsZUluZm8uZ2V0KCksICJ0aW1lOjptb2RpZmllZCIpKSB9OworICAgIHJldHVybiB7CisgICAg
ICAgIFdhbGxUaW1lKFNlY29uZHMoZ19hc2NpaV9zdHJ0b3VsbChiaXJ0aHRpbWVTdHJpbmcsIG51
bGxwdHIsIDEwKSkpLAorICAgICAgICBXYWxsVGltZShTZWNvbmRzKGdfZmlsZV9pbmZvX2dldF9h
dHRyaWJ1dGVfdWludDY0KGZpbGVJbmZvLmdldCgpLCAidGltZTo6bW9kaWZpZWQiKSkpLAorICAg
IH07CiAjZWxpZiBPUyhXSU5ET1dTKQogICAgIGF1dG8gY3JlYXRlVGltZSA9IEZpbGVTeXN0ZW06
OmZpbGVDcmVhdGlvblRpbWUocGF0aCk7CiAgICAgYXV0byBtb2RpZnlUaW1lID0gRmlsZVN5c3Rl
bTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUocGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggZDkz
YWM5ZWIyZjEwNDVlMTNlNTcyNWE0N2YwZTc2OTE1NzJiNmM0MS4uMTViY2JiOTAyMzBjYjA4NDkw
ZDc1ZWFlYmFkNzc5OTA3NDk2YTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtODM2LDcgKzgz
Niw3IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihO
U1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRGaW5pCiAKICAgICAgICAgYXV0byBkYXRlVG9Nb25v
dG9uaWNUaW1lID0gW10gKE5TRGF0ZSAqZGF0ZSkgewogICAgICAgICAgICAgaWYgKGF1dG8gaW50
ZXJ2YWwgPSBkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGludGVydmFsKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhpbnRlcnZh
bCkpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpOwogICAgICAgICAgICAgcmV0dXJuIE1vbm90
b25pY1RpbWUgeyB9OwogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggYjIwYWE1
MWEwZjg0Zjk1YWQ4ZjBiNzgwN2Q3NDE3MWFkYzUyMDVhMy4uZWNiN2U5ZTUwZGU3YWE0OWMxODNk
N2RjNDQ4OTAwNTQ1NGIxNDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMjczLDggKzI3Myw3
IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y2xlYXJSZXF1ZXN0KCkKICNlbHNlCiAgICAg
ICAgIGlmIChtX25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ICYmICFtX25ldHdvcmtMb2Fk
TWV0cmljcy5yZXNwb25zZUVuZCkgewogICAgICAgICAgICAgYXV0byogbWV0cmljcyA9IHNvdXBf
bWVzc2FnZV9nZXRfbWV0cmljcyhtX3NvdXBNZXNzYWdlLmdldCgpKTsKLSAgICAgICAgICAgIGF1
dG8gcmVzcG9uc2VFbmQgPSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9t
ZXRyaWNzX2dldF9yZXNwb25zZV9lbmQobWV0cmljcykpOwotICAgICAgICAgICAgbV9uZXR3b3Jr
TG9hZE1ldHJpY3MucmVzcG9uc2VFbmQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhy
ZXNwb25zZUVuZC5zZWNvbmRzKCkpOworICAgICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Mu
cmVzcG9uc2VFbmQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291
cF9tZXNzYWdlX21ldHJpY3NfZ2V0X3Jlc3BvbnNlX2VuZChtZXRyaWNzKSkpOwogICAgICAgICAg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MubWFya0NvbXBsZXRlKCk7CiAgICAgICAgIH0KICNlbmRp
ZgpAQCAtMzIxLDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6cmVzdW1lKCkK
ICAgICAgICAgICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CiAjZWxzZQogICAgICAgICAgICAgICAgIGF1dG8qIG1ldHJpY3MgPSBz
b3VwX21lc3NhZ2VfZ2V0X21ldHJpY3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgICAgICAg
ICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6OmZy
b21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJp
Y3NfZ2V0X2ZldGNoX3N0YXJ0KG1ldHJpY3MpKS5zZWNvbmRzKCkpOworICAgICAgICAgICAgICAg
IG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6
OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2ZldGNoX3N0YXJ0KG1l
dHJpY3MpKSk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoIW1fbmV0d29ya0xvYWRNZXRy
aWNzLnJlZGlyZWN0U3RhcnQpCiAgICAgICAgICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRy
aWNzLnJlZGlyZWN0U3RhcnQgPSBtX25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0OwpAQCAt
MTIzMiw4ICsxMjMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRIZWFkZXJz
KCkKIAogI2lmICFVU0UoU09VUDIpCiAgICAgYXV0byogbWV0cmljcyA9IHNvdXBfbWVzc2FnZV9n
ZXRfbWV0cmljcyhtX3NvdXBNZXNzYWdlLmdldCgpKTsKLSAgICBhdXRvIHJlc3BvbnNlU3RhcnQg
PSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9yZXNw
b25zZV9zdGFydChtZXRyaWNzKSk7Ci0gICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VT
dGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHJlc3BvbnNlU3RhcnQuc2Vjb25k
cygpKTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZXNwb25zZVN0YXJ0ID0gTW9ub3Rvbmlj
VGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9y
ZXNwb25zZV9zdGFydChtZXRyaWNzKSkpOwogI2VuZGlmCiAKICAgICAvLyBTb3VwIGFkZHMgbW9y
ZSBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHN0YXJ0aW5nIHNpZ25hbCBpcyBlbWl0dGVk
LCBhbmQgZ290LWhlYWRlcnMKQEAgLTE2MTEsMjIgKzE2MDksMTUgQEAgdm9pZCBOZXR3b3JrRGF0
YVRhc2tTb3VwOjpkaWRTdGFydFJlcXVlc3QoKQogICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmlj
cy5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBXZWJDb3JlOjpyZXVzZWRUTFNDb25uZWN0aW9uU2Vu
dGluZWw7CiAjZWxzZQogICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0X21ldHJp
Y3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgYXV0byBkb21haW5Mb29rdXBTdGFydCA9IFNl
Y29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Ruc19zdGFy
dChtZXRyaWNzKSk7Ci0gICAgYXV0byBkb21haW5Mb29rdXBFbmQgPSBTZWNvbmRzOjpmcm9tTWlj
cm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9kbnNfZW5kKG1ldHJpY3MpKTsKLSAg
ICBhdXRvIGNvbm5lY3RTdGFydCA9IFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNz
YWdlX21ldHJpY3NfZ2V0X2Nvbm5lY3Rfc3RhcnQobWV0cmljcykpOwotICAgIGF1dG8gY29ubmVj
dEVuZCA9IFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0
X2Nvbm5lY3RfZW5kKG1ldHJpY3MpKTsKLSAgICBhdXRvIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9
IFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X3Rsc19z
dGFydChtZXRyaWNzKSk7Ci0gICAgYXV0byByZXF1ZXN0U3RhcnQgPSBTZWNvbmRzOjpmcm9tTWlj
cm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9yZXF1ZXN0X3N0YXJ0KG1ldHJpY3Mp
KTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5kb21haW5Mb29rdXBTdGFydCA9IE1vbm90b25p
Y1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRf
ZG5zX3N0YXJ0KG1ldHJpY3MpKSk7CisgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZG9tYWluTG9v
a3VwRW5kID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVz
c2FnZV9tZXRyaWNzX2dldF9kbnNfZW5kKG1ldHJpY3MpKSk7CisgICAgbV9uZXR3b3JrTG9hZE1l
dHJpY3MuY29ubmVjdFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNv
bmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9jb25uZWN0X3N0YXJ0KG1ldHJpY3MpKSk7Cisg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuY29ubmVjdEVuZCA9IE1vbm90b25pY1RpbWUoU2Vjb25k
czo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfY29ubmVjdF9lbmQo
bWV0cmljcykpKTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdl
X21ldHJpY3NfZ2V0X3Rsc19zdGFydChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRy
aWNzLnJlcXVlc3RTdGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25k
cyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVxdWVzdF9zdGFydChtZXRyaWNzKSkpOwogCi0g
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZG9tYWluTG9va3VwU3RhcnQgPSBNb25vdG9uaWNUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhkb21haW5Mb29rdXBTdGFydC5zZWNvbmRzKCkpOwotICAgIG1fbmV0
d29ya0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1cEVuZCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdT
ZWNvbmRzKGRvbWFpbkxvb2t1cEVuZC5zZWNvbmRzKCkpOwotICAgIG1fbmV0d29ya0xvYWRNZXRy
aWNzLmNvbm5lY3RTdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGNvbm5lY3RT
dGFydC5zZWNvbmRzKCkpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmNvbm5lY3RFbmQgPSBN
b25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhjb25uZWN0RW5kLnNlY29uZHMoKSk7Ci0gICAg
aWYgKCFzZWN1cmVDb25uZWN0aW9uU3RhcnQgJiYgbV9jdXJyZW50UmVxdWVzdC51cmwoKS5wcm90
b2NvbElzKCJodHRwcyIpKQorICAgIGlmICghbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29u
bmVjdGlvblN0YXJ0ICYmIG1fY3VycmVudFJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMi
KSkKICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0g
V2ViQ29yZTo6cmV1c2VkVExTQ29ubmVjdGlvblNlbnRpbmVsOwotICAgIGVsc2UKLSAgICAgICAg
bV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoc2VjdXJlQ29ubmVjdGlvblN0YXJ0LnNlY29uZHMoKSk7Ci0gICAg
bV9uZXR3b3JrTG9hZE1ldHJpY3MucmVxdWVzdFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6ZnJvbVJh
d1NlY29uZHMocmVxdWVzdFN0YXJ0LnNlY29uZHMoKSk7CiAjZW5kaWYKIH0KIApAQCAtMTY0OCw3
ICsxNjM5LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRSZXN0YXJ0KCkKICAgICBt
X25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAj
ZWxzZQogICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0X21ldHJpY3MobV9zb3Vw
TWVzc2FnZS5nZXQoKSk7Ci0gICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1v
bm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291
cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2ZldGNoX3N0YXJ0KG1ldHJpY3MpKS5zZWNvbmRzKCkpOwor
ICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29u
ZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2ZldGNoX3N0YXJ0
KG1ldHJpY3MpKSk7CiAgICAgbV9jdXJyZW50UmVxdWVzdC51cGRhdGVTb3VwTWVzc2FnZUJvZHko
bV9zb3VwTWVzc2FnZS5nZXQoKSwgbV9zZXNzaW9uLT5ibG9iUmVnaXN0cnkoKSk7CiAjZW5kaWYK
ICAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZWRpcmVjdFN0YXJ0ID0gbV9uZXR3b3JrTG9hZE1l
dHJpY3MuZmV0Y2hTdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCBlMWU2YjE2M2MwMjAwMTE2ZmZmNTc2YjE1OWUxYjc4Y2JjYWNiZDdm
Li5jYTgxZGI3YzVkZjQ1M2E3ZWI2Njc4NGVhZTBkOGM0NmJhOTY4NmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zNiw0MCArMzYsNiBA
QAogCiBuYW1lc3BhY2UgSVBDIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLXZvaWQg
QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBX
YWxsVGltZSYgdGltZSkKLXsKLSAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpOwotfQotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVu
Y29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgV2FsbFRpbWUmKTsKLXRlbXBsYXRlCi12b2lk
IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+
KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgV2FsbFRpbWUmKTsKLQotV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBXYWxsVGltZSYgdGltZSkKLXsKLSAgICBkb3VibGUgdmFsdWU7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh2YWx1ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHRpbWUg
PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotV0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0
aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdGltZTsKLSAgICBkZWNvZGVy
ID4+IHRpbWU7Ci0gICAgaWYgKCF0aW1lKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoKnRpbWUpOwotfQotdGVtcGxhdGUK
LXN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8
RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUKLXN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFy
Z3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdl
YktpdDo6RGFlbW9uOjpEZWNvZGVyJik7Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5n
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEF0b21TdHJpbmcmIGF0b21TdHJpbmcp
CiB7CiAgICAgZW5jb2RlciA8PCBhdG9tU3RyaW5nLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggZmJmMTVmOTIzZmJkZjg2MGEwZTYx
MTM1OTQ5NDlmOTU0YjI5MjQ2Yi4uYWZlNjE4MzgzN2ExMDY3ZWVkNzk0YzFiM2Q1NmM4NGMxZTYz
YzFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBA
IC0zMywxMSArMzMsOSBAQAogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2lu
Y2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVk
ZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1NIQTEuaD4KICNpbmNsdWRlIDx3dGYvVW5leHBlY3RlZC5oPgotI2luY2x1ZGUg
PHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIApAQCAtNzkzLDE0ICs3OTEsNiBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp2
YXJpYW50PFR5cGVzLi4uPj4gewogICAgICAgICByZXR1cm4gVmFyaWFudENvZGVyPHNpemVvZi4u
LihUeXBlcykgLSAxLCBUeXBlcy4uLj46OmRlY29kZShkZWNvZGVyLCAqaSk7CiAgICAgfQogfTsK
LSAgICAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+IHsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2FsbFRpbWUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXYWxsVGltZSYpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IGRlY29kZShEZWNvZGVyJik7
Ci19OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPEF0b21TdHJpbmc+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IEF0b21TdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDY0OTgy
YmM0ODEwMmE0YWRiMjBhN2U2MGUyMWJkNDkyZDY1MzM3NGMuLjc0YmI5ZDFkNjMzNGZhZDNhYWY4
ZDg0ZGU3MWNmZjk4NzE3YmUwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjYzMCwxOSArMjYzMCwxOSBAQCBzdGQ6Om9wdGlvbmFs
PFJlc291cmNlTG9hZFN0YXRpc3RpY3M+IEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VMb2FkU3RhdGlz
dGljcz46OmRlYwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHN0YXRpc3RpY3Mu
cmVnaXN0cmFibGVEb21haW4gPSBXVEZNb3ZlKCpyZWdpc3RyYWJsZURvbWFpbik7CiAKLSAgICBk
b3VibGUgbGFzdFNlZW5UaW1lQXNEb3VibGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYXN0
U2VlblRpbWVBc0RvdWJsZSkpCisgICAgV2FsbFRpbWUgbGFzdFNlZW5UaW1lOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobGFzdFNlZW5UaW1lKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICBzdGF0aXN0aWNzLmxhc3RTZWVuID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGxh
c3RTZWVuVGltZUFzRG91YmxlKTsKKyAgICBzdGF0aXN0aWNzLmxhc3RTZWVuID0gbGFzdFNlZW5U
aW1lOwogICAgIAogICAgIC8vIFVzZXIgaW50ZXJhY3Rpb24KICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHN0YXRpc3RpY3MuaGFkVXNlckludGVyYWN0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAotICAgIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91
YmxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWVBc0RvdWJsZSkpCisgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWU7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSkp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgc3RhdGlzdGljcy5tb3N0UmVjZW50
VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlKTsKKyAgICBzdGF0aXN0aWNzLm1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lID0gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWU7CiAKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3MuZ3JhbmRmYXRoZXJlZCkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9O
YXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCmluZGV4IDMyM2M5ZWMwMzI1NWFjYzllYzZiZGFhM2Yw
NTVjNmQyMDIyN2RhMjEuLmMxMTk5MmIwYjViM2IyMTc0MGJmOTcyNGU2ZGJiZjk3NjY0NGMwMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2Vi
VG91Y2hFdmVudChjb25zdCBfVUlXZWJUb3VjaEV2ZW50KiBldmVudCwgVUlLZXlNb2QKICAgICA6
IFdlYlRvdWNoRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvclVJV2ViVG91Y2hFdmVudFR5
cGUoZXZlbnQtPnR5cGUpLAogICAgICAgICB3ZWJFdmVudE1vZGlmaWVyRmxhZ3MoZmxhZ3MpLAot
ICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWVzdGFtcCksCisgICAg
ICAgIFdhbGxUaW1lKFNlY29uZHMoZXZlbnQtPnRpbWVzdGFtcCkpLAogICAgICAgICBleHRyYWN0
V2ViVG91Y2hQb2ludChldmVudCksCiAgICAgICAgIHBvc2l0aW9uRm9yQ0dQb2ludChldmVudC0+
bG9jYXRpb25JbkRvY3VtZW50Q29vcmRpbmF0ZXMpLAogI2lmIGRlZmluZWQgVUlfV0VCX1RPVUNI
X0VWRU5UX0hBU19JU19QT1RFTlRJQUxfVEFQICYmIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNf
UE9URU5USUFMX1RBUApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklP
U0V2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZh
Y3RvcnkubW0KaW5kZXggNWFkMzU2NTYyZWQ4YmI5OTc5YmRlZGEyMzIyMTk3YmY4YTliOTJmZS4u
ZTliZWVhNjA5NmM2ZjQ3YjFlZDZiMDM5MDhiYjk3MDllZDhmZDFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCkBAIC05MSw3ICs5MSw3IEBA
IFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktl
eWJvYXJkRXZlbnQoOjpXZWJFdmVudCAqCiAgICAgYm9vbCBpc0tleXBhZCA9IGZhbHNlOwogICAg
IGJvb2wgaXNTeXN0ZW1LZXkgPSBmYWxzZTsKICAgICBhdXRvIG1vZGlmaWVycyA9IG1vZGlmaWVy
c0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1w
OworICAgIGF1dG8gdGltZXN0YW1wID0gV2FsbFRpbWUoU2Vjb25kcyhldmVudC50aW1lc3RhbXAp
KTsKIAogICAgIGlmICh3aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gJ1xyJykgewogICAgICAgICB0
ZXh0ID0gIlxyIl9zOwpAQCAtMTExLDcgKzExMSw3IEBAIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoOjpXZWJFdmVudCAq
CiAgICAgICAgIHVubW9kaWZpZWRUZXh0ID0gdGV4dDsKICAgICB9CiAKLSAgICByZXR1cm4gV2Vi
S2l0OjpXZWJLZXlib2FyZEV2ZW50IHsgdHlwZSwgdGV4dCwgdW5tb2RpZmllZFRleHQsIGtleSwg
Y29kZSwga2V5SWRlbnRpZmllciwgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFs
S2V5Q29kZSwgbWFjQ2hhckNvZGUsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBhdXRvUmVwZWF0LCBp
c0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWVzdGFtcCkgfTsKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IHsgdHlw
ZSwgdGV4dCwgdW5tb2RpZmllZFRleHQsIGtleSwgY29kZSwga2V5SWRlbnRpZmllciwgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgbWFjQ2hhckNvZGUsIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBhdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlm
aWVycywgdGltZXN0YW1wIH07CiB9CiAKIFdlYktpdDo6V2ViTW91c2VFdmVudCBXZWJJT1NFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoOjpXZWJFdmVudCAqZXZlbnQpCkBAIC0xMjcs
OSArMTI3LDkgQEAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50IFdlYklPU0V2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViTW91c2VFdmVudCg6OldlYkV2ZW50ICpldmVudCkKICAgICBmbG9hdCBkZWx0YVkgPSAw
OwogICAgIGZsb2F0IGRlbHRhWiA9IDA7CiAgICAgaW50IGNsaWNrQ291bnQgPSAwOwotICAgIGRv
dWJsZSB0aW1lc3RhbXAgPSBldmVudC50aW1lc3RhbXA7CisgICAgYXV0byB0aW1lc3RhbXAgPSBX
YWxsVGltZShTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCkpOwogCi0gICAgcmV0dXJuIFdlYktpdDo6
V2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIGJ1dHRvbnMsIHBvc2l0aW9uLCBwb3NpdGlvbiwg
ZGVsdGFYLCBkZWx0YVksIGRlbHRhWiwgY2xpY2tDb3VudCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiB7IH0sIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXAp
KTsKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgYnV0dG9u
cywgcG9zaXRpb24sIHBvc2l0aW9uLCBkZWx0YVgsIGRlbHRhWSwgZGVsdGFaLCBjbGlja0NvdW50
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsgfSwgdGltZXN0YW1wKTsK
IH0KIAogI2lmIEhBVkUoVUlTQ1JPTExWSUVXX0FTWU5DSFJPTk9VU19TQ1JPTExfRVZFTlRfSEFO
RExJTkcpCkBAIC0xNjEsNyArMTYxLDcgQEAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50IFdlYklPU0V2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChVSVNjcm9sbEV2ZW50ICpldmUKICAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgZGVsdGEoZGVsdGFWZWN0b3IuZHgsIGRlbHRhVmVjdG9yLmR5KTsK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcyA9IGRlbHRhOwogICAgIHdoZWVsVGlj
a3Muc2NhbGUoMS4gLyBzdGF0aWNfY2FzdDxmbG9hdD4oV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhl
bHNQZXJMaW5lU3RlcCgpKSk7Ci0gICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKKyAg
ICBhdXRvIHRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWUoU2Vjb25kcyhldmVudC50aW1lc3RhbXAp
KS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CiAgICAgcmV0dXJuIHsKICAgICAgICAgV2ViS2l0OjpX
ZWJFdmVudDo6V2hlZWwsCiAgICAgICAgIHNjcm9sbExvY2F0aW9uLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5k
ZXggOGRmYTg4YzY2MzRlZTAwZjAyMzlkODVlOGI1MDVkOWQ5NWExM2Q5OC4uYzExMWU3MTI2OTRh
ZDgzMTg1ZjEyMmJiNWU2MDNjZDI3NGVmNTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0xOTUsNyAr
MTk1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0sKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IFdLU3RyaW5nUmVmIGhvc3QsIGRvdWJsZSBzZWNvbmRzLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNlZW5GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwoVVJMKCksIFdlYktpdDo6
dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBzZWNvbmRzIH0sIFtjb250ZXh0LCBj
b21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNl
dExhc3RTZWVuKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgV2Fs
bFRpbWUoU2Vjb25kcyhzZWNvbmRzKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0y
MDYsNyArMjA2LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTGFzdFNl
ZW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwKIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWlu
MSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBp
c0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1
bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJM
KCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwodG9wRnJhbWVEb21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lRG9tYWluMiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwg
aXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jk
c1JlbW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9J
bXBsKGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdl
YktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwo
dG9wRnJhbWVEb21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRv
cEZyYW1lRG9tYWluMiktPnN0cmluZygpKSwgV2FsbFRpbWUoU2Vjb25kcyhsYXN0U2VlbikpLCBo
YWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lKFNlY29uZHMobW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbikpLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRh
dGFSZWNvcmRzUmVtb3ZlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTU0OSw3ICs1
NDksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhvdQogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
dGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRp
c3RpY3NDbGVhclRocm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsK
ICAgICBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwotICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPnJlbW92ZURhdGEoZGF0YVR5cGVzLCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoMCksIFtjb250ZXh0LCBjYWxsYmFja10geworICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPnJlbW92ZURhdGEoZGF0YVR5cGVzLCBXYWxsVGltZSgpLCBbY29udGV4
dCwgY2FsbGJhY2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CiB9CkBA
IC04MjAsNyArODIwLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFsbERldmljZU9y
aWVudGF0aW9uUGVybWlzc2lvbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmUKIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIE9wdGlvblNldDxXZWJL
aXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzID0gV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50czsKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDApLCBb
Y29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5y
ZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWUoKSwgW2NvbnRleHQsIGNhbGxiYWNrXSB7CiAg
ICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
ZTJiMDczNjQ2NGIxNjZkZDkyMGNmMzU1MTcxZmIzYTU2MzcwYTM4NC4uYjEzZGJiMmRmMmRiNGVl
ZTQyZDkyZjVhZDE4ZDFiOWE2YmE2YzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xODksNyArMTg5
LDcgQEAgLSAoV0tIVFRQQ29va2llU3RvcmUgKilodHRwQ29va2llU3RvcmUKIHN0YXRpYyBXYWxs
VGltZSB0b1N5c3RlbUNsb2NrVGltZShOU0RhdGUgKmRhdGUpCiB7CiAgICAgQVNTRVJUKGRhdGUp
OwotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZGF0ZS50aW1lSW50ZXJ2YWxT
aW5jZTE5NzApOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKGRhdGUudGltZUludGVydmFs
U2luY2UxOTcwKSk7CiB9CiAKIC0gKHZvaWQpZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KE5TU2V0
ICopZGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PFdLV2Vic2l0
ZURhdGFSZWNvcmQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KaW5kZXgg
NmIyOTlmOGVjNGI2OThlYTAwNjE3NDc3MGZkNTNlMjQ3OWRhMTc4Zi4uN2Q0MTYzZTIxMTE2ZTNm
Y2Q2MzQ4OTE4NjY3ZWUwMGY2NDhiYjAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KQEAgLTE5Nyw3ICsx
OTcsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAg
ICAgICAgIG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllclR5cGU+
KHBhcmVudEZyYW1lLnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSksCiAgICAgICAgIG9yaWdpbmFsVVJM
LAogICAgICAgICBvcmlnaW5hbEhUVFBNZXRob2QsCi0gICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhldmVudFRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApLAorICAgICAgICBX
YWxsVGltZShTZWNvbmRzKGV2ZW50VGltZXN0YW1wLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpLAog
ICAgICAgICBzdGF0aWNfY2FzdDxib29sPihsb2FkZWRGcm9tQ2FjaGUuYm9vbFZhbHVlKSwKICAg
ICAgICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjpUeXBlPih0eXBlLnVu
c2lnbmVkQ2hhclZhbHVlKSwKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNwcAppbmRl
eCBiMmRlNWEyZjAzZWExYWJlOWFhYTI1ZjRjOGE4YTkxOWZkNjIzMjlmLi5iZDljZmYwZWVmZjc1
YmViNGQ0Y2UyOGNjODE2ZTFkNmU1MTc0MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3U2Vzc2lvblN0YXRlLmNw
cApAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkZWNvZGVIVFRQQm9keShH
VmFyaWFudCogaHR0cEJvZHlWYXJpYW50LCBIVFRQQm9keSYgaHR0cEJvZHkpCiAgICAgICAgIGlm
IChoYXNGaWxlTGVuZ3RoKQogICAgICAgICAgICAgZWxlbWVudC5maWxlTGVuZ3RoID0gZmlsZUxl
bmd0aDsKICAgICAgICAgaWYgKGhhc0ZpbGVNb2RpZmljYXRpb25UaW1lKQotICAgICAgICAgICAg
ZWxlbWVudC5leHBlY3RlZEZpbGVNb2RpZmljYXRpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKGZpbGVNb2RpZmljYXRpb25UaW1lKTsKKyAgICAgICAgICAgIGVsZW1lbnQuZXhwZWN0
ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lKFNlY29uZHMoZmlsZU1vZGlmaWNhdGlv
blRpbWUpKTsKICAgICAgICAgZWxlbWVudC5ibG9iVVJMU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRG
OChibG9iVVJMU3RyaW5nKTsKIAogICAgICAgICBodHRwQm9keS5lbGVtZW50cy51bmNoZWNrZWRB
cHBlbmQoV1RGTW92ZShlbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCA0
OGUxZWRlNGJiMWQ1NzNlMjk0MjY0MTk3OTliMDJjNGRhZmMwZDNhLi5mODM0OGJhNWM3NDIyNjNk
ZWNiZWMyMGUzNWMxZDYxNTNmOTEyMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKQEAg
LTExNTIsNyArMTE1Miw3IEBAIHZvaWQgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2NsZWFy
KFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciogbWFuYWdlciwgV2ViS2l0CiB7CiAgICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCU0lURV9EQVRBX01BTkFHRVIobWFuYWdlcikpOwogCi0g
ICAgV2FsbFRpbWUgdGltZVBvaW50ID0gdGltZVNwYW4gPyBXYWxsVGltZTo6bm93KCkgLSBTZWNv
bmRzOjpmcm9tTWljcm9zZWNvbmRzKHRpbWVTcGFuKSA6IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cygwKTsKKyAgICBXYWxsVGltZSB0aW1lUG9pbnQgPSB0aW1lU3BhbiA/IFdhbGxUaW1lOjpub3co
KSAtIFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHModGltZVNwYW4pIDogV2FsbFRpbWUoKTsKICAg
ICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcobWFuYWdlciwgY2Fu
Y2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYnNp
dGVEYXRhU3RvcmUtPnJlbW92ZURhdGEodG9XZWJzaXRlRGF0YVR5cGVzKHR5cGVzKSwgdGltZVBv
aW50LCBbdGFzayA9IFdURk1vdmUodGFzayldIHsKICAgICAgICAgZ190YXNrX3JldHVybl9ib29s
ZWFuKHRhc2suZ2V0KCksIFRSVUUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwCmluZGV4IGY2MjQzNmQ3Mzg1ZDZlYWRhMTg1NDky
NGU4NGFhMTg1NWJmYjVhYWQuLmIyMTIwOTU3MTk5YzU2NDU5NzhjZjI4MGRhNzQwYzUwYTM0OTli
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0
U3RvcmFnZS5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlSWRI
YXNoU2FsdFN0b3JhZ2U6Okhhc2hTYWx0Rm9yT3JpZ2luPiBEZXZpY2VJZEhhc2hTYWx0U3Rvcgog
CiAgICAgYXV0byBoYXNoU2FsdEZvck9yaWdpbiA9IG1ha2VVbmlxdWU8SGFzaFNhbHRGb3JPcmln
aW4+KFdURk1vdmUoc2VjdXJpdHlPcmlnaW5EYXRhLnZhbHVlKCkpLCBXVEZNb3ZlKHBhcmVudFNl
Y3VyaXR5T3JpZ2luRGF0YS52YWx1ZSgpKSwgV1RGTW92ZShkZXZpY2VJZEhhc2hTYWx0KSk7CiAK
LSAgICBoYXNoU2FsdEZvck9yaWdpbi0+bGFzdFRpbWVVc2VkID0gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKGxhc3RUaW1lVXNlZCk7CisgICAgaGFzaFNhbHRGb3JPcmlnaW4tPmxhc3RUaW1lVXNl
ZCA9IFdhbGxUaW1lKFNlY29uZHMobGFzdFRpbWVVc2VkKSk7CiAKICAgICByZXR1cm4gaGFzaFNh
bHRGb3JPcmlnaW47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0YTIzMmIyYTYxN2ZmYTJlMzRmMjcw
MjBiYjAyMDE4NjQyOTZmZGIyLi4xYzQ4MzA3NDQ3MGNmNWI2ZjU1MDZiMGI4M2UxZWY5MTc3MmE5
YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTY3Myw3ICs2NzMsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBTZWNvbmRzIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3Nh
Z2UoKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtNjkzLDcgKzY5Myw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKHNlc3Npb25JRCwgZG9t
YWluSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFS
ZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0YXRpc3RpY0ZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFdhbGxUaW1lIGxhc3RTZWVuLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpNZXJnZVN0YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklE
LCByZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RT
ZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3Jh
bmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1v
dmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0NDFi
ODZlMTg5YzJjZjE3MjQ0ZDhhZGUzZDdlZDA1ZmY4NzkwMGU2Li43N2E4NWRmZDE3NDc0N2QzZjM1
M2IxYmI3NzZmMDA2YTJhY2QyZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTQ4LDEwICsxNDgsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldExhc3RTZWVuKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Np
b25JRCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICB2b2lkIHN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0Zv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRv
cEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBtZXJn
ZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgVG9wRnJh
bWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlz
R3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVu
c2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5
c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxC
dXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29u
ZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDkw
OTc5M2UzNzU2OGMwNDJiMTAwMmEyNmFhMDI3NDc4NGE5MWU0Y2EuLmFkOTIxZDNmNTNhMmQ5YTYy
NDQxMTEzOWMxNGM5MzI1ZGY5OTcwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xMTc3LDcgKzEx
NzcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRh
YmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvbwogICAgIG5ldHdvcmtQcm9jZXNzKCkuc3Rh
dGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKG1fc2Vzc2lvbklELCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29u
c3QgVVJMJiB1cmwsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRMYXN0U2Vlbihj
b25zdCBVUkwmIHVybCwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgp
IHx8IHVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTEx
ODYsNyArMTE4Niw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3Qg
VVJMJiB1cmwsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhCiAKICAgICBhdXRvIGNhbGxi
YWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIAotICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0TGFzdFNlZW4obV9zZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0sIHNlY29uZHMsIFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRMYXN0U2Vlbiht
X3Nlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB1cmwgfSwgbGFzdFNlZW4s
IFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTExOTYsNyArMTE5Niw3IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5J
RCwgQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgbmV0d29ya1Byb2Nlc3MoKS5kb21haW5JREV4aXN0
c0luRGF0YWJhc2UobV9zZXNzaW9uSUQsIGRvbWFpbklELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0
aW5nKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0
b3BGcmFtZVVybDIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBT
ZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBi
b29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29y
ZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwy
LCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJl
dmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMWRlMjVhNjYwNTdmMmQ2NmM2Mjk5
ZTVlYmJiODE0NmJlZTliODFlMy4uOTNhODc1MmE4MmIzMWUxZDFmMTYyODBmOWIzZGJmOWJjOWMx
YTBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTk3LDEwICsxOTcsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1l
KFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0
U2Vlbihjb25zdCBVUkwmLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoaW50IGRv
bWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHN0YXRp
c3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBV
UkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDIsIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMiwgV2Fs
bFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0
aWNGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bh
c3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRD
b29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVu
bmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3Vz
ZUdlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91
c2VHZXN0dXJlUmVjb2duaXplci5tbQppbmRleCBjNjQxZWE3NTUxZDMwMTFhNjA2N2FhNTdmNWY0
MDQwZDMwNTg1MGFiLi45MDg5ZGM1YjBiNDU3ZWIzMDg5MzJhY2I3MGQ1ZTJmNjkwNzViMDI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNv
Z25pemVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVy
ZVJlY29nbml6ZXIubW0KQEAgLTEyOSw3ICsxMjksNyBAQCAtIChzdGQ6OnVuaXF1ZV9wdHI8V2Vi
S2l0OjpOYXRpdmVXZWJNb3VzZUV2ZW50PiljcmVhdGVNb3VzZUV2ZW50V2l0aFR5cGU6KFdlYktp
dAogICAgIFdlYkNvcmU6OkludFBvaW50IHBvaW50IHsgW3NlbGYgbG9jYXRpb25JblZpZXc6c2Vs
Zi52aWV3XSB9OwogICAgIGF1dG8gZGVsdGEgPSBwb2ludCAtIFdlYkNvcmU6OkludFBvaW50IHsg
W19jdXJyZW50VG91Y2ggcHJldmlvdXNMb2NhdGlvbkluVmlldzpzZWxmLnZpZXddIH07CiAgICAg
Ly8gVUlUb3VjaCdzIHRpbWVzdGFtcCB1c2VzIG1hY2hfYWJzb2x1dGVfdGltZSBhcyBpdHMgdGlt
ZWJhc2UsIHNhbWUgYXMgTW9ub3RvbmljVGltZS4KLSAgICBhdXRvIHRpbWVzdGFtcCA9IE1vbm90
b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKFtfY3VycmVudFRvdWNoIHRpbWVzdGFtcF0pLmFwcHJv
eGltYXRlV2FsbFRpbWUoKTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWUoU2Vj
b25kcyhbX2N1cnJlbnRUb3VjaCB0aW1lc3RhbXBdKSkuYXBwcm94aW1hdGVXYWxsVGltZSgpOwog
ICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8V2ViS2l0OjpOYXRpdmVXZWJNb3VzZUV2ZW50Pih0
eXBlLCBidXR0b24sIGJ1dHRvbnMsIHBvaW50LCBwb2ludCwgZGVsdGEud2lkdGgoKSwgZGVsdGEu
aGVpZ2h0KCksIDAsIFtfY3VycmVudFRvdWNoIHRhcENvdW50XSwgbW9kaWZpZXJzLCB0aW1lc3Rh
bXAsIDAsIGNhbmNlbGxlZCA/IFdlYktpdDo6R2VzdHVyZVdhc0NhbmNlbGxlZDo6WWVzIDogV2Vi
S2l0OjpHZXN0dXJlV2FzQ2FuY2VsbGVkOjpObyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKaW5kZXgg
NjU1Yjk4NTA0NzE2MDUxODdmNmE1OThiMjdmMTU5MmQxZjU1ODcwMC4uNDhlNGE3YzI4YjNmNmE1
YzYyNzYwNjA0ZjgwNGE4OTZlM2VlZjc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKQEAgLTg0MCw3ICs4
NDAsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVGb3JtRGF0YUVsZW1lbnQoSGlzdG9yeUVudHJ5RGF0
YURlY29kZXImIGRlY29kZXIsIEhUVFBCb2R5OjpFbAogICAgICAgICBkb3VibGUgZXhwZWN0ZWRG
aWxlTW9kaWZpY2F0aW9uVGltZTsKICAgICAgICAgZGVjb2RlciA+PiBleHBlY3RlZEZpbGVNb2Rp
ZmljYXRpb25UaW1lOwogICAgICAgICBpZiAoIXN0ZDo6aXNuYW4oZXhwZWN0ZWRGaWxlTW9kaWZp
Y2F0aW9uVGltZSkpCi0gICAgICAgICAgICBmb3JtRGF0YUVsZW1lbnQuZXhwZWN0ZWRGaWxlTW9k
aWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhleHBlY3RlZEZpbGVNb2Rp
ZmljYXRpb25UaW1lKTsKKyAgICAgICAgICAgIGZvcm1EYXRhRWxlbWVudC5leHBlY3RlZEZpbGVN
b2RpZmljYXRpb25UaW1lID0gV2FsbFRpbWUoU2Vjb25kcyhleHBlY3RlZEZpbGVNb2RpZmljYXRp
b25UaW1lKSk7CiAKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcAppbmRleCAyNjc1NDEwMWEwOGJiOTk4ZWE0OTdkMGUxZTI3N2I5N2UyNzY1ZmMxLi4yOWNj
MmJjNWI4YTVjZTBiZjg3NTA4YmViNjNlODk0MDRmZGEwYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcApAQCAtNTY5LDE3ICs1NjksMTcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VGbHVzaFBl
bmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIAogdm9pZCBXS0J1
bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgaW50IGJ1dHRv
biwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9k
aWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+c2ltdWxh
dGVNb3VzZURvd24oYnV0dG9uLCBXZWJLaXQ6OnRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0Nv
dW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CisgICAgV2Vi
S2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgV2ViS2l0Ojp0b0lu
dFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZShTZWNvbmRz
KHRpbWUpKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZVVwKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3Vu
dCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIFdlYktp
dDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCBXZWJLaXQ6OnRvSW50UG9p
bnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh0aW1lKSk7CisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChi
dXR0b24sIFdlYktpdDo6dG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVy
cywgV2FsbFRpbWUoU2Vjb25kcyh0aW1lKSkpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVs
YXRlTW91c2VNb3Rpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLUG9pbnQgcG9zaXRpb24sIGRv
dWJsZSB0aW1lKQogewotICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90
aW9uKFdlYktpdDo6dG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24o
V2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9uKSwgV2FsbFRpbWUoU2Vjb25kcyh0aW1lKSkpOwog
fQogCiB1aW50NjRfdCBXS0J1bmRsZVBhZ2VHZXRSZW5kZXJUcmVlU2l6ZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZVJlZikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwYmFmN2Y3MGZmM2E3YTU5ODJmN2Y0YmE2NWU0MmIwMTI3NGNlNGEyLi5kM2NjMTEx
ZDNiYzZiNjAzMDJkNzIyZWQwZTI1NzI1OGU1NDU4ZWQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMDIg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBgU2Vjb25k
c2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9gV2FsbFRpbWVg
L2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Mzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGltZS5jcHA6CisgICAgICAgIChXVEY6OlRlc3RXZWJL
aXRBUEk6Ond0KToKKyAgICAgICAgKFdURjo6VGVzdFdlYktpdEFQSTo6bXQpOgorICAgICAgICAo
V1RGOjpUZXN0V2ViS2l0QVBJOjphdCk6CisgICAgICAgIChXVEY6OlRlc3RXZWJLaXRBUEk6OmR0
KToKKyAgICAgICAgUmVwbGFjZSBgVDo6ZnJvbVJhd1NlY29uZHMoLi4uKWAgd2l0aCBgVChTZWNv
bmRzKC4uLikpYC4KKwogMjAyMS0xMS0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3Jlc3VsdHNkYnB5XSBNYWtlIFB5dGhvbiAzLjEwIGNvbXBhdGli
bGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGltZS5jcHAKaW5kZXggNTM1YWE1YWU4NDlj
OTFjODliYWVjZGY2MTJlYzQwMzM4ZGFhOTdhMi4uMGY1NTMzN2QyZjVjNWM1MGE1NGJhNzY3MWEy
NDY0MzcxZDIyYTM4OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VGltZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGltZS5jcHAKQEAg
LTc3LDIyICs3NywyMiBAQCBTZWNvbmRzIHMoZG91YmxlIHZhbHVlKQogCiBXYWxsVGltZSB3dChk
b3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1
ZSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHModmFsdWUpKTsKIH0KIAogTW9ub3Rvbmlj
VGltZSBtdChkb3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21S
YXdTZWNvbmRzKHZhbHVlKTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzKHZhbHVl
KSk7CiB9CiAKIEFwcHJveGltYXRlVGltZSBhdChkb3VibGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJu
IEFwcHJveGltYXRlVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgIHJldHVybiBBcHBy
b3hpbWF0ZVRpbWUoU2Vjb25kcyh2YWx1ZSkpOwogfQogCiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGUgZHQoZG91YmxlIHZhbHVlLCBDbG9ja1R5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSwgdHlwZSk7CisgICAgcmV0
dXJuIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShTZWNvbmRzKHZhbHVlKSwgdHlwZSk7CiB9CiAK
IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBkdHcoZG91YmxlIHZhbHVlKQpAQCAtMzk1LDcgKzM5
NSw3IEBAIFRFU1QoV1RGX1RpbWUsIGNsYW1wKQogLy8gdGhleSBpbnZva2VzIGdsb2JhbCBjb25z
dHJ1Y3RvcnMgYW5kIGJlY29tZXMgY29tcGlsZSBlcnJvcnMuCiBzdGF0aWMgY29uc3QgTW9ub3Rv
bmljVGltZSBOYU4gPSBNb25vdG9uaWNUaW1lOjpuYW4oKTsKIHN0YXRpYyBjb25zdCBNb25vdG9u
aWNUaW1lIEluZmluaXR5ID0gTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKTsKLXN0YXRpYyBjb25z
dCBNb25vdG9uaWNUaW1lIFplcm8gPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcygwKTsK
K3N0YXRpYyBjb25zdCBNb25vdG9uaWNUaW1lIFplcm8gPSBNb25vdG9uaWNUaW1lKCk7CiBzdGF0
aWMgY29uc3QgTW9ub3RvbmljVGltZSBPbmUgPSBaZXJvICsgU2Vjb25kcygxKTsKIHN0YXRpYyBj
b25zdCBNb25vdG9uaWNUaW1lIE5lZ2F0aXZlT25lID0gWmVybyAtIFNlY29uZHMoMSk7CiBzdGF0
aWMgY29uc3QgYm9vbCBaZXJvSXNGYWxzZSA9ICEhWmVybzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445874</attachid>
            <date>2021-12-03 11:02:15 -0800</date>
            <delta_ts>2021-12-07 17:29:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233795-20211203120214.patch</filename>
            <type>text/plain</type>
            <size>131603</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjA0ZGVkNmZiNDJiNzhiNmQ1OWU3NTFhODFlN2I0Y2ZjYTU4MWQ2ZC4uYWJiNDEwZTRh
NWE3Zjk1MmE4ODJmMjNkNTM4OTkwYjQxNWQyNTAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDYgQEAKKzIw
MjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBgU2Vjb25kc2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9g
V2FsbFRpbWVgL2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEl0J3MgYWxyZWFkeSB0aGUgY2FzZSB0aGF0IGBNb25vdG9uaWNUaW1lYC9gV2FsbFRp
bWVgL2V0Yy4gdXNlIHNlY29uZHMgYXMgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgdmFsdWUsIHNv
IHdlIHNob3VsZCBqdXN0IHVzZSBgU2Vjb25kc2AgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29udmVy
dCB0by9mcm9tIHRoZXNlCisgICAgICAgIHdyYXBwZXIvUE9ELWVzcXVlIG9iamVjdHMgKGUuZy4g
d2Ugd291bGQgYmUgYWJsZSB0byBkcm9wIGBmcm9tUmF3U2Vjb25kc2AgYW5kIGluc3RlYWQgaGF2
ZSBhCisgICAgICAgIGNvbXBpbGUtdGltZSBndWFyYW50ZWUgdGhhdCB0aGUgZGV2ZWxvcGVyIGtu
b3dzIHRoYXQgdGhlIHVuZGVybHlpbmcgdmFsdWUgcmVwcmVzZW50cyBzZWNvbmRzCisgICAgICAg
IHdoZW4gY3JlYXRpbmcgYSBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuKS4KKworICAg
ICAgICAqIHd0Zi9BcHByb3hpbWF0ZVRpbWUuaDoKKyAgICAgICAgKFdURjo6QXBwcm94aW1hdGVU
aW1lOjpBcHByb3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAg
ICAgIChzdGQ6OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0
Zi9BcHByb3hpbWF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OmR1
bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5jcHA6CisgICAgICAgIChXVEY6
OldhbGxUaW1lOjpub3cpOgorICAgICAgICAoV1RGOjpNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFi
c29sdXRlVGltZSk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6OnRvTWFjaEFic29sdXRl
VGltZSBjb25zdCk6CisgICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6ZnJvbU1hY2hBcHBy
b3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OnRvTWFjaEFwcHJv
eGltYXRlVGltZSBjb25zdCk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Om5vdyk6Cisg
ICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6bm93KToKKyAgICAgICAgKiB3dGYvR2VuZXJp
Y1RpbWVNaXhpbi5oOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjppbmZpbml0eSk6
CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om5hbik6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6
R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNU
aW1lTWl4aW46Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4
aW46Om9wZXJhdG9yJSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I+IGNvbnN0KToK
KyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAg
ICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpHZW5lcmljVGltZU1peGluOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5l
cmljVGltZU1peGluOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpH
ZW5lcmljVGltZU1peGluKToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6ZnJvbVJh
d1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9Nb25vdG9uaWNUaW1lLmg6CisgICAg
ICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Ok1vbm90b25pY1RpbWUpOgorICAgICAgICAoV1RGOjpN
b25vdG9uaWNUaW1lOjpNYXJrYWJsZVRyYWl0czo6aXNFbXB0eVZhbHVlKToKKyAgICAgICAgKHN0
ZDo6aXNuYW4pOgorICAgICAgICAoc3RkOjppc2luZik6CisgICAgICAgIChzdGQ6OmlzZmluaXRl
KToKKyAgICAgICAgKiB3dGYvTW9ub3RvbmljVGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1vbm90
b25pY1RpbWU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9TZWNvbmRzLmNwcDoKKyAgICAg
ICAgKFdURjo6U2Vjb25kczo6b3BlcmF0b3ItIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlLmg6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKToKKyAgICAgICAgKFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUpOiBSZW5hbWVkIGZy
b20gYFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUaW1lOjp3aXRoU2FtZUNsb2NrQW5kUmF3U2Vj
b25kc2AuCisgICAgICAgIChzdGQ6OmlzbmFuKToKKyAgICAgICAgKHN0ZDo6aXNpbmYpOgorICAg
ICAgICAoc3RkOjppc2Zpbml0ZSk6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6ZnJvbVJhd1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9UaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6OndhbGxUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlOjptb25vdG9uaWNUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlOjphcHByb3hpbWF0ZVRpbWUgY29uc3QpOgorICAgICAgICAoV1RGOjpUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6VGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RGOjpU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RG
OjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RG
OjpoYXNFbGFwc2VkKToKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Ok1hcmthYmxlVHJh
aXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAgICAgIChzdGQ6
OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0Zi9XYWxsVGlt
ZS5jcHA6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpkdW1wIGNvbnN0KToKKworICAgICAgICAq
IHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg6CisgICAgICAgIChXVEY6OlBlcnNp
c3RlbmNlOjpDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
UGVyc2lzdGVuY2U6OkNvZGVyPFNlY29uZHM+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgU2Vjb25kc2AgYW5kIGBHZW5l
cmljVGltZU1peGluYCBkZWZpbmUgbWVtYmVyIGBlbmNvZGVgL2BkZWNvZGVgLgorCisgICAgICAg
ICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6dG9X
YWxsVGltZSk6CisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlTW9kaWZpY2F0aW9uVGlt
ZSk6CisgICAgICAgICogd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlQ3JlYXRpb25UaW1lKToKKyAgICAgICAgKiB3dGYvcG9z
aXgvVGhyZWFkaW5nUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRp
bWVkV2FpdCk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6OmZpbGVDcmVhdGlvblRpbWUpOgorICAgICAgICBSZXBsYWNl
IGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorCiAyMDIx
LTEyLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbOmhh
cygpIHBzZXVkby1jbGFzc10gRW5hYmxlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjgzZjkw
OGQ3NGZhMTI0MDY0ZTM5YjA2ZDNmYjUzOTgxOTgwNWQzLi4wOWY1OTJkMjllNTQzOTA5YmY0ODli
NDc2ZjQwYzJkOGU1MzNkZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMTIt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBgU2Vj
b25kc2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9gV2FsbFRp
bWVgL2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEl0J3MgYWxyZWFkeSB0aGUgY2FzZSB0aGF0IGBNb25vdG9uaWNUaW1lYC9gV2FsbFRpbWVgL2V0
Yy4gdXNlIHNlY29uZHMgYXMgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgdmFsdWUsIHNvIHdlIHNo
b3VsZCBqdXN0IHVzZSBgU2Vjb25kc2AgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29udmVydCB0by9m
cm9tIHRoZXNlCisgICAgICAgIHdyYXBwZXIvUE9ELWVzcXVlIG9iamVjdHMgKGUuZy4gd2Ugd291
bGQgYmUgYWJsZSB0byBkcm9wIGBmcm9tUmF3U2Vjb25kc2AgYW5kIGluc3RlYWQgaGF2ZSBhCisg
ICAgICAgIGNvbXBpbGUtdGltZSBndWFyYW50ZWUgdGhhdCB0aGUgZGV2ZWxvcGVyIGtub3dzIHRo
YXQgdGhlIHVuZGVybHlpbmcgdmFsdWUgcmVwcmVzZW50cyBzZWNvbmRzCisgICAgICAgIHdoZW4g
Y3JlYXRpbmcgYSBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuKS4KKworICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
R2FtZXBhZDo6V2ViWFJHYW1lcGFkKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc1ZpZGVvRnJhbWVNZXRhZGF0YVRpbWVzdGFt
cHMpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6CisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vRnJhbWVSYXRlTW9u
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVJhdGVNb25pdG9yOjp1cGRhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFt
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1NlYXJjaFBvcHVwTWVudUNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6dG9TeXN0ZW1DbG9ja1RpbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp0b1N5c3RlbUNsb2NrVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjbGVhck1lZGlh
Q2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OndhbGxUaW1lRm9yRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1Ub3VjaEV2ZW50QnVp
bGRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzApOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VIVFRQRGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJp
Y3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpsYXN0TW9kaWZpZWQg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya0xvYWRNZXRy
aWNzLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGF0ZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvb2tpZUphckRCOjpzZXRDb29raWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ2FjaGVFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRy
eTo6Q3VybENhY2hlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlRW50cnk6OnBh
cnNlUmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgt
W1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9u
RGlkRmluaXNoTG9hZGluZzpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9XaGVlbEV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxF
dmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgIFJlcGxh
Y2UgYFQ6OmZyb21SYXdTZWNvbmRzKC4uLilgIHdpdGggYFQoU2Vjb25kcyguLi4pKWAuCisgICAg
ICAgIERyaXZlLWJ5OiBVc2UgYFdhbGxUaW1lYC9gTW9ub3RvbmljVGltZWAvZXRjLiBpbnN0ZWFk
IG9mIGEgcmF3IGBkb3VibGVgIHdoZXJlIGNvbnZlbmllbnQuCisKIDIwMjEtMTItMDMgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gU2V0IHRoZSBm
aXJzdC9sYXN0IGJveCBmbGFnIG9uIHRoZSAoYmlkaSBmcmFnbWVudGVkKSBpbmxpbmUgYm94IHR5
cGUgb2YgZGlzcGxheSBib3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjZjZjMmZiMmY4OTFlODZkZTIxZTRjMjRh
ZGU5NzBjMzY1MjBjMjZmLi43NjgxOWZiNzliYmQxN2Q3OWQzOWEwN2VmNWNiOTE5M2JhYjVmY2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5
aW5nIHZhbHVlIGZvciBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNh
c2UgdGhhdCBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRo
ZSB1bmRlcmx5aW5nCisgICAgICAgIHZhbHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29u
ZHNgIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3
cmFwcGVyL1BPRC1lc3F1ZSBvYmplY3RzIChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBg
ZnJvbVJhd1NlY29uZHNgIGFuZCBpbnN0ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUg
Z3VhcmFudGVlIHRoYXQgdGhlIGRldmVsb3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZh
bHVlIHJlcHJlc2VudHMgc2Vjb25kcworICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25p
Y1RpbWVgL2BXYWxsVGltZWAvZXRjLikuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1lcmdlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hh
ZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpkb21haW5zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydEV4cGlyZWRT
dGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VVdGlsaXRpZXM6OmJ1aWxkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRGcm9tRGF0YWJhc2UgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNl
dExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpmaWxlVGltZXMpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgt
W1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkRmluaXNoQ29sbGVj
dGluZ01ldHJpY3M6XSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y2xl
YXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6cmVzdW1l
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFN0YXJ0UmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlc3RhcnQpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hh
cmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJJT1NFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViSU9TRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYklPU0V2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
TGFzdFNlZW4pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhclRo
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlQ2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAg
ICAgKHRvU3lzdGVtQ2xvY2tUaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Jlc291cmNlTG9hZEluZm8ubW06CisgICAgICAgICgtW19XS1Jlc291cmNlTG9hZEluZm8gaW5p
dFdpdGhDb2RlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
d1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChkZWNvZGVIVFRQQm9keSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHA6CisgICAgICAg
ICh3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xlYXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRldmljZUlk
SGFzaFNhbHRTdG9yYWdlOjpnZXREYXRhRnJvbURlY29kZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICgtW1dLTW91c2VHZXN0dXJl
UmVjb2duaXplciBjcmVhdGVNb3VzZUV2ZW50V2l0aFR5cGU6d2FzQ2FuY2VsbGVkOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZGVjb2RlRm9ybURhdGFFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRs
ZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAg
ICAgIFJlcGxhY2UgYFQ6OmZyb21SYXdTZWNvbmRzKC4uLilgIHdpdGggYFQoU2Vjb25kcyguLi4p
KWAuCisgICAgICAgIERyaXZlLWJ5OiBVc2UgYFdhbGxUaW1lYC9gTW9ub3RvbmljVGltZWAvZXRj
LiBpbnN0ZWFkIG9mIGEgcmF3IGBkb3VibGVgIHdoZXJlIGNvbnZlbmllbnQuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1l
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGlt
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIFRoZXNlIGFyZSBub3QgbmVlZGVkIHNpbmNl
IGBHZW5lcmljVGltZU1peGluYCBkZWZpbmVzIG1lbWJlciBgZW5jb2RlYC9gZGVjb2RlYC4KKwog
MjAyMS0xMi0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbIE1vbnRlcmV5IHdrMiBdIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8td2VibS1zdGFsbC5o
dG1sIChsYXlvdXQtdGVzdCkgaXMgYSBjb25zdGFudCB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BcHBy
b3hpbWF0ZVRpbWUuY3BwCmluZGV4IGQxNzllZDVjYTBkNzQxYmIzMmE0ZTI0OTMwZjc3MmMxOGQ0
NWJiOTIuLjE5MDI2MGIxNTVhOGQyMzNlMmQwNjJmNDgyYjdlNGQ0Mzk4NjhlNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvQXBwcm94aW1hdGVUaW1lLmNwcApAQCAtNDQsNyArNDQsOSBAQCBNb25vdG9uaWNUaW1lIEFw
cHJveGltYXRlVGltZTo6YXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3QKIAogdm9pZCBB
cHByb3hpbWF0ZVRpbWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQu
cHJpbnQoIkFwcHJveGltYXRlKCIsIG1fdmFsdWUsICIgc2VjKSIpOworICAgIG91dC5wcmludCgi
QXBwcm94aW1hdGUoIik7CisgICAgc2Vjb25kc1NpbmNlRXBvY2goKS5kdW1wKG91dCk7CisgICAg
b3V0LnByaW50KCIpIik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQXBwcm94aW1hdGVUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0
ZVRpbWUuaAppbmRleCBjYmEzZTBjMDBjODZmYWEyY2M1MmU1YmZlYjY5ZDgxMDIzMzk0YmJlLi42
MTdlMDAwZWFmZDVmOTE3YjMyYTMwN2YwNzkwMjBiZjA3ZTRkMTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hp
bWF0ZVRpbWUuaApAQCAtNDIsNiArNDIsMTEgQEAgcHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhl
IGVwb2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9jaCgpIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4
IC0gQXBwcm94aW1hdGVUaW1lKCkuCiAgICAgY29uc3RleHByIEFwcHJveGltYXRlVGltZSgpID0g
ZGVmYXVsdDsKIAorICAgIGV4cGxpY2l0IGNvbnN0ZXhwciBBcHByb3hpbWF0ZVRpbWUoU2Vjb25k
cyBzZWNvbmRzKQorICAgICAgICA6IEdlbmVyaWNUaW1lTWl4aW48QXBwcm94aW1hdGVUaW1lPihz
ZWNvbmRzKQorICAgIHsKKyAgICB9CisKICNpZiBPUyhEQVJXSU4pCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBBcHByb3hpbWF0ZVRpbWUgZnJvbU1hY2hBcHByb3hpbWF0ZVRpbWUodWlu
dDY0X3QpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1aW50NjRfdCB0b01hY2hBcHByb3hpbWF0
ZVRpbWUoKSBjb25zdDsKQEAgLTU2LDIwICs2MSwxMyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgc3RydWN0IE1h
cmthYmxlVHJhaXRzOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBHZW5lcmljVGltZU1p
eGluPEFwcHJveGltYXRlVGltZT47Ci0gICAgY29uc3RleHByIEFwcHJveGltYXRlVGltZShkb3Vi
bGUgcmF3VmFsdWUpCi0gICAgICAgIDogR2VuZXJpY1RpbWVNaXhpbjxBcHByb3hpbWF0ZVRpbWU+
KHJhd1ZhbHVlKQotICAgIHsKLSAgICB9CiB9Owogc3RhdGljX2Fzc2VydChzaXplb2YoQXBwcm94
aW1hdGVUaW1lKSA9PSBzaXplb2YoZG91YmxlKSk7CiAKIHN0cnVjdCBBcHByb3hpbWF0ZVRpbWU6
Ok1hcmthYmxlVHJhaXRzIHsKICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoQXBwcm94aW1h
dGVUaW1lIHRpbWUpCiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLm1fdmFs
dWUpOworICAgICAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkp
OwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdGV4cHIgQXBwcm94aW1hdGVUaW1lIGVtcHR5VmFs
dWUoKQpAQCAtODQsMTcgKzgyLDE3IEBAIG5hbWVzcGFjZSBzdGQgewogCiBpbmxpbmUgYm9vbCBp
c25hbihXVEY6OkFwcHJveGltYXRlVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzbmFu
KHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc25h
bih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2luZihXVEY6
OkFwcHJveGltYXRlVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vj
b25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc2luZih0aW1lLnNl
Y29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2Zpbml0ZShXVEY6OkFwcHJv
eGltYXRlVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25k
c1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc2Zpbml0ZSh0aW1lLnNl
Y29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBzdGQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRU
aW1lLmNwcAppbmRleCBhYTY4Y2RkYzExYzM3NjA2MzY3YTZhOTM4NTdjOThkNTliYzVhNjQwLi40
OWViNDZlMTZmOTNmNTlmODQ5Y2Q4MWJhYWM3MGMzZjAwZThkNGU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRp
bWUuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgc3RhdGljIGlubGluZSBkb3VibGUgY3VycmVudFRp
bWUoKQogCiBXYWxsVGltZSBXYWxsVGltZTo6bm93KCkKIHsKLSAgICByZXR1cm4gZnJvbVJhd1Nl
Y29uZHMoY3VycmVudFRpbWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoY3VycmVu
dFRpbWUoKSkpOwogfQogCiAjaWYgT1MoREFSV0lOKQpAQCAtMjY4LDQ3ICsyNjgsNDYgQEAgc3Rh
dGljIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QmIG1hY2hUaW1lYmFzZUluZm8oKQogTW9ub3Rv
bmljVGltZSBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZSh1aW50NjRfdCBtYWNo
QWJzb2x1dGVUaW1lKQogewogICAgIGF1dG8mIGluZm8gPSBtYWNoVGltZWJhc2VJbmZvKCk7Ci0g
ICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogaW5mby5udW1lcikg
LyAoMS4wZTkgKiBpbmZvLmRlbm9tKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25k
cygobWFjaEFic29sdXRlVGltZSAqIGluZm8ubnVtZXIpIC8gKDEuMGU5ICogaW5mby5kZW5vbSkp
KTsKIH0KIAogdWludDY0X3QgTW9ub3RvbmljVGltZTo6dG9NYWNoQWJzb2x1dGVUaW1lKCkgY29u
c3QKIHsKICAgICBhdXRvJiBpbmZvID0gbWFjaFRpbWViYXNlSW5mbygpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oKG1fdmFsdWUgKiAxLjBlOSAqIGluZm8uZGVub20pIC8gaW5m
by5udW1lcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pigoc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpICogMS4wZTkgKiBpbmZvLmRlbm9tKSAvIGluZm8ubnVtZXIpOwogfQog
CiBBcHByb3hpbWF0ZVRpbWUgQXBwcm94aW1hdGVUaW1lOjpmcm9tTWFjaEFwcHJveGltYXRlVGlt
ZSh1aW50NjRfdCBtYWNoQXBwcm94aW1hdGVUaW1lKQogewogICAgIGF1dG8mIGluZm8gPSBtYWNo
VGltZWJhc2VJbmZvKCk7Ci0gICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKChtYWNoQXBwcm94aW1h
dGVUaW1lICogaW5mby5udW1lcikgLyAoMS4wZTkgKiBpbmZvLmRlbm9tKSk7CisgICAgcmV0dXJu
IEFwcHJveGltYXRlVGltZShTZWNvbmRzKChtYWNoQXBwcm94aW1hdGVUaW1lICogaW5mby5udW1l
cikgLyAoMS4wZTkgKiBpbmZvLmRlbm9tKSkpOwogfQogCiB1aW50NjRfdCBBcHByb3hpbWF0ZVRp
bWU6OnRvTWFjaEFwcHJveGltYXRlVGltZSgpIGNvbnN0CiB7CiAgICAgYXV0byYgaW5mbyA9IG1h
Y2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KChtX3Zh
bHVlICogMS4wZTkgKiBpbmZvLmRlbm9tKSAvIGluZm8ubnVtZXIpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oKHNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAqIDEuMGU5ICog
aW5mby5kZW5vbSkgLyBpbmZvLm51bWVyKTsKIH0KICNlbmRpZgogCiBNb25vdG9uaWNUaW1lIE1v
bm90b25pY1RpbWU6Om5vdygpCiB7CiAjaWYgVVNFKEdMSUIpCi0gICAgcmV0dXJuIGZyb21SYXdT
ZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oZ19nZXRfbW9ub3RvbmljX3RpbWUoKSAvIDEwMDAw
MDAuMCkpOworICAgIHJldHVybiBNb25vdG9uaWNUaW1lKFNlY29uZHMoc3RhdGljX2Nhc3Q8ZG91
YmxlPihnX2dldF9tb25vdG9uaWNfdGltZSgpIC8gMTAwMDAwMC4wKSkpOwogI2VsaWYgT1MoREFS
V0lOKQogICAgIHJldHVybiBmcm9tTWFjaEFic29sdXRlVGltZShtYWNoX2Fic29sdXRlX3RpbWUo
KSk7CiAjZWxpZiBPUyhGVUNIU0lBKQotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyh6eF9jbG9j
a19nZXRfbW9ub3RvbmljKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KFpYX1NFQygxKSkpOworICAg
IHJldHVybiBNb25vdG9uaWNUaW1lKFNlY29uZHMoenhfY2xvY2tfZ2V0X21vbm90b25pYygpIC8g
c3RhdGljX2Nhc3Q8ZG91YmxlPihaWF9TRUMoMSkpKSk7CiAjZWxpZiBPUyhMSU5VWCkgfHwgT1Mo
RlJFRUJTRCkgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQogICAgIHN0cnVjdCB0aW1lc3Bl
YyB0cyB7IH07CiAgICAgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cyk7Ci0gICAg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRz
LnR2X25zZWMgLyAxLjBlOSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kcyhzdGF0
aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0cy50dl9uc2VjIC8gMS4wZTkpKTsKICNlbHNl
CiAgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZSA9IDA7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1l
Tm93ID0gY3VycmVudFRpbWUoKTsKLSAgICBpZiAoY3VycmVudFRpbWVOb3cgPCBsYXN0VGltZSkK
LSAgICAgICAgcmV0dXJuIGxhc3RUaW1lOwotICAgIGxhc3RUaW1lID0gY3VycmVudFRpbWVOb3c7
Ci0gICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKGN1cnJlbnRUaW1lTm93KTsKKyAgICBpZiAoY3Vy
cmVudFRpbWVOb3cgPj0gbGFzdFRpbWUpCisgICAgICAgIGxhc3RUaW1lID0gY3VycmVudFRpbWVO
b3c7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kcyhsYXN0VGltZSkpOwogI2VuZGlm
CiB9CiAKQEAgLTMxOSwxMyArMzE4LDEzIEBAIEFwcHJveGltYXRlVGltZSBBcHByb3hpbWF0ZVRp
bWU6Om5vdygpCiAjZWxpZiBPUyhMSU5VWCkKICAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgeyB9Owog
ICAgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRSwgJnRzKTsKLSAgICByZXR1
cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZf
bnNlYyAvIDEuMGU5KTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHMoc3RhdGlj
X2Nhc3Q8ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KSk7CiAjZWxpZiBP
UyhGUkVFQlNEKQogICAgIHN0cnVjdCB0aW1lc3BlYyB0cyB7IH07CiAgICAgY2xvY2tfZ2V0dGlt
ZShDTE9DS19NT05PVE9OSUNfRkFTVCwgJnRzKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMo
c3RhdGljX2Nhc3Q8ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KTsKKyAg
ICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPih0cy50
dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KSk7CiAjZWxzZQotICAgIHJldHVybiBBcHByb3hp
bWF0ZVRpbWU6OmZyb21SYXdTZWNvbmRzKE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIEFwcHJveGltYXRlVGltZShNb25vdG9uaWNU
aW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uY3BwCmluZGV4IDY0YmFjNmI2YjcwMDE2MTBiNTNmMmUxZDMwOTI2N2JkNWE0MGY1MzguLmYw
MmI3YzgxYzc2M2Q0NmQ3YTNiYjI0ZDUzNTRiZGM0NmY5ZDJhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
Y3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhaGFzX3Rv
X3RpbWVfdDx0eXBlbmFtZSBGaWxlVGltZVR5cGU6OmNsb2NrPjo6dmFsdWUsIHMKIHN0YXRpYyBX
YWxsVGltZSB0b1dhbGxUaW1lKHN0ZDo6ZmlsZXN5c3RlbTo6ZmlsZV90aW1lX3R5cGUgZmlsZVRp
bWUpCiB7CiAgICAgLy8gRklYTUU6IFVzZSBzdGQ6OmNocm9ubzo6ZmlsZV9jbG9jazo6dG9fc3lz
KCkgb25jZSB3ZSBjYW4gdXNlIEMrKzIwLgotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHModG9UaW1lVChmaWxlVGltZSkpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKHRv
VGltZVQoZmlsZVRpbWUpKSk7CiB9CiAKICNlbmRpZiAvLyBIQVZFKFNURF9GSUxFU1lTVEVNKSB8
fCBIQVZFKFNURF9FWFBFUklNRU5UQUxfRklMRVNZU1RFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0dlbmVyaWNUaW1lTWl4aW4uaCBiL1NvdXJjZS9XVEYvd3RmL0dlbmVyaWNUaW1lTWl4
aW4uaAppbmRleCBhYmJlZTBhZWVkZmMzOGNiNzQ0NGNhMTIwNGE2MzYwMmI2YTQ4NjgwLi4wZWE4
ZTlhMDgyMmUyN2NmN2Q4MGRkYmI3MDM1OTVmMzFiYzk0YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9HZW5lcmljVGltZU1peGluLmgKKysrIGIvU291cmNlL1dURi93dGYvR2VuZXJpY1Rp
bWVNaXhpbi5oCkBAIC0zMyw0MCArMzMsMzMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRGVyaXZlZFRp
bWU+CiBjbGFzcyBHZW5lcmljVGltZU1peGluIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICAvLyBDYWxsIHRoaXMgaWYgeW91IGtub3cgZm9yIHN1cmUgdGhhdCB0
aGUgZG91YmxlIHJlcHJlc2VudHMgdGhlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZQotICAgIC8vIHNh
bWUgdGltZSBzb3VyY2UgYXMgRGVyaXZlZFRpbWUuIEl0IG11c3QgYmUgaW4gc2Vjb25kcy4KLSAg
ICBzdGF0aWMgY29uc3RleHByIERlcml2ZWRUaW1lIGZyb21SYXdTZWNvbmRzKGRvdWJsZSB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBEZXJpdmVkVGltZSh2YWx1ZSk7Ci0gICAgfQorICAg
IHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgaW5maW5pdHkoKSB7IHJldHVybiBEZXJpdmVk
VGltZShTZWNvbmRzOjppbmZpbml0eSgpKTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgRGVyaXZl
ZFRpbWUgbmFuKCkgeyByZXR1cm4gRGVyaXZlZFRpbWUoU2Vjb25kczo6bmFuKCkpOyB9CiAKLSAg
ICBzdGF0aWMgY29uc3RleHByIERlcml2ZWRUaW1lIGluZmluaXR5KCkgeyByZXR1cm4gZnJvbVJh
d1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsgfQotICAg
IHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgbmFuKCkgeyByZXR1cm4gZnJvbVJhd1NlY29u
ZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7IH0KKyAgICBjb25z
dGV4cHIgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25k
czsgfQogCi0gICAgY29uc3RleHByIFNlY29uZHMgc2Vjb25kc1NpbmNlRXBvY2goKSBjb25zdCB7
IHJldHVybiBTZWNvbmRzKG1fdmFsdWUpOyB9Ci0KLSAgICBleHBsaWNpdCBjb25zdGV4cHIgb3Bl
cmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV92YWx1ZTsgfQorICAgIGV4cGxpY2l0IGNv
bnN0ZXhwciBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3NlY29uZHM7IH0KIAog
ICAgIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBvcGVyYXRvcisoU2Vjb25kcyBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhtX3ZhbHVlICsgb3RoZXIudmFs
dWUoKSk7CisgICAgICAgIHJldHVybiBEZXJpdmVkVGltZShtX3NlY29uZHMgKyBvdGhlcik7CiAg
ICAgfQogCiAgICAgY29uc3RleHByIERlcml2ZWRUaW1lIG9wZXJhdG9yLShTZWNvbmRzIG90aGVy
KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKG1fdmFsdWUgLSBv
dGhlci52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIERlcml2ZWRUaW1lKG1fc2Vjb25kcyAtIG90
aGVyKTsKICAgICB9CiAKICAgICBTZWNvbmRzIG9wZXJhdG9yJShTZWNvbmRzIG90aGVyKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHMgeyBmbW9kKG1fdmFsdWUsIG90aGVyLnZh
bHVlKCkpIH07CisgICAgICAgIHJldHVybiBTZWNvbmRzKGZtb2QobV9zZWNvbmRzLnZhbHVlKCks
IG90aGVyLnNlY29uZHMoKSkpOwogICAgIH0KIAogICAgIC8vIFRpbWUgaXMgYSBzY2FsYXIgYW5k
IHNjYWxhcnMgY2FuIGJlIG5lZ2F0ZWQgYXMgdGhpcyBjb3VsZCBhcmlzZSBmcm9tIGFsZ2VicmFp
YwogICAgIC8vIHRyYW5zZm9ybWF0aW9ucy4gU28sIHdlIGFsbG93IGl0LgogICAgIGNvbnN0ZXhw
ciBEZXJpdmVkVGltZSBvcGVyYXRvci0oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZy
b21SYXdTZWNvbmRzKC1tX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIERlcml2ZWRUaW1lKC1tX3Nl
Y29uZHMpOwogICAgIH0KIAogICAgIERlcml2ZWRUaW1lIG9wZXJhdG9yKz0oU2Vjb25kcyBvdGhl
cikKQEAgLTgxLDM3ICs3NCwzNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdGV4cHIgU2Vjb25kcyBv
cGVyYXRvci0oRGVyaXZlZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
U2Vjb25kcyhtX3ZhbHVlIC0gb3RoZXIubV92YWx1ZSk7CisgICAgICAgIHJldHVybiBtX3NlY29u
ZHMgLSBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAgY29uc3RleHByIGJvb2wgb3BlcmF0
b3I9PShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlID09IG90aGVyLm1fdmFsdWU7CisgICAgICAgIHJldHVybiBtX3NlY29uZHMgPT0gb3RoZXIu
bV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oRGVyaXZl
ZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBvdGhl
ci5tX3ZhbHVlOworICAgICAgICByZXR1cm4gbV9zZWNvbmRzICE9IG90aGVyLm1fc2Vjb25kczsK
ICAgICB9CiAKICAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjwoRGVyaXZlZFRpbWUgb3RoZXIp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZSA8IG90aGVyLm1fdmFsdWU7Cisg
ICAgICAgIHJldHVybiBtX3NlY29uZHMgPCBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAg
Y29uc3RleHByIGJvb2wgb3BlcmF0b3I+KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fdmFsdWUgPiBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4g
bV9zZWNvbmRzID4gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPD0oRGVyaXZlZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gbV92YWx1ZSA8PSBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4gbV9zZWNvbmRzIDw9
IG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj49
KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUg
Pj0gb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyA+PSBvdGhlci5tX3Nl
Y29uZHM7CiAgICAgfQogCiAgICAgRGVyaXZlZFRpbWUgaXNvbGF0ZWRDb3B5KCkgY29uc3QKQEAg
LTEyMiwyNyArMTE1LDI3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgog
ICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBl
bmNvZGVyIDw8IG1fdmFsdWU7CisgICAgICAgIGVuY29kZXIgPDwgbV9zZWNvbmRzOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
RGVyaXZlZFRpbWU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSAgICAgICAgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHRpbWU7Ci0gICAgICAgIGRlY29kZXIgPj4gdGltZTsKLSAgICAg
ICAgaWYgKCF0aW1lKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHM7Cisg
ICAgICAgIGRlY29kZXIgPj4gc2Vjb25kczsKKyAgICAgICAgaWYgKCFzZWNvbmRzKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIERlcml2ZWRUaW1lOjpm
cm9tUmF3U2Vjb25kcygqdGltZSk7CisgICAgICAgIHJldHVybiBEZXJpdmVkVGltZSgqc2Vjb25k
cyk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIERlcml2ZWRUaW1l
JiB0aW1lKQogICAgIHsKLSAgICAgICAgZG91YmxlIHZhbHVlOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgU2Vjb25kcyBzZWNvbmRzOworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNlY29uZHMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgICAgIHRpbWUgPSBEZXJpdmVkVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgICAg
ICB0aW1lID0gRGVyaXZlZFRpbWUoc2Vjb25kcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtMTUwLDEyICsxNDMsMTMgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgaXMgdGhl
IGVwb2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9jaCgpIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4
IC0gRGVyaXZlZFRpbWUoKS4KICAgICBjb25zdGV4cHIgR2VuZXJpY1RpbWVNaXhpbigpID0gZGVm
YXVsdDsKIAotICAgIGNvbnN0ZXhwciBHZW5lcmljVGltZU1peGluKGRvdWJsZSByYXdWYWx1ZSkK
LSAgICAgICAgOiBtX3ZhbHVlKHJhd1ZhbHVlKQorICAgIGV4cGxpY2l0IGNvbnN0ZXhwciBHZW5l
cmljVGltZU1peGluKFNlY29uZHMgc2Vjb25kcykKKyAgICAgICAgOiBtX3NlY29uZHMoc2Vjb25k
cykKICAgICB7CiAgICAgfQogCi0gICAgZG91YmxlIG1fdmFsdWUgeyAwIH07Citwcml2YXRlOgor
ICAgIFNlY29uZHMgbV9zZWNvbmRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01v
bm90b25pY1RpbWUuY3BwCmluZGV4IDQ3YzUwNDZjYWIyMzJiNmM5MmVhYzI1MWEzNDJhOWYyYTk0
Y2Q0Y2QuLjUxNmFkMjRiOGMxZjUxM2QyYjk1ZjM0MjE0MTlhMWJjOWE2N2EyNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L01vbm90b25pY1RpbWUuY3BwCkBAIC0zOCw3ICszOCw5IEBAIFdhbGxUaW1lIE1vbm90b25pY1Rp
bWU6OmFwcHJveGltYXRlV2FsbFRpbWUoKSBjb25zdAogCiB2b2lkIE1vbm90b25pY1RpbWU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoIk1vbm90b25pYygi
LCBtX3ZhbHVlLCAiIHNlYykiKTsKKyAgICBvdXQucHJpbnQoIk1vbm90b25pYygiKTsKKyAgICBz
ZWNvbmRzU2luY2VFcG9jaCgpLmR1bXAob3V0KTsKKyAgICBvdXQucHJpbnQoIikiKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNU
aW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKaW5kZXggZmUyYTdhYWU5MWMw
ZTU4YmRhZGVjNjIyNjY0NWNmYWFlMjg2ZWVjZi4uYTdmNTU4YmZhYWUyOTJiNDMwMjQwMmY4OGY0
ZDNlZjU3NjI0N2UyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaApAQCAtNDQsNiArNDQsMTEgQEAg
cHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhlIGVwb2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9j
aCgpIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4IC0gTW9ub3RvbmljVGltZSgpLgogICAgIGNvbnN0
ZXhwciBNb25vdG9uaWNUaW1lKCkgPSBkZWZhdWx0OwogCisgICAgZXhwbGljaXQgY29uc3RleHBy
IE1vbm90b25pY1RpbWUoU2Vjb25kcyBzZWNvbmRzKQorICAgICAgICA6IEdlbmVyaWNUaW1lTWl4
aW48TW9ub3RvbmljVGltZT4oc2Vjb25kcykKKyAgICB7CisgICAgfQorCiAjaWYgT1MoREFSV0lO
KQogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgTW9ub3RvbmljVGltZSBmcm9tTWFjaEFi
c29sdXRlVGltZSh1aW50NjRfdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVpbnQ2NF90IHRv
TWFjaEFic29sdXRlVGltZSgpIGNvbnN0OwpAQCAtNTcsMjAgKzYyLDEzIEBAIHB1YmxpYzoKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAg
ICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEdl
bmVyaWNUaW1lTWl4aW48TW9ub3RvbmljVGltZT47Ci0gICAgY29uc3RleHByIE1vbm90b25pY1Rp
bWUoZG91YmxlIHJhd1ZhbHVlKQotICAgICAgICA6IEdlbmVyaWNUaW1lTWl4aW48TW9ub3Rvbmlj
VGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihN
b25vdG9uaWNUaW1lKSA9PSBzaXplb2YoZG91YmxlKSk7CiAKIHN0cnVjdCBNb25vdG9uaWNUaW1l
OjpNYXJrYWJsZVRyYWl0cyB7CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKE1vbm90b25p
Y1RpbWUgdGltZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUubV92YWx1
ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7
CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBNb25vdG9uaWNUaW1lIGVtcHR5VmFsdWUo
KQpAQCAtODUsMTcgKzgzLDE3IEBAIG5hbWVzcGFjZSBzdGQgewogCiBpbmxpbmUgYm9vbCBpc25h
bihXVEY6Ok1vbm90b25pY1RpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjppc25hbih0aW1l
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGlt
ZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogaW5saW5lIGJvb2wgaXNpbmYoV1RGOjpNb25v
dG9uaWNUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1Np
bmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBib29sIGlzZmluaXRlKFdURjo6TW9ub3RvbmljVGlt
ZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBzdGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1NlY29uZHMuY3BwIGIvU291cmNlL1dURi93dGYvU2Vjb25kcy5jcHAKaW5kZXggZjlm
MmYxYmM0ZDgwMzE1Mjc4ZWY3YzcwMjNlZWIyMGEwOGNkOWQ4MS4uNzQzZmU1OGZkNDFhY2JmNGQ1
MGIwNTk5ZjhjZmZiZmViNjBhODIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2Vjb25k
cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU2Vjb25kcy5jcHAKQEAgLTU5LDIyICs1OSwyMiBA
QCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgU2Vjb25kczo6b3BlcmF0b3IrKGNvbnN0IFRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSYgb3RoZQogCiBXYWxsVGltZSBTZWNvbmRzOjpvcGVyYXRvci0o
V2FsbFRpbWUgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICBy
ZXR1cm4gV2FsbFRpbWUoKnRoaXMgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAog
TW9ub3RvbmljVGltZSBTZWNvbmRzOjpvcGVyYXRvci0oTW9ub3RvbmljVGltZSBvdGhlcikgY29u
c3QKIHsKLSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUoKSAt
IG90aGVyLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIE1vbm90b25p
Y1RpbWUoKnRoaXMgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogQXBwcm94aW1h
dGVUaW1lIFNlY29uZHM6Om9wZXJhdG9yLShBcHByb3hpbWF0ZVRpbWUgb3RoZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIEFwcHJveGltYXRlVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUoKSAtIG90
aGVyLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIEFwcHJveGltYXRl
VGltZSgqdGhpcyAtIG90aGVyLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBUaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUgU2Vjb25kczo6b3BlcmF0b3ItKGNvbnN0IFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG90aGVyLndpdGhTYW1lQ2xvY2tB
bmRSYXdTZWNvbmRzKHZhbHVlKCkgLSBvdGhlci5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
OworICAgIHJldHVybiBvdGhlci53aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUoKnRoaXMgLSBv
dGhlci5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogdm9pZCBTZWNvbmRzOjpkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuY3BwIGIvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlLmNwcAppbmRleCBlMjg1YTNhMTRiMjgyYzEwZGNlNzdjNjdkMDM2ZDFjMGRkNDA5N2FlLi45
ZjFiNjM1MmQ5NWJiZDkxM2YyOTkzYzA0ZjRlNTYwYjY2NTBiZGZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5jcHAKQEAgLTU1LDE5ICs1NSwxOSBAQCBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpub3dXaXRoU2Ft
ZUNsb2NrKCkgY29uc3QKIFdhbGxUaW1lIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6d2FsbFRp
bWUoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZSA9PSBDbG9ja1R5cGU6Oldh
bGwpOwotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobV92YWx1ZSk7CisgICAg
cmV0dXJuIFdhbGxUaW1lKG1fc2Vjb25kcyk7CiB9CiAKIE1vbm90b25pY1RpbWUgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjptb25vdG9uaWNUaW1lKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChtX3R5cGUgPT0gQ2xvY2tUeXBlOjpNb25vdG9uaWMpOwotICAgIHJldHVybiBNb25vdG9u
aWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX3ZhbHVlKTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGlt
ZShtX3NlY29uZHMpOwogfQogCiBBcHByb3hpbWF0ZVRpbWUgVGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlOjphcHByb3hpbWF0ZVRpbWUoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlw
ZSA9PSBDbG9ja1R5cGU6OkFwcHJveGltYXRlKTsKLSAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhtX3ZhbHVlKTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKG1f
c2Vjb25kcyk7CiB9CiAKIFdhbGxUaW1lIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6YXBwcm94
aW1hdGVXYWxsVGltZSgpIGNvbnN0CkBAIC0xMDEsMzYgKzEwMSwzOSBAQCBNb25vdG9uaWNUaW1l
IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6YXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29u
c3QKIFNlY29uZHMgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvci0oY29uc3QgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4gU2Vjb25kcyhtX3ZhbHVlIC0g
b3RoZXIubV92YWx1ZSk7CisgICAgcmV0dXJuIG1fc2Vjb25kcyAtIG90aGVyLm1fc2Vjb25kczsK
IH0KIAogYm9vbCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPChjb25zdCBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJU
KG1fdHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJldHVybiBtX3ZhbHVlIDwgb3RoZXIubV92
YWx1ZTsKKyAgICByZXR1cm4gbV9zZWNvbmRzIDwgb3RoZXIubV9zZWNvbmRzOwogfQogCiBib29s
IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I+KGNvbnN0IFRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09
IG90aGVyLm1fdHlwZSk7Ci0gICAgcmV0dXJuIG1fdmFsdWUgPiBvdGhlci5tX3ZhbHVlOworICAg
IHJldHVybiBtX3NlY29uZHMgPiBvdGhlci5tX3NlY29uZHM7CiB9CiAKIGJvb2wgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcjw9KGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZSYgb3RoZXIpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IG90aGVyLm1f
dHlwZSk7Ci0gICAgcmV0dXJuIG1fdmFsdWUgPD0gb3RoZXIubV92YWx1ZTsKKyAgICByZXR1cm4g
bV9zZWNvbmRzIDw9IG90aGVyLm1fc2Vjb25kczsKIH0KIAogYm9vbCBUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGU6Om9wZXJhdG9yPj0oY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhl
cikgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsK
LSAgICByZXR1cm4gbV92YWx1ZSA+PSBvdGhlci5tX3ZhbHVlOworICAgIHJldHVybiBtX3NlY29u
ZHMgPj0gb3RoZXIubV9zZWNvbmRzOwogfQogCiB2b2lkIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludChtX3R5cGUs
ICIoIiwgbV92YWx1ZSwgIiBzZWMpIik7CisgICAgb3V0LnByaW50KG1fdHlwZSk7CisgICAgb3V0
LnByaW50KCIoIik7CisgICAgbV9zZWNvbmRzLmR1bXAob3V0KTsKKyAgICBvdXQucHJpbnQoIiki
KTsKIH0KIAogdm9pZCBzbGVlcChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWUp
CkBAIC0xNDQsNyArMTQ3LDcgQEAgdm9pZCBzbGVlcChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUmIHRpbWUpCiBib29sIGhhc0VsYXBzZWQoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlJiB0aW1lKQogewogICAgIC8vIEF2b2lkIGRvaW5nIG5vdygpLgotICAgIGlmICghKHRpbWUg
PiB0aW1lLndpdGhTYW1lQ2xvY2tBbmRSYXdTZWNvbmRzKDApKSkKKyAgICBpZiAoISh0aW1lID4g
dGltZS53aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUoMF9zKSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUuaAppbmRleCA0YzNlNDFlNzliYWRiNjhkYjI3OGJlZDYxY2VkMTE1NmU4MDgyMWM5
Li5jMzZkYjdjZDBhMjAyYzdiYzQ5Njg2ZTBkZWE3NmVmYTI1OTNkNTUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaApAQCAtMzgsNDMgKzM4LDM4IEBAIGNsYXNz
IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKCkgeyB9CisKKyAg
ICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoU2Vjb25kcyBzZWNvbmRzLCBDbG9ja1R5cGUgdHlw
ZSkKKyAgICAgICAgOiBtX3NlY29uZHMoc2Vjb25kcykKKyAgICAgICAgLCBtX3R5cGUodHlwZSkK
KyAgICB7CisgICAgfQogICAgIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGlt
ZSB0aW1lKQotICAgICAgICA6IG1fdmFsdWUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVl
KCkpCi0gICAgICAgICwgbV90eXBlKENsb2NrVHlwZTo6V2FsbCkKKyAgICAgICAgOiBUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLCBDbG9ja1R5cGU6Oldh
bGwpCiAgICAgewogICAgIH0KICAgICAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoTW9u
b3RvbmljVGltZSB0aW1lKQotICAgICAgICA6IG1fdmFsdWUodGltZS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCkpCi0gICAgICAgICwgbV90eXBlKENsb2NrVHlwZTo6TW9ub3RvbmljKQorICAg
ICAgICA6IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCks
IENsb2NrVHlwZTo6TW9ub3RvbmljKQogICAgIHsKICAgICB9CiAKICAgICBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUoQXBwcm94aW1hdGVUaW1lIHRpbWUpCi0gICAgICAgIDogbV92YWx1ZSh0aW1l
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkKLSAgICAgICAgLCBtX3R5cGUoQ2xvY2tUeXBl
OjpBcHByb3hpbWF0ZSkKKyAgICAgICAgOiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUodGltZS5z
ZWNvbmRzU2luY2VFcG9jaCgpLCBDbG9ja1R5cGU6OkFwcHJveGltYXRlKQogICAgIHsKICAgICB9
Ci0KLSAgICBzdGF0aWMgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGZyb21SYXdTZWNvbmRzKGRv
dWJsZSB2YWx1ZSwgQ2xvY2tUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUgcmVzdWx0OwotICAgICAgICByZXN1bHQubV92YWx1ZSA9IHZhbHVlOwotICAg
ICAgICByZXN1bHQubV90eXBlID0gdHlwZTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9
CiAgICAgCi0gICAgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIFNl
Y29uZHMobV92YWx1ZSk7IH0KKyAgICBTZWNvbmRzIHNlY29uZHNTaW5jZUVwb2NoKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWNvbmRzOyB9CiAgICAgQ2xvY2tUeXBlIGNsb2NrVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlIG5vdyhDbG9ja1R5cGUpOwogICAgIAogICAgIFdURl9FWFBP
UlRfUFJJVkFURSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgbm93V2l0aFNhbWVDbG9jaygpIGNv
bnN0OwogICAgIAotICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB3aXRoU2FtZUNsb2NrQW5k
UmF3U2Vjb25kcyhkb3VibGUgdmFsdWUpIGNvbnN0CisgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlIHdpdGhTZWNvbmRzRm9yU2FtZUNsb2NrVHlwZShTZWNvbmRzIHNlY29uZHMpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpmcm9tUmF3U2Vj
b25kcyh2YWx1ZSwgY2xvY2tUeXBlKCkpOworICAgICAgICByZXR1cm4gVGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlKHNlY29uZHMsIGNsb2NrVHlwZSgpKTsKICAgICB9CiAgICAgCiAgICAgLy8gQXNz
ZXJ0cyB0aGF0IHRoZSB0aW1lIGlzIG9mIHRoZSB0eXBlIHlvdSB3YW50LgpAQCAtODUsMjMgKzgw
LDIzIEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgV2FsbFRpbWUgYXBwcm94aW1h
dGVXYWxsVGltZSgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBNb25vdG9uaWNUaW1l
IGFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0OwogICAgIAotICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fdmFsdWU7IH0KKyAgICBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3NlY29uZHM7IH0KICAgICAKICAgICBU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3IrKFNlY29uZHMgb3RoZXIpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMobV92YWx1ZSAr
IG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gd2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tU
eXBlKG1fc2Vjb25kcyArIG90aGVyKTsKICAgICB9CiAgICAgCiAgICAgVGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlIG9wZXJhdG9yLShTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIHdpdGhTYW1lQ2xvY2tBbmRSYXdTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci52YWx1ZSgp
KTsKKyAgICAgICAgcmV0dXJuIHdpdGhTZWNvbmRzRm9yU2FtZUNsb2NrVHlwZShtX3NlY29uZHMg
LSBvdGhlcik7CiAgICAgfQogICAgIAogICAgIC8vIFRpbWUgaXMgYSBzY2FsYXIgYW5kIHNjYWxh
cnMgY2FuIGJlIG5lZ2F0ZWQgYXMgdGhpcyBjb3VsZCBhcmlzZSBmcm9tIGFsZ2VicmFpYwogICAg
IC8vIHRyYW5zZm9ybWF0aW9ucy4gU28sIHdlIGFsbG93IGl0LgogICAgIFRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSBvcGVyYXRvci0oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHdpdGhT
YW1lQ2xvY2tBbmRSYXdTZWNvbmRzKC1tX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHdpdGhTZWNv
bmRzRm9yU2FtZUNsb2NrVHlwZSgtbV9zZWNvbmRzKTsKICAgICB9CiAgICAgCiAgICAgVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIG9wZXJhdG9yKz0oU2Vjb25kcyBvdGhlcikKQEAgLTExOCw3ICsx
MTMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92
YWx1ZSA9PSBvdGhlci5tX3ZhbHVlCisgICAgICAgIHJldHVybiBtX3NlY29uZHMgPT0gb3RoZXIu
bV9zZWNvbmRzCiAgICAgICAgICAgICAmJiBtX3R5cGUgPT0gb3RoZXIubV90eXBlOwogICAgIH0K
ICAgICAKQEAgLTEzNiw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBkb3Vi
bGUgbV92YWx1ZSB7IDAgfTsKKyAgICBTZWNvbmRzIG1fc2Vjb25kczsKICAgICBDbG9ja1R5cGUg
bV90eXBlIHsgQ2xvY2tUeXBlOjpXYWxsIH07CiB9OwogCkBAIC0xNTAsMTcgKzE0NSwxNyBAQCBu
YW1lc3BhY2Ugc3RkIHsKIAogaW5saW5lIGJvb2wgaXNuYW4oV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2lu
Y2VFcG9jaCgpKTsKIH0KIAogaW5saW5lIGJvb2wgaXNpbmYoV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjppc2luZih0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2lu
Y2VFcG9jaCgpKTsKIH0KIAogaW5saW5lIGJvb2wgaXNmaW5pdGUoV1RGOjpUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjppc2Zpbml0ZSh0aW1lLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6aXNmaW5pdGUodGltZS5z
ZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ugc3RkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5j
cHAKaW5kZXggZDMxNWY5NTRjMzQxZWM5NWExZTE5NDFhMWVmMzgwNjNkZTlhMzExMi4uNDQzNjZk
ZDZlMDA1YzE2OGYzNjhlNTBiYjcyNmM2MGU5NzZiOWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV2FsbFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcApAQCAt
MzgsNyArMzgsOSBAQCBNb25vdG9uaWNUaW1lIFdhbGxUaW1lOjphcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSBjb25zdAogCiB2b2lkIFdhbGxUaW1lOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0CiB7Ci0gICAgb3V0LnByaW50KCJXYWxsKCIsIG1fdmFsdWUsICIgc2VjKSIpOworICAgIG91
dC5wcmludCgiV2FsbCgiKTsKKyAgICBzZWNvbmRzU2luY2VFcG9jaCgpLmR1bXAob3V0KTsKKyAg
ICBvdXQucHJpbnQoIikiKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oIGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAppbmRl
eCA0ZDRhZjlkYjliMDEwZTQ4MTFhOTliMTcxNWYzMTU1YTk4ZTliYWMzLi5hOWJiNjQ5NGJiNmM2
OWM0OGQ1M2Q3NTE4N2YzZmZmZmFlODIxOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9X
YWxsVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKQEAgLTQ1LDYgKzQ1LDEx
IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1NpbmNl
RXBvY2goKSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeCAtIFdhbGxUaW1lKCkuCiAgICAgY29uc3Rl
eHByIFdhbGxUaW1lKCkgPSBkZWZhdWx0OwogCisgICAgZXhwbGljaXQgY29uc3RleHByIFdhbGxU
aW1lKFNlY29uZHMgc2Vjb25kcykKKyAgICAgICAgOiBHZW5lcmljVGltZU1peGluPFdhbGxUaW1l
PihzZWNvbmRzKQorICAgIHsKKyAgICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFdhbGxUaW1lIG5vdygpOwogICAgIAogICAgIFdhbGxUaW1lIGFwcHJveGltYXRlV2FsbFRpbWUo
KSBjb25zdCB7IHJldHVybiAqdGhpczsgfQpAQCAtNTMsMjAgKzU4LDEzIEBAIHB1YmxpYzoKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAg
CiAgICAgc3RydWN0IE1hcmthYmxlVHJhaXRzOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFz
cyBHZW5lcmljVGltZU1peGluPFdhbGxUaW1lPjsKLSAgICBjb25zdGV4cHIgV2FsbFRpbWUoZG91
YmxlIHJhd1ZhbHVlKQotICAgICAgICA6IEdlbmVyaWNUaW1lTWl4aW48V2FsbFRpbWU+KHJhd1Zh
bHVlKQotICAgIHsKLSAgICB9CiB9Owogc3RhdGljX2Fzc2VydChzaXplb2YoV2FsbFRpbWUpID09
IHNpemVvZihkb3VibGUpKTsKIAogc3RydWN0IFdhbGxUaW1lOjpNYXJrYWJsZVRyYWl0cyB7CiAg
ICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKFdhbGxUaW1lIHRpbWUpCiAgICAgewotICAgICAg
ICByZXR1cm4gc3RkOjppc25hbih0aW1lLm1fdmFsdWUpOworICAgICAgICByZXR1cm4gc3RkOjpp
c25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25z
dGV4cHIgV2FsbFRpbWUgZW1wdHlWYWx1ZSgpCkBAIC04MywxNyArODEsMTcgQEAgbmFtZXNwYWNl
IHN0ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6V2FsbFRpbWUgdGltZSkKIHsKLSAgICBy
ZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAg
cmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogaW5saW5l
IGJvb2wgaXNpbmYoV1RGOjpXYWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzaW5m
KHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc2lu
Zih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2Zpbml0ZShX
VEY6OldhbGxUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNmaW5pdGUodGltZS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6OmlzZmluaXRlKHRpbWUu
c2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIHN0ZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oIGIvU291cmNl
L1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCmluZGV4IDI2MDhlNzFlYjM4
N2ZlNmM2OGYwZDRlYzY5MTkwNDU1ZWQxMTgwYTIuLjUyMWMxNDAzNGQwMDE5OTIxMjQyOGUzYWU1
ZGNhYThjZGM5YjlkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1Bl
cnNpc3RlbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0
ZW50Q29kZXJzLmgKQEAgLTMxLDkgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KLSNpbmNsdWRl
IDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERlY29kZXIu
aD4KICNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KIApAQCAt
MjU1LDM5ICsyNTMsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IENvZGVyPAogICAgIH0KIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IENvZGVyPFNlY29uZHM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Vjb25kcyYgc2Vjb25kcykKLSAgICB7Ci0gICAgICAg
IGVuY29kZXIgPDwgc2Vjb25kcy52YWx1ZSgpOwotICAgIH0KLQotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsKLSAgICAgICAg
c3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbHVlOwotICAgICAgICBkZWNvZGVyID4+IHZhbHVlOwot
ICAgICAgICBpZiAoIXZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICAgICAgcmV0dXJuIFNlY29uZHMoKnZhbHVlKTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2RlcjxXYWxsVGltZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXYWxsVGltZSYgdGltZSkKLSAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
dGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotICAgIHsKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbHVlOwotICAgICAgICBkZWNvZGVyID4+IHZh
bHVlOwotICAgICAgICBpZiAoIXZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp2YWx1ZSk7Ci0g
ICAgfQotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29kZXI8QXRvbVN0cmluZz4gewogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IEF0b21T
dHJpbmcmKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXRv
bVN0cmluZz4gZGVjb2RlKERlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bs
YXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlvbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5
c3RhdGlvbi9GaWxlU3lzdGVtUGxheVN0YXRpb24uY3BwCmluZGV4IGI4ODBlYjc3ZGIwYjllNTE3
M2ZkNTEzZTk3MDBhMDE0YmI3NjRlZTEuLmQ3YTZmNDZmNzdjMTAyNDY4OWFiYjc2NDc3MjdjM2Yy
NmVjMmZjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0
ZW1QbGF5U3RhdGlvbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vRmlsZVN5
c3RlbVBsYXlTdGF0aW9uLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIHN0ZDo6b3B0aW9uYWw8V2Fs
bFRpbWU+IGZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBpZiAo
c3RhdChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGZpbGVJbmZvLnN0X210
aW1lKTsKKyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhmaWxlSW5mby5zdF9tdGltZSkpOwog
fQogCiBib29sIHVwZGF0ZUZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGYxMjEyNTM4NzYz
NDUzNTQxOTI0M2Q4MWVjNmM0ZmYwYjFiZjAzYjIuLjA1MWU1ZTU1ZTBhNmE3Y2EwYjE4OTFiMjUx
MDljNmRlOTdiYTRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0
ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cApAQCAtMTgzLDcgKzE4Myw3IEBAIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IGZpbGVDcmVhdGlv
blRpbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIGlmIChzdGF0KGZzUmVwLmRhdGEoKSwgJmZp
bGVJbmZvKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1lKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kcyhmaWxlSW5mby5zdF9iaXJ0aHRpbWUpKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKHBhdGgpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9UaHJlYWRpbmdQT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9UaHJlYWRpbmdQT1NJWC5jcHAKaW5kZXggZDkyNDQ5MGQxYjU3ZjNlZTA2ZWU1ZWFkOGEy
ZDNjMTFjMjBjYjVkMS4uNTM1ZDA4ZDM5OGUzNTEyNGNkZjc1YmVmZjkzMmQzOTg3MjEyMjI2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcApAQCAtNjIyLDcgKzYyMiw3
IEBAIGJvb2wgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoTXV0ZXgmIG11dGV4LCBXYWxsVGlt
ZSBhYnNvbHV0ZVRpbWUpCiAgICAgaWYgKGFic29sdXRlVGltZSA8IFdhbGxUaW1lOjpub3coKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGFic29sdXRlVGltZSA+IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhJTlRfTUFYKSkgeworICAgIGlmIChhYnNvbHV0ZVRpbWUgPiBXYWxs
VGltZShTZWNvbmRzKElOVF9NQVgpKSkgewogICAgICAgICB3YWl0KG11dGV4KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4
IDJiYzhmMjAxMDUxYzdkODViMTdiNDRhYzI3MzhkMmVkMDFmMmQ5NGEuLjU3MDE2OWNhZTFiNDQ4
MmQxMGE2MDE3M2FiYjhhOWY3OGNmYzYzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dp
bi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdp
bi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBmaWxlQ3Jl
YXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIAogICAgIHRpbWVfdCB0aW1lID0gMDsKICAg
ICBmaWxlQ3JlYXRpb25UaW1lRnJvbUZpbmREYXRhKGZpbmREYXRhLCB0aW1lKTsKLSAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpOworICAgIHJldHVybiBXYWxsVGltZShT
ZWNvbmRzKHRpbWUpKTsKIH0KIAogI2lmICFVU0UoQ0YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHAKaW5kZXggNTI4NjgxMDg5ZTVhM2M1ZDFiMmNhOTQ1
NGNjMjM1NGY1YjA2MjU1OS4uNDUwY2M0Mzc0ZTZlZjk3YzNlNTBkZDI3ZmVmOWYwYjQyNTAzYmY5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkdhbWVwYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNwcApA
QCAtNDIsOCArNDIsOCBAQCBjb25zdGV4cHIgaW50IERlZmF1bHRYUkdhbWVwYWRJZCA9IC0xOwog
V2ViWFJHYW1lcGFkOjpXZWJYUkdhbWVwYWQoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGNvbm5l
Y3RUaW1lLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6SW5wdXRTb3VyY2Um
IHNvdXJjZSkKICAgICA6IFBsYXRmb3JtR2FtZXBhZChEZWZhdWx0WFJHYW1lcGFkSWQpCiB7Ci0g
ICAgbV9sYXN0VXBkYXRlVGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHModGltZXN0YW1wKS52YWx1ZSgpKTsKLSAgICBtX2Nvbm5lY3RU
aW1lID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcyhjb25uZWN0VGltZSkudmFsdWUoKSk7CisgICAgbV9sYXN0VXBkYXRlVGltZSA9IE1vbm90
b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lc3RhbXApKTsKKyAgICBtX2Nv
bm5lY3RUaW1lID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGNvbm5l
Y3RUaW1lKSk7CiAgICAgLy8gSW4gb3JkZXIgdG8gcmVwb3J0IGEgbWFwcGluZyBvZiAieHItc3Rh
bmRhcmQiIHRoZSBkZXZpY2UgTVVTVCByZXBvcnQgYSB0YXJnZXRSYXlNb2RlIG9mICJ0cmFja2Vk
LXBvaW50ZXIiIGFuZCBNVVNUIGhhdmUgYSBub24tbnVsbCBncmlwU3BhY2UuCiAgICAgLy8gSXQg
TVVTVCBoYXZlIGF0IGxlYXN0IG9uZSBwcmltYXJ5IHRyaWdnZXIsIHNlcGFyYXRlIGZyb20gYW55
IHRvdWNocGFkcyBvciB0aHVtYnN0aWNrcwogICAgIGlmIChzb3VyY2UudGFyZ2V0UmF5TW9kZSA9
PSBYUlRhcmdldFJheU1vZGU6OlRyYWNrZWRQb2ludGVyICYmICFzb3VyY2UuYnV0dG9ucy5pc0Vt
cHR5KCkgJiYgc291cmNlLmdyaXBPcmlnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAppbmRleCA5NDhkMWQ0MTc0OGU5ZmFkMjkyMmNhZjcwY2ViNjY4YjQ4OGU5OTQx
Li4zODYzNDlhY2E5MTU2NzJkZWJlYzk0ZmUyYWI4OWMxZjA1ODA3MWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTYxOCwxMiArNjE4LDEyIEBAIHZvaWQg
SFRNTFZpZGVvRWxlbWVudDo6Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGlkZW50
aWZpZXIpCiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NWaWRlb0ZyYW1lTWV0YWRhdGFUaW1lc3RhbXBz
KFZpZGVvRnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFBlcmZvcm1hbmNlJiBwZXJmb3JtYW5jZSkK
IHsKLSAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVU
aW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21S
YXdTZWNvbmRzKG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUpKTsKLSAgICBtZXRhZGF0YS5leHBl
Y3RlZERpc3BsYXlUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5J
blJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKG1ldGFkYXRh
LmV4cGVjdGVkRGlzcGxheVRpbWUpKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lID0g
cGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9u
KE1vbm90b25pY1RpbWUoU2Vjb25kcyhtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lKSkpOworICAg
IG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVG
cm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24oTW9ub3RvbmljVGltZShTZWNvbmRzKG1l
dGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUpKSk7CiAgICAgaWYgKG1ldGFkYXRhLmNhcHR1cmVU
aW1lKQotICAgICAgICBtZXRhZGF0YS5jYXB0dXJlVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZl
VGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lOjpmcm9t
UmF3U2Vjb25kcygqbWV0YWRhdGEuY2FwdHVyZVRpbWUpKTsKKyAgICAgICAgbWV0YWRhdGEuY2Fw
dHVyZVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNl
ZFJlc29sdXRpb24oTW9ub3RvbmljVGltZShTZWNvbmRzKCptZXRhZGF0YS5jYXB0dXJlVGltZSkp
KTsKICAgICBpZiAobWV0YWRhdGEucmVjZWl2ZVRpbWUpCi0gICAgICAgIG1ldGFkYXRhLnJlY2Vp
dmVUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRS
ZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKCptZXRhZGF0YS5yZWNlaXZl
VGltZSkpOworICAgICAgICBtZXRhZGF0YS5yZWNlaXZlVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0
aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lKFNl
Y29uZHMoKm1ldGFkYXRhLnJlY2VpdmVUaW1lKSkpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1l
bnQ6OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyhSZWR1Y2VkUmVzb2x1dGlvblNl
Y29uZHMgbm93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuY3BwCmluZGV4IGU1NTViMjc5N2Q4YzVjZjcyOThlNzcwOTk1ZDZiZmQwMGRhYjM3OTMu
LmI3ODZiMTc4NTE1YmI0NDExNDM2NDkzZjQ5MzcyMzUwZmFkZTQwZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKQEAgLTMxOCw3ICsz
MTgsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZShLZXllZERlY29kZXIm
IGRlY29kZXIsIHVuc2lnbmVkIG1vZGVsVmVyc2lvbgogICAgIGRvdWJsZSBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uVGltZUFzRG91YmxlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVEb3VibGUo
Im1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24iLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGlt
ZUFzRG91YmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb25UaW1lQXNEb3VibGUpOworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1l
ID0gV2FsbFRpbWUoU2Vjb25kcyhtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91Ymxl
KSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgiZ3JhbmRmYXRoZXJlZCIsIGdyYW5k
ZmF0aGVyZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMjYsNyArMzI2LDcgQEAgYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1
bnNpZ25lZCBtb2RlbFZlcnNpb24KICAgICBkb3VibGUgbGFzdFNlZW5UaW1lQXNEb3VibGU7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZURvdWJsZSgibGFzdFNlZW4iLCBsYXN0U2VlblRpbWVBc0Rv
dWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBsYXN0U2VlbiA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhsYXN0U2VlblRpbWVBc0RvdWJsZSk7CisgICAgbGFzdFNlZW4gPSBXYWxs
VGltZShTZWNvbmRzKGxhc3RTZWVuVGltZUFzRG91YmxlKSk7CiAKICAgICBpZiAobW9kZWxWZXJz
aW9uID49IDExKSB7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInRpbWVzQWNj
ZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIsIHRpbWVzQWNjZXNzZWRBc0Zp
cnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbikpCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjptZXJnZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
JiBvdGhlcikKIAogV2FsbFRpbWUgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJl
c29sdXRpb24oV2FsbFRpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHN0ZDo6Zmxvb3IodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpIC8gdGltZXN0YW1wUmVz
b2x1dGlvbikgKiB0aW1lc3RhbXBSZXNvbHV0aW9uLnNlY29uZHMoKSk7CisgICAgcmV0dXJuIFdh
bGxUaW1lKFNlY29uZHMoc3RkOjpmbG9vcih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkgLyB0aW1l
c3RhbXBSZXNvbHV0aW9uKSAqIHRpbWVzdGFtcFJlc29sdXRpb24uc2Vjb25kcygpKSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmlu
ZGV4IGE5YjU4Mjg3M2FlNDU1OTE3MzdlODA2ODkyNGNkYWY0NWQ0MWNmODUuLmExZDEzYjBlMTcz
NDQ0MzZiMDJjMWE0ZTBhZmM2ZmVmNjYzNjZlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAtNzIsNyArNzIsNyBAQCBzdHJ1Y3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyB7CiAgICAgLy8gVXNlciBpbnRlcmFjdGlvbgogICAgIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICAvLyBUaW1lc3RhbXAuIERlZmF1bHQg
dmFsdWUgaXMgbmVnYXRpdmUsIDAgbWVhbnMgaXQgd2FzIHJlc2V0LgotICAgIFdhbGxUaW1lIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIHsgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0x
KSB9OworICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIHsgLTFfcyB9
OwogICAgIGJvb2wgZ3JhbmRmYXRoZXJlZCB7IGZhbHNlIH07CiAKICAgICAvLyBTdG9yYWdlIGFj
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcAppbmRl
eCAzZmJlMTZmNTQ0ZGM2MTNmYWU0MmVmZThjZThjMzQwMzY2YTA4MjhkLi4yNGU4YzM3OWZlYThi
ZjkzZmM4N2M3ZmZhMjRkNzg0ODZjMjFkMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GcmFtZVJhdGVNb25pdG9yLmNwcApAQCAtMzYsMjIgKzM2LDIyIEBAIHZvaWQgRnJhbWVSYXRl
TW9uaXRvcjo6dXBkYXRlKCkKIHsKICAgICArK21fZnJhbWVDb3VudDsKIAotICAgIGF1dG8gZnJh
bWVUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
OworICAgIGF1dG8gZnJhbWVUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYXV0byBs
YXN0RnJhbWVUaW1lID0gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5pc0VtcHR5KCkgPyBmcmFt
ZVRpbWUgOiBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLmxhc3QoKTsKIAogICAgIGlmIChtX29i
c2VydmVkRnJhbWVSYXRlKSB7Ci0gICAgICAgIGF1dG8gbWF4RGVsYXkgPSBNYXhGcmFtZURlbGF5
Q291bnQgLyBtX29ic2VydmVkRnJhbWVSYXRlOworICAgICAgICBhdXRvIG1heERlbGF5ID0gU2Vj
b25kcyhNYXhGcmFtZURlbGF5Q291bnQgLyBtX29ic2VydmVkRnJhbWVSYXRlKTsKICAgICAgICAg
aWYgKChmcmFtZVRpbWUgLSBsYXN0RnJhbWVUaW1lKSA+IG1heERlbGF5KQotICAgICAgICAgICAg
bV9sYXRlRnJhbWVDYWxsYmFjayh7IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGZyYW1l
VGltZSksIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGxhc3RGcmFtZVRpbWUpIH0pOwor
ICAgICAgICAgICAgbV9sYXRlRnJhbWVDYWxsYmFjayh7IGZyYW1lVGltZSwgbGFzdEZyYW1lVGlt
ZSB9KTsKICAgICB9CiAgICAgbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5hcHBlbmQoZnJhbWVU
aW1lKTsKICAgICBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLnJlbW92ZUFsbE1hdGNoaW5nKFsm
XShhdXRvIHRpbWUpIHsKLSAgICAgICAgcmV0dXJuIHRpbWUgPD0gZnJhbWVUaW1lIC0gTWF4UXVl
dWVEdXJhdGlvbi52YWx1ZSgpOworICAgICAgICByZXR1cm4gdGltZSA8PSBmcmFtZVRpbWUgLSBN
YXhRdWV1ZUR1cmF0aW9uOwogICAgIH0pOwogCiAgICAgYXV0byBxdWV1ZUR1cmF0aW9uID0gbV9v
YnNlcnZlZEZyYW1lVGltZVN0YW1wcy5sYXN0KCkgLSBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBz
LmZpcnN0KCk7Ci0gICAgaWYgKHF1ZXVlRHVyYXRpb24gPiBNaW5pbXVtQXZlcmFnZUR1cmF0aW9u
LnZhbHVlKCkpCi0gICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1l
VGltZVN0YW1wcy5zaXplKCkgLyBxdWV1ZUR1cmF0aW9uKTsKKyAgICBpZiAocXVldWVEdXJhdGlv
biA+IE1pbmltdW1BdmVyYWdlRHVyYXRpb24pCisgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUg
PSBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLnNpemUoKSAvIHF1ZXVlRHVyYXRpb24uc2Vjb25k
cygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJh
dGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmgK
aW5kZXggMzMwNzcwMWE1MTkxZTM2YWNjYWZkZGUwYzVmOTcwZjQ4NDA2ZjMxYy4uMThjYmY4M2Yy
YWQ0NTYzZmNkNDU2ZDQ5ZmMyZjM0MzhkMjZmNzllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZyYW1lUmF0ZU1vbml0b3IuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgTGF0ZUZyYW1lQ2FsbGJhY2sgbV9sYXRlRnJhbWVDYWxsYmFjazsKLSAgICBEZXF1
ZTxkb3VibGUsIDEyMD4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKKyAgICBEZXF1ZTxNb25v
dG9uaWNUaW1lLCAxMjA+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1f
b2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07CiAgICAgdWludDY0X3QgbV9mcmFtZUNvdW50IHsgMCB9
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmlu
ZGV4IDFjNjk5ZmJlZTQ1OGEzODUyN2E1MDIxZjFmMGNhMDI3ZDJkOWIxOTguLjJlYzE2MGQ0Zjkz
YzAxZTM4YmVhNWQ3MWUyYmQ0MmM2OTgzZTBlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdl
YkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyB2b2lk
IHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+
JiYgZWxlbWVudCwKICAgICBpZiAoYXV0byBjbG9jayA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9n
ZXRfY2xvY2soZWxlbWVudC5nZXQoKSkpKSB7CiAgICAgICAgIGF1dG8gY2xvY2tUaW1lID0gZ3N0
X2Nsb2NrX2dldF90aW1lKGNsb2NrLmdldCgpKTsKICAgICAgICAgb3V0cHV0VGltZXN0YW1wLnBv
c2l0aW9uID0gU2Vjb25kczo6ZnJvbU5hbm9zZWNvbmRzKHRpbWVzdGFtcCk7Ci0gICAgICAgIG91
dHB1dFRpbWVzdGFtcC50aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhz
dGF0aWNfY2FzdDxkb3VibGU+KChnX2dldF9tb25vdG9uaWNfdGltZSgpICsgR1NUX1RJTUVfQVNf
VVNFQ09ORFMoY2xvY2tUaW1lKSkgLyAxMDAwMDAwLjApKTsKKyAgICAgICAgb3V0cHV0VGltZXN0
YW1wLnRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+
KChnX2dldF9tb25vdG9uaWNfdGltZSgpICsgR1NUX1RJTUVfQVNfVVNFQ09ORFMoY2xvY2tUaW1l
KSkgLyAxMDAwMDAwLjApKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZv
ciBsb2NhbC9saXZlIGF1ZGlvIGlucHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU2VhcmNoUG9wdXBNZW51Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5tbQppbmRleCAzYmRmNDk1OWNiNjAxYTc2
ZTNhMzI5ZGZhYTMyN2M0MjMxMzE5OGZhLi5kNGZiMmNkMzFiNmY3NGUxODJkNDhmZjYyODRiZTFh
MDk4NWRmYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFy
Y2hQb3B1cE1lbnVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
ZWFyY2hQb3B1cE1lbnVDb2NvYS5tbQpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgUmV0YWluUHRy
PE5TTXV0YWJsZURpY3Rpb25hcnk+IHJlYWRTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzUGxpc3Qo
KQogc3RhdGljIFdhbGxUaW1lIHRvU3lzdGVtQ2xvY2tUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsKICAg
ICBBU1NFUlQoZGF0ZSk7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRl
LnRpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoZGF0
ZS50aW1lSW50ZXJ2YWxTaW5jZTE5NzApKTsKIH0KIAogc3RhdGljIE5TRGF0ZSAqdG9OU0RhdGVG
cm9tU3lzdGVtQ2xvY2soV2FsbFRpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGQxOGE4NWE3OTRmNTIzZjk0OTEyZTI3ZjA4YjdjY2JlODkzYzhlZDAuLmEwOTc3YjRiZTExZGVk
ZmFjZmY5MTVmNTkwOWY2MGFlOWQyMGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
Mzg2LDcgKzM4Niw3IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpvcmlnaW5zSW5NZWRpYUNhCiBzdGF0aWMgV2FsbFRpbWUg
dG9TeXN0ZW1DbG9ja1RpbWUoTlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAg
ICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2Ux
OTcwKTsKKyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNl
MTk3MCkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNs
ZWFyTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2Up
CkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjbGVhck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXYWwKICAgICBOU0ZpbGVN
YW5hZ2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKICAg
ICBOU1VSTCAqYmFzZVVSTCA9IFthc3NldENhY2hlIFVSTF07CiAKLSAgICBpZiAobW9kaWZpZWRT
aW5jZSA8PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCkpIHsKKyAgICBpZiAobW9kaWZpZWRT
aW5jZSA8PSBXYWxsVGltZSgpKSB7CiAgICAgICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRV
Ukw6YmFzZVVSTCBlcnJvcjpuaWxdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA3YjBkNmRlOThiMzgz
M2M2ZTIyYjk1OTcwYjljNTU4YzQwMzJiNjUxLi4wNDA4ODZkMzZkMWM4YTMwNWJlOTM3YTI3ZjQw
MWU3NjE4OWFmYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3Rr
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0
aWVzLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIFdhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50KQogI2VuZGlmCiAgICAgaWYgKHRpbWUgPT0gR0RLX0NVUlJFTlRf
VElNRSkKICAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4gTW9ub3Rv
bmljVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSAvIDEwMDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1l
KCk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0
aW1lKSkuYXBwcm94aW1hdGVXYWxsVGltZSgpOwogfQogCiBTdHJpbmcgZGVmYXVsdEd0a1N5c3Rl
bUZvbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxp
dGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCmluZGV4
IGE1ZmFjYjIxMGQxY2NlYmQwOGFlNmY0NmYxZjM0YTRjOWJjMmVmNzkuLjAwY2NlN2FjOGRhZGZk
MTM5OWE2YzFlMGRlMzk4ZTliODg4MzY4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvR3RrVXRpbGl0aWVzLmgKQEAgLTQxLDcgKzQxLDcgQEAgV2FsbFRpbWUgd2FsbFRpbWVGb3JF
dmVudChjb25zdCBHZGtFdmVudFR5cGUqIGV2ZW50KQogICAgIGNvbnN0IGF1dG8gZXZlbnRUaW1l
ID0gZ2RrX2V2ZW50X2dldF90aW1lKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihjb25zdF9j
YXN0PEdka0V2ZW50VHlwZSo+KGV2ZW50KSkpOwogICAgIGlmIChldmVudFRpbWUgPT0gR0RLX0NV
UlJFTlRfVElNRSkKICAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4g
TW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnRUaW1lIC8gMTAwMC4pLmFwcHJveGlt
YXRlV2FsbFRpbWUoKTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWls
bGlzZWNvbmRzKGV2ZW50VGltZSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKIH0KIAogdGVtcGxh
dGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tCmluZGV4IDA3NzNmNTg4NmU0MGEwMmVhOWUzY2EwODAyMDVjNDcyYTli
MjgzNDkuLjE2N2RkOWY3ZmE2YjFlOTI0YWZiZGVhM2JmZmExNmFjMjJmNTc5NGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW0KQEAgLTYwMiw3ICs2MDIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3R5cGUg
PSB0b3VjaEV2ZW50VHlwZShldmVudCk7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhldmVudC50aW1lc3RhbXApOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1l
KFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSBl
dmVudC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQuZ2Vz
dHVyZVJvdGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJh
ODRhMzM0MjgzOTZlNWUuLmQ1NTQ2MWJmM2MzZDFjM2JhMjZlZmJhMjExMmIzNDBlMTljYWFiZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KQEAgLTYwOSw3ICs2MDksNyBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwg
Y2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAKIFdhbGxUaW1lIGV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKE5TVGltZUludGVydmFsIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1
cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgdGltZXN0YW1wKSk7CisgICAgcmV0dXJuIFdhbGxU
aW1lKFNlY29uZHMoY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgdGltZXN0
YW1wKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJz
ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3Bw
CmluZGV4IGYzZjg3YTRmN2U5YmI4ZTc3NjdhOWU4OTE1N2I3YjJlNjNjM2U3ZGQuLmZjZGRiZWE4
Njk5M2I5MzBhNTFkZTM0ZGRkZjcwYjRkN2FmYWU2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgc3Rk
OjpvcHRpb25hbDxXYWxsVGltZT4gcGFyc2VIVFRQRGF0ZShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIC8vIFRoaXMgYXNzdW1lcyBzeXN0ZW1f
Y2xvY2sgZXBvY2ggZXF1YWxzIFVuaXggZXBvY2ggd2hpY2ggaXMgdHJ1ZSBmb3IgYWxsIGltcGxl
bWVudGF0aW9ucyBidXQgdW5zcGVjaWZpZWQuCiAgICAgLy8gRklYTUU6IFRoZSBwYXJzaW5nIGZ1
bmN0aW9uIHNob3VsZCBiZSBzd2l0Y2hlZCB0byBXYWxsVGltZSB0b28uCi0gICAgcmV0dXJuIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlSW5NaWxsaXNlY29uZHNTaW5jZUVwb2NoIC8gMTAw
MC4wKTsKKyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhkYXRl
SW5NaWxsaXNlY29uZHNTaW5jZUVwb2NoKSk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IGRvZXNuJ3QgY29tcGx5IHdpdGggUkZDIDYyNjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAppbmRleCBjYjBkOGIzYWFjNGQ2
YjFmZWU5YjllYTIyNDUzNGNhMjMyMDQ4ODFlLi40NDBhNmJlY2YzNzk2YjRhZTIzYmZhYjM0MjFk
NzJhOTg3ZjdjZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKQEAgLTU2LDcgKzU2LDcgQEAgZW51bSBjbGFzcyBQcml2
YWN5U3RhbmNlIDogdWludDhfdCB7CiAgICAgRGlyZWN0LAogfTsKIAotY29uc3RleHByIE1vbm90
b25pY1RpbWUgcmV1c2VkVExTQ29ubmVjdGlvblNlbnRpbmVsIHsgTW9ub3RvbmljVGltZTo6ZnJv
bVJhd1NlY29uZHMoLTEpIH07Citjb25zdGV4cHIgTW9ub3RvbmljVGltZSByZXVzZWRUTFNDb25u
ZWN0aW9uU2VudGluZWwgeyAtMV9zIH07CiAKIHN0cnVjdCBBZGRpdGlvbmFsTmV0d29ya0xvYWRN
ZXRyaWNzRm9yV2ViSW5zcGVjdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDk1MGU4MjY3ZTJh
NWU4NmJhNzlkNjc5ZTdkNzM2MTEwMWMwZmJhZWIuLjA2ODVkM2MwOWUxMTE0N2U1NjhhNWEwMjAx
NmE0ZDFjZWI4MDUxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBAIC03MzcsOCArNzM3LDcgQEAgc3Rk
OjpvcHRpb25hbDxXYWxsVGltZT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZCgp
IGNvbnN0CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIC8vIENGTmV0d29yayBjb252ZXJ0
cyBtYWxmb3JtZWQgZGF0ZXMgaW50byBFcG9jaCBzbyB3ZSBuZWVkIHRvIHRyZWF0IEVwb2NoIGFz
CiAgICAgICAgIC8vIGFuIGludmFsaWQgdmFsdWUgKHJkYXI6Ly9wcm9ibGVtLzIyMzUyODM4KS4K
LSAgICAgICAgY29uc3QgV2FsbFRpbWUgZXBvY2ggPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
MCk7Ci0gICAgICAgIGlmIChtX2xhc3RNb2RpZmllZCAmJiBtX2xhc3RNb2RpZmllZC52YWx1ZSgp
ID09IGVwb2NoKQorICAgICAgICBpZiAobV9sYXN0TW9kaWZpZWQgJiYgIW1fbGFzdE1vZGlmaWVk
LnZhbHVlKCkpCiAgICAgICAgICAgICBtX2xhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdDsKICNl
bmRpZgogICAgICAgICBtX2hhdmVQYXJzZWRMYXN0TW9kaWZpZWRIZWFkZXIgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrTG9h
ZE1ldHJpY3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtMb2FkTWV0cmljcy5tbQppbmRleCA2MzEyZTA2ODQyOTdiNDNjMzMxMWU0NzM5YjY4MWFiNDQ1
YzMzNjcyLi40ZDM1MDRkZDFkNmJjNjdlNTMwNmM3MDU4ODRhM2QzZTI5ZmYxNmM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0
cmljcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtMb2FkTWV0cmljcy5tbQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dGF0aWMgTW9ub3RvbmljVGltZSBkYXRlVG9Nb25vdG9uaWNUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsK
ICAgICBpZiAoYXV0byBpbnRlcnZhbCA9IGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKQotICAg
ICAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGludGVydmFsKS5hcHByb3hpbWF0
ZU1vbm90b25pY1RpbWUoKTsKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2
YWwpKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKTsKICAgICByZXR1cm4geyB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
REIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRC
LmNwcAppbmRleCA5NWQ3NjhhY2UwODBiMmY2NjI1OTE1MTU0MWNhY2I4OWQxNGJjMDI2Li42ZDc0
YmRlMzQ3MDUzMDYwMjZjMjQ2YjI2NDYzZjNiNDRlZTliNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKQEAgLTUxMSw3
ICs1MTEsNyBAQCBib29sIENvb2tpZUphckRCOjpjYW5BY2NlcHRDb29raWUoY29uc3QgQ29va2ll
JiBjb29raWUsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgYwogYm9vbCBDb29raWVKYXJEQjo6c2V0
Q29va2llKGNvbnN0IENvb2tpZSYgY29va2llKQogewogICAgIGF1dG8gZXhwaXJlcyA9IGNvb2tp
ZS5leHBpcmVzLnZhbHVlX29yKDAuMCk7Ci0gICAgaWYgKCFjb29raWUuc2Vzc2lvbiAmJiBNb25v
dG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhleHBpcmVzIC8gbXNQZXJTZWNvbmQpIDw9IE1vbm90
b25pY1RpbWU6Om5vdygpKQorICAgIGlmICghY29va2llLnNlc3Npb24gJiYgTW9ub3RvbmljVGlt
ZShTZWNvbmRzKGV4cGlyZXMgLyBtc1BlclNlY29uZCkpIDw9IE1vbm90b25pY1RpbWU6Om5vdygp
KQogICAgICAgICByZXR1cm4gZGVsZXRlQ29va2llSW50ZXJuYWwoY29va2llLm5hbWUsIGNvb2tp
ZS5kb21haW4sIGNvb2tpZS5wYXRoKTsKIAogICAgIGF1dG8mIHN0YXRlbWVudCA9IHByZXBhcmVk
U3RhdGVtZW50KFNFVF9DT09LSUVfU1FMKTsKQEAgLTU1Myw3ICs1NTMsNyBAQCBib29sIENvb2tp
ZUphckRCOjpzZXRDb29raWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJgogICAgIGlmIChjYXBwZWRMaWZldGltZSAmJiBjb29raWUtPmV4cGlyZXMp
IHsKICAgICAgICAgQVNTRVJUKCpjYXBwZWRMaWZldGltZSA+PSAwX3MpOwogICAgICAgICBhdXRv
IGNhcHBlZEV4cGlyZXMgPSBXYWxsVGltZTo6bm93KCkgKyAqY2FwcGVkTGlmZXRpbWU7Ci0gICAg
ICAgIGlmIChjYXBwZWRFeHBpcmVzIDwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCpjb29raWUt
PmV4cGlyZXMgLyBtc1BlclNlY29uZCkpCisgICAgICAgIGlmIChjYXBwZWRFeHBpcmVzIDwgV2Fs
bFRpbWUoU2Vjb25kcygqY29va2llLT5leHBpcmVzIC8gbXNQZXJTZWNvbmQpKSkKICAgICAgICAg
ICAgIGNvb2tpZS0+ZXhwaXJlcyA9IGNhcHBlZEV4cGlyZXMuc2Vjb25kc1NpbmNlRXBvY2goKS5t
aWxsaXNlY29uZHMoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCmluZGV4IDY4Y2FmMDU0NmI2MmNm
NDk2NDdkNGI5YzRiZTdmNTllYjViYjVjOWMuLjk0MjM5OGIwOTNiMmEwNjk4Mzc1YzZiZDBkYmUz
MDJjMjZkZGQwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBDdXJsQ2FjaGVF
bnRyeTo6Q3VybENhY2hlRW50cnkoY29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNlSGFuZGxlKiBq
b2IsIGNvbnN0IFN0cgogICAgICwgbV9jb250ZW50RmlsZW5hbWUoY2FjaGVEaXIpCiAgICAgLCBt
X2NvbnRlbnRGaWxlKEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCiAgICAg
LCBtX2VudHJ5U2l6ZSgwKQotICAgICwgbV9leHBpcmVEYXRlKFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcygtMSkpCisgICAgLCBtX2V4cGlyZURhdGUoV2FsbFRpbWUoLTFfcykpCiAgICAgLCBtX2hl
YWRlclBhcnNlZChmYWxzZSkKICAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQogICAgICwgbV9qb2Io
am9iKQpAQCAtMjkwLDE4ICsyOTAsMTggQEAgYm9vbCBDdXJsQ2FjaGVFbnRyeTo6cGFyc2VSZXNw
b25zZUhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgaWYgKG1h
eEFnZSAmJiAhcmVzcG9uc2UuY2FjaGVDb250cm9sQ29udGFpbnNNdXN0UmV2YWxpZGF0ZSgpKSB7
CiAgICAgICAgIC8vIFdoZW4gYm90aCB0aGUgY2FjaGUgZW50cnkgYW5kIHRoZSByZXNwb25zZSBj
b250YWluIG1heC1hZ2UsIHRoZSBsZXNzZXIgb25lIHRha2VzIHByaW9yaXR5CiAgICAgICAgIFdh
bGxUaW1lIGV4cGlyZXMgPSBmaWxlVGltZSArICptYXhBZ2U7Ci0gICAgICAgIGlmIChtX2V4cGly
ZURhdGUgPT0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSB8fCBtX2V4cGlyZURhdGUgPiBl
eHBpcmVzKQorICAgICAgICBpZiAobV9leHBpcmVEYXRlID09IFdhbGxUaW1lKC0xX3MpIHx8IG1f
ZXhwaXJlRGF0ZSA+IGV4cGlyZXMpCiAgICAgICAgICAgICBtX2V4cGlyZURhdGUgPSBleHBpcmVz
OwogICAgIH0gZWxzZSBpZiAocmVzcG9uc2VEYXRlICYmIGV4cGlyYXRpb25EYXRlKSB7CiAgICAg
ICAgIGlmICgqZXhwaXJhdGlvbkRhdGUgPj0gKnJlc3BvbnNlRGF0ZSkKICAgICAgICAgICAgIG1f
ZXhwaXJlRGF0ZSA9IGZpbGVUaW1lICsgKCpleHBpcmF0aW9uRGF0ZSAtICpyZXNwb25zZURhdGUp
OwogICAgIH0KICAgICAvLyBJZiB0aGVyZSBpcyBubyBsaWZldGltZSBpbmZvcm1hdGlvbgotICAg
IGlmIChtX2V4cGlyZURhdGUgPT0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSkgeworICAg
IGlmIChtX2V4cGlyZURhdGUgPT0gV2FsbFRpbWUoLTFfcykpIHsKICAgICAgICAgaWYgKGxhc3RN
b2RpZmljYXRpb25EYXRlKQogICAgICAgICAgICAgbV9leHBpcmVEYXRlID0gZmlsZVRpbWUgKyAo
ZmlsZVRpbWUgLSAqbGFzdE1vZGlmaWNhdGlvbkRhdGUpICogMC4xOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX2V4cGlyZURhdGUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7Cisg
ICAgICAgICAgICBtX2V4cGlyZURhdGUgPSBXYWxsVGltZSgpOwogICAgIH0KIAogICAgIFN0cmlu
ZyBldGFnID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZS5tbQppbmRleCAzMTVlMDY1MTUzMGRjZGIwMjgwMTY1NGI3NTdkODE0NzNjMjBm
ZDMwLi40OTE1Zjg1MTVhYzliOGNmYTIyODQyZGY0YjI5YmNhMjY3OWRhMzA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCkBAIC0zMzYsNyArMzM2LDcgQEAgLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9h
ZGluZzooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbgogCiAgICAgICAgIGlmIChhdXRvIG1l
dHJpY3MgPSBtX2hhbmRsZS0+bmV0d29ya0xvYWRNZXRyaWNzKCkpIHsKICAgICAgICAgICAgIGlm
IChkb3VibGUgcmVzcG9uc2VFbmRUaW1lID0gW1t0aW1pbmdEYXRhIG9iamVjdEZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YVJlc3BvbnNlRW5kIl0gZG91YmxlVmFsdWVdKQotICAgICAgICAgICAgICAg
IG1ldHJpY3MtPnJlc3BvbnNlRW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGFkb3B0TlMo
W1tOU0RhdGUgYWxsb2NdIGluaXRXaXRoVGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlOnJl
c3BvbnNlRW5kVGltZV0pLmdldCgpLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkuYXBwcm94aW1hdGVN
b25vdG9uaWNUaW1lKCk7CisgICAgICAgICAgICAgICAgbWV0cmljcy0+cmVzcG9uc2VFbmQgPSBX
YWxsVGltZShTZWNvbmRzKGFkb3B0TlMoW1tOU0RhdGUgYWxsb2NdIGluaXRXaXRoVGltZUludGVy
dmFsU2luY2VSZWZlcmVuY2VEYXRlOnJlc3BvbnNlRW5kVGltZV0pLmdldCgpLnRpbWVJbnRlcnZh
bFNpbmNlMTk3MCkpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIG1ldHJpY3MtPnJlc3BvbnNlRW5kID0gbWV0cmljcy0+cmVzcG9u
c2VTdGFydDsKICAgICAgICAgICAgIG1ldHJpY3MtPnByb3RvY29sID0gKE5TU3RyaW5nICopW3Rp
bWluZ0RhdGEgb2JqZWN0Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhTmV0d29ya1Byb3RvY29sTmFt
ZSJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDViMzI1MzRlMmJj
YWYxNzAxMzMxZTk1NDEwMTNiOGE1YzM4YzRkMzYuLjUwOTg2ZTlkNzI0YjNmZDVjZTJjN2Q3MTZi
ZTNiYzUzYTUxYTk4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAg
LTQ1MSw3ICs0NTEsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29v
a2llcygpCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llc01vZGlm
aWVkU2luY2UoV2FsbFRpbWUgdGltZXN0YW1wKQogewogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9y
dCBmb3IgZGVsZXRpbmcgY29va2llcyBtb2RpZmllZCBzaW5jZSB0aGUgZ2l2ZW4gdGltZXN0YW1w
LiBJdCBzaG91bGQgcHJvYmFibHkgYmUgYWRkZWQgdG8gbGlic291cC4KLSAgICBpZiAodGltZXN0
YW1wID09IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSkKKyAgICBpZiAoIXRpbWVzdGFtcCkK
ICAgICAgICAgZGVsZXRlQWxsQ29va2llcygpOwogICAgIGVsc2UKICAgICAgICAgZ193YXJuaW5n
KCJEZWxldGluZyBjb29raWVzIG1vZGlmaWVkIHNpbmNlIGEgZ2l2ZW4gdGltZSBzcGFuIGlzIG5v
dCBzdXBwb3J0ZWQgeWV0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vS2V5RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50
V2luLmNwcAppbmRleCBhYWU2Yzk5ZGQwNTI5ODVhNDM3MTg4NDZiNjg1MzY0NTQwNTBjMjM0Li44
ZTI5ZjY1OWJlNjBmYzczZmExYzRkOWJkMjcyYmI1NTQ0MGM0Y2QyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0
aWMgV2luZG93c0tleU5hbWVzJiB3aW5kb3dzS2V5TmFtZXMoKQogfQogCiBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFN
IGtleURhdGEsIFR5cGUgdHlwZSwgYm9vbCBzeXN0ZW1LZXkpCi0gICAgOiBQbGF0Zm9ybUV2ZW50
KHR5cGUsIEdldEtleVN0YXRlKFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtl
eVN0YXRlKFZLX0NPTlRST0wpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktf
TUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUs
IEdldEtleVN0YXRlKFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRl
KFZLX0NPTlRST0wpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkg
JiBISUdIX0JJVF9NQVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWUoU2Vjb25kcyg6OkdldFRpY2tD
b3VudCgpICogMC4wMDEpKSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpD
aGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91
bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJh
Y3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV9rZXkodHlwZSA9PSBQbGF0Zm9y
bUV2ZW50OjpDaGFyID8gd2luZG93c0tleU5hbWVzKCkuZG9tS2V5RnJvbUNoYXIoY29kZSkgOiB3
aW5kb3dzS2V5TmFtZXMoKS5kb21LZXlGcm9tUGFyYW1zKGNvZGUsIGtleURhdGEpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCmluZGV4IDBiNmI3MGU3
MGYxMTEyMmEzZmViMDkxZmQ5OTQ0YWQ5OWUxZDkzOGMuLjY0MzMyMDk5ZjVmMzU1ZjdiMTk4ZDA4
NTRiZDc2YWU2YWVhYjFiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9XaGVlbEV2ZW50V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hl
ZWxFdmVudFdpbi5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIGludCB2ZXJ0aWNhbFNjcm9s
bExpbmVzKCkKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdO
RCBoV25kLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91c2VIV2hlZWwp
Ci0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFyYW0gJiBNS19T
SElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQs
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyg6OkdldFRpY2tDb3VudCgpICogMC4wMDEpKQorICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQs
IHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxs
VGltZShTZWNvbmRzKDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkpKQogICAgICwgbV9wb3NpdGlv
bihwb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9u
KGdsb2JhbFBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAppbmRl
eCAzMTRlMDNlMDQ3ZTkzNmVkOTJhOGY2ZGFiYzY2MjVhMGRmOWI4MGJhLi42NzZkZWJmMGFhMjI4
MTlhNjUzMWVlMDJlZTJjOTg2NzBhZDg4ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEu
aApAQCAtNjAsNyArNjAsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEg
ewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwg
a2V5IDw8IGlkZW50aWZpZXIgPDwgc2NvcGVVUkwgPDwgdXBkYXRlVmlhQ2FjaGUgPDwgbGFzdFVw
ZGF0ZVRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIDw8IGluc3RhbGxpbmdXb3JrZXIg
PDwgd2FpdGluZ1dvcmtlciA8PCBhY3RpdmVXb3JrZXI7CisgICAgZW5jb2RlciA8PCBrZXkgPDwg
aWRlbnRpZmllciA8PCBzY29wZVVSTCA8PCB1cGRhdGVWaWFDYWNoZSA8PCBsYXN0VXBkYXRlVGlt
ZSA8PCBpbnN0YWxsaW5nV29ya2VyIDw8IHdhaXRpbmdXb3JrZXIgPDwgYWN0aXZlV29ya2VyOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtODYsOSArODYsOSBAQCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YTo6ZGVjbwogICAgIGlmICghdXBkYXRlVmlhQ2FjaGUpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcmF3V2FsbFRpbWU7Ci0g
ICAgZGVjb2RlciA+PiByYXdXYWxsVGltZTsKLSAgICBpZiAoIXJhd1dhbGxUaW1lKQorICAgIHN0
ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IHdhbGxUaW1lOworICAgIGRlY29kZXIgPj4gd2FsbFRpbWU7
CisgICAgaWYgKCF3YWxsVGltZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4+IGluc3RhbGxp
bmdXb3JrZXI7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YT4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmRlY28KICAg
ICBpZiAoIWFjdGl2ZVdvcmtlcikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqa2V5KSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1vdmUo
KnNjb3BlVVJMKSwgV1RGTW92ZSgqdXBkYXRlVmlhQ2FjaGUpLCBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoKnJhd1dhbGxUaW1lKSwgV1RGTW92ZSgqaW5zdGFsbGluZ1dvcmtlciksIFdURk1vdmUo
KndhaXRpbmdXb3JrZXIpLCBXVEZNb3ZlKCphY3RpdmVXb3JrZXIpIH0gfTsKKyAgICByZXR1cm4g
eyB7IFdURk1vdmUoKmtleSksIFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzY29wZVVS
TCksIFdURk1vdmUoKnVwZGF0ZVZpYUNhY2hlKSwgV1RGTW92ZSgqd2FsbFRpbWUpLCBXVEZNb3Zl
KCppbnN0YWxsaW5nV29ya2VyKSwgV1RGTW92ZSgqd2FpdGluZ1dvcmtlciksIFdURk1vdmUoKmFj
dGl2ZVdvcmtlcikgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggMWJiNGRhZWQ2OGZkOWZlN2RkZjBkNTM5OWRlYjNhMmIyYzg5N2Yx
MC4uYjA1YjViNWRhOWVmNDEwMGY0YzM4NDg2MDNkNjQ1YTY2OWUwMGYzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHNjb3BlUGF0aCA9IHNxbC0+
Y29sdW1uVGV4dCgyKTsKICAgICAgICAgYXV0byBzY29wZVVSTCA9IFVSTCB7IG9yaWdpblVSTCwg
c2NvcGVQYXRoIH07CiAgICAgICAgIGF1dG8gdG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKHNxbC0+Y29sdW1uVGV4dCgzKSk7Ci0gICAgICAgIGF1
dG8gbGFzdFVwZGF0ZUNoZWNrVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzcWwtPmNv
bHVtbkRvdWJsZSg0KSk7CisgICAgICAgIGF1dG8gbGFzdFVwZGF0ZUNoZWNrVGltZSA9IFdhbGxU
aW1lKFNlY29uZHMoc3FsLT5jb2x1bW5Eb3VibGUoNCkpKTsKICAgICAgICAgYXV0byB1cGRhdGVW
aWFDYWNoZSA9IHN0cmluZ1RvVXBkYXRlVmlhQ2FjaGUoc3FsLT5jb2x1bW5UZXh0KDUpKTsKICAg
ICAgICAgYXV0byBzY3JpcHRVUkwgPSBVUkwgeyBVUkwoKSwgc3FsLT5jb2x1bW5UZXh0KDYpIH07
CiAgICAgICAgIGF1dG8gd29ya2VyVHlwZSA9IHN0cmluZ1RvV29ya2VyVHlwZShzcWwtPmNvbHVt
blRleHQoNykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAKaW5kZXggMzU1YmI4NGZjYmE3ZDZlYWJhYTk3NTIwMjI3NmJlOWFiM2U2
ZmZiNy4uM2VjODA1ZWFiNGVlNmM2N2FiYTQ3ODU4ZWE4YzllNWI0N2I4OGYyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBA
IC04MzUsOCArODM1LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bWVyZ2UoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50KiBjdXJyZW4KICAgICBhdXRvIHRyYW5z
YWN0aW9uU2NvcGUgPSBiZWdpblRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKTsKIAogICAgIGF1dG8g
Y3VycmVudFJlZ2lzdHJhYmxlRG9tYWluID0gY3VycmVudC0+Y29sdW1uVGV4dChSZWdpc3RyYWJs
ZURvbWFpbkluZGV4KTsKLSAgICBhdXRvIGN1cnJlbnRMYXN0U2VlbiA9IGN1cnJlbnQtPmNvbHVt
bkRvdWJsZShMYXN0U2VlbkluZGV4KTsKLSAgICBhdXRvIGN1cnJlbnRNb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uID0gY3VycmVudC0+Y29sdW1uRG91YmxlKE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b25UaW1lSW5kZXgpOworICAgIGF1dG8gY3VycmVudExhc3RTZWVuID0gV2FsbFRpbWUoU2Vjb25k
cyhjdXJyZW50LT5jb2x1bW5Eb3VibGUoTGFzdFNlZW5JbmRleCkpKTsKKyAgICBhdXRvIGN1cnJl
bnRNb3N0UmVjZW50VXNlckludGVyYWN0aW9uID0gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50LT5j
b2x1bW5Eb3VibGUoTW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpKTsKICAgICBi
b29sIGN1cnJlbnRHcmFuZGZhdGhlcmVkID0gY3VycmVudC0+Y29sdW1uSW50KEdyYW5kZmF0aGVy
ZWRJbmRleCk7CiAgICAgYm9vbCBjdXJyZW50SXNQcmV2YWxlbnQgPSBjdXJyZW50LT5jb2x1bW5J
bnQoSXNQcmV2YWxlbnRJbmRleCk7CiAgICAgYm9vbCBjdXJyZW50SXNWZXJ5UHJldmFsZW50ID0g
Y3VycmVudC0+Y29sdW1uSW50KElzVmVyeVByZXZhbGVudEluZGV4KTsKQEAgLTg0NSw3ICs4NDUs
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZShXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQqIGN1cnJlbgogCiAgICAgQVNTRVJUKGN1cnJlbnRSZWdpc3Ry
YWJsZURvbWFpbiA9PSBvdGhlci5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CiAKLSAgICBp
ZiAoV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGN1cnJlbnRMYXN0U2VlbikgPCBvdGhlci5sYXN0
U2VlbikKKyAgICBpZiAoY3VycmVudExhc3RTZWVuIDwgb3RoZXIubGFzdFNlZW4pCiAgICAgICAg
IHVwZGF0ZUxhc3RTZWVuKG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluLCBvdGhlci5sYXN0U2Vlbik7
CiAKICAgICBpZiAoIW90aGVyLmhhZFVzZXJJbnRlcmFjdGlvbikgewpAQCAtODUzLDcgKzg1Myw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1lcmdlKFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCogY3VycmVuCiAgICAgICAgIGlmICghb3RoZXIubW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUpCiAgICAgICAgICAgICBzZXRVc2VySW50ZXJhY3Rpb24ob3Ro
ZXIucmVnaXN0cmFibGVEb21haW4sIGZhbHNlLCB7IH0pOwogICAgIH0gZWxzZQotICAgICAgICBz
ZXRVc2VySW50ZXJhY3Rpb24ob3RoZXIucmVnaXN0cmFibGVEb21haW4sIHRydWUsIHN0ZDo6bWF4
KFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhjdXJyZW50TW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biksIG90aGVyLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKSk7CisgICAgICAgIHNldFVz
ZXJJbnRlcmFjdGlvbihvdGhlci5yZWdpc3RyYWJsZURvbWFpbiwgdHJ1ZSwgc3RkOjptYXgoY3Vy
cmVudE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIG90aGVyLm1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb25UaW1lKSk7CiAKICAgICBpZiAob3RoZXIuZ3JhbmRmYXRoZXJlZCAmJiAhY3VycmVudEdy
YW5kZmF0aGVyZWQpCiAgICAgICAgIHNldEdyYW5kZmF0aGVyZWQob3RoZXIucmVnaXN0cmFibGVE
b21haW4sIHRydWUpOwpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJh
YmwKICAgICBpZiAoIWhhZFVzZXJJbnRlcmFjdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAotICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKHNjb3BlZFN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDEpKTsKKyAg
ICBhdXRvIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWUoU2Vjb25kcyhz
Y29wZWRTdGF0ZW1lbnQtPmNvbHVtbkRvdWJsZSgxKSkpOwogCiAgICAgaWYgKGhhc1N0YXRpc3Rp
Y3NFeHBpcmVkKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLCBvcGVyYXRpbmdEYXRlc1dp
bmRvdykpIHsKICAgICAgICAgLy8gRHJvcCBwcml2YWN5IHNlbnNpdGl2ZSBkYXRhIGJlY2F1c2Ug
d2Ugbm8gbG9uZ2VyIG5lZWQgaXQuCkBAIC0yMjAyLDcgKzIyMDIsNyBAQCBWZWN0b3I8UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkRvbWFpbkRhdGE+IFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYQogICAgIHdoaWxlIChzdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CiAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRlbWVu
dC0+Y29sdW1uSW50KDApKQogICAgICAgICAgICAgLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHN0YXRlbWVudC0+Y29sdW1uVGV4
dCgxKSkKLSAgICAgICAgICAgICwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRlbWVudC0+
Y29sdW1uRG91YmxlKDIpKQorICAgICAgICAgICAgLCBXYWxsVGltZShTZWNvbmRzKHN0YXRlbWVu
dC0+Y29sdW1uRG91YmxlKDIpKSkKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQo
MykgPyB0cnVlIDogZmFsc2UKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNCkg
PyB0cnVlIDogZmFsc2UKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNSkgPyB0
cnVlIDogZmFsc2UKQEAgLTI0MDQsNyArMjQwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
CiAgICAgfQogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
ZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNlY29u
ZHMpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vl
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjQxNiw3ICsyNDE2LDcgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0TGFzdFNlZW4oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAg
ICB1cGRhdGVMYXN0U2Vlbihkb21haW4sIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRz
LnNlY29uZHMoKSkpOworICAgIHVwZGF0ZUxhc3RTZWVuKGRvbWFpbiwgbGFzdFNlZW4pOwogfQog
CiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQpAQCAtMjgxMyw3ICsyODEz
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhw
aXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBp
IDw9IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZDsgaSsrKSB7CiAgICAgICAgIGRvdWJsZSBk
YXlzVG9TdWJ0cmFjdCA9IFNlY29uZHM6OmZyb21Ib3VycygyNCAqIGkpLnZhbHVlKCk7CiAgICAg
ICAgIGRheXNBZ29JblNlY29uZHMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpIC0gZGF5c1RvU3VidHJhY3Q7Ci0gICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0g
T3BlcmF0aW5nRGF0ZTo6ZnJvbVdhbGxUaW1lKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXlz
QWdvSW5TZWNvbmRzKSk7CisgICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0gT3BlcmF0aW5nRGF0
ZTo6ZnJvbVdhbGxUaW1lKFdhbGxUaW1lKFNlY29uZHMoZGF5c0Fnb0luU2Vjb25kcykpKTsKIAog
ICAgICAgICBhdXRvIGluc2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnBy
ZXBhcmVTdGF0ZW1lbnQoIklOU0VSVCBPUiBJR05PUkUgSU5UTyBPcGVyYXRpbmdEYXRlcyAoeWVh
ciwgbW9udGgsIG1vbnRoRGF5KSBTRUxFQ1QgPywgPywgPzsiX3MpOwogICAgICAgICBpZiAoIWlu
c2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggNjkwMTg2ZjIxNDYwOWMyOTA4MjJiMTVi
N2NjZjZhZDk2NDk2NzIxOS4uYWZiMjMwZWU2ZmZhY2ZlZTQyMjVjZGM5NTA3Yzg1YWRjMDEwZTEy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRl
cmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxU
aW1lKSBvdmVycmlkZTsKICAgICBib29sIGlzQ29ycmVjdFN1YlN0YXRpc3RpY3NDb3VudChjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJik7CiAgICAgdm9pZCBy
ZXNvdXJjZVRvU3RyaW5nKFN0cmluZ0J1aWxkZXImLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICBTZWNvbmRzIGdldE1vc3RSZWNlbnRseVVwZGF0ZWRUaW1lc3RhbXAoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDU2ZjY3YmYwODhkYzYw
MDIyM2Y4YmZhMzBmZGY3ODQ4ZTBiZWVkMjkuLjA1NGE1OTFkY2QxOGQzNmQ5MTljZGQ4ZDZhMzI5
MDUyNGU4OTdkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVz
ZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFdhbGxUaW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21h
aW4+IGFsbERvbWFpbnMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0
aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVy
T2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAxYTNi
MDhiZjczZTE0ZmM3Y2UwYTY1N2RlNTgzZjlmMjJkNGFhODIyLi43MTc3YWE2NTExNWRjNzQwZWVi
NDg4ODViNTM4YzlhZGZlMTQ2MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCkBAIC0xODMsNyArMTgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
bGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNIYWRVc2VySW50ZXJh
Y3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBwcmltYXJ5RG9tYWluLCBTZWNvbmRzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExhc3RT
ZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBwcmltYXJ5RG9tYWluLCBXYWxsVGltZSkgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKaW5kZXggZGU3NjVkZTQ1MDcxZjQxZjNmYzRkNDY5NzA1MzgxNmUxODk5ZWJm
YS4uYmQxMTcxMmNhOGEzMDM4N2VhNGFkYzkxMGVmYTM0ZmFiZjgzYmNlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTgxNiwyNyArODE2
LDI3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50
ZXJhY3Rpb25FcGhlbWVyYWwoY29uc3QgUmVnaXN0CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9k
b21haW5zV2l0aEVwaGVtZXJhbFVzZXJJbnRlcmFjdGlvbi5jb250YWlucyhkb21haW4pKTsKIH0K
IAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAg
ICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCBzZWNvbmRz
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCks
IGxhc3RTZWVuLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCi0gICAgICAgICAg
ICBtX3N0YXRpc3RpY3NTdG9yZS0+c2V0TGFzdFNlZW4oZG9tYWluLCBzZWNvbmRzKTsKKyAgICAg
ICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXRMYXN0U2Vlbihkb21haW4sIGxhc3RTZWVuKTsK
ICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAg
fSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRp
c3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rp
b24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVy
ZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRh
UmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3Rp
Y0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9u
LCBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFS
ZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBwb3N0VGFzayhb
dGhpcywgZG9tYWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbjEgPSB0
b3BGcmFtZURvbWFpbjEuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluMiA9IHRvcEZyYW1l
RG9tYWluMi5pc29sYXRlZENvcHkoKSwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNW
ZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRp
c3RpY3NTdG9yZSkgewogICAgICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBzdGF0aXN0
aWMoZG9tYWluKTsKLSAgICAgICAgICAgIHN0YXRpc3RpYy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhsYXN0U2Vlbi5zZWNvbmRzKCkpOworICAgICAgICAgICAgc3RhdGlzdGlj
Lmxhc3RTZWVuID0gbGFzdFNlZW47CiAgICAgICAgICAgICBzdGF0aXN0aWMuaGFkVXNlckludGVy
YWN0aW9uID0gaGFkVXNlckludGVyYWN0aW9uOwotICAgICAgICAgICAgc3RhdGlzdGljLm1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24uc2Vjb25kcygpKTsKKyAgICAgICAgICAgIHN0YXRpc3RpYy5t
b3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb247
CiAgICAgICAgICAgICBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCA9IGlzR3JhbmRmYXRoZXJlZDsK
ICAgICAgICAgICAgIHN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlID0gaXNQcmV2YWxlbnQ7
CiAgICAgICAgICAgICBzdGF0aXN0aWMuaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgPSBpc1ZlcnlQ
cmV2YWxlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgK
aW5kZXggNjYxYjE1NjNlYzY0YjY2ZTc4ZjFmOGQ1NTRjNmQ5ZGYzNzMxYWU2Yi4uNGExNGZlMjlj
N2MzYWM2NTU3NjBkYTU1NzVkMjYwODc0OWU4OTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMTYwLDggKzE2MCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1
YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBT
dG9yYWdlQWNjZXNzU2NvcGUsICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdl
QWNjZXNzUmVzdWx0KT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYg
dG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFS
ZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNl
dExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlz
VmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9u
Y2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVz
LmNwcAppbmRleCAxNDg2ZDUyMjk2ZjY3NTFmMzEwYzc5ODE2NmJmN2VkYmVkMmFiNDMyLi45YzQ3
YjM0YWMxOTkyMWI0MGU0NzViNjE4ZWE5NDMwOWFmZmRjMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcApAQCAtMTU4LDcgKzE1
OCw3IEBAIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IERhdGFiYXNlVXRpbGl0aWVz
OjpidWlsZFByaXZhdGVDbGlja01lYXN1cmVtZW50CiAgICAgaWYgKGJ1bmRsZUlELmlzRW1wdHko
KSkKICAgICAgICAgYnVuZGxlSUQgPSBzYWZhcmlCdW5kbGVJRDsKIAotICAgIFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VJRChzb3VyY2VJRCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoc291cmNlU2l0ZURvbWFpbikpLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUo
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJs
ZURvbWFpblN0cmluZyhkZXN0aW5hdGlvblNpdGVEb21haW4pKSwgYnVuZGxlSUQsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyh0aW1lT2ZBZENsaWNrKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyk7CisgICAgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZShXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9t
YWluU3RyaW5nKGRlc3RpbmF0aW9uU2l0ZURvbWFpbikpLCBidW5kbGVJRCwgV2FsbFRpbWUoU2Vj
b25kcyh0aW1lT2ZBZENsaWNrKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvbkVwaGVtZXJhbDo6Tm8pOwogCiAgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgewogICAg
ICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBzdGF0ZW1lbnQuY29sdW1uSW50KDMp
OwpAQCAtMTc0LDEwICsxNzQsMTAgQEAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
RGF0YWJhc2VVdGlsaXRpZXM6OmJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQKIAogICAgICAg
ICAvLyBBIHZhbHVlIG9mIDAuMCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVwb3J0IGhhcyBiZWVuIHNl
bnQgdG8gdGhlIHJlc3BlY3RpdmUgc2l0ZS4KICAgICAgICAgaWYgKHNvdXJjZUVhcmxpZXN0VGlt
ZVRvU2VuZFZhbHVlID4gMC4wKQotICAgICAgICAgICAgc291cmNlRWFybGllc3RUaW1lVG9TZW5k
ID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZFZhbHVl
KTsKKyAgICAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IFdhbGxUaW1lKFNlY29u
ZHMoc291cmNlRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpKTsKIAogICAgICAgICBpZiAoZGVzdGlu
YXRpb25FYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSA+IDAuMCkKLSAgICAgICAgICAgIGRlc3RpbmF0
aW9uRWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRlc3RpbmF0
aW9uRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpOworICAgICAgICAgICAgZGVzdGluYXRpb25FYXJs
aWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZShTZWNvbmRzKGRlc3RpbmF0aW9uRWFybGllc3RUaW1l
VG9TZW5kVmFsdWUpKTsKIAogICAgICAgICBhdHRyaWJ1dGlvbi5zZXRUaW1lc1RvU2VuZCh7IHNv
dXJjZUVhcmxpZXN0VGltZVRvU2VuZCwgZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgfSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA5NzhjZjU2YWNmZGRiZjRhZmMyNzhjNTJjNDM3YTM0YzhkNTc1NTE4Li4wMDlh
NjlkNmJjZDEzYTI5OWM3MTkxMDI3MWM5MzVjODMxYjk0ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtOTM5LDExICs5MzksMTEg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KIH0KICAgICAKICAgICAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0
U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4sIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
Ci0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRMYXN0U2Vlbihkb21haW4s
IHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNldExhc3RTZWVuKGRvbWFpbiwgbGFzdFNlZW4sIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICB9IGVsc2UgewpAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGludCBkb21hCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRp
c3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4x
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2FsbFRp
bWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwg
Ym9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRv
KiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDlkMzJkNTc5NzNhMGViYWMxZDA3MTc1YzZkZjg3OWQ0
NjZjZTY4YTguLmE2ZmM4MzQxOTM3MzRlZDM2YWIwYTJmNjYwNmFhMWNkYTk5ZmRhYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI0Niw5
ICsyNDYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJs
ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9u
SUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRH
cmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGludCBkb21haW5J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRp
c3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVEb21h
aW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJh
Y3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBk
YXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3Qg
VG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBi
b29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxl
bnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0
aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRG
b3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNv
cmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzMmFiMzg0MGI2NmE3Yzc4ZDUzYTM1NDU5MTIwZGRkYjJj
ZjRlOWJjLi5jMTU5MTQ4MGY3YzBhNjk2N2Q5ZDQzZWJiMmI1ZDVmZmRjYTczMzQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTg4LDggKzg4LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIElzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29s
IGlzUHJldmFsZW50KSBBc3luYwogICAgIElzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWlu
KSAtPiAoYm9vbCBpc1ZlcnlQcmV2YWxlbnQpIEFzeW5jCiAgICAgU2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgU2Vj
b25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2Vl
biwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5
UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisgICAg
U2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZXNvdXJjZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pIC0+ICgpIEFzeW5jCisg
ICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdWludDY0X3QgZGF0YVJl
Y29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwogICAgIEluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVE
YXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKICAgICBTZXRQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldFByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lz
dGVtLmNwcAppbmRleCBjODc1YzkzNjRlZTA1MzUyNmQzZjllN2MzNjI3NWQ5MzE5YzVjMTBlLi43
YmE2YjJhNGZiMTk4MTEzNzM1YWZmYTQ1YTczNzZjODhlNWM3ZjVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmls
ZVN5c3RlbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRmlsZVRpbWVzIGZpbGVUaW1lcyhjb25zdCBT
dHJpbmcmIHBhdGgpCiAgICAgc3RydWN0IHN0YXQgZmlsZUluZm87CiAgICAgaWYgKHN0YXQoRmls
ZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSwgJmZpbGVJbmZv
KSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4geyBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1lKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGZp
bGVJbmZvLnN0X210aW1lKSB9OworICAgIHJldHVybiB7IFdhbGxUaW1lKFNlY29uZHMoZmlsZUlu
Zm8uc3RfYmlydGh0aW1lKSksIFdhbGxUaW1lKFNlY29uZHMoZmlsZUluZm8uc3RfbXRpbWUpKSB9
OwogI2VsaWYgVVNFKFNPVVApCiAgICAgLy8gVGhlcmUncyBubyBzdF9iaXJ0aHRpbWUgaW4gc29t
ZSBvcGVyYXRpbmcgc3lzdGVtcyBsaWtlIExpbnV4LCBzbyB3ZSB1c2UgeGF0dHJzIHRvIHNldC9n
ZXQgdGhlIGNyZWF0aW9uIHRpbWUuCiAgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1Jl
ZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihwYXRoKS5kYXRhKCkpKTsKQEAgLTc5LDggKzc5LDEwIEBAIEZpbGVUaW1lcyBmaWxlVGltZXMo
Y29uc3QgU3RyaW5nJiBwYXRoKQogICAgIGNvbnN0IGNoYXIqIGJpcnRodGltZVN0cmluZyA9IGdf
ZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfc3RyaW5nKGZpbGVJbmZvLmdldCgpLCAieGF0dHI6OmJp
cnRodGltZSIpOwogICAgIGlmICghYmlydGh0aW1lU3RyaW5nKQogICAgICAgICByZXR1cm4geyB9
OwotICAgIHJldHVybiB7IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnX2FzY2lpX3N0cnRvdWxs
KGJpcnRodGltZVN0cmluZywgbnVsbHB0ciwgMTApKSwKLSAgICAgICAgV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfdWludDY0KGZpbGVJbmZvLmdldCgp
LCAidGltZTo6bW9kaWZpZWQiKSkgfTsKKyAgICByZXR1cm4geworICAgICAgICBXYWxsVGltZShT
ZWNvbmRzKGdfYXNjaWlfc3RydG91bGwoYmlydGh0aW1lU3RyaW5nLCBudWxscHRyLCAxMCkpKSwK
KyAgICAgICAgV2FsbFRpbWUoU2Vjb25kcyhnX2ZpbGVfaW5mb19nZXRfYXR0cmlidXRlX3VpbnQ2
NChmaWxlSW5mby5nZXQoKSwgInRpbWU6Om1vZGlmaWVkIikpKSwKKyAgICB9OwogI2VsaWYgT1Mo
V0lORE9XUykKICAgICBhdXRvIGNyZWF0ZVRpbWUgPSBGaWxlU3lzdGVtOjpmaWxlQ3JlYXRpb25U
aW1lKHBhdGgpOwogICAgIGF1dG8gbW9kaWZ5VGltZSA9IEZpbGVTeXN0ZW06OmZpbGVNb2RpZmlj
YXRpb25UaW1lKHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGQ5M2FjOWViMmYxMDQ1ZTEz
ZTU3MjVhNDdmMGU3NjkxNTcyYjZjNDEuLjE1YmNiYjkwMjMwY2IwODQ5MGQ3NWVhZWJhZDc3OTkw
NzQ5NmE3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTgzNiw3ICs4MzYsNyBAQCAtICh2b2lk
KVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFz
ayAqKXRhc2sgZGlkRmluaQogCiAgICAgICAgIGF1dG8gZGF0ZVRvTW9ub3RvbmljVGltZSA9IFtd
IChOU0RhdGUgKmRhdGUpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGludGVydmFsID0gZGF0ZS50
aW1lSW50ZXJ2YWxTaW5jZTE5NzApCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhpbnRlcnZhbCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2YWwpKS5hcHByb3hpbWF0
ZU1vbm90b25pY1RpbWUoKTsKICAgICAgICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lIHsgfTsK
ICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGIyMGFhNTFhMGY4NGY5NWFkOGYw
Yjc4MDdkNzQxNzFhZGM1MjA1YTMuLmVjYjdlOWU1MGRlN2FhNDljMTgzZDdkYzQ0ODkwMDU0NTRi
MTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTI3Myw4ICsyNzMsNyBAQCB2b2lkIE5ldHdv
cmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCgpCiAjZWxzZQogICAgICAgICBpZiAobV9uZXR3
b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCAmJiAhbV9uZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9u
c2VFbmQpIHsKICAgICAgICAgICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0X21l
dHJpY3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgICAgICAgICBhdXRvIHJlc3BvbnNlRW5k
ID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVz
cG9uc2VfZW5kKG1ldHJpY3MpKTsKLSAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJl
c3BvbnNlRW5kID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMocmVzcG9uc2VFbmQuc2Vj
b25kcygpKTsKKyAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlRW5kID0g
TW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRy
aWNzX2dldF9yZXNwb25zZV9lbmQobWV0cmljcykpKTsKICAgICAgICAgICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLm1hcmtDb21wbGV0ZSgpOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTMyMSw3ICsz
MjAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlc3VtZSgpCiAgICAgICAgICAgICAg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwogI2Vsc2UKICAgICAgICAgICAgICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dl
dF9tZXRyaWNzKG1fc291cE1lc3NhZ2UuZ2V0KCkpOwotICAgICAgICAgICAgICAgIG1fbmV0d29y
a0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhT
ZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9z
dGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAgICAgICAgICAgICAgICBtX25ldHdvcmtMb2Fk
TWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNv
bmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkpOwogI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgaWYgKCFtX25ldHdvcmtMb2FkTWV0cmljcy5yZWRpcmVjdFN0
YXJ0KQogICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZWRpcmVjdFN0
YXJ0ID0gbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydDsKQEAgLTEyMzIsOCArMTIzMSw3
IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAKICNpZiAhVVNF
KFNPVVAyKQogICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0X21ldHJpY3MobV9z
b3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgYXV0byByZXNwb25zZVN0YXJ0ID0gU2Vjb25kczo6ZnJv
bU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVzcG9uc2Vfc3RhcnQobWV0
cmljcykpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlU3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhyZXNwb25zZVN0YXJ0LnNlY29uZHMoKSk7CisgICAgbV9u
ZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VTdGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6
ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVzcG9uc2Vfc3RhcnQo
bWV0cmljcykpKTsKICNlbmRpZgogCiAgICAgLy8gU291cCBhZGRzIG1vcmUgaGVhZGVycyB0byB0
aGUgcmVxdWVzdCBhZnRlciBzdGFydGluZyBzaWduYWwgaXMgZW1pdHRlZCwgYW5kIGdvdC1oZWFk
ZXJzCkBAIC0xNjExLDIyICsxNjA5LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlk
U3RhcnRSZXF1ZXN0KCkKICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVj
dGlvblN0YXJ0ID0gV2ViQ29yZTo6cmV1c2VkVExTQ29ubmVjdGlvblNlbnRpbmVsOwogI2Vsc2UK
ICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1lc3Nh
Z2UuZ2V0KCkpOwotICAgIGF1dG8gZG9tYWluTG9va3VwU3RhcnQgPSBTZWNvbmRzOjpmcm9tTWlj
cm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9kbnNfc3RhcnQobWV0cmljcykpOwot
ICAgIGF1dG8gZG9tYWluTG9va3VwRW5kID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3Vw
X21lc3NhZ2VfbWV0cmljc19nZXRfZG5zX2VuZChtZXRyaWNzKSk7Ci0gICAgYXV0byBjb25uZWN0
U3RhcnQgPSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dl
dF9jb25uZWN0X3N0YXJ0KG1ldHJpY3MpKTsKLSAgICBhdXRvIGNvbm5lY3RFbmQgPSBTZWNvbmRz
Ojpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9jb25uZWN0X2VuZCht
ZXRyaWNzKSk7Ci0gICAgYXV0byBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBTZWNvbmRzOjpmcm9t
TWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF90bHNfc3RhcnQobWV0cmljcykp
OwotICAgIGF1dG8gcmVxdWVzdFN0YXJ0ID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3Vw
X21lc3NhZ2VfbWV0cmljc19nZXRfcmVxdWVzdF9zdGFydChtZXRyaWNzKSk7CisgICAgbV9uZXR3
b3JrTG9hZE1ldHJpY3MuZG9tYWluTG9va3VwU3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6
OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Ruc19zdGFydChtZXRy
aWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1cEVuZCA9IE1vbm90
b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19n
ZXRfZG5zX2VuZChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmNvbm5lY3RT
dGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3Nh
Z2VfbWV0cmljc19nZXRfY29ubmVjdF9zdGFydChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLmNvbm5lY3RFbmQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3Nl
Y29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Nvbm5lY3RfZW5kKG1ldHJpY3MpKSk7Cisg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gTW9ub3Rvbmlj
VGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF90
bHNfc3RhcnQobWV0cmljcykpKTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZXF1ZXN0U3Rh
cnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdl
X21ldHJpY3NfZ2V0X3JlcXVlc3Rfc3RhcnQobWV0cmljcykpKTsKIAotICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLmRvbWFpbkxvb2t1cFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29u
ZHMoZG9tYWluTG9va3VwU3RhcnQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmlj
cy5kb21haW5Mb29rdXBFbmQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhkb21haW5M
b29rdXBFbmQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0U3Rh
cnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhjb25uZWN0U3RhcnQuc2Vjb25kcygp
KTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0RW5kID0gTW9ub3RvbmljVGltZTo6
ZnJvbVJhd1NlY29uZHMoY29ubmVjdEVuZC5zZWNvbmRzKCkpOwotICAgIGlmICghc2VjdXJlQ29u
bmVjdGlvblN0YXJ0ICYmIG1fY3VycmVudFJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMi
KSkKKyAgICBpZiAoIW1fbmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCAm
JiBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCiAgICAgICAgIG1f
bmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFdlYkNvcmU6OnJldXNl
ZFRMU0Nvbm5lY3Rpb25TZW50aW5lbDsKLSAgICBlbHNlCi0gICAgICAgIG1fbmV0d29ya0xvYWRN
ZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNv
bmRzKHNlY3VyZUNvbm5lY3Rpb25TdGFydC5zZWNvbmRzKCkpOwotICAgIG1fbmV0d29ya0xvYWRN
ZXRyaWNzLnJlcXVlc3RTdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHJlcXVl
c3RTdGFydC5zZWNvbmRzKCkpOwogI2VuZGlmCiB9CiAKQEAgLTE2NDgsNyArMTYzOSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVzdGFydCgpCiAgICAgbV9uZXR3b3JrTG9hZE1l
dHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogI2Vsc2UKICAgICBhdXRv
KiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1lc3NhZ2UuZ2V0KCkp
OwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRy
aWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAgICBtX25ldHdvcmtM
b2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9z
ZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkpOwog
ICAgIG1fY3VycmVudFJlcXVlc3QudXBkYXRlU291cE1lc3NhZ2VCb2R5KG1fc291cE1lc3NhZ2Uu
Z2V0KCksIG1fc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkpOwogI2VuZGlmCiAgICAgbV9uZXR3b3Jr
TG9hZE1ldHJpY3MucmVkaXJlY3RTdGFydCA9IG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3Rh
cnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggZTFlNmIxNjNjMDIwMDExNmZmZjU3NmIxNTllMWI3OGNiY2FjYmQ3Zi4uY2E4MWRiN2M1ZGY0
NTNhN2ViNjY3ODRlYWUwZDhjNDZiYTk2ODZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzYsNDAgKzM2LDYgQEAKIAogbmFtZXNwYWNl
IElQQyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUp
Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKLX0K
LXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGU8RW5jb2Rlcj4o
RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVy
PFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1v
bjo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRp
bWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0aW1lID0gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1l
PiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0g
ICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7Ci0gICAgZGVjb2RlciA+PiB0aW1lOwotICAg
IGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKLX0KLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPERlY29kZXI+KERlY29k
ZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdh
bGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6
RGVjb2RlciYpOwotCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQogewogICAgIGVuY29k
ZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5oCmluZGV4IGZiZjE1ZjkyM2ZiZGY4NjBhMGU2MTEzNTk0OTQ5Zjk1NGIy
OTI0NmIuLmFmZTYxODM4MzdhMTA2N2VlZDc5NGMxYjNkNTZjODRjMWU2M2MxZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMzMsMTEgKzMzLDkg
QEAKICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRXhw
ZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9TSEEx
Lmg+CiAjaW5jbHVkZSA8d3RmL1VuZXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRpbWUu
aD4KIAogbmFtZXNwYWNlIElQQyB7CiAKQEAgLTc5MywxNCArNzkxLDYgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dmFyaWFudDxUeXBlcy4u
Lj4+IHsKICAgICAgICAgcmV0dXJuIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4oVHlwZXMpIC0gMSwg
VHlwZXMuLi4+OjpkZWNvZGUoZGVjb2RlciwgKmkpOwogICAgIH0KIH07Ci0gICAgCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdhbGxU
aW1lJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiwgV2FsbFRpbWUmKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA2NDk4MmJjNDgxMDJhNGFkYjIw
YTdlNjBlMjFiZDQ5MmQ2NTMzNzRjLi43NGJiOWQxZDYzMzRmYWQzYWFmOGQ4NGRlNzFjZmY5ODcx
N2JlMDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTI2MzAsMTkgKzI2MzAsMTkgQEAgc3RkOjpvcHRpb25hbDxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzPiBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjpkZWMKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBzdGF0aXN0aWNzLnJlZ2lzdHJhYmxlRG9t
YWluID0gV1RGTW92ZSgqcmVnaXN0cmFibGVEb21haW4pOwogCi0gICAgZG91YmxlIGxhc3RTZWVu
VGltZUFzRG91YmxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdFNlZW5UaW1lQXNEb3Vi
bGUpKQorICAgIFdhbGxUaW1lIGxhc3RTZWVuVGltZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGxhc3RTZWVuVGltZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgc3RhdGlz
dGljcy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0U2VlblRpbWVBc0Rv
dWJsZSk7CisgICAgc3RhdGlzdGljcy5sYXN0U2VlbiA9IGxhc3RTZWVuVGltZTsKICAgICAKICAg
ICAvLyBVc2VyIGludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNz
LmhhZFVzZXJJbnRlcmFjdGlvbikpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lQXNEb3VibGUpKQor
ICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUpKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotICAgIHN0YXRpc3RpY3MubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWVBc0RvdWJsZSk7CisgICAgc3RhdGlzdGljcy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9u
VGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGF0aXN0aWNzLmdyYW5kZmF0aGVyZWQpKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRv
dWNoRXZlbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hF
dmVudElPUy5tbQppbmRleCAzMjNjOWVjMDMyNTVhY2M5ZWM2YmRhYTNmMDU1YzZkMjAyMjdkYTIx
Li5jMTE5OTJiMGI1YjNiMjE3NDBiZjk3MjRlNmRiYmY5NzY2NDRjMDBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbQpAQCAtMTIy
LDcgKzEyMiw3IEBAIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoY29u
c3QgX1VJV2ViVG91Y2hFdmVudCogZXZlbnQsIFVJS2V5TW9kCiAgICAgOiBXZWJUb3VjaEV2ZW50
KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JVSVdlYlRvdWNoRXZlbnRUeXBlKGV2ZW50LT50eXBl
KSwKICAgICAgICAgd2ViRXZlbnRNb2RpZmllckZsYWdzKGZsYWdzKSwKLSAgICAgICAgV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApLAorICAgICAgICBXYWxsVGltZShT
ZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQo
ZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1
bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNf
UE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rvcnku
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4
IDVhZDM1NjU2MmVkOGJiOTk3OWJkZWRhMjMyMjE5N2JmOGE5YjkyZmUuLmU5YmVlYTYwOTZjNmY0
N2IxZWQ2YjAzOTA4YmI5NzA5ZWQ4ZmQxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
aW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtOTEsNyArOTEsNyBAQCBXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6
V2ViRXZlbnQgKgogICAgIGJvb2wgaXNLZXlwYWQgPSBmYWxzZTsKICAgICBib29sIGlzU3lzdGVt
S2V5ID0gZmFsc2U7CiAgICAgYXV0byBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFtcDsKKyAgICBhdXRvIHRp
bWVzdGFtcCA9IFdhbGxUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSk7CiAKICAgICBpZiAo
d2luZG93c1ZpcnR1YWxLZXlDb2RlID09ICdccicpIHsKICAgICAgICAgdGV4dCA9ICJcciJfczsK
QEAgLTExMSw3ICsxMTEsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1bm1v
ZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9h
cmRFdmVudCB7IHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50
aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0No
YXJDb2RlLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lz
dGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApIH07
CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCB7IHR5cGUsIHRleHQsIHVubW9k
aWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2RlLCBoYW5kbGVkQnlJbnB1dE1ldGhv
ZCwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFt
cCB9OwogfQogCiBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJNb3VzZUV2ZW50KDo6V2ViRXZlbnQgKmV2ZW50KQpAQCAtMTI3LDkgKzEyNyw5IEBAIFdl
YktpdDo6V2ViTW91c2VFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZl
bnQoOjpXZWJFdmVudCAqZXZlbnQpCiAgICAgZmxvYXQgZGVsdGFZID0gMDsKICAgICBmbG9hdCBk
ZWx0YVogPSAwOwogICAgIGludCBjbGlja0NvdW50ID0gMDsKLSAgICBkb3VibGUgdGltZXN0YW1w
ID0gZXZlbnQudGltZXN0YW1wOworICAgIGF1dG8gdGltZXN0YW1wID0gV2FsbFRpbWUoU2Vjb25k
cyhldmVudC50aW1lc3RhbXApKTsKIAotICAgIHJldHVybiBXZWJLaXQ6OldlYk1vdXNlRXZlbnQo
dHlwZSwgYnV0dG9uLCBidXR0b25zLCBwb3NpdGlvbiwgcG9zaXRpb24sIGRlbHRhWCwgZGVsdGFZ
LCBkZWx0YVosIGNsaWNrQ291bnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cj4geyB9LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZXN0YW1wKSk7CisgICAgcmV0dXJu
IFdlYktpdDo6V2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIGJ1dHRvbnMsIHBvc2l0aW9uLCBw
b3NpdGlvbiwgZGVsdGFYLCBkZWx0YVksIGRlbHRhWiwgY2xpY2tDb3VudCwgT3B0aW9uU2V0PFdl
YktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB7IH0sIHRpbWVzdGFtcCk7CiB9CiAKICNpZiBIQVZF
KFVJU0NST0xMVklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQpAQCAtMTYx
LDcgKzE2MSw3IEBAIFdlYktpdDo6V2ViV2hlZWxFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQoVUlTY3JvbGxFdmVudCAqZXZlCiAgICAgV2ViQ29yZTo6RmxvYXRT
aXplIGRlbHRhKGRlbHRhVmVjdG9yLmR4LCBkZWx0YVZlY3Rvci5keSk7CiAgICAgV2ViQ29yZTo6
RmxvYXRTaXplIHdoZWVsVGlja3MgPSBkZWx0YTsKICAgICB3aGVlbFRpY2tzLnNjYWxlKDEuIC8g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAo
KSkpOwotICAgIGF1dG8gdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMo
ZXZlbnQudGltZXN0YW1wKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CisgICAgYXV0byB0aW1lc3Rh
bXAgPSBNb25vdG9uaWNUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSkuYXBwcm94aW1hdGVX
YWxsVGltZSgpOwogICAgIHJldHVybiB7CiAgICAgICAgIFdlYktpdDo6V2ViRXZlbnQ6OldoZWVs
LAogICAgICAgICBzY3JvbGxMb2NhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDhkZmE4OGM2NjM0
ZWUwMGYwMjM5ZDg1ZThiNTA1ZDlkOTVhMTNkOTguLmMxMTFlNzEyNjk0YWQ4MzE4NWYxMjJiYjVl
NjAzY2QyNzRlZjU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFdLCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NM
YXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBo
b3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+c2V0TGFzdFNlZW4oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+
c3RyaW5nKCkpLCBTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRs
ZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFdhbGxUaW1lKFNlY29uZHMo
c2Vjb25kcykpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMjA2LDcgKzIwNiw3IEBA
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRp
c3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVm
IHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJl
Y29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNz
TWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1l
RG9tYWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZURv
bWFpbjIpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBsYXN0U2VlbiB9LCBoYWRVc2VySW50ZXJhY3Rp
b24sIFNlY29uZHMgeyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIH0sIGlzR3JhbmRmYXRoZXJl
ZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBbY29u
dGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lRG9tYWlu
MSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZURvbWFpbjIp
LT5zdHJpbmcoKSksIFdhbGxUaW1lKFNlY29uZHMobGFzdFNlZW4pKSwgaGFkVXNlckludGVyYWN0
aW9uLCBXYWxsVGltZShTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24pKSwgaXNHcmFu
ZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92
ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9y
ZU1vZGlmaWVkU2luY2VIb3UKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFy
VGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAgICAgT3B0aW9uU2V0
PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMgPSBXZWJLaXQ6OldlYnNpdGVEYXRh
VHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDAp
LCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWUoKSwgW2NvbnRleHQsIGNhbGxiYWNrXSB7
CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwogfQpAQCAtODIwLDcgKzgyMCw3
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1p
c3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92
YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHM7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVtb3ZlRGF0
YShkYXRhVHlwZXMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSwgW2NvbnRleHQsIGNhbGxi
YWNrXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVtb3ZlRGF0YShkYXRh
VHlwZXMsIFdhbGxUaW1lKCksIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFj
ayhjb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUyYjA3MzY0NjRiMTY2
ZGQ5MjBjZjM1NTE3MWZiM2E1NjM3MGEzODQuLmIxM2RiYjJkZjJkYjRlZWU0MmQ5MmY1YWQxOGQx
YjlhNmJhNmM5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTg5LDcgKzE4OSw3IEBAIC0gKFdLSFRU
UENvb2tpZVN0b3JlICopaHR0cENvb2tpZVN0b3JlCiBzdGF0aWMgV2FsbFRpbWUgdG9TeXN0ZW1D
bG9ja1RpbWUoTlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAgICByZXR1cm4g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpOwog
fQogCiAtICh2b2lkKWZldGNoRGF0YVJlY29yZHNPZlR5cGVzOihOU1NldCAqKWRhdGFUeXBlcyBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+
ICopKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCmluZGV4IDZiMjk5ZjhlYzRiNjk4
ZWEwMDYxNzQ3NzBmZDUzZTI0NzlkYTE3OGYuLjdkNDE2M2UyMTExNmUzZmNkNjM0ODkxODY2N2Vl
MDBmNjQ4YmIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCkBAIC0xOTcsNyArMTk3LDcgQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICBtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihwYXJlbnRGcmFtZS51
bnNpZ25lZExvbmdMb25nVmFsdWUpLAogICAgICAgICBvcmlnaW5hbFVSTCwKICAgICAgICAgb3Jp
Z2luYWxIVFRQTWV0aG9kLAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnRU
aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKSwKKyAgICAgICAgV2FsbFRpbWUoU2Vjb25k
cyhldmVudFRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApKSwKICAgICAgICAgc3RhdGlj
X2Nhc3Q8Ym9vbD4obG9hZGVkRnJvbUNhY2hlLmJvb2xWYWx1ZSksCiAgICAgICAgIHN0YXRpY19j
YXN0PFdlYktpdDo6UmVzb3VyY2VMb2FkSW5mbzo6VHlwZT4odHlwZS51bnNpZ25lZENoYXJWYWx1
ZSksCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKaW5kZXggYjJkZTVhMmYwM2Vh
MWFiZTlhYWEyNWY0YzhhOGE5MTlmZDYyMzI5Zi4uYmQ5Y2ZmMGVlZmY3NWJlYjRkNGNlMjhjYzgx
NmUxZDZlNTE3NDIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI3MSw3ICsy
NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZGVjb2RlSFRUUEJvZHkoR1ZhcmlhbnQqIGh0dHBC
b2R5VmFyaWFudCwgSFRUUEJvZHkmIGh0dHBCb2R5KQogICAgICAgICBpZiAoaGFzRmlsZUxlbmd0
aCkKICAgICAgICAgICAgIGVsZW1lbnQuZmlsZUxlbmd0aCA9IGZpbGVMZW5ndGg7CiAgICAgICAg
IGlmIChoYXNGaWxlTW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgICAgIGVsZW1lbnQuZXhwZWN0
ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhmaWxlTW9k
aWZpY2F0aW9uVGltZSk7CisgICAgICAgICAgICBlbGVtZW50LmV4cGVjdGVkRmlsZU1vZGlmaWNh
dGlvblRpbWUgPSBXYWxsVGltZShTZWNvbmRzKGZpbGVNb2RpZmljYXRpb25UaW1lKSk7CiAgICAg
ICAgIGVsZW1lbnQuYmxvYlVSTFN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoYmxvYlVSTFN0cmlu
Zyk7CiAKICAgICAgICAgaHR0cEJvZHkuZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUo
ZWxlbWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggNDhlMWVkZTRiYjFkNTcz
ZTI5NDI2NDE5Nzk5YjAyYzRkYWZjMGQzYS4uZjgzNDhiYTVjNzQyMjYzZGVjYmVjMjBlMzVjMWQ2
MTUzZjkxMjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0xMTUyLDcgKzExNTIs
NyBAQCB2b2lkIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGVhcihXZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXIqIG1hbmFnZXIsIFdlYktpdAogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIFdhbGxUaW1lIHRp
bWVQb2ludCA9IHRpbWVTcGFuID8gV2FsbFRpbWU6Om5vdygpIC0gU2Vjb25kczo6ZnJvbU1pY3Jv
c2Vjb25kcyh0aW1lU3BhbikgOiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7CisgICAgV2Fs
bFRpbWUgdGltZVBvaW50ID0gdGltZVNwYW4gPyBXYWxsVGltZTo6bm93KCkgLSBTZWNvbmRzOjpm
cm9tTWljcm9zZWNvbmRzKHRpbWVTcGFuKSA6IFdhbGxUaW1lKCk7CiAgICAgR1JlZlB0cjxHVGFz
az4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3KG1hbmFnZXIsIGNhbmNlbGxhYmxlLCBjYWxs
YmFjaywgdXNlckRhdGEpKTsKICAgICBtYW5hZ2VyLT5wcml2LT53ZWJzaXRlRGF0YVN0b3JlLT5y
ZW1vdmVEYXRhKHRvV2Vic2l0ZURhdGFUeXBlcyh0eXBlcyksIHRpbWVQb2ludCwgW3Rhc2sgPSBX
VEZNb3ZlKHRhc2spXSB7CiAgICAgICAgIGdfdGFza19yZXR1cm5fYm9vbGVhbih0YXNrLmdldCgp
LCBUUlVFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFz
aFNhbHRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmNwcAppbmRleCBmNjI0MzZkNzM4NWQ2ZWFkYTE4NTQ5MjRlODRhYTE4NTViZmI1
YWFkLi5iMjEyMDk1NzE5OWM1NjQ1OTc4Y2YyODBkYTc0MGM1MGEzNDk5YjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwCkBA
IC0xNzcsNyArMTc3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERldmljZUlkSGFzaFNhbHRTdG9yYWdl
OjpIYXNoU2FsdEZvck9yaWdpbj4gRGV2aWNlSWRIYXNoU2FsdFN0b3IKIAogICAgIGF1dG8gaGFz
aFNhbHRGb3JPcmlnaW4gPSBtYWtlVW5pcXVlPEhhc2hTYWx0Rm9yT3JpZ2luPihXVEZNb3ZlKHNl
Y3VyaXR5T3JpZ2luRGF0YS52YWx1ZSgpKSwgV1RGTW92ZShwYXJlbnRTZWN1cml0eU9yaWdpbkRh
dGEudmFsdWUoKSksIFdURk1vdmUoZGV2aWNlSWRIYXNoU2FsdCkpOwogCi0gICAgaGFzaFNhbHRG
b3JPcmlnaW4tPmxhc3RUaW1lVXNlZCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0VGlt
ZVVzZWQpOworICAgIGhhc2hTYWx0Rm9yT3JpZ2luLT5sYXN0VGltZVVzZWQgPSBXYWxsVGltZShT
ZWNvbmRzKGxhc3RUaW1lVXNlZCkpOwogCiAgICAgcmV0dXJuIGhhc2hTYWx0Rm9yT3JpZ2luOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKaW5kZXggZWM5YjM1Mzc2YjlhMzNjOTdmNGE1MDc2MzhkNTBlNDM2YWQ5
ZGUxNC4uMjBjMDc5NjExZDMxZjY5NmQ4Mzc2ODQyMWFiOTg1MjRkYmIzNDJiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCkBAIC02NzQsNyArNjc0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2VlbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgU2Vjb25kcyBsYXN0U2VlbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2VlbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTY5NCw3ICs2OTQsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGludAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShzZXNzaW9uSUQsIGRvbWFpbklEKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om1l
cmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
MiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2
YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWdu
ZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6TWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwgcmVzb3VyY2VEb21h
aW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlcklu
dGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlz
UHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQxYjg2ZTE4OWMyY2YxNzI0
NGQ4YWRlM2Q3ZWQwNWZmODc5MDBlNi4uNzdhODVkZmQxNzQ3NDdkM2YzNTNiMWJiNzc2ZjAwNmEy
YWNkMmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRp
c3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGludCBkb21h
aW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjIs
IFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFs
ZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BG
cmFtZURvbWFpbjIsIFdhbGxUaW1lIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwg
V2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBpbnNl
cnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJl
bW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwgc3Rk
OjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5MDk3OTNlMzc1NjhjMDQy
YjEwMDJhMjZhYTAyNzQ3ODRhOTFlNGNhLi5hZDkyMWQzZjUzYTJkOWE2MjQ0MTExMzljMTRjOTMy
NWRmOTk3MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib28KICAgICBuZXR3b3JrUHJvY2VzcygpLnN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJsLCBT
ZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1cmws
IFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMTg2LDcgKzExODYsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJsLCBTZWNv
bmRzIHNlY29uZHMsIENvbXBsZXRpb25IYQogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3Ig
PSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiAKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNldExhc3RTZWVuKG1fc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBzZWNvbmRzLCBbY2FsbGJhY2tBZ2dyZWdhdG9y
XSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0TGFzdFNlZW4obV9zZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0sIGxhc3RTZWVuLCBbY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRvbWFpbklERXhpc3Rz
SW5EYXRhYmFzZShpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMTk2LDcgKzExOTYsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQsIENvbXBsZXRpb25I
YW5kbGVyPAogICAgIG5ldHdvcmtQcm9jZXNzKCkuZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKG1f
c2Vzc2lvbklELCBkb21haW5JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12
b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwyLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMiwgV2FsbFRpbWUgbGFz
dFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBp
c1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICh1cmwucHJvdG9j
b2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCmluZGV4IDFkZTI1YTY2MDU3ZjJkNjZjNjI5OWU1ZWJiYjgxNDZiZWU5
YjgxZTMuLjkzYTg3NTJhODJiMzFlMWQxZjE2MjgwZjliM2RiZjliYzljMWEwZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKQEAgLTE5NywxMCArMTk3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdyYW5kZmF0
aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIGlzR3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJM
JiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldExh
c3RTZWVuKGNvbnN0IFVSTCYsIFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VI
YXNBbGxUYWJsZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBt
ZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiwgY29uc3QgVVJMJiB0b3BGcmFtZVVy
bDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlz
R3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVu
c2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDIsIFdhbGxUaW1lIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5
UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhj
b25zdCBVUkwmLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92
YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVzdChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2du
aXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIubW0KaW5kZXggYzY0MWVhNzU1MWQzMDExYTYwNjdhYTU3ZjVmNDA0MGQzMDU4NTBhYi4u
OTA4OWRjNWIwYjQ1N2ViMzA4OTMyYWNiNzBkNWUyZjY5MDc1YjAyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1t
CkBAIC0xMjksNyArMTI5LDcgQEAgLSAoc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6TmF0aXZlV2Vi
TW91c2VFdmVudD4pY3JlYXRlTW91c2VFdmVudFdpdGhUeXBlOihXZWJLaXQKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb2ludCB7IFtzZWxmIGxvY2F0aW9uSW5WaWV3OnNlbGYudmlld10gfTsKICAg
ICBhdXRvIGRlbHRhID0gcG9pbnQgLSBXZWJDb3JlOjpJbnRQb2ludCB7IFtfY3VycmVudFRvdWNo
IHByZXZpb3VzTG9jYXRpb25JblZpZXc6c2VsZi52aWV3XSB9OwogICAgIC8vIFVJVG91Y2gncyB0
aW1lc3RhbXAgdXNlcyBtYWNoX2Fic29sdXRlX3RpbWUgYXMgaXRzIHRpbWViYXNlLCBzYW1lIGFz
IE1vbm90b25pY1RpbWUuCi0gICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpmcm9t
UmF3U2Vjb25kcyhbX2N1cnJlbnRUb3VjaCB0aW1lc3RhbXBdKS5hcHByb3hpbWF0ZVdhbGxUaW1l
KCk7CisgICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lKFNlY29uZHMoW19jdXJyZW50
VG91Y2ggdGltZXN0YW1wXSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKICAgICByZXR1cm4gV1RG
OjptYWtlVW5pcXVlPFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBi
dXR0b25zLCBwb2ludCwgcG9pbnQsIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpLCAwLCBb
X2N1cnJlbnRUb3VjaCB0YXBDb3VudF0sIG1vZGlmaWVycywgdGltZXN0YW1wLCAwLCBjYW5jZWxs
ZWQgPyBXZWJLaXQ6Okdlc3R1cmVXYXNDYW5jZWxsZWQ6OlllcyA6IFdlYktpdDo6R2VzdHVyZVdh
c0NhbmNlbGxlZDo6Tm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDY1NWI5ODUwNDcxNjA1
MTg3ZjZhNTk4YjI3ZjE1OTJkMWY1NTg3MDAuLjQ4ZTRhN2MyOGIzZjZhNWM2Mjc2MDYwNGY4MDRh
ODk2ZTNlZWY3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdh
Y3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCkBAIC04NDAsNyArODQwLDcgQEAgc3RhdGlj
IHZvaWQgZGVjb2RlRm9ybURhdGFFbGVtZW50KEhpc3RvcnlFbnRyeURhdGFEZWNvZGVyJiBkZWNv
ZGVyLCBIVFRQQm9keTo6RWwKICAgICAgICAgZG91YmxlIGV4cGVjdGVkRmlsZU1vZGlmaWNhdGlv
blRpbWU7CiAgICAgICAgIGRlY29kZXIgPj4gZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZTsK
ICAgICAgICAgaWYgKCFzdGQ6OmlzbmFuKGV4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUpKQot
ICAgICAgICAgICAgZm9ybURhdGFFbGVtZW50LmV4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUg
PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSk7
CisgICAgICAgICAgICBmb3JtRGF0YUVsZW1lbnQuZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGlt
ZSA9IFdhbGxUaW1lKFNlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSkpOwogCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggMjY3
NTQxMDFhMDhiYjk5OGVhNDk3ZDBlMWUyNzdiOTdlMjc2NWZjMS4uMjljYzJiYzViOGE1Y2UwYmY4
NzUwOGJlYjYzZTg5NDA0ZmRhMGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAg
LTU2OSwxNyArNTY5LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRmx1c2hQZW5kaW5nRWRpdG9yU3Rh
dGVVcGRhdGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxh
dGVNb3VzZURvd24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9z
aXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWUpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1
dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJz
LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOworICAgIFdlYktpdDo6dG9JbXBsKHBh
Z2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0b24sIFdlYktpdDo6dG9JbnRQb2ludChwb3NpdGlv
biksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWUoU2Vjb25kcyh0aW1lKSkpOwogfQog
CiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
aW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICBXZWJLaXQ6OnRvSW1wbChwYWdl
KS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9uKSwg
Y2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwor
ICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCBXZWJLaXQ6
OnRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lKFNl
Y29uZHModGltZSkpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlTW90aW9u
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKIHsK
LSAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJLaXQ6OnRv
SW50UG9pbnQocG9zaXRpb24pLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOworICAg
IFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKFdlYktpdDo6dG9JbnRQ
b2ludChwb3NpdGlvbiksIFdhbGxUaW1lKFNlY29uZHModGltZSkpKTsKIH0KIAogdWludDY0X3Qg
V0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjBkN2M2
MTZhNjZjMTFjMzllODIyOTEwOGI5YzRkMmE2ZjQ5NTE2Mi4uMDM1NTA4MTg0ZTQ1MGI1MDgzNzEy
ZmNjOTBkZjc1NmE1MDAyNDM5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRl
cmx5aW5nIHZhbHVlIGZvciBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1RpbWUuY3BwOgorICAgICAgICAoV1RGOjpUZXN0V2ViS2l0QVBJOjp3dCk6Cisg
ICAgICAgIChXVEY6OlRlc3RXZWJLaXRBUEk6Om10KToKKyAgICAgICAgKFdURjo6VGVzdFdlYktp
dEFQSTo6YXQpOgorICAgICAgICAoV1RGOjpUZXN0V2ViS2l0QVBJOjpkdCk6CisgICAgICAgIFJl
cGxhY2UgYFQ6OmZyb21SYXdTZWNvbmRzKC4uLilgIHdpdGggYFQoU2Vjb25kcyguLi4pKWAuCisK
IDIwMjEtMTItMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgcm9vbSBmb3IgbW9yZSBieXRlY29kZSBpbiBXS0NvbnRlbnRSdWxlTGlz
dCBmaWxlIGZvcm1hdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VGltZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaW1lLmNwcAppbmRleCA1
MzVhYTVhZTg0OWM5MWM4OWJhZWNkZjYxMmVjNDAzMzhkYWE5N2EyLi4wZjU1MzM3ZDJmNWM1YzUw
YTU0YmE3NjcxYTI0NjQzNzFkMjJhMzg5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9UaW1lLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9U
aW1lLmNwcApAQCAtNzcsMjIgKzc3LDIyIEBAIFNlY29uZHMgcyhkb3VibGUgdmFsdWUpCiAKIFdh
bGxUaW1lIHd0KGRvdWJsZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHZhbHVlKTsKKyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyh2YWx1ZSkpOwogfQog
CiBNb25vdG9uaWNUaW1lIG10KGRvdWJsZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gTW9ub3Rvbmlj
VGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgIHJldHVybiBNb25vdG9uaWNUaW1lKFNl
Y29uZHModmFsdWUpKTsKIH0KIAogQXBwcm94aW1hdGVUaW1lIGF0KGRvdWJsZSB2YWx1ZSkKIHsK
LSAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAg
cmV0dXJuIEFwcHJveGltYXRlVGltZShTZWNvbmRzKHZhbHVlKSk7CiB9CiAKIFRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSBkdChkb3VibGUgdmFsdWUsIENsb2NrVHlwZSB0eXBlKQogewotICAgIHJl
dHVybiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmZyb21SYXdTZWNvbmRzKHZhbHVlLCB0eXBl
KTsKKyAgICByZXR1cm4gVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFNlY29uZHModmFsdWUpLCB0
eXBlKTsKIH0KIAogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGR0dyhkb3VibGUgdmFsdWUpCkBA
IC0zOTUsNyArMzk1LDcgQEAgVEVTVChXVEZfVGltZSwgY2xhbXApCiAvLyB0aGV5IGludm9rZXMg
Z2xvYmFsIGNvbnN0cnVjdG9ycyBhbmQgYmVjb21lcyBjb21waWxlIGVycm9ycy4KIHN0YXRpYyBj
b25zdCBNb25vdG9uaWNUaW1lIE5hTiA9IE1vbm90b25pY1RpbWU6Om5hbigpOwogc3RhdGljIGNv
bnN0IE1vbm90b25pY1RpbWUgSW5maW5pdHkgPSBNb25vdG9uaWNUaW1lOjppbmZpbml0eSgpOwot
c3RhdGljIGNvbnN0IE1vbm90b25pY1RpbWUgWmVybyA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdT
ZWNvbmRzKDApOworc3RhdGljIGNvbnN0IE1vbm90b25pY1RpbWUgWmVybyA9IE1vbm90b25pY1Rp
bWUoKTsKIHN0YXRpYyBjb25zdCBNb25vdG9uaWNUaW1lIE9uZSA9IFplcm8gKyBTZWNvbmRzKDEp
Owogc3RhdGljIGNvbnN0IE1vbm90b25pY1RpbWUgTmVnYXRpdmVPbmUgPSBaZXJvIC0gU2Vjb25k
cygxKTsKIHN0YXRpYyBjb25zdCBib29sIFplcm9Jc0ZhbHNlID0gISFaZXJvOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446263</attachid>
            <date>2021-12-07 17:29:18 -0800</date>
            <delta_ts>2021-12-07 17:31:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233795-20211207182917.patch</filename>
            <type>text/plain</type>
            <size>138196</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjFmZmNjZDUwMWU3Mzc5OGRlYzMwYzkwNWRkMDNlMzk2OGJlNTY1OS4uZTRkYTUwMWE5
ZTUwZDcyZDFmN2NlZDY4NzE3MzM0ZmE1NGQ4YzE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDYgQEAKKzIw
MjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBgU2Vjb25kc2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9g
V2FsbFRpbWVgL2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEl0J3MgYWxyZWFkeSB0aGUgY2FzZSB0aGF0IGBNb25vdG9uaWNUaW1lYC9gV2FsbFRp
bWVgL2V0Yy4gdXNlIHNlY29uZHMgYXMgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgdmFsdWUsIHNv
IHdlIHNob3VsZCBqdXN0IHVzZSBgU2Vjb25kc2AgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29udmVy
dCB0by9mcm9tIHRoZXNlCisgICAgICAgIHdyYXBwZXIvUE9ELWVzcXVlIG9iamVjdHMgKGUuZy4g
d2Ugd291bGQgYmUgYWJsZSB0byBkcm9wIGBmcm9tUmF3U2Vjb25kc2AgYW5kIGluc3RlYWQgaGF2
ZSBhCisgICAgICAgIGNvbXBpbGUtdGltZSBndWFyYW50ZWUgdGhhdCB0aGUgZGV2ZWxvcGVyIGtu
b3dzIHRoYXQgdGhlIHVuZGVybHlpbmcgdmFsdWUgcmVwcmVzZW50cyBzZWNvbmRzCisgICAgICAg
IHdoZW4gY3JlYXRpbmcgYSBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuKS4KKworICAg
ICAgICAqIHd0Zi9BcHByb3hpbWF0ZVRpbWUuaDoKKyAgICAgICAgKFdURjo6QXBwcm94aW1hdGVU
aW1lOjpBcHByb3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAg
ICAgIChzdGQ6OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0
Zi9BcHByb3hpbWF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OmR1
bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5jcHA6CisgICAgICAgIChXVEY6
OldhbGxUaW1lOjpub3cpOgorICAgICAgICAoV1RGOjpNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFi
c29sdXRlVGltZSk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6OnRvTWFjaEFic29sdXRl
VGltZSBjb25zdCk6CisgICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6ZnJvbU1hY2hBcHBy
b3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OnRvTWFjaEFwcHJv
eGltYXRlVGltZSBjb25zdCk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Om5vdyk6Cisg
ICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6bm93KToKKyAgICAgICAgKiB3dGYvR2VuZXJp
Y1RpbWVNaXhpbi5oOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjppbmZpbml0eSk6
CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om5hbik6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6
R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNU
aW1lTWl4aW46Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4
aW46Om9wZXJhdG9yJSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I+IGNvbnN0KToK
KyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAg
ICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpHZW5lcmljVGltZU1peGluOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5l
cmljVGltZU1peGluOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpH
ZW5lcmljVGltZU1peGluKToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6ZnJvbVJh
d1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9Nb25vdG9uaWNUaW1lLmg6CisgICAg
ICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Ok1vbm90b25pY1RpbWUpOgorICAgICAgICAoV1RGOjpN
b25vdG9uaWNUaW1lOjpNYXJrYWJsZVRyYWl0czo6aXNFbXB0eVZhbHVlKToKKyAgICAgICAgKHN0
ZDo6aXNuYW4pOgorICAgICAgICAoc3RkOjppc2luZik6CisgICAgICAgIChzdGQ6OmlzZmluaXRl
KToKKyAgICAgICAgKiB3dGYvTW9ub3RvbmljVGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1vbm90
b25pY1RpbWU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9TZWNvbmRzLmNwcDoKKyAgICAg
ICAgKFdURjo6U2Vjb25kczo6b3BlcmF0b3ItIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlLmg6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKToKKyAgICAgICAgKFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUpOiBSZW5hbWVkIGZy
b20gYFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUaW1lOjp3aXRoU2FtZUNsb2NrQW5kUmF3U2Vj
b25kc2AuCisgICAgICAgIChzdGQ6OmlzbmFuKToKKyAgICAgICAgKHN0ZDo6aXNpbmYpOgorICAg
ICAgICAoc3RkOjppc2Zpbml0ZSk6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6ZnJvbVJhd1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9UaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6OndhbGxUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlOjptb25vdG9uaWNUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlOjphcHByb3hpbWF0ZVRpbWUgY29uc3QpOgorICAgICAgICAoV1RGOjpUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6VGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RGOjpU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RG
OjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RG
OjpoYXNFbGFwc2VkKToKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Ok1hcmthYmxlVHJh
aXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAgICAgIChzdGQ6
OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0Zi9XYWxsVGlt
ZS5jcHA6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpkdW1wIGNvbnN0KToKKworICAgICAgICAq
IHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg6CisgICAgICAgIChXVEY6OlBlcnNp
c3RlbmNlOjpDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
UGVyc2lzdGVuY2U6OkNvZGVyPFNlY29uZHM+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgU2Vjb25kc2AgYW5kIGBHZW5l
cmljVGltZU1peGluYCBkZWZpbmUgbWVtYmVyIGBlbmNvZGVgL2BkZWNvZGVgLgorCisgICAgICAg
ICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6dG9X
YWxsVGltZSk6CisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlTW9kaWZpY2F0aW9uVGlt
ZSk6CisgICAgICAgICogd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlQ3JlYXRpb25UaW1lKToKKyAgICAgICAgKiB3dGYvcG9z
aXgvVGhyZWFkaW5nUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRp
bWVkV2FpdCk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6OmZpbGVDcmVhdGlvblRpbWUpOgorICAgICAgICBSZXBsYWNl
IGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorCiAyMDIx
LTEyLTA3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEZldGNo
IGFuZCByZW1vdmUgZmlsZSBzeXN0ZW0gZGF0YSB2aWEgV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggM2ZjMDFjZWYxZDY4ODBiM2Q4NDVmYzQxODcwOTM0YzEwYTUxMzk1ZS4uZTUxNDgy
M2RiMWEwYzAxMGE3ZjE2OWQ3OTJiMmMyY2MwOGExZGRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgxIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBgTW9ub3Rv
bmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhhdCBgTW9ub3RvbmljVGlt
ZWAvYFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRoZSB1bmRlcmx5aW5nCisgICAgICAg
IHZhbHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29uZHNgIHRvIG1ha2UgaXQgZWFzaWVy
IHRvIGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3cmFwcGVyL1BPRC1lc3F1ZSBvYmpl
Y3RzIChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBgZnJvbVJhd1NlY29uZHNgIGFuZCBp
bnN0ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUgZ3VhcmFudGVlIHRoYXQgdGhlIGRl
dmVsb3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHJlcHJlc2VudHMgc2Vjb25k
cworICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25pY1RpbWVgL2BXYWxsVGltZWAvZXRj
LikuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJYUkdhbWVwYWQ6OldlYlhSR2FtZXBhZCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0RGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisgICAgICAgICog
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NWaWRl
b0ZyYW1lTWV0YWRhdGFUaW1lc3RhbXBzKToKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnZhbHVlQXNEYXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKToKKyAgICAg
ICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5w
dXRUeXBlOjp2YWx1ZUFzRGF0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL0ZyYW1lUmF0ZU1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUmF0ZU1v
bml0b3I6OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3Jj
UmVuZGVyQW5kUHVzaEZyYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2VhcmNoUG9w
dXBNZW51Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0b1N5c3RlbUNsb2NrVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvU3lzdGVtQ2xv
Y2tUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNsZWFyTWVkaWFDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxp
dGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3YWxsVGlt
ZUZvckV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyOjpQbGF0
Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNl
MTk3MCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUhUVFBEYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJh
c2U6Omxhc3RNb2RpZmllZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrTG9hZE1ldHJpY3MubW06CisgICAgICAgIChXZWJDb3JlOjpkYXRlVG9Nb25vdG9u
aWNUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyREI6OnNldENvb2tpZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxDYWNoZUVudHJ5OjpDdXJsQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpD
dXJsQ2FjaGVFbnRyeTo6cGFyc2VSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2lu
Y2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRz
KToKKyAgICAgICAgUmVwbGFjZSBgVDo6ZnJvbVJhd1NlY29uZHMoLi4uKWAgd2l0aCBgVChTZWNv
bmRzKC4uLikpYC4KKyAgICAgICAgRHJpdmUtYnk6IFVzZSBgV2FsbFRpbWVgL2BNb25vdG9uaWNU
aW1lYC9ldGMuIGluc3RlYWQgb2YgYSByYXcgYGRvdWJsZWAgd2hlcmUgY29udmVuaWVudC4KKwog
MjAyMS0xMi0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2Fy
ZCB0aGUgV2ViUHJvY2VzcyBpcyBncmFudGVkIGFjY2VzcyB0byB3aGVuIHBhc3RpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYmYxMTcxZWE5ZGU5YzQxNThiNmE1YTVlYTdmODhiZTVmNGM0YzEwOS4uNTgyMTBiMWRm
NmU3YWM3NjU0Yzk0ZWJkZWQ1ZGEyZjI2ODljZmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBA
QAorMjAyMS0xMi0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGBTZWNvbmRzYCBhcyB0aGUgdW5kZXJseWluZyB2YWx1ZSBmb3IgYE1vbm90b25pY1Rp
bWVgL2BXYWxsVGltZWAvZXRjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSXQncyBhbHJlYWR5IHRoZSBjYXNlIHRoYXQgYE1vbm90b25pY1RpbWVgL2BX
YWxsVGltZWAvZXRjLiB1c2Ugc2Vjb25kcyBhcyB0aGUgdW5kZXJseWluZworICAgICAgICB2YWx1
ZSwgc28gd2Ugc2hvdWxkIGp1c3QgdXNlIGBTZWNvbmRzYCB0byBtYWtlIGl0IGVhc2llciB0byBj
b252ZXJ0IHRvL2Zyb20gdGhlc2UKKyAgICAgICAgd3JhcHBlci9QT0QtZXNxdWUgb2JqZWN0cyAo
ZS5nLiB3ZSB3b3VsZCBiZSBhYmxlIHRvIGRyb3AgYGZyb21SYXdTZWNvbmRzYCBhbmQgaW5zdGVh
ZCBoYXZlIGEKKyAgICAgICAgY29tcGlsZS10aW1lIGd1YXJhbnRlZSB0aGF0IHRoZSBkZXZlbG9w
ZXIga25vd3MgdGhhdCB0aGUgdW5kZXJseWluZyB2YWx1ZSByZXByZXNlbnRzIHNlY29uZHMKKyAg
ICAgICAgd2hlbiBjcmVhdGluZyBhIGBNb25vdG9uaWNUaW1lYC9gV2FsbFRpbWVgL2V0Yy4pLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWlucyBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFz
dFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFi
YXNlVXRpbGl0aWVzOjpidWlsZFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlIGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6ZmlsZVRpbWVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUg
VVJMU2Vzc2lvbjp0YXNrOmRpZEZpbmlzaENvbGxlY3RpbmdNZXRyaWNzOl0pOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OnJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpkaWRTdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpkaWRSZXN0YXJ0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNo
RXZlbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2
ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5
Lm1tOgorICAgICAgICAoV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKFdlYklPU0V2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
VGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICh0b1N5c3RlbUNsb2NrVGltZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tOgorICAg
ICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZvIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAg
ICAoZGVjb2RlSFRUUEJvZHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5h
Z2VyX2NsZWFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTo6Z2V0RGF0YUZy
b21EZWNvZGVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
TGFzdFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RT
ZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVy
Lm1tOgorICAgICAgICAoLVtXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIgY3JlYXRlTW91c2VFdmVu
dFdpdGhUeXBlOndhc0NhbmNlbGxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZUZvcm1EYXRh
RWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZURvd24pOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZVVwKToKKyAgICAgICAgKFdLQnVuZGxl
UGFnZVNpbXVsYXRlTW91c2VNb3Rpb24pOgorICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vj
b25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorICAgICAgICBEcml2ZS1ieTogVXNl
IGBXYWxsVGltZWAvYE1vbm90b25pY1RpbWVgL2V0Yy4gaW5zdGVhZCBvZiBhIHJhdyBgZG91Ymxl
YCB3aGVyZSBjb252ZW5pZW50LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAg
ICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgR2VuZXJpY1RpbWVNaXhpbmAgZGVmaW5l
cyBtZW1iZXIgYGVuY29kZWAvYGRlY29kZWAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRl
ZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmZkMDM1YTEwODIxMWQxNmM3N2UzNmJkNDA5ZGRkODU2Y2FiNTM5MC4uMzc4ZDlmY2Y5NTFiNDgz
ZmQ4M2RlZWNhN2VkNTdkZmFkNzY4ZTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZv
ciBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhhdCBgTW9u
b3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRoZSB1bmRlcmx5aW5n
CisgICAgICAgIHZhbHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29uZHNgIHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3cmFwcGVyL1BPRC1l
c3F1ZSBvYmplY3RzIChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBgZnJvbVJhd1NlY29u
ZHNgIGFuZCBpbnN0ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUgZ3VhcmFudGVlIHRo
YXQgdGhlIGRldmVsb3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHJlcHJlc2Vu
dHMgc2Vjb25kcworICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25pY1RpbWVgL2BXYWxs
VGltZWAvZXRjLikuCisKKyAgICAgICAgKiBET00vRE9NSW50ZXJuYWwuaDoKKyAgICAgICAgKGNv
cmUpOgorICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNl
Y29uZHMoLi4uKSlgLgorCiAyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gY29udHJv
bCB3aGljaCBwYXN0ZWJvYXJkIHRoZSBXZWJQcm9jZXNzIGlzIGdyYW50ZWQgYWNjZXNzIHRvIHdo
ZW4gcGFzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXBwcm94aW1hdGVUaW1lLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5jcHAKaW5kZXggZDE3OWVkNWNhMGQ3
NDFiYjMyYTRlMjQ5MzBmNzcyYzE4ZDQ1YmI5Mi4uMTkwMjYwYjE1NWE4ZDIzM2UyZDA2MmY0ODJi
N2U0ZDQzOTg2OGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXBwcm94aW1hdGVUaW1l
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuY3BwCkBAIC00NCw3ICs0
NCw5IEBAIE1vbm90b25pY1RpbWUgQXBwcm94aW1hdGVUaW1lOjphcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSBjb25zdAogCiB2b2lkIEFwcHJveGltYXRlVGltZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewotICAgIG91dC5wcmludCgiQXBwcm94aW1hdGUoIiwgbV92YWx1ZSwgIiBz
ZWMpIik7CisgICAgb3V0LnByaW50KCJBcHByb3hpbWF0ZSgiKTsKKyAgICBzZWNvbmRzU2luY2VF
cG9jaCgpLmR1bXAob3V0KTsKKyAgICBvdXQucHJpbnQoIikiKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuaCBiL1Nv
dXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCmluZGV4IGNiYTNlMGMwMGM4NmZhYTJjYzUy
ZTViZmViNjlkODEwMjMzOTRiYmUuLjYxN2UwMDBlYWZkNWY5MTdiMzJhMzA3ZjA3OTAyMGJmMDdl
NGQxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCkBAIC00Miw2ICs0MiwxMSBAQCBwdWJs
aWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkg
c2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBBcHByb3hpbWF0ZVRpbWUoKS4KICAgICBjb25zdGV4
cHIgQXBwcm94aW1hdGVUaW1lKCkgPSBkZWZhdWx0OwogCisgICAgZXhwbGljaXQgY29uc3RleHBy
IEFwcHJveGltYXRlVGltZShTZWNvbmRzIHNlY29uZHMpCisgICAgICAgIDogR2VuZXJpY1RpbWVN
aXhpbjxBcHByb3hpbWF0ZVRpbWU+KHNlY29uZHMpCisgICAgeworICAgIH0KKwogI2lmIE9TKERB
UldJTikKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEFwcHJveGltYXRlVGltZSBmcm9t
TWFjaEFwcHJveGltYXRlVGltZSh1aW50NjRfdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVp
bnQ2NF90IHRvTWFjaEFwcHJveGltYXRlVGltZSgpIGNvbnN0OwpAQCAtNTYsMjAgKzYxLDEzIEBA
IHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikg
Y29uc3Q7CiAKICAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXByaXZhdGU6Ci0gICAgZnJp
ZW5kIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW48QXBwcm94aW1hdGVUaW1lPjsKLSAgICBjb25zdGV4
cHIgQXBwcm94aW1hdGVUaW1lKGRvdWJsZSByYXdWYWx1ZSkKLSAgICAgICAgOiBHZW5lcmljVGlt
ZU1peGluPEFwcHJveGltYXRlVGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07CiBzdGF0
aWNfYXNzZXJ0KHNpemVvZihBcHByb3hpbWF0ZVRpbWUpID09IHNpemVvZihkb3VibGUpKTsKIAog
c3RydWN0IEFwcHJveGltYXRlVGltZTo6TWFya2FibGVUcmFpdHMgewogICAgIHN0YXRpYyBib29s
IGlzRW1wdHlWYWx1ZShBcHByb3hpbWF0ZVRpbWUgdGltZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBzdGQ6OmlzbmFuKHRpbWUubV92YWx1ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRp
bWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBB
cHByb3hpbWF0ZVRpbWUgZW1wdHlWYWx1ZSgpCkBAIC04NCwxNyArODIsMTcgQEAgbmFtZXNwYWNl
IHN0ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
OworICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAK
IGlubGluZSBib29sIGlzaW5mKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0gICAgcmV0
dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJl
dHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBi
b29sIGlzZmluaXRlKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0
ZDo6aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVy
biBzdGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIHN0ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwIGIv
U291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4IGFhNjhjZGRjMTFjMzc2MDYzNjdh
NmE5Mzg1N2M5OGQ1OWJjNWE2NDAuLjQ5ZWI0NmUxNmY5M2Y1OWY4NDljZDgxYmFhYzcwYzNmMDBl
OGQ0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMg
aW5saW5lIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKIFdhbGxUaW1lIFdhbGxUaW1lOjpub3coKQog
ewotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhjdXJyZW50VGltZSgpKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50VGltZSgpKSk7CiB9CiAKICNpZiBPUyhEQVJXSU4pCkBA
IC0yNjgsNDcgKzI2OCw0NiBAQCBzdGF0aWMgbWFjaF90aW1lYmFzZV9pbmZvX2RhdGFfdCYgbWFj
aFRpbWViYXNlSW5mbygpCiBNb25vdG9uaWNUaW1lIE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJz
b2x1dGVUaW1lKHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byYgaW5mbyA9
IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoKG1hY2hBYnNv
bHV0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKTsKKyAgICByZXR1
cm4gTW9ub3RvbmljVGltZShTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogaW5mby5udW1lcikg
LyAoMS4wZTkgKiBpbmZvLmRlbm9tKSkpOwogfQogCiB1aW50NjRfdCBNb25vdG9uaWNUaW1lOjp0
b01hY2hBYnNvbHV0ZVRpbWUoKSBjb25zdAogewogICAgIGF1dG8mIGluZm8gPSBtYWNoVGltZWJh
c2VJbmZvKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PigobV92YWx1ZSAqIDEu
MGU5ICogaW5mby5kZW5vbSkgLyBpbmZvLm51bWVyKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KChzZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgKiAxLjBlOSAqIGluZm8uZGVu
b20pIC8gaW5mby5udW1lcik7CiB9CiAKIEFwcHJveGltYXRlVGltZSBBcHByb3hpbWF0ZVRpbWU6
OmZyb21NYWNoQXBwcm94aW1hdGVUaW1lKHVpbnQ2NF90IG1hY2hBcHByb3hpbWF0ZVRpbWUpCiB7
CiAgICAgYXV0byYgaW5mbyA9IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gZnJvbVJh
d1NlY29uZHMoKG1hY2hBcHByb3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGlu
Zm8uZGVub20pKTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHMoKG1hY2hBcHBy
b3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKSk7CiB9CiAK
IHVpbnQ2NF90IEFwcHJveGltYXRlVGltZTo6dG9NYWNoQXBwcm94aW1hdGVUaW1lKCkgY29uc3QK
IHsKICAgICBhdXRvJiBpbmZvID0gbWFjaFRpbWViYXNlSW5mbygpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oKG1fdmFsdWUgKiAxLjBlOSAqIGluZm8uZGVub20pIC8gaW5mby5u
dW1lcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pigoc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpICogMS4wZTkgKiBpbmZvLmRlbm9tKSAvIGluZm8ubnVtZXIpOwogfQogI2Vu
ZGlmCiAKIE1vbm90b25pY1RpbWUgTW9ub3RvbmljVGltZTo6bm93KCkKIHsKICNpZiBVU0UoR0xJ
QikKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihnX2dldF9t
b25vdG9uaWNfdGltZSgpIC8gMTAwMDAwMC4wKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUo
U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdfZ2V0X21vbm90b25pY190aW1lKCkgLyAxMDAw
MDAwLjApKSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgcmV0dXJuIGZyb21NYWNoQWJzb2x1dGVU
aW1lKG1hY2hfYWJzb2x1dGVfdGltZSgpKTsKICNlbGlmIE9TKEZVQ0hTSUEpCi0gICAgcmV0dXJu
IGZyb21SYXdTZWNvbmRzKHp4X2Nsb2NrX2dldF9tb25vdG9uaWMoKSAvIHN0YXRpY19jYXN0PGRv
dWJsZT4oWlhfU0VDKDEpKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kcyh6eF9j
bG9ja19nZXRfbW9ub3RvbmljKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KFpYX1NFQygxKSkpKTsK
ICNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRC
U0QpCiAgICAgc3RydWN0IHRpbWVzcGVjIHRzIHsgfTsKICAgICBjbG9ja19nZXR0aW1lKENMT0NL
X01PTk9UT05JQywgJnRzKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8
ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KTsKKyAgICByZXR1cm4gTW9u
b3RvbmljVGltZShTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRzLnR2
X25zZWMgLyAxLjBlOSkpOwogI2Vsc2UKICAgICBzdGF0aWMgZG91YmxlIGxhc3RUaW1lID0gMDsK
ICAgICBkb3VibGUgY3VycmVudFRpbWVOb3cgPSBjdXJyZW50VGltZSgpOwotICAgIGlmIChjdXJy
ZW50VGltZU5vdyA8IGxhc3RUaW1lKQotICAgICAgICByZXR1cm4gbGFzdFRpbWU7Ci0gICAgbGFz
dFRpbWUgPSBjdXJyZW50VGltZU5vdzsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVu
dFRpbWVOb3cpOworICAgIGlmIChjdXJyZW50VGltZU5vdyA+PSBsYXN0VGltZSkKKyAgICAgICAg
bGFzdFRpbWUgPSBjdXJyZW50VGltZU5vdzsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNv
bmRzKGxhc3RUaW1lKSk7CiAjZW5kaWYKIH0KIApAQCAtMzE5LDEzICszMTgsMTMgQEAgQXBwcm94
aW1hdGVUaW1lIEFwcHJveGltYXRlVGltZTo6bm93KCkKICNlbGlmIE9TKExJTlVYKQogICAgIHN0
cnVjdCB0aW1lc3BlYyB0cyB7IH07CiAgICAgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUNf
Q09BUlNFLCAmdHMpOwotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3Vi
bGU+KHRzLnR2X3NlYykgKyB0cy50dl9uc2VjIC8gMS4wZTkpOworICAgIHJldHVybiBBcHByb3hp
bWF0ZVRpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0cy50dl9u
c2VjIC8gMS4wZTkpKTsKICNlbGlmIE9TKEZSRUVCU0QpCiAgICAgc3RydWN0IHRpbWVzcGVjIHRz
IHsgfTsKICAgICBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQ19GQVNULCAmdHMpOwotICAg
IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0
cy50dl9uc2VjIC8gMS4wZTkpOworICAgIHJldHVybiBBcHByb3hpbWF0ZVRpbWUoU2Vjb25kcyhz
dGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0cy50dl9uc2VjIC8gMS4wZTkpKTsKICNl
bHNlCi0gICAgcmV0dXJuIEFwcHJveGltYXRlVGltZTo6ZnJvbVJhd1NlY29uZHMoTW9ub3Rvbmlj
VGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gQXBw
cm94aW1hdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwIGIv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggZjY5MDQ5MjhlZjU1YjBhYjgxZTYw
MDUwYjM5M2FkYzRjNzk5MTY0NC4uOTQ0OWVhYzczNzdjNDdhYjY4NzM2MjJiNjkxY2U3YmFlNzQ5
MmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZl90PCFoYXNfdG9fdGltZV90PHR5cGVuYW1lIEZpbGVUaW1lVHlwZTo6Y2xv
Y2s+Ojp2YWx1ZSwgcwogc3RhdGljIFdhbGxUaW1lIHRvV2FsbFRpbWUoc3RkOjpmaWxlc3lzdGVt
OjpmaWxlX3RpbWVfdHlwZSBmaWxlVGltZSkKIHsKICAgICAvLyBGSVhNRTogVXNlIHN0ZDo6Y2hy
b25vOjpmaWxlX2Nsb2NrOjp0b19zeXMoKSBvbmNlIHdlIGNhbiB1c2UgQysrMjAuCi0gICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0b1RpbWVUKGZpbGVUaW1lKSk7CisgICAgcmV0
dXJuIFdhbGxUaW1lKFNlY29uZHModG9UaW1lVChmaWxlVGltZSkpKTsKIH0KIAogI2VuZGlmIC8v
IEhBVkUoU1REX0ZJTEVTWVNURU0pIHx8IEhBVkUoU1REX0VYUEVSSU1FTlRBTF9GSUxFU1lTVEVN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oIGIvU291cmNl
L1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oCmluZGV4IGFiYmVlMGFlZWRmYzM4Y2I3NDQ0Y2Ex
MjA0YTYzNjAyYjZhNDg2ODAuLjBlYThlOWEwODIyZTI3Y2Y3ZDgwZGRiYjcwMzU5NWYzMWJjOTRj
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0dlbmVyaWNUaW1lTWl4aW4uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9HZW5lcmljVGltZU1peGluLmgKQEAgLTMzLDQwICszMywzMyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZXJpdmVkVGltZT4KIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENhbGwgdGhpcyBpZiB5
b3Uga25vdyBmb3Igc3VyZSB0aGF0IHRoZSBkb3VibGUgcmVwcmVzZW50cyB0aGUgdGltZSBhY2Nv
cmRpbmcgdG8gdGhlCi0gICAgLy8gc2FtZSB0aW1lIHNvdXJjZSBhcyBEZXJpdmVkVGltZS4gSXQg
bXVzdCBiZSBpbiBzZWNvbmRzLgotICAgIHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgZnJv
bVJhd1NlY29uZHMoZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIERlcml2ZWRU
aW1lKHZhbHVlKTsKLSAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBpbmZp
bml0eSgpIHsgcmV0dXJuIERlcml2ZWRUaW1lKFNlY29uZHM6OmluZmluaXR5KCkpOyB9CisgICAg
c3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBuYW4oKSB7IHJldHVybiBEZXJpdmVkVGltZShT
ZWNvbmRzOjpuYW4oKSk7IH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgaW5m
aW5pdHkoKSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OmluZmluaXR5KCkpOyB9Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBuYW4o
KSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpKTsgfQorICAgIGNvbnN0ZXhwciBTZWNvbmRzIHNlY29uZHNTaW5jZUVwb2NoKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWNvbmRzOyB9CiAKLSAgICBjb25zdGV4cHIgU2Vjb25kcyBzZWNv
bmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIFNlY29uZHMobV92YWx1ZSk7IH0KLQotICAg
IGV4cGxpY2l0IGNvbnN0ZXhwciBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3Zh
bHVlOyB9CisgICAgZXhwbGljaXQgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhIW1fc2Vjb25kczsgfQogCiAgICAgY29uc3RleHByIERlcml2ZWRUaW1lIG9wZXJhdG9y
KyhTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNv
bmRzKG1fdmFsdWUgKyBvdGhlci52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIERlcml2ZWRUaW1l
KG1fc2Vjb25kcyArIG90aGVyKTsKICAgICB9CiAKICAgICBjb25zdGV4cHIgRGVyaXZlZFRpbWUg
b3BlcmF0b3ItKFNlY29uZHMgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gZnJv
bVJhd1NlY29uZHMobV92YWx1ZSAtIG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gRGVy
aXZlZFRpbWUobV9zZWNvbmRzIC0gb3RoZXIpOwogICAgIH0KIAogICAgIFNlY29uZHMgb3BlcmF0
b3IlKFNlY29uZHMgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gU2Vjb25kcyB7
IGZtb2QobV92YWx1ZSwgb3RoZXIudmFsdWUoKSkgfTsKKyAgICAgICAgcmV0dXJuIFNlY29uZHMo
Zm1vZChtX3NlY29uZHMudmFsdWUoKSwgb3RoZXIuc2Vjb25kcygpKSk7CiAgICAgfQogCiAgICAg
Ly8gVGltZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBhcyB0aGlzIGNv
dWxkIGFyaXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zLiBTbywgd2Ug
YWxsb3cgaXQuCiAgICAgY29uc3RleHByIERlcml2ZWRUaW1lIG9wZXJhdG9yLSgpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoLW1fdmFsdWUpOworICAgICAgICBy
ZXR1cm4gRGVyaXZlZFRpbWUoLW1fc2Vjb25kcyk7CiAgICAgfQogCiAgICAgRGVyaXZlZFRpbWUg
b3BlcmF0b3IrPShTZWNvbmRzIG90aGVyKQpAQCAtODEsMzcgKzc0LDM3IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0ZXhwciBTZWNvbmRzIG9wZXJhdG9yLShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci5tX3ZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyAtIG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAg
ICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0
dXJuIG1fc2Vjb25kcyA9PSBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAgY29uc3RleHBy
IGJvb2wgb3BlcmF0b3IhPShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3ZhbHVlICE9IG90aGVyLm1fdmFsdWU7CisgICAgICAgIHJldHVybiBtX3NlY29u
ZHMgIT0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBib29sIG9wZXJh
dG9yPChEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlIDwgb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyA8IG90aGVyLm1f
c2Vjb25kczsKICAgICB9CiAKICAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj4oRGVyaXZlZFRp
bWUgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZSA+IG90aGVyLm1f
dmFsdWU7CisgICAgICAgIHJldHVybiBtX3NlY29uZHMgPiBvdGhlci5tX3NlY29uZHM7CiAgICAg
fQogCiAgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I8PShEZXJpdmVkVGltZSBvdGhlcikgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlIDw9IG90aGVyLm1fdmFsdWU7CisgICAg
ICAgIHJldHVybiBtX3NlY29uZHMgPD0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPj0oRGVyaXZlZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gbV92YWx1ZSA+PSBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4g
bV9zZWNvbmRzID49IG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAgICBEZXJpdmVkVGltZSBp
c29sYXRlZENvcHkoKSBjb25zdApAQCAtMTIyLDI3ICsxMTUsMjcgQEAgcHVibGljOgogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgbV92YWx1ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBtX3NlY29uZHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxEZXJpdmVkVGltZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdGltZTsKLSAgICAgICAg
ZGVjb2RlciA+PiB0aW1lOwotICAgICAgICBpZiAoIXRpbWUpCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gc2Vjb25kczsKKyAgICAgICAgZGVjb2RlciA+PiBzZWNvbmRzOworICAgICAg
ICBpZiAoIXNlY29uZHMpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAg
ICByZXR1cm4gRGVyaXZlZFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKKyAgICAgICAgcmV0
dXJuIERlcml2ZWRUaW1lKCpzZWNvbmRzKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRGVyaXZlZFRpbWUmIHRpbWUpCiAgICAgewotICAgICAgICBkb3VibGUgdmFs
dWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICBTZWNvbmRz
IHNlY29uZHM7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vjb25kcykpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdGltZSA9IERlcml2ZWRUaW1lOjpmcm9tUmF3
U2Vjb25kcyh2YWx1ZSk7CisgICAgICAgIHRpbWUgPSBEZXJpdmVkVGltZShzZWNvbmRzKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNTAsMTIgKzE0MywxMyBAQCBwcm90ZWN0
ZWQ6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkg
c2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBEZXJpdmVkVGltZSgpLgogICAgIGNvbnN0ZXhwciBH
ZW5lcmljVGltZU1peGluKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3RleHByIEdlbmVyaWNUaW1l
TWl4aW4oZG91YmxlIHJhd1ZhbHVlKQotICAgICAgICA6IG1fdmFsdWUocmF3VmFsdWUpCisgICAg
ZXhwbGljaXQgY29uc3RleHByIEdlbmVyaWNUaW1lTWl4aW4oU2Vjb25kcyBzZWNvbmRzKQorICAg
ICAgICA6IG1fc2Vjb25kcyhzZWNvbmRzKQogICAgIHsKICAgICB9CiAKLSAgICBkb3VibGUgbV92
YWx1ZSB7IDAgfTsKK3ByaXZhdGU6CisgICAgU2Vjb25kcyBtX3NlY29uZHM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUu
Y3BwIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5jcHAKaW5kZXggNDdjNTA0NmNhYjIz
MmI2YzkyZWFjMjUxYTM0MmE5ZjJhOTRjZDRjZC4uNTE2YWQyNGI4YzFmNTEzZDJiOTVmMzQyMTQx
OWExYmM5YTY3YTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5jcHAKQEAgLTM4LDcgKzM4LDkg
QEAgV2FsbFRpbWUgTW9ub3RvbmljVGltZTo6YXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0CiAK
IHZvaWQgTW9ub3RvbmljVGltZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAg
IG91dC5wcmludCgiTW9ub3RvbmljKCIsIG1fdmFsdWUsICIgc2VjKSIpOworICAgIG91dC5wcmlu
dCgiTW9ub3RvbmljKCIpOworICAgIHNlY29uZHNTaW5jZUVwb2NoKCkuZHVtcChvdXQpOworICAg
IG91dC5wcmludCgiKSIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1Rp
bWUuaAppbmRleCBmZTJhN2FhZTkxYzBlNThiZGFkZWM2MjI2NjQ1Y2ZhYWUyODZlZWNmLi5hN2Y1
NThiZmFhZTI5MmI0MzAyNDAyZjg4ZjRkM2VmNTc2MjQ3ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGlt
ZS5oCkBAIC00NCw2ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2gu
IFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBNb25v
dG9uaWNUaW1lKCkuCiAgICAgY29uc3RleHByIE1vbm90b25pY1RpbWUoKSA9IGRlZmF1bHQ7CiAK
KyAgICBleHBsaWNpdCBjb25zdGV4cHIgTW9ub3RvbmljVGltZShTZWNvbmRzIHNlY29uZHMpCisg
ICAgICAgIDogR2VuZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPihzZWNvbmRzKQorICAgIHsK
KyAgICB9CisKICNpZiBPUyhEQVJXSU4pCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBN
b25vdG9uaWNUaW1lIGZyb21NYWNoQWJzb2x1dGVUaW1lKHVpbnQ2NF90KTsKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdWludDY0X3QgdG9NYWNoQWJzb2x1dGVUaW1lKCkgY29uc3Q7CkBAIC01Nywy
MCArNjIsMTMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKIAogICAgIHN0cnVjdCBNYXJrYWJsZVRyYWl0czsKLQotcHJpdmF0
ZToKLSAgICBmcmllbmQgY2xhc3MgR2VuZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPjsKLSAg
ICBjb25zdGV4cHIgTW9ub3RvbmljVGltZShkb3VibGUgcmF3VmFsdWUpCi0gICAgICAgIDogR2Vu
ZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPihyYXdWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKE1vbm90b25pY1RpbWUpID09IHNpemVvZihkb3VibGUpKTsK
IAogc3RydWN0IE1vbm90b25pY1RpbWU6Ok1hcmthYmxlVHJhaXRzIHsKICAgICBzdGF0aWMgYm9v
bCBpc0VtcHR5VmFsdWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHN0ZDo6aXNuYW4odGltZS5tX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGlt
ZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3RleHByIE1v
bm90b25pY1RpbWUgZW1wdHlWYWx1ZSgpCkBAIC04NSwxNyArODMsMTcgQEAgbmFtZXNwYWNlIHN0
ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6TW9ub3RvbmljVGltZSB0aW1lKQogewotICAg
IHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAg
ICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxp
bmUgYm9vbCBpc2luZihXVEY6Ok1vbm90b25pY1RpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gc3Rk
Ojppc2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0
ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogaW5saW5lIGJvb2wgaXNm
aW5pdGUoV1RGOjpNb25vdG9uaWNUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNmaW5p
dGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6Omlz
ZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIHN0
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2Vjb25kcy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9TZWNvbmRzLmNwcAppbmRleCBmOWYyZjFiYzRkODAzMTUyNzhlZjdjNzAyM2VlYjIwYTA4Y2Q5
ZDgxLi43NDNmZTU4ZmQ0MWFjYmY0ZDUwYjA1OTlmOGNmZmJmZWI2MGE4MjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRz
LmNwcApAQCAtNTksMjIgKzU5LDIyIEBAIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBTZWNvbmRz
OjpvcGVyYXRvcisoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlCiAKIFdhbGxU
aW1lIFNlY29uZHM6Om9wZXJhdG9yLShXYWxsVGltZSBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKCkgLSBvdGhlci5zZWNvbmRzU2luY2VF
cG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBXYWxsVGltZSgqdGhpcyAtIG90aGVyLnNlY29u
ZHNTaW5jZUVwb2NoKCkpOwogfQogCiBNb25vdG9uaWNUaW1lIFNlY29uZHM6Om9wZXJhdG9yLShN
b25vdG9uaWNUaW1lIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
KTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZSgqdGhpcyAtIG90aGVyLnNlY29uZHNTaW5jZUVw
b2NoKCkpOwogfQogCiBBcHByb3hpbWF0ZVRpbWUgU2Vjb25kczo6b3BlcmF0b3ItKEFwcHJveGlt
YXRlVGltZSBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lOjpmcm9t
UmF3U2Vjb25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsK
KyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKCp0aGlzIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBv
Y2goKSk7CiB9CiAKIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBTZWNvbmRzOjpvcGVyYXRvci0o
Y29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1
cm4gb3RoZXIud2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHModmFsdWUoKSAtIG90aGVyLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIG90aGVyLndpdGhTZWNvbmRzRm9y
U2FtZUNsb2NrVHlwZSgqdGhpcyAtIG90aGVyLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB2
b2lkIFNlY29uZHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwCmluZGV4IGUyODVhM2ExNGIyODJjMTBkY2U3
N2M2N2QwMzZkMWMwZGQ0MDk3YWUuLjlmMWI2MzUyZDk1YmJkOTEzZjI5OTNjMDRmNGU1NjBiNjY1
MGJkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcApA
QCAtNTUsMTkgKzU1LDE5IEBAIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6Om5vd1dpdGhTYW1lQ2xvY2soKSBjb25zdAogV2FsbFRpbWUgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3YWxsVGltZSgpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bV90eXBlID09IENsb2NrVHlwZTo6V2FsbCk7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhtX3ZhbHVlKTsKKyAgICByZXR1cm4gV2FsbFRpbWUobV9zZWNvbmRzKTsKIH0KIAog
TW9ub3RvbmljVGltZSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om1vbm90b25pY1RpbWUoKSBj
b25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZSA9PSBDbG9ja1R5cGU6Ok1vbm90b25p
Yyk7Ci0gICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKG1fdmFsdWUpOwor
ICAgIHJldHVybiBNb25vdG9uaWNUaW1lKG1fc2Vjb25kcyk7CiB9CiAKIEFwcHJveGltYXRlVGlt
ZSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmFwcHJveGltYXRlVGltZSgpIGNvbnN0CiB7CiAg
ICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IENsb2NrVHlwZTo6QXBwcm94aW1hdGUpOwotICAg
IHJldHVybiBBcHByb3hpbWF0ZVRpbWU6OmZyb21SYXdTZWNvbmRzKG1fdmFsdWUpOworICAgIHJl
dHVybiBBcHByb3hpbWF0ZVRpbWUobV9zZWNvbmRzKTsKIH0KIAogV2FsbFRpbWUgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjphcHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3QKQEAgLTEwMSwzNiAr
MTAxLDM5IEBAIE1vbm90b25pY1RpbWUgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjphcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSBjb25zdAogU2Vjb25kcyBUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6Om9wZXJhdG9yLShjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25z
dAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJl
dHVybiBTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci5tX3ZhbHVlKTsKKyAgICByZXR1cm4gbV9zZWNv
bmRzIC0gb3RoZXIubV9zZWNvbmRzOwogfQogCiBib29sIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZTo6b3BlcmF0b3I8KGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IG90aGVyLm1fdHlwZSk7Ci0gICAgcmV0
dXJuIG1fdmFsdWUgPCBvdGhlci5tX3ZhbHVlOworICAgIHJldHVybiBtX3NlY29uZHMgPCBvdGhl
ci5tX3NlY29uZHM7CiB9CiAKIGJvb2wgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRv
cj4oY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4gbV92YWx1
ZSA+IG90aGVyLm1fdmFsdWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA+IG90aGVyLm1fc2Vjb25k
czsKIH0KIAogYm9vbCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0oY29uc3Qg
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4gbV92YWx1ZSA8PSBvdGhl
ci5tX3ZhbHVlOworICAgIHJldHVybiBtX3NlY29uZHMgPD0gb3RoZXIubV9zZWNvbmRzOwogfQog
CiBib29sIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I+PShjb25zdCBUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1f
dHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFs
dWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA+PSBvdGhlci5tX3NlY29uZHM7CiB9CiAKIHZvaWQg
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7
Ci0gICAgb3V0LnByaW50KG1fdHlwZSwgIigiLCBtX3ZhbHVlLCAiIHNlYykiKTsKKyAgICBvdXQu
cHJpbnQobV90eXBlKTsKKyAgICBvdXQucHJpbnQoIigiKTsKKyAgICBtX3NlY29uZHMuZHVtcChv
dXQpOworICAgIG91dC5wcmludCgiKSIpOwogfQogCiB2b2lkIHNsZWVwKGNvbnN0IFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSYgdGltZSkKQEAgLTE0NCw3ICsxNDcsNyBAQCB2b2lkIHNsZWVwKGNv
bnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZSkKIGJvb2wgaGFzRWxhcHNlZChjb25z
dCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWUpCiB7CiAgICAgLy8gQXZvaWQgZG9pbmcg
bm93KCkuCi0gICAgaWYgKCEodGltZSA+IHRpbWUud2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMo
MCkpKQorICAgIGlmICghKHRpbWUgPiB0aW1lLndpdGhTZWNvbmRzRm9yU2FtZUNsb2NrVHlwZSgw
X3MpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHN0ZDo6aXNpbmYodGltZS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaCBiL1NvdXJjZS9X
VEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oCmluZGV4IDRjM2U0MWU3OWJhZGI2OGRi
Mjc4YmVkNjFjZWQxMTU2ZTgwODIxYzkuLmMzNmRiN2NkMGEyMDJjN2JjNDk2ODZlMGRlYTc2ZWZh
MjU5M2Q1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oCkBA
IC0zOCw0MyArMzgsMzggQEAgY2xhc3MgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGZpbmFsIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUoKSB7IH0KKworICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShTZWNvbmRz
IHNlY29uZHMsIENsb2NrVHlwZSB0eXBlKQorICAgICAgICA6IG1fc2Vjb25kcyhzZWNvbmRzKQor
ICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgIHsKKyAgICB9CiAgICAgCiAgICAgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lIHRpbWUpCi0gICAgICAgIDogbV92YWx1ZSh0aW1lLnNl
Y29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkKLSAgICAgICAgLCBtX3R5cGUoQ2xvY2tUeXBlOjpX
YWxsKQorICAgICAgICA6IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSh0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCksIENsb2NrVHlwZTo6V2FsbCkKICAgICB7CiAgICAgfQogICAgIAogICAgIFRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZShNb25vdG9uaWNUaW1lIHRpbWUpCi0gICAgICAgIDogbV92YWx1
ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkKLSAgICAgICAgLCBtX3R5cGUoQ2xv
Y2tUeXBlOjpNb25vdG9uaWMpCisgICAgICAgIDogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKHRp
bWUuc2Vjb25kc1NpbmNlRXBvY2goKSwgQ2xvY2tUeXBlOjpNb25vdG9uaWMpCiAgICAgewogICAg
IH0KIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShBcHByb3hpbWF0ZVRpbWUgdGltZSkK
LSAgICAgICAgOiBtX3ZhbHVlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKQotICAg
ICAgICAsIG1fdHlwZShDbG9ja1R5cGU6OkFwcHJveGltYXRlKQorICAgICAgICA6IFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCksIENsb2NrVHlwZTo6QXBw
cm94aW1hdGUpCiAgICAgewogICAgIH0KLQotICAgIHN0YXRpYyBUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUgZnJvbVJhd1NlY29uZHMoZG91YmxlIHZhbHVlLCBDbG9ja1R5cGUgdHlwZSkKLSAgICB7
Ci0gICAgICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSByZXN1bHQ7Ci0gICAgICAgIHJlc3Vs
dC5tX3ZhbHVlID0gdmFsdWU7Ci0gICAgICAgIHJlc3VsdC5tX3R5cGUgPSB0eXBlOwotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgIH0KICAgICAKLSAgICBTZWNvbmRzIHNlY29uZHNTaW5jZUVw
b2NoKCkgY29uc3QgeyByZXR1cm4gU2Vjb25kcyhtX3ZhbHVlKTsgfQorICAgIFNlY29uZHMgc2Vj
b25kc1NpbmNlRXBvY2goKSBjb25zdCB7IHJldHVybiBtX3NlY29uZHM7IH0KICAgICBDbG9ja1R5
cGUgY2xvY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgbm93KENsb2NrVHlw
ZSk7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZSBub3dXaXRoU2FtZUNsb2NrKCkgY29uc3Q7CiAgICAgCi0gICAgVGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlIHdpdGhTYW1lQ2xvY2tBbmRSYXdTZWNvbmRzKGRvdWJsZSB2YWx1ZSkgY29uc3QKKyAg
ICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgd2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tUeXBlKFNl
Y29uZHMgc2Vjb25kcykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6OmZyb21SYXdTZWNvbmRzKHZhbHVlLCBjbG9ja1R5cGUoKSk7CisgICAgICAg
IHJldHVybiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoc2Vjb25kcywgY2xvY2tUeXBlKCkpOwog
ICAgIH0KICAgICAKICAgICAvLyBBc3NlcnRzIHRoYXQgdGhlIHRpbWUgaXMgb2YgdGhlIHR5cGUg
eW91IHdhbnQuCkBAIC04NSwyMyArODAsMjMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBXYWxsVGltZSBhcHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3Q7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIE1vbm90b25pY1RpbWUgYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3Q7
CiAgICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV92
YWx1ZTsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1f
c2Vjb25kczsgfQogICAgIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBvcGVyYXRvciso
U2Vjb25kcyBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB3aXRoU2FtZUNsb2Nr
QW5kUmF3U2Vjb25kcyhtX3ZhbHVlICsgb3RoZXIudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB3
aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUobV9zZWNvbmRzICsgb3RoZXIpOwogICAgIH0KICAg
ICAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3ItKFNlY29uZHMgb3RoZXIp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMo
bV92YWx1ZSAtIG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gd2l0aFNlY29uZHNGb3JT
YW1lQ2xvY2tUeXBlKG1fc2Vjb25kcyAtIG90aGVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gVGlt
ZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBhcyB0aGlzIGNvdWxkIGFy
aXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zLiBTbywgd2UgYWxsb3cg
aXQuCiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIG9wZXJhdG9yLSgpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMoLW1fdmFsdWUpOwor
ICAgICAgICByZXR1cm4gd2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tUeXBlKC1tX3NlY29uZHMpOwog
ICAgIH0KICAgICAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3IrPShTZWNv
bmRzIG90aGVyKQpAQCAtMTE4LDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWUKKyAgICAgICAgcmV0
dXJuIG1fc2Vjb25kcyA9PSBvdGhlci5tX3NlY29uZHMKICAgICAgICAgICAgICYmIG1fdHlwZSA9
PSBvdGhlci5tX3R5cGU7CiAgICAgfQogICAgIApAQCAtMTM2LDcgKzEzMSw3IEBAIHB1YmxpYzoK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAg
ICAgCiBwcml2YXRlOgotICAgIGRvdWJsZSBtX3ZhbHVlIHsgMCB9OworICAgIFNlY29uZHMgbV9z
ZWNvbmRzOwogICAgIENsb2NrVHlwZSBtX3R5cGUgeyBDbG9ja1R5cGU6OldhbGwgfTsKIH07CiAK
QEAgLTE1MCwxNyArMTQ1LDE3IEBAIG5hbWVzcGFjZSBzdGQgewogCiBpbmxpbmUgYm9vbCBpc25h
bihXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6
OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3Rk
Ojppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2lu
ZihXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6
OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3Rk
Ojppc2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2Zp
bml0ZShXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBz
dGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1
cm4gc3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBzdGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcAppbmRleCBkMzE1Zjk1NGMzNDFlYzk1YTFlMTk0MWEx
ZWYzODA2M2RlOWEzMTEyLi40NDM2NmRkNmUwMDVjMTY4ZjM2OGU1MGJiNzI2YzYwZTk3NmI5ZDJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvV2FsbFRpbWUuY3BwCkBAIC0zOCw3ICszOCw5IEBAIE1vbm90b25pY1RpbWUgV2FsbFRp
bWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0CiAKIHZvaWQgV2FsbFRpbWU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoIldhbGwoIiwgbV92
YWx1ZSwgIiBzZWMpIik7CisgICAgb3V0LnByaW50KCJXYWxsKCIpOworICAgIHNlY29uZHNTaW5j
ZUVwb2NoKCkuZHVtcChvdXQpOworICAgIG91dC5wcmludCgiKSIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9XYWxsVGltZS5oCmluZGV4IDRkNGFmOWRiOWIwMTBlNDgxMWE5OWIxNzE1ZjMxNTVh
OThlOWJhYzMuLmE5YmI2NDk0YmI2YzY5YzQ4ZDUzZDc1MTg3ZjNmZmZmYWU4MjE4YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Fs
bFRpbWUuaApAQCAtNDUsNiArNDUsMTEgQEAgcHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhlIGVw
b2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9jaCgpIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4IC0g
V2FsbFRpbWUoKS4KICAgICBjb25zdGV4cHIgV2FsbFRpbWUoKSA9IGRlZmF1bHQ7CiAKKyAgICBl
eHBsaWNpdCBjb25zdGV4cHIgV2FsbFRpbWUoU2Vjb25kcyBzZWNvbmRzKQorICAgICAgICA6IEdl
bmVyaWNUaW1lTWl4aW48V2FsbFRpbWU+KHNlY29uZHMpCisgICAgeworICAgIH0KKwogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2FsbFRpbWUgbm93KCk7CiAgICAgCiAgICAgV2FsbFRp
bWUgYXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9CkBAIC01Mywy
MCArNTgsMTMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKICAgICAKICAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW48V2FsbFRpbWU+OwotICAg
IGNvbnN0ZXhwciBXYWxsVGltZShkb3VibGUgcmF3VmFsdWUpCi0gICAgICAgIDogR2VuZXJpY1Rp
bWVNaXhpbjxXYWxsVGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07CiBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihXYWxsVGltZSkgPT0gc2l6ZW9mKGRvdWJsZSkpOwogCiBzdHJ1Y3QgV2FsbFRp
bWU6Ok1hcmthYmxlVHJhaXRzIHsKICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoV2FsbFRp
bWUgdGltZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUubV92YWx1ZSk7
CisgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBXYWxsVGltZSBlbXB0eVZhbHVlKCkKQEAgLTgz
LDE3ICs4MSwxNyBAQCBuYW1lc3BhY2Ugc3RkIHsKIAogaW5saW5lIGJvb2wgaXNuYW4oV1RGOjpX
YWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2luZihXVEY6OldhbGxUaW1lIHRpbWUpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
OworICAgIHJldHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAK
IGlubGluZSBib29sIGlzZmluaXRlKFdURjo6V2FsbFRpbWUgdGltZSkKIHsKLSAgICByZXR1cm4g
c3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0
dXJuIHN0ZDo6aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2Ugc3RkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJz
aXN0ZW50Q29kZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29k
ZXJzLmgKaW5kZXggMjYwOGU3MWViMzg3ZmU2YzY4ZjBkNGVjNjkxOTA0NTVlZDExODBhMi4uNTIx
YzE0MDM0ZDAwMTk5MjEyNDI4ZTNhZTVkY2FhOGNkYzliOWQ1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaApAQCAtMzEsOSArMzEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvU0hBMS5oPgotI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0
ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJz
aXN0ZW50RW5jb2Rlci5oPgogCkBAIC0yNTUsMzkgKzI1Myw2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3Qg
Q29kZXI8CiAgICAgfQogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29kZXI8U2Vjb25kcz4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZWNvbmRzJiBz
ZWNvbmRzKQotICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7Ci0gICAg
fQotCi0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsdWU7Ci0gICAg
ICAgIGRlY29kZXIgPj4gdmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gU2Vjb25kcygqdmFsdWUpOwotICAg
IH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvZGVyPFdhbGxUaW1lPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQotICAg
IHsKLSAgICAgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsdWU7
Ci0gICAgICAgIGRlY29kZXIgPj4gdmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoKnZhbHVlKTsKLSAgICB9Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2Rl
cjxBdG9tU3RyaW5nPiB7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vRmlsZVN5c3RlbVBsYXlTdGF0aW9uLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlvbi5jcHAK
aW5kZXggYjg4MGViNzdkYjBiOWU1MTczZmQ1MTNlOTcwMGEwMTRiYjc2NGVlMS4uZDdhNmY0NmY3
N2MxMDI0Njg5YWJiNzY0NzcyN2MzZjI2ZWMyZmMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vRmlsZVN5c3RlbVBsYXlTdGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9wbGF5c3RhdGlvbi9GaWxlU3lzdGVtUGxheVN0YXRpb24uY3BwCkBAIC0yNjUsNyArMjY1
LDcgQEAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3Qg
U3RyaW5nJiBwYXRoKQogICAgIGlmIChzdGF0KGZzUmVwLmRhdGEoKSwgJmZpbGVJbmZvKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZmlsZUluZm8uc3RfbXRpbWUpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRz
KGZpbGVJbmZvLnN0X210aW1lKSk7CiB9CiAKIGJvb2wgdXBkYXRlRmlsZU1vZGlmaWNhdGlvblRp
bWUoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9zaXgv
RmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAKaW5kZXggZjEyMTI1Mzg3NjM0NTM1NDE5MjQzZDgxZWM2YzRmZjBiMWJmMDNiMi4uMDUx
ZTVlNTVlMGE2YTdjYTBiMTg5MWIyNTEwOWM2ZGU5N2JhNGIyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gZmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgaWYg
KHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCi0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhmaWxlSW5mby5zdF9i
aXJ0aHRpbWUpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKGZpbGVJbmZvLnN0X2JpcnRo
dGltZSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocGF0aCk7CiAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lY
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcAppbmRleCBkOTI0
NDkwZDFiNTdmM2VlMDZlZTVlYWQ4YTJkM2MxMWMyMGNiNWQxLi41MzVkMDhkMzk4ZTM1MTI0Y2Rm
NzViZWZmOTMyZDM5ODcyMTIyMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9U
aHJlYWRpbmdQT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9T
SVguY3BwCkBAIC02MjIsNyArNjIyLDcgQEAgYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2Fp
dChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKICAgICBpZiAoYWJzb2x1dGVU
aW1lIDwgV2FsbFRpbWU6Om5vdygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
YWJzb2x1dGVUaW1lID4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKElOVF9NQVgpKSB7CisgICAg
aWYgKGFic29sdXRlVGltZSA+IFdhbGxUaW1lKFNlY29uZHMoSU5UX01BWCkpKSB7CiAgICAgICAg
IHdhaXQobXV0ZXgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4v
RmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggMmJjOGYyMDEwNTFjN2Q4NWIxN2I0NGFjMjczOGQyZWQw
MWYyZDk0YS4uNTcwMTY5Y2FlMWI0NDgyZDEwYTYwMTczYWJiOGE5Zjc4Y2ZjNjM3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0ZDo6b3B0
aW9uYWw8V2FsbFRpbWU+IGZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogCiAg
ICAgdGltZV90IHRpbWUgPSAwOwogICAgIGZpbGVDcmVhdGlvblRpbWVGcm9tRmluZERhdGEoZmlu
ZERhdGEsIHRpbWUpOwotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSk7
CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHModGltZSkpOwogfQogCiAjaWYgIVVTRShDRikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNwcAppbmRleCA1
Mjg2ODEwODllNWEzYzVkMWIyY2E5NDU0Y2MyMzU0ZjViMDYyNTU5Li40NTBjYzQzNzRlNmVmOTdj
M2U1MGRkMjdmZWY5ZjBiNDI1MDNiZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUkdhbWVwYWQuY3BwCkBAIC00Miw4ICs0Miw4IEBAIGNvbnN0ZXhwciBpbnQgRGVm
YXVsdFhSR2FtZXBhZElkID0gLTE7CiBXZWJYUkdhbWVwYWQ6OldlYlhSR2FtZXBhZChkb3VibGUg
dGltZXN0YW1wLCBkb3VibGUgY29ubmVjdFRpbWUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6
RnJhbWVEYXRhOjpJbnB1dFNvdXJjZSYgc291cmNlKQogICAgIDogUGxhdGZvcm1HYW1lcGFkKERl
ZmF1bHRYUkdhbWVwYWRJZCkKIHsKLSAgICBtX2xhc3RVcGRhdGVUaW1lID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lc3RhbXApLnZh
bHVlKCkpOwotICAgIG1fY29ubmVjdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25k
cyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGNvbm5lY3RUaW1lKS52YWx1ZSgpKTsKKyAgICBt
X2xhc3RVcGRhdGVUaW1lID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KHRpbWVzdGFtcCkpOworICAgIG1fY29ubmVjdFRpbWUgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHMoY29ubmVjdFRpbWUpKTsKICAgICAvLyBJbiBvcmRlciB0byByZXBv
cnQgYSBtYXBwaW5nIG9mICJ4ci1zdGFuZGFyZCIgdGhlIGRldmljZSBNVVNUIHJlcG9ydCBhIHRh
cmdldFJheU1vZGUgb2YgInRyYWNrZWQtcG9pbnRlciIgYW5kIE1VU1QgaGF2ZSBhIG5vbi1udWxs
IGdyaXBTcGFjZS4KICAgICAvLyBJdCBNVVNUIGhhdmUgYXQgbGVhc3Qgb25lIHByaW1hcnkgdHJp
Z2dlciwgc2VwYXJhdGUgZnJvbSBhbnkgdG91Y2hwYWRzIG9yIHRodW1ic3RpY2tzCiAgICAgaWYg
KHNvdXJjZS50YXJnZXRSYXlNb2RlID09IFhSVGFyZ2V0UmF5TW9kZTo6VHJhY2tlZFBvaW50ZXIg
JiYgIXNvdXJjZS5idXR0b25zLmlzRW1wdHkoKSAmJiBzb3VyY2UuZ3JpcE9yaWdpbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5k
ZXggMWNhMGQ2NTczMjEwYmYxYTgwZDg5MmFhMmI3MThlNjVhZWM2MDQ2ZS4uM2U4NzVmZmEwNjM0
OTM0OTllNGIxNDNlYmNlMDUyOGI0ZmU5NjBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBz
dGF0aWMgYm9vbCBnZXQoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFs
dWUgb2JqZWN0LCBjb25zdCBTdHJpbgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGtleVBhdGhFbGVtZW50ID09ICJsYXN0TW9kaWZpZWREYXRlIikgewot
ICAgICAgICAgICAgcmVzdWx0ID0ganNEYXRlKGxleGljYWxHbG9iYWxPYmplY3QsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGpzQ2FzdDxKU0ZpbGUq
PihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlmaWVkKCkpLnZhbHVlKCkpKTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IGpzRGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZShTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlm
aWVkKCkpKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAg
LTE3Nyw3ICsxNzcsNyBAQCBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgY2FzZSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGU6CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJs
eSBiZSB0b0pTPElETERhdGU+KC4uLikgYXMgcGVyOgogICAgICAgICAvLyBodHRwOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI3JlcXVlc3QtY29udmVydC1hLWtleS10by1hLXZhbHVlCi0gICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZy
b21NaWxsaXNlY29uZHMoa2V5LT5kYXRlKCkpLnZhbHVlKCkpKSk7CisgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgV2FsbFRpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhrZXktPmRhdGUoKSkp
KSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpN
aW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRE
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3Bw
CmluZGV4IGQ4MDcwYzhjMTU1Y2YyZjcyYWVmNTRkODI2OWY0NjdjOGM1MTczNTMuLjUzM2Y3OTJh
Yzc0ZDYxOWM1OTliYmI2YjgyYjcxYWM1MzY3ZDRlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFdhbGxU
aW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiAgICAgZWxzZSBpZiAodmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAg
bWlsbGlzZWNvbmRzID0gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgdm0sIHZhbHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogCi0gICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1p
bGxpc2Vjb25kcykudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApp
bmRleCA2YzM4MWFhNzAxYzk0MDcyNjYxY2UwZTE1MmYyNTkxYjU0NzE0OTkxLi45ZDg4Y2M5YWIz
MjQxZWI2ZjU0MjUzN2Y0MTY5OTQ5YmRlMGMxNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKCkKIAogV2Fs
bFRpbWUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNv
bmRzKHZhbHVlQXNEb3VibGUoKSkudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0RvdWJsZSgpKSk7CiB9CiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUg
dmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCBlYzgzNTFjMDk3NzQ4YjE0OWE5NDQzOWJhYjY5NTc4ZWU5MDAxYTBlLi43OWU1MDRkZTIwNWU2
YjNlNzhjM2NkNmFmMmIyMWJjOTJmNjc0ZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTExMTYsNyArMTExNiw3IEBAIFdhbGxUaW1lIEhUTUxNZWRpYUVs
ZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAg
cmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKIAotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMobV9wbGF5ZXItPmdldFN0YXJ0RGF0ZSgpLnRvRG91YmxlKCkpOworICAgIHJldHVybiBX
YWxsVGltZShtX3BsYXllci0+Z2V0U3RhcnREYXRlKCkudG9Eb3VibGUoKSk7CiB9CiAKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAppbmRleCA5NDhkMWQ0MTc0OGU5ZmFkMjkyMmNhZjcwY2ViNjY4YjQ4OGU5OTQxLi4z
ODYzNDlhY2E5MTU2NzJkZWJlYzk0ZmUyYWI4OWMxZjA1ODA3MWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTYxOCwxMiArNjE4LDEyIEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGlkZW50aWZp
ZXIpCiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NWaWRlb0ZyYW1lTWV0YWRhdGFUaW1lc3RhbXBzKFZp
ZGVvRnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFBlcmZvcm1hbmNlJiBwZXJmb3JtYW5jZSkKIHsK
LSAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1l
RnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdT
ZWNvbmRzKG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUpKTsKLSAgICBtZXRhZGF0YS5leHBlY3Rl
ZERpc3BsYXlUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJl
ZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKG1ldGFkYXRhLmV4
cGVjdGVkRGlzcGxheVRpbWUpKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lID0gcGVy
Zm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1v
bm90b25pY1RpbWUoU2Vjb25kcyhtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lKSkpOworICAgIG1l
dGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9t
VGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24oTW9ub3RvbmljVGltZShTZWNvbmRzKG1ldGFk
YXRhLmV4cGVjdGVkRGlzcGxheVRpbWUpKSk7CiAgICAgaWYgKG1ldGFkYXRhLmNhcHR1cmVUaW1l
KQotICAgICAgICBtZXRhZGF0YS5jYXB0dXJlVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZlVGlt
ZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lOjpmcm9tUmF3
U2Vjb25kcygqbWV0YWRhdGEuY2FwdHVyZVRpbWUpKTsKKyAgICAgICAgbWV0YWRhdGEuY2FwdHVy
ZVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJl
c29sdXRpb24oTW9ub3RvbmljVGltZShTZWNvbmRzKCptZXRhZGF0YS5jYXB0dXJlVGltZSkpKTsK
ICAgICBpZiAobWV0YWRhdGEucmVjZWl2ZVRpbWUpCi0gICAgICAgIG1ldGFkYXRhLnJlY2VpdmVU
aW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNv
bHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKCptZXRhZGF0YS5yZWNlaXZlVGlt
ZSkpOworICAgICAgICBtZXRhZGF0YS5yZWNlaXZlVGltZSA9IHBlcmZvcm1hbmNlLnJlbGF0aXZl
VGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lKFNlY29u
ZHMoKm1ldGFkYXRhLnJlY2VpdmVUaW1lKSkpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6
OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyhSZWR1Y2VkUmVzb2x1dGlvblNlY29u
ZHMgbm93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCAxOTgzYzQw
OTk4ZjA2NTdiMTdkMWQ4MGRlYjI4MGJkNjJlNzQ1ODExLi43NTk3N2I4OTVjYzYyMGQxNjJjZWY2
OWNmMjUyNmU1MDc4NGFkNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNw
cApAQCAtNzIsNyArNzIsNyBAQCBXYWxsVGltZSBNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUo
KSBjb25zdAogICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogICAgIGRvdWJsZSBtc2Vj
ID0gZGF0ZS0+bWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwogICAgIEFTU0VSVChzdGQ6OmlzZmlu
aXRlKG1zZWMpKTsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHMobXNlYykudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNl
Y29uZHM6OmZyb21NaWxsaXNlY29uZHMobXNlYykpOwogfQogCiBTdHJpbmcgTW9udGhJbnB1dFR5
cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCmluZGV4IGU1
NTViMjc5N2Q4YzVjZjcyOThlNzcwOTk1ZDZiZmQwMGRhYjM3OTMuLmI3ODZiMTc4NTE1YmI0NDEx
NDM2NDkzZjQ5MzcyMzUwZmFkZTQwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IG1vZGVsVmVyc2lvbgogICAgIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFz
RG91YmxlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVEb3VibGUoIm1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24iLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lQXNEb3Vi
bGUpOworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWUoU2Vjb25k
cyhtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlKSk7CiAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlQm9vbCgiZ3JhbmRmYXRoZXJlZCIsIGdyYW5kZmF0aGVyZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0zMjYsNyArMzI2LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBtb2RlbFZlcnNp
b24KICAgICBkb3VibGUgbGFzdFNlZW5UaW1lQXNEb3VibGU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZURvdWJsZSgibGFzdFNlZW4iLCBsYXN0U2VlblRpbWVBc0RvdWJsZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBsYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0
U2VlblRpbWVBc0RvdWJsZSk7CisgICAgbGFzdFNlZW4gPSBXYWxsVGltZShTZWNvbmRzKGxhc3RT
ZWVuVGltZUFzRG91YmxlKSk7CiAKICAgICBpZiAobW9kZWxWZXJzaW9uID49IDExKSB7CiAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlE
dWVUb1VzZXJJbnRlcmFjdGlvbiIsIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJ
bnRlcmFjdGlvbikpCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzOjptZXJnZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBvdGhlcikKIAogV2FsbFRp
bWUgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24oV2FsbFRpbWUg
dGltZSkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0ZDo6Zmxvb3Io
dGltZS5zZWNvbmRzU2luY2VFcG9jaCgpIC8gdGltZXN0YW1wUmVzb2x1dGlvbikgKiB0aW1lc3Rh
bXBSZXNvbHV0aW9uLnNlY29uZHMoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoc3Rk
OjpmbG9vcih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkgLyB0aW1lc3RhbXBSZXNvbHV0aW9uKSAq
IHRpbWVzdGFtcFJlc29sdXRpb24uc2Vjb25kcygpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IGE5YjU4Mjg3M2FlNDU1
OTE3MzdlODA2ODkyNGNkYWY0NWQ0MWNmODUuLmExZDEzYjBlMTczNDQ0MzZiMDJjMWE0ZTBhZmM2
ZmVmNjYzNjZlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuaApAQCAtNzIsNyArNzIsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyB7CiAgICAgLy8gVXNlciBpbnRlcmFjdGlvbgogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9u
IHsgZmFsc2UgfTsKICAgICAvLyBUaW1lc3RhbXAuIERlZmF1bHQgdmFsdWUgaXMgbmVnYXRpdmUs
IDAgbWVhbnMgaXQgd2FzIHJlc2V0LgotICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb25UaW1lIHsgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSB9OworICAgIFdhbGxUaW1l
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIHsgLTFfcyB9OwogICAgIGJvb2wgZ3JhbmRm
YXRoZXJlZCB7IGZhbHNlIH07CiAKICAgICAvLyBTdG9yYWdlIGFjY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcAppbmRleCAzZmJlMTZmNTQ0ZGM2MTNm
YWU0MmVmZThjZThjMzQwMzY2YTA4MjhkLi4yNGU4YzM3OWZlYThiZjkzZmM4N2M3ZmZhMjRkNzg0
ODZjMjFkMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9y
LmNwcApAQCAtMzYsMjIgKzM2LDIyIEBAIHZvaWQgRnJhbWVSYXRlTW9uaXRvcjo6dXBkYXRlKCkK
IHsKICAgICArK21fZnJhbWVDb3VudDsKIAotICAgIGF1dG8gZnJhbWVUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOworICAgIGF1dG8gZnJhbWVU
aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYXV0byBsYXN0RnJhbWVUaW1lID0gbV9v
YnNlcnZlZEZyYW1lVGltZVN0YW1wcy5pc0VtcHR5KCkgPyBmcmFtZVRpbWUgOiBtX29ic2VydmVk
RnJhbWVUaW1lU3RhbXBzLmxhc3QoKTsKIAogICAgIGlmIChtX29ic2VydmVkRnJhbWVSYXRlKSB7
Ci0gICAgICAgIGF1dG8gbWF4RGVsYXkgPSBNYXhGcmFtZURlbGF5Q291bnQgLyBtX29ic2VydmVk
RnJhbWVSYXRlOworICAgICAgICBhdXRvIG1heERlbGF5ID0gU2Vjb25kcyhNYXhGcmFtZURlbGF5
Q291bnQgLyBtX29ic2VydmVkRnJhbWVSYXRlKTsKICAgICAgICAgaWYgKChmcmFtZVRpbWUgLSBs
YXN0RnJhbWVUaW1lKSA+IG1heERlbGF5KQotICAgICAgICAgICAgbV9sYXRlRnJhbWVDYWxsYmFj
ayh7IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGZyYW1lVGltZSksIE1vbm90b25pY1Rp
bWU6OmZyb21SYXdTZWNvbmRzKGxhc3RGcmFtZVRpbWUpIH0pOworICAgICAgICAgICAgbV9sYXRl
RnJhbWVDYWxsYmFjayh7IGZyYW1lVGltZSwgbGFzdEZyYW1lVGltZSB9KTsKICAgICB9CiAgICAg
bV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5hcHBlbmQoZnJhbWVUaW1lKTsKICAgICBtX29ic2Vy
dmVkRnJhbWVUaW1lU3RhbXBzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShhdXRvIHRpbWUpIHsKLSAg
ICAgICAgcmV0dXJuIHRpbWUgPD0gZnJhbWVUaW1lIC0gTWF4UXVldWVEdXJhdGlvbi52YWx1ZSgp
OworICAgICAgICByZXR1cm4gdGltZSA8PSBmcmFtZVRpbWUgLSBNYXhRdWV1ZUR1cmF0aW9uOwog
ICAgIH0pOwogCiAgICAgYXV0byBxdWV1ZUR1cmF0aW9uID0gbV9vYnNlcnZlZEZyYW1lVGltZVN0
YW1wcy5sYXN0KCkgLSBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLmZpcnN0KCk7Ci0gICAgaWYg
KHF1ZXVlRHVyYXRpb24gPiBNaW5pbXVtQXZlcmFnZUR1cmF0aW9uLnZhbHVlKCkpCi0gICAgICAg
IG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5zaXplKCkg
LyBxdWV1ZUR1cmF0aW9uKTsKKyAgICBpZiAocXVldWVEdXJhdGlvbiA+IE1pbmltdW1BdmVyYWdl
RHVyYXRpb24pCisgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSBtX29ic2VydmVkRnJhbWVU
aW1lU3RhbXBzLnNpemUoKSAvIHF1ZXVlRHVyYXRpb24uc2Vjb25kcygpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmgKaW5kZXggMzMwNzcwMWE1MTkx
ZTM2YWNjYWZkZGUwYzVmOTcwZjQ4NDA2ZjMxYy4uMThjYmY4M2YyYWQ0NTYzZmNkNDU2ZDQ5ZmMy
ZjM0MzhkMjZmNzllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVS
YXRlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYW1lUmF0ZU1vbml0
b3IuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTGF0ZUZyYW1l
Q2FsbGJhY2sgbV9sYXRlRnJhbWVDYWxsYmFjazsKLSAgICBEZXF1ZTxkb3VibGUsIDEyMD4gbV9v
YnNlcnZlZEZyYW1lVGltZVN0YW1wczsKKyAgICBEZXF1ZTxNb25vdG9uaWNUaW1lLCAxMjA+IG1f
b2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUg
eyAwIH07CiAgICAgdWludDY0X3QgbV9mcmFtZUNvdW50IHsgMCB9OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1Nv
dXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFjNjk5ZmJlZTQ1OGEz
ODUyN2E1MDIxZjFmMGNhMDI3ZDJkOWIxOTguLjJlYzE2MGQ0ZjkzYzAxZTM4YmVhNWQ3MWUyYmQ0
MmM2OTgzZTBlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3Jj
UmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+JiYgZWxlbWVudCwKICAgICBp
ZiAoYXV0byBjbG9jayA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfY2xvY2soZWxlbWVudC5n
ZXQoKSkpKSB7CiAgICAgICAgIGF1dG8gY2xvY2tUaW1lID0gZ3N0X2Nsb2NrX2dldF90aW1lKGNs
b2NrLmdldCgpKTsKICAgICAgICAgb3V0cHV0VGltZXN0YW1wLnBvc2l0aW9uID0gU2Vjb25kczo6
ZnJvbU5hbm9zZWNvbmRzKHRpbWVzdGFtcCk7Ci0gICAgICAgIG91dHB1dFRpbWVzdGFtcC50aW1l
c3RhbXAgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+
KChnX2dldF9tb25vdG9uaWNfdGltZSgpICsgR1NUX1RJTUVfQVNfVVNFQ09ORFMoY2xvY2tUaW1l
KSkgLyAxMDAwMDAwLjApKTsKKyAgICAgICAgb3V0cHV0VGltZXN0YW1wLnRpbWVzdGFtcCA9IE1v
bm90b25pY1RpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KChnX2dldF9tb25vdG9uaWNf
dGltZSgpICsgR1NUX1RJTUVfQVNfVVNFQ09ORFMoY2xvY2tUaW1lKSkgLyAxMDAwMDAwLjApKSk7
CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2NhbC9saXZlIGF1ZGlv
IGlucHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2VhcmNo
UG9wdXBNZW51Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQ
b3B1cE1lbnVDb2NvYS5tbQppbmRleCAzYmRmNDk1OWNiNjAxYTc2ZTNhMzI5ZGZhYTMyN2M0MjMx
MzE5OGZhLi5kNGZiMmNkMzFiNmY3NGUxODJkNDhmZjYyODRiZTFhMDk4NWRmYzA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1lbnVDb2Nv
YS5tbQpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25h
cnk+IHJlYWRTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzUGxpc3QoKQogc3RhdGljIFdhbGxUaW1l
IHRvU3lzdGVtQ2xvY2tUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsKICAgICBBU1NFUlQoZGF0ZSk7Ci0g
ICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNl
MTk3MCk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoZGF0ZS50aW1lSW50ZXJ2YWxTaW5j
ZTE5NzApKTsKIH0KIAogc3RhdGljIE5TRGF0ZSAqdG9OU0RhdGVGcm9tU3lzdGVtQ2xvY2soV2Fs
bFRpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQxOGE4NWE3OTRmNTIzZjk0
OTEyZTI3ZjA4YjdjY2JlODkzYzhlZDAuLmEwOTc3YjRiZTExZGVkZmFjZmY5MTVmNTkwOWY2MGFl
OWQyMGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzg2LDcgKzM4Niw3IEBAIEhh
c2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpvcmlnaW5zSW5NZWRpYUNhCiBzdGF0aWMgV2FsbFRpbWUgdG9TeXN0ZW1DbG9ja1RpbWUo
TlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAgICByZXR1cm4gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZShjb25z
dCBTdHJpbmcmIHBhdGgsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpCkBAIC00MDMsNyArNDAzLDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjbGVhck1lZGlhQ2Fj
aGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXYWwKICAgICBOU0ZpbGVNYW5hZ2VyICpmaWxlTWFuYWdl
ciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKICAgICBOU1VSTCAqYmFzZVVSTCA9
IFthc3NldENhY2hlIFVSTF07CiAKLSAgICBpZiAobW9kaWZpZWRTaW5jZSA8PSBXYWxsVGltZTo6
ZnJvbVJhd1NlY29uZHMoMCkpIHsKKyAgICBpZiAobW9kaWZpZWRTaW5jZSA8PSBXYWxsVGltZSgp
KSB7CiAgICAgICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRVUkw6YmFzZVVSTCBlcnJvcjpu
aWxdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA3YjBkNmRlOThiMzgzM2M2ZTIyYjk1OTcwYjljNTU4
YzQwMzJiNjUxLi4wNDA4ODZkMzZkMWM4YTMwNWJlOTM3YTI3ZjQwMWU3NjE4OWFmYjk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApAQCAtMTM0LDcg
KzEzNCw3IEBAIFdhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50
KQogI2VuZGlmCiAgICAgaWYgKHRpbWUgPT0gR0RLX0NVUlJFTlRfVElNRSkKICAgICAgICAgcmV0
dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1Nl
Y29uZHModGltZSAvIDEwMDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CisgICAgcmV0dXJuIE1v
bm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lKSkuYXBwcm94aW1hdGVX
YWxsVGltZSgpOwogfQogCiBTdHJpbmcgZGVmYXVsdEd0a1N5c3RlbUZvbnQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCmluZGV4IGE1ZmFjYjIxMGQxY2NlYmQw
OGFlNmY0NmYxZjM0YTRjOWJjMmVmNzkuLjAwY2NlN2FjOGRhZGZkMTM5OWE2YzFlMGRlMzk4ZTli
ODg4MzY4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgK
QEAgLTQxLDcgKzQxLDcgQEAgV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtFdmVu
dFR5cGUqIGV2ZW50KQogICAgIGNvbnN0IGF1dG8gZXZlbnRUaW1lID0gZ2RrX2V2ZW50X2dldF90
aW1lKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihjb25zdF9jYXN0PEdka0V2ZW50VHlwZSo+
KGV2ZW50KSkpOwogICAgIGlmIChldmVudFRpbWUgPT0gR0RLX0NVUlJFTlRfVElNRSkKICAgICAg
ICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJv
bVJhd1NlY29uZHMoZXZlbnRUaW1lIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKKyAg
ICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGV2ZW50VGlt
ZSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKIH0KIAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCmlu
ZGV4IDA3NzNmNTg4NmU0MGEwMmVhOWUzY2EwODAyMDVjNDcyYTliMjgzNDkuLjE2N2RkOWY3ZmE2
YjFlOTI0YWZiZGVhM2JmZmExNmFjMjJmNTc5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTYwMiw3ICs2
MDIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3R5cGUgPSB0b3VjaEV2ZW50VHlwZShl
dmVudCk7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwot
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50aW1l
c3RhbXApOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lKFNlY29uZHMoZXZlbnQudGlt
ZXN0YW1wKSk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSBldmVudC5nZXN0dXJlU2NhbGU7
CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQuZ2VzdHVyZVJvdGF0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tCmluZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJhODRhMzM0MjgzOTZlNWUuLmQ1
NTQ2MWJmM2MzZDFjM2JhMjZlZmJhMjExMmIzNDBlMTljYWFiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAg
LTYwOSw3ICs2MDksNyBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJ
bnRlcnZhbFNpbmNlMTk3MCgpCiAKIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5T
VGltZUludGVydmFsIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNl
MTk3MCgpICsgdGltZXN0YW1wKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoY2FjaGVk
U3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgdGltZXN0YW1wKSk7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IGYzZjg3YTRmN2U5
YmI4ZTc3NjdhOWU4OTE1N2I3YjJlNjNjM2U3ZGQuLmZjZGRiZWE4Njk5M2I5MzBhNTFkZTM0ZGRk
ZjcwYjRkN2FmYWU2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4gcGFyc2VIVFRQRGF0ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIC8vIFRoaXMgYXNzdW1lcyBzeXN0ZW1fY2xvY2sgZXBvY2ggZXF1YWxz
IFVuaXggZXBvY2ggd2hpY2ggaXMgdHJ1ZSBmb3IgYWxsIGltcGxlbWVudGF0aW9ucyBidXQgdW5z
cGVjaWZpZWQuCiAgICAgLy8gRklYTUU6IFRoZSBwYXJzaW5nIGZ1bmN0aW9uIHNob3VsZCBiZSBz
d2l0Y2hlZCB0byBXYWxsVGltZSB0b28uCi0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhkYXRlSW5NaWxsaXNlY29uZHNTaW5jZUVwb2NoIC8gMTAwMC4wKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhkYXRlSW5NaWxsaXNlY29uZHNTaW5j
ZUVwb2NoKSk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY29tcGx5IHdp
dGggUkZDIDYyNjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrTG9hZE1ldHJpY3MuaAppbmRleCBjYjBkOGIzYWFjNGQ2YjFmZWU5YjllYTIyNDUzNGNh
MjMyMDQ4ODFlLi40NDBhNmJlY2YzNzk2YjRhZTIzYmZhYjM0MjFkNzJhOTg3ZjdjZWYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmlj
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRy
aWNzLmgKQEAgLTU2LDcgKzU2LDcgQEAgZW51bSBjbGFzcyBQcml2YWN5U3RhbmNlIDogdWludDhf
dCB7CiAgICAgRGlyZWN0LAogfTsKIAotY29uc3RleHByIE1vbm90b25pY1RpbWUgcmV1c2VkVExT
Q29ubmVjdGlvblNlbnRpbmVsIHsgTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoLTEpIH07
Citjb25zdGV4cHIgTW9ub3RvbmljVGltZSByZXVzZWRUTFNDb25uZWN0aW9uU2VudGluZWwgeyAt
MV9zIH07CiAKIHN0cnVjdCBBZGRpdGlvbmFsTmV0d29ya0xvYWRNZXRyaWNzRm9yV2ViSW5zcGVj
dG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDk1MGU4MjY3ZTJhNWU4NmJhNzlkNjc5ZTdkNzM2
MTEwMWMwZmJhZWIuLjA2ODVkM2MwOWUxMTE0N2U1NjhhNWEwMjAxNmE0ZDFjZWI4MDUxMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuY3BwCkBAIC03MzcsOCArNzM3LDcgQEAgc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZCgpIGNvbnN0CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgICAgIC8vIENGTmV0d29yayBjb252ZXJ0cyBtYWxmb3JtZWQgZGF0ZXMg
aW50byBFcG9jaCBzbyB3ZSBuZWVkIHRvIHRyZWF0IEVwb2NoIGFzCiAgICAgICAgIC8vIGFuIGlu
dmFsaWQgdmFsdWUgKHJkYXI6Ly9wcm9ibGVtLzIyMzUyODM4KS4KLSAgICAgICAgY29uc3QgV2Fs
bFRpbWUgZXBvY2ggPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7Ci0gICAgICAgIGlmICht
X2xhc3RNb2RpZmllZCAmJiBtX2xhc3RNb2RpZmllZC52YWx1ZSgpID09IGVwb2NoKQorICAgICAg
ICBpZiAobV9sYXN0TW9kaWZpZWQgJiYgIW1fbGFzdE1vZGlmaWVkLnZhbHVlKCkpCiAgICAgICAg
ICAgICBtX2xhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogICAgICAgICBtX2hh
dmVQYXJzZWRMYXN0TW9kaWZpZWRIZWFkZXIgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrTG9hZE1ldHJpY3MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0cmljcy5tbQpp
bmRleCA2MzEyZTA2ODQyOTdiNDNjMzMxMWU0NzM5YjY4MWFiNDQ1YzMzNjcyLi40ZDM1MDRkZDFk
NmJjNjdlNTMwNmM3MDU4ODRhM2QzZTI5ZmYxNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0cmljcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0cmljcy5tbQpA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgTW9ub3RvbmljVGlt
ZSBkYXRlVG9Nb25vdG9uaWNUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsKICAgICBpZiAoYXV0byBpbnRl
cnZhbCA9IGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKQotICAgICAgICByZXR1cm4gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKGludGVydmFsKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKTsK
KyAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2YWwpKS5hcHByb3hpbWF0ZU1v
bm90b25pY1RpbWUoKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcAppbmRleCA5NWQ3Njhh
Y2UwODBiMmY2NjI1OTE1MTU0MWNhY2I4OWQxNGJjMDI2Li42ZDc0YmRlMzQ3MDUzMDYwMjZjMjQ2
YjI2NDYzZjNiNDRlZTliNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKQEAgLTUxMSw3ICs1MTEsNyBAQCBib29sIENv
b2tpZUphckRCOjpjYW5BY2NlcHRDb29raWUoY29uc3QgQ29va2llJiBjb29raWUsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgYwogYm9vbCBDb29raWVKYXJEQjo6c2V0Q29va2llKGNvbnN0IENvb2tp
ZSYgY29va2llKQogewogICAgIGF1dG8gZXhwaXJlcyA9IGNvb2tpZS5leHBpcmVzLnZhbHVlX29y
KDAuMCk7Ci0gICAgaWYgKCFjb29raWUuc2Vzc2lvbiAmJiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3
U2Vjb25kcyhleHBpcmVzIC8gbXNQZXJTZWNvbmQpIDw9IE1vbm90b25pY1RpbWU6Om5vdygpKQor
ICAgIGlmICghY29va2llLnNlc3Npb24gJiYgTW9ub3RvbmljVGltZShTZWNvbmRzKGV4cGlyZXMg
LyBtc1BlclNlY29uZCkpIDw9IE1vbm90b25pY1RpbWU6Om5vdygpKQogICAgICAgICByZXR1cm4g
ZGVsZXRlQ29va2llSW50ZXJuYWwoY29va2llLm5hbWUsIGNvb2tpZS5kb21haW4sIGNvb2tpZS5w
YXRoKTsKIAogICAgIGF1dG8mIHN0YXRlbWVudCA9IHByZXBhcmVkU3RhdGVtZW50KFNFVF9DT09L
SUVfU1FMKTsKQEAgLTU1Myw3ICs1NTMsNyBAQCBib29sIENvb2tpZUphckRCOjpzZXRDb29raWUo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJgogICAg
IGlmIChjYXBwZWRMaWZldGltZSAmJiBjb29raWUtPmV4cGlyZXMpIHsKICAgICAgICAgQVNTRVJU
KCpjYXBwZWRMaWZldGltZSA+PSAwX3MpOwogICAgICAgICBhdXRvIGNhcHBlZEV4cGlyZXMgPSBX
YWxsVGltZTo6bm93KCkgKyAqY2FwcGVkTGlmZXRpbWU7Ci0gICAgICAgIGlmIChjYXBwZWRFeHBp
cmVzIDwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCpjb29raWUtPmV4cGlyZXMgLyBtc1BlclNl
Y29uZCkpCisgICAgICAgIGlmIChjYXBwZWRFeHBpcmVzIDwgV2FsbFRpbWUoU2Vjb25kcygqY29v
a2llLT5leHBpcmVzIC8gbXNQZXJTZWNvbmQpKSkKICAgICAgICAgICAgIGNvb2tpZS0+ZXhwaXJl
cyA9IGNhcHBlZEV4cGlyZXMuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENhY2hlRW50cnkuY3BwCmluZGV4IDY4Y2FmMDU0NmI2MmNmNDk2NDdkNGI5YzRiZTdmNTll
YjViYjVjOWMuLjk0MjM5OGIwOTNiMmEwNjk4Mzc1YzZiZDBkYmUzMDJjMjZkZGQwMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNo
ZUVudHJ5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBDdXJsQ2FjaGVFbnRyeTo6Q3VybENhY2hlRW50
cnkoY29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNlSGFuZGxlKiBqb2IsIGNvbnN0IFN0cgogICAg
ICwgbV9jb250ZW50RmlsZW5hbWUoY2FjaGVEaXIpCiAgICAgLCBtX2NvbnRlbnRGaWxlKEZpbGVT
eXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCiAgICAgLCBtX2VudHJ5U2l6ZSgwKQot
ICAgICwgbV9leHBpcmVEYXRlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygtMSkpCisgICAgLCBt
X2V4cGlyZURhdGUoV2FsbFRpbWUoLTFfcykpCiAgICAgLCBtX2hlYWRlclBhcnNlZChmYWxzZSkK
ICAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQogICAgICwgbV9qb2Ioam9iKQpAQCAtMjkwLDE4ICsy
OTAsMTggQEAgYm9vbCBDdXJsQ2FjaGVFbnRyeTo6cGFyc2VSZXNwb25zZUhlYWRlcnMoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgaWYgKG1heEFnZSAmJiAhcmVzcG9uc2Uu
Y2FjaGVDb250cm9sQ29udGFpbnNNdXN0UmV2YWxpZGF0ZSgpKSB7CiAgICAgICAgIC8vIFdoZW4g
Ym90aCB0aGUgY2FjaGUgZW50cnkgYW5kIHRoZSByZXNwb25zZSBjb250YWluIG1heC1hZ2UsIHRo
ZSBsZXNzZXIgb25lIHRha2VzIHByaW9yaXR5CiAgICAgICAgIFdhbGxUaW1lIGV4cGlyZXMgPSBm
aWxlVGltZSArICptYXhBZ2U7Ci0gICAgICAgIGlmIChtX2V4cGlyZURhdGUgPT0gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKC0xKSB8fCBtX2V4cGlyZURhdGUgPiBleHBpcmVzKQorICAgICAgICBp
ZiAobV9leHBpcmVEYXRlID09IFdhbGxUaW1lKC0xX3MpIHx8IG1fZXhwaXJlRGF0ZSA+IGV4cGly
ZXMpCiAgICAgICAgICAgICBtX2V4cGlyZURhdGUgPSBleHBpcmVzOwogICAgIH0gZWxzZSBpZiAo
cmVzcG9uc2VEYXRlICYmIGV4cGlyYXRpb25EYXRlKSB7CiAgICAgICAgIGlmICgqZXhwaXJhdGlv
bkRhdGUgPj0gKnJlc3BvbnNlRGF0ZSkKICAgICAgICAgICAgIG1fZXhwaXJlRGF0ZSA9IGZpbGVU
aW1lICsgKCpleHBpcmF0aW9uRGF0ZSAtICpyZXNwb25zZURhdGUpOwogICAgIH0KICAgICAvLyBJ
ZiB0aGVyZSBpcyBubyBsaWZldGltZSBpbmZvcm1hdGlvbgotICAgIGlmIChtX2V4cGlyZURhdGUg
PT0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSkgeworICAgIGlmIChtX2V4cGlyZURhdGUg
PT0gV2FsbFRpbWUoLTFfcykpIHsKICAgICAgICAgaWYgKGxhc3RNb2RpZmljYXRpb25EYXRlKQog
ICAgICAgICAgICAgbV9leHBpcmVEYXRlID0gZmlsZVRpbWUgKyAoZmlsZVRpbWUgLSAqbGFzdE1v
ZGlmaWNhdGlvbkRhdGUpICogMC4xOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2V4cGly
ZURhdGUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7CisgICAgICAgICAgICBtX2V4cGly
ZURhdGUgPSBXYWxsVGltZSgpOwogICAgIH0KIAogICAgIFN0cmluZyBldGFnID0gcmVzcG9uc2Uu
aHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQppbmRl
eCAzMTVlMDY1MTUzMGRjZGIwMjgwMTY1NGI3NTdkODE0NzNjMjBmZDMwLi40OTE1Zjg1MTVhYzli
OGNmYTIyODQyZGY0YjI5YmNhMjY3OWRhMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCkBAIC0zMzYsNyAr
MzM2LDcgQEAgLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbgogCiAgICAgICAgIGlmIChhdXRvIG1ldHJpY3MgPSBtX2hhbmRsZS0+
bmV0d29ya0xvYWRNZXRyaWNzKCkpIHsKICAgICAgICAgICAgIGlmIChkb3VibGUgcmVzcG9uc2VF
bmRUaW1lID0gW1t0aW1pbmdEYXRhIG9iamVjdEZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3Bv
bnNlRW5kIl0gZG91YmxlVmFsdWVdKQotICAgICAgICAgICAgICAgIG1ldHJpY3MtPnJlc3BvbnNl
RW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGFkb3B0TlMoW1tOU0RhdGUgYWxsb2NdIGlu
aXRXaXRoVGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlOnJlc3BvbnNlRW5kVGltZV0pLmdl
dCgpLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCk7Cisg
ICAgICAgICAgICAgICAgbWV0cmljcy0+cmVzcG9uc2VFbmQgPSBXYWxsVGltZShTZWNvbmRzKGFk
b3B0TlMoW1tOU0RhdGUgYWxsb2NdIGluaXRXaXRoVGltZUludGVydmFsU2luY2VSZWZlcmVuY2VE
YXRlOnJlc3BvbnNlRW5kVGltZV0pLmdldCgpLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpLmFwcHJv
eGltYXRlTW9ub3RvbmljVGltZSgpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG1ldHJpY3MtPnJlc3BvbnNlRW5kID0gbWV0cmljcy0+cmVzcG9uc2VTdGFydDsKICAgICAgICAg
ICAgIG1ldHJpY3MtPnByb3RvY29sID0gKE5TU3RyaW5nICopW3RpbWluZ0RhdGEgb2JqZWN0Rm9y
S2V5OkAiX2tDRk5UaW1pbmdEYXRhTmV0d29ya1Byb3RvY29sTmFtZSJdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDViMzI1MzRlMmJjYWYxNzAxMzMxZTk1NDEwMTNi
OGE1YzM4YzRkMzYuLjUwOTg2ZTlkNzI0YjNmZDVjZTJjN2Q3MTZiZTNiYzUzYTUxYTk4MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llcygpCiB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2FsbFRpbWUg
dGltZXN0YW1wKQogewogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZGVsZXRpbmcgY29v
a2llcyBtb2RpZmllZCBzaW5jZSB0aGUgZ2l2ZW4gdGltZXN0YW1wLiBJdCBzaG91bGQgcHJvYmFi
bHkgYmUgYWRkZWQgdG8gbGlic291cC4KLSAgICBpZiAodGltZXN0YW1wID09IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcygwKSkKKyAgICBpZiAoIXRpbWVzdGFtcCkKICAgICAgICAgZGVsZXRlQWxs
Q29va2llcygpOwogICAgIGVsc2UKICAgICAgICAgZ193YXJuaW5nKCJEZWxldGluZyBjb29raWVz
IG1vZGlmaWVkIHNpbmNlIGEgZ2l2ZW4gdGltZSBzcGFuIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAppbmRleCBhYWU2
Yzk5ZGQwNTI5ODVhNDM3MTg4NDZiNjg1MzY0NTQwNTBjMjM0Li44ZTI5ZjY1OWJlNjBmYzczZmEx
YzRkOWJkMjcyYmI1NTQ0MGM0Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9L
ZXlFdmVudFdpbi5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgV2luZG93c0tleU5hbWVz
JiB3aW5kb3dzS2V5TmFtZXMoKQogfQogCiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFR5cGUgdHlw
ZSwgYm9vbCBzeXN0ZW1LZXkpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIEdldEtleVN0YXRl
KFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX0NPTlRST0wp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0VGlja0NvdW50
KCkgKiAwLjAwMSkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIEdldEtleVN0YXRlKFZLX1NI
SUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX0NPTlRST0wpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBmYWxzZSwgV2FsbFRpbWUoU2Vjb25kcyg6OkdldFRpY2tDb3VudCgpICogMC4wMDEpKSkK
ICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJh
Y3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlw
ZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6
IFN0cmluZygpKQogICAgICwgbV9rZXkodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyID8gd2lu
ZG93c0tleU5hbWVzKCkuZG9tS2V5RnJvbUNoYXIoY29kZSkgOiB3aW5kb3dzS2V5TmFtZXMoKS5k
b21LZXlGcm9tUGFyYW1zKGNvZGUsIGtleURhdGEpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCmluZGV4IDBiNmI3MGU3MGYxMTEyMmEzZmViMDkxZmQ5
OTQ0YWQ5OWUxZDkzOGMuLjY0MzMyMDk5ZjVmMzU1ZjdiMTk4ZDA4NTRiZDc2YWU2YWVhYjFiODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKQEAg
LTczLDcgKzczLDcgQEAgc3RhdGljIGludCB2ZXJ0aWNhbFNjcm9sbExpbmVzKCkKIH0KIAogUGxh
dGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBXUEFSQU0gd1Bh
cmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91c2VIV2hlZWwpCi0gICAgOiBQbGF0Zm9ybUV2
ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyg6OkdldFRpY2tDb3VudCgpICogMC4wMDEpKQorICAgIDogUGxhdGZvcm1FdmVudChQ
bGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRS
T0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3Rh
dGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZShTZWNvbmRzKDo6R2V0
VGlja0NvdW50KCkgKiAwLjAwMSkpKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbkZvckV2ZW50
KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uRm9y
RXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNl
KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAppbmRleCAzMTRlMDNlMDQ3ZTkzNmVk
OTJhOGY2ZGFiYzY2MjVhMGRmOWI4MGJhLi42NzZkZWJmMGFhMjI4MTlhNjUzMWVlMDJlZTJjOTg2
NzBhZDg4ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaApAQCAtNjAsNyArNjAsNyBA
QCBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgewogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwga2V5IDw8IGlkZW50aWZpZXIg
PDwgc2NvcGVVUkwgPDwgdXBkYXRlVmlhQ2FjaGUgPDwgbGFzdFVwZGF0ZVRpbWUuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpIDw8IGluc3RhbGxpbmdXb3JrZXIgPDwgd2FpdGluZ1dvcmtlciA8
PCBhY3RpdmVXb3JrZXI7CisgICAgZW5jb2RlciA8PCBrZXkgPDwgaWRlbnRpZmllciA8PCBzY29w
ZVVSTCA8PCB1cGRhdGVWaWFDYWNoZSA8PCBsYXN0VXBkYXRlVGltZSA8PCBpbnN0YWxsaW5nV29y
a2VyIDw8IHdhaXRpbmdXb3JrZXIgPDwgYWN0aXZlV29ya2VyOwogfQogCiB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgpAQCAtODYsOSArODYsOSBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhPiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTo6ZGVjbwogICAg
IGlmICghdXBkYXRlVmlhQ2FjaGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcmF3V2FsbFRpbWU7Ci0gICAgZGVjb2RlciA+PiByYXdX
YWxsVGltZTsKLSAgICBpZiAoIXJhd1dhbGxUaW1lKQorICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRp
bWU+IHdhbGxUaW1lOworICAgIGRlY29kZXIgPj4gd2FsbFRpbWU7CisgICAgaWYgKCF3YWxsVGlt
ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4+IGluc3RhbGxpbmdXb3JrZXI7CkBAIC0xMDYs
NyArMTA2LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4g
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmRlY28KICAgICBpZiAoIWFjdGl2ZVdvcmtl
cikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqa2V5KSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1vdmUoKnNjb3BlVVJMKSwgV1RGTW92
ZSgqdXBkYXRlVmlhQ2FjaGUpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoKnJhd1dhbGxUaW1l
KSwgV1RGTW92ZSgqaW5zdGFsbGluZ1dvcmtlciksIFdURk1vdmUoKndhaXRpbmdXb3JrZXIpLCBX
VEZNb3ZlKCphY3RpdmVXb3JrZXIpIH0gfTsKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmtleSks
IFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzY29wZVVSTCksIFdURk1vdmUoKnVwZGF0
ZVZpYUNhY2hlKSwgV1RGTW92ZSgqd2FsbFRpbWUpLCBXVEZNb3ZlKCppbnN0YWxsaW5nV29ya2Vy
KSwgV1RGTW92ZSgqd2FpdGluZ1dvcmtlciksIFdURk1vdmUoKmFjdGl2ZVdvcmtlcikgfSB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKaW5kZXgg
MWJiNGRhZWQ2OGZkOWZlN2RkZjBkNTM5OWRlYjNhMmIyYzg5N2YxMC4uYjA1YjViNWRhOWVmNDEw
MGY0YzM4NDg2MDNkNjQ1YTY2OWUwMGYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAK
QEAgLTUxOSw3ICs1MTksNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJl
Y29yZHMoKQogICAgICAgICBhdXRvIHNjb3BlUGF0aCA9IHNxbC0+Y29sdW1uVGV4dCgyKTsKICAg
ICAgICAgYXV0byBzY29wZVVSTCA9IFVSTCB7IG9yaWdpblVSTCwgc2NvcGVQYXRoIH07CiAgICAg
ICAgIGF1dG8gdG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVu
dGlmaWVyKHNxbC0+Y29sdW1uVGV4dCgzKSk7Ci0gICAgICAgIGF1dG8gbGFzdFVwZGF0ZUNoZWNr
VGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzcWwtPmNvbHVtbkRvdWJsZSg0KSk7Cisg
ICAgICAgIGF1dG8gbGFzdFVwZGF0ZUNoZWNrVGltZSA9IFdhbGxUaW1lKFNlY29uZHMoc3FsLT5j
b2x1bW5Eb3VibGUoNCkpKTsKICAgICAgICAgYXV0byB1cGRhdGVWaWFDYWNoZSA9IHN0cmluZ1Rv
VXBkYXRlVmlhQ2FjaGUoc3FsLT5jb2x1bW5UZXh0KDUpKTsKICAgICAgICAgYXV0byBzY3JpcHRV
UkwgPSBVUkwgeyBVUkwoKSwgc3FsLT5jb2x1bW5UZXh0KDYpIH07CiAgICAgICAgIGF1dG8gd29y
a2VyVHlwZSA9IHN0cmluZ1RvV29ya2VyVHlwZShzcWwtPmNvbHVtblRleHQoNykpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5k
ZXggMzU1YmI4NGZjYmE3ZDZlYWJhYTk3NTIwMjI3NmJlOWFiM2U2ZmZiNy4uM2VjODA1ZWFiNGVl
NmM2N2FiYTQ3ODU4ZWE4YzllNWI0N2I4OGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC04MzUsOCArODM1LDggQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWVyZ2UoV2ViQ29yZTo6
U1FMaXRlU3RhdGVtZW50KiBjdXJyZW4KICAgICBhdXRvIHRyYW5zYWN0aW9uU2NvcGUgPSBiZWdp
blRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKTsKIAogICAgIGF1dG8gY3VycmVudFJlZ2lzdHJhYmxl
RG9tYWluID0gY3VycmVudC0+Y29sdW1uVGV4dChSZWdpc3RyYWJsZURvbWFpbkluZGV4KTsKLSAg
ICBhdXRvIGN1cnJlbnRMYXN0U2VlbiA9IGN1cnJlbnQtPmNvbHVtbkRvdWJsZShMYXN0U2Vlbklu
ZGV4KTsKLSAgICBhdXRvIGN1cnJlbnRNb3N0UmVjZW50VXNlckludGVyYWN0aW9uID0gY3VycmVu
dC0+Y29sdW1uRG91YmxlKE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lSW5kZXgpOworICAg
IGF1dG8gY3VycmVudExhc3RTZWVuID0gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50LT5jb2x1bW5E
b3VibGUoTGFzdFNlZW5JbmRleCkpKTsKKyAgICBhdXRvIGN1cnJlbnRNb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uID0gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50LT5jb2x1bW5Eb3VibGUoTW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpKTsKICAgICBib29sIGN1cnJlbnRHcmFuZGZh
dGhlcmVkID0gY3VycmVudC0+Y29sdW1uSW50KEdyYW5kZmF0aGVyZWRJbmRleCk7CiAgICAgYm9v
bCBjdXJyZW50SXNQcmV2YWxlbnQgPSBjdXJyZW50LT5jb2x1bW5JbnQoSXNQcmV2YWxlbnRJbmRl
eCk7CiAgICAgYm9vbCBjdXJyZW50SXNWZXJ5UHJldmFsZW50ID0gY3VycmVudC0+Y29sdW1uSW50
KElzVmVyeVByZXZhbGVudEluZGV4KTsKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZShXZWJDb3JlOjpTUUxpdGVTdGF0ZW1l
bnQqIGN1cnJlbgogCiAgICAgQVNTRVJUKGN1cnJlbnRSZWdpc3RyYWJsZURvbWFpbiA9PSBvdGhl
ci5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CiAKLSAgICBpZiAoV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGN1cnJlbnRMYXN0U2VlbikgPCBvdGhlci5sYXN0U2VlbikKKyAgICBpZiAoY3Vy
cmVudExhc3RTZWVuIDwgb3RoZXIubGFzdFNlZW4pCiAgICAgICAgIHVwZGF0ZUxhc3RTZWVuKG90
aGVyLnJlZ2lzdHJhYmxlRG9tYWluLCBvdGhlci5sYXN0U2Vlbik7CiAKICAgICBpZiAoIW90aGVy
LmhhZFVzZXJJbnRlcmFjdGlvbikgewpAQCAtODUzLDcgKzg1Myw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1lcmdlKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVu
dCogY3VycmVuCiAgICAgICAgIGlmICghb3RoZXIubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUpCiAgICAgICAgICAgICBzZXRVc2VySW50ZXJhY3Rpb24ob3RoZXIucmVnaXN0cmFibGVEb21h
aW4sIGZhbHNlLCB7IH0pOwogICAgIH0gZWxzZQotICAgICAgICBzZXRVc2VySW50ZXJhY3Rpb24o
b3RoZXIucmVnaXN0cmFibGVEb21haW4sIHRydWUsIHN0ZDo6bWF4KFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhjdXJyZW50TW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIG90aGVyLm1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25UaW1lKSk7CisgICAgICAgIHNldFVzZXJJbnRlcmFjdGlvbihvdGhl
ci5yZWdpc3RyYWJsZURvbWFpbiwgdHJ1ZSwgc3RkOjptYXgoY3VycmVudE1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIG90aGVyLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKSk7CiAKICAg
ICBpZiAob3RoZXIuZ3JhbmRmYXRoZXJlZCAmJiAhY3VycmVudEdyYW5kZmF0aGVyZWQpCiAgICAg
ICAgIHNldEdyYW5kZmF0aGVyZWQob3RoZXIucmVnaXN0cmFibGVEb21haW4sIHRydWUpOwpAQCAt
MTU5Niw3ICsxNTk2LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICBpZiAoIWhhZFVz
ZXJJbnRlcmFjdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIFdhbGxUaW1l
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHNjb3BlZFN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDEpKTsKKyAgICBhdXRvIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWUoU2Vjb25kcyhzY29wZWRTdGF0ZW1lbnQtPmNv
bHVtbkRvdWJsZSgxKSkpOwogCiAgICAgaWYgKGhhc1N0YXRpc3RpY3NFeHBpcmVkKG1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25UaW1lLCBvcGVyYXRpbmdEYXRlc1dpbmRvdykpIHsKICAgICAgICAg
Ly8gRHJvcCBwcml2YWN5IHNlbnNpdGl2ZSBkYXRhIGJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIG5lZWQg
aXQuCkBAIC0yMjAyLDcgKzIyMDIsNyBAQCBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OkRvbWFpbkRhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYQogICAgIHdo
aWxlIChzdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgIHJlc3VsdHMu
YXBwZW5kKHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRlbWVudC0+Y29sdW1uSW50KDApKQog
ICAgICAgICAgICAgLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lz
dHJhYmxlRG9tYWluU3RyaW5nKHN0YXRlbWVudC0+Y29sdW1uVGV4dCgxKSkKLSAgICAgICAgICAg
ICwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDIpKQor
ICAgICAgICAgICAgLCBXYWxsVGltZShTZWNvbmRzKHN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDIp
KSkKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoMykgPyB0cnVlIDogZmFsc2UK
ICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNCkgPyB0cnVlIDogZmFsc2UKICAg
ICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNSkgPyB0cnVlIDogZmFsc2UKQEAgLTI0
MDQsNyArMjQwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnVwZGF0ZUxhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluCiAgICAgfQogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNlY29uZHMpCit2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKIApAQCAtMjQxNiw3ICsyNDE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1cGRhdGVMYXN0U2Vlbihk
b21haW4sIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzLnNlY29uZHMoKSkpOworICAg
IHVwZGF0ZUxhc3RTZWVuKGRvbWFpbiwgbGFzdFNlZW4pOwogfQogCiB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluKQpAQCAtMjgxMyw3ICsyODEzLDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRl
c3RpbmcoY29uc3QKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IG51bWJlck9mT3BlcmF0
aW5nRGF5c1Bhc3NlZDsgaSsrKSB7CiAgICAgICAgIGRvdWJsZSBkYXlzVG9TdWJ0cmFjdCA9IFNl
Y29uZHM6OmZyb21Ib3VycygyNCAqIGkpLnZhbHVlKCk7CiAgICAgICAgIGRheXNBZ29JblNlY29u
ZHMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIC0gZGF5c1Rv
U3VidHJhY3Q7Ci0gICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0gT3BlcmF0aW5nRGF0ZTo6ZnJv
bVdhbGxUaW1lKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXlzQWdvSW5TZWNvbmRzKSk7Cisg
ICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0gT3BlcmF0aW5nRGF0ZTo6ZnJvbVdhbGxUaW1lKFdh
bGxUaW1lKFNlY29uZHMoZGF5c0Fnb0luU2Vjb25kcykpKTsKIAogICAgICAgICBhdXRvIGluc2Vy
dE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIklO
U0VSVCBPUiBJR05PUkUgSU5UTyBPcGVyYXRpbmdEYXRlcyAoeWVhciwgbW9udGgsIG1vbnRoRGF5
KSBTRUxFQ1QgPywgPywgPzsiX3MpOwogICAgICAgICBpZiAoIWluc2VydE9wZXJhdGluZ0RhdGVT
dGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKaW5kZXggNjkwMTg2ZjIxNDYwOWMyOTA4MjJiMTViN2NjZjZhZDk2NDk2NzIxOS4u
YWZiMjMwZWU2ZmZhY2ZlZTQyMjVjZGM5NTA3Yzg1YWRjMDEwZTEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTEwMiw3ICsx
MDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBP
cGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldExhc3RTZWVuKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRM
YXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxUaW1lKSBvdmVycmlkZTsKICAg
ICBib29sIGlzQ29ycmVjdFN1YlN0YXRpc3RpY3NDb3VudChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJik7CiAgICAgdm9pZCByZXNvdXJjZVRvU3RyaW5nKFN0
cmluZ0J1aWxkZXImLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBTZWNvbmRzIGdldE1vc3RS
ZWNlbnRseVVwZGF0ZWRUaW1lc3RhbXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDU2ZjY3YmYwODhkYzYwMDIyM2Y4YmZhMzBmZGY3ODQ4
ZTBiZWVkMjkuLjA1NGE1OTFkY2QxOGQzNmQ5MTljZGQ4ZDZhMzI5MDUyNGU4OTdkZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTEw
Miw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldExhc3RT
ZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxUaW1lKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KSBvdmVycmlkZTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGFsbERvbWFpbnMoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFz
c2VkLCBib29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENv
b2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAxYTNiMDhiZjczZTE0ZmM3Y2UwYTY1
N2RlNTgzZjlmMjJkNGFhODIyLi43MTc3YWE2NTExNWRjNzQwZWViNDg4ODViNTM4YzlhZGZlMTQ2
MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xODMs
NyArMTgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlv
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBwcmltYXJ5RG9tYWluLCBT
ZWNvbmRzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBwcmltYXJ5RG9tYWluLCBXYWxsVGltZSkgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXgg
NzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEyMTNkODViNjBiNTM3MTgxZC4uOThhZDAyNWVmYTcwZmQx
ZWNkMmIxZGZjZmY5N2Y2Zjk0YjExN2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTgxNywyNyArODE3LDI3IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwo
Y29uc3QgUmVnaXN0CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9kb21haW5zV2l0aEVwaGVtZXJh
bFVzZXJJbnRlcmFjdGlvbi5jb250YWlucyhkb21haW4pKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4sIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNl
dExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFdhbGxUaW1lIGxhc3RT
ZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFzayhbdGhpcywg
ZG9tYWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCBzZWNvbmRzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNr
KFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIGxhc3RTZWVuLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCi0gICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9y
ZS0+c2V0TGFzdFNlZW4oZG9tYWluLCBzZWNvbmRzKTsKKyAgICAgICAgICAgIG1fc3RhdGlzdGlj
c1N0b3JlLT5zZXRMYXN0U2Vlbihkb21haW4sIGxhc3RTZWVuKTsKICAgICAgICAgcG9zdFRhc2tS
ZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwg
U2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxl
bnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2Fs
bFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9t
YWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbjEgPSB0b3BGcmFtZURvbWFpbjEuaXNv
bGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluMiA9IHRvcEZyYW1lRG9tYWluMi5pc29sYXRlZENv
cHkoKSwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRh
UmVjb3Jkc1JlbW92ZWQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkgewogICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBzdGF0aXN0aWMoZG9tYWluKTsKLSAgICAg
ICAgICAgIHN0YXRpc3RpYy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0
U2Vlbi5zZWNvbmRzKCkpOworICAgICAgICAgICAgc3RhdGlzdGljLmxhc3RTZWVuID0gbGFzdFNl
ZW47CiAgICAgICAgICAgICBzdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uID0gaGFkVXNlcklu
dGVyYWN0aW9uOwotICAgICAgICAgICAgc3RhdGlzdGljLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24uc2Vjb25kcygpKTsKKyAgICAgICAgICAgIHN0YXRpc3RpYy5tb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb247CiAgICAgICAgICAgICBzdGF0
aXN0aWMuZ3JhbmRmYXRoZXJlZCA9IGlzR3JhbmRmYXRoZXJlZDsKICAgICAgICAgICAgIHN0YXRp
c3RpYy5pc1ByZXZhbGVudFJlc291cmNlID0gaXNQcmV2YWxlbnQ7CiAgICAgICAgICAgICBzdGF0
aXN0aWMuaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgPSBpc1ZlcnlQcmV2YWxlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggNjYxYjE1NjNlYzY0
YjY2ZTc4ZjFmOGQ1NTRjNmQ5ZGYzNzMxYWU2Yi4uNGExNGZlMjljN2MzYWM2NTU3NjBkYTU1NzVk
MjYwODc0OWU4OTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaApAQCAtMTYwLDggKzE2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIGJvb2wgaGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdG9yYWdlQWNjZXNzU2NvcGUs
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0KT4mJik7
Ci0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0Zv
clRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYg
dG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5z
aWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcAppbmRleCA2ZTMwMjU3
MTc4MDU1ZjcxMDBkYTUyZGI5MGNiNGJhMTBlMWJlY2M4Li41YzY1OWMxYmRhY2QxYmYzZDA0OTEy
YzllN2M4OGVkNzQ2ZDlhY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50IERhdGFiYXNlVXRpbGl0aWVzOjpidWlsZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50CiAgICAgaWYgKGJ1bmRsZUlELmlzRW1wdHkoKSkKICAgICAgICAgYnVuZGxl
SUQgPSBzYWZhcmlCdW5kbGVJRDsKIAotICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJ
RChzb3VyY2VJRCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFi
bGVEb21haW5TdHJpbmcoc291cmNlU2l0ZURvbWFpbikpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhkZXN0
aW5hdGlvblNpdGVEb21haW4pKSwgYnVuZGxlSUQsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0
aW1lT2ZBZENsaWNrKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRXBoZW1lcmFsOjpObyk7CisgICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKHNv
dXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURv
bWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZShXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKGRlc3RpbmF0
aW9uU2l0ZURvbWFpbikpLCBidW5kbGVJRCwgV2FsbFRpbWUoU2Vjb25kcyh0aW1lT2ZBZENsaWNr
KSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkVwaGVtZXJh
bDo6Tm8pOwogCiAgICAgLy8gVGhlc2UgaW5kaWNlcyBhcmUgemVyby1iYXNlZDogaHR0cHM6Ly93
d3cuc3FsaXRlLm9yZy9jM3JlZi9jb2x1bW5fYmxvYi5odG1sICJUaGUgbGVmdG1vc3QgY29sdW1u
IG9mIHRoZSByZXN1bHQgc2V0IGhhcyB0aGUgaW5kZXggMCIuCiAgICAgaWYgKGF0dHJpYnV0aW9u
VHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRl
ZCkgewpAQCAtMTg1LDEwICsxODUsMTAgQEAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgRGF0YWJhc2VVdGlsaXRpZXM6OmJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQKIAogICAg
ICAgICAvLyBBIHZhbHVlIG9mIDAuMCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVwb3J0IGhhcyBiZWVu
IHNlbnQgdG8gdGhlIHJlc3BlY3RpdmUgc2l0ZS4KICAgICAgICAgaWYgKHNvdXJjZUVhcmxpZXN0
VGltZVRvU2VuZFZhbHVlID4gMC4wKQotICAgICAgICAgICAgc291cmNlRWFybGllc3RUaW1lVG9T
ZW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZFZh
bHVlKTsKKyAgICAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IFdhbGxUaW1lKFNl
Y29uZHMoc291cmNlRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpKTsKIAogICAgICAgICBpZiAoZGVz
dGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSA+IDAuMCkKLSAgICAgICAgICAgIGRlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpOworICAgICAgICAgICAgZGVzdGluYXRpb25F
YXJsaWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZShTZWNvbmRzKGRlc3RpbmF0aW9uRWFybGllc3RU
aW1lVG9TZW5kVmFsdWUpKTsKIAogICAgICAgICBhdHRyaWJ1dGlvbi5zZXRUaW1lc1RvU2VuZCh7
IHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCwgZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQg
fSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCA0NzJjOGI1N2MzMmMzNWY4OWJlMGIxNzgxZmJkZWM4Y2YzZGFjOGJiLi41
NDY4YmIyNDJiY2FhN2YzM2MwNTE0YmExOGI2ZTliM2ZkN2ExOWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtOTM5LDExICs5Mzks
MTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KIH0KICAgICAKICAgICAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRM
YXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhp
cy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRMYXN0U2Vlbihkb21h
aW4sIHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MtPnNldExhc3RTZWVuKGRvbWFpbiwgbGFzdFNlZW4sIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKICAgICB9IGVsc2UgewpAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGludCBkb21hCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjptZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxh
c3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBp
c1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6
bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2Fs
bFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChh
dXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lv
bi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDlkMzJkNTc5NzNhMGViYWMxZDA3MTc1YzZkZjg3
OWQ0NjZjZTY4YTguLmE2ZmM4MzQxOTM3MzRlZDM2YWIwYTJmNjYwNmFhMWNkYTk5ZmRhYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI0
Niw5ICsyNDYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxU
YWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNz
aW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGludCBkb21h
aW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVE
b21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5k
ZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25l
ZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29u
c3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJv
b2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
LCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2
YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVuc2lnbmVkIG51bWJlck9mT3Bl
cmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVs
ZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzMmFiMzg0MGI2NmE3Yzc4ZDUzYTM1NDU5MTIwZGRk
YjJjZjRlOWJjLi5jMTU5MTQ4MGY3YzBhNjk2N2Q5ZDQzZWJiMmI1ZDVmZmRjYTczMzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTg4LDggKzg4LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIElzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChi
b29sIGlzUHJldmFsZW50KSBBc3luYwogICAgIElzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9t
YWluKSAtPiAoYm9vbCBpc1ZlcnlQcmV2YWxlbnQpIEFzeW5jCiAgICAgU2V0QWdlQ2FwRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwg
U2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNW
ZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisg
ICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pIC0+ICgpIEFzeW5j
CisgICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rp
b24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdWludDY0X3QgZGF0
YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwogICAgIEluc2VydEV4cGlyZWRTdGF0aXN0aWNG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3Nl
ZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKICAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldFByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0u
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxl
U3lzdGVtLmNwcAppbmRleCBjODc1YzkzNjRlZTA1MzUyNmQzZjllN2MzNjI3NWQ5MzE5YzVjMTBl
Li43YmE2YjJhNGZiMTk4MTEzNzM1YWZmYTQ1YTczNzZjODhlNWM3ZjVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
RmlsZVN5c3RlbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRmlsZVRpbWVzIGZpbGVUaW1lcyhjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgc3RydWN0IHN0YXQgZmlsZUluZm87CiAgICAgaWYgKHN0YXQo
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSwgJmZpbGVJ
bmZvKSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4geyBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1lKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KGZpbGVJbmZvLnN0X210aW1lKSB9OworICAgIHJldHVybiB7IFdhbGxUaW1lKFNlY29uZHMoZmls
ZUluZm8uc3RfYmlydGh0aW1lKSksIFdhbGxUaW1lKFNlY29uZHMoZmlsZUluZm8uc3RfbXRpbWUp
KSB9OwogI2VsaWYgVVNFKFNPVVApCiAgICAgLy8gVGhlcmUncyBubyBzdF9iaXJ0aHRpbWUgaW4g
c29tZSBvcGVyYXRpbmcgc3lzdGVtcyBsaWtlIExpbnV4LCBzbyB3ZSB1c2UgeGF0dHJzIHRvIHNl
dC9nZXQgdGhlIGNyZWF0aW9uIHRpbWUuCiAgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0
R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihwYXRoKS5kYXRhKCkpKTsKQEAgLTc5LDggKzc5LDEwIEBAIEZpbGVUaW1lcyBmaWxlVGlt
ZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIGNvbnN0IGNoYXIqIGJpcnRodGltZVN0cmluZyA9
IGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfc3RyaW5nKGZpbGVJbmZvLmdldCgpLCAieGF0dHI6
OmJpcnRodGltZSIpOwogICAgIGlmICghYmlydGh0aW1lU3RyaW5nKQogICAgICAgICByZXR1cm4g
eyB9OwotICAgIHJldHVybiB7IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnX2FzY2lpX3N0cnRv
dWxsKGJpcnRodGltZVN0cmluZywgbnVsbHB0ciwgMTApKSwKLSAgICAgICAgV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfdWludDY0KGZpbGVJbmZvLmdl
dCgpLCAidGltZTo6bW9kaWZpZWQiKSkgfTsKKyAgICByZXR1cm4geworICAgICAgICBXYWxsVGlt
ZShTZWNvbmRzKGdfYXNjaWlfc3RydG91bGwoYmlydGh0aW1lU3RyaW5nLCBudWxscHRyLCAxMCkp
KSwKKyAgICAgICAgV2FsbFRpbWUoU2Vjb25kcyhnX2ZpbGVfaW5mb19nZXRfYXR0cmlidXRlX3Vp
bnQ2NChmaWxlSW5mby5nZXQoKSwgInRpbWU6Om1vZGlmaWVkIikpKSwKKyAgICB9OwogI2VsaWYg
T1MoV0lORE9XUykKICAgICBhdXRvIGNyZWF0ZVRpbWUgPSBGaWxlU3lzdGVtOjpmaWxlQ3JlYXRp
b25UaW1lKHBhdGgpOwogICAgIGF1dG8gbW9kaWZ5VGltZSA9IEZpbGVTeXN0ZW06OmZpbGVNb2Rp
ZmljYXRpb25UaW1lKHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGQ5M2FjOWViMmYxMDQ1
ZTEzZTU3MjVhNDdmMGU3NjkxNTcyYjZjNDEuLjE1YmNiYjkwMjMwY2IwODQ5MGQ3NWVhZWJhZDc3
OTkwNzQ5NmE3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTgzNiw3ICs4MzYsNyBAQCAtICh2
b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9u
VGFzayAqKXRhc2sgZGlkRmluaQogCiAgICAgICAgIGF1dG8gZGF0ZVRvTW9ub3RvbmljVGltZSA9
IFtdIChOU0RhdGUgKmRhdGUpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGludGVydmFsID0gZGF0
ZS50aW1lSW50ZXJ2YWxTaW5jZTE5NzApCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhpbnRlcnZhbCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2YWwpKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKTsKICAgICAgICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lIHsg
fTsKICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGIyMGFhNTFhMGY4NGY5NWFk
OGYwYjc4MDdkNzQxNzFhZGM1MjA1YTMuLmVjYjdlOWU1MGRlN2FhNDljMTgzZDdkYzQ0ODkwMDU0
NTRiMTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTI3Myw4ICsyNzMsNyBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCgpCiAjZWxzZQogICAgICAgICBpZiAobV9u
ZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCAmJiAhbV9uZXR3b3JrTG9hZE1ldHJpY3MucmVz
cG9uc2VFbmQpIHsKICAgICAgICAgICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0
X21ldHJpY3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgICAgICAgICBhdXRvIHJlc3BvbnNl
RW5kID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRf
cmVzcG9uc2VfZW5kKG1ldHJpY3MpKTsKLSAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNz
LnJlc3BvbnNlRW5kID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMocmVzcG9uc2VFbmQu
c2Vjb25kcygpKTsKKyAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlRW5k
ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9t
ZXRyaWNzX2dldF9yZXNwb25zZV9lbmQobWV0cmljcykpKTsKICAgICAgICAgICAgIG1fbmV0d29y
a0xvYWRNZXRyaWNzLm1hcmtDb21wbGV0ZSgpOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTMyMSw3
ICszMjAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlc3VtZSgpCiAgICAgICAgICAg
ICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwogI2Vsc2UKICAgICAgICAgICAgICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdl
X2dldF9tZXRyaWNzKG1fc291cE1lc3NhZ2UuZ2V0KCkpOwotICAgICAgICAgICAgICAgIG1fbmV0
d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25k
cyhTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRj
aF9zdGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAgICAgICAgICAgICAgICBtX25ldHdvcmtM
b2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9z
ZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkpOwog
I2VuZGlmCiAgICAgICAgICAgICAgICAgaWYgKCFtX25ldHdvcmtMb2FkTWV0cmljcy5yZWRpcmVj
dFN0YXJ0KQogICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZWRpcmVj
dFN0YXJ0ID0gbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydDsKQEAgLTEyMzIsOCArMTIz
MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAKICNpZiAh
VVNFKFNPVVAyKQogICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0X21ldHJpY3Mo
bV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgYXV0byByZXNwb25zZVN0YXJ0ID0gU2Vjb25kczo6
ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVzcG9uc2Vfc3RhcnQo
bWV0cmljcykpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlU3RhcnQgPSBNb25v
dG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhyZXNwb25zZVN0YXJ0LnNlY29uZHMoKSk7CisgICAg
bV9uZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VTdGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25k
czo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVzcG9uc2Vfc3Rh
cnQobWV0cmljcykpKTsKICNlbmRpZgogCiAgICAgLy8gU291cCBhZGRzIG1vcmUgaGVhZGVycyB0
byB0aGUgcmVxdWVzdCBhZnRlciBzdGFydGluZyBzaWduYWwgaXMgZW1pdHRlZCwgYW5kIGdvdC1o
ZWFkZXJzCkBAIC0xNjExLDIyICsxNjA5LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6
ZGlkU3RhcnRSZXF1ZXN0KCkKICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29u
bmVjdGlvblN0YXJ0ID0gV2ViQ29yZTo6cmV1c2VkVExTQ29ubmVjdGlvblNlbnRpbmVsOwogI2Vs
c2UKICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1l
c3NhZ2UuZ2V0KCkpOwotICAgIGF1dG8gZG9tYWluTG9va3VwU3RhcnQgPSBTZWNvbmRzOjpmcm9t
TWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9kbnNfc3RhcnQobWV0cmljcykp
OwotICAgIGF1dG8gZG9tYWluTG9va3VwRW5kID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhz
b3VwX21lc3NhZ2VfbWV0cmljc19nZXRfZG5zX2VuZChtZXRyaWNzKSk7Ci0gICAgYXV0byBjb25u
ZWN0U3RhcnQgPSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNz
X2dldF9jb25uZWN0X3N0YXJ0KG1ldHJpY3MpKTsKLSAgICBhdXRvIGNvbm5lY3RFbmQgPSBTZWNv
bmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9jb25uZWN0X2Vu
ZChtZXRyaWNzKSk7Ci0gICAgYXV0byBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBTZWNvbmRzOjpm
cm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF90bHNfc3RhcnQobWV0cmlj
cykpOwotICAgIGF1dG8gcmVxdWVzdFN0YXJ0ID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhz
b3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVxdWVzdF9zdGFydChtZXRyaWNzKSk7CisgICAgbV9u
ZXR3b3JrTG9hZE1ldHJpY3MuZG9tYWluTG9va3VwU3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29u
ZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Ruc19zdGFydCht
ZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1cEVuZCA9IE1v
bm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmlj
c19nZXRfZG5zX2VuZChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmNvbm5l
Y3RTdGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21l
c3NhZ2VfbWV0cmljc19nZXRfY29ubmVjdF9zdGFydChtZXRyaWNzKSkpOworICAgIG1fbmV0d29y
a0xvYWRNZXRyaWNzLmNvbm5lY3RFbmQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNy
b3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Nvbm5lY3RfZW5kKG1ldHJpY3MpKSk7
CisgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gTW9ub3Rv
bmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dl
dF90bHNfc3RhcnQobWV0cmljcykpKTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5yZXF1ZXN0
U3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNz
YWdlX21ldHJpY3NfZ2V0X3JlcXVlc3Rfc3RhcnQobWV0cmljcykpKTsKIAotICAgIG1fbmV0d29y
a0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1cFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoZG9tYWluTG9va3VwU3RhcnQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0
cmljcy5kb21haW5Mb29rdXBFbmQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhkb21h
aW5Mb29rdXBFbmQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0
U3RhcnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhjb25uZWN0U3RhcnQuc2Vjb25k
cygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0RW5kID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoY29ubmVjdEVuZC5zZWNvbmRzKCkpOwotICAgIGlmICghc2VjdXJl
Q29ubmVjdGlvblN0YXJ0ICYmIG1fY3VycmVudFJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0
cHMiKSkKKyAgICBpZiAoIW1fbmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFy
dCAmJiBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCiAgICAgICAg
IG1fbmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFdlYkNvcmU6OnJl
dXNlZFRMU0Nvbm5lY3Rpb25TZW50aW5lbDsKLSAgICBlbHNlCi0gICAgICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdT
ZWNvbmRzKHNlY3VyZUNvbm5lY3Rpb25TdGFydC5zZWNvbmRzKCkpOwotICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLnJlcXVlc3RTdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHJl
cXVlc3RTdGFydC5zZWNvbmRzKCkpOwogI2VuZGlmCiB9CiAKQEAgLTE2NDgsNyArMTYzOSw3IEBA
IHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVzdGFydCgpCiAgICAgbV9uZXR3b3JrTG9h
ZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogI2Vsc2UKICAgICBh
dXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1lc3NhZ2UuZ2V0
KCkpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9t
ZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAgICBtX25ldHdv
cmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlj
cm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkp
OwogICAgIG1fY3VycmVudFJlcXVlc3QudXBkYXRlU291cE1lc3NhZ2VCb2R5KG1fc291cE1lc3Nh
Z2UuZ2V0KCksIG1fc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkpOwogI2VuZGlmCiAgICAgbV9uZXR3
b3JrTG9hZE1ldHJpY3MucmVkaXJlY3RTdGFydCA9IG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNo
U3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAK
aW5kZXggZTFlNmIxNjNjMDIwMDExNmZmZjU3NmIxNTllMWI3OGNiY2FjYmQ3Zi4uY2E4MWRiN2M1
ZGY0NTNhN2ViNjY3ODRlYWUwZDhjNDZiYTk2ODZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzYsNDAgKzM2LDYgQEAKIAogbmFtZXNw
YWNlIElQQyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRp
bWUpCi17Ci0gICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsK
LX0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGU8RW5jb2Rl
cj4oRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENv
ZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRh
ZW1vbjo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2Fs
bFRpbWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVlOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0aW1lID0gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxU
aW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17
Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7Ci0gICAgZGVjb2RlciA+PiB0aW1lOwot
ICAgIGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKLX0KLXRlbXBsYXRlCi1zdGQ6Om9wdGlv
bmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPERlY29kZXI+KERl
Y29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVy
PFdhbGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1v
bjo6RGVjb2RlciYpOwotCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQogewogICAgIGVu
Y29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGZiZjE1ZjkyM2ZiZGY4NjBhMGU2MTEzNTk0OTQ5Zjk1
NGIyOTI0NmIuLmFmZTYxODM4MzdhMTA2N2VlZDc5NGMxYjNkNTZjODRjMWU2M2MxZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMzMsMTEgKzMz
LDkgQEAKICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYv
RXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Nb25v
dG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9T
SEExLmg+CiAjaW5jbHVkZSA8d3RmL1VuZXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRp
bWUuaD4KIAogbmFtZXNwYWNlIElQQyB7CiAKQEAgLTc5MywxNCArNzkxLDYgQEAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dmFyaWFudDxUeXBl
cy4uLj4+IHsKICAgICAgICAgcmV0dXJuIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4oVHlwZXMpIC0g
MSwgVHlwZXMuLi4+OjpkZWNvZGUoZGVjb2RlciwgKmkpOwogICAgIH0KIH07Ci0gICAgCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPiB7Ci0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdh
bGxUaW1lJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2FsbFRpbWUmKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPiB7CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA2NDk4MmJjNDgxMDJhNGFk
YjIwYTdlNjBlMjFiZDQ5MmQ2NTMzNzRjLi43NGJiOWQxZDYzMzRmYWQzYWFmOGQ4NGRlNzFjZmY5
ODcxN2JlMDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKQEAgLTI2MzAsMTkgKzI2MzAsMTkgQEAgc3RkOjpvcHRpb25hbDxSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzPiBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjpkZWMK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBzdGF0aXN0aWNzLnJlZ2lzdHJhYmxl
RG9tYWluID0gV1RGTW92ZSgqcmVnaXN0cmFibGVEb21haW4pOwogCi0gICAgZG91YmxlIGxhc3RT
ZWVuVGltZUFzRG91YmxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdFNlZW5UaW1lQXNE
b3VibGUpKQorICAgIFdhbGxUaW1lIGxhc3RTZWVuVGltZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGxhc3RTZWVuVGltZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgc3Rh
dGlzdGljcy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0U2VlblRpbWVB
c0RvdWJsZSk7CisgICAgc3RhdGlzdGljcy5sYXN0U2VlbiA9IGxhc3RTZWVuVGltZTsKICAgICAK
ICAgICAvLyBVc2VyIGludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0
aWNzLmhhZFVzZXJJbnRlcmFjdGlvbikpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
LSAgICBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZTsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lQXNEb3VibGUp
KQorICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUpKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHN0YXRpc3RpY3MubW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWVBc0RvdWJsZSk7CisgICAgc3RhdGlzdGljcy5tb3N0UmVjZW50VXNlckludGVyYWN0
aW9uVGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdGF0aXN0aWNzLmdyYW5kZmF0aGVyZWQpKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdl
YlRvdWNoRXZlbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91
Y2hFdmVudElPUy5tbQppbmRleCAzMjNjOWVjMDMyNTVhY2M5ZWM2YmRhYTNmMDU1YzZkMjAyMjdk
YTIxLi5jMTE5OTJiMGI1YjNiMjE3NDBiZjk3MjRlNmRiYmY5NzY2NDRjMDBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbQpAQCAt
MTIyLDcgKzEyMiw3IEBAIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQo
Y29uc3QgX1VJV2ViVG91Y2hFdmVudCogZXZlbnQsIFVJS2V5TW9kCiAgICAgOiBXZWJUb3VjaEV2
ZW50KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JVSVdlYlRvdWNoRXZlbnRUeXBlKGV2ZW50LT50
eXBlKSwKICAgICAgICAgd2ViRXZlbnRNb2RpZmllckZsYWdzKGZsYWdzKSwKLSAgICAgICAgV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApLAorICAgICAgICBXYWxsVGlt
ZShTZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9p
bnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5E
b2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNf
SVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9U
QVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmlu
ZGV4IDVhZDM1NjU2MmVkOGJiOTk3OWJkZWRhMjMyMjE5N2JmOGE5YjkyZmUuLmU5YmVlYTYwOTZj
NmY0N2IxZWQ2YjAzOTA4YmI5NzA5ZWQ4ZmQxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtOTEsNyArOTEsNyBAQCBXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KDo6V2ViRXZlbnQgKgogICAgIGJvb2wgaXNLZXlwYWQgPSBmYWxzZTsKICAgICBib29sIGlzU3lz
dGVtS2V5ID0gZmFsc2U7CiAgICAgYXV0byBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChl
dmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFtcDsKKyAgICBhdXRv
IHRpbWVzdGFtcCA9IFdhbGxUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSk7CiAKICAgICBp
ZiAod2luZG93c1ZpcnR1YWxLZXlDb2RlID09ICdccicpIHsKICAgICAgICAgdGV4dCA9ICJcciJf
czsKQEAgLTExMSw3ICsxMTEsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1
bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5
Ym9hcmRFdmVudCB7IHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlk
ZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1h
Y0NoYXJDb2RlLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlz
U3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXAp
IH07CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCB7IHR5cGUsIHRleHQsIHVu
bW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2RlLCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVz
dGFtcCB9OwogfQogCiBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJNb3VzZUV2ZW50KDo6V2ViRXZlbnQgKmV2ZW50KQpAQCAtMTI3LDkgKzEyNyw5IEBA
IFdlYktpdDo6V2ViTW91c2VFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoOjpXZWJFdmVudCAqZXZlbnQpCiAgICAgZmxvYXQgZGVsdGFZID0gMDsKICAgICBmbG9h
dCBkZWx0YVogPSAwOwogICAgIGludCBjbGlja0NvdW50ID0gMDsKLSAgICBkb3VibGUgdGltZXN0
YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgIGF1dG8gdGltZXN0YW1wID0gV2FsbFRpbWUoU2Vj
b25kcyhldmVudC50aW1lc3RhbXApKTsKIAotICAgIHJldHVybiBXZWJLaXQ6OldlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBidXR0b25zLCBwb3NpdGlvbiwgcG9zaXRpb24sIGRlbHRhWCwgZGVs
dGFZLCBkZWx0YVosIGNsaWNrQ291bnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2Rp
Zmllcj4geyB9LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZXN0YW1wKSk7CisgICAgcmV0
dXJuIFdlYktpdDo6V2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIGJ1dHRvbnMsIHBvc2l0aW9u
LCBwb3NpdGlvbiwgZGVsdGFYLCBkZWx0YVksIGRlbHRhWiwgY2xpY2tDb3VudCwgT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB7IH0sIHRpbWVzdGFtcCk7CiB9CiAKICNpZiBI
QVZFKFVJU0NST0xMVklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQpAQCAt
MTYxLDcgKzE2MSw3IEBAIFdlYktpdDo6V2ViV2hlZWxFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYldoZWVsRXZlbnQoVUlTY3JvbGxFdmVudCAqZXZlCiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIGRlbHRhKGRlbHRhVmVjdG9yLmR4LCBkZWx0YVZlY3Rvci5keSk7CiAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIHdoZWVsVGlja3MgPSBkZWx0YTsKICAgICB3aGVlbFRpY2tzLnNjYWxlKDEu
IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0
ZXAoKSkpOwotICAgIGF1dG8gdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29u
ZHMoZXZlbnQudGltZXN0YW1wKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CisgICAgYXV0byB0aW1l
c3RhbXAgPSBNb25vdG9uaWNUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSkuYXBwcm94aW1h
dGVXYWxsVGltZSgpOwogICAgIHJldHVybiB7CiAgICAgICAgIFdlYktpdDo6V2ViRXZlbnQ6Oldo
ZWVsLAogICAgICAgICBzY3JvbGxMb2NhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDhkZmE4OGM2
NjM0ZWUwMGYwMjM5ZDg1ZThiNTA1ZDlkOTVhMTNkOTguLmMxMTFlNzEyNjk0YWQ4MzE4NWYxMjJi
YjVlNjAzY2QyNzRlZjU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlKFdLCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0TGFzdFNlZW4oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0
KS0+c3RyaW5nKCkpLCBTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4dCwgY29tcGxldGlvbkhh
bmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihV
UkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFdhbGxUaW1lKFNlY29u
ZHMoc2Vjb25kcykpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMjA2LDcgKzIwNiw3
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFj
dGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0
YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0
aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZy
YW1lRG9tYWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFt
ZURvbWFpbjIpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBsYXN0U2VlbiB9LCBoYWRVc2VySW50ZXJh
Y3Rpb24sIFNlY29uZHMgeyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIH0sIGlzR3JhbmRmYXRo
ZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1w
bChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lRG9t
YWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZURvbWFp
bjIpLT5zdHJpbmcoKSksIFdhbGxUaW1lKFNlY29uZHMobGFzdFNlZW4pKSwgaGFkVXNlckludGVy
YWN0aW9uLCBXYWxsVGltZShTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24pKSwgaXNH
cmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1Jl
bW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC01NDksNyArNTQ5LDcgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRT
dG9yZU1vZGlmaWVkU2luY2VIb3UKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0Ns
ZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJU
aHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAgICAgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMgPSBXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KDApLCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWUoKSwgW2NvbnRleHQsIGNhbGxiYWNr
XSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwogfQpAQCAtODIwLDcgKzgy
MCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBl
cm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHM7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVtb3Zl
RGF0YShkYXRhVHlwZXMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSwgW2NvbnRleHQsIGNh
bGxiYWNrXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVtb3ZlRGF0YShk
YXRhVHlwZXMsIFdhbGxUaW1lKCksIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxs
YmFjayhjb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDdlZjA2OTUwYWIw
N2QzZTFhNzYxNmNiY2I1OGJkMjU3ODUzNTllYzcuLjFjN2I3MDRlOTQ3ZjBkOTI3MzU5YmEzODVk
ZTllMDQxNGI3MmE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTg5LDcgKzE4OSw3IEBAIC0gKFdL
SFRUUENvb2tpZVN0b3JlICopaHR0cENvb2tpZVN0b3JlCiBzdGF0aWMgV2FsbFRpbWUgdG9TeXN0
ZW1DbG9ja1RpbWUoTlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKTsK
KyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkp
OwogfQogCiAtICh2b2lkKWZldGNoRGF0YVJlY29yZHNPZlR5cGVzOihOU1NldCAqKWRhdGFUeXBl
cyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3Jk
ICo+ICopKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCmluZGV4IDZiMjk5ZjhlYzRi
Njk4ZWEwMDYxNzQ3NzBmZDUzZTI0NzlkYTE3OGYuLjdkNDE2M2UyMTExNmUzZmNkNjM0ODkxODY2
N2VlMDBmNjQ4YmIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCkBAIC0xOTcsNyArMTk3LDcgQEAgLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICBtYWtl
T2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihwYXJlbnRGcmFt
ZS51bnNpZ25lZExvbmdMb25nVmFsdWUpLAogICAgICAgICBvcmlnaW5hbFVSTCwKICAgICAgICAg
b3JpZ2luYWxIVFRQTWV0aG9kLAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnRUaW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKSwKKyAgICAgICAgV2FsbFRpbWUoU2Vj
b25kcyhldmVudFRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApKSwKICAgICAgICAgc3Rh
dGljX2Nhc3Q8Ym9vbD4obG9hZGVkRnJvbUNhY2hlLmJvb2xWYWx1ZSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PFdlYktpdDo6UmVzb3VyY2VMb2FkSW5mbzo6VHlwZT4odHlwZS51bnNpZ25lZENoYXJW
YWx1ZSksCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKaW5kZXggYjJkZTVhMmYw
M2VhMWFiZTlhYWEyNWY0YzhhOGE5MTlmZDYyMzI5Zi4uYmQ5Y2ZmMGVlZmY3NWJlYjRkNGNlMjhj
YzgxNmUxZDZlNTE3NDIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI3MSw3
ICsyNzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZGVjb2RlSFRUUEJvZHkoR1ZhcmlhbnQqIGh0
dHBCb2R5VmFyaWFudCwgSFRUUEJvZHkmIGh0dHBCb2R5KQogICAgICAgICBpZiAoaGFzRmlsZUxl
bmd0aCkKICAgICAgICAgICAgIGVsZW1lbnQuZmlsZUxlbmd0aCA9IGZpbGVMZW5ndGg7CiAgICAg
ICAgIGlmIChoYXNGaWxlTW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgICAgIGVsZW1lbnQuZXhw
ZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhmaWxl
TW9kaWZpY2F0aW9uVGltZSk7CisgICAgICAgICAgICBlbGVtZW50LmV4cGVjdGVkRmlsZU1vZGlm
aWNhdGlvblRpbWUgPSBXYWxsVGltZShTZWNvbmRzKGZpbGVNb2RpZmljYXRpb25UaW1lKSk7CiAg
ICAgICAgIGVsZW1lbnQuYmxvYlVSTFN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoYmxvYlVSTFN0
cmluZyk7CiAKICAgICAgICAgaHR0cEJvZHkuZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKFdURk1v
dmUoZWxlbWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggNDhlMWVkZTRiYjFk
NTczZTI5NDI2NDE5Nzk5YjAyYzRkYWZjMGQzYS4uZjgzNDhiYTVjNzQyMjYzZGVjYmVjMjBlMzVj
MWQ2MTUzZjkxMjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0xMTUyLDcgKzEx
NTIsNyBAQCB2b2lkIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGVhcihXZWJLaXRXZWJz
aXRlRGF0YU1hbmFnZXIqIG1hbmFnZXIsIFdlYktpdAogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIFdhbGxUaW1l
IHRpbWVQb2ludCA9IHRpbWVTcGFuID8gV2FsbFRpbWU6Om5vdygpIC0gU2Vjb25kczo6ZnJvbU1p
Y3Jvc2Vjb25kcyh0aW1lU3BhbikgOiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7CisgICAg
V2FsbFRpbWUgdGltZVBvaW50ID0gdGltZVNwYW4gPyBXYWxsVGltZTo6bm93KCkgLSBTZWNvbmRz
Ojpmcm9tTWljcm9zZWNvbmRzKHRpbWVTcGFuKSA6IFdhbGxUaW1lKCk7CiAgICAgR1JlZlB0cjxH
VGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3KG1hbmFnZXIsIGNhbmNlbGxhYmxlLCBj
YWxsYmFjaywgdXNlckRhdGEpKTsKICAgICBtYW5hZ2VyLT5wcml2LT53ZWJzaXRlRGF0YVN0b3Jl
LT5yZW1vdmVEYXRhKHRvV2Vic2l0ZURhdGFUeXBlcyh0eXBlcyksIHRpbWVQb2ludCwgW3Rhc2sg
PSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgIGdfdGFza19yZXR1cm5fYm9vbGVhbih0YXNrLmdl
dCgpLCBUUlVFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlk
SGFzaFNhbHRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFz
aFNhbHRTdG9yYWdlLmNwcAppbmRleCBmNjI0MzZkNzM4NWQ2ZWFkYTE4NTQ5MjRlODRhYTE4NTVi
ZmI1YWFkLi5iMjEyMDk1NzE5OWM1NjQ1OTc4Y2YyODBkYTc0MGM1MGEzNDk5YjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3Bw
CkBAIC0xNzcsNyArMTc3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERldmljZUlkSGFzaFNhbHRTdG9y
YWdlOjpIYXNoU2FsdEZvck9yaWdpbj4gRGV2aWNlSWRIYXNoU2FsdFN0b3IKIAogICAgIGF1dG8g
aGFzaFNhbHRGb3JPcmlnaW4gPSBtYWtlVW5pcXVlPEhhc2hTYWx0Rm9yT3JpZ2luPihXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luRGF0YS52YWx1ZSgpKSwgV1RGTW92ZShwYXJlbnRTZWN1cml0eU9yaWdp
bkRhdGEudmFsdWUoKSksIFdURk1vdmUoZGV2aWNlSWRIYXNoU2FsdCkpOwogCi0gICAgaGFzaFNh
bHRGb3JPcmlnaW4tPmxhc3RUaW1lVXNlZCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0
VGltZVVzZWQpOworICAgIGhhc2hTYWx0Rm9yT3JpZ2luLT5sYXN0VGltZVVzZWQgPSBXYWxsVGlt
ZShTZWNvbmRzKGxhc3RUaW1lVXNlZCkpOwogCiAgICAgcmV0dXJuIGhhc2hTYWx0Rm9yT3JpZ2lu
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZWM5YjM1Mzc2YjlhMzNjOTdmNGE1MDc2MzhkNTBlNDM2
YWQ5ZGUxNC4uMjBjMDc5NjExZDMxZjY5NmQ4Mzc2ODQyMWFiOTg1MjRkYmIzNDJiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCkBAIC02NzQsNyArNjc0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KICAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRWZXJ5UHJl
dmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2Vl
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNv
dXJjZURvbWFpbiwgU2Vjb25kcyBsYXN0U2VlbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2Vl
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNv
dXJjZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTY5NCw3ICs2OTQsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGludAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShzZXNzaW9uSUQsIGRvbWFpbklEKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQ
cmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5z
aWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6TWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwgcmVzb3VyY2VE
b21haW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNl
ckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQs
IGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQxYjg2ZTE4OWMyY2Yx
NzI0NGQ4YWRlM2Q3ZWQwNWZmODc5MDBlNi4uNzdhODVkZmQxNzQ3NDdkM2YzNTNiMWJiNzc2ZjAw
NmEyYWNkMmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZVN0
YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGludCBk
b21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGF0
aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFp
bjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJl
dmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0
b3BGcmFtZURvbWFpbjIsIFdhbGxUaW1lIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVy
ZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRh
UmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBp
bnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJv
b2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0
YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5MDk3OTNlMzc1Njhj
MDQyYjEwMDJhMjZhYTAyNzQ3ODRhOTFlNGNhLi5hZDkyMWQzZjUzYTJkOWE2MjQ0MTExMzljMTRj
OTMyNWRmOTk3MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib28KICAgICBuZXR3b3JrUHJvY2VzcygpLnN0YXRpc3RpY3NEYXRh
YmFzZUhhc0FsbFRhYmxlcyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJs
LCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1
cmwsIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMTg2LDcgKzExODYs
NyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVSTCYgdXJsLCBT
ZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYQogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNldExhc3RTZWVuKG1fc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBzZWNvbmRzLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0TGFzdFNlZW4obV9zZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0sIGxhc3RTZWVuLCBbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRvbWFpbklERXhp
c3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMTk2LDcgKzExOTYsNyBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQsIENvbXBsZXRp
b25IYW5kbGVyPAogICAgIG5ldHdvcmtQcm9jZXNzKCkuZG9tYWluSURFeGlzdHNJbkRhdGFiYXNl
KG1fc2Vzc2lvbklELCBkb21haW5JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Ci12b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwy
LCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZh
bGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMiwgV2FsbFRpbWUg
bGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9v
bCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICh1cmwucHJv
dG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDFkZTI1YTY2MDU3ZjJkNjZjNjI5OWU1ZWJiYjgxNDZi
ZWU5YjgxZTMuLjkzYTg3NTJhODJiMzFlMWQxZjE2MjgwZjliM2RiZjliYzljMWEwZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTE5NywxMCArMTk3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdyYW5k
ZmF0aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIGlzR3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3Qg
VVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNl
dExhc3RTZWVuKGNvbnN0IFVSTCYsIFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21haW5JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJh
c2VIYXNBbGxUYWJsZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiwgY29uc3QgVVJMJiB0b3BGcmFt
ZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29s
IGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQs
IHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBV
UkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDIsIFdhbGxUaW1lIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNW
ZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGlu
Zyhjb25zdCBVUkwmLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJl
bW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVzdChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVj
b2duaXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJl
Y29nbml6ZXIubW0KaW5kZXggYzY0MWVhNzU1MWQzMDExYTYwNjdhYTU3ZjVmNDA0MGQzMDU4NTBh
Yi4uOTA4OWRjNWIwYjQ1N2ViMzA4OTMyYWNiNzBkNWUyZjY5MDc1YjAyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVy
Lm1tCkBAIC0xMjksNyArMTI5LDcgQEAgLSAoc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6TmF0aXZl
V2ViTW91c2VFdmVudD4pY3JlYXRlTW91c2VFdmVudFdpdGhUeXBlOihXZWJLaXQKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb2ludCB7IFtzZWxmIGxvY2F0aW9uSW5WaWV3OnNlbGYudmlld10gfTsK
ICAgICBhdXRvIGRlbHRhID0gcG9pbnQgLSBXZWJDb3JlOjpJbnRQb2ludCB7IFtfY3VycmVudFRv
dWNoIHByZXZpb3VzTG9jYXRpb25JblZpZXc6c2VsZi52aWV3XSB9OwogICAgIC8vIFVJVG91Y2gn
cyB0aW1lc3RhbXAgdXNlcyBtYWNoX2Fic29sdXRlX3RpbWUgYXMgaXRzIHRpbWViYXNlLCBzYW1l
IGFzIE1vbm90b25pY1RpbWUuCi0gICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyhbX2N1cnJlbnRUb3VjaCB0aW1lc3RhbXBdKS5hcHByb3hpbWF0ZVdhbGxU
aW1lKCk7CisgICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lKFNlY29uZHMoW19jdXJy
ZW50VG91Y2ggdGltZXN0YW1wXSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKICAgICByZXR1cm4g
V1RGOjptYWtlVW5pcXVlPFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9u
LCBidXR0b25zLCBwb2ludCwgcG9pbnQsIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpLCAw
LCBbX2N1cnJlbnRUb3VjaCB0YXBDb3VudF0sIG1vZGlmaWVycywgdGltZXN0YW1wLCAwLCBjYW5j
ZWxsZWQgPyBXZWJLaXQ6Okdlc3R1cmVXYXNDYW5jZWxsZWQ6OlllcyA6IFdlYktpdDo6R2VzdHVy
ZVdhc0NhbmNlbGxlZDo6Tm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDY1NWI5ODUwNDcx
NjA1MTg3ZjZhNTk4YjI3ZjE1OTJkMWY1NTg3MDAuLjQ4ZTRhN2MyOGIzZjZhNWM2Mjc2MDYwNGY4
MDRhODk2ZTNlZWY3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9M
ZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCkBAIC04NDAsNyArODQwLDcgQEAgc3Rh
dGljIHZvaWQgZGVjb2RlRm9ybURhdGFFbGVtZW50KEhpc3RvcnlFbnRyeURhdGFEZWNvZGVyJiBk
ZWNvZGVyLCBIVFRQQm9keTo6RWwKICAgICAgICAgZG91YmxlIGV4cGVjdGVkRmlsZU1vZGlmaWNh
dGlvblRpbWU7CiAgICAgICAgIGRlY29kZXIgPj4gZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGlt
ZTsKICAgICAgICAgaWYgKCFzdGQ6OmlzbmFuKGV4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUp
KQotICAgICAgICAgICAgZm9ybURhdGFFbGVtZW50LmV4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRp
bWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGlt
ZSk7CisgICAgICAgICAgICBmb3JtRGF0YUVsZW1lbnQuZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9u
VGltZSA9IFdhbGxUaW1lKFNlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSkpOwog
CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXgg
MjY3NTQxMDFhMDhiYjk5OGVhNDk3ZDBlMWUyNzdiOTdlMjc2NWZjMS4uMjljYzJiYzViOGE1Y2Uw
YmY4NzUwOGJlYjYzZTg5NDA0ZmRhMGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTU2OSwxNyArNTY5LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRmx1c2hQZW5kaW5nRWRpdG9y
U3RhdGVVcGRhdGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgV0tCdW5kbGVQYWdlU2lt
dWxhdGVNb3VzZURvd24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQg
cG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91
YmxlIHRpbWUpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3du
KGJ1dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZp
ZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOworICAgIFdlYktpdDo6dG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0b24sIFdlYktpdDo6dG9JbnRQb2ludChwb3Np
dGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWUoU2Vjb25kcyh0aW1lKSkpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgaW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICBXZWJLaXQ6OnRvSW1wbChw
YWdlKS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9u
KSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkp
OworICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCBXZWJL
aXQ6OnRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1l
KFNlY29uZHModGltZSkpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlTW90
aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkK
IHsKLSAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJLaXQ6
OnRvSW50UG9pbnQocG9zaXRpb24pLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwor
ICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKFdlYktpdDo6dG9J
bnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lKFNlY29uZHModGltZSkpKTsKIH0KIAogdWludDY0
X3QgV0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oCmluZGV4IGJhNWIyZTYz
ZDllMDY4Nzk5MzM1NzFjMTk3YWIyNzFiZGQ3MmRlY2UuLjhmNmEzNGJiOWZhZWRmNjkxZTI1YWY1
ODg2MTk5MDgxNDViNWVmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRl
cm5hbC5oCkBAIC04NSw1ICs4NSw1IEBAIGlubGluZSBOU1RpbWVJbnRlcnZhbCBraXQoV2FsbFRp
bWUgdGltZSkKIAogaW5saW5lIFdhbGxUaW1lIGNvcmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQogewot
ICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc2VjICsgTlNUaW1lSW50ZXJ2YWxT
aW5jZTE5NzApOworICAgIHJldHVybiBXYWxsVGltZShzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNl
MTk3MCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggODI1NmRlZWFjNjM1OGQyMTdiNWM4MjYyNmUyNWQyNWIyMDAyOGFiYi4uOGUxYzhhZmIx
NGYzZDA1MDZiZGJlMzE1Y2IxZmM0NmU4M2JjZTI0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTA3ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYFNlY29uZHNg
IGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9l
dGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwOgorICAgICAgICAoV1RGOjpUZXN0V2ViS2l0
QVBJOjp3dCk6CisgICAgICAgIChXVEY6OlRlc3RXZWJLaXRBUEk6Om10KToKKyAgICAgICAgKFdU
Rjo6VGVzdFdlYktpdEFQSTo6YXQpOgorICAgICAgICAoV1RGOjpUZXN0V2ViS2l0QVBJOjpkdCk6
CisgICAgICAgIFJlcGxhY2UgYFQ6OmZyb21SYXdTZWNvbmRzKC4uLilgIHdpdGggYFQoU2Vjb25k
cyguLi4pKWAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBoZWxwZXIgbWV0aG9kcyB0byBgV2ViQ29yZTo6Rm9udFNoYWRvd2Ag
Zm9yIHNlcmlhbGl6aW5nIHRvIENTUyBhbmQgY29udmVydGluZyB0byBgTlNTaGFkb3dgCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaW1lLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwCmluZGV4IDUzNWFhNWFlODQ5YzkxYzg5YmFl
Y2RmNjEyZWM0MDMzOGRhYTk3YTIuLjBmNTUzMzdkMmY1YzVjNTBhNTRiYTc2NzFhMjQ2NDM3MWQy
MmEzODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwCkBAIC03NywyMiAr
NzcsMjIgQEAgU2Vjb25kcyBzKGRvdWJsZSB2YWx1ZSkKIAogV2FsbFRpbWUgd3QoZG91YmxlIHZh
bHVlKQogewotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAg
IHJldHVybiBXYWxsVGltZShTZWNvbmRzKHZhbHVlKSk7CiB9CiAKIE1vbm90b25pY1RpbWUgbXQo
ZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25k
cyh2YWx1ZSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kcyh2YWx1ZSkpOwogfQog
CiBBcHByb3hpbWF0ZVRpbWUgYXQoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBBcHByb3hp
bWF0ZVRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVU
aW1lKFNlY29uZHModmFsdWUpKTsKIH0KIAogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGR0KGRv
dWJsZSB2YWx1ZSwgQ2xvY2tUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIFRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZTo6ZnJvbVJhd1NlY29uZHModmFsdWUsIHR5cGUpOworICAgIHJldHVybiBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUoU2Vjb25kcyh2YWx1ZSksIHR5cGUpOwogfQogCiBUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGUgZHR3KGRvdWJsZSB2YWx1ZSkKQEAgLTM5NSw3ICszOTUsNyBAQCBU
RVNUKFdURl9UaW1lLCBjbGFtcCkKIC8vIHRoZXkgaW52b2tlcyBnbG9iYWwgY29uc3RydWN0b3Jz
IGFuZCBiZWNvbWVzIGNvbXBpbGUgZXJyb3JzLgogc3RhdGljIGNvbnN0IE1vbm90b25pY1RpbWUg
TmFOID0gTW9ub3RvbmljVGltZTo6bmFuKCk7CiBzdGF0aWMgY29uc3QgTW9ub3RvbmljVGltZSBJ
bmZpbml0eSA9IE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7Ci1zdGF0aWMgY29uc3QgTW9ub3Rv
bmljVGltZSBaZXJvID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7CitzdGF0aWMg
Y29uc3QgTW9ub3RvbmljVGltZSBaZXJvID0gTW9ub3RvbmljVGltZSgpOwogc3RhdGljIGNvbnN0
IE1vbm90b25pY1RpbWUgT25lID0gWmVybyArIFNlY29uZHMoMSk7CiBzdGF0aWMgY29uc3QgTW9u
b3RvbmljVGltZSBOZWdhdGl2ZU9uZSA9IFplcm8gLSBTZWNvbmRzKDEpOwogc3RhdGljIGNvbnN0
IGJvb2wgWmVyb0lzRmFsc2UgPSAhIVplcm87Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446265</attachid>
            <date>2021-12-07 17:31:57 -0800</date>
            <delta_ts>2022-02-28 03:44:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233795-20211207183156.patch</filename>
            <type>text/plain</type>
            <size>138214</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjFmZmNjZDUwMWU3Mzc5OGRlYzMwYzkwNWRkMDNlMzk2OGJlNTY1OS4uZTRkYTUwMWE5
ZTUwZDcyZDFmN2NlZDY4NzE3MzM0ZmE1NGQ4YzE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDYgQEAKKzIw
MjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBgU2Vjb25kc2AgYXMgdGhlIHVuZGVybHlpbmcgdmFsdWUgZm9yIGBNb25vdG9uaWNUaW1lYC9g
V2FsbFRpbWVgL2V0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEl0J3MgYWxyZWFkeSB0aGUgY2FzZSB0aGF0IGBNb25vdG9uaWNUaW1lYC9gV2FsbFRp
bWVgL2V0Yy4gdXNlIHNlY29uZHMgYXMgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgdmFsdWUsIHNv
IHdlIHNob3VsZCBqdXN0IHVzZSBgU2Vjb25kc2AgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29udmVy
dCB0by9mcm9tIHRoZXNlCisgICAgICAgIHdyYXBwZXIvUE9ELWVzcXVlIG9iamVjdHMgKGUuZy4g
d2Ugd291bGQgYmUgYWJsZSB0byBkcm9wIGBmcm9tUmF3U2Vjb25kc2AgYW5kIGluc3RlYWQgaGF2
ZSBhCisgICAgICAgIGNvbXBpbGUtdGltZSBndWFyYW50ZWUgdGhhdCB0aGUgZGV2ZWxvcGVyIGtu
b3dzIHRoYXQgdGhlIHVuZGVybHlpbmcgdmFsdWUgcmVwcmVzZW50cyBzZWNvbmRzCisgICAgICAg
IHdoZW4gY3JlYXRpbmcgYSBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuKS4KKworICAg
ICAgICAqIHd0Zi9BcHByb3hpbWF0ZVRpbWUuaDoKKyAgICAgICAgKFdURjo6QXBwcm94aW1hdGVU
aW1lOjpBcHByb3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAg
ICAgIChzdGQ6OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0
Zi9BcHByb3hpbWF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OmR1
bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5jcHA6CisgICAgICAgIChXVEY6
OldhbGxUaW1lOjpub3cpOgorICAgICAgICAoV1RGOjpNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFi
c29sdXRlVGltZSk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6OnRvTWFjaEFic29sdXRl
VGltZSBjb25zdCk6CisgICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6ZnJvbU1hY2hBcHBy
b3hpbWF0ZVRpbWUpOgorICAgICAgICAoV1RGOjpBcHByb3hpbWF0ZVRpbWU6OnRvTWFjaEFwcHJv
eGltYXRlVGltZSBjb25zdCk6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Om5vdyk6Cisg
ICAgICAgIChXVEY6OkFwcHJveGltYXRlVGltZTo6bm93KToKKyAgICAgICAgKiB3dGYvR2VuZXJp
Y1RpbWVNaXhpbi5oOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjppbmZpbml0eSk6
CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om5hbik6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6
R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6Okdl
bmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNU
aW1lTWl4aW46Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4
aW46Om9wZXJhdG9yJSBjb25zdCk6CisgICAgICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8IGNv
bnN0KToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I+IGNvbnN0KToK
KyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAg
ICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpHZW5lcmljVGltZU1peGluOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV1RGOjpHZW5l
cmljVGltZU1peGluOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpHZW5lcmljVGltZU1peGluOjpH
ZW5lcmljVGltZU1peGluKToKKyAgICAgICAgKFdURjo6R2VuZXJpY1RpbWVNaXhpbjo6ZnJvbVJh
d1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9Nb25vdG9uaWNUaW1lLmg6CisgICAg
ICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Ok1vbm90b25pY1RpbWUpOgorICAgICAgICAoV1RGOjpN
b25vdG9uaWNUaW1lOjpNYXJrYWJsZVRyYWl0czo6aXNFbXB0eVZhbHVlKToKKyAgICAgICAgKHN0
ZDo6aXNuYW4pOgorICAgICAgICAoc3RkOjppc2luZik6CisgICAgICAgIChzdGQ6OmlzZmluaXRl
KToKKyAgICAgICAgKiB3dGYvTW9ub3RvbmljVGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1vbm90
b25pY1RpbWU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIHd0Zi9TZWNvbmRzLmNwcDoKKyAgICAg
ICAgKFdURjo6U2Vjb25kczo6b3BlcmF0b3ItIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlLmg6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKToKKyAgICAgICAgKFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUpOiBSZW5hbWVkIGZy
b20gYFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUaW1lOjp3aXRoU2FtZUNsb2NrQW5kUmF3U2Vj
b25kc2AuCisgICAgICAgIChzdGQ6OmlzbmFuKToKKyAgICAgICAgKHN0ZDo6aXNpbmYpOgorICAg
ICAgICAoc3RkOjppc2Zpbml0ZSk6CisgICAgICAgIChXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZTo6ZnJvbVJhd1NlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9UaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6OndhbGxUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlOjptb25vdG9uaWNUaW1lIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlOjphcHByb3hpbWF0ZVRpbWUgY29uc3QpOgorICAgICAgICAoV1RGOjpUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6VGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RGOjpU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RG
OjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAo
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RG
OjpoYXNFbGFwc2VkKToKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Ok1hcmthYmxlVHJh
aXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoc3RkOjppc25hbik6CisgICAgICAgIChzdGQ6
OmlzaW5mKToKKyAgICAgICAgKHN0ZDo6aXNmaW5pdGUpOgorICAgICAgICAqIHd0Zi9XYWxsVGlt
ZS5jcHA6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpkdW1wIGNvbnN0KToKKworICAgICAgICAq
IHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg6CisgICAgICAgIChXVEY6OlBlcnNp
c3RlbmNlOjpDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6
UGVyc2lzdGVuY2U6OkNvZGVyPFNlY29uZHM+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpQZXJzaXN0ZW5jZTo6Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgU2Vjb25kc2AgYW5kIGBHZW5l
cmljVGltZU1peGluYCBkZWZpbmUgbWVtYmVyIGBlbmNvZGVgL2BkZWNvZGVgLgorCisgICAgICAg
ICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6dG9X
YWxsVGltZSk6CisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlv
bi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlTW9kaWZpY2F0aW9uVGlt
ZSk6CisgICAgICAgICogd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlQ3JlYXRpb25UaW1lKToKKyAgICAgICAgKiB3dGYvcG9z
aXgvVGhyZWFkaW5nUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRp
bWVkV2FpdCk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6OmZpbGVDcmVhdGlvblRpbWUpOgorICAgICAgICBSZXBsYWNl
IGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorCiAyMDIx
LTEyLTA3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEZldGNo
IGFuZCByZW1vdmUgZmlsZSBzeXN0ZW0gZGF0YSB2aWEgV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggM2ZjMDFjZWYxZDY4ODBiM2Q4NDVmYzQxODcwOTM0YzEwYTUxMzk1ZS4uZTUxNDgy
M2RiMWEwYzAxMGE3ZjE2OWQ3OTJiMmMyY2MwOGExZGRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgxIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBgTW9ub3Rv
bmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhhdCBgTW9ub3RvbmljVGlt
ZWAvYFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRoZSB1bmRlcmx5aW5nCisgICAgICAg
IHZhbHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29uZHNgIHRvIG1ha2UgaXQgZWFzaWVy
IHRvIGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3cmFwcGVyL1BPRC1lc3F1ZSBvYmpl
Y3RzIChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBgZnJvbVJhd1NlY29uZHNgIGFuZCBp
bnN0ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUgZ3VhcmFudGVlIHRoYXQgdGhlIGRl
dmVsb3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHJlcHJlc2VudHMgc2Vjb25k
cworICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25pY1RpbWVgL2BXYWxsVGltZWAvZXRj
LikuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJYUkdhbWVwYWQ6OldlYlhSR2FtZXBhZCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0RGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisgICAgICAgICog
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NWaWRl
b0ZyYW1lTWV0YWRhdGFUaW1lc3RhbXBzKToKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnZhbHVlQXNEYXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKToKKyAgICAg
ICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5w
dXRUeXBlOjp2YWx1ZUFzRGF0ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL0ZyYW1lUmF0ZU1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUmF0ZU1v
bml0b3I6OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3Jj
UmVuZGVyQW5kUHVzaEZyYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2VhcmNoUG9w
dXBNZW51Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0b1N5c3RlbUNsb2NrVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvU3lzdGVtQ2xv
Y2tUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNsZWFyTWVkaWFDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxp
dGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3YWxsVGlt
ZUZvckV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyOjpQbGF0
Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNl
MTk3MCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUhUVFBEYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJh
c2U6Omxhc3RNb2RpZmllZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrTG9hZE1ldHJpY3MubW06CisgICAgICAgIChXZWJDb3JlOjpkYXRlVG9Nb25vdG9u
aWNUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyREI6OnNldENvb2tpZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxDYWNoZUVudHJ5OjpDdXJsQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpD
dXJsQ2FjaGVFbnRyeTo6cGFyc2VSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2lu
Y2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRz
KToKKyAgICAgICAgUmVwbGFjZSBgVDo6ZnJvbVJhd1NlY29uZHMoLi4uKWAgd2l0aCBgVChTZWNv
bmRzKC4uLikpYC4KKyAgICAgICAgRHJpdmUtYnk6IFVzZSBgV2FsbFRpbWVgL2BNb25vdG9uaWNU
aW1lYC9ldGMuIGluc3RlYWQgb2YgYSByYXcgYGRvdWJsZWAgd2hlcmUgY29udmVuaWVudC4KKwog
MjAyMS0xMi0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2Fy
ZCB0aGUgV2ViUHJvY2VzcyBpcyBncmFudGVkIGFjY2VzcyB0byB3aGVuIHBhc3RpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYmYxMTcxZWE5ZGU5YzQxNThiNmE1YTVlYTdmODhiZTVmNGM0YzEwOS4uNTgyMTBiMWRm
NmU3YWM3NjU0Yzk0ZWJkZWQ1ZGEyZjI2ODljZmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBA
QAorMjAyMS0xMi0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGBTZWNvbmRzYCBhcyB0aGUgdW5kZXJseWluZyB2YWx1ZSBmb3IgYE1vbm90b25pY1Rp
bWVgL2BXYWxsVGltZWAvZXRjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSXQncyBhbHJlYWR5IHRoZSBjYXNlIHRoYXQgYE1vbm90b25pY1RpbWVgL2BX
YWxsVGltZWAvZXRjLiB1c2Ugc2Vjb25kcyBhcyB0aGUgdW5kZXJseWluZworICAgICAgICB2YWx1
ZSwgc28gd2Ugc2hvdWxkIGp1c3QgdXNlIGBTZWNvbmRzYCB0byBtYWtlIGl0IGVhc2llciB0byBj
b252ZXJ0IHRvL2Zyb20gdGhlc2UKKyAgICAgICAgd3JhcHBlci9QT0QtZXNxdWUgb2JqZWN0cyAo
ZS5nLiB3ZSB3b3VsZCBiZSBhYmxlIHRvIGRyb3AgYGZyb21SYXdTZWNvbmRzYCBhbmQgaW5zdGVh
ZCBoYXZlIGEKKyAgICAgICAgY29tcGlsZS10aW1lIGd1YXJhbnRlZSB0aGF0IHRoZSBkZXZlbG9w
ZXIga25vd3MgdGhhdCB0aGUgdW5kZXJseWluZyB2YWx1ZSByZXByZXNlbnRzIHNlY29uZHMKKyAg
ICAgICAgd2hlbiBjcmVhdGluZyBhIGBNb25vdG9uaWNUaW1lYC9gV2FsbFRpbWVgL2V0Yy4pLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWlucyBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFz
dFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFi
YXNlVXRpbGl0aWVzOjpidWlsZFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlIGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0U2Vlbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6ZmlsZVRpbWVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUg
VVJMU2Vzc2lvbjp0YXNrOmRpZEZpbmlzaENvbGxlY3RpbmdNZXRyaWNzOl0pOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OnJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpkaWRTdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpkaWRSZXN0YXJ0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNo
RXZlbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2
ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5
Lm1tOgorICAgICAgICAoV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKFdlYklPU0V2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
VGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICh0b1N5c3RlbUNsb2NrVGltZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tOgorICAg
ICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZvIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwOgorICAgICAg
ICAoZGVjb2RlSFRUUEJvZHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5h
Z2VyX2NsZWFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTo6Z2V0RGF0YUZy
b21EZWNvZGVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
TGFzdFNlZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RT
ZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVy
Lm1tOgorICAgICAgICAoLVtXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIgY3JlYXRlTW91c2VFdmVu
dFdpdGhUeXBlOndhc0NhbmNlbGxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZUZvcm1EYXRh
RWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZURvd24pOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZVVwKToKKyAgICAgICAgKFdLQnVuZGxl
UGFnZVNpbXVsYXRlTW91c2VNb3Rpb24pOgorICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vj
b25kcyguLi4pYCB3aXRoIGBUKFNlY29uZHMoLi4uKSlgLgorICAgICAgICBEcml2ZS1ieTogVXNl
IGBXYWxsVGltZWAvYE1vbm90b25pY1RpbWVgL2V0Yy4gaW5zdGVhZCBvZiBhIHJhdyBgZG91Ymxl
YCB3aGVyZSBjb252ZW5pZW50LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAg
ICAgICBUaGVzZSBhcmUgbm90IG5lZWRlZCBzaW5jZSBgR2VuZXJpY1RpbWVNaXhpbmAgZGVmaW5l
cyBtZW1iZXIgYGVuY29kZWAvYGRlY29kZWAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRl
ZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmZkMDM1YTEwODIxMWQxNmM3N2UzNmJkNDA5ZGRkODU2Y2FiNTM5MC4uMzc4ZDlmY2Y5NTFiNDgz
ZmQ4M2RlZWNhN2VkNTdkZmFkNzY4ZTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZv
ciBgTW9ub3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhhdCBgTW9u
b3RvbmljVGltZWAvYFdhbGxUaW1lYC9ldGMuIHVzZSBzZWNvbmRzIGFzIHRoZSB1bmRlcmx5aW5n
CisgICAgICAgIHZhbHVlLCBzbyB3ZSBzaG91bGQganVzdCB1c2UgYFNlY29uZHNgIHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIGNvbnZlcnQgdG8vZnJvbSB0aGVzZQorICAgICAgICB3cmFwcGVyL1BPRC1l
c3F1ZSBvYmplY3RzIChlLmcuIHdlIHdvdWxkIGJlIGFibGUgdG8gZHJvcCBgZnJvbVJhd1NlY29u
ZHNgIGFuZCBpbnN0ZWFkIGhhdmUgYQorICAgICAgICBjb21waWxlLXRpbWUgZ3VhcmFudGVlIHRo
YXQgdGhlIGRldmVsb3BlciBrbm93cyB0aGF0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHJlcHJlc2Vu
dHMgc2Vjb25kcworICAgICAgICB3aGVuIGNyZWF0aW5nIGEgYE1vbm90b25pY1RpbWVgL2BXYWxs
VGltZWAvZXRjLikuCisKKyAgICAgICAgKiBET00vRE9NSW50ZXJuYWwuaDoKKyAgICAgICAgKGNv
cmUpOgorICAgICAgICBSZXBsYWNlIGBUOjpmcm9tUmF3U2Vjb25kcyguLi4pYCB3aXRoIGBUKFNl
Y29uZHMoLi4uKSlgLgorCiAyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gY29udHJv
bCB3aGljaCBwYXN0ZWJvYXJkIHRoZSBXZWJQcm9jZXNzIGlzIGdyYW50ZWQgYWNjZXNzIHRvIHdo
ZW4gcGFzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXBwcm94aW1hdGVUaW1lLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5jcHAKaW5kZXggZDE3OWVkNWNhMGQ3
NDFiYjMyYTRlMjQ5MzBmNzcyYzE4ZDQ1YmI5Mi4uMTkwMjYwYjE1NWE4ZDIzM2UyZDA2MmY0ODJi
N2U0ZDQzOTg2OGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXBwcm94aW1hdGVUaW1l
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuY3BwCkBAIC00NCw3ICs0
NCw5IEBAIE1vbm90b25pY1RpbWUgQXBwcm94aW1hdGVUaW1lOjphcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSBjb25zdAogCiB2b2lkIEFwcHJveGltYXRlVGltZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewotICAgIG91dC5wcmludCgiQXBwcm94aW1hdGUoIiwgbV92YWx1ZSwgIiBz
ZWMpIik7CisgICAgb3V0LnByaW50KCJBcHByb3hpbWF0ZSgiKTsKKyAgICBzZWNvbmRzU2luY2VF
cG9jaCgpLmR1bXAob3V0KTsKKyAgICBvdXQucHJpbnQoIikiKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BcHByb3hpbWF0ZVRpbWUuaCBiL1Nv
dXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCmluZGV4IGNiYTNlMGMwMGM4NmZhYTJjYzUy
ZTViZmViNjlkODEwMjMzOTRiYmUuLjYxN2UwMDBlYWZkNWY5MTdiMzJhMzA3ZjA3OTAyMGJmMDdl
NGQxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0FwcHJveGltYXRlVGltZS5oCkBAIC00Miw2ICs0MiwxMSBAQCBwdWJs
aWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkg
c2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBBcHByb3hpbWF0ZVRpbWUoKS4KICAgICBjb25zdGV4
cHIgQXBwcm94aW1hdGVUaW1lKCkgPSBkZWZhdWx0OwogCisgICAgZXhwbGljaXQgY29uc3RleHBy
IEFwcHJveGltYXRlVGltZShTZWNvbmRzIHNlY29uZHMpCisgICAgICAgIDogR2VuZXJpY1RpbWVN
aXhpbjxBcHByb3hpbWF0ZVRpbWU+KHNlY29uZHMpCisgICAgeworICAgIH0KKwogI2lmIE9TKERB
UldJTikKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEFwcHJveGltYXRlVGltZSBmcm9t
TWFjaEFwcHJveGltYXRlVGltZSh1aW50NjRfdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHVp
bnQ2NF90IHRvTWFjaEFwcHJveGltYXRlVGltZSgpIGNvbnN0OwpAQCAtNTYsMjAgKzYxLDEzIEBA
IHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikg
Y29uc3Q7CiAKICAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXByaXZhdGU6Ci0gICAgZnJp
ZW5kIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW48QXBwcm94aW1hdGVUaW1lPjsKLSAgICBjb25zdGV4
cHIgQXBwcm94aW1hdGVUaW1lKGRvdWJsZSByYXdWYWx1ZSkKLSAgICAgICAgOiBHZW5lcmljVGlt
ZU1peGluPEFwcHJveGltYXRlVGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07CiBzdGF0
aWNfYXNzZXJ0KHNpemVvZihBcHByb3hpbWF0ZVRpbWUpID09IHNpemVvZihkb3VibGUpKTsKIAog
c3RydWN0IEFwcHJveGltYXRlVGltZTo6TWFya2FibGVUcmFpdHMgewogICAgIHN0YXRpYyBib29s
IGlzRW1wdHlWYWx1ZShBcHByb3hpbWF0ZVRpbWUgdGltZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBzdGQ6OmlzbmFuKHRpbWUubV92YWx1ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRp
bWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBB
cHByb3hpbWF0ZVRpbWUgZW1wdHlWYWx1ZSgpCkBAIC04NCwxNyArODIsMTcgQEAgbmFtZXNwYWNl
IHN0ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6aXNuYW4odGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
OworICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAK
IGlubGluZSBib29sIGlzaW5mKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0gICAgcmV0
dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJl
dHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIGlubGluZSBi
b29sIGlzZmluaXRlKFdURjo6QXBwcm94aW1hdGVUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0
ZDo6aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVy
biBzdGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIHN0ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwIGIv
U291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4IGFhNjhjZGRjMTFjMzc2MDYzNjdh
NmE5Mzg1N2M5OGQ1OWJjNWE2NDAuLjQ5ZWI0NmUxNmY5M2Y1OWY4NDljZDgxYmFhYzcwYzNmMDBl
OGQ0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMg
aW5saW5lIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKIFdhbGxUaW1lIFdhbGxUaW1lOjpub3coKQog
ewotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhjdXJyZW50VGltZSgpKTsKKyAgICByZXR1cm4g
V2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50VGltZSgpKSk7CiB9CiAKICNpZiBPUyhEQVJXSU4pCkBA
IC0yNjgsNDcgKzI2OCw0NiBAQCBzdGF0aWMgbWFjaF90aW1lYmFzZV9pbmZvX2RhdGFfdCYgbWFj
aFRpbWViYXNlSW5mbygpCiBNb25vdG9uaWNUaW1lIE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJz
b2x1dGVUaW1lKHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byYgaW5mbyA9
IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoKG1hY2hBYnNv
bHV0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKTsKKyAgICByZXR1
cm4gTW9ub3RvbmljVGltZShTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogaW5mby5udW1lcikg
LyAoMS4wZTkgKiBpbmZvLmRlbm9tKSkpOwogfQogCiB1aW50NjRfdCBNb25vdG9uaWNUaW1lOjp0
b01hY2hBYnNvbHV0ZVRpbWUoKSBjb25zdAogewogICAgIGF1dG8mIGluZm8gPSBtYWNoVGltZWJh
c2VJbmZvKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PigobV92YWx1ZSAqIDEu
MGU5ICogaW5mby5kZW5vbSkgLyBpbmZvLm51bWVyKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KChzZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgKiAxLjBlOSAqIGluZm8uZGVu
b20pIC8gaW5mby5udW1lcik7CiB9CiAKIEFwcHJveGltYXRlVGltZSBBcHByb3hpbWF0ZVRpbWU6
OmZyb21NYWNoQXBwcm94aW1hdGVUaW1lKHVpbnQ2NF90IG1hY2hBcHByb3hpbWF0ZVRpbWUpCiB7
CiAgICAgYXV0byYgaW5mbyA9IG1hY2hUaW1lYmFzZUluZm8oKTsKLSAgICByZXR1cm4gZnJvbVJh
d1NlY29uZHMoKG1hY2hBcHByb3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGlu
Zm8uZGVub20pKTsKKyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHMoKG1hY2hBcHBy
b3hpbWF0ZVRpbWUgKiBpbmZvLm51bWVyKSAvICgxLjBlOSAqIGluZm8uZGVub20pKSk7CiB9CiAK
IHVpbnQ2NF90IEFwcHJveGltYXRlVGltZTo6dG9NYWNoQXBwcm94aW1hdGVUaW1lKCkgY29uc3QK
IHsKICAgICBhdXRvJiBpbmZvID0gbWFjaFRpbWViYXNlSW5mbygpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oKG1fdmFsdWUgKiAxLjBlOSAqIGluZm8uZGVub20pIC8gaW5mby5u
dW1lcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pigoc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpICogMS4wZTkgKiBpbmZvLmRlbm9tKSAvIGluZm8ubnVtZXIpOwogfQogI2Vu
ZGlmCiAKIE1vbm90b25pY1RpbWUgTW9ub3RvbmljVGltZTo6bm93KCkKIHsKICNpZiBVU0UoR0xJ
QikKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihnX2dldF9t
b25vdG9uaWNfdGltZSgpIC8gMTAwMDAwMC4wKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUo
U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdfZ2V0X21vbm90b25pY190aW1lKCkgLyAxMDAw
MDAwLjApKSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgcmV0dXJuIGZyb21NYWNoQWJzb2x1dGVU
aW1lKG1hY2hfYWJzb2x1dGVfdGltZSgpKTsKICNlbGlmIE9TKEZVQ0hTSUEpCi0gICAgcmV0dXJu
IGZyb21SYXdTZWNvbmRzKHp4X2Nsb2NrX2dldF9tb25vdG9uaWMoKSAvIHN0YXRpY19jYXN0PGRv
dWJsZT4oWlhfU0VDKDEpKSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kcyh6eF9j
bG9ja19nZXRfbW9ub3RvbmljKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KFpYX1NFQygxKSkpKTsK
ICNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRC
U0QpCiAgICAgc3RydWN0IHRpbWVzcGVjIHRzIHsgfTsKICAgICBjbG9ja19nZXR0aW1lKENMT0NL
X01PTk9UT05JQywgJnRzKTsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8
ZG91YmxlPih0cy50dl9zZWMpICsgdHMudHZfbnNlYyAvIDEuMGU5KTsKKyAgICByZXR1cm4gTW9u
b3RvbmljVGltZShTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4odHMudHZfc2VjKSArIHRzLnR2
X25zZWMgLyAxLjBlOSkpOwogI2Vsc2UKICAgICBzdGF0aWMgZG91YmxlIGxhc3RUaW1lID0gMDsK
ICAgICBkb3VibGUgY3VycmVudFRpbWVOb3cgPSBjdXJyZW50VGltZSgpOwotICAgIGlmIChjdXJy
ZW50VGltZU5vdyA8IGxhc3RUaW1lKQotICAgICAgICByZXR1cm4gbGFzdFRpbWU7Ci0gICAgbGFz
dFRpbWUgPSBjdXJyZW50VGltZU5vdzsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVu
dFRpbWVOb3cpOworICAgIGlmIChjdXJyZW50VGltZU5vdyA+PSBsYXN0VGltZSkKKyAgICAgICAg
bGFzdFRpbWUgPSBjdXJyZW50VGltZU5vdzsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNv
bmRzKGxhc3RUaW1lKSk7CiAjZW5kaWYKIH0KIApAQCAtMzE5LDEzICszMTgsMTMgQEAgQXBwcm94
aW1hdGVUaW1lIEFwcHJveGltYXRlVGltZTo6bm93KCkKICNlbGlmIE9TKExJTlVYKQogICAgIHN0
cnVjdCB0aW1lc3BlYyB0cyB7IH07CiAgICAgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUNf
Q09BUlNFLCAmdHMpOwotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3Vi
bGU+KHRzLnR2X3NlYykgKyB0cy50dl9uc2VjIC8gMS4wZTkpOworICAgIHJldHVybiBBcHByb3hp
bWF0ZVRpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0cy50dl9u
c2VjIC8gMS4wZTkpKTsKICNlbGlmIE9TKEZSRUVCU0QpCiAgICAgc3RydWN0IHRpbWVzcGVjIHRz
IHsgfTsKICAgICBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQ19GQVNULCAmdHMpOwotICAg
IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0
cy50dl9uc2VjIC8gMS4wZTkpOworICAgIHJldHVybiBBcHByb3hpbWF0ZVRpbWUoU2Vjb25kcyhz
dGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X3NlYykgKyB0cy50dl9uc2VjIC8gMS4wZTkpKTsKICNl
bHNlCi0gICAgcmV0dXJuIEFwcHJveGltYXRlVGltZTo6ZnJvbVJhd1NlY29uZHMoTW9ub3Rvbmlj
VGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gQXBw
cm94aW1hdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwIGIv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggZjY5MDQ5MjhlZjU1YjBhYjgxZTYw
MDUwYjM5M2FkYzRjNzk5MTY0NC4uOTQ0OWVhYzczNzdjNDdhYjY4NzM2MjJiNjkxY2U3YmFlNzQ5
MmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZl90PCFoYXNfdG9fdGltZV90PHR5cGVuYW1lIEZpbGVUaW1lVHlwZTo6Y2xv
Y2s+Ojp2YWx1ZSwgcwogc3RhdGljIFdhbGxUaW1lIHRvV2FsbFRpbWUoc3RkOjpmaWxlc3lzdGVt
OjpmaWxlX3RpbWVfdHlwZSBmaWxlVGltZSkKIHsKICAgICAvLyBGSVhNRTogVXNlIHN0ZDo6Y2hy
b25vOjpmaWxlX2Nsb2NrOjp0b19zeXMoKSBvbmNlIHdlIGNhbiB1c2UgQysrMjAuCi0gICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0b1RpbWVUKGZpbGVUaW1lKSk7CisgICAgcmV0
dXJuIFdhbGxUaW1lKFNlY29uZHModG9UaW1lVChmaWxlVGltZSkpKTsKIH0KIAogI2VuZGlmIC8v
IEhBVkUoU1REX0ZJTEVTWVNURU0pIHx8IEhBVkUoU1REX0VYUEVSSU1FTlRBTF9GSUxFU1lTVEVN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oIGIvU291cmNl
L1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oCmluZGV4IGFiYmVlMGFlZWRmYzM4Y2I3NDQ0Y2Ex
MjA0YTYzNjAyYjZhNDg2ODAuLjBlYThlOWEwODIyZTI3Y2Y3ZDgwZGRiYjcwMzU5NWYzMWJjOTRj
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0dlbmVyaWNUaW1lTWl4aW4uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9HZW5lcmljVGltZU1peGluLmgKQEAgLTMzLDQwICszMywzMyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZXJpdmVkVGltZT4KIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENhbGwgdGhpcyBpZiB5
b3Uga25vdyBmb3Igc3VyZSB0aGF0IHRoZSBkb3VibGUgcmVwcmVzZW50cyB0aGUgdGltZSBhY2Nv
cmRpbmcgdG8gdGhlCi0gICAgLy8gc2FtZSB0aW1lIHNvdXJjZSBhcyBEZXJpdmVkVGltZS4gSXQg
bXVzdCBiZSBpbiBzZWNvbmRzLgotICAgIHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgZnJv
bVJhd1NlY29uZHMoZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIERlcml2ZWRU
aW1lKHZhbHVlKTsKLSAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBpbmZp
bml0eSgpIHsgcmV0dXJuIERlcml2ZWRUaW1lKFNlY29uZHM6OmluZmluaXR5KCkpOyB9CisgICAg
c3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBuYW4oKSB7IHJldHVybiBEZXJpdmVkVGltZShT
ZWNvbmRzOjpuYW4oKSk7IH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgRGVyaXZlZFRpbWUgaW5m
aW5pdHkoKSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OmluZmluaXR5KCkpOyB9Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBEZXJpdmVkVGltZSBuYW4o
KSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpKTsgfQorICAgIGNvbnN0ZXhwciBTZWNvbmRzIHNlY29uZHNTaW5jZUVwb2NoKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWNvbmRzOyB9CiAKLSAgICBjb25zdGV4cHIgU2Vjb25kcyBzZWNv
bmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIFNlY29uZHMobV92YWx1ZSk7IH0KLQotICAg
IGV4cGxpY2l0IGNvbnN0ZXhwciBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3Zh
bHVlOyB9CisgICAgZXhwbGljaXQgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhIW1fc2Vjb25kczsgfQogCiAgICAgY29uc3RleHByIERlcml2ZWRUaW1lIG9wZXJhdG9y
KyhTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNv
bmRzKG1fdmFsdWUgKyBvdGhlci52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIERlcml2ZWRUaW1l
KG1fc2Vjb25kcyArIG90aGVyKTsKICAgICB9CiAKICAgICBjb25zdGV4cHIgRGVyaXZlZFRpbWUg
b3BlcmF0b3ItKFNlY29uZHMgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gZnJv
bVJhd1NlY29uZHMobV92YWx1ZSAtIG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gRGVy
aXZlZFRpbWUobV9zZWNvbmRzIC0gb3RoZXIpOwogICAgIH0KIAogICAgIFNlY29uZHMgb3BlcmF0
b3IlKFNlY29uZHMgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gU2Vjb25kcyB7
IGZtb2QobV92YWx1ZSwgb3RoZXIudmFsdWUoKSkgfTsKKyAgICAgICAgcmV0dXJuIFNlY29uZHMo
Zm1vZChtX3NlY29uZHMudmFsdWUoKSwgb3RoZXIuc2Vjb25kcygpKSk7CiAgICAgfQogCiAgICAg
Ly8gVGltZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBhcyB0aGlzIGNv
dWxkIGFyaXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zLiBTbywgd2Ug
YWxsb3cgaXQuCiAgICAgY29uc3RleHByIERlcml2ZWRUaW1lIG9wZXJhdG9yLSgpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoLW1fdmFsdWUpOworICAgICAgICBy
ZXR1cm4gRGVyaXZlZFRpbWUoLW1fc2Vjb25kcyk7CiAgICAgfQogCiAgICAgRGVyaXZlZFRpbWUg
b3BlcmF0b3IrPShTZWNvbmRzIG90aGVyKQpAQCAtODEsMzcgKzc0LDM3IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0ZXhwciBTZWNvbmRzIG9wZXJhdG9yLShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci5tX3ZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyAtIG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAg
ICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KERlcml2ZWRUaW1lIG90aGVyKSBjb25zdAogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0
dXJuIG1fc2Vjb25kcyA9PSBvdGhlci5tX3NlY29uZHM7CiAgICAgfQogCiAgICAgY29uc3RleHBy
IGJvb2wgb3BlcmF0b3IhPShEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3ZhbHVlICE9IG90aGVyLm1fdmFsdWU7CisgICAgICAgIHJldHVybiBtX3NlY29u
ZHMgIT0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBib29sIG9wZXJh
dG9yPChEZXJpdmVkVGltZSBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlIDwgb3RoZXIubV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fc2Vjb25kcyA8IG90aGVyLm1f
c2Vjb25kczsKICAgICB9CiAKICAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj4oRGVyaXZlZFRp
bWUgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZSA+IG90aGVyLm1f
dmFsdWU7CisgICAgICAgIHJldHVybiBtX3NlY29uZHMgPiBvdGhlci5tX3NlY29uZHM7CiAgICAg
fQogCiAgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I8PShEZXJpdmVkVGltZSBvdGhlcikgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlIDw9IG90aGVyLm1fdmFsdWU7CisgICAg
ICAgIHJldHVybiBtX3NlY29uZHMgPD0gb3RoZXIubV9zZWNvbmRzOwogICAgIH0KIAogICAgIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPj0oRGVyaXZlZFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gbV92YWx1ZSA+PSBvdGhlci5tX3ZhbHVlOworICAgICAgICByZXR1cm4g
bV9zZWNvbmRzID49IG90aGVyLm1fc2Vjb25kczsKICAgICB9CiAKICAgICBEZXJpdmVkVGltZSBp
c29sYXRlZENvcHkoKSBjb25zdApAQCAtMTIyLDI3ICsxMTUsMjcgQEAgcHVibGljOgogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgbV92YWx1ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBtX3NlY29uZHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxEZXJpdmVkVGltZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdGltZTsKLSAgICAgICAg
ZGVjb2RlciA+PiB0aW1lOwotICAgICAgICBpZiAoIXRpbWUpCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gc2Vjb25kczsKKyAgICAgICAgZGVjb2RlciA+PiBzZWNvbmRzOworICAgICAg
ICBpZiAoIXNlY29uZHMpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAg
ICByZXR1cm4gRGVyaXZlZFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKKyAgICAgICAgcmV0
dXJuIERlcml2ZWRUaW1lKCpzZWNvbmRzKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRGVyaXZlZFRpbWUmIHRpbWUpCiAgICAgewotICAgICAgICBkb3VibGUgdmFs
dWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICBTZWNvbmRz
IHNlY29uZHM7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vjb25kcykpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdGltZSA9IERlcml2ZWRUaW1lOjpmcm9tUmF3
U2Vjb25kcyh2YWx1ZSk7CisgICAgICAgIHRpbWUgPSBEZXJpdmVkVGltZShzZWNvbmRzKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNTAsMTIgKzE0MywxMyBAQCBwcm90ZWN0
ZWQ6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkg
c2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBEZXJpdmVkVGltZSgpLgogICAgIGNvbnN0ZXhwciBH
ZW5lcmljVGltZU1peGluKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3RleHByIEdlbmVyaWNUaW1l
TWl4aW4oZG91YmxlIHJhd1ZhbHVlKQotICAgICAgICA6IG1fdmFsdWUocmF3VmFsdWUpCisgICAg
ZXhwbGljaXQgY29uc3RleHByIEdlbmVyaWNUaW1lTWl4aW4oU2Vjb25kcyBzZWNvbmRzKQorICAg
ICAgICA6IG1fc2Vjb25kcyhzZWNvbmRzKQogICAgIHsKICAgICB9CiAKLSAgICBkb3VibGUgbV92
YWx1ZSB7IDAgfTsKK3ByaXZhdGU6CisgICAgU2Vjb25kcyBtX3NlY29uZHM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUu
Y3BwIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5jcHAKaW5kZXggNDdjNTA0NmNhYjIz
MmI2YzkyZWFjMjUxYTM0MmE5ZjJhOTRjZDRjZC4uNTE2YWQyNGI4YzFmNTEzZDJiOTVmMzQyMTQx
OWExYmM5YTY3YTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5jcHAKQEAgLTM4LDcgKzM4LDkg
QEAgV2FsbFRpbWUgTW9ub3RvbmljVGltZTo6YXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0CiAK
IHZvaWQgTW9ub3RvbmljVGltZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAg
IG91dC5wcmludCgiTW9ub3RvbmljKCIsIG1fdmFsdWUsICIgc2VjKSIpOworICAgIG91dC5wcmlu
dCgiTW9ub3RvbmljKCIpOworICAgIHNlY29uZHNTaW5jZUVwb2NoKCkuZHVtcChvdXQpOworICAg
IG91dC5wcmludCgiKSIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1Rp
bWUuaAppbmRleCBmZTJhN2FhZTkxYzBlNThiZGFkZWM2MjI2NjQ1Y2ZhYWUyODZlZWNmLi5hN2Y1
NThiZmFhZTI5MmI0MzAyNDAyZjg4ZjRkM2VmNTc2MjQ3ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGlt
ZS5oCkBAIC00NCw2ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2gu
IFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBNb25v
dG9uaWNUaW1lKCkuCiAgICAgY29uc3RleHByIE1vbm90b25pY1RpbWUoKSA9IGRlZmF1bHQ7CiAK
KyAgICBleHBsaWNpdCBjb25zdGV4cHIgTW9ub3RvbmljVGltZShTZWNvbmRzIHNlY29uZHMpCisg
ICAgICAgIDogR2VuZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPihzZWNvbmRzKQorICAgIHsK
KyAgICB9CisKICNpZiBPUyhEQVJXSU4pCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBN
b25vdG9uaWNUaW1lIGZyb21NYWNoQWJzb2x1dGVUaW1lKHVpbnQ2NF90KTsKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdWludDY0X3QgdG9NYWNoQWJzb2x1dGVUaW1lKCkgY29uc3Q7CkBAIC01Nywy
MCArNjIsMTMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKIAogICAgIHN0cnVjdCBNYXJrYWJsZVRyYWl0czsKLQotcHJpdmF0
ZToKLSAgICBmcmllbmQgY2xhc3MgR2VuZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPjsKLSAg
ICBjb25zdGV4cHIgTW9ub3RvbmljVGltZShkb3VibGUgcmF3VmFsdWUpCi0gICAgICAgIDogR2Vu
ZXJpY1RpbWVNaXhpbjxNb25vdG9uaWNUaW1lPihyYXdWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKE1vbm90b25pY1RpbWUpID09IHNpemVvZihkb3VibGUpKTsK
IAogc3RydWN0IE1vbm90b25pY1RpbWU6Ok1hcmthYmxlVHJhaXRzIHsKICAgICBzdGF0aWMgYm9v
bCBpc0VtcHR5VmFsdWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHN0ZDo6aXNuYW4odGltZS5tX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4odGlt
ZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3RleHByIE1v
bm90b25pY1RpbWUgZW1wdHlWYWx1ZSgpCkBAIC04NSwxNyArODMsMTcgQEAgbmFtZXNwYWNlIHN0
ZCB7CiAKIGlubGluZSBib29sIGlzbmFuKFdURjo6TW9ub3RvbmljVGltZSB0aW1lKQogewotICAg
IHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAg
ICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxp
bmUgYm9vbCBpc2luZihXVEY6Ok1vbm90b25pY1RpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gc3Rk
Ojppc2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIHN0
ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogaW5saW5lIGJvb2wgaXNm
aW5pdGUoV1RGOjpNb25vdG9uaWNUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6aXNmaW5p
dGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBzdGQ6Omlz
ZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIHN0
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2Vjb25kcy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9TZWNvbmRzLmNwcAppbmRleCBmOWYyZjFiYzRkODAzMTUyNzhlZjdjNzAyM2VlYjIwYTA4Y2Q5
ZDgxLi43NDNmZTU4ZmQ0MWFjYmY0ZDUwYjA1OTlmOGNmZmJmZWI2MGE4MjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRz
LmNwcApAQCAtNTksMjIgKzU5LDIyIEBAIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBTZWNvbmRz
OjpvcGVyYXRvcisoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlCiAKIFdhbGxU
aW1lIFNlY29uZHM6Om9wZXJhdG9yLShXYWxsVGltZSBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKCkgLSBvdGhlci5zZWNvbmRzU2luY2VF
cG9jaCgpLnZhbHVlKCkpOworICAgIHJldHVybiBXYWxsVGltZSgqdGhpcyAtIG90aGVyLnNlY29u
ZHNTaW5jZUVwb2NoKCkpOwogfQogCiBNb25vdG9uaWNUaW1lIFNlY29uZHM6Om9wZXJhdG9yLShN
b25vdG9uaWNUaW1lIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
KTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZSgqdGhpcyAtIG90aGVyLnNlY29uZHNTaW5jZUVw
b2NoKCkpOwogfQogCiBBcHByb3hpbWF0ZVRpbWUgU2Vjb25kczo6b3BlcmF0b3ItKEFwcHJveGlt
YXRlVGltZSBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lOjpmcm9t
UmF3U2Vjb25kcyh2YWx1ZSgpIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsK
KyAgICByZXR1cm4gQXBwcm94aW1hdGVUaW1lKCp0aGlzIC0gb3RoZXIuc2Vjb25kc1NpbmNlRXBv
Y2goKSk7CiB9CiAKIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBTZWNvbmRzOjpvcGVyYXRvci0o
Y29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1
cm4gb3RoZXIud2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHModmFsdWUoKSAtIG90aGVyLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0dXJuIG90aGVyLndpdGhTZWNvbmRzRm9y
U2FtZUNsb2NrVHlwZSgqdGhpcyAtIG90aGVyLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB2
b2lkIFNlY29uZHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwCmluZGV4IGUyODVhM2ExNGIyODJjMTBkY2U3
N2M2N2QwMzZkMWMwZGQ0MDk3YWUuLjlmMWI2MzUyZDk1YmJkOTEzZjI5OTNjMDRmNGU1NjBiNjY1
MGJkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcApA
QCAtNTUsMTkgKzU1LDE5IEBAIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6Om5vd1dpdGhTYW1lQ2xvY2soKSBjb25zdAogV2FsbFRpbWUgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjp3YWxsVGltZSgpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bV90eXBlID09IENsb2NrVHlwZTo6V2FsbCk7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhtX3ZhbHVlKTsKKyAgICByZXR1cm4gV2FsbFRpbWUobV9zZWNvbmRzKTsKIH0KIAog
TW9ub3RvbmljVGltZSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om1vbm90b25pY1RpbWUoKSBj
b25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZSA9PSBDbG9ja1R5cGU6Ok1vbm90b25p
Yyk7Ci0gICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKG1fdmFsdWUpOwor
ICAgIHJldHVybiBNb25vdG9uaWNUaW1lKG1fc2Vjb25kcyk7CiB9CiAKIEFwcHJveGltYXRlVGlt
ZSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6OmFwcHJveGltYXRlVGltZSgpIGNvbnN0CiB7CiAg
ICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IENsb2NrVHlwZTo6QXBwcm94aW1hdGUpOwotICAg
IHJldHVybiBBcHByb3hpbWF0ZVRpbWU6OmZyb21SYXdTZWNvbmRzKG1fdmFsdWUpOworICAgIHJl
dHVybiBBcHByb3hpbWF0ZVRpbWUobV9zZWNvbmRzKTsKIH0KIAogV2FsbFRpbWUgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlOjphcHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3QKQEAgLTEwMSwzNiAr
MTAxLDM5IEBAIE1vbm90b25pY1RpbWUgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjphcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSBjb25zdAogU2Vjb25kcyBUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGU6Om9wZXJhdG9yLShjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25z
dAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJl
dHVybiBTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci5tX3ZhbHVlKTsKKyAgICByZXR1cm4gbV9zZWNv
bmRzIC0gb3RoZXIubV9zZWNvbmRzOwogfQogCiBib29sIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZTo6b3BlcmF0b3I8KGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgb3RoZXIpIGNvbnN0
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlID09IG90aGVyLm1fdHlwZSk7Ci0gICAgcmV0
dXJuIG1fdmFsdWUgPCBvdGhlci5tX3ZhbHVlOworICAgIHJldHVybiBtX3NlY29uZHMgPCBvdGhl
ci5tX3NlY29uZHM7CiB9CiAKIGJvb2wgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpvcGVyYXRv
cj4oY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4gbV92YWx1
ZSA+IG90aGVyLm1fdmFsdWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA+IG90aGVyLm1fc2Vjb25k
czsKIH0KIAogYm9vbCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGU6Om9wZXJhdG9yPD0oY29uc3Qg
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChtX3R5cGUgPT0gb3RoZXIubV90eXBlKTsKLSAgICByZXR1cm4gbV92YWx1ZSA8PSBvdGhl
ci5tX3ZhbHVlOworICAgIHJldHVybiBtX3NlY29uZHMgPD0gb3RoZXIubV9zZWNvbmRzOwogfQog
CiBib29sIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6b3BlcmF0b3I+PShjb25zdCBUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGUmIG90aGVyKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKG1f
dHlwZSA9PSBvdGhlci5tX3R5cGUpOwotICAgIHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFs
dWU7CisgICAgcmV0dXJuIG1fc2Vjb25kcyA+PSBvdGhlci5tX3NlY29uZHM7CiB9CiAKIHZvaWQg
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7
Ci0gICAgb3V0LnByaW50KG1fdHlwZSwgIigiLCBtX3ZhbHVlLCAiIHNlYykiKTsKKyAgICBvdXQu
cHJpbnQobV90eXBlKTsKKyAgICBvdXQucHJpbnQoIigiKTsKKyAgICBtX3NlY29uZHMuZHVtcChv
dXQpOworICAgIG91dC5wcmludCgiKSIpOwogfQogCiB2b2lkIHNsZWVwKGNvbnN0IFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSYgdGltZSkKQEAgLTE0NCw3ICsxNDcsNyBAQCB2b2lkIHNsZWVwKGNv
bnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZSkKIGJvb2wgaGFzRWxhcHNlZChjb25z
dCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWUpCiB7CiAgICAgLy8gQXZvaWQgZG9pbmcg
bm93KCkuCi0gICAgaWYgKCEodGltZSA+IHRpbWUud2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMo
MCkpKQorICAgIGlmICghKHRpbWUgPiB0aW1lLndpdGhTZWNvbmRzRm9yU2FtZUNsb2NrVHlwZSgw
X3MpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHN0ZDo6aXNpbmYodGltZS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaCBiL1NvdXJjZS9X
VEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oCmluZGV4IDRjM2U0MWU3OWJhZGI2OGRi
Mjc4YmVkNjFjZWQxMTU2ZTgwODIxYzkuLmMzNmRiN2NkMGEyMDJjN2JjNDk2ODZlMGRlYTc2ZWZh
MjU5M2Q1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oCkBA
IC0zOCw0MyArMzgsMzggQEAgY2xhc3MgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGZpbmFsIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUoKSB7IH0KKworICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShTZWNvbmRz
IHNlY29uZHMsIENsb2NrVHlwZSB0eXBlKQorICAgICAgICA6IG1fc2Vjb25kcyhzZWNvbmRzKQor
ICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgIHsKKyAgICB9CiAgICAgCiAgICAgVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lIHRpbWUpCi0gICAgICAgIDogbV92YWx1ZSh0aW1lLnNl
Y29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkKLSAgICAgICAgLCBtX3R5cGUoQ2xvY2tUeXBlOjpX
YWxsKQorICAgICAgICA6IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSh0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCksIENsb2NrVHlwZTo6V2FsbCkKICAgICB7CiAgICAgfQogICAgIAogICAgIFRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZShNb25vdG9uaWNUaW1lIHRpbWUpCi0gICAgICAgIDogbV92YWx1
ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkKLSAgICAgICAgLCBtX3R5cGUoQ2xv
Y2tUeXBlOjpNb25vdG9uaWMpCisgICAgICAgIDogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKHRp
bWUuc2Vjb25kc1NpbmNlRXBvY2goKSwgQ2xvY2tUeXBlOjpNb25vdG9uaWMpCiAgICAgewogICAg
IH0KIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShBcHByb3hpbWF0ZVRpbWUgdGltZSkK
LSAgICAgICAgOiBtX3ZhbHVlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKQotICAg
ICAgICAsIG1fdHlwZShDbG9ja1R5cGU6OkFwcHJveGltYXRlKQorICAgICAgICA6IFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCksIENsb2NrVHlwZTo6QXBw
cm94aW1hdGUpCiAgICAgewogICAgIH0KLQotICAgIHN0YXRpYyBUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUgZnJvbVJhd1NlY29uZHMoZG91YmxlIHZhbHVlLCBDbG9ja1R5cGUgdHlwZSkKLSAgICB7
Ci0gICAgICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSByZXN1bHQ7Ci0gICAgICAgIHJlc3Vs
dC5tX3ZhbHVlID0gdmFsdWU7Ci0gICAgICAgIHJlc3VsdC5tX3R5cGUgPSB0eXBlOwotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgIH0KICAgICAKLSAgICBTZWNvbmRzIHNlY29uZHNTaW5jZUVw
b2NoKCkgY29uc3QgeyByZXR1cm4gU2Vjb25kcyhtX3ZhbHVlKTsgfQorICAgIFNlY29uZHMgc2Vj
b25kc1NpbmNlRXBvY2goKSBjb25zdCB7IHJldHVybiBtX3NlY29uZHM7IH0KICAgICBDbG9ja1R5
cGUgY2xvY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgbm93KENsb2NrVHlw
ZSk7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZSBub3dXaXRoU2FtZUNsb2NrKCkgY29uc3Q7CiAgICAgCi0gICAgVGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlIHdpdGhTYW1lQ2xvY2tBbmRSYXdTZWNvbmRzKGRvdWJsZSB2YWx1ZSkgY29uc3QKKyAg
ICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgd2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tUeXBlKFNl
Y29uZHMgc2Vjb25kcykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGU6OmZyb21SYXdTZWNvbmRzKHZhbHVlLCBjbG9ja1R5cGUoKSk7CisgICAgICAg
IHJldHVybiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoc2Vjb25kcywgY2xvY2tUeXBlKCkpOwog
ICAgIH0KICAgICAKICAgICAvLyBBc3NlcnRzIHRoYXQgdGhlIHRpbWUgaXMgb2YgdGhlIHR5cGUg
eW91IHdhbnQuCkBAIC04NSwyMyArODAsMjMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBXYWxsVGltZSBhcHByb3hpbWF0ZVdhbGxUaW1lKCkgY29uc3Q7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIE1vbm90b25pY1RpbWUgYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3Q7
CiAgICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV92
YWx1ZTsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1f
c2Vjb25kczsgfQogICAgIAogICAgIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBvcGVyYXRvciso
U2Vjb25kcyBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB3aXRoU2FtZUNsb2Nr
QW5kUmF3U2Vjb25kcyhtX3ZhbHVlICsgb3RoZXIudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB3
aXRoU2Vjb25kc0ZvclNhbWVDbG9ja1R5cGUobV9zZWNvbmRzICsgb3RoZXIpOwogICAgIH0KICAg
ICAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3ItKFNlY29uZHMgb3RoZXIp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMo
bV92YWx1ZSAtIG90aGVyLnZhbHVlKCkpOworICAgICAgICByZXR1cm4gd2l0aFNlY29uZHNGb3JT
YW1lQ2xvY2tUeXBlKG1fc2Vjb25kcyAtIG90aGVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gVGlt
ZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBhcyB0aGlzIGNvdWxkIGFy
aXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zLiBTbywgd2UgYWxsb3cg
aXQuCiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIG9wZXJhdG9yLSgpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gd2l0aFNhbWVDbG9ja0FuZFJhd1NlY29uZHMoLW1fdmFsdWUpOwor
ICAgICAgICByZXR1cm4gd2l0aFNlY29uZHNGb3JTYW1lQ2xvY2tUeXBlKC1tX3NlY29uZHMpOwog
ICAgIH0KICAgICAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3IrPShTZWNv
bmRzIG90aGVyKQpAQCAtMTE4LDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBvdGhlcikgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWUKKyAgICAgICAgcmV0
dXJuIG1fc2Vjb25kcyA9PSBvdGhlci5tX3NlY29uZHMKICAgICAgICAgICAgICYmIG1fdHlwZSA9
PSBvdGhlci5tX3R5cGU7CiAgICAgfQogICAgIApAQCAtMTM2LDcgKzEzMSw3IEBAIHB1YmxpYzoK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAg
ICAgCiBwcml2YXRlOgotICAgIGRvdWJsZSBtX3ZhbHVlIHsgMCB9OworICAgIFNlY29uZHMgbV9z
ZWNvbmRzOwogICAgIENsb2NrVHlwZSBtX3R5cGUgeyBDbG9ja1R5cGU6OldhbGwgfTsKIH07CiAK
QEAgLTE1MCwxNyArMTQ1LDE3IEBAIG5hbWVzcGFjZSBzdGQgewogCiBpbmxpbmUgYm9vbCBpc25h
bihXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6
OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3Rk
Ojppc25hbih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2lu
ZihXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6
OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3Rk
Ojppc2luZih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2Zp
bml0ZShXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSB0aW1lKQogewotICAgIHJldHVybiBz
dGQ6OmlzZmluaXRlKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1
cm4gc3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBzdGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcAppbmRleCBkMzE1Zjk1NGMzNDFlYzk1YTFlMTk0MWEx
ZWYzODA2M2RlOWEzMTEyLi40NDM2NmRkNmUwMDVjMTY4ZjM2OGU1MGJiNzI2YzYwZTk3NmI5ZDJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvV2FsbFRpbWUuY3BwCkBAIC0zOCw3ICszOCw5IEBAIE1vbm90b25pY1RpbWUgV2FsbFRp
bWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0CiAKIHZvaWQgV2FsbFRpbWU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoIldhbGwoIiwgbV92
YWx1ZSwgIiBzZWMpIik7CisgICAgb3V0LnByaW50KCJXYWxsKCIpOworICAgIHNlY29uZHNTaW5j
ZUVwb2NoKCkuZHVtcChvdXQpOworICAgIG91dC5wcmludCgiKSIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9XYWxsVGltZS5oCmluZGV4IDRkNGFmOWRiOWIwMTBlNDgxMWE5OWIxNzE1ZjMxNTVh
OThlOWJhYzMuLmE5YmI2NDk0YmI2YzY5YzQ4ZDUzZDc1MTg3ZjNmZmZmYWU4MjE4YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Fs
bFRpbWUuaApAQCAtNDUsNiArNDUsMTEgQEAgcHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhlIGVw
b2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9jaCgpIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB4IC0g
V2FsbFRpbWUoKS4KICAgICBjb25zdGV4cHIgV2FsbFRpbWUoKSA9IGRlZmF1bHQ7CiAKKyAgICBl
eHBsaWNpdCBjb25zdGV4cHIgV2FsbFRpbWUoU2Vjb25kcyBzZWNvbmRzKQorICAgICAgICA6IEdl
bmVyaWNUaW1lTWl4aW48V2FsbFRpbWU+KHNlY29uZHMpCisgICAgeworICAgIH0KKwogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2FsbFRpbWUgbm93KCk7CiAgICAgCiAgICAgV2FsbFRp
bWUgYXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9CkBAIC01Mywy
MCArNTgsMTMgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKICAgICAKICAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHM7Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEdlbmVyaWNUaW1lTWl4aW48V2FsbFRpbWU+OwotICAg
IGNvbnN0ZXhwciBXYWxsVGltZShkb3VibGUgcmF3VmFsdWUpCi0gICAgICAgIDogR2VuZXJpY1Rp
bWVNaXhpbjxXYWxsVGltZT4ocmF3VmFsdWUpCi0gICAgewotICAgIH0KIH07CiBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihXYWxsVGltZSkgPT0gc2l6ZW9mKGRvdWJsZSkpOwogCiBzdHJ1Y3QgV2FsbFRp
bWU6Ok1hcmthYmxlVHJhaXRzIHsKICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoV2FsbFRp
bWUgdGltZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUubV92YWx1ZSk7
CisgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBXYWxsVGltZSBlbXB0eVZhbHVlKCkKQEAgLTgz
LDE3ICs4MSwxNyBAQCBuYW1lc3BhY2Ugc3RkIHsKIAogaW5saW5lIGJvb2wgaXNuYW4oV1RGOjpX
YWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBzdGQ6OmlzbmFuKHRpbWUuc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpKTsKKyAgICByZXR1cm4gc3RkOjppc25hbih0aW1lLnNlY29uZHNTaW5j
ZUVwb2NoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBpc2luZihXVEY6OldhbGxUaW1lIHRpbWUpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6aXNpbmYodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
OworICAgIHJldHVybiBzdGQ6OmlzaW5mKHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKSk7CiB9CiAK
IGlubGluZSBib29sIGlzZmluaXRlKFdURjo6V2FsbFRpbWUgdGltZSkKIHsKLSAgICByZXR1cm4g
c3RkOjppc2Zpbml0ZSh0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgcmV0
dXJuIHN0ZDo6aXNmaW5pdGUodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2Ugc3RkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJz
aXN0ZW50Q29kZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29k
ZXJzLmgKaW5kZXggMjYwOGU3MWViMzg3ZmU2YzY4ZjBkNGVjNjkxOTA0NTVlZDExODBhMi4uNTIx
YzE0MDM0ZDAwMTk5MjEyNDI4ZTNhZTVkY2FhOGNkYzliOWQ1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaApAQCAtMzEsOSArMzEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvU0hBMS5oPgotI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0
ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJz
aXN0ZW50RW5jb2Rlci5oPgogCkBAIC0yNTUsMzkgKzI1Myw2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3Qg
Q29kZXI8CiAgICAgfQogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29kZXI8U2Vjb25kcz4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZWNvbmRzJiBz
ZWNvbmRzKQotICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7Ci0gICAg
fQotCi0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsdWU7Ci0gICAg
ICAgIGRlY29kZXIgPj4gdmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gU2Vjb25kcygqdmFsdWUpOwotICAg
IH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvZGVyPFdhbGxUaW1lPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQotICAg
IHsKLSAgICAgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsdWU7
Ci0gICAgICAgIGRlY29kZXIgPj4gdmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoKnZhbHVlKTsKLSAgICB9Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2Rl
cjxBdG9tU3RyaW5nPiB7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vRmlsZVN5c3RlbVBsYXlTdGF0aW9uLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0ZpbGVTeXN0ZW1QbGF5U3RhdGlvbi5jcHAK
aW5kZXggYjg4MGViNzdkYjBiOWU1MTczZmQ1MTNlOTcwMGEwMTRiYjc2NGVlMS4uZDdhNmY0NmY3
N2MxMDI0Njg5YWJiNzY0NzcyN2MzZjI2ZWMyZmMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vRmlsZVN5c3RlbVBsYXlTdGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9wbGF5c3RhdGlvbi9GaWxlU3lzdGVtUGxheVN0YXRpb24uY3BwCkBAIC0yNjUsNyArMjY1
LDcgQEAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3Qg
U3RyaW5nJiBwYXRoKQogICAgIGlmIChzdGF0KGZzUmVwLmRhdGEoKSwgJmZpbGVJbmZvKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZmlsZUluZm8uc3RfbXRpbWUpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRz
KGZpbGVJbmZvLnN0X210aW1lKSk7CiB9CiAKIGJvb2wgdXBkYXRlRmlsZU1vZGlmaWNhdGlvblRp
bWUoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9zaXgv
RmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAKaW5kZXggZjEyMTI1Mzg3NjM0NTM1NDE5MjQzZDgxZWM2YzRmZjBiMWJmMDNiMi4uMDUx
ZTVlNTVlMGE2YTdjYTBiMTg5MWIyNTEwOWM2ZGU5N2JhNGIyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gZmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgaWYg
KHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCi0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhmaWxlSW5mby5zdF9i
aXJ0aHRpbWUpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKGZpbGVJbmZvLnN0X2JpcnRo
dGltZSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocGF0aCk7CiAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lY
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcAppbmRleCBkOTI0
NDkwZDFiNTdmM2VlMDZlZTVlYWQ4YTJkM2MxMWMyMGNiNWQxLi41MzVkMDhkMzk4ZTM1MTI0Y2Rm
NzViZWZmOTMyZDM5ODcyMTIyMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9U
aHJlYWRpbmdQT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9T
SVguY3BwCkBAIC02MjIsNyArNjIyLDcgQEAgYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2Fp
dChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKICAgICBpZiAoYWJzb2x1dGVU
aW1lIDwgV2FsbFRpbWU6Om5vdygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
YWJzb2x1dGVUaW1lID4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKElOVF9NQVgpKSB7CisgICAg
aWYgKGFic29sdXRlVGltZSA+IFdhbGxUaW1lKFNlY29uZHMoSU5UX01BWCkpKSB7CiAgICAgICAg
IHdhaXQobXV0ZXgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4v
RmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggMmJjOGYyMDEwNTFjN2Q4NWIxN2I0NGFjMjczOGQyZWQw
MWYyZDk0YS4uNTcwMTY5Y2FlMWI0NDgyZDEwYTYwMTczYWJiOGE5Zjc4Y2ZjNjM3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0ZDo6b3B0
aW9uYWw8V2FsbFRpbWU+IGZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogCiAg
ICAgdGltZV90IHRpbWUgPSAwOwogICAgIGZpbGVDcmVhdGlvblRpbWVGcm9tRmluZERhdGEoZmlu
ZERhdGEsIHRpbWUpOwotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSk7
CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHModGltZSkpOwogfQogCiAjaWYgIVVTRShDRikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJHYW1lcGFkLmNwcAppbmRleCA1
Mjg2ODEwODllNWEzYzVkMWIyY2E5NDU0Y2MyMzU0ZjViMDYyNTU5Li40NTBjYzQzNzRlNmVmOTdj
M2U1MGRkMjdmZWY5ZjBiNDI1MDNiZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUkdhbWVwYWQuY3BwCkBAIC00Miw4ICs0Miw4IEBAIGNvbnN0ZXhwciBpbnQgRGVm
YXVsdFhSR2FtZXBhZElkID0gLTE7CiBXZWJYUkdhbWVwYWQ6OldlYlhSR2FtZXBhZChkb3VibGUg
dGltZXN0YW1wLCBkb3VibGUgY29ubmVjdFRpbWUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6
RnJhbWVEYXRhOjpJbnB1dFNvdXJjZSYgc291cmNlKQogICAgIDogUGxhdGZvcm1HYW1lcGFkKERl
ZmF1bHRYUkdhbWVwYWRJZCkKIHsKLSAgICBtX2xhc3RVcGRhdGVUaW1lID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lc3RhbXApLnZh
bHVlKCkpOwotICAgIG1fY29ubmVjdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25k
cyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGNvbm5lY3RUaW1lKS52YWx1ZSgpKTsKKyAgICBt
X2xhc3RVcGRhdGVUaW1lID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KHRpbWVzdGFtcCkpOworICAgIG1fY29ubmVjdFRpbWUgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHMoY29ubmVjdFRpbWUpKTsKICAgICAvLyBJbiBvcmRlciB0byByZXBv
cnQgYSBtYXBwaW5nIG9mICJ4ci1zdGFuZGFyZCIgdGhlIGRldmljZSBNVVNUIHJlcG9ydCBhIHRh
cmdldFJheU1vZGUgb2YgInRyYWNrZWQtcG9pbnRlciIgYW5kIE1VU1QgaGF2ZSBhIG5vbi1udWxs
IGdyaXBTcGFjZS4KICAgICAvLyBJdCBNVVNUIGhhdmUgYXQgbGVhc3Qgb25lIHByaW1hcnkgdHJp
Z2dlciwgc2VwYXJhdGUgZnJvbSBhbnkgdG91Y2hwYWRzIG9yIHRodW1ic3RpY2tzCiAgICAgaWYg
KHNvdXJjZS50YXJnZXRSYXlNb2RlID09IFhSVGFyZ2V0UmF5TW9kZTo6VHJhY2tlZFBvaW50ZXIg
JiYgIXNvdXJjZS5idXR0b25zLmlzRW1wdHkoKSAmJiBzb3VyY2UuZ3JpcE9yaWdpbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5k
ZXggMWNhMGQ2NTczMjEwYmYxYTgwZDg5MmFhMmI3MThlNjVhZWM2MDQ2ZS4uM2U4NzVmZmEwNjM0
OTM0OTllNGIxNDNlYmNlMDUyOGI0ZmU5NjBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBz
dGF0aWMgYm9vbCBnZXQoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFs
dWUgb2JqZWN0LCBjb25zdCBTdHJpbgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGtleVBhdGhFbGVtZW50ID09ICJsYXN0TW9kaWZpZWREYXRlIikgewot
ICAgICAgICAgICAgcmVzdWx0ID0ganNEYXRlKGxleGljYWxHbG9iYWxPYmplY3QsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGpzQ2FzdDxKU0ZpbGUq
PihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlmaWVkKCkpLnZhbHVlKCkpKTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IGpzRGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZShTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlm
aWVkKCkpKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAg
LTE3Nyw3ICsxNzcsNyBAQCBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgY2FzZSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGU6CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJs
eSBiZSB0b0pTPElETERhdGU+KC4uLikgYXMgcGVyOgogICAgICAgICAvLyBodHRwOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI3JlcXVlc3QtY29udmVydC1hLWtleS10by1hLXZhbHVlCi0gICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZy
b21NaWxsaXNlY29uZHMoa2V5LT5kYXRlKCkpLnZhbHVlKCkpKSk7CisgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgV2FsbFRpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhrZXktPmRhdGUoKSkp
KSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpN
aW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRE
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3Bw
CmluZGV4IGQ4MDcwYzhjMTU1Y2YyZjcyYWVmNTRkODI2OWY0NjdjOGM1MTczNTMuLjUzM2Y3OTJh
Yzc0ZDYxOWM1OTliYmI2YjgyYjcxYWM1MzY3ZDRlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFdhbGxU
aW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiAgICAgZWxzZSBpZiAodmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAg
bWlsbGlzZWNvbmRzID0gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgdm0sIHZhbHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogCi0gICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1p
bGxpc2Vjb25kcykudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApp
bmRleCA2YzM4MWFhNzAxYzk0MDcyNjYxY2UwZTE1MmYyNTkxYjU0NzE0OTkxLi45ZDg4Y2M5YWIz
MjQxZWI2ZjU0MjUzN2Y0MTY5OTQ5YmRlMGMxNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKCkKIAogV2Fs
bFRpbWUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNv
bmRzKHZhbHVlQXNEb3VibGUoKSkudmFsdWUoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0RvdWJsZSgpKSk7CiB9CiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUg
dmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCBlYzgzNTFjMDk3NzQ4YjE0OWE5NDQzOWJhYjY5NTc4ZWU5MDAxYTBlLi4wMWY5NzNiNGFjZjhm
NDI1OTVlMTYxMjY4MjBhZTQxMjQ5OGEwNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTExMTYsNyArMTExNiw3IEBAIFdhbGxUaW1lIEhUTUxNZWRpYUVs
ZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAg
cmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKIAotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMobV9wbGF5ZXItPmdldFN0YXJ0RGF0ZSgpLnRvRG91YmxlKCkpOworICAgIHJldHVybiBX
YWxsVGltZShTZWNvbmRzKG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50b0RvdWJsZSgpKSk7CiB9
CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcAppbmRleCA5NDhkMWQ0MTc0OGU5ZmFkMjkyMmNhZjcwY2ViNjY4YjQ4
OGU5OTQxLi4zODYzNDlhY2E5MTU2NzJkZWJlYzk0ZmUyYWI4OWMxZjA1ODA3MWFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTYxOCwxMiArNjE4LDEyIEBA
IHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVk
IGlkZW50aWZpZXIpCiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NWaWRlb0ZyYW1lTWV0YWRhdGFUaW1l
c3RhbXBzKFZpZGVvRnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFBlcmZvcm1hbmNlJiBwZXJmb3Jt
YW5jZSkKIHsKLSAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lID0gcGVyZm9ybWFuY2UucmVs
YXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6
OmZyb21SYXdTZWNvbmRzKG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUpKTsKLSAgICBtZXRhZGF0
YS5leHBlY3RlZERpc3BsYXlUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVP
cmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKG1l
dGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUpKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50YXRpb25U
aW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNv
bHV0aW9uKE1vbm90b25pY1RpbWUoU2Vjb25kcyhtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1lKSkp
OworICAgIG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2
ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24oTW9ub3RvbmljVGltZShTZWNv
bmRzKG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUpKSk7CiAgICAgaWYgKG1ldGFkYXRhLmNh
cHR1cmVUaW1lKQotICAgICAgICBtZXRhZGF0YS5jYXB0dXJlVGltZSA9IHBlcmZvcm1hbmNlLnJl
bGF0aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1l
Ojpmcm9tUmF3U2Vjb25kcygqbWV0YWRhdGEuY2FwdHVyZVRpbWUpKTsKKyAgICAgICAgbWV0YWRh
dGEuY2FwdHVyZVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbklu
UmVkdWNlZFJlc29sdXRpb24oTW9ub3RvbmljVGltZShTZWNvbmRzKCptZXRhZGF0YS5jYXB0dXJl
VGltZSkpKTsKICAgICBpZiAobWV0YWRhdGEucmVjZWl2ZVRpbWUpCi0gICAgICAgIG1ldGFkYXRh
LnJlY2VpdmVUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJl
ZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKCptZXRhZGF0YS5y
ZWNlaXZlVGltZSkpOworICAgICAgICBtZXRhZGF0YS5yZWNlaXZlVGltZSA9IHBlcmZvcm1hbmNl
LnJlbGF0aXZlVGltZUZyb21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNU
aW1lKFNlY29uZHMoKm1ldGFkYXRhLnJlY2VpdmVUaW1lKSkpOwogfQogCiB2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyhSZWR1Y2VkUmVzb2x1
dGlvblNlY29uZHMgbm93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRl
eCAxOTgzYzQwOTk4ZjA2NTdiMTdkMWQ4MGRlYjI4MGJkNjJlNzQ1ODExLi43NTk3N2I4OTVjYzYy
MGQxNjJjZWY2OWNmMjUyNmU1MDc4NGFkNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcApAQCAtNzIsNyArNzIsNyBAQCBXYWxsVGltZSBNb250aElucHV0VHlwZTo6dmFs
dWVBc0RhdGUoKSBjb25zdAogICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogICAgIGRv
dWJsZSBtc2VjID0gZGF0ZS0+bWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwogICAgIEFTU0VSVChz
dGQ6OmlzZmluaXRlKG1zZWMpKTsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobXNlYykudmFsdWUoKSk7CisgICAgcmV0dXJuIFdh
bGxUaW1lKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobXNlYykpOwogfQogCiBTdHJpbmcgTW9u
dGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3Bw
CmluZGV4IGU1NTViMjc5N2Q4YzVjZjcyOThlNzcwOTk1ZDZiZmQwMGRhYjM3OTMuLmI3ODZiMTc4
NTE1YmI0NDExNDM2NDkzZjQ5MzcyMzUwZmFkZTQwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBi
b29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIs
IHVuc2lnbmVkIG1vZGVsVmVyc2lvbgogICAgIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uVGltZUFzRG91YmxlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVEb3VibGUoIm1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb24iLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91Ymxl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lQXNEb3VibGUpOworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRp
bWUoU2Vjb25kcyhtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlKSk7CiAKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgiZ3JhbmRmYXRoZXJlZCIsIGdyYW5kZmF0aGVyZWQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMjYsNyArMzI2LDcgQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBt
b2RlbFZlcnNpb24KICAgICBkb3VibGUgbGFzdFNlZW5UaW1lQXNEb3VibGU7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZURvdWJsZSgibGFzdFNlZW4iLCBsYXN0U2VlblRpbWVBc0RvdWJsZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBsYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhsYXN0U2VlblRpbWVBc0RvdWJsZSk7CisgICAgbGFzdFNlZW4gPSBXYWxsVGltZShTZWNv
bmRzKGxhc3RTZWVuVGltZUFzRG91YmxlKSk7CiAKICAgICBpZiAobW9kZWxWZXJzaW9uID49IDEx
KSB7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInRpbWVzQWNjZXNzZWRBc0Zp
cnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIsIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlE
dWVUb1VzZXJJbnRlcmFjdGlvbikpCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjptZXJnZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBvdGhlcikK
IAogV2FsbFRpbWUgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24o
V2FsbFRpbWUgdGltZSkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0
ZDo6Zmxvb3IodGltZS5zZWNvbmRzU2luY2VFcG9jaCgpIC8gdGltZXN0YW1wUmVzb2x1dGlvbikg
KiB0aW1lc3RhbXBSZXNvbHV0aW9uLnNlY29uZHMoKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNl
Y29uZHMoc3RkOjpmbG9vcih0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkgLyB0aW1lc3RhbXBSZXNv
bHV0aW9uKSAqIHRpbWVzdGFtcFJlc29sdXRpb24uc2Vjb25kcygpKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IGE5YjU4
Mjg3M2FlNDU1OTE3MzdlODA2ODkyNGNkYWY0NWQ0MWNmODUuLmExZDEzYjBlMTczNDQ0MzZiMDJj
MWE0ZTBhZmM2ZmVmNjYzNjZlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAtNzIsNyArNzIsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyB7CiAgICAgLy8gVXNlciBpbnRlcmFjdGlvbgogICAgIGJvb2wgaGFkVXNlcklu
dGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICAvLyBUaW1lc3RhbXAuIERlZmF1bHQgdmFsdWUgaXMg
bmVnYXRpdmUsIDAgbWVhbnMgaXQgd2FzIHJlc2V0LgotICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lIHsgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSB9OworICAg
IFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIHsgLTFfcyB9OwogICAgIGJv
b2wgZ3JhbmRmYXRoZXJlZCB7IGZhbHNlIH07CiAKICAgICAvLyBTdG9yYWdlIGFjY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhbWVSYXRlTW9uaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmNwcAppbmRleCAzZmJlMTZm
NTQ0ZGM2MTNmYWU0MmVmZThjZThjMzQwMzY2YTA4MjhkLi4yNGU4YzM3OWZlYThiZjkzZmM4N2M3
ZmZhMjRkNzg0ODZjMjFkMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
cmFtZVJhdGVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJh
dGVNb25pdG9yLmNwcApAQCAtMzYsMjIgKzM2LDIyIEBAIHZvaWQgRnJhbWVSYXRlTW9uaXRvcjo6
dXBkYXRlKCkKIHsKICAgICArK21fZnJhbWVDb3VudDsKIAotICAgIGF1dG8gZnJhbWVUaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOworICAgIGF1
dG8gZnJhbWVUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYXV0byBsYXN0RnJhbWVU
aW1lID0gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5pc0VtcHR5KCkgPyBmcmFtZVRpbWUgOiBt
X29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLmxhc3QoKTsKIAogICAgIGlmIChtX29ic2VydmVkRnJh
bWVSYXRlKSB7Ci0gICAgICAgIGF1dG8gbWF4RGVsYXkgPSBNYXhGcmFtZURlbGF5Q291bnQgLyBt
X29ic2VydmVkRnJhbWVSYXRlOworICAgICAgICBhdXRvIG1heERlbGF5ID0gU2Vjb25kcyhNYXhG
cmFtZURlbGF5Q291bnQgLyBtX29ic2VydmVkRnJhbWVSYXRlKTsKICAgICAgICAgaWYgKChmcmFt
ZVRpbWUgLSBsYXN0RnJhbWVUaW1lKSA+IG1heERlbGF5KQotICAgICAgICAgICAgbV9sYXRlRnJh
bWVDYWxsYmFjayh7IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGZyYW1lVGltZSksIE1v
bm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGxhc3RGcmFtZVRpbWUpIH0pOworICAgICAgICAg
ICAgbV9sYXRlRnJhbWVDYWxsYmFjayh7IGZyYW1lVGltZSwgbGFzdEZyYW1lVGltZSB9KTsKICAg
ICB9CiAgICAgbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5hcHBlbmQoZnJhbWVUaW1lKTsKICAg
ICBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShhdXRvIHRp
bWUpIHsKLSAgICAgICAgcmV0dXJuIHRpbWUgPD0gZnJhbWVUaW1lIC0gTWF4UXVldWVEdXJhdGlv
bi52YWx1ZSgpOworICAgICAgICByZXR1cm4gdGltZSA8PSBmcmFtZVRpbWUgLSBNYXhRdWV1ZUR1
cmF0aW9uOwogICAgIH0pOwogCiAgICAgYXV0byBxdWV1ZUR1cmF0aW9uID0gbV9vYnNlcnZlZEZy
YW1lVGltZVN0YW1wcy5sYXN0KCkgLSBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLmZpcnN0KCk7
Ci0gICAgaWYgKHF1ZXVlRHVyYXRpb24gPiBNaW5pbXVtQXZlcmFnZUR1cmF0aW9uLnZhbHVlKCkp
Ci0gICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1lVGltZVN0YW1w
cy5zaXplKCkgLyBxdWV1ZUR1cmF0aW9uKTsKKyAgICBpZiAocXVldWVEdXJhdGlvbiA+IE1pbmlt
dW1BdmVyYWdlRHVyYXRpb24pCisgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSBtX29ic2Vy
dmVkRnJhbWVUaW1lU3RhbXBzLnNpemUoKSAvIHF1ZXVlRHVyYXRpb24uc2Vjb25kcygpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFtZVJhdGVNb25pdG9yLmgKaW5kZXggMzMw
NzcwMWE1MTkxZTM2YWNjYWZkZGUwYzVmOTcwZjQ4NDA2ZjMxYy4uMThjYmY4M2YyYWQ0NTYzZmNk
NDU2ZDQ5ZmMyZjM0MzhkMjZmNzllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRnJhbWVSYXRlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYW1l
UmF0ZU1vbml0b3IuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
TGF0ZUZyYW1lQ2FsbGJhY2sgbV9sYXRlRnJhbWVDYWxsYmFjazsKLSAgICBEZXF1ZTxkb3VibGUs
IDEyMD4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKKyAgICBEZXF1ZTxNb25vdG9uaWNUaW1l
LCAxMjA+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRG
cmFtZVJhdGUgeyAwIH07CiAgICAgdWludDY0X3QgbV9mcmFtZUNvdW50IHsgMCB9OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFjNjk5
ZmJlZTQ1OGEzODUyN2E1MDIxZjFmMGNhMDI3ZDJkOWIxOTguLjJlYzE2MGQ0ZjkzYzAxZTM4YmVh
NWQ3MWUyYmQ0MmM2OTgzZTBlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YkF1ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+JiYgZWxlbWVu
dCwKICAgICBpZiAoYXV0byBjbG9jayA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfY2xvY2so
ZWxlbWVudC5nZXQoKSkpKSB7CiAgICAgICAgIGF1dG8gY2xvY2tUaW1lID0gZ3N0X2Nsb2NrX2dl
dF90aW1lKGNsb2NrLmdldCgpKTsKICAgICAgICAgb3V0cHV0VGltZXN0YW1wLnBvc2l0aW9uID0g
U2Vjb25kczo6ZnJvbU5hbm9zZWNvbmRzKHRpbWVzdGFtcCk7Ci0gICAgICAgIG91dHB1dFRpbWVz
dGFtcC50aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2Fz
dDxkb3VibGU+KChnX2dldF9tb25vdG9uaWNfdGltZSgpICsgR1NUX1RJTUVfQVNfVVNFQ09ORFMo
Y2xvY2tUaW1lKSkgLyAxMDAwMDAwLjApKTsKKyAgICAgICAgb3V0cHV0VGltZXN0YW1wLnRpbWVz
dGFtcCA9IE1vbm90b25pY1RpbWUoU2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KChnX2dldF9t
b25vdG9uaWNfdGltZSgpICsgR1NUX1RJTUVfQVNfVVNFQ09ORFMoY2xvY2tUaW1lKSkgLyAxMDAw
MDAwLjApKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2NhbC9s
aXZlIGF1ZGlvIGlucHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU2VhcmNoUG9wdXBNZW51Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TZWFyY2hQb3B1cE1lbnVDb2NvYS5tbQppbmRleCAzYmRmNDk1OWNiNjAxYTc2ZTNhMzI5ZGZh
YTMyN2M0MjMxMzE5OGZhLi5kNGZiMmNkMzFiNmY3NGUxODJkNDhmZjYyODRiZTFhMDk4NWRmYzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1cE1l
bnVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TZWFyY2hQb3B1
cE1lbnVDb2NvYS5tbQpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IHJlYWRTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzUGxpc3QoKQogc3RhdGlj
IFdhbGxUaW1lIHRvU3lzdGVtQ2xvY2tUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsKICAgICBBU1NFUlQo
ZGF0ZSk7Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlLnRpbWVJbnRl
cnZhbFNpbmNlMTk3MCk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoZGF0ZS50aW1lSW50
ZXJ2YWxTaW5jZTE5NzApKTsKIH0KIAogc3RhdGljIE5TRGF0ZSAqdG9OU0RhdGVGcm9tU3lzdGVt
Q2xvY2soV2FsbFRpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQxOGE4NWE3
OTRmNTIzZjk0OTEyZTI3ZjA4YjdjY2JlODkzYzhlZDAuLmEwOTc3YjRiZTExZGVkZmFjZmY5MTVm
NTkwOWY2MGFlOWQyMGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzg2LDcgKzM4
Niw3IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpvcmlnaW5zSW5NZWRpYUNhCiBzdGF0aWMgV2FsbFRpbWUgdG9TeXN0ZW1D
bG9ja1RpbWUoTlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsKLSAgICByZXR1cm4g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFD
YWNoZShjb25zdCBTdHJpbmcmIHBhdGgsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpCkBAIC00MDMs
NyArNDAzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjbGVh
ck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXYWwKICAgICBOU0ZpbGVNYW5hZ2VyICpm
aWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKICAgICBOU1VSTCAq
YmFzZVVSTCA9IFthc3NldENhY2hlIFVSTF07CiAKLSAgICBpZiAobW9kaWZpZWRTaW5jZSA8PSBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCkpIHsKKyAgICBpZiAobW9kaWZpZWRTaW5jZSA8PSBX
YWxsVGltZSgpKSB7CiAgICAgICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRVUkw6YmFzZVVS
TCBlcnJvcjpuaWxdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA3YjBkNmRlOThiMzgzM2M2ZTIyYjk1
OTcwYjljNTU4YzQwMzJiNjUxLi4wNDA4ODZkMzZkMWM4YTMwNWJlOTM3YTI3ZjQwMWU3NjE4OWFm
Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApA
QCAtMTM0LDcgKzEzNCw3IEBAIFdhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnQoY29uc3QgR2RrRXZl
bnQqIGV2ZW50KQogI2VuZGlmCiAgICAgaWYgKHRpbWUgPT0gR0RLX0NVUlJFTlRfVElNRSkKICAg
ICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6
ZnJvbVJhd1NlY29uZHModGltZSAvIDEwMDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CisgICAg
cmV0dXJuIE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lKSkuYXBw
cm94aW1hdGVXYWxsVGltZSgpOwogfQogCiBTdHJpbmcgZGVmYXVsdEd0a1N5c3RlbUZvbnQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCmluZGV4IGE1ZmFjYjIx
MGQxY2NlYmQwOGFlNmY0NmYxZjM0YTRjOWJjMmVmNzkuLjAwY2NlN2FjOGRhZGZkMTM5OWE2YzFl
MGRlMzk4ZTliODg4MzY4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRp
bGl0aWVzLmgKQEAgLTQxLDcgKzQxLDcgQEAgV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25z
dCBHZGtFdmVudFR5cGUqIGV2ZW50KQogICAgIGNvbnN0IGF1dG8gZXZlbnRUaW1lID0gZ2RrX2V2
ZW50X2dldF90aW1lKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihjb25zdF9jYXN0PEdka0V2
ZW50VHlwZSo+KGV2ZW50KSkpOwogICAgIGlmIChldmVudFRpbWUgPT0gR0RLX0NVUlJFTlRfVElN
RSkKICAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKLSAgICByZXR1cm4gTW9ub3Rvbmlj
VGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnRUaW1lIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRp
bWUoKTsKKyAgICByZXR1cm4gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KGV2ZW50VGltZSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKIH0KIAogdGVtcGxhdGU8PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tCmluZGV4IDA3NzNmNTg4NmU0MGEwMmVhOWUzY2EwODAyMDVjNDcyYTliMjgzNDkuLjE2
N2RkOWY3ZmE2YjFlOTI0YWZiZGVhM2JmZmExNmFjMjJmNTc5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAg
LTYwMiw3ICs2MDIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX3R5cGUgPSB0b3VjaEV2
ZW50VHlwZShldmVudCk7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhl
dmVudC50aW1lc3RhbXApOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lKFNlY29uZHMo
ZXZlbnQudGltZXN0YW1wKSk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSBldmVudC5nZXN0
dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQuZ2VzdHVyZVJvdGF0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLm1tCmluZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJhODRhMzM0Mjgz
OTZlNWUuLmQ1NTQ2MWJmM2MzZDFjM2JhMjZlZmJhMjExMmIzNDBlMTljYWFiZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW0KQEAgLTYwOSw3ICs2MDksNyBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3Rh
cnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAKIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKE5TVGltZUludGVydmFsIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRl
cnZhbFNpbmNlMTk3MCgpICsgdGltZXN0YW1wKSk7CisgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29u
ZHMoY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgdGltZXN0YW1wKSk7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IGYz
Zjg3YTRmN2U5YmI4ZTc3NjdhOWU4OTE1N2I3YjJlNjNjM2U3ZGQuLmZjZGRiZWE4Njk5M2I5MzBh
NTFkZTM0ZGRkZjcwYjRkN2FmYWU2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gcGFyc2VIVFRQRGF0ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIC8vIFRoaXMgYXNzdW1lcyBzeXN0ZW1fY2xvY2sgZXBv
Y2ggZXF1YWxzIFVuaXggZXBvY2ggd2hpY2ggaXMgdHJ1ZSBmb3IgYWxsIGltcGxlbWVudGF0aW9u
cyBidXQgdW5zcGVjaWZpZWQuCiAgICAgLy8gRklYTUU6IFRoZSBwYXJzaW5nIGZ1bmN0aW9uIHNo
b3VsZCBiZSBzd2l0Y2hlZCB0byBXYWxsVGltZSB0b28uCi0gICAgcmV0dXJuIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhkYXRlSW5NaWxsaXNlY29uZHNTaW5jZUVwb2NoIC8gMTAwMC4wKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhkYXRlSW5NaWxsaXNl
Y29uZHNTaW5jZUVwb2NoKSk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qg
Y29tcGx5IHdpdGggUkZDIDYyNjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAppbmRleCBjYjBkOGIzYWFjNGQ2YjFmZWU5Yjll
YTIyNDUzNGNhMjMyMDQ4ODFlLi40NDBhNmJlY2YzNzk2YjRhZTIzYmZhYjM0MjFkNzJhOTg3Zjdj
ZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtM
b2FkTWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a0xvYWRNZXRyaWNzLmgKQEAgLTU2LDcgKzU2LDcgQEAgZW51bSBjbGFzcyBQcml2YWN5U3RhbmNl
IDogdWludDhfdCB7CiAgICAgRGlyZWN0LAogfTsKIAotY29uc3RleHByIE1vbm90b25pY1RpbWUg
cmV1c2VkVExTQ29ubmVjdGlvblNlbnRpbmVsIHsgTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29u
ZHMoLTEpIH07Citjb25zdGV4cHIgTW9ub3RvbmljVGltZSByZXVzZWRUTFNDb25uZWN0aW9uU2Vu
dGluZWwgeyAtMV9zIH07CiAKIHN0cnVjdCBBZGRpdGlvbmFsTmV0d29ya0xvYWRNZXRyaWNzRm9y
V2ViSW5zcGVjdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDk1MGU4MjY3ZTJhNWU4NmJhNzlk
Njc5ZTdkNzM2MTEwMWMwZmJhZWIuLjA2ODVkM2MwOWUxMTE0N2U1NjhhNWEwMjAxNmE0ZDFjZWI4
MDUxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBAIC03MzcsOCArNzM3LDcgQEAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZCgpIGNvbnN0CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIC8vIENGTmV0d29yayBjb252ZXJ0cyBtYWxmb3Jt
ZWQgZGF0ZXMgaW50byBFcG9jaCBzbyB3ZSBuZWVkIHRvIHRyZWF0IEVwb2NoIGFzCiAgICAgICAg
IC8vIGFuIGludmFsaWQgdmFsdWUgKHJkYXI6Ly9wcm9ibGVtLzIyMzUyODM4KS4KLSAgICAgICAg
Y29uc3QgV2FsbFRpbWUgZXBvY2ggPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7Ci0gICAg
ICAgIGlmIChtX2xhc3RNb2RpZmllZCAmJiBtX2xhc3RNb2RpZmllZC52YWx1ZSgpID09IGVwb2No
KQorICAgICAgICBpZiAobV9sYXN0TW9kaWZpZWQgJiYgIW1fbGFzdE1vZGlmaWVkLnZhbHVlKCkp
CiAgICAgICAgICAgICBtX2xhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogICAg
ICAgICBtX2hhdmVQYXJzZWRMYXN0TW9kaWZpZWRIZWFkZXIgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrTG9hZE1ldHJpY3Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0
cmljcy5tbQppbmRleCA2MzEyZTA2ODQyOTdiNDNjMzMxMWU0NzM5YjY4MWFiNDQ1YzMzNjcyLi40
ZDM1MDRkZDFkNmJjNjdlNTMwNmM3MDU4ODRhM2QzZTI5ZmYxNmM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0cmljcy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0
cmljcy5tbQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgTW9u
b3RvbmljVGltZSBkYXRlVG9Nb25vdG9uaWNUaW1lKE5TRGF0ZSAqZGF0ZSkKIHsKICAgICBpZiAo
YXV0byBpbnRlcnZhbCA9IGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKQotICAgICAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGludGVydmFsKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKTsKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2YWwpKS5hcHBy
b3hpbWF0ZU1vbm90b25pY1RpbWUoKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcAppbmRl
eCA5NWQ3NjhhY2UwODBiMmY2NjI1OTE1MTU0MWNhY2I4OWQxNGJjMDI2Li42ZDc0YmRlMzQ3MDUz
MDYwMjZjMjQ2YjI2NDYzZjNiNDRlZTliNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKQEAgLTUxMSw3ICs1MTEsNyBA
QCBib29sIENvb2tpZUphckRCOjpjYW5BY2NlcHRDb29raWUoY29uc3QgQ29va2llJiBjb29raWUs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgYwogYm9vbCBDb29raWVKYXJEQjo6c2V0Q29va2llKGNv
bnN0IENvb2tpZSYgY29va2llKQogewogICAgIGF1dG8gZXhwaXJlcyA9IGNvb2tpZS5leHBpcmVz
LnZhbHVlX29yKDAuMCk7Ci0gICAgaWYgKCFjb29raWUuc2Vzc2lvbiAmJiBNb25vdG9uaWNUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhleHBpcmVzIC8gbXNQZXJTZWNvbmQpIDw9IE1vbm90b25pY1RpbWU6
Om5vdygpKQorICAgIGlmICghY29va2llLnNlc3Npb24gJiYgTW9ub3RvbmljVGltZShTZWNvbmRz
KGV4cGlyZXMgLyBtc1BlclNlY29uZCkpIDw9IE1vbm90b25pY1RpbWU6Om5vdygpKQogICAgICAg
ICByZXR1cm4gZGVsZXRlQ29va2llSW50ZXJuYWwoY29va2llLm5hbWUsIGNvb2tpZS5kb21haW4s
IGNvb2tpZS5wYXRoKTsKIAogICAgIGF1dG8mIHN0YXRlbWVudCA9IHByZXBhcmVkU3RhdGVtZW50
KFNFVF9DT09LSUVfU1FMKTsKQEAgLTU1Myw3ICs1NTMsNyBAQCBib29sIENvb2tpZUphckRCOjpz
ZXRDb29raWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJgogICAgIGlmIChjYXBwZWRMaWZldGltZSAmJiBjb29raWUtPmV4cGlyZXMpIHsKICAgICAg
ICAgQVNTRVJUKCpjYXBwZWRMaWZldGltZSA+PSAwX3MpOwogICAgICAgICBhdXRvIGNhcHBlZEV4
cGlyZXMgPSBXYWxsVGltZTo6bm93KCkgKyAqY2FwcGVkTGlmZXRpbWU7Ci0gICAgICAgIGlmIChj
YXBwZWRFeHBpcmVzIDwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCpjb29raWUtPmV4cGlyZXMg
LyBtc1BlclNlY29uZCkpCisgICAgICAgIGlmIChjYXBwZWRFeHBpcmVzIDwgV2FsbFRpbWUoU2Vj
b25kcygqY29va2llLT5leHBpcmVzIC8gbXNQZXJTZWNvbmQpKSkKICAgICAgICAgICAgIGNvb2tp
ZS0+ZXhwaXJlcyA9IGNhcHBlZEV4cGlyZXMuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29u
ZHMoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCmluZGV4IDY4Y2FmMDU0NmI2MmNmNDk2NDdkNGI5
YzRiZTdmNTllYjViYjVjOWMuLjk0MjM5OGIwOTNiMmEwNjk4Mzc1YzZiZDBkYmUzMDJjMjZkZGQw
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q2FjaGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZUVudHJ5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBDdXJsQ2FjaGVFbnRyeTo6Q3Vy
bENhY2hlRW50cnkoY29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNlSGFuZGxlKiBqb2IsIGNvbnN0
IFN0cgogICAgICwgbV9jb250ZW50RmlsZW5hbWUoY2FjaGVEaXIpCiAgICAgLCBtX2NvbnRlbnRG
aWxlKEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCiAgICAgLCBtX2VudHJ5
U2l6ZSgwKQotICAgICwgbV9leHBpcmVEYXRlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygtMSkp
CisgICAgLCBtX2V4cGlyZURhdGUoV2FsbFRpbWUoLTFfcykpCiAgICAgLCBtX2hlYWRlclBhcnNl
ZChmYWxzZSkKICAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQogICAgICwgbV9qb2Ioam9iKQpAQCAt
MjkwLDE4ICsyOTAsMTggQEAgYm9vbCBDdXJsQ2FjaGVFbnRyeTo6cGFyc2VSZXNwb25zZUhlYWRl
cnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgaWYgKG1heEFnZSAmJiAh
cmVzcG9uc2UuY2FjaGVDb250cm9sQ29udGFpbnNNdXN0UmV2YWxpZGF0ZSgpKSB7CiAgICAgICAg
IC8vIFdoZW4gYm90aCB0aGUgY2FjaGUgZW50cnkgYW5kIHRoZSByZXNwb25zZSBjb250YWluIG1h
eC1hZ2UsIHRoZSBsZXNzZXIgb25lIHRha2VzIHByaW9yaXR5CiAgICAgICAgIFdhbGxUaW1lIGV4
cGlyZXMgPSBmaWxlVGltZSArICptYXhBZ2U7Ci0gICAgICAgIGlmIChtX2V4cGlyZURhdGUgPT0g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSB8fCBtX2V4cGlyZURhdGUgPiBleHBpcmVzKQor
ICAgICAgICBpZiAobV9leHBpcmVEYXRlID09IFdhbGxUaW1lKC0xX3MpIHx8IG1fZXhwaXJlRGF0
ZSA+IGV4cGlyZXMpCiAgICAgICAgICAgICBtX2V4cGlyZURhdGUgPSBleHBpcmVzOwogICAgIH0g
ZWxzZSBpZiAocmVzcG9uc2VEYXRlICYmIGV4cGlyYXRpb25EYXRlKSB7CiAgICAgICAgIGlmICgq
ZXhwaXJhdGlvbkRhdGUgPj0gKnJlc3BvbnNlRGF0ZSkKICAgICAgICAgICAgIG1fZXhwaXJlRGF0
ZSA9IGZpbGVUaW1lICsgKCpleHBpcmF0aW9uRGF0ZSAtICpyZXNwb25zZURhdGUpOwogICAgIH0K
ICAgICAvLyBJZiB0aGVyZSBpcyBubyBsaWZldGltZSBpbmZvcm1hdGlvbgotICAgIGlmIChtX2V4
cGlyZURhdGUgPT0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSkgeworICAgIGlmIChtX2V4
cGlyZURhdGUgPT0gV2FsbFRpbWUoLTFfcykpIHsKICAgICAgICAgaWYgKGxhc3RNb2RpZmljYXRp
b25EYXRlKQogICAgICAgICAgICAgbV9leHBpcmVEYXRlID0gZmlsZVRpbWUgKyAoZmlsZVRpbWUg
LSAqbGFzdE1vZGlmaWNhdGlvbkRhdGUpICogMC4xOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtX2V4cGlyZURhdGUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCk7CisgICAgICAgICAg
ICBtX2V4cGlyZURhdGUgPSBXYWxsVGltZSgpOwogICAgIH0KIAogICAgIFN0cmluZyBldGFnID0g
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbQppbmRleCAzMTVlMDY1MTUzMGRjZGIwMjgwMTY1NGI3NTdkODE0NzNjMjBmZDMwLi40OTE1
Zjg1MTVhYzliOGNmYTIyODQyZGY0YjI5YmNhMjY3OWRhMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCkBA
IC0zMzYsNyArMzM2LDcgQEAgLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbgogCiAgICAgICAgIGlmIChhdXRvIG1ldHJpY3MgPSBt
X2hhbmRsZS0+bmV0d29ya0xvYWRNZXRyaWNzKCkpIHsKICAgICAgICAgICAgIGlmIChkb3VibGUg
cmVzcG9uc2VFbmRUaW1lID0gW1t0aW1pbmdEYXRhIG9iamVjdEZvcktleTpAIl9rQ0ZOVGltaW5n
RGF0YVJlc3BvbnNlRW5kIl0gZG91YmxlVmFsdWVdKQotICAgICAgICAgICAgICAgIG1ldHJpY3Mt
PnJlc3BvbnNlRW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGFkb3B0TlMoW1tOU0RhdGUg
YWxsb2NdIGluaXRXaXRoVGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlOnJlc3BvbnNlRW5k
VGltZV0pLmdldCgpLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkuYXBwcm94aW1hdGVNb25vdG9uaWNU
aW1lKCk7CisgICAgICAgICAgICAgICAgbWV0cmljcy0+cmVzcG9uc2VFbmQgPSBXYWxsVGltZShT
ZWNvbmRzKGFkb3B0TlMoW1tOU0RhdGUgYWxsb2NdIGluaXRXaXRoVGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlOnJlc3BvbnNlRW5kVGltZV0pLmdldCgpLnRpbWVJbnRlcnZhbFNpbmNlMTk3
MCkpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIG1ldHJpY3MtPnJlc3BvbnNlRW5kID0gbWV0cmljcy0+cmVzcG9uc2VTdGFydDsK
ICAgICAgICAgICAgIG1ldHJpY3MtPnByb3RvY29sID0gKE5TU3RyaW5nICopW3RpbWluZ0RhdGEg
b2JqZWN0Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhTmV0d29ya1Byb3RvY29sTmFtZSJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDViMzI1MzRlMmJjYWYxNzAxMzMx
ZTk1NDEwMTNiOGE1YzM4YzRkMzYuLjUwOTg2ZTlkNzI0YjNmZDVjZTJjN2Q3MTZiZTNiYzUzYTUx
YTk4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQ1MSw3ICs0
NTEsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llcygpCiB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uo
V2FsbFRpbWUgdGltZXN0YW1wKQogewogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZGVs
ZXRpbmcgY29va2llcyBtb2RpZmllZCBzaW5jZSB0aGUgZ2l2ZW4gdGltZXN0YW1wLiBJdCBzaG91
bGQgcHJvYmFibHkgYmUgYWRkZWQgdG8gbGlic291cC4KLSAgICBpZiAodGltZXN0YW1wID09IFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSkKKyAgICBpZiAoIXRpbWVzdGFtcCkKICAgICAgICAg
ZGVsZXRlQWxsQ29va2llcygpOwogICAgIGVsc2UKICAgICAgICAgZ193YXJuaW5nKCJEZWxldGlu
ZyBjb29raWVzIG1vZGlmaWVkIHNpbmNlIGEgZ2l2ZW4gdGltZSBzcGFuIGlzIG5vdCBzdXBwb3J0
ZWQgeWV0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZl
bnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApp
bmRleCBhYWU2Yzk5ZGQwNTI5ODVhNDM3MTg4NDZiNjg1MzY0NTQwNTBjMjM0Li44ZTI5ZjY1OWJl
NjBmYzczZmExYzRkOWJkMjcyYmI1NTQ0MGM0Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgV2luZG93
c0tleU5hbWVzJiB3aW5kb3dzS2V5TmFtZXMoKQogfQogCiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEs
IFR5cGUgdHlwZSwgYm9vbCBzeXN0ZW1LZXkpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIEdl
dEtleVN0YXRlKFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZL
X0NPTlRST0wpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBI
SUdIX0JJVF9NQVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0
VGlja0NvdW50KCkgKiAwLjAwMSkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIEdldEtleVN0
YXRlKFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX0NPTlRS
T0wpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWUoU2Vjb25kcyg6OkdldFRpY2tDb3VudCgpICog
MC4wMDEpKSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNp
bmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVk
VGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmlu
Zyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV9rZXkodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpD
aGFyID8gd2luZG93c0tleU5hbWVzKCkuZG9tS2V5RnJvbUNoYXIoY29kZSkgOiB3aW5kb3dzS2V5
TmFtZXMoKS5kb21LZXlGcm9tUGFyYW1zKGNvZGUsIGtleURhdGEpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCmluZGV4IDBiNmI3MGU3MGYxMTEyMmEz
ZmViMDkxZmQ5OTQ0YWQ5OWUxZDkzOGMuLjY0MzMyMDk5ZjVmMzU1ZjdiMTk4ZDA4NTRiZDc2YWU2
YWVhYjFiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2
ZW50V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdp
bi5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIGludCB2ZXJ0aWNhbFNjcm9sbExpbmVzKCkK
IH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBX
UEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91c2VIV2hlZWwpCi0gICAgOiBQ
bGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFyYW0gJiBNS19TSElGVCwgd1Bh
cmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyg6OkdldFRpY2tDb3VudCgpICogMC4wMDEpKQorICAgIDogUGxhdGZv
cm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAm
IE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwg
R2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZShTZWNv
bmRzKDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkpKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBv
c2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRG
cm9tRGV2aWNlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAppbmRleCAzMTRlMDNl
MDQ3ZTkzNmVkOTJhOGY2ZGFiYzY2MjVhMGRmOWI4MGJhLi42NzZkZWJmMGFhMjI4MTlhNjUzMWVl
MDJlZTJjOTg2NzBhZDg4ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaApAQCAtNjAs
NyArNjAsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgewogdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwga2V5IDw8IGlk
ZW50aWZpZXIgPDwgc2NvcGVVUkwgPDwgdXBkYXRlVmlhQ2FjaGUgPDwgbGFzdFVwZGF0ZVRpbWUu
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIDw8IGluc3RhbGxpbmdXb3JrZXIgPDwgd2FpdGlu
Z1dvcmtlciA8PCBhY3RpdmVXb3JrZXI7CisgICAgZW5jb2RlciA8PCBrZXkgPDwgaWRlbnRpZmll
ciA8PCBzY29wZVVSTCA8PCB1cGRhdGVWaWFDYWNoZSA8PCBsYXN0VXBkYXRlVGltZSA8PCBpbnN0
YWxsaW5nV29ya2VyIDw8IHdhaXRpbmdXb3JrZXIgPDwgYWN0aXZlV29ya2VyOwogfQogCiB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtODYsOSArODYsOSBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTo6
ZGVjbwogICAgIGlmICghdXBkYXRlVmlhQ2FjaGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcmF3V2FsbFRpbWU7Ci0gICAgZGVjb2Rl
ciA+PiByYXdXYWxsVGltZTsKLSAgICBpZiAoIXJhd1dhbGxUaW1lKQorICAgIHN0ZDo6b3B0aW9u
YWw8V2FsbFRpbWU+IHdhbGxUaW1lOworICAgIGRlY29kZXIgPj4gd2FsbFRpbWU7CisgICAgaWYg
KCF3YWxsVGltZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4+IGluc3RhbGxpbmdXb3JrZXI7
CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YT4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE6OmRlY28KICAgICBpZiAoIWFj
dGl2ZVdvcmtlcikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqa2V5KSwgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1vdmUoKnNjb3BlVVJM
KSwgV1RGTW92ZSgqdXBkYXRlVmlhQ2FjaGUpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoKnJh
d1dhbGxUaW1lKSwgV1RGTW92ZSgqaW5zdGFsbGluZ1dvcmtlciksIFdURk1vdmUoKndhaXRpbmdX
b3JrZXIpLCBXVEZNb3ZlKCphY3RpdmVXb3JrZXIpIH0gfTsKKyAgICByZXR1cm4geyB7IFdURk1v
dmUoKmtleSksIFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzY29wZVVSTCksIFdURk1v
dmUoKnVwZGF0ZVZpYUNhY2hlKSwgV1RGTW92ZSgqd2FsbFRpbWUpLCBXVEZNb3ZlKCppbnN0YWxs
aW5nV29ya2VyKSwgV1RGTW92ZSgqd2FpdGluZ1dvcmtlciksIFdURk1vdmUoKmFjdGl2ZVdvcmtl
cikgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5j
cHAKaW5kZXggMWJiNGRhZWQ2OGZkOWZlN2RkZjBkNTM5OWRlYjNhMmIyYzg5N2YxMC4uYjA1YjVi
NWRhOWVmNDEwMGY0YzM4NDg2MDNkNjQ1YTY2OWUwMGYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRh
YmFzZS5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9uRGF0YWJhc2U6
OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHNjb3BlUGF0aCA9IHNxbC0+Y29sdW1uVGV4
dCgyKTsKICAgICAgICAgYXV0byBzY29wZVVSTCA9IFVSTCB7IG9yaWdpblVSTCwgc2NvcGVQYXRo
IH07CiAgICAgICAgIGF1dG8gdG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0
YWJhc2VJZGVudGlmaWVyKHNxbC0+Y29sdW1uVGV4dCgzKSk7Ci0gICAgICAgIGF1dG8gbGFzdFVw
ZGF0ZUNoZWNrVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzcWwtPmNvbHVtbkRvdWJs
ZSg0KSk7CisgICAgICAgIGF1dG8gbGFzdFVwZGF0ZUNoZWNrVGltZSA9IFdhbGxUaW1lKFNlY29u
ZHMoc3FsLT5jb2x1bW5Eb3VibGUoNCkpKTsKICAgICAgICAgYXV0byB1cGRhdGVWaWFDYWNoZSA9
IHN0cmluZ1RvVXBkYXRlVmlhQ2FjaGUoc3FsLT5jb2x1bW5UZXh0KDUpKTsKICAgICAgICAgYXV0
byBzY3JpcHRVUkwgPSBVUkwgeyBVUkwoKSwgc3FsLT5jb2x1bW5UZXh0KDYpIH07CiAgICAgICAg
IGF1dG8gd29ya2VyVHlwZSA9IHN0cmluZ1RvV29ya2VyVHlwZShzcWwtPmNvbHVtblRleHQoNykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5jcHAKaW5kZXggMzU1YmI4NGZjYmE3ZDZlYWJhYTk3NTIwMjI3NmJlOWFiM2U2ZmZiNy4uM2Vj
ODA1ZWFiNGVlNmM2N2FiYTQ3ODU4ZWE4YzllNWI0N2I4OGYyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC04MzUsOCAr
ODM1LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWVyZ2Uo
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50KiBjdXJyZW4KICAgICBhdXRvIHRyYW5zYWN0aW9uU2Nv
cGUgPSBiZWdpblRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKTsKIAogICAgIGF1dG8gY3VycmVudFJl
Z2lzdHJhYmxlRG9tYWluID0gY3VycmVudC0+Y29sdW1uVGV4dChSZWdpc3RyYWJsZURvbWFpbklu
ZGV4KTsKLSAgICBhdXRvIGN1cnJlbnRMYXN0U2VlbiA9IGN1cnJlbnQtPmNvbHVtbkRvdWJsZShM
YXN0U2VlbkluZGV4KTsKLSAgICBhdXRvIGN1cnJlbnRNb3N0UmVjZW50VXNlckludGVyYWN0aW9u
ID0gY3VycmVudC0+Y29sdW1uRG91YmxlKE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lSW5k
ZXgpOworICAgIGF1dG8gY3VycmVudExhc3RTZWVuID0gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50
LT5jb2x1bW5Eb3VibGUoTGFzdFNlZW5JbmRleCkpKTsKKyAgICBhdXRvIGN1cnJlbnRNb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uID0gV2FsbFRpbWUoU2Vjb25kcyhjdXJyZW50LT5jb2x1bW5Eb3Vi
bGUoTW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpKTsKICAgICBib29sIGN1cnJl
bnRHcmFuZGZhdGhlcmVkID0gY3VycmVudC0+Y29sdW1uSW50KEdyYW5kZmF0aGVyZWRJbmRleCk7
CiAgICAgYm9vbCBjdXJyZW50SXNQcmV2YWxlbnQgPSBjdXJyZW50LT5jb2x1bW5JbnQoSXNQcmV2
YWxlbnRJbmRleCk7CiAgICAgYm9vbCBjdXJyZW50SXNWZXJ5UHJldmFsZW50ID0gY3VycmVudC0+
Y29sdW1uSW50KElzVmVyeVByZXZhbGVudEluZGV4KTsKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZShXZWJDb3JlOjpTUUxp
dGVTdGF0ZW1lbnQqIGN1cnJlbgogCiAgICAgQVNTRVJUKGN1cnJlbnRSZWdpc3RyYWJsZURvbWFp
biA9PSBvdGhlci5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CiAKLSAgICBpZiAoV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKGN1cnJlbnRMYXN0U2VlbikgPCBvdGhlci5sYXN0U2VlbikKKyAg
ICBpZiAoY3VycmVudExhc3RTZWVuIDwgb3RoZXIubGFzdFNlZW4pCiAgICAgICAgIHVwZGF0ZUxh
c3RTZWVuKG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluLCBvdGhlci5sYXN0U2Vlbik7CiAKICAgICBp
ZiAoIW90aGVyLmhhZFVzZXJJbnRlcmFjdGlvbikgewpAQCAtODUzLDcgKzg1Myw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1lcmdlKFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCogY3VycmVuCiAgICAgICAgIGlmICghb3RoZXIubW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvblRpbWUpCiAgICAgICAgICAgICBzZXRVc2VySW50ZXJhY3Rpb24ob3RoZXIucmVnaXN0
cmFibGVEb21haW4sIGZhbHNlLCB7IH0pOwogICAgIH0gZWxzZQotICAgICAgICBzZXRVc2VySW50
ZXJhY3Rpb24ob3RoZXIucmVnaXN0cmFibGVEb21haW4sIHRydWUsIHN0ZDo6bWF4KFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhjdXJyZW50TW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIG90aGVy
Lm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKSk7CisgICAgICAgIHNldFVzZXJJbnRlcmFj
dGlvbihvdGhlci5yZWdpc3RyYWJsZURvbWFpbiwgdHJ1ZSwgc3RkOjptYXgoY3VycmVudE1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIG90aGVyLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1l
KSk7CiAKICAgICBpZiAob3RoZXIuZ3JhbmRmYXRoZXJlZCAmJiAhY3VycmVudEdyYW5kZmF0aGVy
ZWQpCiAgICAgICAgIHNldEdyYW5kZmF0aGVyZWQob3RoZXIucmVnaXN0cmFibGVEb21haW4sIHRy
dWUpOwpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICBp
ZiAoIWhhZFVzZXJJbnRlcmFjdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAg
IFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHNjb3BlZFN0YXRlbWVudC0+Y29sdW1uRG91YmxlKDEpKTsKKyAgICBhdXRvIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWUoU2Vjb25kcyhzY29wZWRTdGF0
ZW1lbnQtPmNvbHVtbkRvdWJsZSgxKSkpOwogCiAgICAgaWYgKGhhc1N0YXRpc3RpY3NFeHBpcmVk
KG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLCBvcGVyYXRpbmdEYXRlc1dpbmRvdykpIHsK
ICAgICAgICAgLy8gRHJvcCBwcml2YWN5IHNlbnNpdGl2ZSBkYXRhIGJlY2F1c2Ugd2Ugbm8gbG9u
Z2VyIG5lZWQgaXQuCkBAIC0yMjAyLDcgKzIyMDIsNyBAQCBWZWN0b3I8UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OkRvbWFpbkRhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YQogICAgIHdoaWxlIChzdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAg
IHJlc3VsdHMuYXBwZW5kKHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRlbWVudC0+Y29sdW1u
SW50KDApKQogICAgICAgICAgICAgLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRl
RnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHN0YXRlbWVudC0+Y29sdW1uVGV4dCgxKSkKLSAg
ICAgICAgICAgICwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRlbWVudC0+Y29sdW1uRG91
YmxlKDIpKQorICAgICAgICAgICAgLCBXYWxsVGltZShTZWNvbmRzKHN0YXRlbWVudC0+Y29sdW1u
RG91YmxlKDIpKSkKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoMykgPyB0cnVl
IDogZmFsc2UKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNCkgPyB0cnVlIDog
ZmFsc2UKICAgICAgICAgICAgICwgc3RhdGVtZW50LT5jb2x1bW5JbnQoNSkgPyB0cnVlIDogZmFs
c2UKQEAgLTI0MDQsNyArMjQwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluCiAgICAgfQog
fQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vl
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNlY29uZHMpCit2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjQxNiw3ICsyNDE2LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1cGRhdGVM
YXN0U2Vlbihkb21haW4sIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzLnNlY29uZHMo
KSkpOworICAgIHVwZGF0ZUxhc3RTZWVuKGRvbWFpbiwgbGFzdFNlZW4pOwogfQogCiB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQpAQCAtMjgxMyw3ICsyODEzLDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZFN0YXRp
c3RpY0ZvclRlc3RpbmcoY29uc3QKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IG51bWJl
ck9mT3BlcmF0aW5nRGF5c1Bhc3NlZDsgaSsrKSB7CiAgICAgICAgIGRvdWJsZSBkYXlzVG9TdWJ0
cmFjdCA9IFNlY29uZHM6OmZyb21Ib3VycygyNCAqIGkpLnZhbHVlKCk7CiAgICAgICAgIGRheXNB
Z29JblNlY29uZHMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
IC0gZGF5c1RvU3VidHJhY3Q7Ci0gICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0gT3BlcmF0aW5n
RGF0ZTo6ZnJvbVdhbGxUaW1lKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXlzQWdvSW5TZWNv
bmRzKSk7CisgICAgICAgIGF1dG8gZGF0ZVRvSW5zZXJ0ID0gT3BlcmF0aW5nRGF0ZTo6ZnJvbVdh
bGxUaW1lKFdhbGxUaW1lKFNlY29uZHMoZGF5c0Fnb0luU2Vjb25kcykpKTsKIAogICAgICAgICBh
dXRvIGluc2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0
ZW1lbnQoIklOU0VSVCBPUiBJR05PUkUgSU5UTyBPcGVyYXRpbmdEYXRlcyAoeWVhciwgbW9udGgs
IG1vbnRoRGF5KSBTRUxFQ1QgPywgPywgPzsiX3MpOwogICAgICAgICBpZiAoIWluc2VydE9wZXJh
dGluZ0RhdGVTdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggNjkwMTg2ZjIxNDYwOWMyOTA4MjJiMTViN2NjZjZhZDk2
NDk2NzIxOS4uYWZiMjMwZWU2ZmZhY2ZlZTQyMjVjZGM5NTA3Yzg1YWRjMDEwZTEyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAg
LTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3Zl
cnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldExh
c3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxUaW1lKSBvdmVy
cmlkZTsKICAgICBib29sIGlzQ29ycmVjdFN1YlN0YXRpc3RpY3NDb3VudChjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJik7CiAgICAgdm9pZCByZXNvdXJjZVRv
U3RyaW5nKFN0cmluZ0J1aWxkZXImLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBTZWNvbmRz
IGdldE1vc3RSZWNlbnRseVVwZGF0ZWRUaW1lc3RhbXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDU2ZjY3YmYwODhkYzYwMDIyM2Y4YmZh
MzBmZGY3ODQ4ZTBiZWVkMjkuLjA1NGE1OTFkY2QxOGQzNmQ5MTljZGQ4ZDZhMzI5MDUyNGU4OTdk
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
LmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFdhbGxUaW1l
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKSBvdmVycmlkZTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGFsbERv
bWFpbnMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JU
ZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRp
bmdEYXlzUGFzc2VkLCBib29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZv
ckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAxYTNiMDhiZjczZTE0
ZmM3Y2UwYTY1N2RlNTgzZjlmMjJkNGFhODIyLi43MTc3YWE2NTExNWRjNzQwZWViNDg4ODViNTM4
YzlhZGZlMTQ2MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
CkBAIC0xODMsNyArMTgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhclVzZXJJ
bnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgPSAwOwogCi0gICAg
dmlydHVhbCB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBwcmltYXJ5
RG9tYWluLCBTZWNvbmRzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZWVuKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBwcmltYXJ5RG9tYWluLCBXYWxsVGltZSkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAKaW5kZXggNzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEyMTNkODViNjBiNTM3MTgxZC4uOThhZDAy
NWVmYTcwZmQxZWNkMmIxZGZjZmY5N2Y2Zjk0YjExN2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTgxNywyNyArODE3LDI3IEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb25F
cGhlbWVyYWwoY29uc3QgUmVnaXN0CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9kb21haW5zV2l0
aEVwaGVtZXJhbFVzZXJJbnRlcmFjdGlvbi5jb250YWlucyhkb21haW4pKTsKIH0KIAotdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW4sIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFdhbGxU
aW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFz
ayhbdGhpcywgZG9tYWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCBzZWNvbmRzLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAg
IHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIGxhc3RTZWVu
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewogICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCi0gICAgICAgICAgICBtX3N0YXRp
c3RpY3NTdG9yZS0+c2V0TGFzdFNlZW4oZG9tYWluLCBzZWNvbmRzKTsKKyAgICAgICAgICAgIG1f
c3RhdGlzdGljc1N0b3JlLT5zZXRMYXN0U2Vlbihkb21haW4sIGxhc3RTZWVuKTsKICAgICAgICAg
cG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CiAK
LXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRl
c3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29u
ZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wg
aXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1Jl
bW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3Rp
bmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGlt
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBwb3N0VGFzayhbdGhpcywgZG9t
YWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbjEgPSB0b3BGcmFtZURv
bWFpbjEuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluMiA9IHRvcEZyYW1lRG9tYWluMi5p
c29sYXRlZENvcHkoKSwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFs
ZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9y
ZSkgewogICAgICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBzdGF0aXN0aWMoZG9tYWlu
KTsKLSAgICAgICAgICAgIHN0YXRpc3RpYy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhsYXN0U2Vlbi5zZWNvbmRzKCkpOworICAgICAgICAgICAgc3RhdGlzdGljLmxhc3RTZWVu
ID0gbGFzdFNlZW47CiAgICAgICAgICAgICBzdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uID0g
aGFkVXNlckludGVyYWN0aW9uOwotICAgICAgICAgICAgc3RhdGlzdGljLm1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24uc2Vjb25kcygpKTsKKyAgICAgICAgICAgIHN0YXRpc3RpYy5tb3N0UmVjZW50
VXNlckludGVyYWN0aW9uVGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb247CiAgICAgICAg
ICAgICBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCA9IGlzR3JhbmRmYXRoZXJlZDsKICAgICAgICAg
ICAgIHN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlID0gaXNQcmV2YWxlbnQ7CiAgICAgICAg
ICAgICBzdGF0aXN0aWMuaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgPSBpc1ZlcnlQcmV2YWxlbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggNjYx
YjE1NjNlYzY0YjY2ZTc4ZjFmOGQ1NTRjNmQ5ZGYzNzMxYWU2Yi4uNGExNGZlMjljN2MzYWM2NTU3
NjBkYTU1NzVkMjYwODc0OWU4OTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaApAQCAtMTYwLDggKzE2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGhh
c1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIGJvb2wg
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdG9yYWdlQWNj
ZXNzU2NvcGUsICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVz
dWx0KT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVE
b21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25k
cyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldExhc3RTZWVu
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9v
bCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZh
bGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRQ
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9EYXRhYmFzZVV0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcAppbmRl
eCA2ZTMwMjU3MTc4MDU1ZjcxMDBkYTUyZGI5MGNiNGJhMTBlMWJlY2M4Li41YzY1OWMxYmRhY2Qx
YmYzZDA0OTEyYzllN2M4OGVkNzQ2ZDlhY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0RhdGFiYXNlVXRpbGl0aWVzLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IERhdGFiYXNlVXRpbGl0aWVzOjpidWlsZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50CiAgICAgaWYgKGJ1bmRsZUlELmlzRW1wdHkoKSkKICAgICAg
ICAgYnVuZGxlSUQgPSBzYWZhcmlCdW5kbGVJRDsKIAotICAgIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50IGF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VJRChzb3VyY2VJRCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VTaXRlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9t
UmVnaXN0cmFibGVEb21haW5TdHJpbmcoc291cmNlU2l0ZURvbWFpbikpLCBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUoV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0
cmluZyhkZXN0aW5hdGlvblNpdGVEb21haW4pKSwgYnVuZGxlSUQsIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyh0aW1lT2ZBZENsaWNrKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyk7CisgICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZVNpdGUoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdp
c3RyYWJsZURvbWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZShXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5n
KGRlc3RpbmF0aW9uU2l0ZURvbWFpbikpLCBidW5kbGVJRCwgV2FsbFRpbWUoU2Vjb25kcyh0aW1l
T2ZBZENsaWNrKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
bkVwaGVtZXJhbDo6Tm8pOwogCiAgICAgLy8gVGhlc2UgaW5kaWNlcyBhcmUgemVyby1iYXNlZDog
aHR0cHM6Ly93d3cuc3FsaXRlLm9yZy9jM3JlZi9jb2x1bW5fYmxvYi5odG1sICJUaGUgbGVmdG1v
c3QgY29sdW1uIG9mIHRoZSByZXN1bHQgc2V0IGhhcyB0aGUgaW5kZXggMCIuCiAgICAgaWYgKGF0
dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6
QXR0cmlidXRlZCkgewpAQCAtMTg1LDEwICsxODUsMTAgQEAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgRGF0YWJhc2VVdGlsaXRpZXM6OmJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQKIAogICAgICAgICAvLyBBIHZhbHVlIG9mIDAuMCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVwb3J0
IGhhcyBiZWVuIHNlbnQgdG8gdGhlIHJlc3BlY3RpdmUgc2l0ZS4KICAgICAgICAgaWYgKHNvdXJj
ZUVhcmxpZXN0VGltZVRvU2VuZFZhbHVlID4gMC4wKQotICAgICAgICAgICAgc291cmNlRWFybGll
c3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHNvdXJjZUVhcmxpZXN0VGlt
ZVRvU2VuZFZhbHVlKTsKKyAgICAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IFdh
bGxUaW1lKFNlY29uZHMoc291cmNlRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpKTsKIAogICAgICAg
ICBpZiAoZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmRWYWx1ZSA+IDAuMCkKLSAgICAgICAg
ICAgIGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kVmFsdWUpOworICAgICAgICAgICAgZGVz
dGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZShTZWNvbmRzKGRlc3RpbmF0aW9u
RWFybGllc3RUaW1lVG9TZW5kVmFsdWUpKTsKIAogICAgICAgICBhdHRyaWJ1dGlvbi5zZXRUaW1l
c1RvU2VuZCh7IHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCwgZGVzdGluYXRpb25FYXJsaWVzdFRp
bWVUb1NlbmQgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCA0NzJjOGI1N2MzMmMzNWY4OWJlMGIxNzgxZmJkZWM4Y2Yz
ZGFjOGJiLi41NDY4YmIyNDJiY2FhN2YzM2MwNTE0YmExOGI2ZTliM2ZkN2ExOWRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtOTM5
LDExICs5MzksMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KIH0KICAgICAKICAgICAKLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNz
aW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRMYXN0
U2Vlbihkb21haW4sIHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldExhc3RTZWVuKGRvbWFpbiwgbGFzdFNl
ZW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9IGVsc2UgewpAQCAtOTY1LDcgKzk2NSw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGludCBkb21hCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluMiwgV2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGlt
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3
b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDlkMzJkNTc5NzNhMGViYWMxZDA3
MTc1YzZkZjg3OWQ0NjZjZTY4YTguLmE2ZmM4MzQxOTM3MzRlZDM2YWIwYTJmNjYwNmFhMWNkYTk5
ZmRhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTI0Niw5ICsyNDYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJh
c2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
UEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQs
IGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3Qg
VG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9v
bCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50
LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9t
YWluMSwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgV2FsbFRpbWUgbGFz
dFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBp
c1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVuc2lnbmVkIG51
bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzMmFiMzg0MGI2NmE3Yzc4ZDUzYTM1
NDU5MTIwZGRkYjJjZjRlOWJjLi5jMTU5MTQ4MGY3YzBhNjk2N2Q5ZDQzZWJiMmI1ZDVmZmRjYTcz
MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTg4LDggKzg4LDggQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIElzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4pIC0+IChib29sIGlzUHJldmFsZW50KSBBc3luYwogICAgIElzVmVyeVByZXZhbGVudFJlc291
cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc1ZlcnlQcmV2YWxlbnQpIEFzeW5jCiAgICAgU2V0QWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0TGFzdFNlZW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJj
ZURvbWFpbiwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIE1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vj
b25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQs
IGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgp
IEFzeW5jCisgICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pIC0+
ICgpIEFzeW5jCisgICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdWlu
dDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwogICAgIEluc2VydEV4cGlyZWRT
dGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5n
RGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JB
bGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKICAg
ICBTZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldFBy
ZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZp
bGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVGaWxlU3lzdGVtLmNwcAppbmRleCBjODc1YzkzNjRlZTA1MzUyNmQzZjllN2MzNjI3NWQ5
MzE5YzVjMTBlLi43YmE2YjJhNGZiMTk4MTEzNzM1YWZmYTQ1YTczNzZjODhlNWM3ZjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZp
bGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRmlsZVRpbWVzIGZpbGVU
aW1lcyhjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgc3RydWN0IHN0YXQgZmlsZUluZm87CiAgICAg
aWYgKHN0YXQoRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEo
KSwgJmZpbGVJbmZvKSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4geyBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1lKSwgV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGZpbGVJbmZvLnN0X210aW1lKSB9OworICAgIHJldHVybiB7IFdhbGxUaW1lKFNl
Y29uZHMoZmlsZUluZm8uc3RfYmlydGh0aW1lKSksIFdhbGxUaW1lKFNlY29uZHMoZmlsZUluZm8u
c3RfbXRpbWUpKSB9OwogI2VsaWYgVVNFKFNPVVApCiAgICAgLy8gVGhlcmUncyBubyBzdF9iaXJ0
aHRpbWUgaW4gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBsaWtlIExpbnV4LCBzbyB3ZSB1c2UgeGF0
dHJzIHRvIHNldC9nZXQgdGhlIGNyZWF0aW9uIHRpbWUuCiAgICAgR1JlZlB0cjxHRmlsZT4gZmls
ZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihwYXRoKS5kYXRhKCkpKTsKQEAgLTc5LDggKzc5LDEwIEBAIEZpbGVUaW1l
cyBmaWxlVGltZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIGNvbnN0IGNoYXIqIGJpcnRodGlt
ZVN0cmluZyA9IGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfc3RyaW5nKGZpbGVJbmZvLmdldCgp
LCAieGF0dHI6OmJpcnRodGltZSIpOwogICAgIGlmICghYmlydGh0aW1lU3RyaW5nKQogICAgICAg
ICByZXR1cm4geyB9OwotICAgIHJldHVybiB7IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnX2Fz
Y2lpX3N0cnRvdWxsKGJpcnRodGltZVN0cmluZywgbnVsbHB0ciwgMTApKSwKLSAgICAgICAgV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGdfZmlsZV9pbmZvX2dldF9hdHRyaWJ1dGVfdWludDY0KGZp
bGVJbmZvLmdldCgpLCAidGltZTo6bW9kaWZpZWQiKSkgfTsKKyAgICByZXR1cm4geworICAgICAg
ICBXYWxsVGltZShTZWNvbmRzKGdfYXNjaWlfc3RydG91bGwoYmlydGh0aW1lU3RyaW5nLCBudWxs
cHRyLCAxMCkpKSwKKyAgICAgICAgV2FsbFRpbWUoU2Vjb25kcyhnX2ZpbGVfaW5mb19nZXRfYXR0
cmlidXRlX3VpbnQ2NChmaWxlSW5mby5nZXQoKSwgInRpbWU6Om1vZGlmaWVkIikpKSwKKyAgICB9
OwogI2VsaWYgT1MoV0lORE9XUykKICAgICBhdXRvIGNyZWF0ZVRpbWUgPSBGaWxlU3lzdGVtOjpm
aWxlQ3JlYXRpb25UaW1lKHBhdGgpOwogICAgIGF1dG8gbW9kaWZ5VGltZSA9IEZpbGVTeXN0ZW06
OmZpbGVNb2RpZmljYXRpb25UaW1lKHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGQ5M2Fj
OWViMmYxMDQ1ZTEzZTU3MjVhNDdmMGU3NjkxNTcyYjZjNDEuLjE1YmNiYjkwMjMwY2IwODQ5MGQ3
NWVhZWJhZDc3OTkwNzQ5NmE3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTgzNiw3ICs4MzYs
NyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNV
UkxTZXNzaW9uVGFzayAqKXRhc2sgZGlkRmluaQogCiAgICAgICAgIGF1dG8gZGF0ZVRvTW9ub3Rv
bmljVGltZSA9IFtdIChOU0RhdGUgKmRhdGUpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGludGVy
dmFsID0gZGF0ZS50aW1lSW50ZXJ2YWxTaW5jZTE5NzApCi0gICAgICAgICAgICAgICAgcmV0dXJu
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhpbnRlcnZhbCkuYXBwcm94aW1hdGVNb25vdG9uaWNU
aW1lKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdhbGxUaW1lKFNlY29uZHMoaW50ZXJ2YWwp
KS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKTsKICAgICAgICAgICAgIHJldHVybiBNb25vdG9u
aWNUaW1lIHsgfTsKICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGIyMGFhNTFh
MGY4NGY5NWFkOGYwYjc4MDdkNzQxNzFhZGM1MjA1YTMuLmVjYjdlOWU1MGRlN2FhNDljMTgzZDdk
YzQ0ODkwMDU0NTRiMTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTI3Myw4ICsyNzMsNyBA
QCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCgpCiAjZWxzZQogICAgICAg
ICBpZiAobV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCAmJiAhbV9uZXR3b3JrTG9hZE1l
dHJpY3MucmVzcG9uc2VFbmQpIHsKICAgICAgICAgICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21l
c3NhZ2VfZ2V0X21ldHJpY3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgICAgICAgICBhdXRv
IHJlc3BvbnNlRW5kID0gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0
cmljc19nZXRfcmVzcG9uc2VfZW5kKG1ldHJpY3MpKTsKLSAgICAgICAgICAgIG1fbmV0d29ya0xv
YWRNZXRyaWNzLnJlc3BvbnNlRW5kID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMocmVz
cG9uc2VFbmQuc2Vjb25kcygpKTsKKyAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJl
c3BvbnNlRW5kID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBf
bWVzc2FnZV9tZXRyaWNzX2dldF9yZXNwb25zZV9lbmQobWV0cmljcykpKTsKICAgICAgICAgICAg
IG1fbmV0d29ya0xvYWRNZXRyaWNzLm1hcmtDb21wbGV0ZSgpOwogICAgICAgICB9CiAjZW5kaWYK
QEAgLTMyMSw3ICszMjAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlc3VtZSgpCiAg
ICAgICAgICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25p
Y1RpbWU6Om5vdygpOwogI2Vsc2UKICAgICAgICAgICAgICAgICBhdXRvKiBtZXRyaWNzID0gc291
cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1lc3NhZ2UuZ2V0KCkpOwotICAgICAgICAgICAg
ICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25vdG9uaWNUaW1lOjpmcm9t
UmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNz
X2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAgICAgICAgICAgICAgICBt
X25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpm
cm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRy
aWNzKSkpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgaWYgKCFtX25ldHdvcmtMb2FkTWV0cmlj
cy5yZWRpcmVjdFN0YXJ0KQogICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmlj
cy5yZWRpcmVjdFN0YXJ0ID0gbV9uZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydDsKQEAgLTEy
MzIsOCArMTIzMSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygp
CiAKICNpZiAhVVNFKFNPVVAyKQogICAgIGF1dG8qIG1ldHJpY3MgPSBzb3VwX21lc3NhZ2VfZ2V0
X21ldHJpY3MobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgYXV0byByZXNwb25zZVN0YXJ0ID0g
U2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVzcG9u
c2Vfc3RhcnQobWV0cmljcykpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlU3Rh
cnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhyZXNwb25zZVN0YXJ0LnNlY29uZHMo
KSk7CisgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VTdGFydCA9IE1vbm90b25pY1Rp
bWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVz
cG9uc2Vfc3RhcnQobWV0cmljcykpKTsKICNlbmRpZgogCiAgICAgLy8gU291cCBhZGRzIG1vcmUg
aGVhZGVycyB0byB0aGUgcmVxdWVzdCBhZnRlciBzdGFydGluZyBzaWduYWwgaXMgZW1pdHRlZCwg
YW5kIGdvdC1oZWFkZXJzCkBAIC0xNjExLDIyICsxNjA5LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrU291cDo6ZGlkU3RhcnRSZXF1ZXN0KCkKICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Mu
c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gV2ViQ29yZTo6cmV1c2VkVExTQ29ubmVjdGlvblNlbnRp
bmVsOwogI2Vsc2UKICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNz
KG1fc291cE1lc3NhZ2UuZ2V0KCkpOwotICAgIGF1dG8gZG9tYWluTG9va3VwU3RhcnQgPSBTZWNv
bmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9kbnNfc3RhcnQo
bWV0cmljcykpOwotICAgIGF1dG8gZG9tYWluTG9va3VwRW5kID0gU2Vjb25kczo6ZnJvbU1pY3Jv
c2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfZG5zX2VuZChtZXRyaWNzKSk7Ci0gICAg
YXV0byBjb25uZWN0U3RhcnQgPSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2Fn
ZV9tZXRyaWNzX2dldF9jb25uZWN0X3N0YXJ0KG1ldHJpY3MpKTsKLSAgICBhdXRvIGNvbm5lY3RF
bmQgPSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9j
b25uZWN0X2VuZChtZXRyaWNzKSk7Ci0gICAgYXV0byBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBT
ZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF90bHNfc3Rh
cnQobWV0cmljcykpOwotICAgIGF1dG8gcmVxdWVzdFN0YXJ0ID0gU2Vjb25kczo6ZnJvbU1pY3Jv
c2Vjb25kcyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfcmVxdWVzdF9zdGFydChtZXRyaWNzKSk7
CisgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MuZG9tYWluTG9va3VwU3RhcnQgPSBNb25vdG9uaWNU
aW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Ru
c19zdGFydChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1
cEVuZCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhzb3VwX21lc3Nh
Z2VfbWV0cmljc19nZXRfZG5zX2VuZChtZXRyaWNzKSkpOworICAgIG1fbmV0d29ya0xvYWRNZXRy
aWNzLmNvbm5lY3RTdGFydCA9IE1vbm90b25pY1RpbWUoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25k
cyhzb3VwX21lc3NhZ2VfbWV0cmljc19nZXRfY29ubmVjdF9zdGFydChtZXRyaWNzKSkpOworICAg
IG1fbmV0d29ya0xvYWRNZXRyaWNzLmNvbm5lY3RFbmQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6
OmZyb21NaWNyb3NlY29uZHMoc291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X2Nvbm5lY3RfZW5kKG1l
dHJpY3MpKSk7CisgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlvblN0YXJ0
ID0gTW9ub3RvbmljVGltZShTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9t
ZXRyaWNzX2dldF90bHNfc3RhcnQobWV0cmljcykpKTsKKyAgICBtX25ldHdvcmtMb2FkTWV0cmlj
cy5yZXF1ZXN0U3RhcnQgPSBNb25vdG9uaWNUaW1lKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMo
c291cF9tZXNzYWdlX21ldHJpY3NfZ2V0X3JlcXVlc3Rfc3RhcnQobWV0cmljcykpKTsKIAotICAg
IG1fbmV0d29ya0xvYWRNZXRyaWNzLmRvbWFpbkxvb2t1cFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6
ZnJvbVJhd1NlY29uZHMoZG9tYWluTG9va3VwU3RhcnQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdv
cmtMb2FkTWV0cmljcy5kb21haW5Mb29rdXBFbmQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vj
b25kcyhkb21haW5Mb29rdXBFbmQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmlj
cy5jb25uZWN0U3RhcnQgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhjb25uZWN0U3Rh
cnQuc2Vjb25kcygpKTsKLSAgICBtX25ldHdvcmtMb2FkTWV0cmljcy5jb25uZWN0RW5kID0gTW9u
b3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoY29ubmVjdEVuZC5zZWNvbmRzKCkpOwotICAgIGlm
ICghc2VjdXJlQ29ubmVjdGlvblN0YXJ0ICYmIG1fY3VycmVudFJlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSkKKyAgICBpZiAoIW1fbmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5l
Y3Rpb25TdGFydCAmJiBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikp
CiAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFdl
YkNvcmU6OnJldXNlZFRMU0Nvbm5lY3Rpb25TZW50aW5lbDsKLSAgICBlbHNlCi0gICAgICAgIG1f
bmV0d29ya0xvYWRNZXRyaWNzLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IE1vbm90b25pY1RpbWU6
OmZyb21SYXdTZWNvbmRzKHNlY3VyZUNvbm5lY3Rpb25TdGFydC5zZWNvbmRzKCkpOwotICAgIG1f
bmV0d29ya0xvYWRNZXRyaWNzLnJlcXVlc3RTdGFydCA9IE1vbm90b25pY1RpbWU6OmZyb21SYXdT
ZWNvbmRzKHJlcXVlc3RTdGFydC5zZWNvbmRzKCkpOwogI2VuZGlmCiB9CiAKQEAgLTE2NDgsNyAr
MTYzOSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVzdGFydCgpCiAgICAgbV9u
ZXR3b3JrTG9hZE1ldHJpY3MuZmV0Y2hTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogI2Vs
c2UKICAgICBhdXRvKiBtZXRyaWNzID0gc291cF9tZXNzYWdlX2dldF9tZXRyaWNzKG1fc291cE1l
c3NhZ2UuZ2V0KCkpOwotICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzLmZldGNoU3RhcnQgPSBNb25v
dG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHNvdXBf
bWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydChtZXRyaWNzKSkuc2Vjb25kcygpKTsKKyAg
ICBtX25ldHdvcmtMb2FkTWV0cmljcy5mZXRjaFN0YXJ0ID0gTW9ub3RvbmljVGltZShTZWNvbmRz
Ojpmcm9tTWljcm9zZWNvbmRzKHNvdXBfbWVzc2FnZV9tZXRyaWNzX2dldF9mZXRjaF9zdGFydCht
ZXRyaWNzKSkpOwogICAgIG1fY3VycmVudFJlcXVlc3QudXBkYXRlU291cE1lc3NhZ2VCb2R5KG1f
c291cE1lc3NhZ2UuZ2V0KCksIG1fc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkpOwogI2VuZGlmCiAg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MucmVkaXJlY3RTdGFydCA9IG1fbmV0d29ya0xvYWRNZXRy
aWNzLmZldGNoU3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5jcHAKaW5kZXggZTFlNmIxNjNjMDIwMDExNmZmZjU3NmIxNTllMWI3OGNiY2FjYmQ3Zi4u
Y2E4MWRiN2M1ZGY0NTNhN2ViNjY3ODRlYWUwZDhjNDZiYTk2ODZiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzYsNDAgKzM2LDYgQEAK
IAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFy
Z3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2Fs
bFRpbWUmIHRpbWUpCi17Ci0gICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCku
dmFsdWUoKTsKLX0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNv
ZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci10ZW1wbGF0ZQotdm9pZCBB
cmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyPihX
ZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci0KLVdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVlOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0aW1lID0g
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlv
bmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7Ci0gICAgZGVjb2RlciA+
PiB0aW1lOwotICAgIGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKLX0KLXRlbXBsYXRlCi1z
dGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPERl
Y29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1
bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJL
aXQ6OkRhZW1vbjo6RGVjb2RlciYpOwotCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQog
ewogICAgIGVuY29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGZiZjE1ZjkyM2ZiZGY4NjBhMGU2MTEz
NTk0OTQ5Zjk1NGIyOTI0NmIuLmFmZTYxODM4MzdhMTA2N2VlZDc5NGMxYjNkNTZjODRjMWU2M2Mx
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAt
MzMsMTEgKzMzLDkgQEAKICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNs
dWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1
ZGUgPHd0Zi9TSEExLmg+CiAjaW5jbHVkZSA8d3RmL1VuZXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIElQQyB7CiAKQEAgLTc5MywxNCArNzkxLDYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dmFy
aWFudDxUeXBlcy4uLj4+IHsKICAgICAgICAgcmV0dXJuIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4o
VHlwZXMpIC0gMSwgVHlwZXMuLi4+OjpkZWNvZGUoZGVjb2RlciwgKmkpOwogICAgIH0KIH07Ci0g
ICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPiB7Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdhbGxUaW1lJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2FsbFRpbWUmKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBkZWNvZGUoRGVjb2RlciYpOwot
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPiB7CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA2NDk4MmJj
NDgxMDJhNGFkYjIwYTdlNjBlMjFiZDQ5MmQ2NTMzNzRjLi43NGJiOWQxZDYzMzRmYWQzYWFmOGQ4
NGRlNzFjZmY5ODcxN2JlMDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTI2MzAsMTkgKzI2MzAsMTkgQEAgc3RkOjpvcHRpb25hbDxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M+OjpkZWMKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBzdGF0aXN0aWNzLnJl
Z2lzdHJhYmxlRG9tYWluID0gV1RGTW92ZSgqcmVnaXN0cmFibGVEb21haW4pOwogCi0gICAgZG91
YmxlIGxhc3RTZWVuVGltZUFzRG91YmxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdFNl
ZW5UaW1lQXNEb3VibGUpKQorICAgIFdhbGxUaW1lIGxhc3RTZWVuVGltZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGxhc3RTZWVuVGltZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0gICAgc3RhdGlzdGljcy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhsYXN0
U2VlblRpbWVBc0RvdWJsZSk7CisgICAgc3RhdGlzdGljcy5sYXN0U2VlbiA9IGxhc3RTZWVuVGlt
ZTsKICAgICAKICAgICAvLyBVc2VyIGludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzdGF0aXN0aWNzLmhhZFVzZXJJbnRlcmFjdGlvbikpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJs
ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1l
QXNEb3VibGUpKQorICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHN0YXRpc3RpY3MubW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZSk7CisgICAgc3RhdGlzdGljcy5tb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uVGltZSA9IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLmdyYW5kZmF0aGVyZWQpKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0
aXZlV2ViVG91Y2hFdmVudElPUy5tbQppbmRleCAzMjNjOWVjMDMyNTVhY2M5ZWM2YmRhYTNmMDU1
YzZkMjAyMjdkYTIxLi5jMTE5OTJiMGI1YjNiMjE3NDBiZjk3MjRlNmRiYmY5NzY2NDRjMDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElP
Uy5tbQpAQCAtMTIyLDcgKzEyMiw3IEBAIE5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRv
dWNoRXZlbnQoY29uc3QgX1VJV2ViVG91Y2hFdmVudCogZXZlbnQsIFVJS2V5TW9kCiAgICAgOiBX
ZWJUb3VjaEV2ZW50KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JVSVdlYlRvdWNoRXZlbnRUeXBl
KGV2ZW50LT50eXBlKSwKICAgICAgICAgd2ViRXZlbnRNb2RpZmllckZsYWdzKGZsYWdzKSwKLSAg
ICAgICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApLAorICAgICAg
ICBXYWxsVGltZShTZWNvbmRzKGV2ZW50LT50aW1lc3RhbXApKSwKICAgICAgICAgZXh0cmFjdFdl
YlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxv
Y2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9F
VkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BP
VEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0
b3J5Lm1tCmluZGV4IDVhZDM1NjU2MmVkOGJiOTk3OWJkZWRhMjMyMjE5N2JmOGE5YjkyZmUuLmU5
YmVlYTYwOTZjNmY0N2IxZWQ2YjAzOTA4YmI5NzA5ZWQ4ZmQxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtOTEsNyArOTEsNyBAQCBX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgIGJvb2wgaXNLZXlwYWQgPSBmYWxzZTsKICAgICBi
b29sIGlzU3lzdGVtS2V5ID0gZmFsc2U7CiAgICAgYXV0byBtb2RpZmllcnMgPSBtb2RpZmllcnNG
b3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFtcDsK
KyAgICBhdXRvIHRpbWVzdGFtcCA9IFdhbGxUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSk7
CiAKICAgICBpZiAod2luZG93c1ZpcnR1YWxLZXlDb2RlID09ICdccicpIHsKICAgICAgICAgdGV4
dCA9ICJcciJfczsKQEAgLTExMSw3ICsxMTEsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQg
V2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgog
ICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktp
dDo6V2ViS2V5Ym9hcmRFdmVudCB7IHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNv
ZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtl
eUNvZGUsIG1hY0NoYXJDb2RlLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYXV0b1JlcGVhdCwgaXNL
ZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0
aW1lc3RhbXApIH07CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCB7IHR5cGUs
IHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2RlLCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmll
cnMsIHRpbWVzdGFtcCB9OwogfQogCiBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgV2ViSU9TRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KDo6V2ViRXZlbnQgKmV2ZW50KQpAQCAtMTI3LDkg
KzEyNyw5IEBAIFdlYktpdDo6V2ViTW91c2VFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYk1vdXNlRXZlbnQoOjpXZWJFdmVudCAqZXZlbnQpCiAgICAgZmxvYXQgZGVsdGFZID0gMDsK
ICAgICBmbG9hdCBkZWx0YVogPSAwOwogICAgIGludCBjbGlja0NvdW50ID0gMDsKLSAgICBkb3Vi
bGUgdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgIGF1dG8gdGltZXN0YW1wID0gV2Fs
bFRpbWUoU2Vjb25kcyhldmVudC50aW1lc3RhbXApKTsKIAotICAgIHJldHVybiBXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBidXR0b25zLCBwb3NpdGlvbiwgcG9zaXRpb24sIGRl
bHRhWCwgZGVsdGFZLCBkZWx0YVosIGNsaWNrQ291bnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2
ZW50OjpNb2RpZmllcj4geyB9LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZXN0YW1wKSk7
CisgICAgcmV0dXJuIFdlYktpdDo6V2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIGJ1dHRvbnMs
IHBvc2l0aW9uLCBwb3NpdGlvbiwgZGVsdGFYLCBkZWx0YVksIGRlbHRhWiwgY2xpY2tDb3VudCwg
T3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB7IH0sIHRpbWVzdGFtcCk7CiB9
CiAKICNpZiBIQVZFKFVJU0NST0xMVklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRM
SU5HKQpAQCAtMTYxLDcgKzE2MSw3IEBAIFdlYktpdDo6V2ViV2hlZWxFdmVudCBXZWJJT1NFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoVUlTY3JvbGxFdmVudCAqZXZlCiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIGRlbHRhKGRlbHRhVmVjdG9yLmR4LCBkZWx0YVZlY3Rvci5keSk7CiAg
ICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3MgPSBkZWx0YTsKICAgICB3aGVlbFRpY2tz
LnNjYWxlKDEuIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSkpOwotICAgIGF1dG8gdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJv
bVJhd1NlY29uZHMoZXZlbnQudGltZXN0YW1wKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7CisgICAg
YXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lKFNlY29uZHMoZXZlbnQudGltZXN0YW1wKSku
YXBwcm94aW1hdGVXYWxsVGltZSgpOwogICAgIHJldHVybiB7CiAgICAgICAgIFdlYktpdDo6V2Vi
RXZlbnQ6OldoZWVsLAogICAgICAgICBzY3JvbGxMb2NhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4
IDhkZmE4OGM2NjM0ZWUwMGYwMjM5ZDg1ZThiNTA1ZDlkOTVhMTNkOTguLmMxMTFlNzEyNjk0YWQ4
MzE4NWYxMjJiYjVlNjAzY2QyNzRlZjU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0
Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TGFzdFNlZW4oVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4dCwgY29t
cGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRM
YXN0U2VlbihVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFdhbGxU
aW1lKFNlY29uZHMoc2Vjb25kcykpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMjA2
LDcgKzIwNiw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVu
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsCiB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEs
IFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5z
aWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgp
LCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lRG9tYWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1w
bCh0b3BGcmFtZURvbWFpbjIpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBsYXN0U2VlbiB9LCBoYWRV
c2VySW50ZXJhY3Rpb24sIFNlY29uZHMgeyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIH0sIGlz
R3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNS
ZW1vdmVkLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRv
cEZyYW1lRG9tYWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZURvbWFpbjIpLT5zdHJpbmcoKSksIFdhbGxUaW1lKFNlY29uZHMobGFzdFNlZW4pKSwgaGFk
VXNlckludGVyYWN0aW9uLCBXYWxsVGltZShTZWNvbmRzKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24pKSwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRh
UmVjb3Jkc1JlbW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC01NDksNyArNTQ5
LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBl
cnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3UKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0
aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAg
ICAgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMgPSBXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKDApLCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5yZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWUoKSwgW2NvbnRleHQs
IGNhbGxiYWNrXSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwogfQpAQCAt
ODIwLDcgKzgyMCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlCiB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJz
aXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICBPcHRpb25TZXQ8V2ViS2l0
OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHM7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVm
KS0+cmVtb3ZlRGF0YShkYXRhVHlwZXMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygwKSwgW2Nv
bnRleHQsIGNhbGxiYWNrXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVt
b3ZlRGF0YShkYXRhVHlwZXMsIFdhbGxUaW1lKCksIFtjb250ZXh0LCBjYWxsYmFja10gewogICAg
ICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDdl
ZjA2OTUwYWIwN2QzZTFhNzYxNmNiY2I1OGJkMjU3ODUzNTllYzcuLjFjN2I3MDRlOTQ3ZjBkOTI3
MzU5YmEzODVkZTllMDQxNGI3MmE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTg5LDcgKzE4OSw3
IEBAIC0gKFdLSFRUUENvb2tpZVN0b3JlICopaHR0cENvb2tpZVN0b3JlCiBzdGF0aWMgV2FsbFRp
bWUgdG9TeXN0ZW1DbG9ja1RpbWUoTlNEYXRlICpkYXRlKQogewogICAgIEFTU0VSVChkYXRlKTsK
LSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUudGltZUludGVydmFsU2lu
Y2UxOTcwKTsKKyAgICByZXR1cm4gV2FsbFRpbWUoU2Vjb25kcyhkYXRlLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkpOwogfQogCiAtICh2b2lkKWZldGNoRGF0YVJlY29yZHNPZlR5cGVzOihOU1NldCAq
KWRhdGFUeXBlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxXS1dlYnNpdGVE
YXRhUmVjb3JkICo+ICopKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCmluZGV4IDZi
Mjk5ZjhlYzRiNjk4ZWEwMDYxNzQ3NzBmZDUzZTI0NzlkYTE3OGYuLjdkNDE2M2UyMTExNmUzZmNk
NjM0ODkxODY2N2VlMDBmNjQ4YmIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCkBAIC0xOTcsNyArMTk3
LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAg
ICAgICBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihw
YXJlbnRGcmFtZS51bnNpZ25lZExvbmdMb25nVmFsdWUpLAogICAgICAgICBvcmlnaW5hbFVSTCwK
ICAgICAgICAgb3JpZ2luYWxIVFRQTWV0aG9kLAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoZXZlbnRUaW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKSwKKyAgICAgICAgV2Fs
bFRpbWUoU2Vjb25kcyhldmVudFRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApKSwKICAg
ICAgICAgc3RhdGljX2Nhc3Q8Ym9vbD4obG9hZGVkRnJvbUNhY2hlLmJvb2xWYWx1ZSksCiAgICAg
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6UmVzb3VyY2VMb2FkSW5mbzo6VHlwZT4odHlwZS51bnNp
Z25lZENoYXJWYWx1ZSksCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKaW5kZXgg
YjJkZTVhMmYwM2VhMWFiZTlhYWEyNWY0YzhhOGE5MTlmZDYyMzI5Zi4uYmQ5Y2ZmMGVlZmY3NWJl
YjRkNGNlMjhjYzgxNmUxZDZlNTE3NDIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZS5jcHAK
QEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZGVjb2RlSFRUUEJvZHkoR1Zh
cmlhbnQqIGh0dHBCb2R5VmFyaWFudCwgSFRUUEJvZHkmIGh0dHBCb2R5KQogICAgICAgICBpZiAo
aGFzRmlsZUxlbmd0aCkKICAgICAgICAgICAgIGVsZW1lbnQuZmlsZUxlbmd0aCA9IGZpbGVMZW5n
dGg7CiAgICAgICAgIGlmIChoYXNGaWxlTW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgICAgIGVs
ZW1lbnQuZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhmaWxlTW9kaWZpY2F0aW9uVGltZSk7CisgICAgICAgICAgICBlbGVtZW50LmV4cGVjdGVk
RmlsZU1vZGlmaWNhdGlvblRpbWUgPSBXYWxsVGltZShTZWNvbmRzKGZpbGVNb2RpZmljYXRpb25U
aW1lKSk7CiAgICAgICAgIGVsZW1lbnQuYmxvYlVSTFN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgo
YmxvYlVSTFN0cmluZyk7CiAKICAgICAgICAgaHR0cEJvZHkuZWxlbWVudHMudW5jaGVja2VkQXBw
ZW5kKFdURk1vdmUoZWxlbWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKaW5kZXggNDhl
MWVkZTRiYjFkNTczZTI5NDI2NDE5Nzk5YjAyYzRkYWZjMGQzYS4uZjgzNDhiYTVjNzQyMjYzZGVj
YmVjMjBlMzVjMWQ2MTUzZjkxMjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0x
MTUyLDcgKzExNTIsNyBAQCB2b2lkIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGVhcihX
ZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIqIG1hbmFnZXIsIFdlYktpdAogewogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAg
IFdhbGxUaW1lIHRpbWVQb2ludCA9IHRpbWVTcGFuID8gV2FsbFRpbWU6Om5vdygpIC0gU2Vjb25k
czo6ZnJvbU1pY3Jvc2Vjb25kcyh0aW1lU3BhbikgOiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
MCk7CisgICAgV2FsbFRpbWUgdGltZVBvaW50ID0gdGltZVNwYW4gPyBXYWxsVGltZTo6bm93KCkg
LSBTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHRpbWVTcGFuKSA6IFdhbGxUaW1lKCk7CiAgICAg
R1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3KG1hbmFnZXIsIGNhbmNl
bGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKICAgICBtYW5hZ2VyLT5wcml2LT53ZWJzaXRl
RGF0YVN0b3JlLT5yZW1vdmVEYXRhKHRvV2Vic2l0ZURhdGFUeXBlcyh0eXBlcyksIHRpbWVQb2lu
dCwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgIGdfdGFza19yZXR1cm5fYm9vbGVh
bih0YXNrLmdldCgpLCBUUlVFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rl
dmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcAppbmRleCBmNjI0MzZkNzM4NWQ2ZWFkYTE4NTQ5MjRl
ODRhYTE4NTViZmI1YWFkLi5iMjEyMDk1NzE5OWM1NjQ1OTc4Y2YyODBkYTc0MGM1MGEzNDk5YjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3Rv
cmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0
b3JhZ2UuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERldmljZUlkSGFz
aFNhbHRTdG9yYWdlOjpIYXNoU2FsdEZvck9yaWdpbj4gRGV2aWNlSWRIYXNoU2FsdFN0b3IKIAog
ICAgIGF1dG8gaGFzaFNhbHRGb3JPcmlnaW4gPSBtYWtlVW5pcXVlPEhhc2hTYWx0Rm9yT3JpZ2lu
PihXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luRGF0YS52YWx1ZSgpKSwgV1RGTW92ZShwYXJlbnRTZWN1
cml0eU9yaWdpbkRhdGEudmFsdWUoKSksIFdURk1vdmUoZGV2aWNlSWRIYXNoU2FsdCkpOwogCi0g
ICAgaGFzaFNhbHRGb3JPcmlnaW4tPmxhc3RUaW1lVXNlZCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhsYXN0VGltZVVzZWQpOworICAgIGhhc2hTYWx0Rm9yT3JpZ2luLT5sYXN0VGltZVVzZWQg
PSBXYWxsVGltZShTZWNvbmRzKGxhc3RUaW1lVXNlZCkpOwogCiAgICAgcmV0dXJuIGhhc2hTYWx0
Rm9yT3JpZ2luOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZWM5YjM1Mzc2YjlhMzNjOTdmNGE1MDc2
MzhkNTBlNDM2YWQ5ZGUxNC4uMjBjMDc5NjExZDMxZjY5NmQ4Mzc2ODQyMWFiOTg1MjRkYmIzNDJi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC02NzQsNyArNjc0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpT
ZXRWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBsYXN0U2VlbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdl
KCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTY5NCw3ICs2OTQsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGludAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShzZXNzaW9uSUQsIGRvbWFp
bklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBXYWxsVGltZSBsYXN0U2VlbiwgYm9v
bCBoYWRVc2VySW50ZXJhY3Rpb24sIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZh
bGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6TWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwg
cmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2Vl
biwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5k
ZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3Zl
ZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQxYjg2
ZTE4OWMyY2YxNzI0NGQ4YWRlM2Q3ZWQwNWZmODc5MDBlNi4uNzdhODVkZmQxNzQ3NDdkM2YzNTNi
MWJiNzc2ZjAwNmEyYWNkMmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
Y2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9u
SUQsIGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BG
cmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBT
ZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBi
b29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29y
ZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VT
dGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFdhbGxUaW1lIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dy
YW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNp
Z25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQ
YXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0
Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNl
c3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5MDk3
OTNlMzc1NjhjMDQyYjEwMDJhMjZhYTAyNzQ3ODRhOTFlNGNhLi5hZDkyMWQzZjUzYTJkOWE2MjQ0
MTExMzljMTRjOTMyNWRmOTk3MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTE3Nyw3ICsxMTc3
LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJs
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib28KICAgICBuZXR3b3JrUHJvY2VzcygpLnN0YXRp
c3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0
IFVSTCYgdXJsLCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29u
c3QgVVJMJiB1cmwsIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8
fCB1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMTg2
LDcgKzExODYsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFVS
TCYgdXJsLCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYQogCiAgICAgYXV0byBjYWxsYmFj
a0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiAKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNldExhc3RTZWVuKG1fc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBzZWNvbmRzLCBbY2FsbGJh
Y2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0TGFzdFNlZW4obV9z
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0sIGxhc3RTZWVuLCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRv
bWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMTk2LDcgKzExOTYsNyBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQs
IENvbXBsZXRpb25IYW5kbGVyPAogICAgIG5ldHdvcmtQcm9jZXNzKCkuZG9tYWluSURFeGlzdHNJ
bkRhdGFiYXNlKG1fc2Vzc2lvbklELCBkb21haW5JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGlu
Zyhjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9w
RnJhbWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMiwg
V2FsbFRpbWUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxsVGltZSBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZh
bGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
ICh1cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDFkZTI1YTY2MDU3ZjJkNjZjNjI5OWU1
ZWJiYjgxNDZiZWU5YjgxZTMuLjkzYTg3NTJhODJiMzFlMWQxZjE2MjgwZjliM2RiZjliYzljMWEw
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE5NywxMCArMTk3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGlzR3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TGFzdFNl
ZW4oY29uc3QgVVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGludCBkb21h
aW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwyLCBTZWNvbmRzIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQ
cmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwm
LCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDIsIFdhbGxU
aW1lIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQs
IGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGlj
Rm9yVGVzdGluZyhjb25zdCBVUkwmLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNz
ZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29v
a2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5p
bmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VH
ZXN0dXJlUmVjb2duaXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNl
R2VzdHVyZVJlY29nbml6ZXIubW0KaW5kZXggYzY0MWVhNzU1MWQzMDExYTYwNjdhYTU3ZjVmNDA0
MGQzMDU4NTBhYi4uOTA4OWRjNWIwYjQ1N2ViMzA4OTMyYWNiNzBkNWUyZjY5MDc1YjAyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2du
aXplci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVS
ZWNvZ25pemVyLm1tCkBAIC0xMjksNyArMTI5LDcgQEAgLSAoc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6TmF0aXZlV2ViTW91c2VFdmVudD4pY3JlYXRlTW91c2VFdmVudFdpdGhUeXBlOihXZWJLaXQK
ICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCB7IFtzZWxmIGxvY2F0aW9uSW5WaWV3OnNlbGYu
dmlld10gfTsKICAgICBhdXRvIGRlbHRhID0gcG9pbnQgLSBXZWJDb3JlOjpJbnRQb2ludCB7IFtf
Y3VycmVudFRvdWNoIHByZXZpb3VzTG9jYXRpb25JblZpZXc6c2VsZi52aWV3XSB9OwogICAgIC8v
IFVJVG91Y2gncyB0aW1lc3RhbXAgdXNlcyBtYWNoX2Fic29sdXRlX3RpbWUgYXMgaXRzIHRpbWVi
YXNlLCBzYW1lIGFzIE1vbm90b25pY1RpbWUuCi0gICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9u
aWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhbX2N1cnJlbnRUb3VjaCB0aW1lc3RhbXBdKS5hcHByb3hp
bWF0ZVdhbGxUaW1lKCk7CisgICAgYXV0byB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lKFNlY29u
ZHMoW19jdXJyZW50VG91Y2ggdGltZXN0YW1wXSkpLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKICAg
ICByZXR1cm4gV1RGOjptYWtlVW5pcXVlPFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudD4odHlw
ZSwgYnV0dG9uLCBidXR0b25zLCBwb2ludCwgcG9pbnQsIGRlbHRhLndpZHRoKCksIGRlbHRhLmhl
aWdodCgpLCAwLCBbX2N1cnJlbnRUb3VjaCB0YXBDb3VudF0sIG1vZGlmaWVycywgdGltZXN0YW1w
LCAwLCBjYW5jZWxsZWQgPyBXZWJLaXQ6Okdlc3R1cmVXYXNDYW5jZWxsZWQ6OlllcyA6IFdlYktp
dDo6R2VzdHVyZVdhc0NhbmNlbGxlZDo6Tm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDY1
NWI5ODUwNDcxNjA1MTg3ZjZhNTk4YjI3ZjE1OTJkMWY1NTg3MDAuLjQ4ZTRhN2MyOGIzZjZhNWM2
Mjc2MDYwNGY4MDRhODk2ZTNlZWY3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCkBAIC04NDAsNyArODQw
LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlRm9ybURhdGFFbGVtZW50KEhpc3RvcnlFbnRyeURhdGFE
ZWNvZGVyJiBkZWNvZGVyLCBIVFRQQm9keTo6RWwKICAgICAgICAgZG91YmxlIGV4cGVjdGVkRmls
ZU1vZGlmaWNhdGlvblRpbWU7CiAgICAgICAgIGRlY29kZXIgPj4gZXhwZWN0ZWRGaWxlTW9kaWZp
Y2F0aW9uVGltZTsKICAgICAgICAgaWYgKCFzdGQ6OmlzbmFuKGV4cGVjdGVkRmlsZU1vZGlmaWNh
dGlvblRpbWUpKQotICAgICAgICAgICAgZm9ybURhdGFFbGVtZW50LmV4cGVjdGVkRmlsZU1vZGlm
aWNhdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZp
Y2F0aW9uVGltZSk7CisgICAgICAgICAgICBmb3JtRGF0YUVsZW1lbnQuZXhwZWN0ZWRGaWxlTW9k
aWZpY2F0aW9uVGltZSA9IFdhbGxUaW1lKFNlY29uZHMoZXhwZWN0ZWRGaWxlTW9kaWZpY2F0aW9u
VGltZSkpOwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5j
cHAKaW5kZXggMjY3NTQxMDFhMDhiYjk5OGVhNDk3ZDBlMWUyNzdiOTdlMjc2NWZjMS4uMjljYzJi
YzViOGE1Y2UwYmY4NzUwOGJlYjYzZTg5NDA0ZmRhMGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKQEAgLTU2OSwxNyArNTY5LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRmx1c2hQZW5k
aW5nRWRpdG9yU3RhdGVVcGRhdGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgV0tCdW5k
bGVQYWdlU2ltdWxhdGVNb3VzZURvd24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24s
IFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnNpbXVsYXRl
TW91c2VEb3duKGJ1dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3Vu
dCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOworICAgIFdlYktp
dDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0b24sIFdlYktpdDo6dG9JbnRQ
b2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWUoU2Vjb25kcyh0
aW1lKSkpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcChXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgaW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQs
IFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICBXZWJLaXQ6
OnRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRvbiwgV2ViS2l0Ojp0b0ludFBvaW50
KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHModGltZSkpOworICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0
dG9uLCBXZWJLaXQ6OnRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMs
IFdhbGxUaW1lKFNlY29uZHModGltZSkpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0
ZU1vdXNlTW90aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvc2l0aW9uLCBkb3Vi
bGUgdGltZSkKIHsKLSAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZU1vdGlv
bihXZWJLaXQ6OnRvSW50UG9pbnQocG9zaXRpb24pLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
dGltZSkpOworICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKFdl
YktpdDo6dG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lKFNlY29uZHModGltZSkpKTsKIH0K
IAogdWludDY0X3QgV0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oCmluZGV4
IGJhNWIyZTYzZDllMDY4Nzk5MzM1NzFjMTk3YWIyNzFiZGQ3MmRlY2UuLjEzYzg1MjJjOGZmMGRj
ZjA3ZTg3MzJmZDg0YjNmMWUwOTgwNDJiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01JbnRlcm5hbC5oCkBAIC04NSw1ICs4NSw1IEBAIGlubGluZSBOU1RpbWVJbnRlcnZhbCBr
aXQoV2FsbFRpbWUgdGltZSkKIAogaW5saW5lIFdhbGxUaW1lIGNvcmUoTlNUaW1lSW50ZXJ2YWwg
c2VjKQogewotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc2VjICsgTlNUaW1l
SW50ZXJ2YWxTaW5jZTE5NzApOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKHNlYyArIE5T
VGltZUludGVydmFsU2luY2UxOTcwKSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODI1NmRlZWFjNjM1OGQyMTdiNWM4MjYyNmUyNWQyNWIy
MDAyOGFiYi4uOGUxYzhhZmIxNGYzZDA1MDZiZGJlMzE1Y2IxZmM0NmU4M2JjZTI0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgYFNlY29uZHNgIGFzIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBgTW9ub3Rvbmlj
VGltZWAvYFdhbGxUaW1lYC9ldGMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwOgorICAgICAg
ICAoV1RGOjpUZXN0V2ViS2l0QVBJOjp3dCk6CisgICAgICAgIChXVEY6OlRlc3RXZWJLaXRBUEk6
Om10KToKKyAgICAgICAgKFdURjo6VGVzdFdlYktpdEFQSTo6YXQpOgorICAgICAgICAoV1RGOjpU
ZXN0V2ViS2l0QVBJOjpkdCk6CisgICAgICAgIFJlcGxhY2UgYFQ6OmZyb21SYXdTZWNvbmRzKC4u
LilgIHdpdGggYFQoU2Vjb25kcyguLi4pKWAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBoZWxwZXIgbWV0aG9kcyB0byBgV2Vi
Q29yZTo6Rm9udFNoYWRvd2AgZm9yIHNlcmlhbGl6aW5nIHRvIENTUyBhbmQgY29udmVydGluZyB0
byBgTlNTaGFkb3dgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9U
aW1lLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwCmluZGV4IDUz
NWFhNWFlODQ5YzkxYzg5YmFlY2RmNjEyZWM0MDMzOGRhYTk3YTIuLjBmNTUzMzdkMmY1YzVjNTBh
NTRiYTc2NzFhMjQ2NDM3MWQyMmEzODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1RpbWUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Rp
bWUuY3BwCkBAIC03NywyMiArNzcsMjIgQEAgU2Vjb25kcyBzKGRvdWJsZSB2YWx1ZSkKIAogV2Fs
bFRpbWUgd3QoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHModmFsdWUpOworICAgIHJldHVybiBXYWxsVGltZShTZWNvbmRzKHZhbHVlKSk7CiB9CiAK
IE1vbm90b25pY1RpbWUgbXQoZG91YmxlIHZhbHVlKQogewotICAgIHJldHVybiBNb25vdG9uaWNU
aW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoU2Vj
b25kcyh2YWx1ZSkpOwogfQogCiBBcHByb3hpbWF0ZVRpbWUgYXQoZG91YmxlIHZhbHVlKQogewot
ICAgIHJldHVybiBBcHByb3hpbWF0ZVRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKKyAgICBy
ZXR1cm4gQXBwcm94aW1hdGVUaW1lKFNlY29uZHModmFsdWUpKTsKIH0KIAogVGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlIGR0KGRvdWJsZSB2YWx1ZSwgQ2xvY2tUeXBlIHR5cGUpCiB7Ci0gICAgcmV0
dXJuIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZTo6ZnJvbVJhd1NlY29uZHModmFsdWUsIHR5cGUp
OworICAgIHJldHVybiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoU2Vjb25kcyh2YWx1ZSksIHR5
cGUpOwogfQogCiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgZHR3KGRvdWJsZSB2YWx1ZSkKQEAg
LTM5NSw3ICszOTUsNyBAQCBURVNUKFdURl9UaW1lLCBjbGFtcCkKIC8vIHRoZXkgaW52b2tlcyBn
bG9iYWwgY29uc3RydWN0b3JzIGFuZCBiZWNvbWVzIGNvbXBpbGUgZXJyb3JzLgogc3RhdGljIGNv
bnN0IE1vbm90b25pY1RpbWUgTmFOID0gTW9ub3RvbmljVGltZTo6bmFuKCk7CiBzdGF0aWMgY29u
c3QgTW9ub3RvbmljVGltZSBJbmZpbml0eSA9IE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7Ci1z
dGF0aWMgY29uc3QgTW9ub3RvbmljVGltZSBaZXJvID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoMCk7CitzdGF0aWMgY29uc3QgTW9ub3RvbmljVGltZSBaZXJvID0gTW9ub3RvbmljVGlt
ZSgpOwogc3RhdGljIGNvbnN0IE1vbm90b25pY1RpbWUgT25lID0gWmVybyArIFNlY29uZHMoMSk7
CiBzdGF0aWMgY29uc3QgTW9ub3RvbmljVGltZSBOZWdhdGl2ZU9uZSA9IFplcm8gLSBTZWNvbmRz
KDEpOwogc3RhdGljIGNvbnN0IGJvb2wgWmVyb0lzRmFsc2UgPSAhIVplcm87Cg==
</data>
<flag name="review"
          id="471621"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>