<?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>169236</bug_id>
          
          <creation_ts>2017-03-06 16:27:21 -0800</creation_ts>
          <short_desc>Port DOMTimer from std::chrono::milliseconds to WTF::Seconds type</short_desc>
          <delta_ts>2017-03-07 09:11:17 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>169213</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fpizlo</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284048</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 16:27:21 -0800</bug_when>
    <thetext>Port DOMTimer from std::chrono::milliseconds to WTF::Seconds type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284054</commentid>
    <comment_count>1</comment_count>
      <attachid>303581</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 16:39:18 -0800</bug_when>
    <thetext>Created attachment 303581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284057</commentid>
    <comment_count>2</comment_count>
      <attachid>303583</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 16:46:49 -0800</bug_when>
    <thetext>Created attachment 303583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284058</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-06 16:48:24 -0800</bug_when>
    <thetext>See bug 165079</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284061</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 16:53:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; See bug 165079

Hmm, I wasn&apos;t aware of this change. Sad that it has not landed since last year.
How do you want to proceed? My patch should be building now and has more limited scope apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284065</commentid>
    <comment_count>5</comment_count>
      <attachid>303586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 17:00:49 -0800</bug_when>
    <thetext>Created attachment 303586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284066</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 17:01:16 -0800</bug_when>
    <thetext>Should take care of the debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284068</commentid>
    <comment_count>7</comment_count>
      <attachid>303583</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-06 17:06:20 -0800</bug_when>
    <thetext>Comment on attachment 303583
Patch

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

&gt; Source/WebCore/page/DOMTimer.cpp:56
&gt; +static const Seconds maxIntervalForUserGestureForwarding { 1 }; // One second matches Gecko.
&gt; +static const Seconds minIntervalForNonUserObservableChangeTimers { 1 }; // Empirically determined to maximize battery life.

1_s

&gt; Source/WebCore/page/DOMTimer.cpp:417
&gt; +    Seconds interval = std::max(Seconds::fromMilliseconds(1), m_originalInterval);

1_ms

&gt; Source/WebCore/page/DOMTimer.cpp:441
&gt; +    auto randomizedOffsetMS = static_cast&lt;long long&gt;(alignmentIntervalMS * randomizedProportion);
&gt; +    auto adjustedFireTimeMS = static_cast&lt;long long&gt;(fireTime.milliseconds()) - randomizedOffsetMS;

Are you keeping these as long long explicitly for discretization? I used MonotonicTime for the adjustedFireTime.

&gt; Source/WebCore/page/DOMTimer.h:48
&gt; +    static Seconds defaultMinimumInterval() { return Seconds::fromMilliseconds(4); }

4_ms

&gt; Source/WebCore/page/DOMTimer.h:50
&gt; +    static Seconds hiddenPageAlignmentInterval() { return Seconds { 1 }; }

1_s

&gt; Source/WebCore/page/Page.cpp:1364
&gt; +            m_domTimerAlignmentInterval = Seconds { monotonicallyIncreasingTime() - m_timerThrottlingStateLastChangedTime };

Use MonotonicTime, not monotonicallyIncreasingTime()

&gt; Source/WebCore/page/Page.h:718
&gt; +    Seconds m_domTimerAlignmentIntervalIncreaseLimit { 0 };

No need to initialize a Seconds.

&gt; Source/WebCore/platform/Timer.cpp:385
&gt; +        if (auto newAlignedTime = alignedFireTime(Seconds { newTime }))

Are we doing Seconds { newTime } now, instead of just Seconds(newTime)?

&gt; Source/WebCore/testing/Internals.cpp:1039
&gt; +    return !!timer-&gt;alignedFireTime(Seconds { 0 });

0_s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284100</commentid>
    <comment_count>8</comment_count>
      <attachid>303583</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 18:28:30 -0800</bug_when>
    <thetext>Comment on attachment 303583
Patch

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

&gt;&gt; Source/WebCore/page/DOMTimer.cpp:56
&gt;&gt; +static const Seconds minIntervalForNonUserObservableChangeTimers { 1 }; // Empirically determined to maximize battery life.
&gt; 
&gt; 1_s

Oh, I did not know about these suffixes. I&apos;ll use them everywhere.

&gt;&gt; Source/WebCore/page/DOMTimer.cpp:441
&gt;&gt; +    auto adjustedFireTimeMS = static_cast&lt;long long&gt;(fireTime.milliseconds()) - randomizedOffsetMS;
&gt; 
&gt; Are you keeping these as long long explicitly for discretization? I used MonotonicTime for the adjustedFireTime.

I was trying to keep the code as close to the existing one as possible because it is a bit complicated and I worry about introducing bugs. For example, the code used to deal with milliseconds and I would need to look into it more to make sure it does the same thing with seconds.

&gt;&gt; Source/WebCore/page/Page.cpp:1364
&gt;&gt; +            m_domTimerAlignmentInterval = Seconds { monotonicallyIncreasingTime() - m_timerThrottlingStateLastChangedTime };
&gt; 
&gt; Use MonotonicTime, not monotonicallyIncreasingTime()

I did not know about MonotonicTime, I&apos;ll use it here.

&gt;&gt; Source/WebCore/page/Page.h:718
&gt;&gt; +    Seconds m_domTimerAlignmentIntervalIncreaseLimit { 0 };
&gt; 
&gt; No need to initialize a Seconds.

Ok.

&gt;&gt; Source/WebCore/platform/Timer.cpp:385
&gt;&gt; +        if (auto newAlignedTime = alignedFireTime(Seconds { newTime }))
&gt; 
&gt; Are we doing Seconds { newTime } now, instead of just Seconds(newTime)?

Darin coding style :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284141</commentid>
    <comment_count>9</comment_count>
      <attachid>303606</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-06 19:53:43 -0800</bug_when>
    <thetext>Created attachment 303606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284313</commentid>
    <comment_count>10</comment_count>
      <attachid>303655</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-07 08:24:44 -0800</bug_when>
    <thetext>Created attachment 303655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284318</commentid>
    <comment_count>11</comment_count>
      <attachid>303655</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-07 08:30:03 -0800</bug_when>
    <thetext>Comment on attachment 303655
Patch

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

&gt; Source/WebCore/page/DOMTimer.cpp:404
&gt; +        LOG(DOMTimers, &quot;%p - Updating DOMTimer&apos;s repeat interval from %f ms to %f ms due to throttling.&quot;, this, previousInterval.milliseconds(), m_currentTimerInterval.milliseconds());

Maybe %.2f in these logs for readability.

&gt; Source/WebCore/page/DOMTimer.cpp:442
&gt; +    Seconds randomizedOffset = alignmentInterval * randomizedProportion;
&gt; +    Seconds adjustedFireTime = fireTime - randomizedOffset;
&gt;      return adjustedFireTime - (adjustedFireTime % alignmentInterval) + alignmentInterval + randomizedOffset;

Did you do some runtime logging/debugging to make sure that this code still results in good alignment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284319</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-07 08:31:02 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 303655 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303655&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DOMTimer.cpp:404
&gt; &gt; +        LOG(DOMTimers, &quot;%p - Updating DOMTimer&apos;s repeat interval from %f ms to %f ms due to throttling.&quot;, this, previousInterval.milliseconds(), m_currentTimerInterval.milliseconds());
&gt; 
&gt; Maybe %.2f in these logs for readability.

Ok.

&gt; 
&gt; &gt; Source/WebCore/page/DOMTimer.cpp:442
&gt; &gt; +    Seconds randomizedOffset = alignmentInterval * randomizedProportion;
&gt; &gt; +    Seconds adjustedFireTime = fireTime - randomizedOffset;
&gt; &gt;      return adjustedFireTime - (adjustedFireTime % alignmentInterval) + alignmentInterval + randomizedOffset;
&gt; 
&gt; Did you do some runtime logging/debugging to make sure that this code still
&gt; results in good alignment?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284321</commentid>
    <comment_count>13</comment_count>
      <attachid>303658</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-07 08:32:14 -0800</bug_when>
    <thetext>Created attachment 303658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284347</commentid>
    <comment_count>14</comment_count>
      <attachid>303658</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-07 09:11:11 -0800</bug_when>
    <thetext>Comment on attachment 303658
Patch

Clearing flags on attachment: 303658

Committed r213519: &lt;http://trac.webkit.org/changeset/213519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284348</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-03-07 09:11:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303581</attachid>
            <date>2017-03-06 16:39:18 -0800</date>
            <delta_ts>2017-03-06 16:46:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170306163918.patch</filename>
            <type>text/plain</type>
            <size>47685</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY5MmZhN2ZkZjgwNjE3
MzRkYzJlZThhZGE4ZWI0Y2E1ZGM2ZmUxOS4uMTcwNDg3MDIxMzEzOWZjOTdkMTE0ZjU1ZGEzMWRj
OWM3MTA0YTAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRq
dXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OnVzZXJH
ZXN0dXJlVG9rZW5Ub0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjppbnN0YWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldElu
dGVydmFsKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1pbmltdW1ET01UaW1lckludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZv
cm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZXROZXh0RmlyZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1U
aW1lckludGVydmFsKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OmlzVGltZXJUaHJvdHRsZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKToKKwor
MjAxNy0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFtp
T1NdIERpc2FibGUgYXV0b3BsYXkgb2Ygc2lsZW50IHZpZGVvcyBpbiBsb3cgcG93ZXIgbW9kZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4OTg1CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDczOTA1MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NzY2NmY4YWRj
YzY2MmFkZWVlM2UxMTc4ZWQ0Y2U0N2M3NTI4NzI4Li44YTQwMTBmNjllNGEyNDE4MjI3YzhmNWMw
ZDgyOTQ4NGE0YTUxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMDYg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQb3J0IERPTVRpbWVy
IGZyb20gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0byBXVEY6OlNlY29uZHMgdHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dXBk
YXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNl
dEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW46CisKIDIwMTctMDMtMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIFJlcG9ydCBkb21haW5zIGNyYXNoaW5nIHVuZGVyIG1lbW9y
eSBwcmVzc3VyZSB2aWEgZW5oYW5jZWQgcHJpdmFjeSBsb2dnaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjRiNzU2MTQ0NWMyMTc3MTBlNWRkYjU2YWY2NjBiYjI2YjU4MWIyNS4uNTdj
Mzk0NmNkMDA3MzY2N2I3M2M0YmM5NWEzYzRhYzJhZTZiN2U5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yODQzLDExICsyODQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlbG4oY29u
c3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB3cml0ZShXVEZN
b3ZlKHRleHRXaXRoTmV3bGluZSksIG93bmVyRG9jdW1lbnQpOwogfQogCi1zdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNv
bmRzIERvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpOworICAgICAgICBy
ZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKTsK
ICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpOwog
fQogCkBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaW1lclRocm90dGxp
bmdFbmFibGVkKGJvb2wgc2hvdWxkVGhyb3R0bGUpCiAgICAgZGlkQ2hhbmdlVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpOwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0
aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29u
c3QKK1NlY29uZHMgRG9jdW1lbnQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNS
ZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdAogewotICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkKICAg
ICAgICAgcmV0dXJuIGFsaWdubWVudEludGVydmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGZmMTkyYjM1OTdiNWM2NGE4YTQ4YzViNWM4ODhhYjZiYjI5OGQ2ZWIuLjVjNTljNjc5MjE5ODY0
YmI5ZTMwOWZkMjEwNmFkNTE2ZjJmOTQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzI3
LDkgKzEzMjcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxw
dHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5h
bDsKKyAgICBTZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QgZmluYWw7CiAK
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9v
bCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdCBmaW5hbDsKKyAgICBTZWNvbmRzIGRv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGVGcm9tVGl0bGVFbGVtZW50KCk7CiAg
ICAgdm9pZCB1cGRhdGVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzI4ODE4ZjRh
NjJjOTQzM2Q3ZWRiYzE0MDcwOTJlYWE0YzA1ZDBiMy4uZjNhYWY2MGRlNzZlYjAxOTBkMmE3M2Iw
YWY0ZDhmNDE2MmY1YmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcApAQCAtNDI3LDE1ICs0MjcsMTUgQEAgUHVibGljVVJMTWFuYWdlciYgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6cHVibGljVVJMTWFuYWdlcigpCiAgICAgcmV0dXJuICptX3B1
YmxpY1VSTE1hbmFnZXI7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0
TWluaW11bVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVt
VGltZXJJbnRlcnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11
bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkKIHsKLSAg
ICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkg
eworICAgIGlmIChtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1UaW1lcklu
dGVydmFsKSB7CiAgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZhbHVlcygp
KQogICAgICAgICAgICAgdGltZXItPnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpOwog
ICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICAvLyBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBET01UaW1lcidzIGRlZmF1bHQKICAg
ICAvLyBtaW5pbXVtIHRpbWVyIGludGVydmFsLiBGSVhNRTogdG8gbWFrZSBpdCB3b3JrIHdpdGgg
ZGVkaWNhdGVkCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAgICAgdGltZXItPmRpZENo
YW5nZUFsaWdubWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sKSBjb25z
dAorU2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERPTVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCmluZGV4IGRkZjM0NzFlZjUxMjRlOTUwODRhMGQzNTE0YTA4ZWVjZjRjOGUyMzkuLjQwNTE0
N2JlNWUxMWU0OTAwYzhiYTQ2MmJiZDdiZjM4NWQ3ZTM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg5LDEyICsxODksMTEgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpWTSYgdm0oKTsKIAotICAgIC8vIEludGVydmFs
IGlzIGluIHNlY29uZHMuCi0gICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKLSAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dDsKKyAgICB2b2lkIGFkanVzdE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgb2xkTWlu
aW11bVRpbWVySW50ZXJ2YWwpOworICAgIHZpcnR1YWwgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJ
bnRlcnZhbCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVy
dmFsKCk7Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlJiBldmVudFF1
ZXVlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcwZjIyYWZmODQ2N2RkNWVlNmYzZDM2
NjNmMDJlYzA3MWQ2ZjUzNmEuLjU4MGE4Mjg2YTUwNjM2MjE0ZTMxZjMzYjJlM2I5YTM4ZjJlZjdi
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbFNlbmRYTUxIdHRwUmVxdWVzdCh1cmwp
OwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50
SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHNldFRpbWVyRXZlbnROYW1lLCB0
cnVlKTsKICAgICBkaWRTY2hlZHVsZUFzeW5jQ2FsbChpbnN0cnVtZW50aW5nQWdlbnRzLCBBc3lu
Y0NhbGxUeXBlVGltZXIsIHRpbWVySWQsIGNvbnRleHQsIHNpbmdsZVNob3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4
IDllMGUwYWJjM2M2NWEyMjc3MGU4ODlhM2VhYzdkZDg5NDVjZjhjZDYuLmM5ZGI0ZmY4YzdiNzg5
NTQzOWUzMzcyM2FiNGZiODk3YzMxMzU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVtZW50Jiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVy
bCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgaW50IHRpbWVySWQpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTI5Myw3ICsyOTMsNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3RhdGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBjb25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7
CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRpZEluc3Rh
bGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hv
dCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlbW92ZVRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
d2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0cmluZyYg
c2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAg
LTY0Miw3ICs2NDIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICAgICB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQog
ewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvckNvbnRleHQoY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWYwZDA1NzZkMjRlZGJhYjlhMDlhODlk
NDBkMmRmMWQ4ZDk2OWEwZC4uZTIwMmQzMmM2NDU3Nzg3NzkwYjY3M2I4MTNmN2Q3OTk4MzIxNTAw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVjdCYKICAg
ICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQYWludCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwg
RnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGlt
ZXIoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSog
ZnJhbWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
VGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRydWUsIGZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGJmNWJiYmIx
NzQ0MjZlMDlkNjRjZWJhMDExZjQxZDIwNzI0N2U0YWMuLjg1ZjA2ZGFhYWEwOTYwOGI3OTFhMjM0
MWM5M2QyMDdmZWYyOTM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRJbnN0YWxs
VGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9v
bCBzaW5nbGVTaG90LCBGcmFtZSopOworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKICAgICB2b2lk
IGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgd2lsbEZpcmVU
aW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApp
bmRleCBhMjE2NTkzZjg1YjAxYTgzZGE2N2NhZTlkNGY3ZDI5N2Y1NDNjYjFiLi43NGFhN2ZmZTgx
MzM0YjRjNjUxYzE0ODQ1OGY5MmU4ZTdjYTc2YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtOTQsMTEgKzk0LDExIEBA
IFJlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShpbnQgdGltZXJJZCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAotUmVmPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCkKK1JlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNp
bmdsZVNob3QpCiB7CiAgICAgUmVmPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CiAgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVy
SWQiKSwgdGltZXJJZCk7Ci0gICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVv
dXQiKSwgKGludCl0aW1lb3V0LmNvdW50KCkpOworICAgIGRhdGEtPnNldEludGVnZXIoQVNDSUlM
aXRlcmFsKCJ0aW1lb3V0IiksIChpbnQpdGltZW91dC5taWxsaXNlY29uZHMoKSk7CiAgICAgZGF0
YS0+c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNpbmdsZVNob3QiKSwgc2luZ2xlU2hvdCk7CiAg
ICAgcmV0dXJuIGRhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZmI3MDVkMWVhNGJhMTlkZDkyYjFiZmQwM2MxYzFhZTRm
YTUyNDVmYy4uZGRmOGQwNWRmZTRlZTM2ZDg0MDQxNmI0MWFhYTdlNzQxYWE1NjRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlUHJvYmVTYW1wbGVEYXRhKGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJl
YWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIHNhbXBsZUlkKTsKICAgICBzdGF0aWMgUmVmPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVu
dCYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdl
bmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwotICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJ
bnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQsIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBzdGF0
aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3Rh
dGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKICAgICBzdGF0aWMgUmVmPElu
c3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lU3RhbXBEYXRhKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUFu
aW1hdGlvbkZyYW1lRGF0YShpbnQgY2FsbGJhY2tJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CmluZGV4IDgwZTFiOGQ2ODFlN2RjMjI2MDU2OWEyN2Q4YTgwOWE4YTJiY2IwYmIuLjA0MjBjZmU2
MTI0ZmNkOTViMzRmMjIxYTE3MGExZThmNTZlN2Y5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCkBAIC01Miw4ICs1Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNv
bnN0IGF1dG8gbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8v
IE9uZSBzZWNvbmQgbWF0Y2hlcyBHZWNrby4KLXN0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFs
Rm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5
IGRldGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IFNlY29u
ZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgeyAxIH07IC8vIE9uZSBzZWNv
bmQgbWF0Y2hlcyBHZWNrby4KK3N0YXRpYyBjb25zdCBTZWNvbmRzIG1pbkludGVydmFsRm9yTm9u
VXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgeyAxIH07IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5l
c3RpbmdMZXZlbCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTE2MSwxNCAr
MTYxLDE0IEBAIHByaXZhdGU6CiAKIGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNraW5nTmVz
dGVkVGltZXJzID0gZmFsc2U7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNl
ckdlc3R1cmUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdM
ZXZlbCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoU2Vjb25k
cyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIHsKICAgICByZXR1cm4gVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiAgICAgICAgICYmIGludGVydmFsIDw9
IG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nCiAgICAgICAgICYmICFuZXN0aW5n
TGV2ZWw7IC8vIEdlc3R1cmVzIHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIG5lc3RlZCB0aW1l
cnMuCiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVzZXJHZXN0
dXJlVG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50
IG5lc3RpbmdMZXZlbCkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVz
ZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQoU2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZl
bCkKIHsKICAgICBpZiAoIXNob3VsZEZvcndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbmVzdGlu
Z0xldmVsKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzYsNyArMTc2LDcgQEAgc3Rh
dGljIGlubGluZSBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gdXNlckdlc3R1cmVUb2tlblRvRm9y
d2FyZChzdGQ6OmNocm9ubzo6bWkKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpOwogfQogCi1ET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0
aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNpbmdsZVNob3Qp
CitET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBTZWNvbmRzIGludGVydmFsLCBi
b29sIHNpbmdsZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCiAgICAgLCBt
X25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAgLCBtX2FjdGlv
bihXVEZNb3ZlKGFjdGlvbikpCkBAIC0yMDIsNyArMjAyLDcgQEAgRE9NVGltZXI6On5ET01UaW1l
cigpCiB7CiB9CiAKLWludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW50IERPTVRp
bWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVl
X3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmds
ZVNob3QpCiB7CiAgICAgLy8gRE9NVGltZXIgY29uc3RydWN0b3IgcGFzc2VzIG93bmVyc2hpcCBv
ZiB0aGUgaW5pdGlhbCByZWYgb24gdGhlIG9iamVjdCB0byB0aGUgY29uc3RydWN0b3IuCiAgICAg
Ly8gVGhpcyByZWZlcmVuY2Ugd2lsbCBiZSByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBv
bmUtc2hvdCB0aW1lciBmaXJlcywgd2hlbiB0aGUgY29udGV4dApAQCAtMjExLDcgKzIxMSw3IEBA
IGludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChpczxE
b2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgYm9vbCBkaWREZWZlclRpbWVvdXQgPSBjb250
ZXh0LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKTsKLSAgICAgICAgaWYgKCFkaWREZWZl
clRpbWVvdXQgJiYgdGltZW91dC5jb3VudCgpIDw9IDEwMCAmJiBzaW5nbGVTaG90KSB7CisgICAg
ICAgIGlmICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQubWlsbGlzZWNvbmRzKCkgPD0gMTAw
ICYmIHNpbmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwogICAgICAgICAgICAgV2ViVGhyZWFkQWRk
T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXIodGltZXIpOyAvLyBXaWxsIG9ubHkgdGFrZSBhZmZlY3Qg
aWYgbm90IGFscmVhZHkgdmlzaWJpbGl0eSBjaGFuZ2UuCiAgICAgICAgIH0KQEAgLTQwOSwzNyAr
NDA5LDM3IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgp
CiAgICAgfQogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlcnZh
bENsYW1wZWRUb01pbmltdW0oKSBjb25zdAorU2Vjb25kcyBET01UaW1lcjo6aW50ZXJ2YWxDbGFt
cGVkVG9NaW5pbXVtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKICAgICBBU1NFUlQobV9uZXN0aW5nTGV2ZWwgPD0gbWF4VGltZXJOZXN0aW5nTGV2ZWwp
OwogCi0gICAgYXV0byBpbnRlcnZhbCA9IHN0ZDo6bWF4KDFtcywgbV9vcmlnaW5hbEludGVydmFs
KTsKKyAgICBTZWNvbmRzIGludGVydmFsID0gc3RkOjptYXgoU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcygxKSwgbV9vcmlnaW5hbEludGVydmFsKTsKIAogICAgIC8vIE9ubHkgYXBwbHkgdGhyb3R0
bGluZyB0byByZXBlYXRpbmcgdGltZXJzLgogICAgIGlmIChtX25lc3RpbmdMZXZlbCA8IG1heFRp
bWVyTmVzdGluZ0xldmVsKQogICAgICAgICByZXR1cm4gaW50ZXJ2YWw7CiAKICAgICAvLyBBcHBs
eSB0d28gdGhyb3R0bGVzIC0gdGhlIGdsb2JhbCAocGVyIFBhZ2UpIG1pbmltdW0sIGFuZCBhbHNv
IGEgcGVyLXRpbWVyIHRocm90dGxlLgotICAgIGludGVydmFsID0gc3RkOjptYXgoaW50ZXJ2YWws
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CisgICAg
aW50ZXJ2YWwgPSBzdGQ6Om1heChpbnRlcnZhbCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5t
aW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpKTsKICAgICBpZiAobV90aHJvdHRsZVN0YXRlID09IFNo
b3VsZFRocm90dGxlKQogICAgICAgICBpbnRlcnZhbCA9IHN0ZDo6bWF4KGludGVydmFsLCBtaW5J
bnRlcnZhbEZvck5vblVzZXJPYnNlcnZhYmxlQ2hhbmdlVGltZXJzKTsKICAgICByZXR1cm4gaW50
ZXJ2YWw7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gRE9N
VGltZXI6OmFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGZpcmVUaW1l
KSBjb25zdAorc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1l
KFNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7Ci0gICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IDBtcykKKyAgICBsb25nIGxvbmcgYWxpZ25tZW50SW50ZXJ2YWxNUyA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3RpbmdMZXZl
bCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCkubWlsbGlzZWNvbmRzKCk7CisgICAgaWYgKCFhbGln
bm1lbnRJbnRlcnZhbE1TKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIAogICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgcmFuZG9taXplZFByb3BvcnRpb24gPSByYW5kb21OdW1iZXIo
KTsKIAogICAgIC8vIEZvcmNlIGFsaWdubWVudCB0byByYW5kb21pemVkQWxpZ25tZW50IGZyYWN0
aW9uIG9mIHRoZSB3YXkgYmV0d2VlbiBhbGlnbmVtbnRJbnRlcnZhbHMsIGUuZy4KLSAgICAvLyBp
ZiBhbGlnbm1lbnRJbnRlcnZhbCBpcyAxMCBhbmQgcmFuZG9taXplZEFsaWdubWVudCBpcyAwLjMg
dGhpcyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCi0gICAgYXV0byByYW5kb21pemVkT2Zm
c2V0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oYWxpZ25tZW50SW50ZXJ2YWwgKiByYW5kb21pemVkUHJvcG9ydGlvbik7Ci0gICAgYXV0byBh
ZGp1c3RlZEZpcmVUaW1lID0gZmlyZVRpbWUgLSByYW5kb21pemVkT2Zmc2V0OwotICAgIHJldHVy
biBhZGp1c3RlZEZpcmVUaW1lIC0gKGFkanVzdGVkRmlyZVRpbWUgJSBhbGlnbm1lbnRJbnRlcnZh
bCkgKyBhbGlnbm1lbnRJbnRlcnZhbCArIHJhbmRvbWl6ZWRPZmZzZXQ7CisgICAgLy8gaWYgYWxp
Z25tZW50SW50ZXJ2YWxNUyBpcyAxMCBhbmQgcmFuZG9taXplZEFsaWdubWVudCBpcyAwLjMgdGhp
cyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCisgICAgYXV0byByYW5kb21pemVkT2Zmc2V0
TVMgPSBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGFsaWdubWVudEludGVydmFsTVMgKiByYW5kb21p
emVkUHJvcG9ydGlvbik7CisgICAgYXV0byBhZGp1c3RlZEZpcmVUaW1lTVMgPSBzdGF0aWNfY2Fz
dDxsb25nIGxvbmc+KGZpcmVUaW1lLm1pbGxpc2Vjb25kcygpKSAtIHJhbmRvbWl6ZWRPZmZzZXRN
UzsKKyAgICByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhhZGp1c3RlZEZpcmVUaW1l
TVMgLSAoYWRqdXN0ZWRGaXJlVGltZU1TICUgYWxpZ25tZW50SW50ZXJ2YWxNUykgKyBhbGlnbm1l
bnRJbnRlcnZhbE1TICsgcmFuZG9taXplZE9mZnNldE1TKTsKIH0KIAogY29uc3QgY2hhciogRE9N
VGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmlu
ZGV4IDg3Mjc3Mzk3ZWE2MDhjNDE4MzdiMGE4YWNiNjAyZWIzM2NkNmZlODcuLjU0OGIwYzAzNjU3
OGFjMzlkNGYzNTI1ODVlZTM4ZjdiZDc3ZDgxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTMgKzQ1LDEzIEBAIGNs
YXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NVGltZXI+LCBwdWJsaWMg
U3VzcGVuZGFibGVUaW1lciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RE9NVGltZXIoKTsKIAot
ICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRNaW5pbXVtSW50ZXJ2
YWwoKSB7IHJldHVybiA0bXM7IH0KLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAwbXM7IH0KLSAgICBzdGF0aWMg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiAxMDAwbXM7IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBkZWZhdWx0TWluaW11bUludGVy
dmFsKCkgeyByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyg0KTsgfQorICAgIHN0YXRp
YyBTZWNvbmRzIGRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIFNlY29uZHMgeyAw
IH07IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiBTZWNvbmRzIHsgMSB9OyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCi0gICAgc3RhdGljIGludCBpbnN0YWxsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOworICAgIHN0YXRpYyBp
bnQgaW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVk
dWxlZEFjdGlvbj4sIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKICAgICBzdGF0
aWMgdm9pZCByZW1vdmVCeUlkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBpbnQgdGltZW91dElk
KTsKIAogICAgIC8vIE5vdGlmeSB0aGF0IHRoZSBpbnRlcnZhbCBtYXkgbmVlZCB1cGRhdGluZyAo
ZS5nLiBiZWNhdXNlIHRoZSBtaW5pbXVtIGludGVydmFsCkBAIC02MCwxMCArNjEsMTAgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHNjcmlwdERpZEludGVyYWN0V2l0aFBsdWdpbihIVE1MUGx1
Z0luRWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIERPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBET01UaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIFNl
Y29uZHMgaW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgZnJpZW5kIGNsYXNzIEludGVy
bmFsczsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25k
cyBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNET01UaW1l
cnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVGhy
b3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKQEAgLTcx
LDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9pZCBm
aXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gYWxpZ25l
ZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpIGNvbnN0IG92ZXJyaWRlOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gYWxpZ25lZEZpcmVUaW1lKFNl
Y29uZHMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC04
NSw5ICs4Niw5IEBAIHByaXZhdGU6CiAgICAgaW50IG1fdGltZW91dElkOwogICAgIGludCBtX25l
c3RpbmdMZXZlbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBtX2FjdGlv
bjsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb3JpZ2luYWxJbnRlcnZhbDsKKyAg
ICBTZWNvbmRzIG1fb3JpZ2luYWxJbnRlcnZhbDsKICAgICBUaW1lclRocm90dGxlU3RhdGUgbV90
aHJvdHRsZVN0YXRlOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9jdXJyZW50VGlt
ZXJJbnRlcnZhbDsKKyAgICBTZWNvbmRzIG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CiAgICAgUmVm
UHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb2tlblRvRm9yd2FyZDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA2YWVkYjA5Yzg1ZTE3ZGQxNTJkMzRjMzFl
OGJmNDAyMmUyNzNhZjFmLi5lMmIzOGE1MTFmNGIwYjgwMjEyOWUzMTYyM2NiMDRlYmYwMzU2NTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjYzLDcgKzE2NjMsNyBAQCBFeGNl
cHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sCiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
TlZBTElEX0FDQ0VTU19FUlIgfTsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRl
eHQsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwg
dHJ1ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFj
dGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOwogfQogCiB2
b2lkIERPTVdpbmRvdzo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpCkBAIC0xNjk1LDcgKzE2
OTUsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0SW50ZXJ2YWwoc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLAogICAgIGF1dG8qIGNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07Ci0gICAgcmV0dXJuIERPTVRpbWVyOjpp
bnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlvbiksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHModGltZW91dCksIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRl
eHQsIFdURk1vdmUoYWN0aW9uKSwgU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwg
ZmFsc2UpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWVjMWRlYzBlYWUzMzgxMWQyNGM1NjMxNTgwNTZhODRh
ODcwNDc0Ni4uNGE2OTZjYzZiZDhmOTY3MzUzMWRhMzllYzliZTYwMWYzZjc4NmJmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0yMzQsOCArMjM0LDggQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElB
KQogICAgICwgbV92aWV3TW9kZShWaWV3TW9kZVdpbmRvd2VkKQogI2VuZGlmIC8vIEVOQUJMRShW
SUVXX01PREVfQ1NTX01FRElBKQotICAgICwgbV90aW1lckFsaWdubWVudEludGVydmFsKERPTVRp
bWVyOjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSkKLSAgICAsIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlVGltZXIoKnRoaXMsICZQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VUaW1lckZpcmVkKQorICAgICwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsKERP
TVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSkKKyAgICAsIG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIoKnRoaXMsICZQYWdlOjpkb21UaW1lckFsaWdubWVu
dEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKQogICAgICwgbV9pc0VkaXRhYmxlKGZhbHNlKQog
ICAgICwgbV9pc1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1fYWN0aXZpdHlTdGF0ZShQYWdlSW5p
dGlhbEFjdGl2aXR5U3RhdGUpCkBAIC0xMzE5LDcgKzEzMTksNyBAQCB2b2lkIFBhZ2U6OnNldFRp
bWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlIHN0YXRlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlID0gc3RhdGU7Ci0gICAgbV90aW1l
clRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2s6Om5vdygpOworICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAogICAgIHVwZGF0ZURPTVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoKTsKIApAQCAtMTMzMiwxMiArMTMzMiwxMiBAQCB2b2lkIFBhZ2U6OnNldFRp
bWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlIHN0YXRlKQogICAgIH0KIH0K
IAotdm9pZCBQYWdlOjpzZXRUaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxpbWl0KQordm9pZCBQYWdlOjpzZXRET01UaW1lckFsaWdu
bWVudEludGVydmFsSW5jcmVhc2VMaW1pdChTZWNvbmRzIGxpbWl0KQogewotICAgIG1fdGltZXJB
bGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgPSBsaW1pdDsKKyAgICBtX2RvbVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0ID0gbGltaXQ7CiAKLSAgICAvLyBJZiAobV90aW1l
ckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCA8IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCkgdGhlbiB3ZSBuZWVkCi0gICAgLy8gdG8gdXBkYXRlIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCwgaWYgZ3JlYXRlciB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgaW5jcmVhc2UgdGltZXIuCisg
ICAgLy8gSWYgKG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgPCBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwpIHRoZW4gd2UgbmVlZAorICAgIC8vIHRvIHVwZGF0ZSBt
X2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwsIGlmIGdyZWF0ZXIgdGhlbiBuZWVkIHRvIHJlc3Rh
cnQgdGhlIGluY3JlYXNlIHRpbWVyLgogICAgIGlmIChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlID09
IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkSW5jcmVhc2luZykKICAgICAgICAgdXBkYXRl
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogfQpAQCAtMTM0OCwyOCArMTM0OCwyOCBAQCB2
b2lkIFBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKQogCiAgICAgc3dpdGNo
IChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlKSB7CiAgICAgY2FzZSBUaW1lclRocm90dGxpbmdTdGF0
ZTo6RGlzYWJsZWQ6Ci0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVy
OjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVu
dEludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkVuYWJsZWQ6Ci0gICAg
ICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25t
ZW50SW50ZXJ2YWwoKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gRE9N
VGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkVuYWJsZWRJbmNyZWFzaW5nOgogICAgICAg
ICAvLyBGb3IgcGFnZXMgaW4gcHJlcmVuZGVyIHN0YXRlIG1heGltdW0gdGhyb3R0bGluZyBraWNr
cyBpbiBpbW1lZGlhdGVseS4KICAgICAgICAgaWYgKG1faXNQcmVyZW5kZXIpCi0gICAgICAgICAg
ICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0OworICAgICAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gbV9k
b21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBBU1NFUlQobV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZS50
aW1lX3NpbmNlX2Vwb2NoKCkgIT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6ZHVyYXRpb246
Onplcm8oKSk7Ci0gICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6OmNo
cm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdl
ZFRpbWUpOworICAgICAgICAgICAgQVNTRVJUKG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hh
bmdlZFRpbWUgPiAwKTsKKyAgICAgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9
IFNlY29uZHMgeyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fdGltZXJUaHJvdHRs
aW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgfTsKICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGJlbG93
IHRoZSBsaW1pdCwgc2V0IHRoZSB0aW1lci4gSWYgYWJvdmUsIGNsYW1wIHRvIGxpbWl0LgotICAg
ICAgICAgICAgaWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlTGltaXQpCisgICAgICAgICAgICBpZiAobV9kb21UaW1lckFsaWdubWVu
dEludGVydmFsIDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCkKICAg
ICAgICAgICAgICAgICBuZWVkc0luY3JlYXNlVGltZXIgPSB0cnVlOwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQ7CisgICAgICAgICAgICAgICAgbV9kb21UaW1lckFs
aWdubWVudEludGVydmFsID0gbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1p
dDsKICAgICAgICAgfQogICAgICAgICAvLyBBbGlnbm1lbnQgaW50ZXJ2YWwgc2hvdWxkIG5vdCBi
ZSBsZXNzIHRoYW4gRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpLgotICAg
ICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6Om1heChtX3RpbWVyQWxpZ25tZW50
SW50ZXJ2YWwsIERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSk7CisgICAg
ICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6bWF4KG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbCwgRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpKTsK
ICAgICB9CiAKICAgICAvLyBJZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGF1dG8taW5jcmVhc2lu
ZyBvZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGFuZCB0aGUgYXV0by1pbmNyZWFzZQpAQCAtMTM3
NywxNiArMTM3NywxNiBAQCB2b2lkIFBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoKQogICAgIC8vIGJldHdlZW4gaW5jcmVhc2VzIGlzIGVxdWFsIHRvIHRoZSBjdXJyZW50IHRo
cm90dGxlIHRpbWUuIFNpbmNlIGFsaW5tZW50IGludGVydmFsIGluY3JlYXNlcwogICAgIC8vIGV4
cG9uZW50aWFsbHksIHRpbWUgYmV0d2VlbiBzdGVwcyBpcyBleHBvbmVudGlhbCB0b28uCiAgICAg
aWYgKCFuZWVkc0luY3JlYXNlVGltZXIpCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlVGltZXIuc3RvcCgpOwotICAgIGVsc2UgaWYgKCFtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWxJbmNyZWFzZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuc3Rv
cCgpOworICAgIGVsc2UgaWYgKCFtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3Jl
YXNlVGltZXIuc3RhcnRPbmVTaG90KG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk7CiB9CiAK
LXZvaWQgUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCgpCit2
b2lkIFBhZ2U6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyRmlyZWQoKQog
ewogICAgIEFTU0VSVChtX3NldHRpbmdzLT5oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0
b0luY3JlYXNlcygpKTsKICAgICBBU1NFUlQobV90aW1lclRocm90dGxpbmdTdGF0ZSA9PSBUaW1l
clRocm90dGxpbmdTdGF0ZTo6RW5hYmxlZEluY3JlYXNpbmcpOwotICAgIEFTU0VSVChtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0
KTsKKyAgICBBU1NFUlQobV9kb21UaW1lckFsaWdubWVudEludGVydmFsIDwgbV9kb21UaW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCk7CiAgICAgCiAgICAgLy8gQWxpZ25tZW50IGlu
dGVydmFsIGlzIGluY3JlYXNlZCB0byBlcXVhbCB0aGUgdGltZSB0aGUgcGFnZSBoYXMgYmVlbiB0
aHJvdHRsZWQsIHRvIGEgbGltaXQuCiAgICAgdXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZh
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA5MzhhMDk2ZmI3MzlkOTlmNjdlMmVkY2I1OTQzMmVmZGYx
NTZmNTM5Li4yYWEwMzM2MDQzNzg4NDM5Y2Q2MzZiMmEyZDczNDAzNGRmOGZiZjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICBQcm9ncmVzc1RyYWNrZXIm
IHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gKm1fcHJvZ3Jlc3M7IH0KICAgICBCYWNrRm9yd2Fy
ZENvbnRyb2xsZXImIGJhY2tGb3J3YXJkKCkgY29uc3QgeyByZXR1cm4gKm1fYmFja0ZvcndhcmRD
b250cm9sbGVyOyB9CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRvbVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7
IH0KKyAgICBTZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVy
biBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJMRShWSUVXX01PREVf
Q1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNTUyLDcgKzU1Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNob3dBbGxQbHVnaW5zKGJvb2wgc2hvd0FsbCkgeyBtX3Nob3dBbGxQ
bHVnaW5zID0gc2hvd0FsbDsgfQogICAgIGJvb2wgc2hvd0FsbFBsdWdpbnMoKSBjb25zdDsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRET01UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChTZWNvbmRzKTsKIAog
ICAgIGJvb2wgaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250
cm9sbGVkQnlBdXRvbWF0aW9uOyB9CiAgICAgdm9pZCBzZXRDb250cm9sbGVkQnlBdXRvbWF0aW9u
KGJvb2wgY29udHJvbGxlZCkgeyBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24gPSBjb250cm9sbGVk
OyB9CkBAIC02MDksNyArNjA5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFRpbWVyVGhyb3R0
bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlKTsKICAgICB2b2lkIHVwZGF0ZVRpbWVyVGhy
b3R0bGluZ1N0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFs
KCk7Ci0gICAgdm9pZCB0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCk7
CisgICAgdm9pZCBkb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCk7
CiAKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q2hyb21lPiBtX2Nocm9tZTsKICAgICBjb25z
dCBzdGQ6OnVuaXF1ZV9wdHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4gbV9kcmFnQ2FyZXRDb250cm9s
bGVyOwpAQCAtNzEyLDEwICs3MTIsMTAgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoVklF
V19NT0RFX0NTU19NRURJQSkKIAogICAgIFRpbWVyVGhyb3R0bGluZ1N0YXRlIG1fdGltZXJUaHJv
dHRsaW5nU3RhdGUgeyBUaW1lclRocm90dGxpbmdTdGF0ZTo6RGlzYWJsZWQgfTsKLSAgICBzdGQ6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fdGltZXJUaHJvdHRsaW5nU3RhdGVM
YXN0Q2hhbmdlZFRpbWUgeyBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlvbjo6emVy
bygpIH07Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWw7Ci0gICAgVGltZXIgbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lcjsK
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlTGltaXQgeyAwIH07CisgICAgZG91YmxlIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0
Q2hhbmdlZFRpbWUgeyAwIH07CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWw7CisgICAgVGltZXIgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lcjsK
KyAgICBTZWNvbmRzIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgeyAw
IH07CiAKICAgICBib29sIG1faXNFZGl0YWJsZTsKICAgICBib29sIG1faXNQcmVyZW5kZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDZiYjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVkY2Rl
M2RhYWFlMWQ0MjEuLjY1YTc5NGJhOTI3Mjk1MmRjNzdlOTNmMmQ0YTNjZmZkYmUxNTcxZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NDksMTAgKzQ0OSw5IEBAIHZvaWQgU2V0dGlu
Z3M6OnNldE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wgc2hvdWxkTm90UmVsb2Fk
SUZyYW1lc0ZvclVuCiAgICAgbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayA9IHNob3Vs
ZE5vdFJlbG9hZElGcmFtZXNGb3JVbmNoYW5nZWRTUkM7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNl
dE1pbmltdW1ET01UaW1lckludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2
YWwpCit2b2lkIFNldHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChTZWNvbmRzIGlu
dGVydmFsKQogewotICAgIGF1dG8gb2xkVGltZXJJbnRlcnZhbCA9IG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7Ci0gICAgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbCA9IGludGVydmFsOworICAg
IGF1dG8gb2xkVGltZXJJbnRlcnZhbCA9IHN0ZDo6ZXhjaGFuZ2UobV9taW5pbXVtRE9NVGltZXJJ
bnRlcnZhbCwgaW50ZXJ2YWwpOwogCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA3ZmM1NzA4ZWM3OTY3MWM5OTI1YTc3OGZjMTRhNDVi
ZjUwNTU1MmU5Li45ZjM3MDc1NWIwYjgyYmZlODE5MjgwYTU5ODE0MGRhMzlmNTgyMzhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xNjksOCArMTY5LDggQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoYm9vbCk7CiAg
ICAgYm9vbCBuZWVkc0Fjcm9iYXRGcmFtZVJlbG9hZGluZ1F1aXJrKCkgY29uc3QgeyByZXR1cm4g
bV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyazsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50ZXJ2YWwoKS4K
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkg
Y29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsgfQorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyk7IC8vIEluaXRp
YWxpemVkIHRvIERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFsKCkuCisgICAgU2Vjb25k
cyBtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bURPTVRp
bWVySW50ZXJ2YWw7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TGF5b3V0SW50ZXJ2
YWwoU2Vjb25kcyk7CiAgICAgU2Vjb25kcyBsYXlvdXRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGF5b3V0SW50ZXJ2YWw7IH0KQEAgLTMzOCw3ICszMzgsNyBAQCBwcml2YXRlOgogICAgIGNv
bnN0IHN0ZDo6dW5pcXVlX3B0cjxGb250R2VuZXJpY0ZhbWlsaWVzPiBtX2ZvbnRHZW5lcmljRmFt
aWxpZXM7CiAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3Jh
Z2VCbG9ja2luZ1BvbGljeTsKICAgICBTZWNvbmRzIG1fbGF5b3V0SW50ZXJ2YWw7Ci0gICAgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1ET01UaW1lckludGVydmFsOworICAgIFNl
Y29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKIAogICAgIFNFVFRJTkdTX01FTUJFUl9W
QVJJQUJMRVMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAppbmRleCBlMTVm
MGE3MDkzNzg1MGEzYTY5MDFmNzIwYzVkZTFmNjA5OTEzODY0Li41ZjNlN2I5MGUzZmM2NDE3MmRk
ZjI5ZDAxNTE3ODM4MjY2Y2FjMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGlt
ZXIuaApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFN1c3BlbmRhYmxlVGltZXIgOiBwcml2YXRlIFRpbWVyQmFzZSwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CkBAIC00OSw5ICs1MSwxOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSk7CiAgICAgdm9pZCBhdWdtZW50
UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKTsKIAorICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
U2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFydFJlcGVhdGluZyhyZXBlYXRJbnRlcnZhbC52
YWx1ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwpIHsgc3Rh
cnRPbmVTaG90KGludGVydmFsLnZhbHVlKCkpOyB9CisKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBv
dmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJvcCB0aGVzZS4KICAgICB2b2lk
IHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWwp
IHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2YWwpKTsgfQogICAgIHZv
aWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwpIHsgc3Rh
cnRPbmVTaG90KG1zVG9TZWNvbmRzKGludGVydmFsKSk7IH0KKwogICAgIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWxNUygpIGNvbnN0IHsgcmV0dXJuIHNlY29uZHNUb01T
KHJlcGVhdEludGVydmFsKCkpOyB9CisKKyAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vj
b25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhLnZhbHVlKCkpOyB9CisgICAg
dm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0
SW50ZXJ2YWwoZGVsdGEudmFsdWUoKSk7IH0KKworICAgIC8vIEZJWE1FOiBVc2UgdGhlIG92ZXJs
b2FkcyB0YWtpbmcgU2Vjb25kcyBpbnN0ZWFkIGFuZCBkcm9wIHRoZXNlLgogICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21l
bnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQogICAgIHZvaWQgYXVnbWVudFJl
cGVhdEludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJl
cGVhdEludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGlt
ZXIuY3BwCmluZGV4IGNkNTk0ZmU3Y2M1NTg5MTI5NDc0NjM5NzZkOGQxODVmOTExMTRiYmEuLjBh
NDI2Njc1NjhlYjhhY2FjN2Y3YWVkYjhlZWMwMWI2YzhiNDIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaW1lci5jcHAKQEAgLTM4Miw4ICszODIsOCBAQCB2b2lkIFRpbWVyQmFzZTo6c2V0TmV4dEZp
cmVUaW1lKGRvdWJsZSBuZXdUaW1lKQogICAgIGRvdWJsZSBvbGRUaW1lID0gbV9uZXh0RmlyZVRp
bWU7CiAgICAgLy8gRG9uJ3QgcmVhbGlnbiB6ZXJvLWRlbGF5IHRpbWVycy4KICAgICBpZiAobmV3
VGltZSkgewotICAgICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9IGFsaWduZWRGaXJlVGlt
ZShzZWNvbmRzVG9NUyhuZXdUaW1lKSkpCi0gICAgICAgICAgICBuZXdUaW1lID0gbXNUb1NlY29u
ZHMobmV3QWxpZ25lZFRpbWUudmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIG5ld0FsaWduZWRU
aW1lID0gYWxpZ25lZEZpcmVUaW1lKFNlY29uZHMgeyBuZXdUaW1lIH0pKQorICAgICAgICAgICAg
bmV3VGltZSA9IG5ld0FsaWduZWRUaW1lLnZhbHVlKCkuc2Vjb25kcygpOwogICAgIH0KIAogICAg
IGlmIChvbGRUaW1lICE9IG5ld1RpbWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IDUy
YTE2NmViYTJkMjMxOWQxNWExYjdlZDkwODJiNmIxNDMzZjNiMjQuLjA0Nzc0ODkxOGQ3MzAwN2Ri
NzA0NWFiNjVkZjkwNTdlMGJkNzRmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaApAQCAtODgs
NyArODgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0g
MDsKIAotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
PiBhbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcykgY29uc3QgeyByZXR1
cm4gc3RkOjpudWxsb3B0OyB9CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFs
aWduZWRGaXJlVGltZShTZWNvbmRzKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAog
ICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tIZWFwSW5k
ZXgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CmluZGV4IDRlMjQ0ODRiZDE3ODE0ZDg0NmY2Mjk4MWM1MGQ1ZDE2YjllNjU4MWIuLjY2NjFjOTE1
NzBkOTYxNzY5MjU5OGFhMGU3ZTk5Yzk1ZTJmZDMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNjIsNyArNjIsNyBAQCBJbnRlcm5hbFNldHRp
bmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFs
TW9ja1Njcm9sbGJhcnNFbmFibGVkKHNldHRpbmdzLm1vY2tTY3JvbGxiYXJzRW5hYmxlZCgpKQog
ICAgICwgbV9pbWFnZXNFbmFibGVkKHNldHRpbmdzLmFyZUltYWdlc0VuYWJsZWQoKSkKICAgICAs
IG1fcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMoc2V0dGluZ3MucHJlZmVyTUlNRVR5cGVGb3JJbWFn
ZXMoKSkKLSAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRp
bWVySW50ZXJ2YWwoKSkKKyAgICAsIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3Mu
bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAg
LCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMoc2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1YnRpdGxl
cygpKQogICAgICwgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoc2V0dGluZ3Muc2hvdWxkRGlzcGxh
eUNhcHRpb25zKCkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgc2V0dGluZ3Muc2V0Q2Fu
dmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyhtX29yaWdpbmFsQ2FudmFzVXNlc0FjY2VsZXJhdGVk
RHJhd2luZyk7CiAgICAgc2V0dGluZ3Muc2V0SW1hZ2VzRW5hYmxlZChtX2ltYWdlc0VuYWJsZWQp
OwogICAgIHNldHRpbmdzLnNldFByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKG1fcHJlZmVyTUlNRVR5
cGVGb3JJbWFnZXMpOwotICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1f
bWluaW11bVRpbWVySW50ZXJ2YWwpOworICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lcklu
dGVydmFsKG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwpOwogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBzZXR0aW5ncy5zZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKG1fc2hvdWxkRGlzcGxh
eVN1YnRpdGxlcyk7CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKG1fc2hv
dWxkRGlzcGxheUNhcHRpb25zKTsKQEAgLTU0NCw3ICs1NDQsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2
YWxJblNlYwogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SU5WQUxJRF9BQ0NFU1NfRVJSIH07Ci0gICAgc2V0dGluZ3MoKS5zZXRNaW5pbXVtRE9NVGltZXJJ
bnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKChzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzOjpyZXApKGludGVydmFsSW5TZWNvbmRzICogMTAwMCkpKTsKKyAgICBzZXR0aW5ncygpLnNl
dE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgeyBpbnRlcnZhbEluU2Vjb25kcyB9KTsK
ICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCmluZGV4IDhhMDlmOTU0YWJlMGE3MDBkMjQxMWJiOTg1NGZkYmFkNjcxZDk3NzQuLjQ4
NmMzMDYzMzhjZTNjMTMyYWY3ZTc4NDQxYjc1MzMwNjk2NGYyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCBtX29yaWdpbmFsVXNlc092ZXJsYXlTY3JvbGxiYXJzOwogICAgICAgICBi
b29sIG1faW1hZ2VzRW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3ByZWZlck1JTUVUeXBlRm9ySW1h
Z2VzOwotICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bVRpbWVySW50
ZXJ2YWw7CisgICAgICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVz
OwogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IDRjNWViMTg2Y2UwMDJjYTAyNTZiY2VjNzI0N2VhOTUyY2M2
ZDUzMjQuLmE5YjczMjZiNTFlNTRhMDllNjE2YTc4YjA4ZWEyMDViY2U1Mjk1NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEwMzYsNyArMTAzNiw3IEBAIEV4Y2VwdGlv
bk9yPGJvb2w+IEludGVybmFsczo6aXNUaW1lclRocm90dGxlZChpbnQgdGltZW91dElkKQogICAg
IGlmICh0aW1lci0+aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgPiB0aW1lci0+bV9vcmlnaW5h
bEludGVydmFsKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiAhIXRpbWVyLT5h
bGlnbmVkRmlyZVRpbWUoMG1zKTsKKyAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZpcmVUaW1l
KFNlY29uZHMgeyAwIH0pOwogfQogCiBib29sIEludGVybmFsczo6aXNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVUaHJvdHRsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcAppbmRleCA5YjM1NzA5NmIxZWI5YWE0NmExOGI4NzdkNzEyZTM3ODdmNzM4
MzliLi4xNTI0MTVjODIxMDI2ODA0ZmExYzRmNjBjZDAwNmFiYzhhZjQzNDk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMjA3LDcgKzIwNyw3
IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RUYXNrKFRhc2smJiB0YXNrKQogCiBpbnQg
V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFj
dGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKIHsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3Rh
bGwoKnRoaXMsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1l
b3V0KSwgdHJ1ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCp0aGlzLCBXVEZNb3Zl
KGFjdGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOwogfQog
CiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKQEAg
LTIxNyw3ICsyMTcsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhclRpbWVvdXQoaW50
IHRpbWVvdXRJZCkKIAogaW50IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbChzdGQ6OnVu
aXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQogewotICAgIHJl
dHVybiBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShhY3Rpb24pLCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxzZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjpp
bnN0YWxsKCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
dGltZW91dCksIGZhbHNlKTsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJJbnRl
cnZhbChpbnQgdGltZW91dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggMzA5MTU2YjA3Yzc2Nzg0MWMzMGFlYzA4YTE3YzI1ZThmZThhZjU5My4u
ZGUzOTMzZjk4OWQ3NmE4MjFiZTI1NWU5YTdlODFiNDlmOTdhYzFjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNDY1LDcgKzE0NjUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZUxpbWl0KCkKICAgICBzdGF0aWMgaW50IG1heGltdW1UaW1lclRocm90dGxlUGVyUGFnZUluTVMg
PSAyMDAgKiAxMDA7CiAKICAgICBpbnQgbGltaXRJbk1pbGxpc2Vjb25kcyA9IG1heGltdW1UaW1l
clRocm90dGxlUGVyUGFnZUluTVMgKiBtX2hpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNl
c0NvdW50ZXIudmFsdWUoKTsKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGxpbWl0SW5N
aWxsaXNlY29uZHMpKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OlNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGxpbWl0SW5N
aWxsaXNlY29uZHMpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVwb3J0V2ViQ29udGVu
dENQVVRpbWUoaW50NjRfdCBjcHVUaW1lLCB1aW50NjRfdCBhY3Rpdml0eVN0YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjBjOTEyNzc2Mjcx
NDViNDcxNTk4ZmEyMmQ1M2MwMmQwNGY3MTAyMC4uMDZkMjc4NzVkODA5ZjBlZjQ3NzA5NDk1ZTk4
MDE2ODIyOTFiMjM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0zMDMsOSArMzAzLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3RpdmVQb3B1cE1lbnUoV2ViUG9w
dXBNZW51Kik7CiAKLSAgICB2b2lkIHNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFz
ZUxpbWl0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbGltaXQpCisgICAgdm9pZCBzZXRIaWRk
ZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChTZWNvbmRzIGxpbWl0KQogICAg
IHsKLSAgICAgICAgbV9wYWdlLT5zZXRUaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1p
dChsaW1pdCk7CisgICAgICAgIG1fcGFnZS0+c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlTGltaXQobGltaXQpOwogICAgIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDE1ZjE2MWZh
NzdkMWY1MGQ0NDk0MzFmNGNlNDJmMWFhZGQyZDhmMS4uMTQ4YTkxM2M4MjhmNWM3MTJkYjU2OGZj
OTdmYjZkNmU4NjA3YzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC0xMjM1LDEwICsxMjM1LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAg
fQogfQogCi12b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNy
ZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCit2b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiB7CiAg
ICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQotICAgICAgICBwYWdlLT5z
ZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKG1pbGxpc2Vjb25kcykpOworICAgICAgICBwYWdlLT5zZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1p
bGxpc2Vjb25kcykpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlZjRlZDMwOTE0Y2IxZDhjZDMwZTY1ZTYxOGQ0ZmM2
ODBhOWQyMjcwLi4wMWJhYjNiNTQ4MDMxYTg2MDA5M2Y5NmZhYjhhZmRmN2VkNWQxNmMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoKTsKIAotICAgIHZvaWQgc2V0SGlk
ZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcyk7Cisg
ICAgdm9pZCBzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQg
bWlsbGlzZWNvbmRzKTsKIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShi
b29sJiBoYW5kbGVkKTsKICAgICB2b2lkIHByZXBhcmVUb1N1c3BlbmQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkNDA0MWIx
ZDk3NmM5MDJhYWQ1MDY0ZTdjZmVjNzVmMTdiNmFkNjkwLi5jMzllYmYzODJkMDMyN2U3YzJlYWUz
YmFkMWEwNzhiYTFlYWJmMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03OSw3ICs3OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBy
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2Rp
ZmllZFNpbmNlKSAtPiAoKQogICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9y
aWdpbnMpIC0+ICgpCiAKLSAgICBTZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VM
aW1pdChpbnQgbWlsbGlzZWNvbmRzKQorICAgIFNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxp
bmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAgICAgU2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU2V0UU9TKGlu
dCBsYXRlbmN5UU9TLCBpbnQgdGhyb3VnaHB1dFFPUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303583</attachid>
            <date>2017-03-06 16:46:49 -0800</date>
            <delta_ts>2017-03-06 18:12:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170306164648.patch</filename>
            <type>text/plain</type>
            <size>47985</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY5MmZhN2ZkZjgwNjE3
MzRkYzJlZThhZGE4ZWI0Y2E1ZGM2ZmUxOS4uMTcwNDg3MDIxMzEzOWZjOTdkMTE0ZjU1ZGEzMWRj
OWM3MTA0YTAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRq
dXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OnVzZXJH
ZXN0dXJlVG9rZW5Ub0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjppbnN0YWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldElu
dGVydmFsKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1pbmltdW1ET01UaW1lckludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZv
cm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZXROZXh0RmlyZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1U
aW1lckludGVydmFsKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OmlzVGltZXJUaHJvdHRsZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKToKKwor
MjAxNy0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFtp
T1NdIERpc2FibGUgYXV0b3BsYXkgb2Ygc2lsZW50IHZpZGVvcyBpbiBsb3cgcG93ZXIgbW9kZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4OTg1CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDczOTA1MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NzY2NmY4YWRj
YzY2MmFkZWVlM2UxMTc4ZWQ0Y2U0N2M3NTI4NzI4Li44YTQwMTBmNjllNGEyNDE4MjI3YzhmNWMw
ZDgyOTQ4NGE0YTUxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMDYg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQb3J0IERPTVRpbWVy
IGZyb20gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0byBXVEY6OlNlY29uZHMgdHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dXBk
YXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNl
dEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW46CisKIDIwMTctMDMtMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIFJlcG9ydCBkb21haW5zIGNyYXNoaW5nIHVuZGVyIG1lbW9y
eSBwcmVzc3VyZSB2aWEgZW5oYW5jZWQgcHJpdmFjeSBsb2dnaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjRiNzU2MTQ0NWMyMTc3MTBlNWRkYjU2YWY2NjBiYjI2YjU4MWIyNS4uNTdj
Mzk0NmNkMDA3MzY2N2I3M2M0YmM5NWEzYzRhYzJhZTZiN2U5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yODQzLDExICsyODQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlbG4oY29u
c3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB3cml0ZShXVEZN
b3ZlKHRleHRXaXRoTmV3bGluZSksIG93bmVyRG9jdW1lbnQpOwogfQogCi1zdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNv
bmRzIERvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpOworICAgICAgICBy
ZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKTsK
ICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpOwog
fQogCkBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaW1lclRocm90dGxp
bmdFbmFibGVkKGJvb2wgc2hvdWxkVGhyb3R0bGUpCiAgICAgZGlkQ2hhbmdlVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpOwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0
aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29u
c3QKK1NlY29uZHMgRG9jdW1lbnQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNS
ZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdAogewotICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkKICAg
ICAgICAgcmV0dXJuIGFsaWdubWVudEludGVydmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGZmMTkyYjM1OTdiNWM2NGE4YTQ4YzViNWM4ODhhYjZiYjI5OGQ2ZWIuLjVjNTljNjc5MjE5ODY0
YmI5ZTMwOWZkMjEwNmFkNTE2ZjJmOTQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzI3
LDkgKzEzMjcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxw
dHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5h
bDsKKyAgICBTZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QgZmluYWw7CiAK
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9v
bCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdCBmaW5hbDsKKyAgICBTZWNvbmRzIGRv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGVGcm9tVGl0bGVFbGVtZW50KCk7CiAg
ICAgdm9pZCB1cGRhdGVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzI4ODE4ZjRh
NjJjOTQzM2Q3ZWRiYzE0MDcwOTJlYWE0YzA1ZDBiMy4uZjNhYWY2MGRlNzZlYjAxOTBkMmE3M2Iw
YWY0ZDhmNDE2MmY1YmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcApAQCAtNDI3LDE1ICs0MjcsMTUgQEAgUHVibGljVVJMTWFuYWdlciYgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6cHVibGljVVJMTWFuYWdlcigpCiAgICAgcmV0dXJuICptX3B1
YmxpY1VSTE1hbmFnZXI7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0
TWluaW11bVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVt
VGltZXJJbnRlcnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11
bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkKIHsKLSAg
ICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkg
eworICAgIGlmIChtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1UaW1lcklu
dGVydmFsKSB7CiAgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZhbHVlcygp
KQogICAgICAgICAgICAgdGltZXItPnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpOwog
ICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICAvLyBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBET01UaW1lcidzIGRlZmF1bHQKICAg
ICAvLyBtaW5pbXVtIHRpbWVyIGludGVydmFsLiBGSVhNRTogdG8gbWFrZSBpdCB3b3JrIHdpdGgg
ZGVkaWNhdGVkCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAgICAgdGltZXItPmRpZENo
YW5nZUFsaWdubWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sKSBjb25z
dAorU2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERPTVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCmluZGV4IGRkZjM0NzFlZjUxMjRlOTUwODRhMGQzNTE0YTA4ZWVjZjRjOGUyMzkuLjQwNTE0
N2JlNWUxMWU0OTAwYzhiYTQ2MmJiZDdiZjM4NWQ3ZTM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg5LDEyICsxODksMTEgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpWTSYgdm0oKTsKIAotICAgIC8vIEludGVydmFs
IGlzIGluIHNlY29uZHMuCi0gICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKLSAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dDsKKyAgICB2b2lkIGFkanVzdE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgb2xkTWlu
aW11bVRpbWVySW50ZXJ2YWwpOworICAgIHZpcnR1YWwgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJ
bnRlcnZhbCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVy
dmFsKCk7Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlJiBldmVudFF1
ZXVlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcwZjIyYWZmODQ2N2RkNWVlNmYzZDM2
NjNmMDJlYzA3MWQ2ZjUzNmEuLjU4MGE4Mjg2YTUwNjM2MjE0ZTMxZjMzYjJlM2I5YTM4ZjJlZjdi
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbFNlbmRYTUxIdHRwUmVxdWVzdCh1cmwp
OwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50
SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHNldFRpbWVyRXZlbnROYW1lLCB0
cnVlKTsKICAgICBkaWRTY2hlZHVsZUFzeW5jQ2FsbChpbnN0cnVtZW50aW5nQWdlbnRzLCBBc3lu
Y0NhbGxUeXBlVGltZXIsIHRpbWVySWQsIGNvbnRleHQsIHNpbmdsZVNob3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4
IDllMGUwYWJjM2M2NWEyMjc3MGU4ODlhM2VhYzdkZDg5NDVjZjhjZDYuLmM5ZGI0ZmY4YzdiNzg5
NTQzOWUzMzcyM2FiNGZiODk3YzMxMzU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVtZW50Jiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVy
bCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgaW50IHRpbWVySWQpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTI5Myw3ICsyOTMsNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3RhdGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBjb25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7
CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRpZEluc3Rh
bGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hv
dCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlbW92ZVRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
d2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0cmluZyYg
c2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAg
LTY0Miw3ICs2NDIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICAgICB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQog
ewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvckNvbnRleHQoY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWYwZDA1NzZkMjRlZGJhYjlhMDlhODlk
NDBkMmRmMWQ4ZDk2OWEwZC4uZTIwMmQzMmM2NDU3Nzg3NzkwYjY3M2I4MTNmN2Q3OTk4MzIxNTAw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVjdCYKICAg
ICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQYWludCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwg
RnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGlt
ZXIoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSog
ZnJhbWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
VGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRydWUsIGZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGJmNWJiYmIx
NzQ0MjZlMDlkNjRjZWJhMDExZjQxZDIwNzI0N2U0YWMuLjg1ZjA2ZGFhYWEwOTYwOGI3OTFhMjM0
MWM5M2QyMDdmZWYyOTM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRJbnN0YWxs
VGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9v
bCBzaW5nbGVTaG90LCBGcmFtZSopOworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKICAgICB2b2lk
IGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgd2lsbEZpcmVU
aW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApp
bmRleCBhMjE2NTkzZjg1YjAxYTgzZGE2N2NhZTlkNGY3ZDI5N2Y1NDNjYjFiLi43NGFhN2ZmZTgx
MzM0YjRjNjUxYzE0ODQ1OGY5MmU4ZTdjYTc2YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtOTQsMTEgKzk0LDExIEBA
IFJlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShpbnQgdGltZXJJZCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAotUmVmPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCkKK1JlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNp
bmdsZVNob3QpCiB7CiAgICAgUmVmPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CiAgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVy
SWQiKSwgdGltZXJJZCk7Ci0gICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVv
dXQiKSwgKGludCl0aW1lb3V0LmNvdW50KCkpOworICAgIGRhdGEtPnNldEludGVnZXIoQVNDSUlM
aXRlcmFsKCJ0aW1lb3V0IiksIChpbnQpdGltZW91dC5taWxsaXNlY29uZHMoKSk7CiAgICAgZGF0
YS0+c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNpbmdsZVNob3QiKSwgc2luZ2xlU2hvdCk7CiAg
ICAgcmV0dXJuIGRhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZmI3MDVkMWVhNGJhMTlkZDkyYjFiZmQwM2MxYzFhZTRm
YTUyNDVmYy4uZGRmOGQwNWRmZTRlZTM2ZDg0MDQxNmI0MWFhYTdlNzQxYWE1NjRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlUHJvYmVTYW1wbGVEYXRhKGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJl
YWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIHNhbXBsZUlkKTsKICAgICBzdGF0aWMgUmVmPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVu
dCYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdl
bmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwotICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJ
bnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQsIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBzdGF0
aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3Rh
dGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKICAgICBzdGF0aWMgUmVmPElu
c3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lU3RhbXBEYXRhKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUFu
aW1hdGlvbkZyYW1lRGF0YShpbnQgY2FsbGJhY2tJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CmluZGV4IDgwZTFiOGQ2ODFlN2RjMjI2MDU2OWEyN2Q4YTgwOWE4YTJiY2IwYmIuLjA0MjBjZmU2
MTI0ZmNkOTViMzRmMjIxYTE3MGExZThmNTZlN2Y5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCkBAIC01Miw4ICs1Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNv
bnN0IGF1dG8gbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8v
IE9uZSBzZWNvbmQgbWF0Y2hlcyBHZWNrby4KLXN0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFs
Rm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5
IGRldGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IFNlY29u
ZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgeyAxIH07IC8vIE9uZSBzZWNv
bmQgbWF0Y2hlcyBHZWNrby4KK3N0YXRpYyBjb25zdCBTZWNvbmRzIG1pbkludGVydmFsRm9yTm9u
VXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgeyAxIH07IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5l
c3RpbmdMZXZlbCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTE2MSwxNCAr
MTYxLDE0IEBAIHByaXZhdGU6CiAKIGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNraW5nTmVz
dGVkVGltZXJzID0gZmFsc2U7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNl
ckdlc3R1cmUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdM
ZXZlbCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoU2Vjb25k
cyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIHsKICAgICByZXR1cm4gVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiAgICAgICAgICYmIGludGVydmFsIDw9
IG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nCiAgICAgICAgICYmICFuZXN0aW5n
TGV2ZWw7IC8vIEdlc3R1cmVzIHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIG5lc3RlZCB0aW1l
cnMuCiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVzZXJHZXN0
dXJlVG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50
IG5lc3RpbmdMZXZlbCkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVz
ZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQoU2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZl
bCkKIHsKICAgICBpZiAoIXNob3VsZEZvcndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbmVzdGlu
Z0xldmVsKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzYsNyArMTc2LDcgQEAgc3Rh
dGljIGlubGluZSBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gdXNlckdlc3R1cmVUb2tlblRvRm9y
d2FyZChzdGQ6OmNocm9ubzo6bWkKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpOwogfQogCi1ET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0
aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNpbmdsZVNob3Qp
CitET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBTZWNvbmRzIGludGVydmFsLCBi
b29sIHNpbmdsZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCiAgICAgLCBt
X25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAgLCBtX2FjdGlv
bihXVEZNb3ZlKGFjdGlvbikpCkBAIC0yMDIsNyArMjAyLDcgQEAgRE9NVGltZXI6On5ET01UaW1l
cigpCiB7CiB9CiAKLWludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW50IERPTVRp
bWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVl
X3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmds
ZVNob3QpCiB7CiAgICAgLy8gRE9NVGltZXIgY29uc3RydWN0b3IgcGFzc2VzIG93bmVyc2hpcCBv
ZiB0aGUgaW5pdGlhbCByZWYgb24gdGhlIG9iamVjdCB0byB0aGUgY29uc3RydWN0b3IuCiAgICAg
Ly8gVGhpcyByZWZlcmVuY2Ugd2lsbCBiZSByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBv
bmUtc2hvdCB0aW1lciBmaXJlcywgd2hlbiB0aGUgY29udGV4dApAQCAtMjExLDcgKzIxMSw3IEBA
IGludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChpczxE
b2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgYm9vbCBkaWREZWZlclRpbWVvdXQgPSBjb250
ZXh0LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKTsKLSAgICAgICAgaWYgKCFkaWREZWZl
clRpbWVvdXQgJiYgdGltZW91dC5jb3VudCgpIDw9IDEwMCAmJiBzaW5nbGVTaG90KSB7CisgICAg
ICAgIGlmICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQubWlsbGlzZWNvbmRzKCkgPD0gMTAw
ICYmIHNpbmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwogICAgICAgICAgICAgV2ViVGhyZWFkQWRk
T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXIodGltZXIpOyAvLyBXaWxsIG9ubHkgdGFrZSBhZmZlY3Qg
aWYgbm90IGFscmVhZHkgdmlzaWJpbGl0eSBjaGFuZ2UuCiAgICAgICAgIH0KQEAgLTQwOSwzNyAr
NDA5LDM3IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgp
CiAgICAgfQogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERPTVRpbWVyOjppbnRlcnZh
bENsYW1wZWRUb01pbmltdW0oKSBjb25zdAorU2Vjb25kcyBET01UaW1lcjo6aW50ZXJ2YWxDbGFt
cGVkVG9NaW5pbXVtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKICAgICBBU1NFUlQobV9uZXN0aW5nTGV2ZWwgPD0gbWF4VGltZXJOZXN0aW5nTGV2ZWwp
OwogCi0gICAgYXV0byBpbnRlcnZhbCA9IHN0ZDo6bWF4KDFtcywgbV9vcmlnaW5hbEludGVydmFs
KTsKKyAgICBTZWNvbmRzIGludGVydmFsID0gc3RkOjptYXgoU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcygxKSwgbV9vcmlnaW5hbEludGVydmFsKTsKIAogICAgIC8vIE9ubHkgYXBwbHkgdGhyb3R0
bGluZyB0byByZXBlYXRpbmcgdGltZXJzLgogICAgIGlmIChtX25lc3RpbmdMZXZlbCA8IG1heFRp
bWVyTmVzdGluZ0xldmVsKQogICAgICAgICByZXR1cm4gaW50ZXJ2YWw7CiAKICAgICAvLyBBcHBs
eSB0d28gdGhyb3R0bGVzIC0gdGhlIGdsb2JhbCAocGVyIFBhZ2UpIG1pbmltdW0sIGFuZCBhbHNv
IGEgcGVyLXRpbWVyIHRocm90dGxlLgotICAgIGludGVydmFsID0gc3RkOjptYXgoaW50ZXJ2YWws
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CisgICAg
aW50ZXJ2YWwgPSBzdGQ6Om1heChpbnRlcnZhbCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5t
aW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpKTsKICAgICBpZiAobV90aHJvdHRsZVN0YXRlID09IFNo
b3VsZFRocm90dGxlKQogICAgICAgICBpbnRlcnZhbCA9IHN0ZDo6bWF4KGludGVydmFsLCBtaW5J
bnRlcnZhbEZvck5vblVzZXJPYnNlcnZhYmxlQ2hhbmdlVGltZXJzKTsKICAgICByZXR1cm4gaW50
ZXJ2YWw7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gRE9N
VGltZXI6OmFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGZpcmVUaW1l
KSBjb25zdAorc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1l
KFNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiB7Ci0gICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsID09IDBtcykKKyAgICBsb25nIGxvbmcgYWxpZ25tZW50SW50ZXJ2YWxNUyA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3RpbmdMZXZl
bCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCkubWlsbGlzZWNvbmRzKCk7CisgICAgaWYgKCFhbGln
bm1lbnRJbnRlcnZhbE1TKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIAogICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgcmFuZG9taXplZFByb3BvcnRpb24gPSByYW5kb21OdW1iZXIo
KTsKIAogICAgIC8vIEZvcmNlIGFsaWdubWVudCB0byByYW5kb21pemVkQWxpZ25tZW50IGZyYWN0
aW9uIG9mIHRoZSB3YXkgYmV0d2VlbiBhbGlnbmVtbnRJbnRlcnZhbHMsIGUuZy4KLSAgICAvLyBp
ZiBhbGlnbm1lbnRJbnRlcnZhbCBpcyAxMCBhbmQgcmFuZG9taXplZEFsaWdubWVudCBpcyAwLjMg
dGhpcyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCi0gICAgYXV0byByYW5kb21pemVkT2Zm
c2V0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oYWxpZ25tZW50SW50ZXJ2YWwgKiByYW5kb21pemVkUHJvcG9ydGlvbik7Ci0gICAgYXV0byBh
ZGp1c3RlZEZpcmVUaW1lID0gZmlyZVRpbWUgLSByYW5kb21pemVkT2Zmc2V0OwotICAgIHJldHVy
biBhZGp1c3RlZEZpcmVUaW1lIC0gKGFkanVzdGVkRmlyZVRpbWUgJSBhbGlnbm1lbnRJbnRlcnZh
bCkgKyBhbGlnbm1lbnRJbnRlcnZhbCArIHJhbmRvbWl6ZWRPZmZzZXQ7CisgICAgLy8gaWYgYWxp
Z25tZW50SW50ZXJ2YWxNUyBpcyAxMCBhbmQgcmFuZG9taXplZEFsaWdubWVudCBpcyAwLjMgdGhp
cyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCisgICAgYXV0byByYW5kb21pemVkT2Zmc2V0
TVMgPSBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGFsaWdubWVudEludGVydmFsTVMgKiByYW5kb21p
emVkUHJvcG9ydGlvbik7CisgICAgYXV0byBhZGp1c3RlZEZpcmVUaW1lTVMgPSBzdGF0aWNfY2Fz
dDxsb25nIGxvbmc+KGZpcmVUaW1lLm1pbGxpc2Vjb25kcygpKSAtIHJhbmRvbWl6ZWRPZmZzZXRN
UzsKKyAgICByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhhZGp1c3RlZEZpcmVUaW1l
TVMgLSAoYWRqdXN0ZWRGaXJlVGltZU1TICUgYWxpZ25tZW50SW50ZXJ2YWxNUykgKyBhbGlnbm1l
bnRJbnRlcnZhbE1TICsgcmFuZG9taXplZE9mZnNldE1TKTsKIH0KIAogY29uc3QgY2hhciogRE9N
VGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmlu
ZGV4IDg3Mjc3Mzk3ZWE2MDhjNDE4MzdiMGE4YWNiNjAyZWIzM2NkNmZlODcuLjU0OGIwYzAzNjU3
OGFjMzlkNGYzNTI1ODVlZTM4ZjdiZDc3ZDgxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTMgKzQ1LDEzIEBAIGNs
YXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NVGltZXI+LCBwdWJsaWMg
U3VzcGVuZGFibGVUaW1lciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RE9NVGltZXIoKTsKIAot
ICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlZmF1bHRNaW5pbXVtSW50ZXJ2
YWwoKSB7IHJldHVybiA0bXM7IH0KLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAwbXM7IH0KLSAgICBzdGF0aWMg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiAxMDAwbXM7IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBkZWZhdWx0TWluaW11bUludGVy
dmFsKCkgeyByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyg0KTsgfQorICAgIHN0YXRp
YyBTZWNvbmRzIGRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIFNlY29uZHMgeyAw
IH07IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiBTZWNvbmRzIHsgMSB9OyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRpbWVyIG93
bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQKICAgICAv
LyBhbmQgcmV0dXJucyBpdHMgSWQuCi0gICAgc3RhdGljIGludCBpbnN0YWxsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOworICAgIHN0YXRpYyBp
bnQgaW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVk
dWxlZEFjdGlvbj4sIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKICAgICBzdGF0
aWMgdm9pZCByZW1vdmVCeUlkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBpbnQgdGltZW91dElk
KTsKIAogICAgIC8vIE5vdGlmeSB0aGF0IHRoZSBpbnRlcnZhbCBtYXkgbmVlZCB1cGRhdGluZyAo
ZS5nLiBiZWNhdXNlIHRoZSBtaW5pbXVtIGludGVydmFsCkBAIC02MCwxMCArNjEsMTAgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHNjcmlwdERpZEludGVyYWN0V2l0aFBsdWdpbihIVE1MUGx1
Z0luRWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIERPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBET01UaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIFNl
Y29uZHMgaW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgZnJpZW5kIGNsYXNzIEludGVy
bmFsczsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25k
cyBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNET01UaW1l
cnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVGhy
b3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKQEAgLTcx
LDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9pZCBm
aXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gYWxpZ25l
ZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpIGNvbnN0IG92ZXJyaWRlOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gYWxpZ25lZEZpcmVUaW1lKFNl
Y29uZHMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC04
NSw5ICs4Niw5IEBAIHByaXZhdGU6CiAgICAgaW50IG1fdGltZW91dElkOwogICAgIGludCBtX25l
c3RpbmdMZXZlbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBtX2FjdGlv
bjsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb3JpZ2luYWxJbnRlcnZhbDsKKyAg
ICBTZWNvbmRzIG1fb3JpZ2luYWxJbnRlcnZhbDsKICAgICBUaW1lclRocm90dGxlU3RhdGUgbV90
aHJvdHRsZVN0YXRlOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9jdXJyZW50VGlt
ZXJJbnRlcnZhbDsKKyAgICBTZWNvbmRzIG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CiAgICAgUmVm
UHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb2tlblRvRm9yd2FyZDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA2YWVkYjA5Yzg1ZTE3ZGQxNTJkMzRjMzFl
OGJmNDAyMmUyNzNhZjFmLi5lMmIzOGE1MTFmNGIwYjgwMjEyOWUzMTYyM2NiMDRlYmYwMzU2NTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjYzLDcgKzE2NjMsNyBAQCBFeGNl
cHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sCiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
TlZBTElEX0FDQ0VTU19FUlIgfTsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRl
eHQsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwg
dHJ1ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFj
dGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOwogfQogCiB2
b2lkIERPTVdpbmRvdzo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpCkBAIC0xNjk1LDcgKzE2
OTUsNyBAQCBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0SW50ZXJ2YWwoc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLAogICAgIGF1dG8qIGNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07Ci0gICAgcmV0dXJuIERPTVRpbWVyOjpp
bnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlvbiksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHModGltZW91dCksIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRl
eHQsIFdURk1vdmUoYWN0aW9uKSwgU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwg
ZmFsc2UpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWVjMWRlYzBlYWUzMzgxMWQyNGM1NjMxNTgwNTZhODRh
ODcwNDc0Ni4uNGE2OTZjYzZiZDhmOTY3MzUzMWRhMzllYzliZTYwMWYzZjc4NmJmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0yMzQsOCArMjM0LDggQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElB
KQogICAgICwgbV92aWV3TW9kZShWaWV3TW9kZVdpbmRvd2VkKQogI2VuZGlmIC8vIEVOQUJMRShW
SUVXX01PREVfQ1NTX01FRElBKQotICAgICwgbV90aW1lckFsaWdubWVudEludGVydmFsKERPTVRp
bWVyOjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSkKLSAgICAsIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlVGltZXIoKnRoaXMsICZQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VUaW1lckZpcmVkKQorICAgICwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsKERP
TVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSkKKyAgICAsIG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIoKnRoaXMsICZQYWdlOjpkb21UaW1lckFsaWdubWVu
dEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKQogICAgICwgbV9pc0VkaXRhYmxlKGZhbHNlKQog
ICAgICwgbV9pc1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1fYWN0aXZpdHlTdGF0ZShQYWdlSW5p
dGlhbEFjdGl2aXR5U3RhdGUpCkBAIC0xMzE5LDcgKzEzMTksNyBAQCB2b2lkIFBhZ2U6OnNldFRp
bWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlIHN0YXRlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlID0gc3RhdGU7Ci0gICAgbV90aW1l
clRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2s6Om5vdygpOworICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAogICAgIHVwZGF0ZURPTVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoKTsKIApAQCAtMTMzMiwxMiArMTMzMiwxMiBAQCB2b2lkIFBhZ2U6OnNldFRp
bWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlIHN0YXRlKQogICAgIH0KIH0K
IAotdm9pZCBQYWdlOjpzZXRUaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxpbWl0KQordm9pZCBQYWdlOjpzZXRET01UaW1lckFsaWdu
bWVudEludGVydmFsSW5jcmVhc2VMaW1pdChTZWNvbmRzIGxpbWl0KQogewotICAgIG1fdGltZXJB
bGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgPSBsaW1pdDsKKyAgICBtX2RvbVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0ID0gbGltaXQ7CiAKLSAgICAvLyBJZiAobV90aW1l
ckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCA8IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCkgdGhlbiB3ZSBuZWVkCi0gICAgLy8gdG8gdXBkYXRlIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCwgaWYgZ3JlYXRlciB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgaW5jcmVhc2UgdGltZXIuCisg
ICAgLy8gSWYgKG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgPCBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwpIHRoZW4gd2UgbmVlZAorICAgIC8vIHRvIHVwZGF0ZSBt
X2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwsIGlmIGdyZWF0ZXIgdGhlbiBuZWVkIHRvIHJlc3Rh
cnQgdGhlIGluY3JlYXNlIHRpbWVyLgogICAgIGlmIChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlID09
IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkSW5jcmVhc2luZykKICAgICAgICAgdXBkYXRl
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogfQpAQCAtMTM0OCwyOCArMTM0OCwyOCBAQCB2
b2lkIFBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKQogCiAgICAgc3dpdGNo
IChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlKSB7CiAgICAgY2FzZSBUaW1lclRocm90dGxpbmdTdGF0
ZTo6RGlzYWJsZWQ6Ci0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVy
OjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVu
dEludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkVuYWJsZWQ6Ci0gICAg
ICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25t
ZW50SW50ZXJ2YWwoKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gRE9N
VGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkVuYWJsZWRJbmNyZWFzaW5nOgogICAgICAg
ICAvLyBGb3IgcGFnZXMgaW4gcHJlcmVuZGVyIHN0YXRlIG1heGltdW0gdGhyb3R0bGluZyBraWNr
cyBpbiBpbW1lZGlhdGVseS4KICAgICAgICAgaWYgKG1faXNQcmVyZW5kZXIpCi0gICAgICAgICAg
ICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0OworICAgICAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gbV9k
b21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBBU1NFUlQobV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZS50
aW1lX3NpbmNlX2Vwb2NoKCkgIT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6ZHVyYXRpb246
Onplcm8oKSk7Ci0gICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6OmNo
cm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdl
ZFRpbWUpOworICAgICAgICAgICAgQVNTRVJUKG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hh
bmdlZFRpbWUgPiAwKTsKKyAgICAgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9
IFNlY29uZHMgeyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fdGltZXJUaHJvdHRs
aW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgfTsKICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGJlbG93
IHRoZSBsaW1pdCwgc2V0IHRoZSB0aW1lci4gSWYgYWJvdmUsIGNsYW1wIHRvIGxpbWl0LgotICAg
ICAgICAgICAgaWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlTGltaXQpCisgICAgICAgICAgICBpZiAobV9kb21UaW1lckFsaWdubWVu
dEludGVydmFsIDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCkKICAg
ICAgICAgICAgICAgICBuZWVkc0luY3JlYXNlVGltZXIgPSB0cnVlOwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQ7CisgICAgICAgICAgICAgICAgbV9kb21UaW1lckFs
aWdubWVudEludGVydmFsID0gbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1p
dDsKICAgICAgICAgfQogICAgICAgICAvLyBBbGlnbm1lbnQgaW50ZXJ2YWwgc2hvdWxkIG5vdCBi
ZSBsZXNzIHRoYW4gRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpLgotICAg
ICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6Om1heChtX3RpbWVyQWxpZ25tZW50
SW50ZXJ2YWwsIERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSk7CisgICAg
ICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6bWF4KG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbCwgRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpKTsK
ICAgICB9CiAKICAgICAvLyBJZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGF1dG8taW5jcmVhc2lu
ZyBvZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGFuZCB0aGUgYXV0by1pbmNyZWFzZQpAQCAtMTM3
NywxNiArMTM3NywxNiBAQCB2b2lkIFBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoKQogICAgIC8vIGJldHdlZW4gaW5jcmVhc2VzIGlzIGVxdWFsIHRvIHRoZSBjdXJyZW50IHRo
cm90dGxlIHRpbWUuIFNpbmNlIGFsaW5tZW50IGludGVydmFsIGluY3JlYXNlcwogICAgIC8vIGV4
cG9uZW50aWFsbHksIHRpbWUgYmV0d2VlbiBzdGVwcyBpcyBleHBvbmVudGlhbCB0b28uCiAgICAg
aWYgKCFuZWVkc0luY3JlYXNlVGltZXIpCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlVGltZXIuc3RvcCgpOwotICAgIGVsc2UgaWYgKCFtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWxJbmNyZWFzZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuc3Rv
cCgpOworICAgIGVsc2UgaWYgKCFtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3Jl
YXNlVGltZXIuc3RhcnRPbmVTaG90KG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk7CiB9CiAK
LXZvaWQgUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCgpCit2
b2lkIFBhZ2U6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyRmlyZWQoKQog
ewogICAgIEFTU0VSVChtX3NldHRpbmdzLT5oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0
b0luY3JlYXNlcygpKTsKICAgICBBU1NFUlQobV90aW1lclRocm90dGxpbmdTdGF0ZSA9PSBUaW1l
clRocm90dGxpbmdTdGF0ZTo6RW5hYmxlZEluY3JlYXNpbmcpOwotICAgIEFTU0VSVChtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0
KTsKKyAgICBBU1NFUlQobV9kb21UaW1lckFsaWdubWVudEludGVydmFsIDwgbV9kb21UaW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCk7CiAgICAgCiAgICAgLy8gQWxpZ25tZW50IGlu
dGVydmFsIGlzIGluY3JlYXNlZCB0byBlcXVhbCB0aGUgdGltZSB0aGUgcGFnZSBoYXMgYmVlbiB0
aHJvdHRsZWQsIHRvIGEgbGltaXQuCiAgICAgdXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZh
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA5MzhhMDk2ZmI3MzlkOTlmNjdlMmVkY2I1OTQzMmVmZGYx
NTZmNTM5Li4yYWEwMzM2MDQzNzg4NDM5Y2Q2MzZiMmEyZDczNDAzNGRmOGZiZjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICBQcm9ncmVzc1RyYWNrZXIm
IHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gKm1fcHJvZ3Jlc3M7IH0KICAgICBCYWNrRm9yd2Fy
ZENvbnRyb2xsZXImIGJhY2tGb3J3YXJkKCkgY29uc3QgeyByZXR1cm4gKm1fYmFja0ZvcndhcmRD
b250cm9sbGVyOyB9CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRvbVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7
IH0KKyAgICBTZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVy
biBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJMRShWSUVXX01PREVf
Q1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNTUyLDcgKzU1Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNob3dBbGxQbHVnaW5zKGJvb2wgc2hvd0FsbCkgeyBtX3Nob3dBbGxQ
bHVnaW5zID0gc2hvd0FsbDsgfQogICAgIGJvb2wgc2hvd0FsbFBsdWdpbnMoKSBjb25zdDsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRET01UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChTZWNvbmRzKTsKIAog
ICAgIGJvb2wgaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250
cm9sbGVkQnlBdXRvbWF0aW9uOyB9CiAgICAgdm9pZCBzZXRDb250cm9sbGVkQnlBdXRvbWF0aW9u
KGJvb2wgY29udHJvbGxlZCkgeyBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24gPSBjb250cm9sbGVk
OyB9CkBAIC02MDksNyArNjA5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFRpbWVyVGhyb3R0
bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlKTsKICAgICB2b2lkIHVwZGF0ZVRpbWVyVGhy
b3R0bGluZ1N0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFs
KCk7Ci0gICAgdm9pZCB0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCk7
CisgICAgdm9pZCBkb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCk7
CiAKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q2hyb21lPiBtX2Nocm9tZTsKICAgICBjb25z
dCBzdGQ6OnVuaXF1ZV9wdHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4gbV9kcmFnQ2FyZXRDb250cm9s
bGVyOwpAQCAtNzEyLDEwICs3MTIsMTAgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoVklF
V19NT0RFX0NTU19NRURJQSkKIAogICAgIFRpbWVyVGhyb3R0bGluZ1N0YXRlIG1fdGltZXJUaHJv
dHRsaW5nU3RhdGUgeyBUaW1lclRocm90dGxpbmdTdGF0ZTo6RGlzYWJsZWQgfTsKLSAgICBzdGQ6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fdGltZXJUaHJvdHRsaW5nU3RhdGVM
YXN0Q2hhbmdlZFRpbWUgeyBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlvbjo6emVy
bygpIH07Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWw7Ci0gICAgVGltZXIgbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lcjsK
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlTGltaXQgeyAwIH07CisgICAgZG91YmxlIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0
Q2hhbmdlZFRpbWUgeyAwIH07CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWw7CisgICAgVGltZXIgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lcjsK
KyAgICBTZWNvbmRzIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgeyAw
IH07CiAKICAgICBib29sIG1faXNFZGl0YWJsZTsKICAgICBib29sIG1faXNQcmVyZW5kZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDZiYjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVkY2Rl
M2RhYWFlMWQ0MjEuLjdkMDg3ODQ3Y2Q4YTg5Mjg0YmI0Njg4ZDQxMmUzNDkzNmI5YmU0MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NDksMTcgKzQ0OSwxNiBAQCB2b2lkIFNldHRp
bmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNob3VsZE5vdFJlbG9h
ZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgPSBzaG91
bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwogfQogCi12b2lkIFNldHRpbmdzOjpz
ZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVy
dmFsKQordm9pZCBTZXR0aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBp
bnRlcnZhbCkKIHsKLSAgICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBtX21pbmltdW1ET01UaW1l
ckludGVydmFsOwotICAgIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbDsKKyAg
ICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBzdGQ6OmV4Y2hhbmdlKG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWwsIGludGVydmFsKTsKIAogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47
CiAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChmcmFt
ZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hZGp1c3RNaW5p
bXVtVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVydmFsKTsKKyAgICAgICAgICAgIGZyYW1lLT5k
b2N1bWVudCgpLT5hZGp1c3RNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVydmFs
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA3ZmM1NzA4ZWM3OTY3MWM5
OTI1YTc3OGZjMTRhNDViZjUwNTU1MmU5Li45ZjM3MDc1NWIwYjgyYmZlODE5MjgwYTU5ODE0MGRh
MzlmNTgyMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xNjksOCArMTY5LDggQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5n
UXVpcmsoYm9vbCk7CiAgICAgYm9vbCBuZWVkc0Fjcm9iYXRGcmFtZVJlbG9hZGluZ1F1aXJrKCkg
Y29uc3QgeyByZXR1cm4gbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyazsgfQogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRNaW5p
bXVtSW50ZXJ2YWwoKS4KLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1ET01U
aW1lckludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vj
b25kcyk7IC8vIEluaXRpYWxpemVkIHRvIERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFs
KCkuCisgICAgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJu
IG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TGF5b3V0SW50ZXJ2YWwoU2Vjb25kcyk7CiAgICAgU2Vjb25kcyBsYXlvdXRJbnRlcnZhbCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0SW50ZXJ2YWw7IH0KQEAgLTMzOCw3ICszMzgsNyBAQCBw
cml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxGb250R2VuZXJpY0ZhbWlsaWVzPiBt
X2ZvbnRHZW5lcmljRmFtaWxpZXM7CiAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICAgICBTZWNvbmRzIG1fbGF5b3V0SW50
ZXJ2YWw7Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1ET01UaW1lcklu
dGVydmFsOworICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKIAogICAgIFNF
VFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TdXNwZW5kYWJsZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGlt
ZXIuaAppbmRleCBlMTVmMGE3MDkzNzg1MGEzYTY5MDFmNzIwYzVkZTFmNjA5OTEzODY0Li41ZjNl
N2I5MGUzZmM2NDE3MmRkZjI5ZDAxNTE3ODM4MjY2Y2FjMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1N1c3BlbmRhYmxlVGltZXIuaApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5o
PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFN1c3BlbmRhYmxlVGltZXIgOiBwcml2
YXRlIFRpbWVyQmFzZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CkBAIC00OSw5ICs1MSwxOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSk7CiAg
ICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKTsKIAorICAgIHZvaWQg
c3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFydFJlcGVhdGluZyhy
ZXBlYXRJbnRlcnZhbC52YWx1ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29uZHMg
aW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KGludGVydmFsLnZhbHVlKCkpOyB9CisKKyAgICAvLyBG
SVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJvcCB0
aGVzZS4KICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
cmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2
YWwpKTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
aW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGludGVydmFsKSk7IH0KKwogICAg
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWxNUygpIGNvbnN0IHsgcmV0
dXJuIHNlY29uZHNUb01TKHJlcGVhdEludGVydmFsKCkpOyB9CisKKyAgICB2b2lkIGF1Z21lbnRG
aXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhLnZh
bHVlKCkpOyB9CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkg
eyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZGVsdGEudmFsdWUoKSk7IH0KKworICAgIC8vIEZJWE1F
OiBVc2UgdGhlIG92ZXJsb2FkcyB0YWtpbmcgU2Vjb25kcyBpbnN0ZWFkIGFuZCBkcm9wIHRoZXNl
LgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
IGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQogICAg
IHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVs
dGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IGNkNTk0ZmU3Y2M1NTg5MTI5NDc0NjM5NzZkOGQx
ODVmOTExMTRiYmEuLjBhNDI2Njc1NjhlYjhhY2FjN2Y3YWVkYjhlZWMwMWI2YzhiNDIyYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTM4Miw4ICszODIsOCBAQCB2b2lkIFRpbWVy
QmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJsZSBuZXdUaW1lKQogICAgIGRvdWJsZSBvbGRUaW1l
ID0gbV9uZXh0RmlyZVRpbWU7CiAgICAgLy8gRG9uJ3QgcmVhbGlnbiB6ZXJvLWRlbGF5IHRpbWVy
cy4KICAgICBpZiAobmV3VGltZSkgewotICAgICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9
IGFsaWduZWRGaXJlVGltZShzZWNvbmRzVG9NUyhuZXdUaW1lKSkpCi0gICAgICAgICAgICBuZXdU
aW1lID0gbXNUb1NlY29uZHMobmV3QWxpZ25lZFRpbWUudmFsdWUoKSk7CisgICAgICAgIGlmIChh
dXRvIG5ld0FsaWduZWRUaW1lID0gYWxpZ25lZEZpcmVUaW1lKFNlY29uZHMgeyBuZXdUaW1lIH0p
KQorICAgICAgICAgICAgbmV3VGltZSA9IG5ld0FsaWduZWRUaW1lLnZhbHVlKCkuc2Vjb25kcygp
OwogICAgIH0KIAogICAgIGlmIChvbGRUaW1lICE9IG5ld1RpbWUpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5oCmluZGV4IDUyYTE2NmViYTJkMjMxOWQxNWExYjdlZDkwODJiNmIxNDMzZjNiMjQuLjA0
Nzc0ODkxOGQ3MzAwN2RiNzA0NWFiNjVkZjkwNTdlMGJkNzRmODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGltZXIuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBmaXJlZCgpID0gMDsKIAotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cykgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAgdmlydHVhbCBzdGQ6Om9wdGlv
bmFsPFNlY29uZHM+IGFsaWduZWRGaXJlVGltZShTZWNvbmRzKSBjb25zdCB7IHJldHVybiBzdGQ6
Om51bGxvcHQ7IH0KIAogICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0OwogICAgIHZv
aWQgY2hlY2tIZWFwSW5kZXgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IDRlMjQ0ODRiZDE3ODE0ZDg0NmY2Mjk4MWM1MGQ1ZDE2Yjll
NjU4MWIuLjY2NjFjOTE1NzBkOTYxNzY5MjU5OGFhMGU3ZTk5Yzk1ZTJmZDMwNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNjIsNyArNjIsNyBA
QCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAg
ICAgLCBtX29yaWdpbmFsTW9ja1Njcm9sbGJhcnNFbmFibGVkKHNldHRpbmdzLm1vY2tTY3JvbGxi
YXJzRW5hYmxlZCgpKQogICAgICwgbV9pbWFnZXNFbmFibGVkKHNldHRpbmdzLmFyZUltYWdlc0Vu
YWJsZWQoKSkKICAgICAsIG1fcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMoc2V0dGluZ3MucHJlZmVy
TUlNRVR5cGVGb3JJbWFnZXMoKSkKLSAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoc2V0dGlu
Z3MubWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSkKKyAgICAsIG1fbWluaW11bURPTVRpbWVySW50
ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSkKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCiAgICAgLCBtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMoc2V0dGluZ3Muc2hvdWxk
RGlzcGxheVN1YnRpdGxlcygpKQogICAgICwgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoc2V0dGlu
Z3Muc2hvdWxkRGlzcGxheUNhcHRpb25zKCkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAg
c2V0dGluZ3Muc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyhtX29yaWdpbmFsQ2FudmFz
VXNlc0FjY2VsZXJhdGVkRHJhd2luZyk7CiAgICAgc2V0dGluZ3Muc2V0SW1hZ2VzRW5hYmxlZCht
X2ltYWdlc0VuYWJsZWQpOwogICAgIHNldHRpbmdzLnNldFByZWZlck1JTUVUeXBlRm9ySW1hZ2Vz
KG1fcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMpOwotICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01U
aW1lckludGVydmFsKG1fbWluaW11bVRpbWVySW50ZXJ2YWwpOworICAgIHNldHRpbmdzLnNldE1p
bmltdW1ET01UaW1lckludGVydmFsKG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwpOwogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKICAgICBzZXR0aW5ncy5zZXRTaG91bGREaXNwbGF5U3VidGl0bGVz
KG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyk7CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxh
eUNhcHRpb25zKG1fc2hvdWxkRGlzcGxheUNhcHRpb25zKTsKQEAgLTU0NCw3ICs1NDQsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZh
bChkb3VibGUgaW50ZXJ2YWxJblNlYwogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07Ci0gICAgc2V0dGluZ3MoKS5zZXRN
aW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGludGVydmFsSW5TZWNvbmRzICogMTAwMCkpKTsKKyAg
ICBzZXR0aW5ncygpLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgeyBpbnRlcnZh
bEluU2Vjb25kcyB9KTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDhhMDlmOTU0YWJlMGE3MDBkMjQxMWJiOTg1NGZk
YmFkNjcxZDk3NzQuLjQ4NmMzMDYzMzhjZTNjMTMyYWY3ZTc4NDQxYjc1MzMwNjk2NGYyY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDgsNyArMTQ4
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX29yaWdpbmFsVXNlc092ZXJsYXlTY3JvbGxi
YXJzOwogICAgICAgICBib29sIG1faW1hZ2VzRW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3ByZWZl
ck1JTUVUeXBlRm9ySW1hZ2VzOwotICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1f
bWluaW11bVRpbWVySW50ZXJ2YWw7CisgICAgICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJ
bnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGJvb2wgbV9zaG91bGRE
aXNwbGF5U3VidGl0bGVzOwogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDRjNWViMTg2Y2UwMDJjYTAyNTZi
Y2VjNzI0N2VhOTUyY2M2ZDUzMjQuLmE5YjczMjZiNTFlNTRhMDllNjE2YTc4YjA4ZWEyMDViY2U1
Mjk1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEwMzYsNyArMTAz
Niw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEludGVybmFsczo6aXNUaW1lclRocm90dGxlZChpbnQg
dGltZW91dElkKQogICAgIGlmICh0aW1lci0+aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgPiB0
aW1lci0+bV9vcmlnaW5hbEludGVydmFsKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJl
dHVybiAhIXRpbWVyLT5hbGlnbmVkRmlyZVRpbWUoMG1zKTsKKyAgICByZXR1cm4gISF0aW1lci0+
YWxpZ25lZEZpcmVUaW1lKFNlY29uZHMgeyAwIH0pOwogfQogCiBib29sIEludGVybmFsczo6aXNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA5YjM1NzA5NmIxZWI5YWE0NmExOGI4
NzdkNzEyZTM3ODdmNzM4MzliLi4xNTI0MTVjODIxMDI2ODA0ZmExYzRmNjBjZDAwNmFiYzhhZjQz
NDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApA
QCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RUYXNrKFRhc2sm
JiB0YXNrKQogCiBpbnQgV29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVf
cHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKIHsKLSAgICByZXR1cm4g
RE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxs
KCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91
dCksIHRydWUpOwogfQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhclRpbWVvdXQoaW50
IHRpbWVvdXRJZCkKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpj
bGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKIAogaW50IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRJ
bnRlcnZhbChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1l
b3V0KQogewotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShhY3Rp
b24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxzZSk7CisgICAgcmV0
dXJuIERPTVRpbWVyOjppbnN0YWxsKCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIFNlY29uZHM6OmZy
b21NaWxsaXNlY29uZHModGltZW91dCksIGZhbHNlKTsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxT
Y29wZTo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzA5MTU2YjA3Yzc2Nzg0MWMzMGFlYzA4YTE3
YzI1ZThmZThhZjU5My4uZGUzOTMzZjk4OWQ3NmE4MjFiZTI1NWU5YTdlODFiNDlmOTdhYzFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNDY1
LDcgKzE0NjUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0
bGluZ0F1dG9JbmNyZWFzZUxpbWl0KCkKICAgICBzdGF0aWMgaW50IG1heGltdW1UaW1lclRocm90
dGxlUGVyUGFnZUluTVMgPSAyMDAgKiAxMDA7CiAKICAgICBpbnQgbGltaXRJbk1pbGxpc2Vjb25k
cyA9IG1heGltdW1UaW1lclRocm90dGxlUGVyUGFnZUluTVMgKiBtX2hpZGRlblBhZ2VUaHJvdHRs
aW5nQXV0b0luY3JlYXNlc0NvdW50ZXIudmFsdWUoKTsKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXMo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFz
ZUxpbWl0KGxpbWl0SW5NaWxsaXNlY29uZHMpKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFz
ZUxpbWl0KGxpbWl0SW5NaWxsaXNlY29uZHMpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVwb3J0V2ViQ29udGVudENQVVRpbWUoaW50NjRfdCBjcHVUaW1lLCB1aW50NjRfdCBhY3Rpdml0
eVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggZjBjOTEyNzc2MjcxNDViNDcxNTk4ZmEyMmQ1M2MwMmQwNGY3MTAyMC4uMDZkMjc4NzVkODA5
ZjBlZjQ3NzA5NDk1ZTk4MDE2ODIyOTFiMjM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zMDMsOSArMzAzLDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3RpdmVQ
b3B1cE1lbnUoV2ViUG9wdXBNZW51Kik7CiAKLSAgICB2b2lkIHNldEhpZGRlblBhZ2VUaW1lclRo
cm90dGxpbmdJbmNyZWFzZUxpbWl0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbGltaXQpCisg
ICAgdm9pZCBzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChTZWNv
bmRzIGxpbWl0KQogICAgIHsKLSAgICAgICAgbV9wYWdlLT5zZXRUaW1lckFsaWdubWVudEludGVy
dmFsSW5jcmVhc2VMaW1pdChsaW1pdCk7CisgICAgICAgIG1fcGFnZS0+c2V0RE9NVGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQobGltaXQpOwogICAgIH0KIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggMDE1ZjE2MWZhNzdkMWY1MGQ0NDk0MzFmNGNlNDJmMWFhZGQyZDhmMS4uMTQ4YTkxM2M4
MjhmNWM3MTJkYjU2OGZjOTdmYjZkNmU4NjA3YzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMjM1LDEwICsxMjM1LDEwIEBAIHZvaWQgV2ViUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvCiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VUaW1l
clRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCit2b2lkIFdlYlByb2Nl
c3M6OnNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxs
aXNlY29uZHMpCiB7CiAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQot
ICAgICAgICBwYWdlLT5zZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kcykpOworICAgICAgICBwYWdlLT5z
ZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kcykpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlZjRlZDMwOTE0Y2IxZDhj
ZDMwZTY1ZTYxOGQ0ZmM2ODBhOWQyMjcwLi4wMWJhYjNiNTQ4MDMxYTg2MDA5M2Y5NmZhYjhhZmRm
N2VkNWQxNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTk1
LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoKTsKIAot
ICAgIHZvaWQgc2V0SGlkZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1p
bGxpc2Vjb25kcyk7CisgICAgdm9pZCBzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKTsKIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKTsKICAgICB2b2lkIHByZXBhcmVUb1N1c3BlbmQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCBkNDA0MWIxZDk3NmM5MDJhYWQ1MDY0ZTdjZmVjNzVmMTdiNmFkNjkwLi5jMzllYmYz
ODJkMDMyN2U3YzJlYWUzYmFkMWEwNzhiYTFlYWJmMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03OSw3ICs3OSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIERlbGV0ZVdlYnNpdGVE
YXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKSAtPiAoKQogICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgpCiAKLSAgICBTZXRIaWRkZW5QYWdlVGltZXJUaHJv
dHRsaW5nSW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKQorICAgIFNldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAgICAgU2V0
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgU2V0UU9TKGludCBsYXRlbmN5UU9TLCBpbnQgdGhyb3VnaHB1dFFPUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303586</attachid>
            <date>2017-03-06 17:00:49 -0800</date>
            <delta_ts>2017-03-06 19:53:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170306170048.patch</filename>
            <type>text/plain</type>
            <size>49087</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY5MmZhN2ZkZjgwNjE3
MzRkYzJlZThhZGE4ZWI0Y2E1ZGM2ZmUxOS4uMTcwNDg3MDIxMzEzOWZjOTdkMTE0ZjU1ZGEzMWRj
OWM3MTA0YTAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRq
dXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OnVzZXJH
ZXN0dXJlVG9rZW5Ub0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjppbnN0YWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldElu
dGVydmFsKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1pbmltdW1ET01UaW1lckludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZv
cm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZXROZXh0RmlyZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1U
aW1lckludGVydmFsKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OmlzVGltZXJUaHJvdHRsZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKToKKwor
MjAxNy0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFtp
T1NdIERpc2FibGUgYXV0b3BsYXkgb2Ygc2lsZW50IHZpZGVvcyBpbiBsb3cgcG93ZXIgbW9kZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4OTg1CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDczOTA1MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NzY2NmY4YWRj
YzY2MmFkZWVlM2UxMTc4ZWQ0Y2U0N2M3NTI4NzI4Li44YTQwMTBmNjllNGEyNDE4MjI3YzhmNWMw
ZDgyOTQ4NGE0YTUxYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMDYg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQb3J0IERPTVRpbWVy
IGZyb20gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0byBXVEY6OlNlY29uZHMgdHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dXBk
YXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNl
dEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW46CisKIDIwMTctMDMtMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIFJlcG9ydCBkb21haW5zIGNyYXNoaW5nIHVuZGVyIG1lbW9y
eSBwcmVzc3VyZSB2aWEgZW5oYW5jZWQgcHJpdmFjeSBsb2dnaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjRiNzU2MTQ0NWMyMTc3MTBlNWRkYjU2YWY2NjBiYjI2YjU4MWIyNS4uNTdj
Mzk0NmNkMDA3MzY2N2I3M2M0YmM5NWEzYzRhYzJhZTZiN2U5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yODQzLDExICsyODQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlbG4oY29u
c3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB3cml0ZShXVEZN
b3ZlKHRleHRXaXRoTmV3bGluZSksIG93bmVyRG9jdW1lbnQpOwogfQogCi1zdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNv
bmRzIERvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpOworICAgICAgICBy
ZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKTsK
ICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpOwog
fQogCkBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaW1lclRocm90dGxp
bmdFbmFibGVkKGJvb2wgc2hvdWxkVGhyb3R0bGUpCiAgICAgZGlkQ2hhbmdlVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpOwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0
aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29u
c3QKK1NlY29uZHMgRG9jdW1lbnQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNS
ZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdAogewotICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkKICAg
ICAgICAgcmV0dXJuIGFsaWdubWVudEludGVydmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGZmMTkyYjM1OTdiNWM2NGE4YTQ4YzViNWM4ODhhYjZiYjI5OGQ2ZWIuLjVjNTljNjc5MjE5ODY0
YmI5ZTMwOWZkMjEwNmFkNTE2ZjJmOTQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzI3
LDkgKzEzMjcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxw
dHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5h
bDsKKyAgICBTZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QgZmluYWw7CiAK
LSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9v
bCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdCBmaW5hbDsKKyAgICBTZWNvbmRzIGRv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGVGcm9tVGl0bGVFbGVtZW50KCk7CiAg
ICAgdm9pZCB1cGRhdGVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzI4ODE4ZjRh
NjJjOTQzM2Q3ZWRiYzE0MDcwOTJlYWE0YzA1ZDBiMy4uZjNhYWY2MGRlNzZlYjAxOTBkMmE3M2Iw
YWY0ZDhmNDE2MmY1YmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcApAQCAtNDI3LDE1ICs0MjcsMTUgQEAgUHVibGljVVJMTWFuYWdlciYgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6cHVibGljVVJMTWFuYWdlcigpCiAgICAgcmV0dXJuICptX3B1
YmxpY1VSTE1hbmFnZXI7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0
TWluaW11bVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVt
VGltZXJJbnRlcnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11
bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkKIHsKLSAg
ICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkg
eworICAgIGlmIChtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1UaW1lcklu
dGVydmFsKSB7CiAgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZhbHVlcygp
KQogICAgICAgICAgICAgdGltZXItPnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpOwog
ICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICAvLyBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBET01UaW1lcidzIGRlZmF1bHQKICAg
ICAvLyBtaW5pbXVtIHRpbWVyIGludGVydmFsLiBGSVhNRTogdG8gbWFrZSBpdCB3b3JrIHdpdGgg
ZGVkaWNhdGVkCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAgICAgdGltZXItPmRpZENo
YW5nZUFsaWdubWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sKSBjb25z
dAorU2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERPTVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCmluZGV4IGRkZjM0NzFlZjUxMjRlOTUwODRhMGQzNTE0YTA4ZWVjZjRjOGUyMzkuLjQwNTE0
N2JlNWUxMWU0OTAwYzhiYTQ2MmJiZDdiZjM4NWQ3ZTM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg5LDEyICsxODksMTEgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpWTSYgdm0oKTsKIAotICAgIC8vIEludGVydmFs
IGlzIGluIHNlY29uZHMuCi0gICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKLSAgICB2aXJ0
dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dDsKKyAgICB2b2lkIGFkanVzdE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgb2xkTWlu
aW11bVRpbWVySW50ZXJ2YWwpOworICAgIHZpcnR1YWwgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJ
bnRlcnZhbCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVy
dmFsKCk7Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1JlYWNoZWRN
YXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlJiBldmVudFF1
ZXVlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcwZjIyYWZmODQ2N2RkNWVlNmYzZDM2
NjNmMDJlYzA3MWQ2ZjUzNmEuLjU4MGE4Mjg2YTUwNjM2MjE0ZTMxZjMzYjJlM2I5YTM4ZjJlZjdi
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbFNlbmRYTUxIdHRwUmVxdWVzdCh1cmwp
OwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50
SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHNldFRpbWVyRXZlbnROYW1lLCB0
cnVlKTsKICAgICBkaWRTY2hlZHVsZUFzeW5jQ2FsbChpbnN0cnVtZW50aW5nQWdlbnRzLCBBc3lu
Y0NhbGxUeXBlVGltZXIsIHRpbWVySWQsIGNvbnRleHQsIHNpbmdsZVNob3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4
IDllMGUwYWJjM2M2NWEyMjc3MGU4ODlhM2VhYzdkZDg5NDVjZjhjZDYuLmM5ZGI0ZmY4YzdiNzg5
NTQzOWUzMzcyM2FiNGZiODk3YzMxMzU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVtZW50Jiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVy
bCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgaW50IHRpbWVySWQpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTI5Myw3ICsyOTMsNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3RhdGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBjb25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7
CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRpZEluc3Rh
bGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hv
dCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlbW92ZVRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
d2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0cmluZyYg
c2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAg
LTY0Miw3ICs2NDIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICAgICB3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQog
ewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvckNvbnRleHQoY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWYwZDA1NzZkMjRlZGJhYjlhMDlhODlk
NDBkMmRmMWQ4ZDk2OWEwZC4uZTIwMmQzMmM2NDU3Nzg3NzkwYjY3M2I4MTNmN2Q3OTk4MzIxNTAw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVjdCYKICAg
ICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQYWludCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwg
RnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGlt
ZXIoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSog
ZnJhbWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
VGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRydWUsIGZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGJmNWJiYmIx
NzQ0MjZlMDlkNjRjZWJhMDExZjQxZDIwNzI0N2U0YWMuLjg1ZjA2ZGFhYWEwOTYwOGI3OTFhMjM0
MWM5M2QyMDdmZWYyOTM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRJbnN0YWxs
VGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9v
bCBzaW5nbGVTaG90LCBGcmFtZSopOworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1l
cklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKICAgICB2b2lk
IGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgd2lsbEZpcmVU
aW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApp
bmRleCBhMjE2NTkzZjg1YjAxYTgzZGE2N2NhZTlkNGY3ZDI5N2Y1NDNjYjFiLi43NGFhN2ZmZTgx
MzM0YjRjNjUxYzE0ODQ1OGY5MmU4ZTdjYTc2YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtOTQsMTEgKzk0LDExIEBA
IFJlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShpbnQgdGltZXJJZCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAotUmVmPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCkKK1JlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNp
bmdsZVNob3QpCiB7CiAgICAgUmVmPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CiAgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVy
SWQiKSwgdGltZXJJZCk7Ci0gICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInRpbWVv
dXQiKSwgKGludCl0aW1lb3V0LmNvdW50KCkpOworICAgIGRhdGEtPnNldEludGVnZXIoQVNDSUlM
aXRlcmFsKCJ0aW1lb3V0IiksIChpbnQpdGltZW91dC5taWxsaXNlY29uZHMoKSk7CiAgICAgZGF0
YS0+c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNpbmdsZVNob3QiKSwgc2luZ2xlU2hvdCk7CiAg
ICAgcmV0dXJuIGRhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZmI3MDVkMWVhNGJhMTlkZDkyYjFiZmQwM2MxYzFhZTRm
YTUyNDVmYy4uZGRmOGQwNWRmZTRlZTM2ZDg0MDQxNmI0MWFhYTdlNzQxYWE1NjRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlUHJvYmVTYW1wbGVEYXRhKGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJl
YWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIHNhbXBsZUlkKTsKICAgICBzdGF0aWMgUmVmPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVu
dCYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdl
bmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwotICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJ
bnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQsIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBzdGF0
aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3Rh
dGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKICAgICBzdGF0aWMgUmVmPElu
c3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lU3RhbXBEYXRhKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUFu
aW1hdGlvbkZyYW1lRGF0YShpbnQgY2FsbGJhY2tJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CmluZGV4IDgwZTFiOGQ2ODFlN2RjMjI2MDU2OWEyN2Q4YTgwOWE4YTJiY2IwYmIuLmUyNzllMGI3
MmRlZTVkYmM4ZTlhNzhmMThmN2ZmOWViZTYyYTQzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCkBAIC01Miw4ICs1Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNv
bnN0IGF1dG8gbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAwbXM7IC8v
IE9uZSBzZWNvbmQgbWF0Y2hlcyBHZWNrby4KLXN0YXRpYyBjb25zdCBhdXRvIG1pbkludGVydmFs
Rm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGlyaWNhbGx5
IGRldGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0IFNlY29u
ZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgeyAxIH07IC8vIE9uZSBzZWNv
bmQgbWF0Y2hlcyBHZWNrby4KK3N0YXRpYyBjb25zdCBTZWNvbmRzIG1pbkludGVydmFsRm9yTm9u
VXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgeyAxIH07IC8vIEVtcGlyaWNhbGx5IGRldGVybWlu
ZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhUaW1lck5l
c3RpbmdMZXZlbCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTE2MSwxNCAr
MTYxLDE0IEBAIHByaXZhdGU6CiAKIGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNraW5nTmVz
dGVkVGltZXJzID0gZmFsc2U7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNl
ckdlc3R1cmUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdM
ZXZlbCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoU2Vjb25k
cyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIHsKICAgICByZXR1cm4gVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiAgICAgICAgICYmIGludGVydmFsIDw9
IG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nCiAgICAgICAgICYmICFuZXN0aW5n
TGV2ZWw7IC8vIEdlc3R1cmVzIHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIG5lc3RlZCB0aW1l
cnMuCiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVzZXJHZXN0
dXJlVG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50
IG5lc3RpbmdMZXZlbCkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVz
ZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQoU2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZl
bCkKIHsKICAgICBpZiAoIXNob3VsZEZvcndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbmVzdGlu
Z0xldmVsKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzYsNyArMTc2LDcgQEAgc3Rh
dGljIGlubGluZSBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gdXNlckdlc3R1cmVUb2tlblRvRm9y
d2FyZChzdGQ6OmNocm9ubzo6bWkKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpOwogfQogCi1ET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0
aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNpbmdsZVNob3Qp
CitET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBTZWNvbmRzIGludGVydmFsLCBi
b29sIHNpbmdsZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCiAgICAgLCBt
X25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAgLCBtX2FjdGlv
bihXVEZNb3ZlKGFjdGlvbikpCkBAIC0yMDIsNyArMjAyLDcgQEAgRE9NVGltZXI6On5ET01UaW1l
cigpCiB7CiB9CiAKLWludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW50IERPTVRp
bWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVl
X3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmds
ZVNob3QpCiB7CiAgICAgLy8gRE9NVGltZXIgY29uc3RydWN0b3IgcGFzc2VzIG93bmVyc2hpcCBv
ZiB0aGUgaW5pdGlhbCByZWYgb24gdGhlIG9iamVjdCB0byB0aGUgY29uc3RydWN0b3IuCiAgICAg
Ly8gVGhpcyByZWZlcmVuY2Ugd2lsbCBiZSByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBv
bmUtc2hvdCB0aW1lciBmaXJlcywgd2hlbiB0aGUgY29udGV4dApAQCAtMjExLDcgKzIxMSw3IEBA
IGludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChpczxE
b2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgYm9vbCBkaWREZWZlclRpbWVvdXQgPSBjb250
ZXh0LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKTsKLSAgICAgICAgaWYgKCFkaWREZWZl
clRpbWVvdXQgJiYgdGltZW91dC5jb3VudCgpIDw9IDEwMCAmJiBzaW5nbGVTaG90KSB7CisgICAg
ICAgIGlmICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQubWlsbGlzZWNvbmRzKCkgPD0gMTAw
ICYmIHNpbmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwogICAgICAgICAgICAgV2ViVGhyZWFkQWRk
T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXIodGltZXIpOyAvLyBXaWxsIG9ubHkgdGFrZSBhZmZlY3Qg
aWYgbm90IGFscmVhZHkgdmlzaWJpbGl0eSBjaGFuZ2UuCiAgICAgICAgIH0KQEAgLTQwMSw0NSAr
NDAxLDQ1IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgp
CiAKICAgICBpZiAocmVwZWF0SW50ZXJ2YWwoKSkgewogICAgICAgICBBU1NFUlQocmVwZWF0SW50
ZXJ2YWxNUygpID09IHByZXZpb3VzSW50ZXJ2YWwpOwotICAgICAgICBMT0coRE9NVGltZXJzLCAi
JXAgLSBVcGRhdGluZyBET01UaW1lcidzIHJlcGVhdCBpbnRlcnZhbCBmcm9tICUiIFBSSWQ2NCAi
IG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3Vz
SW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAgICAg
ICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRpbmcgRE9NVGltZXIncyByZXBlYXQgaW50ZXJ2
YWwgZnJvbSAlbGxkIG1zIHRvICVsbGQgbXMgZHVlIHRvIHRocm90dGxpbmcuIiwgdGhpcywgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihwcmV2aW91c0ludGVydmFsLm1pbGxpc2Vjb25kcygpKSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihtX2N1cnJlbnRUaW1lckludGVydmFsLm1pbGxpc2Vjb25kcygp
KSk7CiAgICAgICAgIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtX2N1cnJlbnRUaW1lckludGVydmFs
IC0gcHJldmlvdXNJbnRlcnZhbCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HKERPTVRpbWVy
cywgIiVwIC0gVXBkYXRpbmcgRE9NVGltZXIncyBmaXJlIGludGVydmFsIGZyb20gJSIgUFJJZDY0
ICIgbXMgdG8gJSIgUFJJZDY0ICIgbXMgZHVlIHRvIHRocm90dGxpbmcuIiwgdGhpcywgcHJldmlv
dXNJbnRlcnZhbC5jb3VudCgpLCBtX2N1cnJlbnRUaW1lckludGVydmFsLmNvdW50KCkpOworICAg
ICAgICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIGZpcmUgaW50ZXJ2
YWwgZnJvbSAlbGxkIG1zIHRvICVsbGQgbXMgZHVlIHRvIHRocm90dGxpbmcuIiwgdGhpcywgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihwcmV2aW91c0ludGVydmFsLm1pbGxpc2Vjb25kcygpKSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihtX2N1cnJlbnRUaW1lckludGVydmFsLm1pbGxpc2Vjb25kcygp
KSk7CiAgICAgICAgIGF1Z21lbnRGaXJlSW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAt
IHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3QKK1NlY29uZHMgRE9N
VGltZXI6OmludGVydmFsQ2xhbXBlZFRvTWluaW11bSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1h
eFRpbWVyTmVzdGluZ0xldmVsKTsKIAotICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heCgxbXMs
IG1fb3JpZ2luYWxJbnRlcnZhbCk7CisgICAgU2Vjb25kcyBpbnRlcnZhbCA9IHN0ZDo6bWF4KFNl
Y29uZHM6OmZyb21NaWxsaXNlY29uZHMoMSksIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAKICAgICAv
LyBPbmx5IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBpZiAobV9u
ZXN0aW5nTGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKICAgICAgICAgcmV0dXJuIGludGVy
dmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9iYWwgKHBlciBQYWdl
KSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAgICBpbnRlcnZhbCA9
IHN0ZDo6bWF4KGludGVydmFsLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPm1pbmltdW1UaW1l
ckludGVydmFsKCkpOworICAgIGludGVydmFsID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSk7CiAgICAgaWYgKG1f
dGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRsZSkKICAgICAgICAgaW50ZXJ2YWwgPSBzdGQ6
Om1heChpbnRlcnZhbCwgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVy
cyk7CiAgICAgcmV0dXJuIGludGVydmFsOwogfQogCi1zdGQ6Om9wdGlvbmFsPHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM+IERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBmaXJlVGltZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gRE9NVGlt
ZXI6OmFsaWduZWRGaXJlVGltZShTZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAgIGF1dG8g
YWxpZ25tZW50SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpOwotICAg
IGlmIChhbGlnbm1lbnRJbnRlcnZhbCA9PSAwbXMpCisgICAgbG9uZyBsb25nIGFsaWdubWVudElu
dGVydmFsTVMgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmRvbVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpLm1pbGxpc2Vjb25k
cygpOworICAgIGlmICghYWxpZ25tZW50SW50ZXJ2YWxNUykKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0
aW9uID0gcmFuZG9tTnVtYmVyKCk7CiAKICAgICAvLyBGb3JjZSBhbGlnbm1lbnQgdG8gcmFuZG9t
aXplZEFsaWdubWVudCBmcmFjdGlvbiBvZiB0aGUgd2F5IGJldHdlZW4gYWxpZ25lbW50SW50ZXJ2
YWxzLCBlLmcuCi0gICAgLy8gaWYgYWxpZ25tZW50SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6
ZWRBbGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBhbGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAg
IGF1dG8gcmFuZG9taXplZE9mZnNldCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHM+KGFsaWdubWVudEludGVydmFsICogcmFuZG9taXplZFByb3Bv
cnRpb24pOwotICAgIGF1dG8gYWRqdXN0ZWRGaXJlVGltZSA9IGZpcmVUaW1lIC0gcmFuZG9taXpl
ZE9mZnNldDsKLSAgICByZXR1cm4gYWRqdXN0ZWRGaXJlVGltZSAtIChhZGp1c3RlZEZpcmVUaW1l
ICUgYWxpZ25tZW50SW50ZXJ2YWwpICsgYWxpZ25tZW50SW50ZXJ2YWwgKyByYW5kb21pemVkT2Zm
c2V0OworICAgIC8vIGlmIGFsaWdubWVudEludGVydmFsTVMgaXMgMTAgYW5kIHJhbmRvbWl6ZWRB
bGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBhbGlnbiB0byAzLCAxMywgMjMsIC4uLgorICAgIGF1
dG8gcmFuZG9taXplZE9mZnNldE1TID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihhbGlnbm1lbnRJ
bnRlcnZhbE1TICogcmFuZG9taXplZFByb3BvcnRpb24pOworICAgIGF1dG8gYWRqdXN0ZWRGaXJl
VGltZU1TID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihmaXJlVGltZS5taWxsaXNlY29uZHMoKSkg
LSByYW5kb21pemVkT2Zmc2V0TVM7CisgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29u
ZHMoYWRqdXN0ZWRGaXJlVGltZU1TIC0gKGFkanVzdGVkRmlyZVRpbWVNUyAlIGFsaWdubWVudElu
dGVydmFsTVMpICsgYWxpZ25tZW50SW50ZXJ2YWxNUyArIHJhbmRvbWl6ZWRPZmZzZXRNUyk7CiB9
CiAKIGNvbnN0IGNoYXIqIERPTVRpbWVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuaAppbmRleCA4NzI3NzM5N2VhNjA4YzQxODM3YjBhOGFjYjYwMmViMzNj
ZDZmZTg3Li41NDhiMGMwMzY1NzhhYzM5ZDRmMzUyNTg1ZWUzOGY3YmQ3N2Q4MWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ0LDEzICs0NSwxMyBAQCBjbGFzcyBET01UaW1lciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXIgewogcHVibGljOgogICAgIHZpcnR1
YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBk
ZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9Ci0gICAgc3RhdGljIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4g
MG1zOyB9Ci0gICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaGlkZGVuUGFnZUFs
aWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CisgICAgc3RhdGljIFNlY29uZHMg
ZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpIHsgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29u
ZHMoNCk7IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiBTZWNvbmRzIHsgMCB9OyB9CisgICAgc3RhdGljIFNlY29uZHMgaGlkZGVuUGFnZUFs
aWdubWVudEludGVydmFsKCkgeyByZXR1cm4gU2Vjb25kcyB7IDEgfTsgfQogCiAgICAgLy8gQ3Jl
YXRlcyBhIG5ldyB0aW1lciBvd25lZCBieSBzcGVjaWZpZWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgc3RhcnRzIGl0CiAgICAgLy8gYW5kIHJldHVybnMgaXRzIElkLgotICAgIHN0YXRpYyBpbnQg
aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxl
ZEFjdGlvbj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKKyAgICBzdGF0aWMgaW50IGluc3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0
ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQnlJZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgaW50IHRpbWVvdXRJZCk7CiAKICAgICAvLyBOb3RpZnkgdGhhdCB0aGUgaW50ZXJ2YWwg
bWF5IG5lZWQgdXBkYXRpbmcgKGUuZy4gYmVjYXVzZSB0aGUgbWluaW11bSBpbnRlcnZhbApAQCAt
NjAsMTAgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzY3JpcHREaWRJbnRlcmFj
dFdpdGhQbHVnaW4oSFRNTFBsdWdJbkVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBET01UaW1l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCk7
CisgICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxT
Y2hlZHVsZWRBY3Rpb24+LCBTZWNvbmRzIGludGVydmFsLCBib29sIHNpbmdsZVNob3QpOwogICAg
IGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGludGVydmFsQ2xhbXBlZFRvTWluaW11bSgpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIFNlY29uZHMgaW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CiAK
ICAgICBib29sIGlzRE9NVGltZXJzVGhyb3R0bGluZ0VuYWJsZWQoRG9jdW1lbnQmKSBjb25zdDsK
ICAgICB2b2lkIHVwZGF0ZVRocm90dGxpbmdTdGF0ZUlmTmVjZXNzYXJ5KGNvbnN0IERPTVRpbWVy
RmlyZVN0YXRlJik7CkBAIC03MSw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgLy8gU3VzcGVuZGFi
bGVUaW1lcgogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFN0b3AoKSBv
dmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKSBj
b25zdCBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+
IGFsaWduZWRGaXJlVGltZShTZWNvbmRzKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEFjdGl2
ZURPTU9iamVjdCBBUEkuCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwpAQCAtODUsOSArODYsOSBAQCBwcml2YXRlOgogICAgIGludCBtX3RpbWVv
dXRJZDsKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjaGVk
dWxlZEFjdGlvbj4gbV9hY3Rpb247Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX29y
aWdpbmFsSW50ZXJ2YWw7CisgICAgU2Vjb25kcyBtX29yaWdpbmFsSW50ZXJ2YWw7CiAgICAgVGlt
ZXJUaHJvdHRsZVN0YXRlIG1fdGhyb3R0bGVTdGF0ZTsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CisgICAgU2Vjb25kcyBtX2N1cnJlbnRUaW1l
ckludGVydmFsOwogICAgIFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiBtX3VzZXJHZXN0dXJlVG9r
ZW5Ub0ZvcndhcmQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNmFlZGIw
OWM4NWUxN2RkMTUyZDM0YzMxZThiZjQwMjJlMjczYWYxZi4uZTJiMzhhNTExZjRiMGI4MDIxMjll
MzE2MjNjYjA0ZWJmMDM1NjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTY2
Myw3ICsxNjYzLDcgQEAgRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldFRpbWVvdXQoc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLAogICAgIGF1dG8qIGNvbnRleHQg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07Ci0gICAgcmV0dXJuIERPTVRp
bWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlvbiksIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHModGltZW91dCksIHRydWUpOworICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgq
Y29udGV4dCwgV1RGTW92ZShhY3Rpb24pLCBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVv
dXQpLCB0cnVlKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmNsZWFyVGltZW91dChpbnQgdGltZW91
dElkKQpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNl
dEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwKICAgICBh
dXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwotICAg
IHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwgV1RGTW92ZShhY3Rpb24pLCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxzZSk7CisgICAgcmV0dXJuIERPTVRp
bWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlvbiksIFNlY29uZHM6OmZyb21NaWxs
aXNlY29uZHModGltZW91dCksIGZhbHNlKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmNsZWFySW50
ZXJ2YWwoaW50IHRpbWVvdXRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFlYzFkZWMwZWFlMzM4
MTFkMjRjNTYzMTU4MDU2YTg0YTg3MDQ3NDYuLjRhNjk2Y2M2YmQ4Zjk2NzM1MzFkYTM5ZWM5YmU2
MDFmM2Y3ODZiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjM0LDggKzIzNCw4IEBAIFBhZ2U6
OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUo
VklFV19NT0RFX0NTU19NRURJQSkKICAgICAsIG1fdmlld01vZGUoVmlld01vZGVXaW5kb3dlZCkK
ICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKLSAgICAsIG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkpCi0gICAg
LCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyKCp0aGlzLCAmUGFnZTo6dGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCkKKyAgICAsIG1fZG9tVGltZXJB
bGlnbm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkpCisg
ICAgLCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyKCp0aGlzLCAmUGFn
ZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCkKICAgICAsIG1f
aXNFZGl0YWJsZShmYWxzZSkKICAgICAsIG1faXNQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX2Fj
dGl2aXR5U3RhdGUoUGFnZUluaXRpYWxBY3Rpdml0eVN0YXRlKQpAQCAtMTMxOSw3ICsxMzE5LDcg
QEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0ZShUaW1lclRocm90dGxpbmdTdGF0
ZSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV90aW1lclRocm90dGxpbmdTdGF0ZSA9
IHN0YXRlOwotICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgPSBzdGQ6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRl
TGFzdENoYW5nZWRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKICAgICB1
cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFsKCk7CiAKQEAgLTEzMzIsMTIgKzEzMzIsMTIg
QEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0ZShUaW1lclRocm90dGxpbmdTdGF0
ZSBzdGF0ZSkKICAgICB9CiB9CiAKLXZvaWQgUGFnZTo6c2V0VGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBsaW1pdCkKK3ZvaWQgUGFn
ZTo6c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoU2Vjb25kcyBsaW1p
dCkKIHsKLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0ID0gbGltaXQ7
CisgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCA9IGxpbWl0Owog
Ci0gICAgLy8gSWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQgPCBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwpIHRoZW4gd2UgbmVlZAotICAgIC8vIHRvIHVwZGF0ZSBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwsIGlmIGdyZWF0ZXIgdGhlbiBuZWVkIHRvIHJlc3RhcnQgdGhl
IGluY3JlYXNlIHRpbWVyLgorICAgIC8vIElmIChtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZUxpbWl0IDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsKSB0aGVuIHdlIG5lZWQK
KyAgICAvLyB0byB1cGRhdGUgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsLCBpZiBncmVhdGVy
IHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KICAgICBpZiAobV90aW1l
clRocm90dGxpbmdTdGF0ZSA9PSBUaW1lclRocm90dGxpbmdTdGF0ZTo6RW5hYmxlZEluY3JlYXNp
bmcpCiAgICAgICAgIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKIH0KQEAgLTEz
NDgsMjggKzEzNDgsMjggQEAgdm9pZCBQYWdlOjp1cGRhdGVET01UaW1lckFsaWdubWVudEludGVy
dmFsKCkKIAogICAgIHN3aXRjaCAobV90aW1lclRocm90dGxpbmdTdGF0ZSkgewogICAgIGNhc2Ug
VGltZXJUaHJvdHRsaW5nU3RhdGU6OkRpc2FibGVkOgotICAgICAgICBtX3RpbWVyQWxpZ25tZW50
SW50ZXJ2YWwgPSBET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFsKCk7CisgICAgICAg
IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVyVGhyb3R0bGluZ1N0
YXRlOjpFbmFibGVkOgotICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBET01UaW1l
cjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFsKCk7CisgICAgICAgIG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpFbmFibGVk
SW5jcmVhc2luZzoKICAgICAgICAgLy8gRm9yIHBhZ2VzIGluIHByZXJlbmRlciBzdGF0ZSBtYXhp
bXVtIHRocm90dGxpbmcga2lja3MgaW4gaW1tZWRpYXRlbHkuCiAgICAgICAgIGlmIChtX2lzUHJl
cmVuZGVyKQotICAgICAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFsID0gbV90aW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKKyAgICAgICAgICAgIG1fZG9tVGltZXJBbGln
bm1lbnRJbnRlcnZhbCA9IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQ7
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1fdGltZXJUaHJvdHRsaW5nU3Rh
dGVMYXN0Q2hhbmdlZFRpbWUudGltZV9zaW5jZV9lcG9jaCgpICE9IHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s6OmR1cmF0aW9uOjp6ZXJvKCkpOwotICAgICAgICAgICAgbV90aW1lckFsaWdubWVu
dEludGVydmFsID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcz4oc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBtX3RpbWVyVGhyb3R0
bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lKTsKKyAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhy
b3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID4gMCk7CisgICAgICAgICAgICBtX2RvbVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwgPSBTZWNvbmRzIHsgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkgLSBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lIH07CiAgICAgICAgICAg
ICAvLyBJZiB3ZSdyZSBiZWxvdyB0aGUgbGltaXQsIHNldCB0aGUgdGltZXIuIElmIGFib3ZlLCBj
bGFtcCB0byBsaW1pdC4KLSAgICAgICAgICAgIGlmIChtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwg
PCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KQorICAgICAgICAgICAgaWYg
KG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlTGltaXQpCiAgICAgICAgICAgICAgICAgbmVlZHNJbmNyZWFzZVRpbWVyID0gdHJ1
ZTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWwgPSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0OworICAgICAgICAg
ICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1fZG9tVGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlTGltaXQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gQWxpZ25tZW50IGlu
dGVydmFsIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25t
ZW50SW50ZXJ2YWwoKS4KLSAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFsID0gc3RkOjpt
YXgobV90aW1lckFsaWdubWVudEludGVydmFsLCBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVu
dEludGVydmFsKCkpOworICAgICAgICBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6
Om1heChtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwsIERPTVRpbWVyOjpoaWRkZW5QYWdlQWxp
Z25tZW50SW50ZXJ2YWwoKSk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhyb3R0bGluZyBpcyBlbmFi
bGVkLCBhdXRvLWluY3JlYXNpbmcgb2YgdGhyb3R0bGluZyBpcyBlbmFibGVkLCBhbmQgdGhlIGF1
dG8taW5jcmVhc2UKQEAgLTEzNzcsMTYgKzEzNzcsMTYgQEAgdm9pZCBQYWdlOjp1cGRhdGVET01U
aW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAvLyBiZXR3ZWVuIGluY3JlYXNlcyBpcyBlcXVh
bCB0byB0aGUgY3VycmVudCB0aHJvdHRsZSB0aW1lLiBTaW5jZSBhbGlubWVudCBpbnRlcnZhbCBp
bmNyZWFzZXMKICAgICAvLyBleHBvbmVudGlhbGx5LCB0aW1lIGJldHdlZW4gc3RlcHMgaXMgZXhw
b25lbnRpYWwgdG9vLgogICAgIGlmICghbmVlZHNJbmNyZWFzZVRpbWVyKQotICAgICAgICBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLnN0b3AoKTsKLSAgICBlbHNlIGlmICgh
bV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAg
ICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLnN0YXJ0T25lU2hvdChtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwpOworICAgICAgICBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWxJbmNyZWFzZVRpbWVyLnN0b3AoKTsKKyAgICBlbHNlIGlmICghbV9kb21UaW1lckFsaWdubWVu
dEludGVydmFsSW5jcmVhc2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2RvbVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLnN0YXJ0T25lU2hvdChtX2RvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwpOwogfQogCi12b2lkIFBhZ2U6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZVRpbWVyRmlyZWQoKQordm9pZCBQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVydmFsSW5j
cmVhc2VUaW1lckZpcmVkKCkKIHsKICAgICBBU1NFUlQobV9zZXR0aW5ncy0+aGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKSk7CiAgICAgQVNTRVJUKG1fdGltZXJUaHJv
dHRsaW5nU3RhdGUgPT0gVGltZXJUaHJvdHRsaW5nU3RhdGU6OkVuYWJsZWRJbmNyZWFzaW5nKTsK
LSAgICBBU1NFUlQobV90aW1lckFsaWdubWVudEludGVydmFsIDwgbV90aW1lckFsaWdubWVudElu
dGVydmFsSW5jcmVhc2VMaW1pdCk7CisgICAgQVNTRVJUKG1fZG9tVGltZXJBbGlnbm1lbnRJbnRl
cnZhbCA8IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOwogICAgIAog
ICAgIC8vIEFsaWdubWVudCBpbnRlcnZhbCBpcyBpbmNyZWFzZWQgdG8gZXF1YWwgdGhlIHRpbWUg
dGhlIHBhZ2UgaGFzIGJlZW4gdGhyb3R0bGVkLCB0byBhIGxpbWl0LgogICAgIHVwZGF0ZURPTVRp
bWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggOTM4YTA5NmZiNzM5ZDk5
ZjY3ZTJlZGNiNTk0MzJlZmRmMTU2ZjUzOS4uMmFhMDMzNjA0Mzc4ODQzOWNkNjM2YjJhMmQ3MzQw
MzRkZjhmYmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI0MCw3ICsyNDAsNyBAQCBwdWJsaWM6CiAg
ICAgUHJvZ3Jlc3NUcmFja2VyJiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuICptX3Byb2dyZXNz
OyB9CiAgICAgQmFja0ZvcndhcmRDb250cm9sbGVyJiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0
dXJuICptX2JhY2tGb3J3YXJkQ29udHJvbGxlcjsgfQogCi0gICAgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyBkb21UaW1lckFsaWdubWVudEludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV90aW1l
ckFsaWdubWVudEludGVydmFsOyB9CisgICAgU2Vjb25kcyBkb21UaW1lckFsaWdubWVudEludGVy
dmFsKCkgY29uc3QgeyByZXR1cm4gbV9kb21UaW1lckFsaWdubWVudEludGVydmFsOyB9CiAKICNp
ZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKICAgICBlbnVtIFZpZXdNb2RlIHsKQEAgLTU1
Miw3ICs1NTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG93QWxsUGx1Z2lucyhib29sIHNo
b3dBbGwpIHsgbV9zaG93QWxsUGx1Z2lucyA9IHNob3dBbGw7IH0KICAgICBib29sIHNob3dBbGxQ
bHVnaW5zKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQoU2Vjb25kcyk7CiAKICAgICBib29sIGlzQ29udHJvbGxlZEJ5QXV0b21hdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbjsgfQogICAgIHZvaWQgc2V0Q29u
dHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNvbnRyb2xsZWQpIHsgbV9jb250cm9sbGVkQnlBdXRv
bWF0aW9uID0gY29udHJvbGxlZDsgfQpAQCAtNjA5LDcgKzYwOSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRUaW1lclRocm90dGxpbmdTdGF0ZShUaW1lclRocm90dGxpbmdTdGF0ZSk7CiAgICAg
dm9pZCB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlRE9NVGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwotICAgIHZvaWQgdGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlVGltZXJGaXJlZCgpOworICAgIHZvaWQgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlVGltZXJGaXJlZCgpOwogCiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENocm9tZT4g
bV9jaHJvbWU7CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPERyYWdDYXJldENvbnRyb2xsZXI+
IG1fZHJhZ0NhcmV0Q29udHJvbGxlcjsKQEAgLTcxMiwxMCArNzEyLDEwIEBAIHByaXZhdGU6CiAj
ZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAKICAgICBUaW1lclRocm90dGxp
bmdTdGF0ZSBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlIHsgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkRp
c2FibGVkIH07Ci0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBtX3Rp
bWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lIHsgc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6ZHVyYXRpb246Onplcm8oKSB9OwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
bV90aW1lckFsaWdubWVudEludGVydmFsOwotICAgIFRpbWVyIG1fdGltZXJBbGlnbm1lbnRJbnRl
cnZhbEluY3JlYXNlVGltZXI7Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0IHsgMCB9OworICAgIGRvdWJsZSBtX3RpbWVy
VGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lIHsgMCB9OworICAgIFNlY29uZHMgbV9kb21U
aW1lckFsaWdubWVudEludGVydmFsOworICAgIFRpbWVyIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRl
cnZhbEluY3JlYXNlVGltZXI7CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWxJbmNyZWFzZUxpbWl0IHsgMCB9OwogCiAgICAgYm9vbCBtX2lzRWRpdGFibGU7CiAgICAgYm9v
bCBtX2lzUHJlcmVuZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA2YmI5ZDAzYThi
MzRjMTk2ODI0YThkMmJlZGNkZTNkYWFhZTFkNDIxLi43ZDA4Nzg0N2NkOGE4OTI4NGJiNDY4OGQ0
MTJlMzQ5MzZiOWJlNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNDQ5LDE3ICs0
NDksMTYgQEAgdm9pZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmso
Ym9vbCBzaG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW4KICAgICBtX25lZWRzQWRvYmVGcmFtZVJl
bG9hZGluZ1F1aXJrID0gc2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQzsKIH0K
IAotdm9pZCBTZXR0aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCkKK3ZvaWQgU2V0dGluZ3M6OnNldE1pbmltdW1ET01UaW1l
ckludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwpCiB7Ci0gICAgYXV0byBvbGRUaW1lckludGVydmFs
ID0gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKLSAgICBtX21pbmltdW1ET01UaW1lckludGVy
dmFsID0gaW50ZXJ2YWw7CisgICAgYXV0byBvbGRUaW1lckludGVydmFsID0gc3RkOjpleGNoYW5n
ZShtX21pbmltdW1ET01UaW1lckludGVydmFsLCBpbnRlcnZhbCk7CiAKICAgICBpZiAoIW1fcGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9wYWdlLT5t
YWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkg
ewogICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+YWRqdXN0TWluaW11bVRpbWVySW50ZXJ2YWwob2xkVGltZXJJbnRlcnZhbCk7Cisg
ICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YWRqdXN0TWluaW11bURPTVRpbWVySW50ZXJ2
YWwob2xkVGltZXJJbnRlcnZhbCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5k
ZXggN2ZjNTcwOGVjNzk2NzFjOTkyNWE3NzhmYzE0YTQ1YmY1MDU1NTJlOS4uOWYzNzA3NTViMGI4
MmJmZTgxOTI4MGE1OTgxNDBkYTM5ZjU4MjM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAt
MTY5LDggKzE2OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5lZWRz
QWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgIGJvb2wgbmVlZHNBY3JvYmF0RnJh
bWVSZWxvYWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2Fk
aW5nUXVpcms7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVy
SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7IC8vIEluaXRpYWxpemVkIHRvIERP
TVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFsKCkuCi0gICAgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11
bURPTVRpbWVySW50ZXJ2YWw7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1pbmltdW1E
T01UaW1lckludGVydmFsKFNlY29uZHMpOyAvLyBJbml0aWFsaXplZCB0byBET01UaW1lcjo6ZGVm
YXVsdE1pbmltdW1JbnRlcnZhbCgpLgorICAgIFNlY29uZHMgbWluaW11bURPTVRpbWVySW50ZXJ2
YWwoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1ET01UaW1lckludGVydmFsOyB9CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldExheW91dEludGVydmFsKFNlY29uZHMpOwogICAgIFNlY29u
ZHMgbGF5b3V0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX2xheW91dEludGVydmFsOyB9CkBA
IC0zMzgsNyArMzM4LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Rm9u
dEdlbmVyaWNGYW1pbGllcz4gbV9mb250R2VuZXJpY0ZhbWlsaWVzOwogICAgIFNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAg
U2Vjb25kcyBtX2xheW91dEludGVydmFsOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
bV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKKyAgICBTZWNvbmRzIG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKaW5kZXggZTE1ZjBhNzA5Mzc4NTBhM2E2OTAxZjcyMGM1
ZGUxZjYwOTkxMzg2NC4uNWYzZTdiOTBlM2ZjNjQxNzJkZGYyOWQwMTUxNzgzODI2NmNhYzE0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKQEAgLTI5LDYgKzI5LDggQEAK
ICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCisjaW5j
bHVkZSA8d3RmL1NlY29uZHMuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdXNw
ZW5kYWJsZVRpbWVyIDogcHJpdmF0ZSBUaW1lckJhc2UsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qg
ewpAQCAtNDksOSArNTEsMTkgQEAgcHVibGljOgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZh
bChkb3VibGUgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKGRvdWJsZSBk
ZWx0YSk7CiAKKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwp
IHsgc3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2YWwudmFsdWUoKSk7IH0KKyAgICB2b2lkIHN0
YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC52YWx1
ZSgpKTsgfQorCisgICAgLy8gRklYTUU6IFVzZSB0aGUgb3ZlcmxvYWRzIHRha2luZyBTZWNvbmRz
IGluc3RlYWQgYW5kIGRyb3AgdGhlc2UuCiAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKG1zVG9T
ZWNvbmRzKHJlcGVhdEludGVydmFsKSk7IH0KICAgICB2b2lkIHN0YXJ0T25lU2hvdChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChtc1RvU2Vjb25kcyhp
bnRlcnZhbCkpOyB9CisKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVy
dmFsTVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQor
CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudEZp
cmVJbnRlcnZhbChkZWx0YS52YWx1ZSgpKTsgfQorICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVy
dmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFsKGRlbHRhLnZhbHVlKCkp
OyB9CisKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5z
dGVhZCBhbmQgZHJvcCB0aGVzZS4KICAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKG1zVG9TZWNv
bmRzKGRlbHRhKSk7IH0KICAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtc1RvU2Vjb25k
cyhkZWx0YSkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAppbmRleCBjZDU5NGZlN2Nj
NTU4OTEyOTQ3NDYzOTc2ZDhkMTg1ZjkxMTE0YmJhLi4wYTQyNjY3NTY4ZWI4YWNhYzdmN2FlZGI4
ZWVjMDFiNmM4YjQyMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCkBAIC0zODIsOCAr
MzgyLDggQEAgdm9pZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShkb3VibGUgbmV3VGltZSkK
ICAgICBkb3VibGUgb2xkVGltZSA9IG1fbmV4dEZpcmVUaW1lOwogICAgIC8vIERvbid0IHJlYWxp
Z24gemVyby1kZWxheSB0aW1lcnMuCiAgICAgaWYgKG5ld1RpbWUpIHsKLSAgICAgICAgaWYgKGF1
dG8gbmV3QWxpZ25lZFRpbWUgPSBhbGlnbmVkRmlyZVRpbWUoc2Vjb25kc1RvTVMobmV3VGltZSkp
KQotICAgICAgICAgICAgbmV3VGltZSA9IG1zVG9TZWNvbmRzKG5ld0FsaWduZWRUaW1lLnZhbHVl
KCkpOworICAgICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9IGFsaWduZWRGaXJlVGltZShT
ZWNvbmRzIHsgbmV3VGltZSB9KSkKKyAgICAgICAgICAgIG5ld1RpbWUgPSBuZXdBbGlnbmVkVGlt
ZS52YWx1ZSgpLnNlY29uZHMoKTsKICAgICB9CiAKICAgICBpZiAob2xkVGltZSAhPSBuZXdUaW1l
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAppbmRleCA1MmExNjZlYmEyZDIzMTlkMTVhMWI3ZWQ5
MDgyYjZiMTQzM2YzYjI0Li4wNDc3NDg5MThkNzMwMDdkYjcwNDVhYjY1ZGY5MDU3ZTBiZDc0Zjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6
b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gYWxpZ25lZEZpcmVUaW1lKHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQorICAg
IHZpcnR1YWwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoU2Vjb25kcykg
Y29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVu
Y3koKSBjb25zdDsKICAgICB2b2lkIGNoZWNrSGVhcEluZGV4KCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA0ZTI0NDg0YmQxNzgxNGQ4
NDZmNjI5ODFjNTBkNWQxNmI5ZTY1ODFiLi42NjYxYzkxNTcwZDk2MTc2OTI1OThhYTBlN2U5OWM5
NWUyZmQzMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAKQEAgLTYyLDcgKzYyLDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0
dGluZ3MmIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbE1vY2tTY3JvbGxiYXJzRW5hYmxlZChz
ZXR0aW5ncy5tb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKICAgICAsIG1faW1hZ2VzRW5hYmxlZChz
ZXR0aW5ncy5hcmVJbWFnZXNFbmFibGVkKCkpCiAgICAgLCBtX3ByZWZlck1JTUVUeXBlRm9ySW1h
Z2VzKHNldHRpbmdzLnByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKCkpCi0gICAgLCBtX21pbmltdW1U
aW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1ET01UaW1lckludGVydmFsKCkpCisgICAgLCBt
X21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1ET01UaW1lckludGVydmFs
KCkpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV9zaG91bGREaXNwbGF5U3VidGl0
bGVzKHNldHRpbmdzLnNob3VsZERpc3BsYXlTdWJ0aXRsZXMoKSkKICAgICAsIG1fc2hvdWxkRGlz
cGxheUNhcHRpb25zKHNldHRpbmdzLnNob3VsZERpc3BsYXlDYXB0aW9ucygpKQpAQCAtMTUxLDcg
KzE1MSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGlu
Z3MmIHNldHRpbmdzKQogICAgIHNldHRpbmdzLnNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdp
bmcobV9vcmlnaW5hbENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcpOwogICAgIHNldHRpbmdz
LnNldEltYWdlc0VuYWJsZWQobV9pbWFnZXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy5zZXRQcmVm
ZXJNSU1FVHlwZUZvckltYWdlcyhtX3ByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKTsKLSAgICBzZXR0
aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChtX21pbmltdW1UaW1lckludGVydmFsKTsK
KyAgICBzZXR0aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChtX21pbmltdW1ET01UaW1l
ckludGVydmFsKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgc2V0dGluZ3Muc2V0U2hv
dWxkRGlzcGxheVN1YnRpdGxlcyhtX3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMpOwogICAgIHNldHRp
bmdzLnNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyk7CkBA
IC01NDQsNyArNTQ0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0
TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsSW5TZWMKIHsKICAgICBpZiAoIW1f
cGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9Owot
ICAgIHNldHRpbmdzKCkuc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcygoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6cmVwKShpbnRlcnZhbEluU2Vj
b25kcyAqIDEwMDApKSk7CisgICAgc2V0dGluZ3MoKS5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZh
bChTZWNvbmRzIHsgaW50ZXJ2YWxJblNlY29uZHMgfSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA4YTA5Zjk1NGFi
ZTBhNzAwZDI0MTFiYjk4NTRmZGJhZDY3MWQ5Nzc0Li40ODZjMzA2MzM4Y2UzYzEzMmFmN2U3ODQ0
MWI3NTMzMDY5NjRmMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9vcmlnaW5h
bFVzZXNPdmVybGF5U2Nyb2xsYmFyczsKICAgICAgICAgYm9vbCBtX2ltYWdlc0VuYWJsZWQ7CiAg
ICAgICAgIGJvb2wgbV9wcmVmZXJNSU1FVHlwZUZvckltYWdlczsKLSAgICAgICAgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1UaW1lckludGVydmFsOworICAgICAgICBTZWNvbmRz
IG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAg
ICAgICBib29sIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlczsKICAgICAgICAgYm9vbCBtX3Nob3Vs
ZERpc3BsYXlDYXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0
YzVlYjE4NmNlMDAyY2EwMjU2YmNlYzcyNDdlYTk1MmNjNmQ1MzI0Li5hOWI3MzI2YjUxZTU0YTA5
ZTYxNmE3OGIwOGVhMjA1YmNlNTI5NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6Omlz
VGltZXJUaHJvdHRsZWQoaW50IHRpbWVvdXRJZCkKICAgICBpZiAodGltZXItPmludGVydmFsQ2xh
bXBlZFRvTWluaW11bSgpID4gdGltZXItPm1fb3JpZ2luYWxJbnRlcnZhbCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZpcmVUaW1lKDBtcyk7Cisg
ICAgcmV0dXJuICEhdGltZXItPmFsaWduZWRGaXJlVGltZShTZWNvbmRzIHsgMCB9KTsKIH0KIAog
Ym9vbCBJbnRlcm5hbHM6OmlzUmVxdWVzdEFuaW1hdGlvbkZyYW1lVGhyb3R0bGVkKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggOWIz
NTcwOTZiMWViOWFhNDZhMThiODc3ZDcxMmUzNzg3ZjczODM5Yi4uMTUyNDE1YzgyMTAyNjgwNGZh
MWM0ZjYwY2QwMDZhYmM4YWY0MzQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjpwb3N0VGFzayhUYXNrJiYgdGFzaykKIAogaW50IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRU
aW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVv
dXQpCiB7Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCp0aGlzLCBXVEZNb3ZlKGFjdGlv
biksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOworICAgIHJldHVy
biBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShhY3Rpb24pLCBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29w
ZTo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBX
b3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpCiAKIGludCBXb3Jr
ZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBpbnQgdGltZW91dCkKIHsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwo
KnRoaXMsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0
KSwgZmFsc2UpOworICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShh
Y3Rpb24pLCBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxzZSk7CiB9CiAK
IHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDMwOTE1NmIw
N2M3Njc4NDFjMzBhZWMwOGExN2MyNWU4ZmU4YWY1OTMuLmRlMzkzM2Y5ODlkNzZhODIxYmUyNTVl
OWE3ZTgxYjQ5Zjk3YWMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBk
YXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdCgpCiAgICAgc3RhdGljIGlu
dCBtYXhpbXVtVGltZXJUaHJvdHRsZVBlclBhZ2VJbk1TID0gMjAwICogMTAwOwogCiAgICAgaW50
IGxpbWl0SW5NaWxsaXNlY29uZHMgPSBtYXhpbXVtVGltZXJUaHJvdHRsZVBlclBhZ2VJbk1TICog
bV9oaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVyLnZhbHVlKCk7Ci0gICAg
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIaWRkZW5QYWdlVGlt
ZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChsaW1pdEluTWlsbGlzZWNvbmRzKSk7CisgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIaWRkZW5QYWdlRE9NVGlt
ZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChsaW1pdEluTWlsbGlzZWNvbmRzKSk7CiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnJlcG9ydFdlYkNvbnRlbnRDUFVUaW1lKGludDY0X3QgY3B1VGlt
ZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYwYzkxMjc3NjI3MTQ1YjQ3MTU5OGZhMjJkNTNjMDJkMDRm
NzEwMjAuLjA2ZDI3ODc1ZDgwOWYwZWY0NzcwOTQ5NWU5ODAxNjgyMjkxYjIzNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzAzLDkgKzMwMyw5
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVudSopOwogCi0gICAgdm9pZCBz
ZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIGxpbWl0KQorICAgIHZvaWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGlu
Z0luY3JlYXNlTGltaXQoU2Vjb25kcyBsaW1pdCkKICAgICB7Ci0gICAgICAgIG1fcGFnZS0+c2V0
VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQobGltaXQpOworICAgICAgICBtX3Bh
Z2UtPnNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KGxpbWl0KTsKICAg
ICB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDAxNWYxNjFmYTc3ZDFmNTBkNDQ5NDMxZjRjZTQyZjFh
YWRkMmQ4ZjEuLjE0OGE5MTNjODI4ZjVjNzEyZGI1NjhmYzk3ZmI2ZDZlODYwN2M5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTIzNSwxMCArMTIzNSwx
MCBAQCB2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpbwogICAgIH0KIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpzZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNv
bmRzKQordm9pZCBXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGZvciAoYXV0byYgcGFnZSA6IG1f
cGFnZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgcGFnZS0+c2V0SGlkZGVuUGFnZVRpbWVyVGhyb3R0
bGluZ0luY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyhtaWxsaXNlY29uZHMp
KTsKKyAgICAgICAgcGFnZS0+c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNl
TGltaXQoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhtaWxsaXNlY29uZHMpKTsKIH0KIAogI2lm
ICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggZWY0ZWQzMDkxNGNiMWQ4Y2QzMGU2NWU2MThkNGZjNjgwYTlkMjI3MC4uMDFiYWIzYjU0ODAz
MWE4NjAwOTNmOTZmYWI4YWZkZjdlZDVkMTZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0
ZUFjdGl2ZVBhZ2VzKCk7CiAKLSAgICB2b2lkIHNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJ
bmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpOworICAgIHZvaWQgc2V0SGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcyk7CiAKICAgICB2
b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCk7CiAgICAgdm9p
ZCBwcmVwYXJlVG9TdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDQwNDFiMWQ5NzZjOTAyYWFkNTA2NGU3Y2ZlYzc1
ZjE3YjZhZDY5MC4uYzM5ZWJmMzgyZDAzMjdlN2MyZWFlM2JhZDFhMDc4YmExZWFiZjA5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNzksNyArNzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSkgLT4gKCkKICAgICBE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0
b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKQogCi0gICAgU2V0
SGlkZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcykK
KyAgICBTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQgbWls
bGlzZWNvbmRzKQogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFnKQog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91
Z2hwdXRRT1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303606</attachid>
            <date>2017-03-06 19:53:43 -0800</date>
            <delta_ts>2017-03-07 08:24:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170306195342.patch</filename>
            <type>text/plain</type>
            <size>48689</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYzYjQzYTNkMDMxZmEy
OGM0YmE3N2E2N2RlZGZjNGNhMTQ5NjRlNi4uZjc4ZGVjM2E0YTNjOTkyNWZiOGM4MDQwODk3NDY1
ZGQ5YTBiZjc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRq
dXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OnVzZXJH
ZXN0dXJlVG9rZW5Ub0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjppbnN0YWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldElu
dGVydmFsKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1pbmltdW1ET01UaW1lckludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZv
cm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZXROZXh0RmlyZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1U
aW1lckludGVydmFsKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OmlzVGltZXJUaHJvdHRsZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKToKKwog
MjAxNy0wMy0wNiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUYWtlIGFkdmFudGFnZSBvZiBmYXN0IHBlcm1pc3Npb25zIHN3aXRjaGluZyBvZiBKSVQgbWVt
b3J5IGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQyODc4ZjZiNzlh
NDQ2MDZhZmUyNTgzY2Q3NTU1MjUzNzgyZTg4YzUuLjE3MjNlMjI1NTIzNmNmNTM1ZTc0YzM3ZjA0
NDE3MGIzYTJmNzQzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wMy0wNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBvcnQgRE9NVGltZXIg
ZnJvbSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRvIFdURjo6U2Vjb25kcyB0eXBlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1cGRh
dGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRI
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0wMy0wNiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxl
LmNvbT4KIAogICAgICAgICBUYWtlIGFkdmFudGFnZSBvZiBmYXN0IHBlcm1pc3Npb25zIHN3aXRj
aGluZyBvZiBKSVQgbWVtb3J5IGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZjRiNzU2MTQ0NWMyMTc3MTBlNWRkYjU2YWY2NjBiYjI2YjU4MWIy
NS4uNTdjMzk0NmNkMDA3MzY2N2I3M2M0YmM5NWEzYzRhYzJhZTZiN2U5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yODQzLDExICsyODQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRl
bG4oY29uc3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB3cml0
ZShXVEZNb3ZlKHRleHRXaXRoTmV3bGluZSksIG93bmVyRG9jdW1lbnQpOwogfQogCi1zdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0
CitTZWNvbmRzIERvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAg
ICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJl
dHVybiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpOworICAg
ICAgICByZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2
YWwoKTsKICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZh
bCgpOwogfQogCkBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaW1lclRo
cm90dGxpbmdFbmFibGVkKGJvb2wgc2hvdWxkVGhyb3R0bGUpCiAgICAgZGlkQ2hhbmdlVGltZXJB
bGlnbm1lbnRJbnRlcnZhbCgpOwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERvY3Vt
ZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZl
bCkgY29uc3QKK1NlY29uZHMgRG9jdW1lbnQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9v
bCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdAogewotICAgIGF1dG8gYWxpZ25tZW50
SW50ZXJ2YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFs
KGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwg
PSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZl
bCkKICAgICAgICAgcmV0dXJuIGFsaWdubWVudEludGVydmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IGZmMTkyYjM1OTdiNWM2NGE4YTQ4YzViNWM4ODhhYjZiYjI5OGQ2ZWIuLjVjNTljNjc5
MjE5ODY0YmI5ZTMwOWZkMjEwNmFkNTE2ZjJmOTQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMzI3LDkgKzEzMjcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9
IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAot
ICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dCBmaW5hbDsKKyAgICBTZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QgZmlu
YWw7CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdCBmaW5hbDsKKyAgICBTZWNv
bmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xl
dmVsKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGVGcm9tVGl0bGVFbGVtZW50
KCk7CiAgICAgdm9pZCB1cGRhdGVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzI4
ODE4ZjRhNjJjOTQzM2Q3ZWRiYzE0MDcwOTJlYWE0YzA1ZDBiMy4uZjNhYWY2MGRlNzZlYjAxOTBk
MmE3M2IwYWY0ZDhmNDE2MmY1YmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcApAQCAtNDI3LDE1ICs0MjcsMTUgQEAgUHVibGljVVJMTWFuYWdl
ciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cHVibGljVVJMTWFuYWdlcigpCiAgICAgcmV0dXJu
ICptX3B1YmxpY1VSTE1hbmFnZXI7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
YWRqdXN0TWluaW11bVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRN
aW5pbXVtVGltZXJJbnRlcnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0
TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkK
IHsKLSAgICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkgeworICAgIGlmIChtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1U
aW1lckludGVydmFsKSB7CiAgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZh
bHVlcygpKQogICAgICAgICAgICAgdGltZXItPnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2Fy
eSgpOwogICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICAv
LyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBET01UaW1lcidzIGRlZmF1
bHQKICAgICAvLyBtaW5pbXVtIHRpbWVyIGludGVydmFsLiBGSVhNRTogdG8gbWFrZSBpdCB3b3Jr
IHdpdGggZGVkaWNhdGVkCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAgICAgdGltZXIt
PmRpZENoYW5nZUFsaWdubWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29s
KSBjb25zdAorU2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVu
dEludGVydmFsKGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERPTVRpbWVyOjpkZWZhdWx0QWxp
Z25tZW50SW50ZXJ2YWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oCmluZGV4IGRkZjM0NzFlZjUxMjRlOTUwODRhMGQzNTE0YTA4ZWVjZjRjOGUyMzku
LjQwNTE0N2JlNWUxMWU0OTAwYzhiYTQ2MmJiZDdiZjM4NWQ3ZTM3ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg5LDEyICsxODksMTEgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpWTSYgdm0oKTsKIAotICAgIC8vIElu
dGVydmFsIGlzIGluIHNlY29uZHMuCi0gICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZh
bChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKLSAg
ICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwo
KSBjb25zdDsKKyAgICB2b2lkIGFkanVzdE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMg
b2xkTWluaW11bVRpbWVySW50ZXJ2YWwpOworICAgIHZpcnR1YWwgU2Vjb25kcyBtaW5pbXVtRE9N
VGltZXJJbnRlcnZhbCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRDaGFuZ2VUaW1lckFsaWdubWVu
dEludGVydmFsKCk7Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlJiBl
dmVudFF1ZXVlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcwZjIyYWZmODQ2N2RkNWVl
NmYzZDM2NjNmMDJlYzA3MWQ2ZjUzNmEuLjU4MGE4Mjg2YTUwNjM2MjE0ZTMxZjMzYjJlM2I5YTM4
ZjJlZjdiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbFNlbmRYTUxIdHRwUmVxdWVz
dCh1cmwpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGlt
ZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3Qs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNo
b3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2
ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHNldFRpbWVyRXZlbnRO
YW1lLCB0cnVlKTsKICAgICBkaWRTY2hlZHVsZUFzeW5jQ2FsbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBBc3luY0NhbGxUeXBlVGltZXIsIHRpbWVySWQsIGNvbnRleHQsIHNpbmdsZVNob3QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDllMGUwYWJjM2M2NWEyMjc3MGU4ODlhM2VhYzdkZDg5NDVjZjhjZDYuLmM5ZGI0ZmY4
YzdiNzg5NTQzOWUzMzcyM2FiNGZiODk3YzMxMzU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEyMyw3ICsxMjMs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVt
ZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIHVybCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBz
aW5nbGVTaG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgaW50IHRpbWVySWQpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTI5Myw3ICsyOTMs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3RhdGVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
VHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJl
bW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgd2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKQEAgLTY0Miw3ICs2NDIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICAgICB3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsKIH0K
IAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWYwZDA1NzZkMjRlZGJhYjlh
MDlhODlkNDBkMmRmMWQ4ZDk2OWEwZC4uZTIwMmQzMmM2NDU3Nzg3NzkwYjY3M2I4MTNmN2Q3OTk4
MzIxNTAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVj
dCYKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQYWlu
dCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGlu
dCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCwgRnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0
YWxsVGltZXIoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBG
cmFtZSogZnJhbWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRydWUsIGZyYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGJm
NWJiYmIxNzQ0MjZlMDlkNjRjZWJhMDExZjQxZDIwNzI0N2U0YWMuLjg1ZjA2ZGFhYWEwOTYwOGI3
OTFhMjM0MWM5M2QyMDdmZWYyOTM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRJ
bnN0YWxsVGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91
dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGlu
dCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKICAg
ICB2b2lkIGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgd2ls
bEZpcmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcAppbmRleCBhMjE2NTkzZjg1YjAxYTgzZGE2N2NhZTlkNGY3ZDI5N2Y1NDNjYjFiLi43NGFh
N2ZmZTgxMzM0YjRjNjUxYzE0ODQ1OGY5MmU4ZTdjYTc2YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtOTQsMTEgKzk0
LDExIEBAIFJlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
R2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAotUmVm
PEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3Rh
bGxEYXRhKGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJv
b2wgc2luZ2xlU2hvdCkKK1JlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBi
b29sIHNpbmdsZVNob3QpCiB7CiAgICAgUmVmPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwo
InRpbWVySWQiKSwgdGltZXJJZCk7Ci0gICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwo
InRpbWVvdXQiKSwgKGludCl0aW1lb3V0LmNvdW50KCkpOworICAgIGRhdGEtPnNldEludGVnZXIo
QVNDSUlMaXRlcmFsKCJ0aW1lb3V0IiksIChpbnQpdGltZW91dC5taWxsaXNlY29uZHMoKSk7CiAg
ICAgZGF0YS0+c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNpbmdsZVNob3QiKSwgc2luZ2xlU2hv
dCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZmI3MDVkMWVhNGJhMTlkZDkyYjFiZmQwM2Mx
YzFhZTRmYTUyNDVmYy4uZGRmOGQwNWRmZTRlZTM2ZDg0MDQxNmI0MWFhYTdlNzQxYWE1NjRiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rvcnku
aApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdD4gY3JlYXRlUHJvYmVTYW1wbGVEYXRhKGNvbnN0IEluc3BlY3Rvcjo6U2Ny
aXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIHNhbXBsZUlkKTsKICAgICBzdGF0aWMgUmVm
PEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25z
dCBFdmVudCYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwotICAgIHN0YXRpYyBSZWY8SW5zcGVj
dG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQs
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAg
ICBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3Rh
bGxEYXRhKGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAg
ICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVT
Y3JpcHREYXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKICAgICBzdGF0aWMg
UmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lU3RhbXBEYXRhKGNvbnN0
IFN0cmluZyYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShpbnQgY2FsbGJhY2tJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCmluZGV4IDgwZTFiOGQ2ODFlN2RjMjI2MDU2OWEyN2Q4YTgwOWE4YTJiY2IwYmIuLjkz
NDgxNjdkNjIxZTQ5NDVhOGViNjE4ZDE1MjFhZTBhMjFmY2RjODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCkBAIC01Miw4ICs1Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAw
bXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hlcyBHZWNrby4KLXN0YXRpYyBjb25zdCBhdXRvIG1pbklu
dGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGly
aWNhbGx5IGRldGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0
IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgeyAxX3MgfTsgLy8g
T25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgorc3RhdGljIGNvbnN0IFNlY29uZHMgbWluSW50ZXJ2
YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyB7IDFfcyB9OyAvLyBFbXBpcmljYWxs
eSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KIHN0YXRpYyBjb25zdCBpbnQg
bWF4VGltZXJOZXN0aW5nTGV2ZWwgPSA1OwogCiBjbGFzcyBET01UaW1lckZpcmVTdGF0ZSB7CkBA
IC0xNjEsMTQgKzE2MSwxNCBAQCBwcml2YXRlOgogCiBib29sIE5lc3RlZFRpbWVyc01hcDo6aXNU
cmFja2luZ05lc3RlZFRpbWVycyA9IGZhbHNlOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
Rm9yd2FyZFVzZXJHZXN0dXJlKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwsIGlu
dCBuZXN0aW5nTGV2ZWwpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRm9yd2FyZFVzZXJHZXN0
dXJlKFNlY29uZHMgaW50ZXJ2YWwsIGludCBuZXN0aW5nTGV2ZWwpCiB7CiAgICAgcmV0dXJuIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogICAgICAgICAmJiBp
bnRlcnZhbCA8PSBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZwogICAgICAgICAm
JiAhbmVzdGluZ0xldmVsOyAvLyBHZXN0dXJlcyBzaG91bGQgbm90IGJlIGZvcndhcmRlZCB0byBu
ZXN0ZWQgdGltZXJzLgogfQogCi1zdGF0aWMgaW5saW5lIFJlZlB0cjxVc2VyR2VzdHVyZVRva2Vu
PiB1c2VyR2VzdHVyZVRva2VuVG9Gb3J3YXJkKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50
ZXJ2YWwsIGludCBuZXN0aW5nTGV2ZWwpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxVc2VyR2VzdHVy
ZVRva2VuPiB1c2VyR2VzdHVyZVRva2VuVG9Gb3J3YXJkKFNlY29uZHMgaW50ZXJ2YWwsIGludCBu
ZXN0aW5nTGV2ZWwpCiB7CiAgICAgaWYgKCFzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2
YWwsIG5lc3RpbmdMZXZlbCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc2LDcgKzE3
Niw3IEBAIHN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVzZXJHZXN0dXJl
VG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pCiAgICAgcmV0dXJuIFVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKIH0KIAotRE9NVGltZXI6OkRPTVRpbWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IGFjdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBz
aW5nbGVTaG90KQorRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyBp
bnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQogICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0
KQogICAgICwgbV9uZXN0aW5nTGV2ZWwoY29udGV4dC50aW1lck5lc3RpbmdMZXZlbCgpKQogICAg
ICwgbV9hY3Rpb24oV1RGTW92ZShhY3Rpb24pKQpAQCAtMjAyLDcgKzIwMiw3IEBAIERPTVRpbWVy
Ojp+RE9NVGltZXIoKQogewogfQogCi1pbnQgRE9NVGltZXI6Omluc3RhbGwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0
aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkK
K2ludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIFNlY29uZHMgdGltZW91dCwg
Ym9vbCBzaW5nbGVTaG90KQogewogICAgIC8vIERPTVRpbWVyIGNvbnN0cnVjdG9yIHBhc3NlcyBv
d25lcnNoaXAgb2YgdGhlIGluaXRpYWwgcmVmIG9uIHRoZSBvYmplY3QgdG8gdGhlIGNvbnN0cnVj
dG9yLgogICAgIC8vIFRoaXMgcmVmZXJlbmNlIHdpbGwgYmUgcmVsZWFzZWQgYXV0b21hdGljYWxs
eSB3aGVuIGEgb25lLXNob3QgdGltZXIgZmlyZXMsIHdoZW4gdGhlIGNvbnRleHQKQEAgLTIxMSw3
ICsyMTEsNyBAQCBpbnQgRE9NVGltZXI6Omluc3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGJvb2wgZGlkRGVmZXJUaW1l
b3V0ID0gY29udGV4dC5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCk7Ci0gICAgICAgIGlm
ICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQuY291bnQoKSA8PSAxMDAgJiYgc2luZ2xlU2hv
dCkgeworICAgICAgICBpZiAoIWRpZERlZmVyVGltZW91dCAmJiB0aW1lb3V0IDw9IDEwMF9tcyAm
JiBzaW5nbGVTaG90KSB7CiAgICAgICAgICAgICBXS1NldE9ic2VydmVkQ29udGVudENoYW5nZShX
S0NvbnRlbnRJbmRldGVybWluYXRlQ2hhbmdlKTsKICAgICAgICAgICAgIFdlYlRocmVhZEFkZE9i
c2VydmVkQ29udGVudE1vZGlmaWVyKHRpbWVyKTsgLy8gV2lsbCBvbmx5IHRha2UgYWZmZWN0IGlm
IG5vdCBhbHJlYWR5IHZpc2liaWxpdHkgY2hhbmdlLgogICAgICAgICB9CkBAIC00MDAsNDUgKzQw
MCw0NSBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1lckludGVydmFsSWZOZWNlc3NhcnkoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAocmVwZWF0SW50ZXJ2YWwoKSkgewotICAgICAgICBB
U1NFUlQocmVwZWF0SW50ZXJ2YWxNUygpID09IHByZXZpb3VzSW50ZXJ2YWwpOwotICAgICAgICBM
T0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIHJlcGVhdCBpbnRlcnZhbCBm
cm9tICUiIFBSSWQ2NCAiIG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0aHJvdHRsaW5nLiIs
IHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJbnRlcnZhbC5j
b3VudCgpKTsKKyAgICAgICAgQVNTRVJUKHJlcGVhdEludGVydmFsU2Vjb25kcygpID09IHByZXZp
b3VzSW50ZXJ2YWwpOworICAgICAgICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01U
aW1lcidzIHJlcGVhdCBpbnRlcnZhbCBmcm9tICVmIG1zIHRvICVmIG1zIGR1ZSB0byB0aHJvdHRs
aW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1fY3VycmVudFRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50UmVwZWF0SW50ZXJ2
YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmly
ZSBpbnRlcnZhbCBmcm9tICUiIFBSSWQ2NCAiIG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0
aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGlt
ZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRp
bmcgRE9NVGltZXIncyBmaXJlIGludGVydmFsIGZyb20gJWYgbXMgdG8gJWYgbXMgZHVlIHRvIHRo
cm90dGxpbmcuIiwgdGhpcywgcHJldmlvdXNJbnRlcnZhbC5taWxsaXNlY29uZHMoKSwgbV9jdXJy
ZW50VGltZXJJbnRlcnZhbC5taWxsaXNlY29uZHMoKSk7CiAgICAgICAgIGF1Z21lbnRGaXJlSW50
ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0K
IH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVk
VG9NaW5pbXVtKCkgY29uc3QKK1NlY29uZHMgRE9NVGltZXI6OmludGVydmFsQ2xhbXBlZFRvTWlu
aW11bSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAg
ICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRpbWVyTmVzdGluZ0xldmVsKTsKIAotICAg
IGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CisgICAg
U2Vjb25kcyBpbnRlcnZhbCA9IHN0ZDo6bWF4KDFfbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAK
ICAgICAvLyBPbmx5IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBp
ZiAobV9uZXN0aW5nTGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKICAgICAgICAgcmV0dXJu
IGludGVydmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9iYWwgKHBl
ciBQYWdlKSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAgICBpbnRl
cnZhbCA9IHN0ZDo6bWF4KGludGVydmFsLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPm1pbmlt
dW1UaW1lckludGVydmFsKCkpOworICAgIGludGVydmFsID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSk7CiAgICAg
aWYgKG1fdGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRsZSkKICAgICAgICAgaW50ZXJ2YWwg
PSBzdGQ6Om1heChpbnRlcnZhbCwgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5n
ZVRpbWVycyk7CiAgICAgcmV0dXJuIGludGVydmFsOwogfQogCi1zdGQ6Om9wdGlvbmFsPHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHM+IERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBmaXJlVGltZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4g
RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShTZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAg
IGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwp
OwotICAgIGlmIChhbGlnbm1lbnRJbnRlcnZhbCA9PSAwbXMpCisgICAgU2Vjb25kcyBhbGlnbm1l
bnRJbnRlcnZhbCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZG9tVGltZXJBbGlnbm1lbnRJ
bnRlcnZhbChtX25lc3RpbmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7CisgICAgaWYg
KCFhbGlnbm1lbnRJbnRlcnZhbCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAK
ICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVt
YmVyKCk7CiAKICAgICAvLyBGb3JjZSBhbGlnbm1lbnQgdG8gcmFuZG9taXplZEFsaWdubWVudCBm
cmFjdGlvbiBvZiB0aGUgd2F5IGJldHdlZW4gYWxpZ25lbW50SW50ZXJ2YWxzLCBlLmcuCi0gICAg
Ly8gaWYgYWxpZ25tZW50SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMg
MC4zIHRoaXMgd2lsbCBhbGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAgIGF1dG8gcmFuZG9taXpl
ZE9mZnNldCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM+KGFsaWdubWVudEludGVydmFsICogcmFuZG9taXplZFByb3BvcnRpb24pOwotICAgIGF1
dG8gYWRqdXN0ZWRGaXJlVGltZSA9IGZpcmVUaW1lIC0gcmFuZG9taXplZE9mZnNldDsKKyAgICAv
LyBpZiBhbGlnbm1lbnRJbnRlcnZhbCBpcyAxMF9tcyBhbmQgcmFuZG9taXplZEFsaWdubWVudCBp
cyAwLjMgdGhpcyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCisgICAgU2Vjb25kcyByYW5k
b21pemVkT2Zmc2V0ID0gYWxpZ25tZW50SW50ZXJ2YWwgKiByYW5kb21pemVkUHJvcG9ydGlvbjsK
KyAgICBTZWNvbmRzIGFkanVzdGVkRmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZz
ZXQ7CiAgICAgcmV0dXJuIGFkanVzdGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFs
aWdubWVudEludGVydmFsKSArIGFsaWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IDg3Mjc3Mzk3ZWE2MDhjNDE4MzdiMGE4YWNi
NjAyZWIzM2NkNmZlODcuLmRiYzdkMzQ3YzMzOTk0NGMxMzJiNGQ3NzJiOWFkZjU2ZjE2NzA1NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDQsMTMgKzQ1LDEzIEBAIGNsYXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8RE9NVGltZXI+LCBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RE9NVGltZXIoKTsKIAotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIGRlZmF1bHRNaW5pbXVtSW50ZXJ2YWwoKSB7IHJldHVybiA0bXM7IH0KLSAgICBzdGF0
aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiAwbXM7IH0KLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBoaWRk
ZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAxMDAwbXM7IH0KKyAgICBzdGF0aWMg
U2Vjb25kcyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gNF9tczsgfQorICAgIHN0
YXRpYyBTZWNvbmRzIGRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIDBfczsgfQor
ICAgIHN0YXRpYyBTZWNvbmRzIGhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJu
IDFfczsgfQogCiAgICAgLy8gQ3JlYXRlcyBhIG5ldyB0aW1lciBvd25lZCBieSBzcGVjaWZpZWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RhcnRzIGl0CiAgICAgLy8gYW5kIHJldHVybnMgaXRz
IElkLgotICAgIHN0YXRpYyBpbnQgaW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBzdGF0aWMgaW50IGluc3RhbGwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBTZWNv
bmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQnlJ
ZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHRpbWVvdXRJZCk7CiAKICAgICAvLyBOb3Rp
ZnkgdGhhdCB0aGUgaW50ZXJ2YWwgbWF5IG5lZWQgdXBkYXRpbmcgKGUuZy4gYmVjYXVzZSB0aGUg
bWluaW11bSBpbnRlcnZhbApAQCAtNjAsMTAgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBzY3JpcHREaWRJbnRlcmFjdFdpdGhQbHVnaW4oSFRNTFBsdWdJbkVsZW1lbnQmKTsKIAog
cHJpdmF0ZToKLSAgICBET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2
YWwsIGJvb2wgc2luZ2xlU2hvdCk7CisgICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBTZWNvbmRzIGludGVydmFsLCBi
b29sIHNpbmdsZVNob3QpOwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsQ2xhbXBlZFRvTWlu
aW11bSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNlY29uZHMgaW50ZXJ2YWxDbGFtcGVk
VG9NaW5pbXVtKCkgY29uc3Q7CiAKICAgICBib29sIGlzRE9NVGltZXJzVGhyb3R0bGluZ0VuYWJs
ZWQoRG9jdW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxpbmdTdGF0ZUlmTmVj
ZXNzYXJ5KGNvbnN0IERPTVRpbWVyRmlyZVN0YXRlJik7CkBAIC03MSw3ICs3Miw3IEBAIHByaXZh
dGU6CiAgICAgLy8gU3VzcGVuZGFibGVUaW1lcgogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9w
dGlvbmFsPHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKSBjb25zdCBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFsaWduZWRGaXJlVGltZShTZWNvbmRzKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODUsOSArODYsOSBAQCBwcml2
YXRlOgogICAgIGludCBtX3RpbWVvdXRJZDsKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gbV9hY3Rpb247Ci0gICAgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBtX29yaWdpbmFsSW50ZXJ2YWw7CisgICAgU2Vjb25kcyBtX29yaWdp
bmFsSW50ZXJ2YWw7CiAgICAgVGltZXJUaHJvdHRsZVN0YXRlIG1fdGhyb3R0bGVTdGF0ZTsKLSAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CisgICAg
U2Vjb25kcyBtX2N1cnJlbnRUaW1lckludGVydmFsOwogICAgIFJlZlB0cjxVc2VyR2VzdHVyZVRv
a2VuPiBtX3VzZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggNmFlZGIwOWM4NWUxN2RkMTUyZDM0YzMxZThiZjQwMjJlMjczYWYxZi4u
ZTJiMzhhNTExZjRiMGI4MDIxMjllMzE2MjNjYjA0ZWJmMDM1NjUwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtMTY2Myw3ICsxNjYzLDcgQEAgRXhjZXB0aW9uT3I8aW50PiBET01X
aW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9u
LAogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJS
IH07Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlv
biksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOworICAgIHJldHVy
biBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwgV1RGTW92ZShhY3Rpb24pLCBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmNs
ZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgRXhjZXB0aW9u
T3I8aW50PiBET01XaW5kb3c6OnNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IGFjdGlvbiwKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFM
SURfQUNDRVNTX0VSUiB9OwotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwg
V1RGTW92ZShhY3Rpb24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxz
ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlv
biksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIGZhbHNlKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6OmNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDdkNmQ5OGExMTA5YTgwOWMyNDljYjRjMmNkMDI2YWY1Y2Q1MjZiNTYuLjI0Njk0ZDhl
MTc3MDYzYzFiMDkwMTIxYmZlMjZlZTU1MDFkZjY0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MjM0LDggKzIzNCw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmln
dXJhdGlvbikKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKICAgICAsIG1fdmlld01v
ZGUoVmlld01vZGVXaW5kb3dlZCkKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJ
QSkKLSAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFsaWdu
bWVudEludGVydmFsKCkpCi0gICAgLCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRp
bWVyKCp0aGlzLCAmUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJl
ZCkKKyAgICAsIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFs
aWdubWVudEludGVydmFsKCkpCisgICAgLCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZVRpbWVyKCp0aGlzLCAmUGFnZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
VGltZXJGaXJlZCkKICAgICAsIG1faXNFZGl0YWJsZShmYWxzZSkKICAgICAsIG1faXNQcmVyZW5k
ZXIoZmFsc2UpCiAgICAgLCBtX2FjdGl2aXR5U3RhdGUoUGFnZUluaXRpYWxBY3Rpdml0eVN0YXRl
KQpAQCAtMTMyMCw3ICsxMzIwLDcgQEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0
ZShUaW1lclRocm90dGxpbmdTdGF0ZSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV90
aW1lclRocm90dGxpbmdTdGF0ZSA9IHN0YXRlOwotICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVM
YXN0Q2hhbmdlZFRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBt
X3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CiAKICAgICB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFsKCk7CiAKQEAgLTEzMzMs
MTIgKzEzMzMsMTIgQEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0ZShUaW1lclRo
cm90dGxpbmdTdGF0ZSBzdGF0ZSkKICAgICB9CiB9CiAKLXZvaWQgUGFnZTo6c2V0VGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBsaW1p
dCkKK3ZvaWQgUGFnZTo6c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQo
U2Vjb25kcyBsaW1pdCkKIHsKLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0ID0gbGltaXQ7CisgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1p
dCA9IGxpbWl0OwogCi0gICAgLy8gSWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwpIHRoZW4gd2UgbmVlZAotICAgIC8vIHRv
IHVwZGF0ZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwsIGlmIGdyZWF0ZXIgdGhlbiBuZWVkIHRv
IHJlc3RhcnQgdGhlIGluY3JlYXNlIHRpbWVyLgorICAgIC8vIElmIChtX2RvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0IDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsKSB0
aGVuIHdlIG5lZWQKKyAgICAvLyB0byB1cGRhdGUgbV9kb21UaW1lckFsaWdubWVudEludGVydmFs
LCBpZiBncmVhdGVyIHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KICAg
ICBpZiAobV90aW1lclRocm90dGxpbmdTdGF0ZSA9PSBUaW1lclRocm90dGxpbmdTdGF0ZTo6RW5h
YmxlZEluY3JlYXNpbmcpCiAgICAgICAgIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwo
KTsKIH0KQEAgLTEzNDksMjggKzEzNDksMjggQEAgdm9pZCBQYWdlOjp1cGRhdGVET01UaW1lckFs
aWdubWVudEludGVydmFsKCkKIAogICAgIHN3aXRjaCAobV90aW1lclRocm90dGxpbmdTdGF0ZSkg
ewogICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkRpc2FibGVkOgotICAgICAgICBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFs
KCk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpkZWZh
dWx0QWxpZ25tZW50SW50ZXJ2YWwoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVy
VGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkOgotICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2
YWwgPSBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFsKCk7CisgICAgICAgIG1f
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50
SW50ZXJ2YWwoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVyVGhyb3R0bGluZ1N0
YXRlOjpFbmFibGVkSW5jcmVhc2luZzoKICAgICAgICAgLy8gRm9yIHBhZ2VzIGluIHByZXJlbmRl
ciBzdGF0ZSBtYXhpbXVtIHRocm90dGxpbmcga2lja3MgaW4gaW1tZWRpYXRlbHkuCiAgICAgICAg
IGlmIChtX2lzUHJlcmVuZGVyKQotICAgICAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFs
ID0gbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKKyAgICAgICAgICAgIG1f
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlTGltaXQ7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1fdGltZXJU
aHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUudGltZV9zaW5jZV9lcG9jaCgpICE9IHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0aW9uOjp6ZXJvKCkpOwotICAgICAgICAgICAgbV90
aW1lckFsaWdubWVudEludGVydmFsID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBt
X3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lKTsKKyAgICAgICAgICAgIEFTU0VS
VCghIW1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUpOworICAgICAgICAgICAg
bV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3Rp
bWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lOwogICAgICAgICAgICAgLy8gSWYgd2Un
cmUgYmVsb3cgdGhlIGxpbWl0LCBzZXQgdGhlIHRpbWVyLiBJZiBhYm92ZSwgY2xhbXAgdG8gbGlt
aXQuCi0gICAgICAgICAgICBpZiAobV90aW1lckFsaWdubWVudEludGVydmFsIDwgbV90aW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCkKKyAgICAgICAgICAgIGlmIChtX2RvbVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwgPCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KQogICAgICAgICAgICAgICAgIG5lZWRzSW5jcmVhc2VUaW1lciA9IHRydWU7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFsID0gbV90
aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKKyAgICAgICAgICAgICAgICBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0OwogICAgICAgICB9CiAgICAgICAgIC8vIEFsaWdubWVudCBpbnRlcnZhbCBzaG91
bGQgbm90IGJlIGxlc3MgdGhhbiBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFs
KCkuCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6bWF4KG1fdGltZXJB
bGlnbm1lbnRJbnRlcnZhbCwgRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgp
KTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gc3RkOjptYXgobV9kb21U
aW1lckFsaWdubWVudEludGVydmFsLCBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkpOwogICAgIH0KIAogICAgIC8vIElmIHRocm90dGxpbmcgaXMgZW5hYmxlZCwgYXV0by1p
bmNyZWFzaW5nIG9mIHRocm90dGxpbmcgaXMgZW5hYmxlZCwgYW5kIHRoZSBhdXRvLWluY3JlYXNl
CkBAIC0xMzc4LDE2ICsxMzc4LDE2IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpCiAgICAgLy8gYmV0d2VlbiBpbmNyZWFzZXMgaXMgZXF1YWwgdG8gdGhlIGN1
cnJlbnQgdGhyb3R0bGUgdGltZS4gU2luY2UgYWxpbm1lbnQgaW50ZXJ2YWwgaW5jcmVhc2VzCiAg
ICAgLy8gZXhwb25lbnRpYWxseSwgdGltZSBiZXR3ZWVuIHN0ZXBzIGlzIGV4cG9uZW50aWFsIHRv
by4KICAgICBpZiAoIW5lZWRzSW5jcmVhc2VUaW1lcikKLSAgICAgICAgbV90aW1lckFsaWdubWVu
dEludGVydmFsSW5jcmVhc2VUaW1lci5zdG9wKCk7Ci0gICAgZWxzZSBpZiAoIW1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV90aW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lci5zdGFydE9uZVNob3QobV90aW1lckFsaWdubWVu
dEludGVydmFsKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lci5zdG9wKCk7CisgICAgZWxzZSBpZiAoIW1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVy
dmFsSW5jcmVhc2VUaW1lci5zdGFydE9uZVNob3QobV9kb21UaW1lckFsaWdubWVudEludGVydmFs
KTsKIH0KIAotdm9pZCBQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZp
cmVkKCkKK3ZvaWQgUGFnZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJG
aXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fc2V0dGluZ3MtPmhpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdBdXRvSW5jcmVhc2VzKCkpOwogICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRl
ID09IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkSW5jcmVhc2luZyk7Ci0gICAgQVNTRVJU
KG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3Jl
YXNlTGltaXQpOworICAgIEFTU0VSVChtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KTsKICAgICAKICAgICAvLyBBbGln
bm1lbnQgaW50ZXJ2YWwgaXMgaW5jcmVhc2VkIHRvIGVxdWFsIHRoZSB0aW1lIHRoZSBwYWdlIGhh
cyBiZWVuIHRocm90dGxlZCwgdG8gYSBsaW1pdC4KICAgICB1cGRhdGVET01UaW1lckFsaWdubWVu
dEludGVydmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDkzOGEwOTZmYjczOWQ5OWY2N2UyZWRjYjU5
NDMyZWZkZjE1NmY1MzkuLmY4NmY0N2ViZTI2Yjg5MWNlMjIyYjM2NzcyOTMxZTE3NDM5Y2JiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0yNDAsNyArMjQwLDcgQEAgcHVibGljOgogICAgIFByb2dyZXNz
VHJhY2tlciYgcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiAqbV9wcm9ncmVzczsgfQogICAgIEJh
Y2tGb3J3YXJkQ29udHJvbGxlciYgYmFja0ZvcndhcmQoKSBjb25zdCB7IHJldHVybiAqbV9iYWNr
Rm9yd2FyZENvbnRyb2xsZXI7IH0KIAotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZG9t
VGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbDsgfQorICAgIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsgfQogCiAjaWYgRU5BQkxFKFZJ
RVdfTU9ERV9DU1NfTUVESUEpCiAgICAgZW51bSBWaWV3TW9kZSB7CkBAIC01NTIsNyArNTUyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvd0FsbFBsdWdpbnMoYm9vbCBzaG93QWxsKSB7IG1f
c2hvd0FsbFBsdWdpbnMgPSBzaG93QWxsOyB9CiAgICAgYm9vbCBzaG93QWxsUGx1Z2lucygpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUaW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VMaW1pdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KFNlY29u
ZHMpOwogCiAgICAgYm9vbCBpc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb247IH0KICAgICB2b2lkIHNldENvbnRyb2xsZWRCeUF1
dG9tYXRpb24oYm9vbCBjb250cm9sbGVkKSB7IG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbiA9IGNv
bnRyb2xsZWQ7IH0KQEAgLTYwOSw3ICs2MDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0VGlt
ZXJUaHJvdHRsaW5nU3RhdGUoVGltZXJUaHJvdHRsaW5nU3RhdGUpOwogICAgIHZvaWQgdXBkYXRl
VGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50
SW50ZXJ2YWwoKTsKLSAgICB2b2lkIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVy
RmlyZWQoKTsKKyAgICB2b2lkIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVy
RmlyZWQoKTsKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxDaHJvbWU+IG1fY2hyb21lOwog
ICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEcmFnQ2FyZXRDb250cm9sbGVyPiBtX2RyYWdDYXJl
dENvbnRyb2xsZXI7CkBAIC03MTIsMTAgKzcxMiwxMCBAQCBwcml2YXRlOgogI2VuZGlmIC8vIEVO
QUJMRShWSUVXX01PREVfQ1NTX01FRElBKQogCiAgICAgVGltZXJUaHJvdHRsaW5nU3RhdGUgbV90
aW1lclRocm90dGxpbmdTdGF0ZSB7IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpEaXNhYmxlZCB9Owot
ICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV90aW1lclRocm90dGxp
bmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSB7IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0
aW9uOjp6ZXJvKCkgfTsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbDsKLSAgICBUaW1lciBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZVRpbWVyOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV90aW1lckFsaWdubWVudElu
dGVydmFsSW5jcmVhc2VMaW1pdCB7IDAgfTsKKyAgICBNb25vdG9uaWNUaW1lIG1fdGltZXJUaHJv
dHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWU7CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWw7CisgICAgVGltZXIgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVh
c2VUaW1lcjsKKyAgICBTZWNvbmRzIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQ7CiAKICAgICBib29sIG1faXNFZGl0YWJsZTsKICAgICBib29sIG1faXNQcmVyZW5kZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDZiYjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVk
Y2RlM2RhYWFlMWQ0MjEuLjdkMDg3ODQ3Y2Q4YTg5Mjg0YmI0Njg4ZDQxMmUzNDkzNmI5YmU0MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NDksMTcgKzQ0OSwxNiBAQCB2b2lkIFNl
dHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNob3VsZE5vdFJl
bG9hZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgPSBz
aG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGlu
dGVydmFsKQordm9pZCBTZXR0aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25k
cyBpbnRlcnZhbCkKIHsKLSAgICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBtX21pbmltdW1ET01U
aW1lckludGVydmFsOwotICAgIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbDsK
KyAgICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBzdGQ6OmV4Y2hhbmdlKG1fbWluaW11bURPTVRp
bWVySW50ZXJ2YWwsIGludGVydmFsKTsKIAogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm47CiAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hZGp1c3RN
aW5pbXVtVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVydmFsKTsKKyAgICAgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5hZGp1c3RNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVy
dmFsKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA3ZmM1NzA4ZWM3OTY3
MWM5OTI1YTc3OGZjMTRhNDViZjUwNTU1MmU5Li45ZjM3MDc1NWIwYjgyYmZlODE5MjgwYTU5ODE0
MGRhMzlmNTgyMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xNjksOCArMTY5LDggQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2Fk
aW5nUXVpcmsoYm9vbCk7CiAgICAgYm9vbCBuZWVkc0Fjcm9iYXRGcmFtZVJlbG9hZGluZ1F1aXJr
KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyazsgfQogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRN
aW5pbXVtSW50ZXJ2YWwoKS4KLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1E
T01UaW1lckludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZh
bDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwo
U2Vjb25kcyk7IC8vIEluaXRpYWxpemVkIHRvIERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVy
dmFsKCkuCisgICAgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0TGF5b3V0SW50ZXJ2YWwoU2Vjb25kcyk7CiAgICAgU2Vjb25kcyBsYXlvdXRJbnRlcnZh
bCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0SW50ZXJ2YWw7IH0KQEAgLTMzOCw3ICszMzgsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxGb250R2VuZXJpY0ZhbWlsaWVz
PiBtX2ZvbnRHZW5lcmljRmFtaWxpZXM7CiAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICAgICBTZWNvbmRzIG1fbGF5b3V0
SW50ZXJ2YWw7Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1ET01UaW1l
ckludGVydmFsOworICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKIAogICAg
IFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TdXNwZW5kYWJsZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuaAppbmRleCBlMTVmMGE3MDkzNzg1MGEzYTY5MDFmNzIwYzVkZTFmNjA5OTEzODY0Li5i
YWRhN2JjMjRhNTJiNWI1ZjNjMGRlNTk4ZWQ5OTcwNzc1ODk0ZjU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuaApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFN1c3BlbmRhYmxlVGltZXIgOiBw
cml2YXRlIFRpbWVyQmFzZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CkBAIC00OSw5ICs1MSwy
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSk7
CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKTsKIAorICAgIHZv
aWQgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFydFJlcGVhdGlu
ZyhyZXBlYXRJbnRlcnZhbC52YWx1ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29u
ZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KGludGVydmFsLnZhbHVlKCkpOyB9CisKKyAgICAv
LyBGSVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJv
cCB0aGVzZS4KICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50
ZXJ2YWwpKTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGludGVydmFsKSk7IH0KKwog
ICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWxNUygpIGNvbnN0IHsg
cmV0dXJuIHNlY29uZHNUb01TKHJlcGVhdEludGVydmFsKCkpOyB9CisgICAgU2Vjb25kcyByZXBl
YXRJbnRlcnZhbFNlY29uZHMoKSBjb25zdCB7IHJldHVybiBTZWNvbmRzIHsgcmVwZWF0SW50ZXJ2
YWwoKSB9OyB9CisKKyAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkg
eyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhLnZhbHVlKCkpOyB9CisgICAgdm9pZCBhdWdtZW50
UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZGVs
dGEudmFsdWUoKSk7IH0KKworICAgIC8vIEZJWE1FOiBVc2UgdGhlIG92ZXJsb2FkcyB0YWtpbmcg
U2Vjb25kcyBpbnN0ZWFkIGFuZCBkcm9wIHRoZXNlLgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRl
cnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2
YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFs
KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFs
KG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4
IGNkNTk0ZmU3Y2M1NTg5MTI5NDc0NjM5NzZkOGQxODVmOTExMTRiYmEuLjBhNDI2Njc1NjhlYjhh
Y2FjN2Y3YWVkYjhlZWMwMWI2YzhiNDIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAK
QEAgLTM4Miw4ICszODIsOCBAQCB2b2lkIFRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJs
ZSBuZXdUaW1lKQogICAgIGRvdWJsZSBvbGRUaW1lID0gbV9uZXh0RmlyZVRpbWU7CiAgICAgLy8g
RG9uJ3QgcmVhbGlnbiB6ZXJvLWRlbGF5IHRpbWVycy4KICAgICBpZiAobmV3VGltZSkgewotICAg
ICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9IGFsaWduZWRGaXJlVGltZShzZWNvbmRzVG9N
UyhuZXdUaW1lKSkpCi0gICAgICAgICAgICBuZXdUaW1lID0gbXNUb1NlY29uZHMobmV3QWxpZ25l
ZFRpbWUudmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIG5ld0FsaWduZWRUaW1lID0gYWxpZ25l
ZEZpcmVUaW1lKFNlY29uZHMgeyBuZXdUaW1lIH0pKQorICAgICAgICAgICAgbmV3VGltZSA9IG5l
d0FsaWduZWRUaW1lLnZhbHVlKCkuc2Vjb25kcygpOwogICAgIH0KIAogICAgIGlmIChvbGRUaW1l
ICE9IG5ld1RpbWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IDUyYTE2NmViYTJkMjMx
OWQxNWExYjdlZDkwODJiNmIxNDMzZjNiMjQuLjA0Nzc0ODkxOGQ3MzAwN2RiNzA0NWFiNjVkZjkw
NTdlMGJkNzRmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaApAQCAtODgsNyArODgsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKIAotICAgIHZp
cnR1YWwgc3RkOjpvcHRpb25hbDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmly
ZVRpbWUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcykgY29uc3QgeyByZXR1cm4gc3RkOjpudWxs
b3B0OyB9CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFsaWduZWRGaXJlVGlt
ZShTZWNvbmRzKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAogICAgIHZvaWQgY2hl
Y2tDb25zaXN0ZW5jeSgpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tIZWFwSW5kZXgoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDRlMjQ0
ODRiZDE3ODE0ZDg0NmY2Mjk4MWM1MGQ1ZDE2YjllNjU4MWIuLjY2NjFjOTE1NzBkOTYxNzY5MjU5
OGFhMGU3ZTk5Yzk1ZTJmZDMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcApAQCAtNjIsNyArNjIsNyBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFsTW9ja1Njcm9sbGJh
cnNFbmFibGVkKHNldHRpbmdzLm1vY2tTY3JvbGxiYXJzRW5hYmxlZCgpKQogICAgICwgbV9pbWFn
ZXNFbmFibGVkKHNldHRpbmdzLmFyZUltYWdlc0VuYWJsZWQoKSkKICAgICAsIG1fcHJlZmVyTUlN
RVR5cGVGb3JJbWFnZXMoc2V0dGluZ3MucHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMoKSkKLSAgICAs
IG1fbWluaW11bVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRpbWVySW50ZXJ2YWwo
KSkKKyAgICAsIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRp
bWVySW50ZXJ2YWwoKSkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgLCBtX3Nob3VsZERp
c3BsYXlTdWJ0aXRsZXMoc2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1YnRpdGxlcygpKQogICAgICwg
bV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoc2V0dGluZ3Muc2hvdWxkRGlzcGxheUNhcHRpb25zKCkp
CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3Rv
cmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgc2V0dGluZ3Muc2V0Q2FudmFzVXNlc0FjY2Vs
ZXJhdGVkRHJhd2luZyhtX29yaWdpbmFsQ2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyk7CiAg
ICAgc2V0dGluZ3Muc2V0SW1hZ2VzRW5hYmxlZChtX2ltYWdlc0VuYWJsZWQpOwogICAgIHNldHRp
bmdzLnNldFByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKG1fcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMp
OwotICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1fbWluaW11bVRpbWVy
SW50ZXJ2YWwpOworICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1fbWlu
aW11bURPTVRpbWVySW50ZXJ2YWwpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBzZXR0
aW5ncy5zZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyk7
CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKG1fc2hvdWxkRGlzcGxheUNh
cHRpb25zKTsKQEAgLTU0NCw3ICs1NDQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWxJblNlYwogewog
ICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NF
U1NfRVJSIH07Ci0gICAgc2V0dGluZ3MoKS5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGlu
dGVydmFsSW5TZWNvbmRzICogMTAwMCkpKTsKKyAgICBzZXR0aW5ncygpLnNldE1pbmltdW1ET01U
aW1lckludGVydmFsKFNlY29uZHMgeyBpbnRlcnZhbEluU2Vjb25kcyB9KTsKICAgICByZXR1cm4g
eyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDhhMDlmOTU0YWJlMGE3MDBkMjQxMWJiOTg1NGZkYmFkNjcxZDk3NzQuLjQ4NmMzMDYzMzhjZTNj
MTMyYWY3ZTc4NDQxYjc1MzMwNjk2NGYyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9v
bCBtX29yaWdpbmFsVXNlc092ZXJsYXlTY3JvbGxiYXJzOwogICAgICAgICBib29sIG1faW1hZ2Vz
RW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3ByZWZlck1JTUVUeXBlRm9ySW1hZ2VzOwotICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bVRpbWVySW50ZXJ2YWw7CisgICAg
ICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOwogICAgICAgICBi
b29sIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGNhZGFiNzJmZDJiYzUyZWVhYmU0NjM0ZWQ1ZTNjYmQ5ZDY4NDZiNTUuLmI3OGYx
ZGNiOTk4NDk5N2FjZjkwZGIzNTdhMzhmNTM3YTMwZDhmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTEwNDUsNyArMTA0NSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IElu
dGVybmFsczo6aXNUaW1lclRocm90dGxlZChpbnQgdGltZW91dElkKQogICAgIGlmICh0aW1lci0+
aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgPiB0aW1lci0+bV9vcmlnaW5hbEludGVydmFsKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiAhIXRpbWVyLT5hbGlnbmVkRmlyZVRp
bWUoMG1zKTsKKyAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZpcmVUaW1lKDBfcyk7CiB9CiAK
IGJvb2wgSW50ZXJuYWxzOjppc1JlcXVlc3RBbmltYXRpb25GcmFtZVRocm90dGxlZCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDli
MzU3MDk2YjFlYjlhYTQ2YTE4Yjg3N2Q3MTJlMzc4N2Y3MzgzOWIuLjE1MjQxNWM4MjEwMjY4MDRm
YTFjNGY2MGNkMDA2YWJjOGFmNDM0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBXb3JrZXJHbG9iYWxT
Y29wZTo6cG9zdFRhc2soVGFzayYmIHRhc2spCiAKIGludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0
VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1l
b3V0KQogewotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShhY3Rp
b24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKKyAgICByZXR1
cm4gRE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUoYWN0aW9uKSwgU2Vjb25kczo6ZnJv
bU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CiB9CiAKIHZvaWQgV29ya2VyR2xvYmFsU2Nv
cGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQg
V29ya2VyR2xvYmFsU2NvcGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQogCiBpbnQgV29y
a2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rp
b24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCiB7Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxs
KCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHModGltZW91
dCksIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUo
YWN0aW9uKSwgU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgZmFsc2UpOwogfQog
CiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzMDkxNTZi
MDdjNzY3ODQxYzMwYWVjMDhhMTdjMjVlOGZlOGFmNTkzLi5kZTM5MzNmOTg5ZDc2YTgyMWJlMjU1
ZTlhN2U4MWI0OWY5N2FjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVw
ZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQoKQogICAgIHN0YXRpYyBp
bnQgbWF4aW11bVRpbWVyVGhyb3R0bGVQZXJQYWdlSW5NUyA9IDIwMCAqIDEwMDsKIAogICAgIGlu
dCBsaW1pdEluTWlsbGlzZWNvbmRzID0gbWF4aW11bVRpbWVyVGhyb3R0bGVQZXJQYWdlSW5NUyAq
IG1faGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci52YWx1ZSgpOwotICAg
IHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SGlkZGVuUGFnZVRp
bWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQobGltaXRJbk1pbGxpc2Vjb25kcykpOworICAgIHNl
bmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SGlkZGVuUGFnZURPTVRp
bWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQobGltaXRJbk1pbGxpc2Vjb25kcykpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpyZXBvcnRXZWJDb250ZW50Q1BVVGltZShpbnQ2NF90IGNwdVRp
bWUsIHVpbnQ2NF90IGFjdGl2aXR5U3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMGM5MTI3NzYyNzE0NWI0NzE1OThmYTIyZDUzYzAyZDA0
ZjcxMDIwLi4wNmQyNzg3NWQ4MDlmMGVmNDc3MDk0OTVlOTgwMTY4MjI5MWIyMzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMwMyw5ICszMDMs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEFjdGl2ZVBvcHVwTWVudShXZWJQb3B1cE1lbnUqKTsKIAotICAgIHZvaWQg
c2V0SGlkZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBsaW1pdCkKKyAgICB2b2lkIHNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxp
bmdJbmNyZWFzZUxpbWl0KFNlY29uZHMgbGltaXQpCiAgICAgewotICAgICAgICBtX3BhZ2UtPnNl
dFRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KGxpbWl0KTsKKyAgICAgICAgbV9w
YWdlLT5zZXRET01UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChsaW1pdCk7CiAg
ICAgfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAwMTVmMTYxZmE3N2QxZjUwZDQ0OTQzMWY0Y2U0MmYx
YWFkZDJkOGYxLi4xNDhhOTEzYzgyOGY1YzcxMmRiNTY4ZmM5N2ZiNmQ2ZTg2MDdjOWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEyMzUsMTAgKzEyMzUs
MTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
czo6c2V0SGlkZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vj
b25kcykKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0lu
Y3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBt
X3BhZ2VNYXAudmFsdWVzKCkpCi0gICAgICAgIHBhZ2UtPnNldEhpZGRlblBhZ2VUaW1lclRocm90
dGxpbmdJbmNyZWFzZUxpbWl0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMobWlsbGlzZWNvbmRz
KSk7CisgICAgICAgIHBhZ2UtPnNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFz
ZUxpbWl0KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKSk7CiB9CiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IGVmNGVkMzA5MTRjYjFkOGNkMzBlNjVlNjE4ZDRmYzY4MGE5ZDIyNzAuLjAxYmFiM2I1NDgw
MzFhODYwMDkzZjk2ZmFiOGFmZGY3ZWQ1ZDE2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRh
dGVBY3RpdmVQYWdlcygpOwogCi0gICAgdm9pZCBzZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5n
SW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKTsKKyAgICB2b2lkIHNldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpOwogCiAgICAg
dm9pZCBwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRsZWQpOwogICAgIHZv
aWQgcHJlcGFyZVRvU3VzcGVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGQ0MDQxYjFkOTc2YzkwMmFhZDUwNjRlN2NmZWM3
NWYxN2I2YWQ2OTAuLmMzOWViZjM4MmQwMzI3ZTdjMmVhZTNiYWQxYTA3OGJhMWVhYmYwOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTc5LDcgKzc5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAgICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpIC0+ICgpCiAgICAg
RGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkKIAotICAgIFNl
dEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMp
CisgICAgU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1p
bGxpc2Vjb25kcykKICAgICBTZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRRT1MoaW50IGxhdGVuY3lRT1MsIGludCB0aHJv
dWdocHV0UU9TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303655</attachid>
            <date>2017-03-07 08:24:44 -0800</date>
            <delta_ts>2017-03-07 08:32:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170307082442.patch</filename>
            <type>text/plain</type>
            <size>49614</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYzYjQzYTNkMDMxZmEy
OGM0YmE3N2E2N2RlZGZjNGNhMTQ5NjRlNi4uZjc4ZGVjM2E0YTNjOTkyNWZiOGM4MDQwODk3NDY1
ZGQ5YTBiZjc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRq
dXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OnVzZXJH
ZXN0dXJlVG9rZW5Ub0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjppbnN0YWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldElu
dGVydmFsKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkb21UaW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1pbmltdW1ET01UaW1lckludGVy
dmFsKToKKyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZv
cm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZXROZXh0RmlyZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1U
aW1lckludGVydmFsKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OmlzVGltZXJUaHJvdHRsZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKToKKwog
MjAxNy0wMy0wNiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUYWtlIGFkdmFudGFnZSBvZiBmYXN0IHBlcm1pc3Npb25zIHN3aXRjaGluZyBvZiBKSVQgbWVt
b3J5IGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQyODc4ZjZiNzlh
NDQ2MDZhZmUyNTgzY2Q3NTU1MjUzNzgyZTg4YzUuLjE3MjNlMjI1NTIzNmNmNTM1ZTc0YzM3ZjA0
NDE3MGIzYTJmNzQzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wMy0wNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBvcnQgRE9NVGltZXIg
ZnJvbSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRvIFdURjo6U2Vjb25kcyB0eXBlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1cGRh
dGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRI
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0wMy0wNiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxl
LmNvbT4KIAogICAgICAgICBUYWtlIGFkdmFudGFnZSBvZiBmYXN0IHBlcm1pc3Npb25zIHN3aXRj
aGluZyBvZiBKSVQgbWVtb3J5IGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZjRiNzU2MTQ0NWMyMTc3MTBlNWRkYjU2YWY2NjBiYjI2YjU4MWIy
NS4uNTdjMzk0NmNkMDA3MzY2N2I3M2M0YmM5NWEzYzRhYzJhZTZiN2U5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yODQzLDExICsyODQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRl
bG4oY29uc3QgU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB3cml0
ZShXVEZNb3ZlKHRleHRXaXRoTmV3bGluZSksIG93bmVyRG9jdW1lbnQpOwogfQogCi1zdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIERvY3VtZW50OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0
CitTZWNvbmRzIERvY3VtZW50OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAg
ICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJl
dHVybiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpOworICAg
ICAgICByZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2
YWwoKTsKICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZh
bCgpOwogfQogCkBAIC0yODYwLDkgKzI4NjAsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRUaW1lclRo
cm90dGxpbmdFbmFibGVkKGJvb2wgc2hvdWxkVGhyb3R0bGUpCiAgICAgZGlkQ2hhbmdlVGltZXJB
bGlnbm1lbnRJbnRlcnZhbCgpOwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIERvY3Vt
ZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZl
bCkgY29uc3QKK1NlY29uZHMgRG9jdW1lbnQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9v
bCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdAogewotICAgIGF1dG8gYWxpZ25tZW50
SW50ZXJ2YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFs
KGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwg
PSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZl
bCkKICAgICAgICAgcmV0dXJuIGFsaWdubWVudEludGVydmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IGZmMTkyYjM1OTdiNWM2NGE4YTQ4YzViNWM4ODhhYjZiYjI5OGQ2ZWIuLjVjNTljNjc5
MjE5ODY0YmI5ZTMwOWZkMjEwNmFkNTE2ZjJmOTQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMzI3LDkgKzEzMjcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9
IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAot
ICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dCBmaW5hbDsKKyAgICBTZWNvbmRzIG1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QgZmlu
YWw7CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdCBmaW5hbDsKKyAgICBTZWNv
bmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xl
dmVsKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGVGcm9tVGl0bGVFbGVtZW50
KCk7CiAgICAgdm9pZCB1cGRhdGVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzI4
ODE4ZjRhNjJjOTQzM2Q3ZWRiYzE0MDcwOTJlYWE0YzA1ZDBiMy4uZjNhYWY2MGRlNzZlYjAxOTBk
MmE3M2IwYWY0ZDhmNDE2MmY1YmJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcApAQCAtNDI3LDE1ICs0MjcsMTUgQEAgUHVibGljVVJMTWFuYWdl
ciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cHVibGljVVJMTWFuYWdlcigpCiAgICAgcmV0dXJu
ICptX3B1YmxpY1VSTE1hbmFnZXI7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
YWRqdXN0TWluaW11bVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRN
aW5pbXVtVGltZXJJbnRlcnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0
TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkK
IHsKLSAgICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkgeworICAgIGlmIChtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1U
aW1lckludGVydmFsKSB7CiAgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZh
bHVlcygpKQogICAgICAgICAgICAgdGltZXItPnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2Fy
eSgpOwogICAgIH0KIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICAv
LyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBET01UaW1lcidzIGRlZmF1
bHQKICAgICAvLyBtaW5pbXVtIHRpbWVyIGludGVydmFsLiBGSVhNRTogdG8gbWFrZSBpdCB3b3Jr
IHdpdGggZGVkaWNhdGVkCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVudEludGVydmFsKCkKICAgICAgICAgdGltZXIt
PmRpZENoYW5nZUFsaWdubWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29s
KSBjb25zdAorU2Vjb25kcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpkb21UaW1lckFsaWdubWVu
dEludGVydmFsKGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERPTVRpbWVyOjpkZWZhdWx0QWxp
Z25tZW50SW50ZXJ2YWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oCmluZGV4IGRkZjM0NzFlZjUxMjRlOTUwODRhMGQzNTE0YTA4ZWVjZjRjOGUyMzku
LjQwNTE0N2JlNWUxMWU0OTAwYzhiYTQ2MmJiZDdiZjM4NWQ3ZTM3ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg5LDEyICsxODksMTEgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpWTSYgdm0oKTsKIAotICAgIC8vIElu
dGVydmFsIGlzIGluIHNlY29uZHMuCi0gICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZh
bChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKLSAg
ICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwo
KSBjb25zdDsKKyAgICB2b2lkIGFkanVzdE1pbmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMg
b2xkTWluaW11bVRpbWVySW50ZXJ2YWwpOworICAgIHZpcnR1YWwgU2Vjb25kcyBtaW5pbXVtRE9N
VGltZXJJbnRlcnZhbCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaWRDaGFuZ2VUaW1lckFsaWdubWVu
dEludGVydmFsKCk7Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlJiBl
dmVudFF1ZXVlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDcwZjIyYWZmODQ2N2RkNWVl
NmYzZDM2NjNmMDJlYzA3MWQ2ZjUzNmEuLjU4MGE4Mjg2YTUwNjM2MjE0ZTMxZjMzYjJlM2I5YTM4
ZjJlZjdiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbFNlbmRYTUxIdHRwUmVxdWVz
dCh1cmwpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGlt
ZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3Qs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNo
b3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2
ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHNldFRpbWVyRXZlbnRO
YW1lLCB0cnVlKTsKICAgICBkaWRTY2hlZHVsZUFzeW5jQ2FsbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBBc3luY0NhbGxUeXBlVGltZXIsIHRpbWVySWQsIGNvbnRleHQsIHNpbmdsZVNob3QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDllMGUwYWJjM2M2NWEyMjc3MGU4ODlhM2VhYzdkZDg5NDVjZjhjZDYuLmM5ZGI0ZmY4
YzdiNzg5NTQzOWUzMzcyM2FiNGZiODk3YzMxMzU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEyMyw3ICsxMjMs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVt
ZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIHVybCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBz
aW5nbGVTaG90KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgaW50IHRpbWVySWQpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTI5Myw3ICsyOTMs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3RhdGVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
VHlwZSk7CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2lu
Z2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJl
bW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgd2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKQEAgLTY0Miw3ICs2NDIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICAgICB3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsKIH0K
IAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMWYwZDA1NzZkMjRlZGJhYjlh
MDlhODlkNDBkMmRmMWQ4ZDk2OWEwZC4uZTIwMmQzMmM2NDU3Nzg3NzkwYjY3M2I4MTNmN2Q3OTk4
MzIxNTAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVj
dCYKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQYWlu
dCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGlu
dCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCwgRnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0
YWxsVGltZXIoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBG
cmFtZSogZnJhbWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRydWUsIGZyYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGJm
NWJiYmIxNzQ0MjZlMDlkNjRjZWJhMDExZjQxZDIwNzI0N2U0YWMuLjg1ZjA2ZGFhYWEwOTYwOGI3
OTFhMjM0MWM5M2QyMDdmZWYyOTM2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRJ
bnN0YWxsVGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91
dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGlu
dCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKICAg
ICB2b2lkIGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgd2ls
bEZpcmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcAppbmRleCBhMjE2NTkzZjg1YjAxYTgzZGE2N2NhZTlkNGY3ZDI5N2Y1NDNjYjFiLi43NGFh
N2ZmZTgxMzM0YjRjNjUxYzE0ODQ1OGY5MmU4ZTdjYTc2YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtOTQsMTEgKzk0
LDExIEBAIFJlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
R2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAotUmVm
PEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3Rh
bGxEYXRhKGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJv
b2wgc2luZ2xlU2hvdCkKK1JlZjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBi
b29sIHNpbmdsZVNob3QpCiB7CiAgICAgUmVmPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwo
InRpbWVySWQiKSwgdGltZXJJZCk7Ci0gICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwo
InRpbWVvdXQiKSwgKGludCl0aW1lb3V0LmNvdW50KCkpOworICAgIGRhdGEtPnNldEludGVnZXIo
QVNDSUlMaXRlcmFsKCJ0aW1lb3V0IiksIChpbnQpdGltZW91dC5taWxsaXNlY29uZHMoKSk7CiAg
ICAgZGF0YS0+c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNpbmdsZVNob3QiKSwgc2luZ2xlU2hv
dCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZmI3MDVkMWVhNGJhMTlkZDkyYjFiZmQwM2Mx
YzFhZTRmYTUyNDVmYy4uZGRmOGQwNWRmZTRlZTM2ZDg0MDQxNmI0MWFhYTdlNzQxYWE1NjRiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rvcnku
aApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdD4gY3JlYXRlUHJvYmVTYW1wbGVEYXRhKGNvbnN0IEluc3BlY3Rvcjo6U2Ny
aXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIHNhbXBsZUlkKTsKICAgICBzdGF0aWMgUmVm
PEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25z
dCBFdmVudCYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwotICAgIHN0YXRpYyBSZWY8SW5zcGVj
dG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQs
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAg
ICBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3Rh
bGxEYXRhKGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAg
ICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVT
Y3JpcHREYXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKICAgICBzdGF0aWMg
UmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lU3RhbXBEYXRhKGNvbnN0
IFN0cmluZyYpOwogICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShpbnQgY2FsbGJhY2tJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCmluZGV4IDgwZTFiOGQ2ODFlN2RjMjI2MDU2OWEyN2Q4YTgwOWE4YTJiY2IwYmIuLjkz
NDgxNjdkNjIxZTQ5NDVhOGViNjE4ZDE1MjFhZTBhMjFmY2RjODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCkBAIC01Miw4ICs1Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGNvbnN0IGF1dG8gbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSAxMDAw
bXM7IC8vIE9uZSBzZWNvbmQgbWF0Y2hlcyBHZWNrby4KLXN0YXRpYyBjb25zdCBhdXRvIG1pbklu
dGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwbXM7IC8vIEVtcGly
aWNhbGx5IGRldGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgorc3RhdGljIGNvbnN0
IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgeyAxX3MgfTsgLy8g
T25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgorc3RhdGljIGNvbnN0IFNlY29uZHMgbWluSW50ZXJ2
YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyB7IDFfcyB9OyAvLyBFbXBpcmljYWxs
eSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KIHN0YXRpYyBjb25zdCBpbnQg
bWF4VGltZXJOZXN0aW5nTGV2ZWwgPSA1OwogCiBjbGFzcyBET01UaW1lckZpcmVTdGF0ZSB7CkBA
IC0xNjEsMTQgKzE2MSwxNCBAQCBwcml2YXRlOgogCiBib29sIE5lc3RlZFRpbWVyc01hcDo6aXNU
cmFja2luZ05lc3RlZFRpbWVycyA9IGZhbHNlOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
Rm9yd2FyZFVzZXJHZXN0dXJlKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwsIGlu
dCBuZXN0aW5nTGV2ZWwpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRm9yd2FyZFVzZXJHZXN0
dXJlKFNlY29uZHMgaW50ZXJ2YWwsIGludCBuZXN0aW5nTGV2ZWwpCiB7CiAgICAgcmV0dXJuIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogICAgICAgICAmJiBp
bnRlcnZhbCA8PSBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZwogICAgICAgICAm
JiAhbmVzdGluZ0xldmVsOyAvLyBHZXN0dXJlcyBzaG91bGQgbm90IGJlIGZvcndhcmRlZCB0byBu
ZXN0ZWQgdGltZXJzLgogfQogCi1zdGF0aWMgaW5saW5lIFJlZlB0cjxVc2VyR2VzdHVyZVRva2Vu
PiB1c2VyR2VzdHVyZVRva2VuVG9Gb3J3YXJkKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50
ZXJ2YWwsIGludCBuZXN0aW5nTGV2ZWwpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxVc2VyR2VzdHVy
ZVRva2VuPiB1c2VyR2VzdHVyZVRva2VuVG9Gb3J3YXJkKFNlY29uZHMgaW50ZXJ2YWwsIGludCBu
ZXN0aW5nTGV2ZWwpCiB7CiAgICAgaWYgKCFzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2
YWwsIG5lc3RpbmdMZXZlbCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc2LDcgKzE3
Niw3IEBAIHN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVzZXJHZXN0dXJl
VG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pCiAgICAgcmV0dXJuIFVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKIH0KIAotRE9NVGltZXI6OkRPTVRpbWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IGFjdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBz
aW5nbGVTaG90KQorRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyBp
bnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQogICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0
KQogICAgICwgbV9uZXN0aW5nTGV2ZWwoY29udGV4dC50aW1lck5lc3RpbmdMZXZlbCgpKQogICAg
ICwgbV9hY3Rpb24oV1RGTW92ZShhY3Rpb24pKQpAQCAtMjAyLDcgKzIwMiw3IEBAIERPTVRpbWVy
Ojp+RE9NVGltZXIoKQogewogfQogCi1pbnQgRE9NVGltZXI6Omluc3RhbGwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0
aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkK
K2ludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIFNlY29uZHMgdGltZW91dCwg
Ym9vbCBzaW5nbGVTaG90KQogewogICAgIC8vIERPTVRpbWVyIGNvbnN0cnVjdG9yIHBhc3NlcyBv
d25lcnNoaXAgb2YgdGhlIGluaXRpYWwgcmVmIG9uIHRoZSBvYmplY3QgdG8gdGhlIGNvbnN0cnVj
dG9yLgogICAgIC8vIFRoaXMgcmVmZXJlbmNlIHdpbGwgYmUgcmVsZWFzZWQgYXV0b21hdGljYWxs
eSB3aGVuIGEgb25lLXNob3QgdGltZXIgZmlyZXMsIHdoZW4gdGhlIGNvbnRleHQKQEAgLTIxMSw3
ICsyMTEsNyBAQCBpbnQgRE9NVGltZXI6Omluc3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGJvb2wgZGlkRGVmZXJUaW1l
b3V0ID0gY29udGV4dC5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCk7Ci0gICAgICAgIGlm
ICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQuY291bnQoKSA8PSAxMDAgJiYgc2luZ2xlU2hv
dCkgeworICAgICAgICBpZiAoIWRpZERlZmVyVGltZW91dCAmJiB0aW1lb3V0IDw9IDEwMF9tcyAm
JiBzaW5nbGVTaG90KSB7CiAgICAgICAgICAgICBXS1NldE9ic2VydmVkQ29udGVudENoYW5nZShX
S0NvbnRlbnRJbmRldGVybWluYXRlQ2hhbmdlKTsKICAgICAgICAgICAgIFdlYlRocmVhZEFkZE9i
c2VydmVkQ29udGVudE1vZGlmaWVyKHRpbWVyKTsgLy8gV2lsbCBvbmx5IHRha2UgYWZmZWN0IGlm
IG5vdCBhbHJlYWR5IHZpc2liaWxpdHkgY2hhbmdlLgogICAgICAgICB9CkBAIC00MDAsNDUgKzQw
MCw0NSBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1lckludGVydmFsSWZOZWNlc3NhcnkoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAocmVwZWF0SW50ZXJ2YWwoKSkgewotICAgICAgICBB
U1NFUlQocmVwZWF0SW50ZXJ2YWxNUygpID09IHByZXZpb3VzSW50ZXJ2YWwpOwotICAgICAgICBM
T0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIHJlcGVhdCBpbnRlcnZhbCBm
cm9tICUiIFBSSWQ2NCAiIG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0aHJvdHRsaW5nLiIs
IHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJbnRlcnZhbC5j
b3VudCgpKTsKKyAgICAgICAgQVNTRVJUKHJlcGVhdEludGVydmFsU2Vjb25kcygpID09IHByZXZp
b3VzSW50ZXJ2YWwpOworICAgICAgICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01U
aW1lcidzIHJlcGVhdCBpbnRlcnZhbCBmcm9tICVmIG1zIHRvICVmIG1zIGR1ZSB0byB0aHJvdHRs
aW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1fY3VycmVudFRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50UmVwZWF0SW50ZXJ2
YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmly
ZSBpbnRlcnZhbCBmcm9tICUiIFBSSWQ2NCAiIG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0
aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGlt
ZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRp
bmcgRE9NVGltZXIncyBmaXJlIGludGVydmFsIGZyb20gJWYgbXMgdG8gJWYgbXMgZHVlIHRvIHRo
cm90dGxpbmcuIiwgdGhpcywgcHJldmlvdXNJbnRlcnZhbC5taWxsaXNlY29uZHMoKSwgbV9jdXJy
ZW50VGltZXJJbnRlcnZhbC5taWxsaXNlY29uZHMoKSk7CiAgICAgICAgIGF1Z21lbnRGaXJlSW50
ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0K
IH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVk
VG9NaW5pbXVtKCkgY29uc3QKK1NlY29uZHMgRE9NVGltZXI6OmludGVydmFsQ2xhbXBlZFRvTWlu
aW11bSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAg
ICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRpbWVyTmVzdGluZ0xldmVsKTsKIAotICAg
IGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heCgxbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CisgICAg
U2Vjb25kcyBpbnRlcnZhbCA9IHN0ZDo6bWF4KDFfbXMsIG1fb3JpZ2luYWxJbnRlcnZhbCk7CiAK
ICAgICAvLyBPbmx5IGFwcGx5IHRocm90dGxpbmcgdG8gcmVwZWF0aW5nIHRpbWVycy4KICAgICBp
ZiAobV9uZXN0aW5nTGV2ZWwgPCBtYXhUaW1lck5lc3RpbmdMZXZlbCkKICAgICAgICAgcmV0dXJu
IGludGVydmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9iYWwgKHBl
ciBQYWdlKSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAgICBpbnRl
cnZhbCA9IHN0ZDo6bWF4KGludGVydmFsLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPm1pbmlt
dW1UaW1lckludGVydmFsKCkpOworICAgIGludGVydmFsID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSk7CiAgICAg
aWYgKG1fdGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRsZSkKICAgICAgICAgaW50ZXJ2YWwg
PSBzdGQ6Om1heChpbnRlcnZhbCwgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5n
ZVRpbWVycyk7CiAgICAgcmV0dXJuIGludGVydmFsOwogfQogCi1zdGQ6Om9wdGlvbmFsPHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHM+IERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBmaXJlVGltZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4g
RE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShTZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAg
IGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwp
OwotICAgIGlmIChhbGlnbm1lbnRJbnRlcnZhbCA9PSAwbXMpCisgICAgU2Vjb25kcyBhbGlnbm1l
bnRJbnRlcnZhbCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZG9tVGltZXJBbGlnbm1lbnRJ
bnRlcnZhbChtX25lc3RpbmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7CisgICAgaWYg
KCFhbGlnbm1lbnRJbnRlcnZhbCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAK
ICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHJhbmRvbWl6ZWRQcm9wb3J0aW9uID0gcmFuZG9tTnVt
YmVyKCk7CiAKICAgICAvLyBGb3JjZSBhbGlnbm1lbnQgdG8gcmFuZG9taXplZEFsaWdubWVudCBm
cmFjdGlvbiBvZiB0aGUgd2F5IGJldHdlZW4gYWxpZ25lbW50SW50ZXJ2YWxzLCBlLmcuCi0gICAg
Ly8gaWYgYWxpZ25tZW50SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMg
MC4zIHRoaXMgd2lsbCBhbGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAgIGF1dG8gcmFuZG9taXpl
ZE9mZnNldCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM+KGFsaWdubWVudEludGVydmFsICogcmFuZG9taXplZFByb3BvcnRpb24pOwotICAgIGF1
dG8gYWRqdXN0ZWRGaXJlVGltZSA9IGZpcmVUaW1lIC0gcmFuZG9taXplZE9mZnNldDsKKyAgICAv
LyBpZiBhbGlnbm1lbnRJbnRlcnZhbCBpcyAxMF9tcyBhbmQgcmFuZG9taXplZEFsaWdubWVudCBp
cyAwLjMgdGhpcyB3aWxsIGFsaWduIHRvIDMsIDEzLCAyMywgLi4uCisgICAgU2Vjb25kcyByYW5k
b21pemVkT2Zmc2V0ID0gYWxpZ25tZW50SW50ZXJ2YWwgKiByYW5kb21pemVkUHJvcG9ydGlvbjsK
KyAgICBTZWNvbmRzIGFkanVzdGVkRmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZz
ZXQ7CiAgICAgcmV0dXJuIGFkanVzdGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFs
aWdubWVudEludGVydmFsKSArIGFsaWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IDg3Mjc3Mzk3ZWE2MDhjNDE4MzdiMGE4YWNi
NjAyZWIzM2NkNmZlODcuLmRiYzdkMzQ3YzMzOTk0NGMxMzJiNGQ3NzJiOWFkZjU2ZjE2NzA1NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDQsMTMgKzQ1LDEzIEBAIGNsYXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8RE9NVGltZXI+LCBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RE9NVGltZXIoKTsKIAotICAgIHN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIGRlZmF1bHRNaW5pbXVtSW50ZXJ2YWwoKSB7IHJldHVybiA0bXM7IH0KLSAgICBzdGF0
aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7
IHJldHVybiAwbXM7IH0KLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBoaWRk
ZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAxMDAwbXM7IH0KKyAgICBzdGF0aWMg
U2Vjb25kcyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gNF9tczsgfQorICAgIHN0
YXRpYyBTZWNvbmRzIGRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJuIDBfczsgfQor
ICAgIHN0YXRpYyBTZWNvbmRzIGhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpIHsgcmV0dXJu
IDFfczsgfQogCiAgICAgLy8gQ3JlYXRlcyBhIG5ldyB0aW1lciBvd25lZCBieSBzcGVjaWZpZWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RhcnRzIGl0CiAgICAgLy8gYW5kIHJldHVybnMgaXRz
IElkLgotICAgIHN0YXRpYyBpbnQgaW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3Rk
Ojp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICBzdGF0aWMgaW50IGluc3RhbGwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBTZWNv
bmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQnlJ
ZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgaW50IHRpbWVvdXRJZCk7CiAKICAgICAvLyBOb3Rp
ZnkgdGhhdCB0aGUgaW50ZXJ2YWwgbWF5IG5lZWQgdXBkYXRpbmcgKGUuZy4gYmVjYXVzZSB0aGUg
bWluaW11bSBpbnRlcnZhbApAQCAtNjAsMTAgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBzY3JpcHREaWRJbnRlcmFjdFdpdGhQbHVnaW4oSFRNTFBsdWdJbkVsZW1lbnQmKTsKIAog
cHJpdmF0ZToKLSAgICBET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJ2
YWwsIGJvb2wgc2luZ2xlU2hvdCk7CisgICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBTZWNvbmRzIGludGVydmFsLCBi
b29sIHNpbmdsZVNob3QpOwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsQ2xhbXBlZFRvTWlu
aW11bSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNlY29uZHMgaW50ZXJ2YWxDbGFtcGVk
VG9NaW5pbXVtKCkgY29uc3Q7CiAKICAgICBib29sIGlzRE9NVGltZXJzVGhyb3R0bGluZ0VuYWJs
ZWQoRG9jdW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxpbmdTdGF0ZUlmTmVj
ZXNzYXJ5KGNvbnN0IERPTVRpbWVyRmlyZVN0YXRlJik7CkBAIC03MSw3ICs3Miw3IEBAIHByaXZh
dGU6CiAgICAgLy8gU3VzcGVuZGFibGVUaW1lcgogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9w
dGlvbmFsPHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKSBjb25zdCBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFsaWduZWRGaXJlVGltZShTZWNvbmRzKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODUsOSArODYsOSBAQCBwcml2
YXRlOgogICAgIGludCBtX3RpbWVvdXRJZDsKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gbV9hY3Rpb247Ci0gICAgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBtX29yaWdpbmFsSW50ZXJ2YWw7CisgICAgU2Vjb25kcyBtX29yaWdp
bmFsSW50ZXJ2YWw7CiAgICAgVGltZXJUaHJvdHRsZVN0YXRlIG1fdGhyb3R0bGVTdGF0ZTsKLSAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CisgICAg
U2Vjb25kcyBtX2N1cnJlbnRUaW1lckludGVydmFsOwogICAgIFJlZlB0cjxVc2VyR2VzdHVyZVRv
a2VuPiBtX3VzZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggNmFlZGIwOWM4NWUxN2RkMTUyZDM0YzMxZThiZjQwMjJlMjczYWYxZi4u
ZTJiMzhhNTExZjRiMGI4MDIxMjllMzE2MjNjYjA0ZWJmMDM1NjUwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtMTY2Myw3ICsxNjYzLDcgQEAgRXhjZXB0aW9uT3I8aW50PiBET01X
aW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9u
LAogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJS
IH07Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlv
biksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOworICAgIHJldHVy
biBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwgV1RGTW92ZShhY3Rpb24pLCBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmNs
ZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgRXhjZXB0aW9u
T3I8aW50PiBET01XaW5kb3c6OnNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IGFjdGlvbiwKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFM
SURfQUNDRVNTX0VSUiB9OwotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwg
V1RGTW92ZShhY3Rpb24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxz
ZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCpjb250ZXh0LCBXVEZNb3ZlKGFjdGlv
biksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIGZhbHNlKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6OmNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDdkNmQ5OGExMTA5YTgwOWMyNDljYjRjMmNkMDI2YWY1Y2Q1MjZiNTYuLjI0Njk0ZDhl
MTc3MDYzYzFiMDkwMTIxYmZlMjZlZTU1MDFkZjY0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MjM0LDggKzIzNCw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmln
dXJhdGlvbikKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKICAgICAsIG1fdmlld01v
ZGUoVmlld01vZGVXaW5kb3dlZCkKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJ
QSkKLSAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFsaWdu
bWVudEludGVydmFsKCkpCi0gICAgLCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRp
bWVyKCp0aGlzLCAmUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJl
ZCkKKyAgICAsIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChET01UaW1lcjo6ZGVmYXVsdEFs
aWdubWVudEludGVydmFsKCkpCisgICAgLCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZVRpbWVyKCp0aGlzLCAmUGFnZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
VGltZXJGaXJlZCkKICAgICAsIG1faXNFZGl0YWJsZShmYWxzZSkKICAgICAsIG1faXNQcmVyZW5k
ZXIoZmFsc2UpCiAgICAgLCBtX2FjdGl2aXR5U3RhdGUoUGFnZUluaXRpYWxBY3Rpdml0eVN0YXRl
KQpAQCAtMTMyMCw3ICsxMzIwLDcgQEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0
ZShUaW1lclRocm90dGxpbmdTdGF0ZSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV90
aW1lclRocm90dGxpbmdTdGF0ZSA9IHN0YXRlOwotICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGVM
YXN0Q2hhbmdlZFRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBt
X3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CiAKICAgICB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFsKCk7CiAKQEAgLTEzMzMs
MTIgKzEzMzMsMTIgQEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdTdGF0ZShUaW1lclRo
cm90dGxpbmdTdGF0ZSBzdGF0ZSkKICAgICB9CiB9CiAKLXZvaWQgUGFnZTo6c2V0VGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBsaW1p
dCkKK3ZvaWQgUGFnZTo6c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQo
U2Vjb25kcyBsaW1pdCkKIHsKLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0ID0gbGltaXQ7CisgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1p
dCA9IGxpbWl0OwogCi0gICAgLy8gSWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwpIHRoZW4gd2UgbmVlZAotICAgIC8vIHRv
IHVwZGF0ZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwsIGlmIGdyZWF0ZXIgdGhlbiBuZWVkIHRv
IHJlc3RhcnQgdGhlIGluY3JlYXNlIHRpbWVyLgorICAgIC8vIElmIChtX2RvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0IDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsKSB0
aGVuIHdlIG5lZWQKKyAgICAvLyB0byB1cGRhdGUgbV9kb21UaW1lckFsaWdubWVudEludGVydmFs
LCBpZiBncmVhdGVyIHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KICAg
ICBpZiAobV90aW1lclRocm90dGxpbmdTdGF0ZSA9PSBUaW1lclRocm90dGxpbmdTdGF0ZTo6RW5h
YmxlZEluY3JlYXNpbmcpCiAgICAgICAgIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwo
KTsKIH0KQEAgLTEzNDksMjggKzEzNDksMjggQEAgdm9pZCBQYWdlOjp1cGRhdGVET01UaW1lckFs
aWdubWVudEludGVydmFsKCkKIAogICAgIHN3aXRjaCAobV90aW1lclRocm90dGxpbmdTdGF0ZSkg
ewogICAgIGNhc2UgVGltZXJUaHJvdHRsaW5nU3RhdGU6OkRpc2FibGVkOgotICAgICAgICBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFs
KCk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpkZWZh
dWx0QWxpZ25tZW50SW50ZXJ2YWwoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVy
VGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkOgotICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2
YWwgPSBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFsKCk7CisgICAgICAgIG1f
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50
SW50ZXJ2YWwoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbWVyVGhyb3R0bGluZ1N0
YXRlOjpFbmFibGVkSW5jcmVhc2luZzoKICAgICAgICAgLy8gRm9yIHBhZ2VzIGluIHByZXJlbmRl
ciBzdGF0ZSBtYXhpbXVtIHRocm90dGxpbmcga2lja3MgaW4gaW1tZWRpYXRlbHkuCiAgICAgICAg
IGlmIChtX2lzUHJlcmVuZGVyKQotICAgICAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFs
ID0gbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKKyAgICAgICAgICAgIG1f
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlTGltaXQ7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1fdGltZXJU
aHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUudGltZV9zaW5jZV9lcG9jaCgpICE9IHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0aW9uOjp6ZXJvKCkpOwotICAgICAgICAgICAgbV90
aW1lckFsaWdubWVudEludGVydmFsID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBt
X3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lKTsKKyAgICAgICAgICAgIEFTU0VS
VCghIW1fdGltZXJUaHJvdHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUpOworICAgICAgICAgICAg
bV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3Rp
bWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lOwogICAgICAgICAgICAgLy8gSWYgd2Un
cmUgYmVsb3cgdGhlIGxpbWl0LCBzZXQgdGhlIHRpbWVyLiBJZiBhYm92ZSwgY2xhbXAgdG8gbGlt
aXQuCi0gICAgICAgICAgICBpZiAobV90aW1lckFsaWdubWVudEludGVydmFsIDwgbV90aW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCkKKyAgICAgICAgICAgIGlmIChtX2RvbVRpbWVy
QWxpZ25tZW50SW50ZXJ2YWwgPCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KQogICAgICAgICAgICAgICAgIG5lZWRzSW5jcmVhc2VUaW1lciA9IHRydWU7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFsID0gbV90
aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdDsKKyAgICAgICAgICAgICAgICBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0OwogICAgICAgICB9CiAgICAgICAgIC8vIEFsaWdubWVudCBpbnRlcnZhbCBzaG91
bGQgbm90IGJlIGxlc3MgdGhhbiBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFs
KCkuCi0gICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6bWF4KG1fdGltZXJB
bGlnbm1lbnRJbnRlcnZhbCwgRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgp
KTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gc3RkOjptYXgobV9kb21U
aW1lckFsaWdubWVudEludGVydmFsLCBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVy
dmFsKCkpOwogICAgIH0KIAogICAgIC8vIElmIHRocm90dGxpbmcgaXMgZW5hYmxlZCwgYXV0by1p
bmNyZWFzaW5nIG9mIHRocm90dGxpbmcgaXMgZW5hYmxlZCwgYW5kIHRoZSBhdXRvLWluY3JlYXNl
CkBAIC0xMzc4LDE2ICsxMzc4LDE2IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpCiAgICAgLy8gYmV0d2VlbiBpbmNyZWFzZXMgaXMgZXF1YWwgdG8gdGhlIGN1
cnJlbnQgdGhyb3R0bGUgdGltZS4gU2luY2UgYWxpbm1lbnQgaW50ZXJ2YWwgaW5jcmVhc2VzCiAg
ICAgLy8gZXhwb25lbnRpYWxseSwgdGltZSBiZXR3ZWVuIHN0ZXBzIGlzIGV4cG9uZW50aWFsIHRv
by4KICAgICBpZiAoIW5lZWRzSW5jcmVhc2VUaW1lcikKLSAgICAgICAgbV90aW1lckFsaWdubWVu
dEludGVydmFsSW5jcmVhc2VUaW1lci5zdG9wKCk7Ci0gICAgZWxzZSBpZiAoIW1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV90aW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lci5zdGFydE9uZVNob3QobV90aW1lckFsaWdubWVu
dEludGVydmFsKTsKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lci5zdG9wKCk7CisgICAgZWxzZSBpZiAoIW1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9kb21UaW1lckFsaWdubWVudEludGVy
dmFsSW5jcmVhc2VUaW1lci5zdGFydE9uZVNob3QobV9kb21UaW1lckFsaWdubWVudEludGVydmFs
KTsKIH0KIAotdm9pZCBQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZp
cmVkKCkKK3ZvaWQgUGFnZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXJG
aXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fc2V0dGluZ3MtPmhpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdBdXRvSW5jcmVhc2VzKCkpOwogICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRl
ID09IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpFbmFibGVkSW5jcmVhc2luZyk7Ci0gICAgQVNTRVJU
KG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3Jl
YXNlTGltaXQpOworICAgIEFTU0VSVChtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX2Rv
bVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KTsKICAgICAKICAgICAvLyBBbGln
bm1lbnQgaW50ZXJ2YWwgaXMgaW5jcmVhc2VkIHRvIGVxdWFsIHRoZSB0aW1lIHRoZSBwYWdlIGhh
cyBiZWVuIHRocm90dGxlZCwgdG8gYSBsaW1pdC4KICAgICB1cGRhdGVET01UaW1lckFsaWdubWVu
dEludGVydmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDkzOGEwOTZmYjczOWQ5OWY2N2UyZWRjYjU5
NDMyZWZkZjE1NmY1MzkuLmY4NmY0N2ViZTI2Yjg5MWNlMjIyYjM2NzcyOTMxZTE3NDM5Y2JiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0yNDAsNyArMjQwLDcgQEAgcHVibGljOgogICAgIFByb2dyZXNz
VHJhY2tlciYgcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiAqbV9wcm9ncmVzczsgfQogICAgIEJh
Y2tGb3J3YXJkQ29udHJvbGxlciYgYmFja0ZvcndhcmQoKSBjb25zdCB7IHJldHVybiAqbV9iYWNr
Rm9yd2FyZENvbnRyb2xsZXI7IH0KIAotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZG9t
VGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbDsgfQorICAgIFNlY29uZHMgZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbDsgfQogCiAjaWYgRU5BQkxFKFZJ
RVdfTU9ERV9DU1NfTUVESUEpCiAgICAgZW51bSBWaWV3TW9kZSB7CkBAIC01NTIsNyArNTUyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvd0FsbFBsdWdpbnMoYm9vbCBzaG93QWxsKSB7IG1f
c2hvd0FsbFBsdWdpbnMgPSBzaG93QWxsOyB9CiAgICAgYm9vbCBzaG93QWxsUGx1Z2lucygpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUaW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VMaW1pdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KFNlY29u
ZHMpOwogCiAgICAgYm9vbCBpc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb247IH0KICAgICB2b2lkIHNldENvbnRyb2xsZWRCeUF1
dG9tYXRpb24oYm9vbCBjb250cm9sbGVkKSB7IG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbiA9IGNv
bnRyb2xsZWQ7IH0KQEAgLTYwOSw3ICs2MDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0VGlt
ZXJUaHJvdHRsaW5nU3RhdGUoVGltZXJUaHJvdHRsaW5nU3RhdGUpOwogICAgIHZvaWQgdXBkYXRl
VGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZURPTVRpbWVyQWxpZ25tZW50
SW50ZXJ2YWwoKTsKLSAgICB2b2lkIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVy
RmlyZWQoKTsKKyAgICB2b2lkIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVy
RmlyZWQoKTsKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxDaHJvbWU+IG1fY2hyb21lOwog
ICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEcmFnQ2FyZXRDb250cm9sbGVyPiBtX2RyYWdDYXJl
dENvbnRyb2xsZXI7CkBAIC03MTIsMTAgKzcxMiwxMCBAQCBwcml2YXRlOgogI2VuZGlmIC8vIEVO
QUJMRShWSUVXX01PREVfQ1NTX01FRElBKQogCiAgICAgVGltZXJUaHJvdHRsaW5nU3RhdGUgbV90
aW1lclRocm90dGxpbmdTdGF0ZSB7IFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpEaXNhYmxlZCB9Owot
ICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV90aW1lclRocm90dGxp
bmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSB7IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0
aW9uOjp6ZXJvKCkgfTsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbDsKLSAgICBUaW1lciBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZVRpbWVyOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV90aW1lckFsaWdubWVudElu
dGVydmFsSW5jcmVhc2VMaW1pdCB7IDAgfTsKKyAgICBNb25vdG9uaWNUaW1lIG1fdGltZXJUaHJv
dHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWU7CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWw7CisgICAgVGltZXIgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVh
c2VUaW1lcjsKKyAgICBTZWNvbmRzIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQ7CiAKICAgICBib29sIG1faXNFZGl0YWJsZTsKICAgICBib29sIG1faXNQcmVyZW5kZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDZiYjlkMDNhOGIzNGMxOTY4MjRhOGQyYmVk
Y2RlM2RhYWFlMWQ0MjEuLjdkMDg3ODQ3Y2Q4YTg5Mjg0YmI0Njg4ZDQxMmUzNDkzNmI5YmU0MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NDksMTcgKzQ0OSwxNiBAQCB2b2lkIFNl
dHRpbmdzOjpzZXROZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyayhib29sIHNob3VsZE5vdFJl
bG9hZElGcmFtZXNGb3JVbgogICAgIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgPSBz
aG91bGROb3RSZWxvYWRJRnJhbWVzRm9yVW5jaGFuZ2VkU1JDOwogfQogCi12b2lkIFNldHRpbmdz
OjpzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGlu
dGVydmFsKQordm9pZCBTZXR0aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25k
cyBpbnRlcnZhbCkKIHsKLSAgICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBtX21pbmltdW1ET01U
aW1lckludGVydmFsOwotICAgIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbDsK
KyAgICBhdXRvIG9sZFRpbWVySW50ZXJ2YWwgPSBzdGQ6OmV4Y2hhbmdlKG1fbWluaW11bURPTVRp
bWVySW50ZXJ2YWwsIGludGVydmFsKTsKIAogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm47CiAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hZGp1c3RN
aW5pbXVtVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVydmFsKTsKKyAgICAgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5hZGp1c3RNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChvbGRUaW1lckludGVy
dmFsKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA3ZmM1NzA4ZWM3OTY3
MWM5OTI1YTc3OGZjMTRhNDViZjUwNTU1MmU5Li45ZjM3MDc1NWIwYjgyYmZlODE5MjgwYTU5ODE0
MGRhMzlmNTgyMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xNjksOCArMTY5LDggQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TmVlZHNBZG9iZUZyYW1lUmVsb2Fk
aW5nUXVpcmsoYm9vbCk7CiAgICAgYm9vbCBuZWVkc0Fjcm9iYXRGcmFtZVJlbG9hZGluZ1F1aXJr
KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0Fkb2JlRnJhbWVSZWxvYWRpbmdRdWlyazsgfQogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRN
aW5pbXVtSW50ZXJ2YWwoKS4KLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1E
T01UaW1lckludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZh
bDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwo
U2Vjb25kcyk7IC8vIEluaXRpYWxpemVkIHRvIERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVy
dmFsKCkuCisgICAgU2Vjb25kcyBtaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0TGF5b3V0SW50ZXJ2YWwoU2Vjb25kcyk7CiAgICAgU2Vjb25kcyBsYXlvdXRJbnRlcnZh
bCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0SW50ZXJ2YWw7IH0KQEAgLTMzOCw3ICszMzgsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxGb250R2VuZXJpY0ZhbWlsaWVz
PiBtX2ZvbnRHZW5lcmljRmFtaWxpZXM7CiAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICAgICBTZWNvbmRzIG1fbGF5b3V0
SW50ZXJ2YWw7Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1ET01UaW1l
ckludGVydmFsOworICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKIAogICAg
IFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TdXNwZW5kYWJsZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuaAppbmRleCBlMTVmMGE3MDkzNzg1MGEzYTY5MDFmNzIwYzVkZTFmNjA5OTEzODY0Li5i
YWRhN2JjMjRhNTJiNWI1ZjNjMGRlNTk4ZWQ5OTcwNzc1ODk0ZjU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuaApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFN1c3BlbmRhYmxlVGltZXIgOiBw
cml2YXRlIFRpbWVyQmFzZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CkBAIC00OSw5ICs1MSwy
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSk7
CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKTsKIAorICAgIHZv
aWQgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFydFJlcGVhdGlu
ZyhyZXBlYXRJbnRlcnZhbC52YWx1ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29u
ZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KGludGVydmFsLnZhbHVlKCkpOyB9CisKKyAgICAv
LyBGSVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJv
cCB0aGVzZS4KICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50
ZXJ2YWwpKTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGludGVydmFsKSk7IH0KKwog
ICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWxNUygpIGNvbnN0IHsg
cmV0dXJuIHNlY29uZHNUb01TKHJlcGVhdEludGVydmFsKCkpOyB9CisgICAgU2Vjb25kcyByZXBl
YXRJbnRlcnZhbFNlY29uZHMoKSBjb25zdCB7IHJldHVybiBTZWNvbmRzIHsgcmVwZWF0SW50ZXJ2
YWwoKSB9OyB9CisKKyAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkg
eyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhLnZhbHVlKCkpOyB9CisgICAgdm9pZCBhdWdtZW50
UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZGVs
dGEudmFsdWUoKSk7IH0KKworICAgIC8vIEZJWE1FOiBVc2UgdGhlIG92ZXJsb2FkcyB0YWtpbmcg
U2Vjb25kcyBpbnN0ZWFkIGFuZCBkcm9wIHRoZXNlLgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRl
cnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2
YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFs
KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFs
KG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4
IGNkNTk0ZmU3Y2M1NTg5MTI5NDc0NjM5NzZkOGQxODVmOTExMTRiYmEuLjBhNDI2Njc1NjhlYjhh
Y2FjN2Y3YWVkYjhlZWMwMWI2YzhiNDIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAK
QEAgLTM4Miw4ICszODIsOCBAQCB2b2lkIFRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJs
ZSBuZXdUaW1lKQogICAgIGRvdWJsZSBvbGRUaW1lID0gbV9uZXh0RmlyZVRpbWU7CiAgICAgLy8g
RG9uJ3QgcmVhbGlnbiB6ZXJvLWRlbGF5IHRpbWVycy4KICAgICBpZiAobmV3VGltZSkgewotICAg
ICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9IGFsaWduZWRGaXJlVGltZShzZWNvbmRzVG9N
UyhuZXdUaW1lKSkpCi0gICAgICAgICAgICBuZXdUaW1lID0gbXNUb1NlY29uZHMobmV3QWxpZ25l
ZFRpbWUudmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIG5ld0FsaWduZWRUaW1lID0gYWxpZ25l
ZEZpcmVUaW1lKFNlY29uZHMgeyBuZXdUaW1lIH0pKQorICAgICAgICAgICAgbmV3VGltZSA9IG5l
d0FsaWduZWRUaW1lLnZhbHVlKCkuc2Vjb25kcygpOwogICAgIH0KIAogICAgIGlmIChvbGRUaW1l
ICE9IG5ld1RpbWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IDUyYTE2NmViYTJkMjMx
OWQxNWExYjdlZDkwODJiNmIxNDMzZjNiMjQuLjA0Nzc0ODkxOGQ3MzAwN2RiNzA0NWFiNjVkZjkw
NTdlMGJkNzRmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaApAQCAtODgsNyArODgsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKIAotICAgIHZp
cnR1YWwgc3RkOjpvcHRpb25hbDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmly
ZVRpbWUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcykgY29uc3QgeyByZXR1cm4gc3RkOjpudWxs
b3B0OyB9CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFsaWduZWRGaXJlVGlt
ZShTZWNvbmRzKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KIAogICAgIHZvaWQgY2hl
Y2tDb25zaXN0ZW5jeSgpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tIZWFwSW5kZXgoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDRlMjQ0
ODRiZDE3ODE0ZDg0NmY2Mjk4MWM1MGQ1ZDE2YjllNjU4MWIuLjY2NjFjOTE1NzBkOTYxNzY5MjU5
OGFhMGU3ZTk5Yzk1ZTJmZDMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcApAQCAtNjIsNyArNjIsNyBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFsTW9ja1Njcm9sbGJh
cnNFbmFibGVkKHNldHRpbmdzLm1vY2tTY3JvbGxiYXJzRW5hYmxlZCgpKQogICAgICwgbV9pbWFn
ZXNFbmFibGVkKHNldHRpbmdzLmFyZUltYWdlc0VuYWJsZWQoKSkKICAgICAsIG1fcHJlZmVyTUlN
RVR5cGVGb3JJbWFnZXMoc2V0dGluZ3MucHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMoKSkKLSAgICAs
IG1fbWluaW11bVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRpbWVySW50ZXJ2YWwo
KSkKKyAgICAsIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwoc2V0dGluZ3MubWluaW11bURPTVRp
bWVySW50ZXJ2YWwoKSkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgLCBtX3Nob3VsZERp
c3BsYXlTdWJ0aXRsZXMoc2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1YnRpdGxlcygpKQogICAgICwg
bV9zaG91bGREaXNwbGF5Q2FwdGlvbnMoc2V0dGluZ3Muc2hvdWxkRGlzcGxheUNhcHRpb25zKCkp
CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3Rv
cmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgc2V0dGluZ3Muc2V0Q2FudmFzVXNlc0FjY2Vs
ZXJhdGVkRHJhd2luZyhtX29yaWdpbmFsQ2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyk7CiAg
ICAgc2V0dGluZ3Muc2V0SW1hZ2VzRW5hYmxlZChtX2ltYWdlc0VuYWJsZWQpOwogICAgIHNldHRp
bmdzLnNldFByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKG1fcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMp
OwotICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1fbWluaW11bVRpbWVy
SW50ZXJ2YWwpOworICAgIHNldHRpbmdzLnNldE1pbmltdW1ET01UaW1lckludGVydmFsKG1fbWlu
aW11bURPTVRpbWVySW50ZXJ2YWwpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBzZXR0
aW5ncy5zZXRTaG91bGREaXNwbGF5U3VidGl0bGVzKG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyk7
CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxheUNhcHRpb25zKG1fc2hvdWxkRGlzcGxheUNh
cHRpb25zKTsKQEAgLTU0NCw3ICs1NDQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWxJblNlYwogewog
ICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NF
U1NfRVJSIH07Ci0gICAgc2V0dGluZ3MoKS5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGlu
dGVydmFsSW5TZWNvbmRzICogMTAwMCkpKTsKKyAgICBzZXR0aW5ncygpLnNldE1pbmltdW1ET01U
aW1lckludGVydmFsKFNlY29uZHMgeyBpbnRlcnZhbEluU2Vjb25kcyB9KTsKICAgICByZXR1cm4g
eyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDhhMDlmOTU0YWJlMGE3MDBkMjQxMWJiOTg1NGZkYmFkNjcxZDk3NzQuLjQ4NmMzMDYzMzhjZTNj
MTMyYWY3ZTc4NDQxYjc1MzMwNjk2NGYyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9v
bCBtX29yaWdpbmFsVXNlc092ZXJsYXlTY3JvbGxiYXJzOwogICAgICAgICBib29sIG1faW1hZ2Vz
RW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3ByZWZlck1JTUVUeXBlRm9ySW1hZ2VzOwotICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bVRpbWVySW50ZXJ2YWw7CisgICAg
ICAgIFNlY29uZHMgbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOwogICAgICAgICBi
b29sIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGNhZGFiNzJmZDJiYzUyZWVhYmU0NjM0ZWQ1ZTNjYmQ5ZDY4NDZiNTUuLmI3OGYx
ZGNiOTk4NDk5N2FjZjkwZGIzNTdhMzhmNTM3YTMwZDhmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTEwNDUsNyArMTA0NSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IElu
dGVybmFsczo6aXNUaW1lclRocm90dGxlZChpbnQgdGltZW91dElkKQogICAgIGlmICh0aW1lci0+
aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgPiB0aW1lci0+bV9vcmlnaW5hbEludGVydmFsKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiAhIXRpbWVyLT5hbGlnbmVkRmlyZVRp
bWUoMG1zKTsKKyAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZpcmVUaW1lKDBfcyk7CiB9CiAK
IGJvb2wgSW50ZXJuYWxzOjppc1JlcXVlc3RBbmltYXRpb25GcmFtZVRocm90dGxlZCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDli
MzU3MDk2YjFlYjlhYTQ2YTE4Yjg3N2Q3MTJlMzc4N2Y3MzgzOWIuLjE1MjQxNWM4MjEwMjY4MDRm
YTFjNGY2MGNkMDA2YWJjOGFmNDM0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBXb3JrZXJHbG9iYWxT
Y29wZTo6cG9zdFRhc2soVGFzayYmIHRhc2spCiAKIGludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0
VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1l
b3V0KQogewotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqdGhpcywgV1RGTW92ZShhY3Rp
b24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKKyAgICByZXR1
cm4gRE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUoYWN0aW9uKSwgU2Vjb25kczo6ZnJv
bU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CiB9CiAKIHZvaWQgV29ya2VyR2xvYmFsU2Nv
cGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQg
V29ya2VyR2xvYmFsU2NvcGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQogCiBpbnQgV29y
a2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rp
b24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCiB7Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxs
KCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHModGltZW91
dCksIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUo
YWN0aW9uKSwgU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgZmFsc2UpOwogfQog
CiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDk2NjA2NjAzMTc3YmU4MTBkMDA3MGRhNjY2YWVhOGM4YjBl
ZThlMTcuLjMxNzViZTM0N2QzZWI2NmIyYThmYTM2MGQxYWU5MTcxMTQ5M2JjMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC03NDY3LDcgKzc0NjcsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmRlZmF1
bHRNaW5pbXVtVGltZXJJbnRlcnZhbChfT3V0XyBkb3VibGUqIGludGVydmFsKQogewogICAgIGlm
ICghaW50ZXJ2YWwpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7Ci0gICAgKmludGVydmFsID0g
RE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50ZXJ2YWwoKS5jb3VudCgpIC8gMTAwMC47CisgICAg
KmludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50ZXJ2YWwoKS5zZWNvbmRzKCk7
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTc0NzYsOCArNzQ3Niw3IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgYXV0byBpbnRlcnZhbE1TID0g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6cmVw
KShpbnRlcnZhbCAqIDEwMDApKTsKLSAgICBwYWdlKCktPnNldHRpbmdzKCkuc2V0TWluaW11bURP
TVRpbWVySW50ZXJ2YWwoaW50ZXJ2YWxNUyk7CisgICAgcGFnZSgpLT5zZXR0aW5ncygpLnNldE1p
bmltdW1ET01UaW1lckludGVydmFsKFNlY29uZHMgeyBpbnRlcnZhbCB9KTsKICAgICByZXR1cm4g
U19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggMzA5MTU2YjA3Yzc2Nzg0MWMzMGFlYzA4YTE3YzI1ZThmZThhZjU5My4uZGUzOTMzZjk4
OWQ3NmE4MjFiZTI1NWU5YTdlODFiNDlmOTdhYzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNDY1LDcgKzE0NjUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KCkK
ICAgICBzdGF0aWMgaW50IG1heGltdW1UaW1lclRocm90dGxlUGVyUGFnZUluTVMgPSAyMDAgKiAx
MDA7CiAKICAgICBpbnQgbGltaXRJbk1pbGxpc2Vjb25kcyA9IG1heGltdW1UaW1lclRocm90dGxl
UGVyUGFnZUluTVMgKiBtX2hpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlc0NvdW50ZXIu
dmFsdWUoKTsKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNl
dEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGxpbWl0SW5NaWxsaXNlY29u
ZHMpKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhp
ZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGxpbWl0SW5NaWxsaXNlY29u
ZHMpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVwb3J0V2ViQ29udGVudENQVVRpbWUo
aW50NjRfdCBjcHVUaW1lLCB1aW50NjRfdCBhY3Rpdml0eVN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjBjOTEyNzc2MjcxNDViNDcxNTk4
ZmEyMmQ1M2MwMmQwNGY3MTAyMC4uMDZkMjc4NzVkODA5ZjBlZjQ3NzA5NDk1ZTk4MDE2ODIyOTFi
MjM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0zMDMsOSArMzAzLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY3RpdmVQb3B1cE1lbnUoV2ViUG9wdXBNZW51Kik7
CiAKLSAgICB2b2lkIHNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbGltaXQpCisgICAgdm9pZCBzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChTZWNvbmRzIGxpbWl0KQogICAgIHsKLSAgICAg
ICAgbV9wYWdlLT5zZXRUaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChsaW1pdCk7
CisgICAgICAgIG1fcGFnZS0+c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGlt
aXQobGltaXQpOwogICAgIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDE1ZjE2MWZhNzdkMWY1MGQ0
NDk0MzFmNGNlNDJmMWFhZGQyZDhmMS4uMTQ4YTkxM2M4MjhmNWM3MTJkYjU2OGZjOTdmYjZkNmU4
NjA3YzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0x
MjM1LDEwICsxMjM1LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgfQogfQogCi12
b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0
KGludCBtaWxsaXNlY29uZHMpCit2b2lkIFdlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VET01UaW1l
clRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiB7CiAgICAgZm9yIChh
dXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQotICAgICAgICBwYWdlLT5zZXRIaWRkZW5Q
YWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KG1pbGxpc2Vjb25kcykpOworICAgICAgICBwYWdlLT5zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nSW5jcmVhc2VMaW1pdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25k
cykpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCBlZjRlZDMwOTE0Y2IxZDhjZDMwZTY1ZTYxOGQ0ZmM2ODBhOWQyMjcw
Li4wMWJhYjNiNTQ4MDMxYTg2MDA5M2Y5NmZhYjhhZmRmN2VkNWQxNmMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoKTsKIAotICAgIHZvaWQgc2V0SGlkZGVuUGFnZVRp
bWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcyk7CisgICAgdm9pZCBz
ZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNv
bmRzKTsKIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5k
bGVkKTsKICAgICB2b2lkIHByZXBhcmVUb1N1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkNDA0MWIxZDk3NmM5MDJh
YWQ1MDY0ZTdjZmVjNzVmMTdiNmFkNjkwLi5jMzllYmYzODJkMDMyN2U3YzJlYWUzYmFkMWEwNzhi
YTFlYWJmMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCkBAIC03OSw3ICs3OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNl
KSAtPiAoKQogICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVE
YXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+
ICgpCiAKLSAgICBTZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQg
bWlsbGlzZWNvbmRzKQorICAgIFNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFz
ZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAgICAgU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU2V0UU9TKGludCBsYXRlbmN5
UU9TLCBpbnQgdGhyb3VnaHB1dFFPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303658</attachid>
            <date>2017-03-07 08:32:14 -0800</date>
            <delta_ts>2017-03-07 09:11:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169236-20170307083212.patch</filename>
            <type>text/plain</type>
            <size>49618</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYzYjQzYTNkMDMxZmEy
OGM0YmE3N2E2N2RlZGZjNGNhMTQ5NjRlNi4uOTVmNWQ5Y2QyNmZiODBkYmNmMjNmMmU4ODM5OGVl
ZTVmYmI3ZDI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE3LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01UaW1lciBmcm9t
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdG8gV1RGOjpTZWNvbmRzIHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkanVz
dE1pbmltdW1ET01UaW1lckludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwpOgorICAgICAg
ICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVRpbWVySW5zdGFsbERhdGEpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29y
ZEZhY3RvcnkuaDoKKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNob3VsZEZvcndhcmRVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjp1c2VyR2Vz
dHVyZVRva2VuVG9Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpET01UaW1l
cik6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6aW5zdGFsbCk6CisgICAgICAgIChXZWJD
b3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIu
aDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldFRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRJbnRl
cnZhbCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldERP
TVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwpOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZh
bCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjptaW5pbXVtRE9NVGltZXJJbnRlcnZh
bCk6CisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVu
ZGFibGVUaW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwpOgorICAgICAgICAqIHBsYXRmb3Jt
L1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJC
YXNlOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRNaW5pbXVtVGlt
ZXJJbnRlcnZhbCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
Ojppc1RpbWVyVGhyb3R0bGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbCk6CisKIDIw
MTctMDMtMDYgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAg
VGFrZSBhZHZhbnRhZ2Ugb2YgZmFzdCBwZXJtaXNzaW9ucyBzd2l0Y2hpbmcgb2YgSklUIG1lbW9y
eSBmb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkMjg3OGY2Yjc5YTQ0
NjA2YWZlMjU4M2NkNzU1NTI1Mzc4MmU4OGM1Li5iYzNiYjFlMmY5ZjI4ZmFhOGJiNWNjNzFiOGI0
ZjNkOTAyNDVlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMDYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQb3J0IERPTVRpbWVyIGZy
b20gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0byBXVEY6OlNlY29uZHMgdHlwZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjM2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUhp
ZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEhpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRk
ZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorCiAyMDE3LTAzLTA2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29t
PgogCiAgICAgICAgIFRha2UgYWR2YW50YWdlIG9mIGZhc3QgcGVybWlzc2lvbnMgc3dpdGNoaW5n
IG9mIEpJVCBtZW1vcnkgZm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IGl0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBmNGI3NTYxNDQ1YzIxNzcxMGU1ZGRiNTZhZjY2MGJiMjZiNTgxYjI1Li41
N2MzOTQ2Y2QwMDczNjY3YjczYzRiYzk1YTNjNGFjMmFlNmI3ZTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTI4NDMsMTEgKzI4NDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGVsbihj
b25zdCBTdHJpbmcmIHRleHQsIERvY3VtZW50KiBvd25lckRvY3VtZW50KQogICAgIHdyaXRlKFdU
Rk1vdmUodGV4dFdpdGhOZXdsaW5lKSwgb3duZXJEb2N1bWVudCk7CiB9CiAKLXN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgRG9jdW1lbnQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKK1Nl
Y29uZHMgRG9jdW1lbnQ6Om1pbmltdW1ET01UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICBh
dXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Om1pbmltdW1UaW1lckludGVydmFsKCk7CisgICAgICAg
IHJldHVybiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjptaW5pbXVtRE9NVGltZXJJbnRlcnZhbCgp
OwogICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLm1pbmltdW1ET01UaW1lckludGVydmFsKCk7
CiB9CiAKQEAgLTI4NjAsOSArMjg2MCw5IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFRpbWVyVGhyb3R0
bGluZ0VuYWJsZWQoYm9vbCBzaG91bGRUaHJvdHRsZSkKICAgICBkaWRDaGFuZ2VUaW1lckFsaWdu
bWVudEludGVydmFsKCk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgRG9jdW1lbnQ6
OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBj
b25zdAorU2Vjb25kcyBEb2N1bWVudDo6ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhh
c1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0CiB7Ci0gICAgYXV0byBhbGlnbm1lbnRJbnRl
cnZhbCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoaGFz
UmVhY2hlZE1heE5lc3RpbmdMZXZlbCk7CisgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9IFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoaGFzUmVhY2hl
ZE1heE5lc3RpbmdMZXZlbCk7CiAgICAgaWYgKCFoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKQog
ICAgICAgICByZXR1cm4gYWxpZ25tZW50SW50ZXJ2YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggZmYxOTJiMzU5N2I1YzY0YThhNDhjNWI1Yzg4OGFiNmJiMjk4ZDZlYi4uNWM1OWM2NzkyMTk4
NjRiYjllMzA5ZmQyMTA2YWQ1MTZmMmY5NDc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEz
MjcsOSArMTMyNyw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpFeGVjU3RhdGUqID0gbnVs
bHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZpbmFsOwogCi0gICAg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0IGZp
bmFsOworICAgIFNlY29uZHMgbWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsK
IAotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZXJBbGlnbm1lbnRJbnRlcnZhbChi
b29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0IGZpbmFsOworICAgIFNlY29uZHMg
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwp
IGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVUaXRsZUZyb21UaXRsZUVsZW1lbnQoKTsK
ICAgICB2b2lkIHVwZGF0ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAzMjg4MThm
NGE2MmM5NDMzZDdlZGJjMTQwNzA5MmVhYTRjMDVkMGIzLi5mM2FhZjYwZGU3NmViMDE5MGQyYTcz
YjBhZjRkOGY0MTYyZjViYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCkBAIC00MjcsMTUgKzQyNywxNSBAQCBQdWJsaWNVUkxNYW5hZ2VyJiBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpwdWJsaWNVUkxNYW5hZ2VyKCkKICAgICByZXR1cm4gKm1f
cHVibGljVVJMTWFuYWdlcjsKIH0KIAotdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGp1
c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG9sZE1pbmlt
dW1UaW1lckludGVydmFsKQordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGp1c3RNaW5p
bXVtRE9NVGltZXJJbnRlcnZhbChTZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKQogewot
ICAgIGlmIChtaW5pbXVtVGltZXJJbnRlcnZhbCgpICE9IG9sZE1pbmltdW1UaW1lckludGVydmFs
KSB7CisgICAgaWYgKG1pbmltdW1ET01UaW1lckludGVydmFsKCkgIT0gb2xkTWluaW11bVRpbWVy
SW50ZXJ2YWwpIHsKICAgICAgICAgZm9yIChhdXRvJiB0aW1lciA6IG1fdGltZW91dHMudmFsdWVz
KCkpCiAgICAgICAgICAgICB0aW1lci0+dXBkYXRlVGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KCk7
CiAgICAgfQogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKK1NlY29uZHMgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6bWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSBjb25zdAogewogICAgIC8vIFRo
ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIERPTVRpbWVyJ3MgZGVmYXVsdAog
ICAgIC8vIG1pbmltdW0gdGltZXIgaW50ZXJ2YWwuIEZJWE1FOiB0byBtYWtlIGl0IHdvcmsgd2l0
aCBkZWRpY2F0ZWQKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKQogICAgICAgICB0aW1lci0+ZGlk
Q2hhbmdlQWxpZ25tZW50SW50ZXJ2YWwoKTsKIH0KIAotc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wpIGNv
bnN0CitTZWNvbmRzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRvbVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoYm9vbCkgY29uc3QKIHsKICAgICByZXR1cm4gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1l
bnRJbnRlcnZhbCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKaW5kZXggZGRmMzQ3MWVmNTEyNGU5NTA4NGEwZDM1MTRhMDhlZWNmNGM4ZTIzOS4uNDA1
MTQ3YmU1ZTExZTQ5MDBjOGJhNDYyYmJkN2JmMzg1ZDdlMzdkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xODksMTIgKzE4OSwxMSBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBKU0M6OlZNJiB2bSgpOwogCi0gICAgLy8gSW50ZXJ2
YWwgaXMgaW4gc2Vjb25kcy4KLSAgICB2b2lkIGFkanVzdE1pbmltdW1UaW1lckludGVydmFsKHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgb2xkTWluaW11bVRpbWVySW50ZXJ2YWwpOwotICAgIHZp
cnR1YWwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNv
bnN0OworICAgIHZvaWQgYWRqdXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoU2Vjb25kcyBvbGRN
aW5pbXVtVGltZXJJbnRlcnZhbCk7CisgICAgdmlydHVhbCBTZWNvbmRzIG1pbmltdW1ET01UaW1l
ckludGVydmFsKCkgY29uc3Q7CiAKICAgICB2b2lkIGRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKTsKLSAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZXJBbGln
bm1lbnRJbnRlcnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OworICAg
IHZpcnR1YWwgU2Vjb25kcyBkb21UaW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVhY2hl
ZE1heE5lc3RpbmdMZXZlbCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIEV2ZW50UXVldWUmIGV2ZW50
UXVldWUoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNzBmMjJhZmY4NDY3ZGQ1ZWU2ZjNk
MzY2M2YwMmVjMDcxZDZmNTM2YS4uNTgwYTgyODZhNTA2MzYyMTRlMzFmMzNiMmUzYjlhMzhmMmVm
N2JhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTMzNiw3ICszMzYsNyBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaQogICAgICAgICBkb21EZWJ1Z2dlckFnZW50LT53aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KHVy
bCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnN0YWxsVGltZXJJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklk
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRJbnN0YWxsVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZl
bnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgc2V0VGltZXJFdmVudE5hbWUs
IHRydWUpOwogICAgIGRpZFNjaGVkdWxlQXN5bmNDYWxsKGluc3RydW1lbnRpbmdBZ2VudHMsIEFz
eW5jQ2FsbFR5cGVUaW1lciwgdGltZXJJZCwgY29udGV4dCwgc2luZ2xlU2hvdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5k
ZXggOWUwZTBhYmMzYzY1YTIyNzcwZTg4OWEzZWFjN2RkODk0NWNmOGNkNi4uYzlkYjRmZjhjN2I3
ODk1NDM5ZTMzNzIzYWI0ZmI4OTdjMzEzNTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTIzLDcgKzEyMyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBmb3JjZVBzZXVkb1N0YXRlKGNvbnN0IEVsZW1lbnQm
LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlKTsKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxT
ZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
dXJsKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRJbnN0YWxsVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIGludCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJv
b2wgc2luZ2xlU2hvdCk7CisgICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmds
ZVNob3QpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlbW92ZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBpbnQgdGltZXJJZCk7CiAKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxDYWxsRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOwpAQCAtMjkzLDcgKzI5Myw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIGNvbnN0IEVsZW1lbnQmLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
KTsKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkSW5z
dGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisgICAgc3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVtb3Zl
VGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSB3aWxsQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5n
JiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpA
QCAtNjQyLDcgKzY0Miw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250CiAgICAgICAgIHdpbGxT
ZW5kWE1MSHR0cFJlcXVlc3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB1cmwpOwogfQogCi1p
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3Qp
CiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yQ29udGV4dChjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAxZjBkMDU3NmQyNGVkYmFiOWEwOWE4
OWQ0MGQyZGYxZDhkOTY5YTBkLi5lMjAyZDMyYzY0NTc3ODc3OTBiNjczYjgxM2Y3ZDc5OTgzMjE1
MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRQYWludChSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRSZWN0Jgog
ICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlBhaW50KTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIoaW50IHRp
bWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90
LCBGcmFtZSogZnJhbWUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxU
aW1lcihpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIEZyYW1l
KiBmcmFtZSkKIHsKICAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVUaW1lckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OlRpbWVySW5zdGFsbCwgdHJ1ZSwgZnJhbWUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggYmY1YmJi
YjE3NDQyNmUwOWQ2NGNlYmEwMTFmNDFkMjA3MjQ3ZTRhYy4uODVmMDZkYWFhYTA5NjA4Yjc5MWEy
MzQxYzkzZDIwN2ZlZjI5MzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KLSAgICB2b2lkIGRpZEluc3Rh
bGxUaW1lcihpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBi
b29sIHNpbmdsZVNob3QsIEZyYW1lKik7CisgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRp
bWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOwogICAgIHZv
aWQgZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQsIEZyYW1lKik7CiAgICAgdm9pZCB3aWxsRmly
ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOwogICAgIHZvaWQgZGlkRmlyZVRpbWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3Bw
CmluZGV4IGEyMTY1OTNmODViMDFhODNkYTY3Y2FlOWQ0ZjdkMjk3ZjU0M2NiMWIuLjc0YWE3ZmZl
ODEzMzRiNGM2NTFjMTQ4NDU4ZjkyZThlN2NhNzZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC05NCwxMSArOTQsMTEg
QEAgUmVmPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljVGltZXJEYXRhKGludCB0aW1lcklkKQogICAgIHJldHVybiBkYXRhOwogfQogCi1SZWY8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERh
dGEoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBz
aW5nbGVTaG90KQorUmVmPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVUaW1lckluc3RhbGxEYXRhKGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wg
c2luZ2xlU2hvdCkKIHsKICAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKICAgICBkYXRhLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgidGlt
ZXJJZCIpLCB0aW1lcklkKTsKLSAgICBkYXRhLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgidGlt
ZW91dCIpLCAoaW50KXRpbWVvdXQuY291bnQoKSk7CisgICAgZGF0YS0+c2V0SW50ZWdlcihBU0NJ
SUxpdGVyYWwoInRpbWVvdXQiKSwgKGludCl0aW1lb3V0Lm1pbGxpc2Vjb25kcygpKTsKICAgICBk
YXRhLT5zZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgic2luZ2xlU2hvdCIpLCBzaW5nbGVTaG90KTsK
ICAgICByZXR1cm4gZGF0YTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1l
bGluZVJlY29yZEZhY3RvcnkuaAppbmRleCBmYjcwNWQxZWE0YmExOWRkOTJiMWJmZDAzYzFjMWFl
NGZhNTI0NWZjLi5kZGY4ZDA1ZGZlNGVlMzZkODQwNDE2YjQxYWFhN2U3NDFhYTU2NGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVj
dG9yT2JqZWN0PiBjcmVhdGVQcm9iZVNhbXBsZURhdGEoY29uc3QgSW5zcGVjdG9yOjpTY3JpcHRC
cmVha3BvaW50QWN0aW9uJiwgdW5zaWduZWQgc2FtcGxlSWQpOwogICAgIHN0YXRpYyBSZWY8SW5z
cGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0IEV2
ZW50Jik7CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRl
R2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCk7Ci0gICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6
Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOworICAgIHN0
YXRpYyBSZWY8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERh
dGEoaW50IHRpbWVySWQsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKICAgICBz
dGF0aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmFsdWF0ZVNjcmlw
dERhdGEoY29uc3QgU3RyaW5nJiwgZG91YmxlIGxpbmVOdW1iZXIpOwogICAgIHN0YXRpYyBSZWY8
SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVTdGFtcERhdGEoY29uc3QgU3Ry
aW5nJik7CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRl
QW5pbWF0aW9uRnJhbWVEYXRhKGludCBjYWxsYmFja0lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5j
cHAKaW5kZXggODBlMWI4ZDY4MWU3ZGMyMjYwNTY5YTI3ZDhhODA5YThhMmJjYjBiYi4uMWY4MGM2
OWVlYjQwOGM0NTZiOTEwMDYyYTdkZTg2MzYxOWUyMWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAKQEAgLTUyLDggKzUyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
Y29uc3QgYXV0byBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyA9IDEwMDBtczsg
Ly8gT25lIHNlY29uZCBtYXRjaGVzIEdlY2tvLgotc3RhdGljIGNvbnN0IGF1dG8gbWluSW50ZXJ2
YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyA9IDEwMDBtczsgLy8gRW1waXJpY2Fs
bHkgZGV0ZXJtaW5lZCB0byBtYXhpbWl6ZSBiYXR0ZXJ5IGxpZmUuCitzdGF0aWMgY29uc3QgU2Vj
b25kcyBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyB7IDFfcyB9OyAvLyBPbmUg
c2Vjb25kIG1hdGNoZXMgR2Vja28uCitzdGF0aWMgY29uc3QgU2Vjb25kcyBtaW5JbnRlcnZhbEZv
ck5vblVzZXJPYnNlcnZhYmxlQ2hhbmdlVGltZXJzIHsgMV9zIH07IC8vIEVtcGlyaWNhbGx5IGRl
dGVybWluZWQgdG8gbWF4aW1pemUgYmF0dGVyeSBsaWZlLgogc3RhdGljIGNvbnN0IGludCBtYXhU
aW1lck5lc3RpbmdMZXZlbCA9IDU7CiAKIGNsYXNzIERPTVRpbWVyRmlyZVN0YXRlIHsKQEAgLTE2
MSwxNCArMTYxLDE0IEBAIHByaXZhdGU6CiAKIGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNr
aW5nTmVzdGVkVGltZXJzID0gZmFsc2U7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3
YXJkVXNlckdlc3R1cmUoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCwgaW50IG5l
c3RpbmdMZXZlbCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUo
U2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIHsKICAgICByZXR1cm4gVXNlckdl
c3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiAgICAgICAgICYmIGludGVy
dmFsIDw9IG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nCiAgICAgICAgICYmICFu
ZXN0aW5nTGV2ZWw7IC8vIEdlc3R1cmVzIHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIG5lc3Rl
ZCB0aW1lcnMuCiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IHVz
ZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZh
bCwgaW50IG5lc3RpbmdMZXZlbCkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFVzZXJHZXN0dXJlVG9r
ZW4+IHVzZXJHZXN0dXJlVG9rZW5Ub0ZvcndhcmQoU2Vjb25kcyBpbnRlcnZhbCwgaW50IG5lc3Rp
bmdMZXZlbCkKIHsKICAgICBpZiAoIXNob3VsZEZvcndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwg
bmVzdGluZ0xldmVsKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzYsNyArMTc2LDcg
QEAgc3RhdGljIGlubGluZSBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gdXNlckdlc3R1cmVUb2tl
blRvRm9yd2FyZChzdGQ6OmNocm9ubzo6bWkKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRpY2F0
b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpOwogfQogCi1ET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNpbmds
ZVNob3QpCitET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBTZWNvbmRzIGludGVy
dmFsLCBib29sIHNpbmdsZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCiAg
ICAgLCBtX25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAgLCBt
X2FjdGlvbihXVEZNb3ZlKGFjdGlvbikpCkBAIC0yMDIsNyArMjAyLDcgQEAgRE9NVGltZXI6On5E
T01UaW1lcigpCiB7CiB9CiAKLWludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24s
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQoraW50
IERPTVRpbWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6
dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpCiB7CiAgICAgLy8gRE9NVGltZXIgY29uc3RydWN0b3IgcGFzc2VzIG93bmVy
c2hpcCBvZiB0aGUgaW5pdGlhbCByZWYgb24gdGhlIG9iamVjdCB0byB0aGUgY29uc3RydWN0b3Iu
CiAgICAgLy8gVGhpcyByZWZlcmVuY2Ugd2lsbCBiZSByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IHdo
ZW4gYSBvbmUtc2hvdCB0aW1lciBmaXJlcywgd2hlbiB0aGUgY29udGV4dApAQCAtMjExLDcgKzIx
MSw3IEBAIGludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlm
IChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgYm9vbCBkaWREZWZlclRpbWVvdXQg
PSBjb250ZXh0LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKTsKLSAgICAgICAgaWYgKCFk
aWREZWZlclRpbWVvdXQgJiYgdGltZW91dC5jb3VudCgpIDw9IDEwMCAmJiBzaW5nbGVTaG90KSB7
CisgICAgICAgIGlmICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQgPD0gMTAwX21zICYmIHNp
bmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdLQ29u
dGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwogICAgICAgICAgICAgV2ViVGhyZWFkQWRkT2JzZXJ2
ZWRDb250ZW50TW9kaWZpZXIodGltZXIpOyAvLyBXaWxsIG9ubHkgdGFrZSBhZmZlY3QgaWYgbm90
IGFscmVhZHkgdmlzaWJpbGl0eSBjaGFuZ2UuCiAgICAgICAgIH0KQEAgLTQwMCw0NSArNDAwLDQ1
IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VS
VChyZXBlYXRJbnRlcnZhbE1TKCkgPT0gcHJldmlvdXNJbnRlcnZhbCk7Ci0gICAgICAgIExPRyhE
T01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20g
JSIgUFJJZDY0ICIgbXMgdG8gJSIgUFJJZDY0ICIgbXMgZHVlIHRvIHRocm90dGxpbmcuIiwgdGhp
cywgcHJldmlvdXNJbnRlcnZhbC5jb3VudCgpLCBtX2N1cnJlbnRUaW1lckludGVydmFsLmNvdW50
KCkpOworICAgICAgICBBU1NFUlQocmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCkgPT0gcHJldmlvdXNJ
bnRlcnZhbCk7CisgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVy
J3MgcmVwZWF0IGludGVydmFsIGZyb20gJS4yZiBtcyB0byAlLjJmIG1zIGR1ZSB0byB0aHJvdHRs
aW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1fY3VycmVudFRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50UmVwZWF0SW50ZXJ2
YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmly
ZSBpbnRlcnZhbCBmcm9tICUiIFBSSWQ2NCAiIG1zIHRvICUiIFBSSWQ2NCAiIG1zIGR1ZSB0byB0
aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGlt
ZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRp
bmcgRE9NVGltZXIncyBmaXJlIGludGVydmFsIGZyb20gJS4yZiBtcyB0byAlLjJmIG1zIGR1ZSB0
byB0aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1f
Y3VycmVudFRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50Rmly
ZUludGVydmFsKG1fY3VycmVudFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKICAg
ICB9CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgRE9NVGltZXI6OmludGVydmFsQ2xh
bXBlZFRvTWluaW11bSgpIGNvbnN0CitTZWNvbmRzIERPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRU
b01pbmltdW0oKSBjb25zdAogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwogICAgIEFTU0VSVChtX25lc3RpbmdMZXZlbCA8PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7CiAK
LSAgICBhdXRvIGludGVydmFsID0gc3RkOjptYXgoMW1zLCBtX29yaWdpbmFsSW50ZXJ2YWwpOwor
ICAgIFNlY29uZHMgaW50ZXJ2YWwgPSBzdGQ6Om1heCgxX21zLCBtX29yaWdpbmFsSW50ZXJ2YWwp
OwogCiAgICAgLy8gT25seSBhcHBseSB0aHJvdHRsaW5nIHRvIHJlcGVhdGluZyB0aW1lcnMuCiAg
ICAgaWYgKG1fbmVzdGluZ0xldmVsIDwgbWF4VGltZXJOZXN0aW5nTGV2ZWwpCiAgICAgICAgIHJl
dHVybiBpbnRlcnZhbDsKIAogICAgIC8vIEFwcGx5IHR3byB0aHJvdHRsZXMgLSB0aGUgZ2xvYmFs
IChwZXIgUGFnZSkgbWluaW11bSwgYW5kIGFsc28gYSBwZXItdGltZXIgdGhyb3R0bGUuCi0gICAg
aW50ZXJ2YWwgPSBzdGQ6Om1heChpbnRlcnZhbCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5t
aW5pbXVtVGltZXJJbnRlcnZhbCgpKTsKKyAgICBpbnRlcnZhbCA9IHN0ZDo6bWF4KGludGVydmFs
LCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPm1pbmltdW1ET01UaW1lckludGVydmFsKCkpOwog
ICAgIGlmIChtX3Rocm90dGxlU3RhdGUgPT0gU2hvdWxkVGhyb3R0bGUpCiAgICAgICAgIGludGVy
dmFsID0gc3RkOjptYXgoaW50ZXJ2YWwsIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVD
aGFuZ2VUaW1lcnMpOwogICAgIHJldHVybiBpbnRlcnZhbDsKIH0KIAotc3RkOjpvcHRpb25hbDxz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoU2Vjb25kcyBmaXJlVGltZSkgY29uc3QKIHsK
LSAgICBhdXRvIGFsaWdubWVudEludGVydmFsID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT50
aW1lckFsaWdubWVudEludGVydmFsKG1fbmVzdGluZ0xldmVsID49IG1heFRpbWVyTmVzdGluZ0xl
dmVsKTsKLSAgICBpZiAoYWxpZ25tZW50SW50ZXJ2YWwgPT0gMG1zKQorICAgIFNlY29uZHMgYWxp
Z25tZW50SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmRvbVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpOworICAg
IGlmICghYWxpZ25tZW50SW50ZXJ2YWwpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgCiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSByYW5kb21pemVkUHJvcG9ydGlvbiA9IHJhbmRv
bU51bWJlcigpOwogCiAgICAgLy8gRm9yY2UgYWxpZ25tZW50IHRvIHJhbmRvbWl6ZWRBbGlnbm1l
bnQgZnJhY3Rpb24gb2YgdGhlIHdheSBiZXR3ZWVuIGFsaWduZW1udEludGVydmFscywgZS5nLgot
ICAgIC8vIGlmIGFsaWdubWVudEludGVydmFsIGlzIDEwIGFuZCByYW5kb21pemVkQWxpZ25tZW50
IGlzIDAuMyB0aGlzIHdpbGwgYWxpZ24gdG8gMywgMTMsIDIzLCAuLi4KLSAgICBhdXRvIHJhbmRv
bWl6ZWRPZmZzZXQgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzPihhbGlnbm1lbnRJbnRlcnZhbCAqIHJhbmRvbWl6ZWRQcm9wb3J0aW9uKTsKLSAg
ICBhdXRvIGFkanVzdGVkRmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZzZXQ7Cisg
ICAgLy8gaWYgYWxpZ25tZW50SW50ZXJ2YWwgaXMgMTBfbXMgYW5kIHJhbmRvbWl6ZWRBbGlnbm1l
bnQgaXMgMC4zIHRoaXMgd2lsbCBhbGlnbiB0byAzLCAxMywgMjMsIC4uLgorICAgIFNlY29uZHMg
cmFuZG9taXplZE9mZnNldCA9IGFsaWdubWVudEludGVydmFsICogcmFuZG9taXplZFByb3BvcnRp
b247CisgICAgU2Vjb25kcyBhZGp1c3RlZEZpcmVUaW1lID0gZmlyZVRpbWUgLSByYW5kb21pemVk
T2Zmc2V0OwogICAgIHJldHVybiBhZGp1c3RlZEZpcmVUaW1lIC0gKGFkanVzdGVkRmlyZVRpbWUg
JSBhbGlnbm1lbnRJbnRlcnZhbCkgKyBhbGlnbm1lbnRJbnRlcnZhbCArIHJhbmRvbWl6ZWRPZmZz
ZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAppbmRleCA4NzI3NzM5N2VhNjA4YzQxODM3YjBh
OGFjYjYwMmViMzNjZDZmZTg3Li5kYmM3ZDM0N2MzMzk5NDRjMTMyYjRkNzcyYjlhZGY1NmYxNjcw
NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ0LDEzICs0NSwxMyBAQCBjbGFzcyBET01UaW1lciBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXIgewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkRPTVRpbWVyKCk7CiAKLSAgICBzdGF0aWMgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gNG1zOyB9Ci0gICAg
c3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVmYXVsdEFsaWdubWVudEludGVydmFs
KCkgeyByZXR1cm4gMG1zOyB9Ci0gICAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFsKCkgeyByZXR1cm4gMTAwMG1zOyB9CisgICAgc3Rh
dGljIFNlY29uZHMgZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpIHsgcmV0dXJuIDRfbXM7IH0KKyAg
ICBzdGF0aWMgU2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAwX3M7
IH0KKyAgICBzdGF0aWMgU2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJl
dHVybiAxX3M7IH0KIAogICAgIC8vIENyZWF0ZXMgYSBuZXcgdGltZXIgb3duZWQgYnkgc3BlY2lm
aWVkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0YXJ0cyBpdAogICAgIC8vIGFuZCByZXR1cm5z
IGl0cyBJZC4KLSAgICBzdGF0aWMgaW50IGluc3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CisgICAgc3RhdGljIGludCBpbnN0YWxsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwg
U2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92
ZUJ5SWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGludCB0aW1lb3V0SWQpOwogCiAgICAgLy8g
Tm90aWZ5IHRoYXQgdGhlIGludGVydmFsIG1heSBuZWVkIHVwZGF0aW5nIChlLmcuIGJlY2F1c2Ug
dGhlIG1pbmltdW0gaW50ZXJ2YWwKQEAgLTYwLDEwICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgc2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKEhUTUxQbHVnSW5FbGVtZW50Jik7
CiAKIHByaXZhdGU6Ci0gICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6
dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGlu
dGVydmFsLCBib29sIHNpbmdsZVNob3QpOworICAgIERPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgU2Vjb25kcyBpbnRlcnZh
bCwgYm9vbCBzaW5nbGVTaG90KTsKICAgICBmcmllbmQgY2xhc3MgSW50ZXJuYWxzOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbENsYW1wZWRU
b01pbmltdW0oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIGludGVydmFsQ2xh
bXBlZFRvTWluaW11bSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc0RPTVRpbWVyc1Rocm90dGxpbmdF
bmFibGVkKERvY3VtZW50JikgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRsaW5nU3RhdGVJ
Zk5lY2Vzc2FyeShjb25zdCBET01UaW1lckZpcmVTdGF0ZSYpOwpAQCAtNzEsNyArNzIsNyBAQCBw
cml2YXRlOgogICAgIC8vIFN1c3BlbmRhYmxlVGltZXIKICAgICB2b2lkIGZpcmVkKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcykgY29uc3Qgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoU2Vjb25kcykgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTg1LDkgKzg2LDkgQEAg
cHJpdmF0ZToKICAgICBpbnQgbV90aW1lb3V0SWQ7CiAgICAgaW50IG1fbmVzdGluZ0xldmVsOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IG1fYWN0aW9uOwotICAgIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgbV9vcmlnaW5hbEludGVydmFsOworICAgIFNlY29uZHMgbV9v
cmlnaW5hbEludGVydmFsOwogICAgIFRpbWVyVGhyb3R0bGVTdGF0ZSBtX3Rocm90dGxlU3RhdGU7
Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX2N1cnJlbnRUaW1lckludGVydmFsOwor
ICAgIFNlY29uZHMgbV9jdXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBSZWZQdHI8VXNlckdlc3R1
cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuVG9Gb3J3YXJkOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCmluZGV4IDZhZWRiMDljODVlMTdkZDE1MmQzNGMzMWU4YmY0MDIyZTI3M2Fm
MWYuLmUyYjM4YTUxMWY0YjBiODAyMTI5ZTMxNjIzY2IwNGViZjAzNTY1MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE2NjMsNyArMTY2Myw3IEBAIEV4Y2VwdGlvbk9yPGludD4g
RE9NV2luZG93OjpzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFj
dGlvbiwKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAg
IGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNT
X0VSUiB9OwotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwgV1RGTW92ZShh
Y3Rpb24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRpbWVvdXQpLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRleHQsIFdURk1vdmUoYWN0aW9uKSwgU2Vjb25k
czo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93
OjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKQEAgLTE2OTUsNyArMTY5NSw3IEBAIEV4Y2Vw
dGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRJbnRlcnZhbChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sCiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
TlZBTElEX0FDQ0VTU19FUlIgfTsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKmNvbnRl
eHQsIFdURk1vdmUoYWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwg
ZmFsc2UpOworICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbCgqY29udGV4dCwgV1RGTW92ZShh
Y3Rpb24pLCBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXQpLCBmYWxzZSk7CiB9CiAK
IHZvaWQgRE9NV2luZG93OjpjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCA3ZDZkOThhMTEwOWE4MDljMjQ5Y2I0YzJjZDAyNmFmNWNkNTI2YjU2Li4yNDY5
NGQ4ZTE3NzA2M2MxYjA5MDEyMWJmZTI2ZWU1NTAxZGY2NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTIzNCw4ICsyMzQsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNv
bmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAgICAgLCBtX3Zp
ZXdNb2RlKFZpZXdNb2RlV2luZG93ZWQpCiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1Nf
TUVESUEpCi0gICAgLCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwoRE9NVGltZXI6OmRlZmF1bHRB
bGlnbm1lbnRJbnRlcnZhbCgpKQotICAgICwgbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVh
c2VUaW1lcigqdGhpcywgJlBhZ2U6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVy
RmlyZWQpCisgICAgLCBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoRE9NVGltZXI6OmRlZmF1
bHRBbGlnbm1lbnRJbnRlcnZhbCgpKQorICAgICwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VUaW1lcigqdGhpcywgJlBhZ2U6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZVRpbWVyRmlyZWQpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2UpCiAgICAgLCBtX2lzUHJl
cmVuZGVyKGZhbHNlKQogICAgICwgbV9hY3Rpdml0eVN0YXRlKFBhZ2VJbml0aWFsQWN0aXZpdHlT
dGF0ZSkKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgUGFnZTo6c2V0VGltZXJUaHJvdHRsaW5n
U3RhdGUoVGltZXJUaHJvdHRsaW5nU3RhdGUgc3RhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgPSBzdGF0ZTsKLSAgICBtX3RpbWVyVGhyb3R0bGluZ1N0
YXRlTGFzdENoYW5nZWRUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Cisg
ICAgbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogCiAgICAgdXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC0x
MzMzLDEyICsxMzMzLDEyIEBAIHZvaWQgUGFnZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUoVGlt
ZXJUaHJvdHRsaW5nU3RhdGUgc3RhdGUpCiAgICAgfQogfQogCi12b2lkIFBhZ2U6OnNldFRpbWVy
QWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
bGltaXQpCit2b2lkIFBhZ2U6OnNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KFNlY29uZHMgbGltaXQpCiB7Ci0gICAgbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVh
c2VMaW1pdCA9IGxpbWl0OworICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNl
TGltaXQgPSBsaW1pdDsKIAotICAgIC8vIElmIChtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0IDwgbV90aW1lckFsaWdubWVudEludGVydmFsKSB0aGVuIHdlIG5lZWQKLSAgICAv
LyB0byB1cGRhdGUgbV90aW1lckFsaWdubWVudEludGVydmFsLCBpZiBncmVhdGVyIHRoZW4gbmVl
ZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KKyAgICAvLyBJZiAobV9kb21UaW1lckFs
aWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCA8IG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZh
bCkgdGhlbiB3ZSBuZWVkCisgICAgLy8gdG8gdXBkYXRlIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRl
cnZhbCwgaWYgZ3JlYXRlciB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgaW5jcmVhc2UgdGltZXIu
CiAgICAgaWYgKG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgPT0gVGltZXJUaHJvdHRsaW5nU3RhdGU6
OkVuYWJsZWRJbmNyZWFzaW5nKQogICAgICAgICB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVy
dmFsKCk7CiB9CkBAIC0xMzQ5LDI4ICsxMzQ5LDI4IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbCgpCiAKICAgICBzd2l0Y2ggKG1fdGltZXJUaHJvdHRsaW5nU3Rh
dGUpIHsKICAgICBjYXNlIFRpbWVyVGhyb3R0bGluZ1N0YXRlOjpEaXNhYmxlZDoKLSAgICAgICAg
bV90aW1lckFsaWdubWVudEludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRl
cnZhbCgpOworICAgICAgICBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBET01UaW1lcjo6
ZGVmYXVsdEFsaWdubWVudEludGVydmFsKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBU
aW1lclRocm90dGxpbmdTdGF0ZTo6RW5hYmxlZDoKLSAgICAgICAgbV90aW1lckFsaWdubWVudElu
dGVydmFsID0gRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOworICAgICAg
ICBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdu
bWVudEludGVydmFsKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUaW1lclRocm90dGxp
bmdTdGF0ZTo6RW5hYmxlZEluY3JlYXNpbmc6CiAgICAgICAgIC8vIEZvciBwYWdlcyBpbiBwcmVy
ZW5kZXIgc3RhdGUgbWF4aW11bSB0aHJvdHRsaW5nIGtpY2tzIGluIGltbWVkaWF0ZWx5LgogICAg
ICAgICBpZiAobV9pc1ByZXJlbmRlcikKLSAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRl
cnZhbCA9IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQ7CisgICAgICAgICAg
ICBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWxJbmNyZWFzZUxpbWl0OwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3Rp
bWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lLnRpbWVfc2luY2VfZXBvY2goKSAhPSBz
dGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlvbjo6emVybygpKTsKLSAgICAgICAgICAg
IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygp
IC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSk7CisgICAgICAgICAgICBB
U1NFUlQoISFtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lKTsKKyAgICAgICAg
ICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0g
bV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZTsKICAgICAgICAgICAgIC8vIElm
IHdlJ3JlIGJlbG93IHRoZSBsaW1pdCwgc2V0IHRoZSB0aW1lci4gSWYgYWJvdmUsIGNsYW1wIHRv
IGxpbWl0LgotICAgICAgICAgICAgaWYgKG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA8IG1fdGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpCisgICAgICAgICAgICBpZiAobV9kb21U
aW1lckFsaWdubWVudEludGVydmFsIDwgbV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVh
c2VMaW1pdCkKICAgICAgICAgICAgICAgICBuZWVkc0luY3JlYXNlVGltZXIgPSB0cnVlOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9
IG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQ7CisgICAgICAgICAgICAgICAg
bV9kb21UaW1lckFsaWdubWVudEludGVydmFsID0gbV9kb21UaW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VMaW1pdDsKICAgICAgICAgfQogICAgICAgICAvLyBBbGlnbm1lbnQgaW50ZXJ2YWwg
c2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRl
cnZhbCgpLgotICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6Om1heChtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwsIERPTVRpbWVyOjpoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2
YWwoKSk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6bWF4KG1f
ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbCwgRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJ
bnRlcnZhbCgpKTsKICAgICB9CiAKICAgICAvLyBJZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGF1
dG8taW5jcmVhc2luZyBvZiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQsIGFuZCB0aGUgYXV0by1pbmNy
ZWFzZQpAQCAtMTM3OCwxNiArMTM3OCwxNiBAQCB2b2lkIFBhZ2U6OnVwZGF0ZURPTVRpbWVyQWxp
Z25tZW50SW50ZXJ2YWwoKQogICAgIC8vIGJldHdlZW4gaW5jcmVhc2VzIGlzIGVxdWFsIHRvIHRo
ZSBjdXJyZW50IHRocm90dGxlIHRpbWUuIFNpbmNlIGFsaW5tZW50IGludGVydmFsIGluY3JlYXNl
cwogICAgIC8vIGV4cG9uZW50aWFsbHksIHRpbWUgYmV0d2VlbiBzdGVwcyBpcyBleHBvbmVudGlh
bCB0b28uCiAgICAgaWYgKCFuZWVkc0luY3JlYXNlVGltZXIpCi0gICAgICAgIG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuc3RvcCgpOwotICAgIGVsc2UgaWYgKCFtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZXJBbGln
bm1lbnRJbnRlcnZhbCk7CisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3Jl
YXNlVGltZXIuc3RvcCgpOworICAgIGVsc2UgaWYgKCFtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWxJbmNyZWFzZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZG9tVGltZXJBbGlnbm1lbnRJ
bnRlcnZhbEluY3JlYXNlVGltZXIuc3RhcnRPbmVTaG90KG1fZG9tVGltZXJBbGlnbm1lbnRJbnRl
cnZhbCk7CiB9CiAKLXZvaWQgUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGlt
ZXJGaXJlZCgpCit2b2lkIFBhZ2U6OmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRp
bWVyRmlyZWQoKQogewogICAgIEFTU0VSVChtX3NldHRpbmdzLT5oaWRkZW5QYWdlRE9NVGltZXJU
aHJvdHRsaW5nQXV0b0luY3JlYXNlcygpKTsKICAgICBBU1NFUlQobV90aW1lclRocm90dGxpbmdT
dGF0ZSA9PSBUaW1lclRocm90dGxpbmdTdGF0ZTo6RW5hYmxlZEluY3JlYXNpbmcpOwotICAgIEFT
U0VSVChtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZUxpbWl0KTsKKyAgICBBU1NFUlQobV9kb21UaW1lckFsaWdubWVudEludGVydmFsIDwg
bV9kb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdCk7CiAgICAgCiAgICAgLy8g
QWxpZ25tZW50IGludGVydmFsIGlzIGluY3JlYXNlZCB0byBlcXVhbCB0aGUgdGltZSB0aGUgcGFn
ZSBoYXMgYmVlbiB0aHJvdHRsZWQsIHRvIGEgbGltaXQuCiAgICAgdXBkYXRlRE9NVGltZXJBbGln
bm1lbnRJbnRlcnZhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5MzhhMDk2ZmI3MzlkOTlmNjdlMmVk
Y2I1OTQzMmVmZGYxNTZmNTM5Li5mODZmNDdlYmUyNmI4OTFjZTIyMmIzNjc3MjkzMWUxNzQzOWNi
YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICBQcm9n
cmVzc1RyYWNrZXImIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gKm1fcHJvZ3Jlc3M7IH0KICAg
ICBCYWNrRm9yd2FyZENvbnRyb2xsZXImIGJhY2tGb3J3YXJkKCkgY29uc3QgeyByZXR1cm4gKm1f
YmFja0ZvcndhcmRDb250cm9sbGVyOyB9CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
IGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25t
ZW50SW50ZXJ2YWw7IH0KKyAgICBTZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBj
b25zdCB7IHJldHVybiBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJM
RShWSUVXX01PREVfQ1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNTUyLDcgKzU1
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3dBbGxQbHVnaW5zKGJvb2wgc2hvd0FsbCkg
eyBtX3Nob3dBbGxQbHVnaW5zID0gc2hvd0FsbDsgfQogICAgIGJvb2wgc2hvd0FsbFBsdWdpbnMo
KSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGltZXJBbGlnbm1lbnRJbnRl
cnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRET01UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VMaW1pdChT
ZWNvbmRzKTsKIAogICAgIGJvb2wgaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250cm9sbGVkQnlBdXRvbWF0aW9uOyB9CiAgICAgdm9pZCBzZXRDb250cm9sbGVk
QnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxlZCkgeyBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24g
PSBjb250cm9sbGVkOyB9CkBAIC02MDksNyArNjA5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyVGhyb3R0bGluZ1N0YXRlKTsKICAgICB2b2lkIHVw
ZGF0ZVRpbWVyVGhyb3R0bGluZ1N0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVET01UaW1lckFsaWdu
bWVudEludGVydmFsKCk7Ci0gICAgdm9pZCB0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lckZpcmVkKCk7CisgICAgdm9pZCBkb21UaW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lckZpcmVkKCk7CiAKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q2hyb21lPiBtX2Nocm9t
ZTsKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4gbV9kcmFn
Q2FyZXRDb250cm9sbGVyOwpAQCAtNzEyLDEwICs3MTIsMTAgQEAgcHJpdmF0ZToKICNlbmRpZiAv
LyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIAogICAgIFRpbWVyVGhyb3R0bGluZ1N0YXRl
IG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgeyBUaW1lclRocm90dGxpbmdTdGF0ZTo6RGlzYWJsZWQg
fTsKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fdGltZXJUaHJv
dHRsaW5nU3RhdGVMYXN0Q2hhbmdlZFRpbWUgeyBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpk
dXJhdGlvbjo6emVybygpIH07Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWw7Ci0gICAgVGltZXIgbV90aW1lckFsaWdubWVudEludGVydmFsSW5j
cmVhc2VUaW1lcjsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGltZXJBbGlnbm1l
bnRJbnRlcnZhbEluY3JlYXNlTGltaXQgeyAwIH07CisgICAgTW9ub3RvbmljVGltZSBtX3RpbWVy
VGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lOworICAgIFNlY29uZHMgbV9kb21UaW1lckFs
aWdubWVudEludGVydmFsOworICAgIFRpbWVyIG1fZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbElu
Y3JlYXNlVGltZXI7CisgICAgU2Vjb25kcyBtX2RvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNy
ZWFzZUxpbWl0OwogCiAgICAgYm9vbCBtX2lzRWRpdGFibGU7CiAgICAgYm9vbCBtX2lzUHJlcmVu
ZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA2YmI5ZDAzYThiMzRjMTk2ODI0YThk
MmJlZGNkZTNkYWFhZTFkNDIxLi43ZDA4Nzg0N2NkOGE4OTI4NGJiNDY4OGQ0MTJlMzQ5MzZiOWJl
NDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNDQ5LDE3ICs0NDksMTYgQEAgdm9p
ZCBTZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsoYm9vbCBzaG91bGRO
b3RSZWxvYWRJRnJhbWVzRm9yVW4KICAgICBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJr
ID0gc2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQzsKIH0KIAotdm9pZCBTZXR0
aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBpbnRlcnZhbCkKK3ZvaWQgU2V0dGluZ3M6OnNldE1pbmltdW1ET01UaW1lckludGVydmFsKFNl
Y29uZHMgaW50ZXJ2YWwpCiB7Ci0gICAgYXV0byBvbGRUaW1lckludGVydmFsID0gbV9taW5pbXVt
RE9NVGltZXJJbnRlcnZhbDsKLSAgICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gaW50ZXJ2
YWw7CisgICAgYXV0byBvbGRUaW1lckludGVydmFsID0gc3RkOjpleGNoYW5nZShtX21pbmltdW1E
T01UaW1lckludGVydmFsLCBpbnRlcnZhbCk7CiAKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9wYWdlLT5tYWluRnJhbWUoKTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBp
ZiAoZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YWRq
dXN0TWluaW11bVRpbWVySW50ZXJ2YWwob2xkVGltZXJJbnRlcnZhbCk7CisgICAgICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+YWRqdXN0TWluaW11bURPTVRpbWVySW50ZXJ2YWwob2xkVGltZXJJ
bnRlcnZhbCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggN2ZjNTcwOGVj
Nzk2NzFjOTkyNWE3NzhmYzE0YTQ1YmY1MDU1NTJlOS4uOWYzNzA3NTViMGI4MmJmZTgxOTI4MGE1
OTgxNDBkYTM5ZjU4MjM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTY5LDggKzE2OSw4
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5lZWRzQWRvYmVGcmFtZVJl
bG9hZGluZ1F1aXJrKGJvb2wpOwogICAgIGJvb2wgbmVlZHNBY3JvYmF0RnJhbWVSZWxvYWRpbmdR
dWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcms7IH0K
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7IC8vIEluaXRpYWxpemVkIHRvIERPTVRpbWVyOjpkZWZh
dWx0TWluaW11bUludGVydmFsKCkuCi0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtaW5p
bXVtRE9NVGltZXJJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bURPTVRpbWVySW50
ZXJ2YWw7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1pbmltdW1ET01UaW1lckludGVy
dmFsKFNlY29uZHMpOyAvLyBJbml0aWFsaXplZCB0byBET01UaW1lcjo6ZGVmYXVsdE1pbmltdW1J
bnRlcnZhbCgpLgorICAgIFNlY29uZHMgbWluaW11bURPTVRpbWVySW50ZXJ2YWwoKSBjb25zdCB7
IHJldHVybiBtX21pbmltdW1ET01UaW1lckludGVydmFsOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldExheW91dEludGVydmFsKFNlY29uZHMpOwogICAgIFNlY29uZHMgbGF5b3V0SW50
ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX2xheW91dEludGVydmFsOyB9CkBAIC0zMzgsNyArMzM4
LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEdlbmVyaWNGYW1p
bGllcz4gbV9mb250R2VuZXJpY0ZhbWlsaWVzOwogICAgIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAgU2Vjb25kcyBtX2xh
eW91dEludGVydmFsOwotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbDsKKyAgICBTZWNvbmRzIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7CiAK
ICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5k
YWJsZVRpbWVyLmgKaW5kZXggZTE1ZjBhNzA5Mzc4NTBhM2E2OTAxZjcyMGM1ZGUxZjYwOTkxMzg2
NC4uYmFkYTdiYzI0YTUyYjViNWYzYzBkZTU5OGVkOTk3MDc3NTg5NGY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCisjaW5jbHVkZSA8d3RmL1Nl
Y29uZHMuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdXNwZW5kYWJsZVRpbWVy
IDogcHJpdmF0ZSBUaW1lckJhc2UsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewpAQCAtNDksOSAr
NTEsMjAgQEAgcHVibGljOgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVs
dGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKGRvdWJsZSBkZWx0YSk7CiAKKyAg
ICB2b2lkIHN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBl
YXRpbmcocmVwZWF0SW50ZXJ2YWwudmFsdWUoKSk7IH0KKyAgICB2b2lkIHN0YXJ0T25lU2hvdChT
ZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC52YWx1ZSgpKTsgfQorCisg
ICAgLy8gRklYTUU6IFVzZSB0aGUgb3ZlcmxvYWRzIHRha2luZyBTZWNvbmRzIGluc3RlYWQgYW5k
IGRyb3AgdGhlc2UuCiAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKG1zVG9TZWNvbmRzKHJlcGVh
dEludGVydmFsKSk7IH0KICAgICB2b2lkIHN0YXJ0T25lU2hvdChzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChtc1RvU2Vjb25kcyhpbnRlcnZhbCkpOyB9
CisKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFsTVMoKSBjb25z
dCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQorICAgIFNlY29uZHMg
cmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gU2Vjb25kcyB7IHJlcGVhdElu
dGVydmFsKCkgfTsgfQorCisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgZGVs
dGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChkZWx0YS52YWx1ZSgpKTsgfQorICAgIHZvaWQgYXVn
bWVudFJlcGVhdEludGVydmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFs
KGRlbHRhLnZhbHVlKCkpOyB9CisKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFr
aW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJvcCB0aGVzZS4KICAgICB2b2lkIGF1Z21lbnRGaXJl
SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUlu
dGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KICAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRl
cnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRl
cnZhbChtc1RvU2Vjb25kcyhkZWx0YSkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcApp
bmRleCBjZDU5NGZlN2NjNTU4OTEyOTQ3NDYzOTc2ZDhkMTg1ZjkxMTE0YmJhLi4wYTQyNjY3NTY4
ZWI4YWNhYzdmN2FlZGI4ZWVjMDFiNmM4YjQyMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIu
Y3BwCkBAIC0zODIsOCArMzgyLDggQEAgdm9pZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShk
b3VibGUgbmV3VGltZSkKICAgICBkb3VibGUgb2xkVGltZSA9IG1fbmV4dEZpcmVUaW1lOwogICAg
IC8vIERvbid0IHJlYWxpZ24gemVyby1kZWxheSB0aW1lcnMuCiAgICAgaWYgKG5ld1RpbWUpIHsK
LSAgICAgICAgaWYgKGF1dG8gbmV3QWxpZ25lZFRpbWUgPSBhbGlnbmVkRmlyZVRpbWUoc2Vjb25k
c1RvTVMobmV3VGltZSkpKQotICAgICAgICAgICAgbmV3VGltZSA9IG1zVG9TZWNvbmRzKG5ld0Fs
aWduZWRUaW1lLnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBuZXdBbGlnbmVkVGltZSA9IGFs
aWduZWRGaXJlVGltZShTZWNvbmRzIHsgbmV3VGltZSB9KSkKKyAgICAgICAgICAgIG5ld1RpbWUg
PSBuZXdBbGlnbmVkVGltZS52YWx1ZSgpLnNlY29uZHMoKTsKICAgICB9CiAKICAgICBpZiAob2xk
VGltZSAhPSBuZXdUaW1lKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAppbmRleCA1MmExNjZlYmEy
ZDIzMTlkMTVhMWI3ZWQ5MDgyYjZiMTQzM2YzYjI0Li4wNDc3NDg5MThkNzMwMDdkYjcwNDVhYjY1
ZGY5MDU3ZTBiZDc0Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAgLTg4LDcgKzg4LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4gYWxpZ25l
ZEZpcmVUaW1lKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsgfQorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBhbGlnbmVkRmly
ZVRpbWUoU2Vjb25kcykgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAKICAgICB2b2lk
IGNoZWNrQ29uc2lzdGVuY3koKSBjb25zdDsKICAgICB2b2lkIGNoZWNrSGVhcEluZGV4KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA0
ZTI0NDg0YmQxNzgxNGQ4NDZmNjI5ODFjNTBkNWQxNmI5ZTY1ODFiLi42NjYxYzkxNTcwZDk2MTc2
OTI1OThhYTBlN2U5OWM5NWUyZmQzMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFj
a3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbE1vY2tTY3Jv
bGxiYXJzRW5hYmxlZChzZXR0aW5ncy5tb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKICAgICAsIG1f
aW1hZ2VzRW5hYmxlZChzZXR0aW5ncy5hcmVJbWFnZXNFbmFibGVkKCkpCiAgICAgLCBtX3ByZWZl
ck1JTUVUeXBlRm9ySW1hZ2VzKHNldHRpbmdzLnByZWZlck1JTUVUeXBlRm9ySW1hZ2VzKCkpCi0g
ICAgLCBtX21pbmltdW1UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1ET01UaW1lckludGVy
dmFsKCkpCisgICAgLCBtX21pbmltdW1ET01UaW1lckludGVydmFsKHNldHRpbmdzLm1pbmltdW1E
T01UaW1lckludGVydmFsKCkpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV9zaG91
bGREaXNwbGF5U3VidGl0bGVzKHNldHRpbmdzLnNob3VsZERpc3BsYXlTdWJ0aXRsZXMoKSkKICAg
ICAsIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zKHNldHRpbmdzLnNob3VsZERpc3BsYXlDYXB0aW9u
cygpKQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpy
ZXN0b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHNldHRpbmdzLnNldENhbnZhc1VzZXNB
Y2NlbGVyYXRlZERyYXdpbmcobV9vcmlnaW5hbENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcp
OwogICAgIHNldHRpbmdzLnNldEltYWdlc0VuYWJsZWQobV9pbWFnZXNFbmFibGVkKTsKICAgICBz
ZXR0aW5ncy5zZXRQcmVmZXJNSU1FVHlwZUZvckltYWdlcyhtX3ByZWZlck1JTUVUeXBlRm9ySW1h
Z2VzKTsKLSAgICBzZXR0aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChtX21pbmltdW1U
aW1lckludGVydmFsKTsKKyAgICBzZXR0aW5ncy5zZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbCht
X21pbmltdW1ET01UaW1lckludGVydmFsKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAg
c2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhtX3Nob3VsZERpc3BsYXlTdWJ0aXRs
ZXMpOwogICAgIHNldHRpbmdzLnNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhtX3Nob3VsZERpc3Bs
YXlDYXB0aW9ucyk7CkBAIC01NDQsNyArNTQ0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJu
YWxTZXR0aW5nczo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsSW5TZWMK
IHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURf
QUNDRVNTX0VSUiB9OwotICAgIHNldHRpbmdzKCkuc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwo
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6cmVw
KShpbnRlcnZhbEluU2Vjb25kcyAqIDEwMDApKSk7CisgICAgc2V0dGluZ3MoKS5zZXRNaW5pbXVt
RE9NVGltZXJJbnRlcnZhbChTZWNvbmRzIHsgaW50ZXJ2YWxJblNlY29uZHMgfSk7CiAgICAgcmV0
dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApp
bmRleCA4YTA5Zjk1NGFiZTBhNzAwZDI0MTFiYjk4NTRmZGJhZDY3MWQ5Nzc0Li40ODZjMzA2MzM4
Y2UzYzEzMmFmN2U3ODQ0MWI3NTMzMDY5NjRmMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgbV9vcmlnaW5hbFVzZXNPdmVybGF5U2Nyb2xsYmFyczsKICAgICAgICAgYm9vbCBtX2lt
YWdlc0VuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV9wcmVmZXJNSU1FVHlwZUZvckltYWdlczsKLSAg
ICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX21pbmltdW1UaW1lckludGVydmFsOwor
ICAgICAgICBTZWNvbmRzIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWw7CiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlczsKICAgICAg
ICAgYm9vbCBtX3Nob3VsZERpc3BsYXlDYXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCBjYWRhYjcyZmQyYmM1MmVlYWJlNDYzNGVkNWUzY2JkOWQ2ODQ2YjU1Li5i
NzhmMWRjYjk5ODQ5OTdhY2Y5MGRiMzU3YTM4ZjUzN2EzMGQ4ZmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBFeGNlcHRpb25Pcjxib29s
PiBJbnRlcm5hbHM6OmlzVGltZXJUaHJvdHRsZWQoaW50IHRpbWVvdXRJZCkKICAgICBpZiAodGlt
ZXItPmludGVydmFsQ2xhbXBlZFRvTWluaW11bSgpID4gdGltZXItPm1fb3JpZ2luYWxJbnRlcnZh
bCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZp
cmVUaW1lKDBtcyk7CisgICAgcmV0dXJuICEhdGltZXItPmFsaWduZWRGaXJlVGltZSgwX3MpOwog
fQogCiBib29sIEludGVybmFsczo6aXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsZWQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRl
eCA5YjM1NzA5NmIxZWI5YWE0NmExOGI4NzdkNzEyZTM3ODdmNzM4MzliLi4xNTI0MTVjODIxMDI2
ODA0ZmExYzRmNjBjZDAwNmFiYzhhZjQzNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgV29ya2VyR2xv
YmFsU2NvcGU6OnBvc3RUYXNrKFRhc2smJiB0YXNrKQogCiBpbnQgV29ya2VyR2xvYmFsU2NvcGU6
OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQg
dGltZW91dCkKIHsKLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoKnRoaXMsIFdURk1vdmUo
YWN0aW9uKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyh0aW1lb3V0KSwgdHJ1ZSk7CisgICAg
cmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCp0aGlzLCBXVEZNb3ZlKGFjdGlvbiksIFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIHRydWUpOwogfQogCiB2b2lkIFdvcmtlckdsb2Jh
bFNjb3BlOjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKQEAgLTIxNyw3ICsyMTcsNyBAQCB2
b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKIAogaW50
IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQogewotICAgIHJldHVybiBET01UaW1lcjo6aW5z
dGFsbCgqdGhpcywgV1RGTW92ZShhY3Rpb24pLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHRp
bWVvdXQpLCBmYWxzZSk7CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKCp0aGlzLCBXVEZN
b3ZlKGFjdGlvbiksIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dCksIGZhbHNlKTsK
IH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NjYwNjYwMzE3N2JlODEwZDAwNzBkYTY2NmFlYThj
OGIwZWU4ZTE3Li4zMTc1YmUzNDdkM2ViNjZiMmE4ZmEzNjBkMWFlOTE3MTE0OTNiYzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcApAQCAtNzQ2Nyw3ICs3NDY3LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpk
ZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoX091dF8gZG91YmxlKiBpbnRlcnZhbCkKIHsKICAg
ICBpZiAoIWludGVydmFsKQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwotICAgICppbnRlcnZh
bCA9IERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFsKCkuY291bnQoKSAvIDEwMDAuOwor
ICAgICppbnRlcnZhbCA9IERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFsKCkuc2Vjb25k
cygpOwogICAgIHJldHVybiBTX09LOwogfQogCkBAIC03NDc2LDggKzc0NzYsNyBAQCBIUkVTVUxU
IFdlYlZpZXc6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKICAgICBp
ZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIGF1dG8gaW50ZXJ2YWxN
UyA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6
OnJlcCkoaW50ZXJ2YWwgKiAxMDAwKSk7Ci0gICAgcGFnZSgpLT5zZXR0aW5ncygpLnNldE1pbmlt
dW1ET01UaW1lckludGVydmFsKGludGVydmFsTVMpOworICAgIHBhZ2UoKS0+c2V0dGluZ3MoKS5z
ZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChTZWNvbmRzIHsgaW50ZXJ2YWwgfSk7CiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IDMwOTE1NmIwN2M3Njc4NDFjMzBhZWMwOGExN2MyNWU4ZmU4YWY1OTMuLmRlMzkz
M2Y5ODlkNzZhODIxYmUyNTVlOWE3ZTgxYjQ5Zjk3YWMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1p
dCgpCiAgICAgc3RhdGljIGludCBtYXhpbXVtVGltZXJUaHJvdHRsZVBlclBhZ2VJbk1TID0gMjAw
ICogMTAwOwogCiAgICAgaW50IGxpbWl0SW5NaWxsaXNlY29uZHMgPSBtYXhpbXVtVGltZXJUaHJv
dHRsZVBlclBhZ2VJbk1TICogbV9oaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3Vu
dGVyLnZhbHVlKCk7Ci0gICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpTZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChsaW1pdEluTWlsbGlz
ZWNvbmRzKSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpT
ZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChsaW1pdEluTWlsbGlz
ZWNvbmRzKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlcG9ydFdlYkNvbnRlbnRDUFVU
aW1lKGludDY0X3QgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYwYzkxMjc3NjI3MTQ1YjQ3
MTU5OGZhMjJkNTNjMDJkMDRmNzEwMjAuLjA2ZDI3ODc1ZDgwOWYwZWY0NzcwOTQ5NWU5ODAxNjgy
MjkxYjIzNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMzAzLDkgKzMwMyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVu
dSopOwogCi0gICAgdm9pZCBzZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1p
dChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxpbWl0KQorICAgIHZvaWQgc2V0SGlkZGVuUGFn
ZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoU2Vjb25kcyBsaW1pdCkKICAgICB7Ci0g
ICAgICAgIG1fcGFnZS0+c2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQobGlt
aXQpOworICAgICAgICBtX3BhZ2UtPnNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZUxpbWl0KGxpbWl0KTsKICAgICB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDAxNWYxNjFmYTc3ZDFm
NTBkNDQ5NDMxZjRjZTQyZjFhYWRkMmQ4ZjEuLjE0OGE5MTNjODI4ZjVjNzEyZGI1NjhmYzk3ZmI2
ZDZlODYwN2M5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMTIzNSwxMCArMTIzNSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpbwogICAgIH0KIH0K
IAotdm9pZCBXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VM
aW1pdChpbnQgbWlsbGlzZWNvbmRzKQordm9pZCBXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGZv
ciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgcGFnZS0+c2V0SGlk
ZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyhtaWxsaXNlY29uZHMpKTsKKyAgICAgICAgcGFnZS0+c2V0SGlkZGVuUGFnZURPTVRpbWVy
VGhyb3R0bGluZ0luY3JlYXNlTGltaXQoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhtaWxsaXNl
Y29uZHMpKTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggZWY0ZWQzMDkxNGNiMWQ4Y2QzMGU2NWU2MThkNGZjNjgwYTlk
MjI3MC4uMDFiYWIzYjU0ODAzMWE4NjAwOTNmOTZmYWI4YWZkZjdlZDVkMTZjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKCk7CiAKLSAgICB2b2lkIHNldEhpZGRlblBh
Z2VUaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpOworICAgIHZv
aWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxp
c2Vjb25kcyk7CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYg
aGFuZGxlZCk7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDQwNDFiMWQ5NzZj
OTAyYWFkNTA2NGU3Y2ZlYzc1ZjE3YjZhZDY5MC4uYzM5ZWJmMzgyZDAzMjdlN2MyZWFlM2JhZDFh
MDc4YmExZWFiZjA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzksNyArNzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVE
YXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRT
aW5jZSkgLT4gKCkKICAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
KSAtPiAoKQogCi0gICAgU2V0SGlkZGVuUGFnZVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQo
aW50IG1pbGxpc2Vjb25kcykKKyAgICBTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKQogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQoYm9vbCBmbGFnKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFFPUyhpbnQgbGF0
ZW5jeVFPUywgaW50IHRocm91Z2hwdXRRT1MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>