<?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>215947</bug_id>
          
          <creation_ts>2020-08-28 13:09:46 -0700</creation_ts>
          <short_desc>AudioParam.cancelAndHoldAtTime() is missing</short_desc>
          <delta_ts>2020-09-07 18:35:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</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>https://www.w3.org/TR/webaudio/#dom-audioparam-cancelandholdattime</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1683749</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-28 13:09:46 -0700</bug_when>
    <thetext>AudioParam.cancelAndHoldAtTime() is missing:
- https://www.w3.org/TR/webaudio/#dom-audioparam-cancelandholdattime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685824</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-04 13:10:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/68362061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686278</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-06 17:44:26 -0700</bug_when>
    <thetext>Corresponding Blink patch: https://codereview.chromium.org/1533103002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686294</commentid>
    <comment_count>3</comment_count>
      <attachid>408161</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-06 19:34:36 -0700</bug_when>
    <thetext>Created attachment 408161
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686296</commentid>
    <comment_count>4</comment_count>
      <attachid>408162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-06 19:53:34 -0700</bug_when>
    <thetext>Created attachment 408162
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686402</commentid>
    <comment_count>5</comment_count>
      <attachid>408189</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-07 11:36:17 -0700</bug_when>
    <thetext>Created attachment 408189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686411</commentid>
    <comment_count>6</comment_count>
      <attachid>408189</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-07 11:57:26 -0700</bug_when>
    <thetext>Comment on attachment 408189
Patch

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

r=me assuming tests pass

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:196
&gt; +    size_t i;
&gt; +    // Find the first event at or just past cancelTime.
&gt; +    for (i = 0; i &lt; m_events.size(); ++i) {
&gt; +        if (m_events[i]-&gt;time() &gt; cancelTime)
&gt; +            break;
&gt; +    }

Vector::findMatching does this kind of thing, although it returns notFound instead of size() when not found.

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:217
&gt; +    Optional&lt;UniqueRef&lt;ParamEvent&gt;&gt; newEvent;
&gt; +    Optional&lt;UniqueRef&lt;ParamEvent&gt;&gt; newSetValueEvent;

Normally we’d use unique_ptr instead of Optional&lt;UniqueRef&gt;.

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:376
&gt; +        ParamEvent&amp; event = m_events[i].get();
&gt; +        ParamEvent* nextEvent = i &lt; n - 1 ? &amp;m_events[i + 1].get() : nullptr;

auto&amp;, auto or auto*

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:382
&gt; +        ParamEvent::Type nextEventType = nextEvent ? static_cast&lt;ParamEvent::Type&gt;(nextEvent-&gt;type()) : ParamEvent::LastType /* unknown */;

auto

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:451
&gt; +                {

This is brace style from another project, I think. But not just the new code.

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:605
&gt; +inline float AudioParamTimeline::linearRampAtTime(Seconds t, float value1, Seconds time1, float value2, Seconds time2)

Seems unlikely we have to write &quot;inline&quot; to get inlining here.

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:610
&gt; +inline float AudioParamTimeline::exponentialRampAtTime(Seconds t, float value1, Seconds time1, float value2, Seconds time2)

Ditto.

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.h:84
&gt; +        static UniqueRef&lt;ParamEvent&gt; createSetValueEvent(float value, Seconds time)
&gt; +        {
&gt; +            return makeUniqueRef&lt;ParamEvent&gt;(ParamEvent::SetValue, value, time, 0, Seconds { }, Vector&lt;float&gt; { }, 0, 0, nullptr);
&gt; +        }

Can we put most of the function bodies into the .cpp file instead of the header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686418</commentid>
    <comment_count>7</comment_count>
      <attachid>408189</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-07 12:32:06 -0700</bug_when>
    <thetext>Comment on attachment 408189
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:217
&gt;&gt; +    Optional&lt;UniqueRef&lt;ParamEvent&gt;&gt; newSetValueEvent;
&gt; 
&gt; Normally we’d use unique_ptr instead of Optional&lt;UniqueRef&gt;.

Yes, I wanted that. I could not find a nice way to convert a unique_ptr to a UniqueRef though. How do we do that? Or should I add a function to UniqueRef to construct from a unique_ptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686427</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-07 12:53:15 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 408189 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408189&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:217
&gt; &gt;&gt; +    Optional&lt;UniqueRef&lt;ParamEvent&gt;&gt; newSetValueEvent;
&gt; &gt; 
&gt; &gt; Normally we’d use unique_ptr instead of Optional&lt;UniqueRef&gt;.
&gt; 
&gt; Yes, I wanted that. I could not find a nice way to convert a unique_ptr to a
&gt; UniqueRef though. How do we do that? Or should I add a function to UniqueRef
&gt; to construct from a unique_ptr?

I might be missing something but it seems we can easily go from a UniqueRef to unique_ptr but not the other way around. Seems like a potential hole in our current API?

My proposal would be to add a new static function to UniqueRef&lt;&gt;, e.g.

static UniqueRef fromUniquePtr(unique_ptr p);
With an assertion in there to make sure p is non-null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686435</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-07 14:19:29 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; Comment on attachment 408189 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=408189&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:217
&gt; &gt; &gt;&gt; +    Optional&lt;UniqueRef&lt;ParamEvent&gt;&gt; newSetValueEvent;
&gt; &gt; &gt; 
&gt; &gt; &gt; Normally we’d use unique_ptr instead of Optional&lt;UniqueRef&gt;.
&gt; &gt; 
&gt; &gt; Yes, I wanted that. I could not find a nice way to convert a unique_ptr to a
&gt; &gt; UniqueRef though. How do we do that? Or should I add a function to UniqueRef
&gt; &gt; to construct from a unique_ptr?
&gt; 
&gt; I might be missing something but it seems we can easily go from a UniqueRef
&gt; to unique_ptr but not the other way around. Seems like a potential hole in
&gt; our current API?
&gt; 
&gt; My proposal would be to add a new static function to UniqueRef&lt;&gt;, e.g.
&gt; 
&gt; static UniqueRef fromUniquePtr(unique_ptr p);
&gt; With an assertion in there to make sure p is non-null.

template&lt;typename T&gt;
UniqueRef&lt;T&gt; makeUniqueRefFromNonNullUniquePtr(std::unique_ptr&lt;T&gt; ptr)
{
    static_assert(std::is_same&lt;typename T::webkitFastMalloced, int&gt;::value, &quot;T is FastMalloced&quot;);
    return UniqueRef&lt;T&gt;(*ptr.release());
}

Thoughts?

Although the Optional&lt;UniqueRef&lt;T&gt;&gt; solution in my patch was kind of nice because I did not need moveToUniquePtr() or makeUniqueRefFromNonNullUniquePtr().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686439</commentid>
    <comment_count>10</comment_count>
      <attachid>408197</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-07 14:41:56 -0700</bug_when>
    <thetext>Created attachment 408197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686456</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-07 18:35:18 -0700</bug_when>
    <thetext>Committed r266712: &lt;https://trac.webkit.org/changeset/266712&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408197.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408161</attachid>
            <date>2020-09-06 19:34:36 -0700</date>
            <delta_ts>2020-09-06 19:53:34 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>215947_AudioParam_cancelAndHoldAtTime_wip.patch</filename>
            <type>text/plain</type>
            <size>91614</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1o
b2xkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2Vs
LWFuZC1ob2xkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjliMTVhNTQyNDYyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
MyBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGlu
ZyAibGluZWFyIiAKK1BBU1MgRXhlY3V0aW5nICJleHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGlu
ZyAic2V0VGFyZ2V0IiAKK1BBU1MgRXhlY3V0aW5nICJzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgRXhl
Y3V0aW5nICJzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCIgCitQQVNTIEV4ZWN1dGluZyAiaW5pdGlh
bCBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBMaW5lYXIiIAorUEFT
UyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAi
cG9zdCBjYW5jZWw6IFZhbHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBz
ZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRWYWx1ZSIgCitQQVNT
IEV4ZWN1dGluZyAiY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgImNh
bmNlbCBzZXRUYXJnZXQgbm93IiAKK1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgZnV0dXJlIHNldFZh
bHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdyIgCitQ
QVNTIEV4ZWN1dGluZyAibGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXIiIAor
UEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2xpbmVhcl0gQ2FuY2VsIGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lIAorUEFTUyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5
OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgz
NjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgz
MzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIw
ODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAu
MDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5
OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29u
dGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBl
Y3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdp
dGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTIDwgW2xpbmVhcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxd
IENhbmNlbCBleHBvbmVudGlhbFJhbXBBdFRpbWUgCitQQVNTICAgZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZSgwLjAwMSwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5
MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMz
MzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAx
NDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiww
LjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1Mjkw
MywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjUuOTYw
NWUtOCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIGV4cG9uZW50
aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhl
IGNvbnN0YW50IDAuMDMzOTMyMjIwMTkwNzYzNDc0LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBm
b3IgY2FuY2VsbGluZyBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAwLjUpIGF0IHRpbWUg
MC4yNSBpcyAwLjAzMzkzMjIxNjQ2NTQ3MzE3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDE4
NjY0LiAKK1BBU1MgPCBbZXhwb25lbnRpYWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFRhcmdldF0gQ2FuY2VsIHNldFRhcmdldEF0VGlt
ZSAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgdXAgdG8gdGltZSAwLjI1
IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYy
NTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUs
MC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1
NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMw
MDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2
NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7
ImFic29sdXRlVGhyZXNob2xkIjo0LjUyNjdlLTcsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQ
QVNTICAgQ2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAw
LjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDA4MjI2MzIxMDc4ODM2OTE4LiAKK0ZB
SUwgWCBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4w
MSwgMC4wNSkgYXQgdGltZSAwLjI1IGlzIG5vdCBjbG9zZSB0byAwLjAwODIyOTc0NzQxNDU4ODky
OCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA0LjUyNjdlLTcgKFJlbEVycj0wLjAwMDQxNjMz
NTQ2OTI5MjM0NTE2KS4gR290IDAuMDA4MjI2MzIxMDc4ODM2OTE4LiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbc2V0VGFyZ2V0XSAxIG91dCBvZiAzIGFzc2Vy
dGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyA+IFtzZXRWYWx1ZUN1cnZlXSBDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSAKK1BBU1Mg
ICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjQ5KSB1cCB0byB0aW1lIDAuMjUg
ZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1
MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSww
LjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1
OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAw
NzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0
OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2Fu
Y2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjQ5KSBhdCB0aW1lIDAu
MjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1Mg
ICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBd
LCAwLjAxLCAwLjQ5KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwODE2MzI2NTMgd2l0aGluIGFu
IGVycm9yIG9mIDkuNTM2OGUtOS4gCitQQVNTIDwgW3NldFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFZhbHVlQ3VydmUg
YWZ0ZXIgZW5kXSBDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSBhZnRlciB0aGUgZW5kIAorUEFT
UyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuMTE0OTk5OTk5OTk5OTk5OTkp
IHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2
NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEw
NDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMs
MC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1
MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5
MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEs
IDAuMTE0OTk5OTk5OTk5OTk5OTkpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25z
dGFudCAwLiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRWYWx1ZUN1
cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5KSBhdCB0aW1lIDAuMjUg
aXMgMCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTIDwgW3NldFZhbHVlQ3VydmUgYWZ0ZXIg
ZW5kXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+
IFtpbml0aWFsIHNldFRhcmdldF0gQ2FuY2VsIHdpdGggaW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUg
CitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAuMSkgdXAgdG8gdGltZSAwLjI1IGVx
dWFscyBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDAxMjMyLCJyZWxh
dGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VGFyZ2V0QXRUaW1lKDAs
IDAuMDEsIDAuMSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDkw
Njk4Nzc4NjI5MzAyOTguIAorRkFJTCBYIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNl
dFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIGF0IHRpbWUgMC4yNSBpcyBub3QgY2xvc2UgdG8g
MC4wOTA3MTc5NTY0MjM3NTk0NiB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiAwLjAwMDAwMTIz
MiAoUmVsRXJyPTAuMDAwMjExNDAwMjAzNTgxNTE2OTUpLiBHb3QgMC4wOTA2OTg3Nzg2MjkzMDI5
OC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgW2luaXRpYWwg
c2V0VGFyZ2V0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3N0IGNhbmNlbDogTGluZWFyXSBM
aW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcgCitQQVNTICAgUG9zdCBjYW5jZWxsYXRpb24gbGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGlt
ZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgs
MC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5Nzcx
MDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2
NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkx
NjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAy
OTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVk
IHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIw
NDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0
IGxpbmVhclJhbXAoMiwgMC4zNzUpIGVxdWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwNDUy
Mzg5NzE3MTAyLDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDk0ODk1NjAxMjcyNTgsMC41MTExOTcy
Njg5NjI4NjAxLDAuNTExNDQ1NTgxOTEyOTk0NCwwLjUxMTY5Mzg5NDg2MzEyODcsMC41MTE5NDIx
NDgyMDg2MTgyLDAuNTEyMTkwNDYxMTU4NzUyNCwwLjUxMjQzODc3NDEwODg4NjcsMC41MTI2ODcw
ODcwNTkwMjEsMC41MTI5MzUzNDA0MDQ1MTA1LDAuNTEzMTgzNjUzMzU0NjQ0OCwwLjUxMzQzMTk2
NjMwNDc3OSwwLjUxMzY4MDI3OTI1NDkxMzMsMC41MTM5Mjg1OTIyMDUwNDc2Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5jZWw6IExpbmVhcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BBU1MgPiBbcG9zdCBjYW5jZWw6
IEV4cG9uZW50aWFsXSBFeHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKK1BBU1MgICBQ
b3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1
ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSww
LjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYy
Nzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMy
NDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMz
MzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3
MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVs
ZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBl
eHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0
IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2Nzgu
IAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIGV4cG9u
ZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGlt
ZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5
OTguIAorUEFTUyAgIFBvc3QgZXhwb25lbnRpYWxSYW1wKDIsIDAuMzc1KSBlcXVhbHMgWzAuNTEw
MjA0MDc2NzY2OTY3OCwwLjUxMDMyMDI0NjIxOTYzNSwwLjUxMDQzNjQxNTY3MjMwMjIsMC41MTA1
NTI2NDQ3Mjk2MTQzLDAuNTEwNjY4ODczNzg2OTI2MywwLjUxMDc4NTE2MjQ0ODg4MzEsMC41MTA5
MDE0NTExMTA4Mzk4LDAuNTExMDE3Nzk5Mzc3NDQxNCwwLjUxMTEzNDE0NzY0NDA0MywwLjUxMTI1
MDU1NTUxNTI4OTMsMC41MTEzNjY5NjMzODY1MzU2LDAuNTExNDgzMzcxMjU3NzgyLDAuNTExNTk5
ODM4NzMzNjczMSwwLjUxMTcxNjMwNjIwOTU2NDIsMC41MTE4MzI4MzMyOTAxMDAxLDAuNTExOTQ5
MzYwMzcwNjM2Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5j
ZWw6IEV4cG9uZW50aWFsXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlv
bnMpIAorUEFTUyA+IFtwb3N0IGNhbmNlbDogVmFsdWVDdXJ2ZV0gIAorUEFTUyAgIFBvc3QgY2Fu
Y2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8g
dGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEz
OTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5
NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2
NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAy
MjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4Nyww
LjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hv
bGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRp
bWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFt
cFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhp
biBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRWYWx1ZUN1cnZlKFsw
LjEyNSwyXSwgMC4zNzUsIDAuMTI1KSBlcXVhbHMgWzAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OC4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAw
MDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtwb3N0IGNhbmNlbDogVmFs
dWVDdXJ2ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbcG9zdCBjYW5jZWw6IHNldFRhcmdldF0gIAorUEFTUyAgIFBvc3QgY2FuY2VsIHNldFRh
cmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1
YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAw
MDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAx
MjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIs
MC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2
ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4
MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFT
UyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUx
MDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBv
c3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0
aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4
Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRUYXJnZXRBdFRpbWUoMC4xMjUsIDAuMzc1LCAwLjEpIGVx
dWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMTIzODQ4OTE1MTAwMSwwLjUxMDA0MzYyMTA2
MzIzMjQsMC41MDk5NjMzOTMyMTEzNjQ3LDAuNTA5ODgzMjI0OTY0MTQxOCwwLjUwOTgwMzA1Njcx
NjkxOSwwLjUwOTcyMjg4ODQ2OTY5NiwwLjUwOTY0MjcyMDIyMjQ3MzEsMC41MDk1NjI2MTE1Nzk4
OTUsMC41MDk0ODI1MDI5MzczMTY5LDAuNTA5NDAyMzk0Mjk0NzM4OCwwLjUwOTMyMjM0NTI1Njgw
NTQsMC41MDkyNDIyOTYyMTg4NzIxLDAuNTA5MTYyMjQ3MTgwOTM4NywwLjUwOTA4MjE5ODE0MzAw
NTQsMC41MDkwMDIyMDg3MDk3MTY4Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODQwMzcsInJlbGF0aXZlVGhyZXNob2xkIjow
fS4gCitQQVNTIDwgW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZV0g
IAorUEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgw
LCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAw
NDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2
LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0
MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMz
OTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgz
MzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJl
bGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRW
YWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBlY3Rl
ZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdp
dGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRWYWx1ZUF0VGlt
ZSgwLjEyNSwgMC4zNzUpIGVxdWFscyBbMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4x
MjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUs
MC4xMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtwb3N0IGNhbmNlbDog
c2V0VmFsdWVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGlu
ZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMC41LiAKK1BBU1MgPCBbY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2NhbmNlbCBzZXRUYXJnZXQg
bm93XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBzZXRUYXJnZXQgZXZlbnQgc3RhcnRpbmcg
bm93LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgPCBbY2Fu
Y2VsIHNldFRhcmdldCBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykgCitQQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZV0gIAorUEFTUyAgIEFm
dGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91dHB1dCBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwgZnV0dXJlIHNldFZhbHVl
Q3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNT
ID4gW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vd10gIAorUEFTUyAgIEFmdGVyIGNhbmNlbGxpbmcg
Y3VycmVudCBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0IGNvbnRhaW5z
IG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5v
d10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
bGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIFNjaGVkdWxlcyAzIGxpbmVh
ciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sIHNvIHRoYXQgd2UgZW5kIHVwIHdpdGggMiBj
YW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlciAKK0ZBSUwgWCAxc3QgbGluZWFyUmFtcDog
bGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3QgZXF1YWwg
WzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkz
MTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAw
MDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAx
ODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSww
LjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4
NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJCUV4
cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzcxNV0JOS45MDAw
ODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVl
LTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs3NTZdCTku
ODgyNjUzMzU1NTk4NDQ5N2UtMQk5Ljg4MjY1Mjc1OTU1MjAwMjBlLTEJNS45NjA0NjQ0Nzc1Mzkw
NjI1ZS04CTYuMDMxMjM5NDA3NjM1NzkwN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMTEw
MF0JOS43MzYzOTQ4ODIyMDIxNDg0ZS0xCTkuNzM2Mzk0Mjg2MTU1NzAwN2UtMQk1Ljk2MDQ2NDQ3
NzUzOTA2MjVlLTgJNi4xMjE4Mzk2NjkxNDE1MDE1ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAor
CVsxMjIzXQk5LjY4NDA5ODk1ODk2OTExNjJlLTEJOS42ODQwOTgzNjI5MjI2Njg1ZS0xCTUuOTYw
NDY0NDc3NTM5MDYyNWUtOAk2LjE1NDg5ODczNjIyMDc5NzRlLTgJMC4wMDAwMDAwMDAwMDAwMDAw
ZSswCisJWzEyNDVdCTkuNjc0NzQ1MjAyMDY0NTE0MmUtMQk5LjY3NDc0NDYwNjAxODA2NjRlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTYwODQ5NDI4MzQ3MTAzNGUtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwkuLi5hbmQgMTEyNSBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45
NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0IGluZGV4IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4x
NjgwNTYzMjI3NDE0Mzc2ZS03IGF0IGluZGV4IG9mIDExOTk4LgorCVsxMTk5OF0JNS4xMDI4OTE5
MjE5OTcwNzAzZS0xCTUuMTAyODkxMzI1OTUwNjIyNmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJ
MS4xNjgwNTYzMjI3NDE0Mzc2ZS03CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIENhbmNlbGxpbmcgMXN0IGxpbmVhclJh
bXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
YXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4g
CitQQVNTICAgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBlcXVhbHMgWzAuNTEwMjA0MDc2NzY2OTY3
OCwwLjUxMDMyODIzMzI0MjAzNDksMC41MTA0NTIzODk3MTcxMDIsMC41MTA1NzY1NDYxOTIxNjky
LDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDgyNDc5OTUzNzY1ODcsMC41MTA5NDg5NTYwMTI3MjU4
LDAuNTExMDczMTEyNDg3NzkzLDAuNTExMTk3MjY4OTYyODYwMSwwLjUxMTMyMTQyNTQzNzkyNzIs
MC41MTE0NDU1ODE5MTI5OTQ0LDAuNTExNTY5NzM4Mzg4MDYxNSwwLjUxMTY5Mzg5NDg2MzEyODcs
MC41MTE4MTgwNTEzMzgxOTU4LDAuNTExOTQyMTQ4MjA4NjE4MiwwLjUxMjA2NjMwNDY4MzY4NTMu
Li5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgMm5kIGxpbmVh
clJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEu
MjU1MTAyMDM4MzgzNDgzOS4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcg
Mm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGlzIDEuMjU1MTAyMDM4MzgzNDgz
OSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTICAgM3JkIGxpbmVhclJhbXAoMCwgMC41KSBl
cXVhbHMgWzEuMjU1MTAyMDM4MzgzNDgzOSwxLjI1NDg5MjgyNjA4MDMyMjMsMS4yNTQ2ODM2MTM3
NzcxNjA2LDEuMjU0NDc0NTIwNjgzMjg4NiwxLjI1NDI2NTMwODM4MDEyNywxLjI1NDA1NjA5NjA3
Njk2NTMsMS4yNTM4NDY4ODM3NzM4MDM3LDEuMjUzNjM3NzkwNjc5OTMxNiwxLjI1MzQyODU3ODM3
Njc3LDEuMjUzMjE5MzY2MDczNjA4NCwxLjI1MzAxMDE1Mzc3MDQ0NjgsMS4yNTI4MDEwNjA2NzY1
NzQ3LDEuMjUyNTkxODQ4MzczNDEzLDEuMjUyMzgyNjM2MDcwMjUxNSwxLjI1MjE3MzQyMzc2NzA4
OTgsMS4yNTE5NjQzMzA2NzMyMTc4Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwg
PCBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIDEgb3V0IG9mIDcgYXNz
ZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDMgb3V0IG9mIDE2IHRhc2tzIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYTZhMGZmMTMwZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1h
bmQtaG9sZC5odG1sCkBAIC0wLDAgKzEsODIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IENhbmNlbFZhbHVlc0FuZEhvbGRBdFRp
bWUKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby1wYXJhbS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVS
YXRlID0gNDgwMDA7CisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSAwLjU7CisKKyAgICAgIGxl
dCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gVGhlIGZpcnN0
IGZldyB0YXNrcyB0ZXN0IHRoZSBjYW5jZWxsYXRpb24gb2YgZWFjaCByZWxldmFudCBhdXRvbWF0
aW9uCisgICAgICAvLyBmdW5jdGlvbi4gIEZvciB0aGUgdGVzdCwgYSBzaW1wbGUgbGluZWFyIHJh
bXAgZnJvbSAwIHRvIDEgaXMgdXNlZCB0bworICAgICAgLy8gc3RhcnQgdGhpbmdzIG9mZi4gIFRo
ZW4gdGhlIGF1dG9tYXRpb24gdG8gYmUgdGVzdGVkIGlzIHNjaGVkdWxlZCBhbmQKKyAgICAgIC8v
IGNhbmNlbGxlZC4KKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ2xp
bmVhcicsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJ30sCisg
ICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICBjYW5jZWxUZXN0
KHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksIHsKKyAg
ICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwKKyAgICAgICAgICAgICAgY3Vy
dmVUaHJlc2hvbGQ6IDguMzk5OGUtNQorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmlu
ZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAg
ICB7bGFiZWw6ICdleHBvbmVudGlhbCcsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGV4cG9uZW50aWFs
UmFtcEF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAg
ICAgICAgLy8gQ2FuY2VsIGFuIGV4cG9uZW50aWFsIHJhbXAuICBUaGUgdGhyZXNob2xkcyBhcmUg
ZXhwZXJpbWVudGFsbHkKKyAgICAgICAgICAgIC8vIGRldGVybWluZWQuCisgICAgICAgICAgICBj
YW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAg
ICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0u
Z2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZh
bHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVh
ciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0
aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAgdG8gdGhlIGVuZC4K
KyAgICAgICAgICAgICAgLy8gKFRoaXMgaXMgdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBiZSBjYW5j
ZWxsZWQuKQorICAgICAgICAgICAgICBsZXQgdjEgPSAwLjAwMTsKKyAgICAgICAgICAgICAgbGV0
IHQxID0gcmVuZGVyRHVyYXRpb247CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLmV4
cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKworICAgICAgICAgICAgICBleHBl
Y3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAgICB2MCAqIE1hdGgu
cG93KHYxIC8gdjAsIChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKSk7CisgICAgICAgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRD
b25zdGFudCwKKyAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ2V4cG9uZW50aWFsUmFtcFRv
VmFsdWUoJyArIHYxICsgJywgJyArIHQxICsgJyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6
ICdleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDEuODY2NGUtNiwKKyAg
ICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDUuOTYwNWUtOAorICAgICAgICAgICAgfSkudGhl
bih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgKKyAgICAgICAgICB7bGFiZWw6ICdzZXRUYXJnZXQnLCBkZXNjcmlwdGlvbjogJ0NhbmNl
bCBzZXRUYXJnZXRBdFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsK
KyAgICAgICAgICAgIC8vIENhbmNlbCBhIHNldFRhcmdldCBldmVudC4KKyAgICAgICAgICAgIGNh
bmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAg
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAgICAgICAgZ1swXS5n
YWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFs
dWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFy
IHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAgIC8vIEF0IHRoZSBl
bmQgb2YgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFRhcmdldC4gIChUaGlzIGlzCisg
ICAgICAgICAgICAgIC8vIHRoZSBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikKKyAgICAg
ICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IHQxID0gdDA7CisgICAgICAg
ICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAwLjA1OworCisgICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRUYXJnZXRBdFRpbWUodjEsIHQxLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBn
WzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MSwgdGltZUNvbnN0YW50KTsKKworICAgICAg
ICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAg
ICB2MSArICh2MCAtIHYxKSAqIE1hdGguZXhwKC0oY2FuY2VsVGltZSAtIHQwKSAvIHRpbWVDb25z
dGFudCkpOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVk
Q29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6
ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsgJywgJyArIHQxICsgJywgJyArCisgICAgICAgICAg
ICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKKyAgICAgICAgICAgICAgICBzdW1tYXJ5OiAn
c2V0VGFyZ2V0QXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDQuNTI2N2UtNywgIC8vIDEuMTMxN2UtNywKKyAg
ICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDQuNTI2N2UtNworICAgICAgICAgICAgfSkudGhl
bih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgKKyAgICAgICAgICB7bGFiZWw6ICdzZXRWYWx1ZUN1cnZlJywgZGVzY3JpcHRpb246ICdD
YW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNo
b3VsZCkgeworICAgICAgICAgICAgLy8gQ2FuY2VsIGEgc2V0VmFsdWVDdXJ2ZSBldmVudC4KKyAg
ICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRp
bWUpIHsKKyAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAg
ICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFd
LmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEg
c2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1sw
XS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdb
MV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAg
IC8vIEFmdGVyIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRWYWx1ZXNDdXJ2ZS4gKFRo
aXMgaXMgdGhlCisgICAgICAgICAgICAgIC8vIGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5jZWxsZWQu
KQorICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgZHVyYXRpb24g
PSByZW5kZXJEdXJhdGlvbiAtIHQwOworCisgICAgICAgICAgICAgIC8vIEZvciBzaW1wbGljaXR5
LCBhIDItcG9pbnQgY3VydmUgc28gd2UgZ2V0IGEgbGluZWFyIGludGVycG9sYXRlZAorICAgICAg
ICAgICAgICAvLyByZXN1bHQuCisgICAgICAgICAgICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJh
eS5mcm9tKFt2MCwgMF0pOworCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUN1cnZl
QXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0
VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKworICAgICAgICAgICAgICBs
ZXQgaW5kZXggPQorICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigoY3VydmUubGVuZ3RoIC0g
MSkgLyBkdXJhdGlvbiAqIChjYW5jZWxUaW1lIC0gdDApKTsKKworICAgICAgICAgICAgICBsZXQg
Y3VydmVQb2ludHNQZXJGcmFtZSA9CisgICAgICAgICAgICAgICAgICAoY3VydmUubGVuZ3RoIC0g
MSkgLyBkdXJhdGlvbiAvIHNhbXBsZVJhdGU7CisgICAgICAgICAgICAgIGxldCB2aXJ0dWFsSW5k
ZXggPQorICAgICAgICAgICAgICAgICAgKGNhbmNlbFRpbWUgLSB0MCkgKiBzYW1wbGVSYXRlICog
Y3VydmVQb2ludHNQZXJGcmFtZTsKKworICAgICAgICAgICAgICBsZXQgZGVsdGEgPSB2aXJ0dWFs
SW5kZXggLSBpbmRleDsKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IGN1cnZlWzBd
ICsgKGN1cnZlWzFdIC0gY3VydmVbMF0pICogZGVsdGE7CisgICAgICAgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAg
ICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFZhbHVlQ3VydmVBdFRpbWUoWycgKyBjdXJ2
ZSArICddLCAnICsgdDAgKworICAgICAgICAgICAgICAgICAgICAnLCAnICsgZHVyYXRpb24gKyAn
KScsCisgICAgICAgICAgICAgICAgc3VtbWFyeTogJ3NldFZhbHVlQ3VydmVBdFRpbWUnLAorICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVz
aG9sZDogOS41MzY4ZS05LAorICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMAorICAgICAg
ICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3NldFZh
bHVlQ3VydmUgYWZ0ZXIgZW5kJywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHNl
dFZhbHVlQ3VydmVBdFRpbWUgYWZ0ZXIgdGhlIGVuZCcKKyAgICAgICAgICB9LAorICAgICAgICAg
IGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQs
IGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2VsVGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0
aWFsaXplIHZhbHVlcyB0byAwLgorICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRp
bWUoMCwgMCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsK
KyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0
aGluZ3Mgb2ZmLgorICAgICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRp
bWUodjAsIHQwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lKHYwLCB0MCk7CisKKyAgICAgICAgICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBz
Y2hlZHVsZSBhIHNldFZhbHVlc0N1cnZlLiAoVGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgLy8g
ZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNlbGxlZC4pICBNYWtlIHN1cmUgdGhlIGN1cnZlIGVuZHMg
YmVmb3JlCisgICAgICAgICAgICAgIC8vIHRoZSBjYW5jZWxsYXRpb24gdGltZS4KKyAgICAgICAg
ICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gY2FuY2VsVGlt
ZSAtIHQwIC0gMC4xMjU7CisKKyAgICAgICAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIGEgMi1w
b2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5lYXIgaW50ZXJwb2xhdGVkCisgICAgICAgICAgICAg
IC8vIHJlc3VsdC4KKyAgICAgICAgICAgICAgbGV0IGN1cnZlID0gRmxvYXQzMkFycmF5LmZyb20o
W3YwLCAwXSk7CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUo
Y3VydmUsIHQwLCBkdXJhdGlvbik7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUN1
cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworCisgICAgICAgICAgICAgIGV4cGVjdGVk
Q29uc3RhbnQgPSBjdXJ2ZVsxXTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAg
IGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2ZUF0VGltZShbJyArIGN1cnZlICsgJ10sICcgKyB0
MCArCisgICAgICAgICAgICAgICAgICAgICcsICcgKyBkdXJhdGlvbiArICcpJywKKyAgICAgICAg
ICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVDdXJ2ZUF0VGltZScsCisgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiAwLAorICAg
ICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMAorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRv
bmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFNwZWNpYWwgY2FzZSB3
aGVyZSB3ZSBzY2hlZHVsZSBhIHNldFRhcmdldCBhbmQgdGhlcmUgaXMgbm8gZWFybGllcgorICAg
ICAgLy8gYXV0b21hdGlvbiBldmVudC4gIFRoaXMgdGVzdHMgdGhhdCB3ZSBwaWNrIHVwIHRoZSBz
dGFydGluZyBwb2ludAorICAgICAgLy8gY29ycmVjdGx5IGZyb20gdGhlIGxhc3Qgc2V0dGluZyBv
ZiB0aGUgQXVkaW9QYXJhbSB2YWx1ZSBhdHRyaWJ1dGUuCisKKworICAgICAgYXVkaXQuZGVmaW5l
KAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAnaW5pdGlhbCBzZXRUYXJnZXQnLAor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDYW5jZWwgd2l0aCBpbml0aWFsIHNldFRhcmdldEF0
VGltZScKKyAgICAgICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewor
ICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2Vs
VGltZSkgeworICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgdGlt
ZUNvbnN0YW50ID0gMC4xOworICAgICAgICAgICAgICBnWzBdLmdhaW4udmFsdWUgPSAxOworICAg
ICAgICAgICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50
KTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnZhbHVlID0gMTsKKyAgICAgICAgICAgICAgZ1sx
XS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDAsIHRpbWVDb25zdGFudCk7CisKKyAgICAgICAg
ICAgICAgbGV0IGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKKyAgICAgICAgICAgICAg
ICAgIHYxICsgKHYwIC0gdjEpICogTWF0aC5leHAoLShjYW5jZWxUaW1lIC0gdDApIC8gdGltZUNv
bnN0YW50KSk7CisKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBleHBl
Y3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAgIGF1dG9NZXNz
YWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MSArICcsICcgKyB0MCArICcsICcgKworICAgICAg
ICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAgICAgICAgc3VtbWFy
eTogJ0luaXRpYWwgc2V0VGFyZ2V0QXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDEuMjMyMGUtNiwKKyAgICAg
ICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDEuMjMyMGUtNgorICAgICAgICAgICAgfSkudGhlbih0
YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFRlc3QgYXV0
b21hdGlvbnMgc2NoZWR1bGVkIGFmdGVyIHRoZSBjYWxsIHRvIGNhbmNlbEFuZEhvbGRBdFRpbWUu
CisgICAgICAvLyBWZXJ5IHNpbWlsYXIgdG8gdGhlIGFib3ZlIHRlc3RzLCBidXQgd2UgYWxzbyBz
Y2hlZHVsZSBhbiBldmVudCBhZnRlcgorICAgICAgLy8gY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQg
dmVyaWZ5IHRoYXQgY3VydmUgYWZ0ZXIgY2FuY2VsbGF0aW9uIGhhcworICAgICAgLy8gdGhlIGNv
cnJlY3QgdmFsdWVzLgorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAg
ICAgICAgbGFiZWw6ICdwb3N0IGNhbmNlbDogTGluZWFyJywKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAnTGluZWFyUmFtcCBhZnRlciBjYW5jZWxsaW5nJworICAgICAgICAgIH0sCisgICAgICAg
ICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBSdW4gdGhlIGNhbmNl
bCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUKKyAgICAgICAgICAg
IC8vIGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVsZSBhbm90aGVyIGxpbmVhciByYW1wIGFmdGVyIHRo
ZQorICAgICAgICAgICAgLy8gY2FuY2VsbGF0aW9uLgorICAgICAgICAgICAgY2FuY2VsVGVzdCgK
KyAgICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAgbGluZWFyUmFtcFRlc3Qo
J1Bvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksCisgICAgICAgICAg
ICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThl
LTV9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29u
c3RhbnQpIHsKKyAgICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBsaW5lYXIgcmFtcCBv
biBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yIGdbMl0sCisgICAgICAgICAgICAgICAgICAvLyB1
c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAg
ICAgICAgICAgICAgIGxldCB2MiA9IDI7CisgICAgICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5j
ZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRv
VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1
ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgICAg
IGdbMl0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5j
ZWxUaW1lLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBsaW5lYXJSYW1wKCcg
KyB2MiArICcsICcgKyB0MiArICcpJworICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAg
ICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHsKKyAgICAgICAg
ICAgIGxhYmVsOiAncG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsJywKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uOiAnRXhwb25lbnRpYWxSYW1wIGFmdGVyIGNhbmNlbGxpbmcnCisgICAgICAgICAgfSwK
KyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIC8vIFJ1biB0
aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZQorICAg
ICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAg
YWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBjYW5jZWxsYXRpb24uCisgICAgICAgICAgICBjYW5j
ZWxUZXN0KAorICAgICAgICAgICAgICAgIHNob3VsZCwKKyAgICAgICAgICAgICAgICBsaW5lYXJS
YW1wVGVzdCgnUG9zdCBjYW5jZWwgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScpLAorICAg
ICAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDog
OC4zOTk4ZS01fSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBl
Y3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25l
bnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAgICAgICAg
ICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25z
dGFudC4KKyAgICAgICAgICAgICAgICAgIGxldCB2MiA9IDI7CisgICAgICAgICAgICAgICAgICBs
ZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgICAgICBnWzBdLmdhaW4u
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICAgICAg
Z1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOwor
ICAgICAgICAgICAgICAgICAgZ1syXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUo
djIsIHQyKTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZTogJ1Bvc3QgZXhwb25lbnRpYWxSYW1wKCcgKyB2MiArICcsICcgKyB0MiArICcpJworICAgICAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdwb3N0IGNhbmNlbDogVmFsdWVDdXJ2ZScsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewor
ICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUg
ZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VmFs
dWVDdXJ2ZSBhZnRlciB0aGUgY2FuY2VsbGF0aW9uLgorICAgICAgICBjYW5jZWxUZXN0KAorICAg
ICAgICAgICAgc2hvdWxkLCBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2
ZUF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZl
VGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGlt
ZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhw
b25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAgICAg
IC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0
YW50LgorICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAg
ICAgICAgIGxldCBkdXJhdGlvbiA9IDAuMTI1OworICAgICAgICAgICAgICBsZXQgY3VydmUgPSBG
bG9hdDMyQXJyYXkuZnJvbShbLjEyNSwgMl0pOworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0
VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1sy
XS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAg
ICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0
aW9uKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVu
ZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFs
dWVDdXJ2ZShbJyArIGN1cnZlICsgJ10sICcgKyB0MiArICcsICcgKworICAgICAgICAgICAgICAg
ICAgICBkdXJhdGlvbiArICcpJywKKyAgICAgICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC4z
OTk4ZS01CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRo
ZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmlu
ZSgncG9zdCBjYW5jZWw6IHNldFRhcmdldCcsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAg
ICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZl
bnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0
IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAg
ICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWUnKSwK
KyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDog
OC4zOTk4ZS01fSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVk
Q29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJh
bXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgorICAgICAgICAgICAgICAvLyBnWzJdLCB1
c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAg
ICAgICAgICAgbGV0IHYyID0gMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRp
bWUgKyAwLjEyNTsKKyAgICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMTsKKyAgICAg
ICAgICAgICAgZ1swXS5nYWluLnNldFRhcmdldEF0VGltZSh2MiwgdDIsIHRpbWVDb25zdGFudCk7
CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50
LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFRhcmdldEF0VGltZSh2
MiwgdDIsIHRpbWVDb25zdGFudCk7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lICsgMC4xMjUsCisgICAgICAgICAgICAg
ICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MiArICcsICcgKyB0MiArICcs
ICcgKworICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAg
ICAgICAgZXJyb3JUaHJlc2hvbGQ6IDguNDAzN2UtNQorICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAg
IH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZScsIGZ1bmN0
aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5n
IGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBU
aGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAg
IGNhbmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNh
bmNlbCBzZXRWYWx1ZUF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5
OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgZnVuY3Rpb24o
ZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAvLyBTY2hl
ZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisg
ICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBl
eHBlY3RlZENvbnN0YW50LgorICAgICAgICAgICAgICBsZXQgdjIgPSAwLjEyNTsKKyAgICAgICAg
ICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAgICBnWzBdLmdh
aW4uc2V0VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZh
bHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAgICAgICAgICAgICBn
WzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUgKyAwLjEyNSwKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBzZXRWYWx1ZUF0VGltZSgnICsgdjIgKyAnLCAn
ICsgdDIgKyAnKScKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQu
ZGVmaW5lKCdjYW5jZWwgZnV0dXJlIHNldFRhcmdldCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAg
ICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBj
b25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMu
Y29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZh
bHVlQXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAs
IDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAgICAgLy8gTm93IGNhbmNlbCB0aGUg
ZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNyYy5vZmZzZXQuY2FuY2VsQW5kSG9s
ZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7Cisg
ICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oYnVmZmVy
ID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5jZWxsZWQs
IHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAgICAgLy8gY29uc3RhbnQuCisgICAg
ICAgICAgICAgIHNob3VsZChhY3R1YWwsICdBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRUYXJn
ZXQgZXZlbnQsIG91dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2Yo
MC41KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0
YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VGFyZ2V0
IG5vdycsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAg
ICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBs
ZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3Vy
Y2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDAuNSwgMCk7CisgICAgICAg
IHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAsIDAuNSAqIHJlbmRlckR1cmF0aW9uLCAwLjEp
OworICAgICAgICAvLyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAg
ICAgICAgc3JjLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9u
KTsKKworICAgICAgICBzcmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmlu
ZygpCisgICAgICAgICAgICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0
dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNl
IHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAg
ICAgICAgICAgICAvLyBjb25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAg
ICAgICAgICAgYWN0dWFsLAorICAgICAgICAgICAgICAgICAgJ0FmdGVyIGNhbmNlbGxpbmcgc2V0
VGFyZ2V0IGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5i
ZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUo
J2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25z
dCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVl
QXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVDdXJ2ZUF0VGltZShb
LTEsIDFdLCAwLjc1ICogcmVuZGVyRHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8vIE5vdyBjYW5j
ZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zmc2V0LmNhbmNl
bEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRpb24pOworCisgICAgICAgIHNyYy5zdGFy
dCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVu
KGJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5l
bERhdGEoMCk7CisgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2Fu
Y2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCisgICAgICAgICAgICAgIC8vIGNvbnN0YW50
LgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBhY3R1YWwsICdBZnRl
ciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlIGV2ZW50LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgnY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93JywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVk
aW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Cisg
ICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7CisgICAg
ICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5vZmZz
ZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUN1
cnZlQXRUaW1lKFstMSwgMV0sIDAuNSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAgICAgICAv
LyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAgc3JjLm9m
ZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAg
ICBzcmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAg
ICAgICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJn
ZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAgICAgICAv
LyBjb25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgYWN0
dWFsLAorICAgICAgICAgICAgICAgICAgJ0FmdGVyIGNhbmNlbGxpbmcgY3VycmVudCBzZXRWYWx1
ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5i
ZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUo
CisgICAgICAgIHsKKyAgICAgICAgICBsYWJlbDogJ2xpbmVhciwgY2FuY2VsLCBsaW5lYXIsIGNh
bmNlbCwgbGluZWFyJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlcyAzIGxpbmVh
ciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sICcKKyAgICAgICAgICAgICsgJ3NvIHRoYXQg
d2UgZW5kIHVwIHdpdGggMiBjYW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlcicKKyAgICAg
ICAgfSwKKyAgICAgICAgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAgIGNhbmNlbFRlc3Qy
KAorICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAgICAgbGluZWFyUmFtcFRlc3QoJzFzdCBs
aW5lYXJSYW1wJyksCisgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDAsIGN1cnZlVGhyZXNo
b2xkOiAwfSwKKyAgICAgICAgICAgIChnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lMikgPT4geworICAgICAgICAgICAgICAvLyBSYW1wIGZyb20gZmlyc3QgY2FuY2Vs
IHRpbWUgdG8gdGhlIGVuZCB3aWxsIGJlIGNhbmNlbGxlZCBhdAorICAgICAgICAgICAgICAvLyBz
ZWNvbmQgY2FuY2VsIHRpbWUuCisgICAgICAgICAgICAgIGNvbnN0IHYxID0gZXhwZWN0ZWRDb25z
dGFudDsKKyAgICAgICAgICAgICAgY29uc3QgdDEgPSBjYW5jZWxUaW1lOworICAgICAgICAgICAg
ICBjb25zdCB2MiA9IDI7CisgICAgICAgICAgICAgIGNvbnN0IHQyID0gcmVuZGVyRHVyYXRpb247
CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIp
OworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjEsIHQxKTsKKyAgICAg
ICAgICAgICAgZ1syXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisKKyAg
ICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRDb25zdGFudDIgPQorICAgICAgICAgICAgICAgIGF1
ZGlvUGFyYW1MaW5lYXJSYW1wKGNhbmNlbFRpbWUyLCB2MSwgdDEsIHYyLCB0Mik7CisKKyAgICAg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNl
bFRpbWUsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogYDJuZCBsaW5lYXJSYW1wKCR7djJ9LCAk
e3QyfSlgLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQyCisgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgKGcsIGNhbmNlbFRpbWUyLCBleHBlY3Rl
ZENvbnN0YW50MikgPT4geworICAgICAgICAgICAgICAvLyBSYW1wIGZyb20gc2Vjb25kIGNhbmNl
bCB0aW1lIHRvIHRoZSBlbmQuCisgICAgICAgICAgICAgIGNvbnN0IHYzID0gMDsKKyAgICAgICAg
ICAgICAgY29uc3QgdDMgPSByZW5kZXJEdXJhdGlvbjsKKyAgICAgICAgICAgICAgZ1swXS5nYWlu
LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYzLCB0Myk7CisgICAgICAgICAgICAgIGdbM10uZ2Fp
bi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50MiwgY2FuY2VsVGltZTIpOworICAgICAg
ICAgICAgICBnWzNdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWUyOiBjYW5j
ZWxUaW1lMiwKKyAgICAgICAgICAgICAgICBtZXNzYWdlMjogYDNyZCBsaW5lYXJSYW1wKCR7djN9
LCAke3QzfSlgLAorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
IC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1
bigpOworCisgICAgICAvLyBDb21tb24gZnVuY3Rpb24gZm9yIGRvaW5nIGEgbGluZWFyUmFtcCB0
ZXN0LiAgVGhpcyBqdXN0IGRvZXMgYSBsaW5lYXIKKyAgICAgIC8vIHJhbXAgZnJvbSAwIHRvIHYw
IGF0IGZyb20gdGltZSAwIHRvIHQwLiAgVGhlbiBhbm90aGVyIGxpbmVhciByYW1wIGlzCisgICAg
ICAvLyBzY2hlZHVsZWQgZnJvbSB2MCB0byAwIGZyb20gdGltZSB0MCB0byB0MS4gIFRoaXMgaXMg
dGhlIHJhbXAgdGhhdCBpcyB0bworICAgICAgLy8gYmUgY2FuY2VsbGVkLgorICAgICAgZnVuY3Rp
b24gbGluZWFyUmFtcFRlc3QobWVzc2FnZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZywg
djAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1l
KDAsIDApOworICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAg
ICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAg
ICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAg
IGxldCB2MSA9IDA7CisgICAgICAgICAgbGV0IHQxID0gcmVuZGVyRHVyYXRpb247CisgICAgICAg
ICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAg
Z1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisKKyAgICAgICAgICBl
eHBlY3RlZENvbnN0YW50ID0KKyAgICAgICAgICAgICAgTWF0aC5mcm91bmQodjAgKyAodjEgLSB2
MCkgKiAoY2FuY2VsVGltZSAtIHQwKSAvICh0MSAtIHQwKSk7CisKKyAgICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAgICAg
ICAgICAgIGF1dG9NZXNzYWdlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKyAnOiBsaW5lYXJS
YW1wVG9WYWx1ZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCisgICAgICAgICAgICBzdW1tYXJ5
OiBtZXNzYWdlLAorICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8g
UnVuIHRoZSBjYW5jZWxsYXRpb24gdGVzdC4gQSBzZXQgb2YgYXV0b21hdGlvbnMgaXMgY3JlYXRl
ZCBhbmQKKyAgICAgIC8vIGNhbmNlbGVkLgorICAgICAgLy8KKyAgICAgIC8vIHx0ZXN0ZXJGdW5j
dGlvbnwgaXMgYSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgYXV0b21hdGlvbiB0byBiZQor
ICAgICAgLy8gdGVzdGVkLiAgSXQgaXMgZ2l2ZW4gYW4gYXJyYXkgb2YgMyBnYWluIG5vZGVzLCB0
aGUgdmFsdWUgYW5kIHRpbWUgb2YgYW4KKyAgICAgIC8vIGluaXRpYWwgbGluZWFyIHJhbXAsIGFu
ZCB0aGUgdGltZSB3aGVyZSB0aGUgY2FuY2VsbGF0aW9uIHNob3VsZCBvY2N1ci4KKyAgICAgIC8v
IFRoZSBmdW5jdGlvbiBtdXN0IGRvIHRoZSBhdXRvbWF0aW9ucyBmb3IgdGhlIGZpcnN0IHR3byBn
YWluIG5vZGVzLiAgSXQKKyAgICAgIC8vIG11c3QgcmV0dXJuIGEgZGljdGlvbmFyeSB3aXRoIHxl
eHBlY3RlZENvbnN0YW50fCBiZWluZyB0aGUgdmFsdWUgYXQgdGhlCisgICAgICAvLyBjYW5jZWxs
YXRpb24gdGltZSwgfGF1dG9NZXNzYWdlfCBmb3IgbWVzc2FnZSB0byBkZXNjcmliZSB0aGUgdGVz
dCwgYW5kCisgICAgICAvLyB8c3VtbWFyeXwgZm9yIGdlbmVyYWwgc3VtbWFyeSBtZXNzYWdlIHRv
IGJlIHByaW50ZWQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgIC8vIHRlc3QuCisgICAgICAvLwor
ICAgICAgLy8gfHRocmVzaG9sZE9wdGlvbnN8IGlzIGEgcHJvcGVydHkgYmFnIHRoYXQgc3BlY2lm
aWVzIHRoZSBlcnJvciB0aHJlc2hvbGQKKyAgICAgIC8vIHRvIHVzZS4gfHRocmVzaG9sZE9wdGlv
bnMudmFsdWVUaHJlc2hvbGR8IGlzIHRoZSBlcnJvciB0aHJlc2hvbGQgZm9yCisgICAgICAvLyBj
b21wYXJpbmcgdGhlIGFjdHVhbCBjb25zdGFudCBvdXRwdXQgYWZ0ZXIgY2FuY2VsbGluZyB0byB0
aGUgZXhwZWN0ZWQKKyAgICAgIC8vIHZhbHVlLiAgfHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJl
c2hvbGR8IGlzIHRoZSBlcnJvciB0aHJlc2hvbGQgZm9yCisgICAgICAvLyBjb21wYXJpbmcgdGhl
IGFjdHVhbCBhbmQgZXhwZWN0ZWQgYXV0b21hdGlvbiBjdXJ2ZXMgYmVmb3JlIHRoZQorICAgICAg
Ly8gY2FuY2VsYXRpb24gcG9pbnQuCisgICAgICAvLworICAgICAgLy8gRm9yIGNhbmNlbGxhdGlv
biB0ZXN0cywgfHBvc3RDYW5jZWxUZXN0fCBpcyBhIGZ1bmN0aW9uIHRoYXQgc2NoZWR1bGVzCisg
ICAgICAvLyBzb21lIGF1dG9tYXRpb24gYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4gIEl0IHRha2Vz
IDMgYXJndW1lbnRzOiBhbiBhcnJheQorICAgICAgLy8gb2YgdGhlIGdhaW4gbm9kZXMsIHRoZSBj
YW5jZWxsYXRpb24gdGltZSwgYW5kIHRoZSBleHBlY3RlZCB2YWx1ZSBhdCB0aGUKKyAgICAgIC8v
IGNhbmNlbGxhdGlvbiB0aW1lLiAgVGhpcyBmdW5jdGlvbiBtdXN0IHJldHVybiBhIGRpY3Rpb25h
cnkgY29uc2lzdGluZworICAgICAgLy8gb2YgfGNvbnN0YW50RW5kdGltZXwgaW5kaWNhdGluZyB3
aGVuIHRoZSBoZWxkIGNvbnN0YW50IGZyb20KKyAgICAgIC8vIGNhbmNlbGxhdGlvbiBzdG9wcyBi
ZWluZyBjb25zdGFudCwgfG1lc3NhZ2V8IGdpdmluZyBhIHN1bW1hcnkgb2Ygd2hhdAorICAgICAg
Ly8gYXV0b21hdGlvbiBpcyBiZWluZyB1c2VkLCBhbmQgfGVycm9yVGhyZXNob2xkfCB0aGF0IGlz
IHRoZSBlcnJvcgorICAgICAgLy8gdGhyZXNob2xkIGJldHdlZW4gdGhlIGV4cGVjdGVkIGN1cnZl
IGFuZCB0aGUgYWN0dWFsIGN1cnZlLgorICAgICAgLy8KKyAgICAgIGZ1bmN0aW9uIGNhbmNlbFRl
c3QoCisgICAgICAgICAgc2hvdWxkLCB0ZXN0ZXJGdW5jdGlvbiwgdGhyZXNob2xkT3B0aW9ucywg
cG9zdENhbmNlbFRlc3QpIHsKKyAgICAgICAgLy8gQ3JlYXRlIGEgY29udGV4dCB3aXRoIHRocmVl
IGNoYW5uZWxzLiAgQ2hhbm5lbCAwIGlzIHRoZSB0ZXN0IGNoYW5uZWwKKyAgICAgICAgLy8gY29u
dGFpbmluZyB0aGUgYWN0dWFsIG91dHB1dCB0aGF0IGluY2x1ZGVzIHRoZSBjYW5jZWxsYXRpb24g
b2YKKyAgICAgICAgLy8gZXZlbnRzLiAgQ2hhbm5lbCAxIGlzIHRoZSBleHBlY3RlZCBkYXRhIHVw
dG8gdGhlIGNhbmNlbGxhdGlvbiBzbyB3ZQorICAgICAgICAvLyBjYW4gdmVyaWZ5IHRoZSBjYW5j
ZWxsYXRpb24gcHJvZHVjZWQgdGhlIGNvcnJlY3QgcmVzdWx0LiAgQ2hhbm5lbCAyCisgICAgICAg
IC8vIGlzIGZvciB2ZXJpZnlpbmcgZXZlbnRzIGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRp
b24gc28gd2UgY2FuCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IGF1dG9tYXRpb25zIGFyZSBjb3Jy
ZWN0bHkgZ2VuZXJhdGVkIGFmdGVyIHRoZQorICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9pbnQu
CisgICAgICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDMsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisKKyAgICAg
ICAgLy8gVGVzdCBzb3VyY2UgaXMgYSBjb25zdGFudCBzaWduYWwKKyAgICAgICAgbGV0IHNyYyA9
IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNyYy5idWZmZXIgPSBjcmVh
dGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc3JjLmxvb3AgPSB0cnVl
OworCisgICAgICAgIC8vIFdlJ2xsIGRvIHRoZSBhdXRvbWF0aW9uIHRlc3RzIHdpdGggdGhyZWUg
Z2FpbiBub2Rlcy4gIE9uZSAoZzApIHdpbGwKKyAgICAgICAgLy8gaGF2ZSBjYW5jZWxBbmRIb2xk
QXRUaW1lIGFuZCB0aGUgb3RoZXIgKGcxKSB3aWxsIG5vdC4gIGcxIGlzCisgICAgICAgIC8vIHVz
ZWQgYXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgdGhhdCBhdXRvbWF0aW9uIHVwIHRvIHRoZQor
ICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9pbnQuICBUaGV5IHNob3VsZCBiZSB0aGUgc2FtZS4g
IFRoZSB0aGlyZCBub2RlIChnMikgaXMKKyAgICAgICAgLy8gdXNlZCBmb3IgdGVzdGluZyBhdXRv
bWF0aW9ucyBpbnNlcnRlZCBhZnRlciB0aGUgY2FuY2VsbGF0aW9uIHBvaW50LAorICAgICAgICAv
LyBpZiBhbnkuICBnMiBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZyb20gdGhlIGNhbmNlbGxhdGlv
biBwb2ludCB0byB0aGUKKyAgICAgICAgLy8gZW5kIG9mIHRoZSB0ZXN0LgorCisgICAgICAgIGxl
dCBnMCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZzEgPSBjb250ZXh0LmNy
ZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0IGcyID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAg
ICAgIGxldCB2MCA9IDE7CisgICAgICAgIGxldCB0MCA9IDAuMDE7CisKKyAgICAgICAgbGV0IGNh
bmNlbFRpbWUgPSByZW5kZXJEdXJhdGlvbiAvIDI7CisKKyAgICAgICAgLy8gVGVzdCBhdXRvbWF0
aW9uIGhlcmUuICBUaGUgdGVzdGVyIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5n
CisgICAgICAgIC8vIHVwIHRoZSBnYWluIG5vZGVzIHdpdGggdGhlIGRlc2lyZWQgYXV0b21hdGlv
biBmb3IgdGVzdGluZy4KKyAgICAgICAgYXV0b1Jlc3VsdCA9IHRlc3RlckZ1bmN0aW9uKFtnMCwg
ZzEsIGcyXSwgdjAsIHQwLCBjYW5jZWxUaW1lKTsKKyAgICAgICAgbGV0IGV4cGVjdGVkQ29uc3Rh
bnQgPSBhdXRvUmVzdWx0LmV4cGVjdGVkQ29uc3RhbnQ7CisgICAgICAgIGxldCBhdXRvTWVzc2Fn
ZSA9IGF1dG9SZXN1bHQuYXV0b01lc3NhZ2U7CisgICAgICAgIGxldCBzdW1tYXJ5TWVzc2FnZSA9
IGF1dG9SZXN1bHQuc3VtbWFyeTsKKworICAgICAgICAvLyBDYW5jZWwgc2NoZWR1bGVkIGV2ZW50
cyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgdGVzdAorICAgICAgICAvLyBhdXRvbWF0
aW9uLgorICAgICAgICBnMC5nYWluLmNhbmNlbEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZSk7CisK
KyAgICAgICAgbGV0IGNvbnN0YW50RW5kVGltZTsKKyAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0
KSB7CisgICAgICAgICAgcG9zdFJlc3VsdCA9CisgICAgICAgICAgICAgIHBvc3RDYW5jZWxUZXN0
KFtnMCwgZzEsIGcyXSwgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCk7CisgICAgICAgICAg
Y29uc3RhbnRFbmRUaW1lID0gcG9zdFJlc3VsdC5jb25zdGFudEVuZFRpbWU7CisgICAgICAgIH0K
KworICAgICAgICAvLyBDb25uZWN0IGV2ZXJ5dGhpbmcgdG9nZXRoZXIgKHdpdGggYSBtZXJnZXIg
dG8gbWFrZSBhIHR3by1jaGFubmVsCisgICAgICAgIC8vIHJlc3VsdCkuICBDaGFubmVsIDAgaXMg
dGhlIHRlc3QgKHdpdGggY2FuY2VsQW5kSG9sZEF0VGltZSkgYW5kCisgICAgICAgIC8vIGNoYW5u
ZWwgMSBpcyB0aGUgcmVmZXJlbmNlICh3aXRob3V0IGNhbmNlbEFuZEhvbGRBdFRpbWUpLgorICAg
ICAgICAvLyBDaGFubmVsIDEgaXMgdXNlZCB0byB2ZXJpZnkgdGhhdCBldmVyeXRoaW5nIHVwIHRv
IHRoZSBjYW5jZWxsYXRpb24KKyAgICAgICAgLy8gaGFzIHRoZSBjb3JyZWN0IHZhbHVlcy4KKyAg
ICAgICAgc3JjLmNvbm5lY3QoZzApOworICAgICAgICBzcmMuY29ubmVjdChnMSk7CisgICAgICAg
IHNyYy5jb25uZWN0KGcyKTsKKyAgICAgICAgbGV0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hh
bm5lbE1lcmdlcigzKTsKKyAgICAgICAgZzAuY29ubmVjdChtZXJnZXIsIDAsIDApOworICAgICAg
ICBnMS5jb25uZWN0KG1lcmdlciwgMCwgMSk7CisgICAgICAgIGcyLmNvbm5lY3QobWVyZ2VyLCAw
LCAyKTsKKyAgICAgICAgbWVyZ2VyLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAg
ICAgICAgLy8gR28hCisgICAgICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihidWZmZXIpIHsKKyAgICAgICAgICBs
ZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGxldCBleHBl
Y3RlZCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKworICAgICAgICAgIC8vIFRoZSBhY3R1
YWwgb3V0cHV0IHNob3VsZCBiZSBhIGNvbnN0YW50IGZyb20gdGhlIGNhbmNlbCB0aW1lIHRvIHRo
ZQorICAgICAgICAgIC8vIGVuZC4gIFdlIHVzZSB0aGUgbGFzdCB2YWx1ZSBvZiB0aGUgYWN0dWFs
IG91dHB1dCBhcyB0aGUgY29uc3RhbnQsCisgICAgICAgICAgLy8gYnV0IHdlIGFsc28gd2FudCB0
byBjb21wYXJlIHRoYXQgd2l0aCB3aGF0IHdlIHRob3VnaHQgaXQgc2hvdWxkCisgICAgICAgICAg
Ly8gcmVhbGx5IGJlLgorCisgICAgICAgICAgbGV0IGNhbmNlbEZyYW1lID0gTWF0aC5jZWlsKGNh
bmNlbFRpbWUgKiBzYW1wbGVSYXRlKTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBj
dXJ2ZXMgdXAgdG8gdGhlIGNhbmNlbCB0aW1lIGFyZSAiaWRlbnRpY2FsIi4gIFRoZQorICAgICAg
ICAgIC8vIHNob3VsZCBiZSBidXQgcm91bmQtb2ZmIG1heSBtYWtlIHRoZW0gZGlmZmVyIHNsaWdo
dGx5IGR1ZSB0byB0aGUKKyAgICAgICAgICAvLyB3YXkgY2FuY2VsbGluZyBpcyBkb25lLgorICAg
ICAgICAgIGxldCBlbmRGcmFtZSA9IE1hdGguZmxvb3IoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUp
OworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGVuZEZy
YW1lKSwKKyAgICAgICAgICAgICAgYXV0b01lc3NhZ2UgKyAnIHVwIHRvIHRpbWUgJyArIGNhbmNl
bFRpbWUpCisgICAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkLnNsaWNlKDAsIGVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgIHthYnNvbHV0
ZVRocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy5jdXJ2ZVRocmVzaG9sZH0pOworCisgICAgICAg
ICAgLy8gVmVyaWZ5IHRoZSBvdXRwdXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbiBpcyBhIGNvbnN0
YW50LgorICAgICAgICAgIGxldCBhY3R1YWxUYWlsOworICAgICAgICAgIGxldCBjb25zdGFudEVu
ZEZyYW1lOworCisgICAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0KSB7CisgICAgICAgICAgICBj
b25zdGFudEVuZEZyYW1lID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZSAqIHNhbXBsZVJhdGUp
OworICAgICAgICAgICAgYWN0dWFsVGFpbCA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSwgY29u
c3RhbnRFbmRGcmFtZSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFjdHVhbFRh
aWwgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUpOworICAgICAgICAgIH0KKworICAgICAgICAg
IGxldCBhY3R1YWxDb25zdGFudCA9IGFjdHVhbFtjYW5jZWxGcmFtZV07CisKKyAgICAgICAgICBz
aG91bGQoCisgICAgICAgICAgICAgIGFjdHVhbFRhaWwsCisgICAgICAgICAgICAgICdDYW5jZWxs
aW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2VsVGltZSkKKyAgICAgICAg
ICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFjdHVhbENvbnN0YW50KTsKKworICAgICAgICAgIC8v
IFZlcmlmeSB0aGF0IHRoZSBjb25zdGFudCBpcyB0aGUgdmFsdWUgd2UgZXhwZWN0LgorICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsQ29uc3RhbnQsCisgICAgICAgICAgICAg
ICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRp
bWUgJyArCisgICAgICAgICAgICAgICAgICBjYW5jZWxUaW1lKQorICAgICAgICAgICAgICAuYmVD
bG9zZVRvKAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAg
ICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKwor
ICAgICAgICAgIC8vIFZlcmlmeSB0aGUgY3VydmUgYWZ0ZXIgdGhlIGNvbnN0YW50RW5kVGltZSBt
YXRjaGVzIG91cgorICAgICAgICAgIC8vIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgICBpZiAocG9z
dENhbmNlbFRlc3QpIHsKKyAgICAgICAgICAgIGxldCBjMiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0
YSgyKTsKKyAgICAgICAgICAgIHNob3VsZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZSks
IHBvc3RSZXN1bHQubWVzc2FnZSkKKyAgICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisg
ICAgICAgICAgICAgICAgICAgIGMyLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUpLAorICAgICAgICAg
ICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IHBvc3RSZXN1bHQuZXJyb3JUaHJlc2hvbGQg
fHwgMH0pOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIC8vIFNp
bWlsYXIgdG8gY2FuY2VsVGVzdCwgYnV0IGRvZXMgMiBjYW5jZWxzLgorICAgICAgZnVuY3Rpb24g
Y2FuY2VsVGVzdDIoCisgICAgICAgICAgc2hvdWxkLCB0ZXN0ZXJGdW5jdGlvbiwgdGhyZXNob2xk
T3B0aW9ucywKKyAgICAgICAgICBwb3N0Q2FuY2VsVGVzdCwgcG9zdENhbmNlbFRlc3QyKSB7Cisg
ICAgICAgIC8vIENoYW5uZWwgMDogQWN0dWFsIG91dHB1dCB0aGF0IGluY2x1ZGVzIHRoZSBjYW5j
ZWxsYXRpb24gb2YgZXZlbnRzLgorICAgICAgICAvLyBDaGFubmVsIDE6IEV4cGVjdGVkIGRhdGEg
dXAgdG8gdGhlIGZpcnN0IGNhbmNlbGxhdGlvbi4KKyAgICAgICAgLy8gQ2hhbm5lbCAyOiBFeHBl
Y3RlZCBkYXRhIGZyb20gMXN0IGNhbmNlbGxhdGlvbiB0byAybmQgY2FuY2VsbGF0aW9uLgorICAg
ICAgICAvLyBDaGFubmVsIDM6IEV4cGVjdGVkIGRhdGEgZnJvbSAybmQgY2FuY2VsbGF0aW9uIHRv
IHRoZSBlbmQuCisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgIG5ldyBPZmZsaW5l
QXVkaW9Db250ZXh0KDQsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7
CisKKyAgICAgICAgY29uc3Qgc3JjID0gY29udGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOwor
CisgICAgICAgIC8vIGcwOiBBY3R1YWwgZ2FpbiB3aGljaCB3aWxsIGhhdmUgY2FuY2VsQW5kSG9s
ZEF0VGltZSBjYWxsZWQgb24gaXQKKyAgICAgICAgLy8gdHdpY2UuCisgICAgICAgIC8vIGcxOiBF
eHBlY3RlZCBnYWluIGZyb20gc3RhcnQgdG8gdGhlIDFzdCBjYW5jZWwuCisgICAgICAgIC8vIGcy
OiBFeHBlY3RlZCBnYWluIGZyb20gMXN0IGNhbmNlbCB0byB0aGUgMm5kIGNhbmNlbC4KKyAgICAg
ICAgLy8gZzM6IEV4cGVjdGVkIGdhaW4gZnJvbSB0aGUgMm5kIGNhbmNlbCB0byB0aGUgZW5kLgor
ICAgICAgICBjb25zdCBnMCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBjb25zdCBn
MSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBjb25zdCBnMiA9IGNvbnRleHQuY3Jl
YXRlR2FpbigpOworICAgICAgICBjb25zdCBnMyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAg
ICAgICBjb25zdCB2MCA9IDE7CisgICAgICAgIGNvbnN0IHQwID0gMC4wMTsKKworICAgICAgICBj
b25zdCBjYW5jZWxUaW1lMSA9IHJlbmRlckR1cmF0aW9uICogMC41OworICAgICAgICBjb25zdCBj
YW5jZWxUaW1lMiA9IHJlbmRlckR1cmF0aW9uICogMC43NTsKKworICAgICAgICAvLyBSdW4gdGVz
dGVyRnVuY3Rpb24gdG8gZ2VuZXJhdGUgdGhlIDFzdCByYW1wLgorICAgICAgICBjb25zdCB7Cisg
ICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwgYXV0b01lc3NhZ2UsIHN1bW1hcnlNZXNzYWdlfSA9
CisgICAgICAgICAgICB0ZXN0ZXJGdW5jdGlvbihbZzAsIGcxLCBnMl0sIHYwLCB0MCwgY2FuY2Vs
VGltZTEpOworCisgICAgICAgIC8vIDFzdCBjYW5jZWwsIGNhbmNlbGxpbmcgdGhlIDFzdCByYW1w
LgorICAgICAgICBnMC5nYWluLmNhbmNlbEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZTEpOworCisg
ICAgICAgIC8vIFJ1biBwb3N0Q2FuY2VsVGVzdCB0byBnZW5lcmF0ZSB0aGUgMm5kIHJhbXAuCisg
ICAgICAgIGNvbnN0IHsKKyAgICAgICAgICBjb25zdGFudEVuZFRpbWUsIG1lc3NhZ2UsIGVycm9y
VGhyZXNob2xkID0gMCwgZXhwZWN0ZWRDb25zdGFudDJ9ID0KKyAgICAgICAgICAgIHBvc3RDYW5j
ZWxUZXN0KAorICAgICAgICAgICAgICBbZzAsIGcxLCBnMl0sIGNhbmNlbFRpbWUxLCBleHBlY3Rl
ZENvbnN0YW50LCBjYW5jZWxUaW1lMik7CisKKyAgICAgICAgLy8gMm5kIGNhbmNlbCwgY2FuY2Vs
bGluZyB0aGUgMm5kIHJhbXAuCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShj
YW5jZWxUaW1lMik7CisKKyAgICAgICAgLy8gUnVuIHBvc3RDYW5jZWxUZXN0MiB0byBnZW5lcmF0
ZSB0aGUgM3JkIHJhbXAuCisgICAgICAgIGNvbnN0IHtjb25zdGFudEVuZFRpbWUyLCBtZXNzYWdl
Mn0gPQorICAgICAgICAgIHBvc3RDYW5jZWxUZXN0MihbZzAsIGcxLCBnMiwgZzNdLCBjYW5jZWxU
aW1lMiwgZXhwZWN0ZWRDb25zdGFudDIpOworCisgICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGlu
ZyB0b2dldGhlcgorICAgICAgICBzcmMuY29ubmVjdChnMCk7CisgICAgICAgIHNyYy5jb25uZWN0
KGcxKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzIpOworICAgICAgICBzcmMuY29ubmVjdChnMyk7
CisgICAgICAgIGNvbnN0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hhbm5lbE1lcmdlcig0KTsK
KyAgICAgICAgZzAuY29ubmVjdChtZXJnZXIsIDAsIDApOworICAgICAgICBnMS5jb25uZWN0KG1l
cmdlciwgMCwgMSk7CisgICAgICAgIGcyLmNvbm5lY3QobWVyZ2VyLCAwLCAyKTsKKyAgICAgICAg
ZzMuY29ubmVjdChtZXJnZXIsIDAsIDMpOworICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0
LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAvLyBHbyEKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisK
KyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uIChi
dWZmZXIpIHsKKyAgICAgICAgICBjb25zdCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MCk7CisgICAgICAgICAgY29uc3QgZXhwZWN0ZWQxID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEp
OworICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgyKTsK
KyAgICAgICAgICBjb25zdCBleHBlY3RlZDMgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMyk7CisK
KyAgICAgICAgICBjb25zdCBjYW5jZWxGcmFtZTEgPSBNYXRoLmNlaWwoY2FuY2VsVGltZTEgKiBz
YW1wbGVSYXRlKTsKKyAgICAgICAgICBjb25zdCBjYW5jZWxGcmFtZTIgPSBNYXRoLmNlaWwoY2Fu
Y2VsVGltZTIgKiBzYW1wbGVSYXRlKTsKKworICAgICAgICAgIGNvbnN0IGNvbnN0YW50RW5kRnJh
bWUxID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZSAqIHNhbXBsZVJhdGUpOworICAgICAgICAg
IGNvbnN0IGNvbnN0YW50RW5kRnJhbWUyID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZTIgKiBz
YW1wbGVSYXRlKTsKKworICAgICAgICAgIGNvbnN0IGFjdHVhbFRhaWwxID0gYWN0dWFsLnNsaWNl
KGNhbmNlbEZyYW1lMSwgY29uc3RhbnRFbmRGcmFtZTEpOworICAgICAgICAgIGNvbnN0IGFjdHVh
bFRhaWwyID0gYWN0dWFsLnNsaWNlKGNhbmNlbEZyYW1lMiwgY29uc3RhbnRFbmRGcmFtZTIpOwor
CisgICAgICAgICAgY29uc3QgYWN0dWFsQ29uc3RhbnQxID0gYWN0dWFsW2NhbmNlbEZyYW1lMV07
CisgICAgICAgICAgY29uc3QgYWN0dWFsQ29uc3RhbnQyID0gYWN0dWFsW2NhbmNlbEZyYW1lMl07
CisKKyAgICAgICAgICAvLyBWZXJpZnkgZmlyc3Qgc2VjdGlvbiBjdXJ2ZQorICAgICAgICAgIHNo
b3VsZCgKKyAgICAgICAgICAgIGFjdHVhbC5zbGljZSgwLCBjYW5jZWxGcmFtZTEpLAorICAgICAg
ICAgICAgYXV0b01lc3NhZ2UgKyAnIHVwIHRvIHRpbWUgJyArIGNhbmNlbFRpbWUxKQorICAgICAg
ICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICBleHBlY3RlZDEuc2xpY2UoMCwg
Y2FuY2VsRnJhbWUxKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hv
bGRPcHRpb25zLmN1cnZlVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBh
IHZhbHVlIHdhcyBoZWxkIGFmdGVyIDFzdCBjYW5jZWwKKyAgICAgICAgICBzaG91bGQoCisgICAg
ICAgICAgICBhY3R1YWxUYWlsMSwKKyAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBhdXRvTWVz
c2FnZSArICcgYXQgdGltZSAnICsgY2FuY2VsVGltZTEpCisgICAgICAgICAgICAuYmVDb25zdGFu
dFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQxKTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGhl
bGQgdmFsdWUgYWZ0ZXIgMXN0IGNhbmNlbCB3YXMgY29ycmVjdAorICAgICAgICAgIHNob3VsZCgK
KyAgICAgICAgICAgIGFjdHVhbENvbnN0YW50MSwKKyAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1
ZSBmb3IgY2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArCisgICAgICAg
ICAgICBjYW5jZWxUaW1lMSkKKyAgICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAg
IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9w
dGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8vIFZlcmlmeSBtaWRkbGUgc2Vj
dGlvbiBjdXJ2ZQorICAgICAgICAgIHNob3VsZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFt
ZTEsIGNhbmNlbEZyYW1lMiksIG1lc3NhZ2UpCisgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXko
CisgICAgICAgICAgICAgIGV4cGVjdGVkMi5zbGljZShjb25zdGFudEVuZEZyYW1lMSwgY2FuY2Vs
RnJhbWUyKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9s
ZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgYSB2YWx1ZSB3YXMgaGVsZCBhZnRlciAy
bmQgY2FuY2VsCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsVGFpbDIsCisg
ICAgICAgICAgICAnQ2FuY2VsbGluZyAnICsgbWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2Vs
VGltZTIpCisgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQyKTsK
KworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGhlbGQgdmFsdWUgYWZ0ZXIgMm5kIGNhbmNlbCB3
YXMgY29ycmVjdAorICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgIGFjdHVhbENvbnN0YW50
MiwKKyAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgbWVzc2Fn
ZSArICcgYXQgdGltZSAnICsKKyAgICAgICAgICAgIGNhbmNlbFRpbWUyKQorICAgICAgICAgICAg
LmJlQ2xvc2VUbygKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDIsCisgICAgICAgICAg
ICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKworICAg
ICAgICAgIC8vIFZlcmlmeSBlbmQgc2VjdGlvbiBjdXJ2ZQorICAgICAgICAgIHNob3VsZChhY3R1
YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZTIpLCBtZXNzYWdlMikKKyAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhwZWN0ZWQzLnNsaWNlKGNvbnN0YW50RW5kRnJh
bWUyKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9sZCB8
fCAwfSk7CisgICAgICAgIH0pOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNy
YXNoLTkxMzIxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFs
dWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5hMmUxNDgzMjY0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhl
Y3V0aW5nICJjcmFzaCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbY3Jhc2hdICAKK1BB
U1MgPCBbY3Jhc2hdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYXNzZXJ0aW9ucykg
CitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3Nm
dWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NhbmNlbC12YWx1ZXMt
Y3Jhc2gtOTEzMjE3Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNy
YXNoLTkxMzIxNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
OWFiMTU3Y2IwMjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY2Fu
Y2VsLXZhbHVlcy1jcmFzaC05MTMyMTcuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGlmIGNhbmNl
bGluZyBldmVudHMgYWZ0ZXIgc2V0VGFyZ2V0QXRUaW1lIGNyYXNoZXMKKyAgICA8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0
IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIEFyYml0cmFyeSBwYXJhbWV0ZXJzIGZv
ciB0aGUgb2ZmbGluZSBjb250ZXh0LgorICAgICAgY29uc3Qgc2FtcGxlUmF0ZSA9IDQ4MDAwOwor
ICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAxOworICAgICAgY29uc3QgY2hhbm5lbHMgPSAy
OworICAgICAgY29uc3QgcmVuZGVyRnJhbWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
OworCisgICAgICBjb25zdCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdjcmFzaCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgY29u
c3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dChjaGFubmVs
cywgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc291cmNlID0gY29u
dGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOworICAgICAgICBjb25zdCBhbmFseXNlciA9IGNv
bnRleHQuY3JlYXRlQW5hbHlzZXIoKTsKKyAgICAgICAgc291cmNlLmNvbm5lY3QoYW5hbHlzZXIp
OworCisgICAgICAgIC8vIFNjaGVkdWxpbmcgdGhlIGZvbGxvd2luZyBhdCBhbiBlYXJsaWVyIHRp
bWUgdGhhbiBhYm92ZSBjYXVzZXMgdGhlCisgICAgICAgIC8vIHBhZ2UgdG8gY3Jhc2ggaW4gNzMu
MC4zNjM4LjAuIFNlZSBjcmJ1Zy5jb20vOTEzMjE3LgorICAgICAgICBzb3VyY2Uub2Zmc2V0LnNl
dFZhbHVlQXRUaW1lKDEsIGNvbnRleHQuY3VycmVudFRpbWUpOworICAgICAgICBzb3VyY2Uub2Zm
c2V0LnNldFRhcmdldEF0VGltZSgwLCBjb250ZXh0LmN1cnJlbnRUaW1lICsgMiwgMC4wMDAwMSk7
CisgICAgICAgIHNvdXJjZS5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZShjb250ZXh0LmN1cnJl
bnRUaW1lICsgMS45OTk5OSk7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KGNvbnRleHQuY3VycmVu
dFRpbWUpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAvLyBTaG91bGQgZmluaXNoIHdpdGhvdXQgYSBjcmFzaC4KKyAgICAgICAgICB0
YXNrLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmJjMzNmZThhMjFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcwpAQCAtMCwwICsxLDQ0IEBACisvLyBE
ZWZpbmUgZnVuY3Rpb25zIHRoYXQgaW1wbGVtZW50IHRoZSBmb3JtdWxhcyBmb3IgQXVkaW9QYXJh
bSBhdXRvbWF0aW9ucy4KKworLy8gQXVkaW9QYXJhbSBsaW5lYXJSYW1wIHZhbHVlIGF0IHRpbWUg
dCBmb3IgYSBsaW5lYXIgcmFtcCBiZXR3ZWVuICh0MCwgdjApIGFuZAorLy8gKHQxLCB2MSkuICBJ
dCBpcyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4gIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBvdGhlcndp
c2UuCitmdW5jdGlvbiBhdWRpb1BhcmFtTGluZWFyUmFtcCh0LCB2MCwgdDAsIHYxLCB0MSkgewor
ICBpZiAodCA+PSB0MSkKKyAgICByZXR1cm4gdjE7CisgIHJldHVybiAodjAgKyAodjEgLSB2MCkg
KiAodCAtIHQwKSAvICh0MSAtIHQwKSkKK30KKworLy8gQXVkaW9QYXJhbSBleHBvbmVudGlhbFJh
bXAgdmFsdWUgYXQgdGltZSB0IGZvciBhbiBleHBvbmVudGlhbCByYW1wIGJldHdlZW4KKy8vICh0
MCwgdjApIGFuZCAodDEsIHYxKS4gSXQgaXMgYXNzdW1lZCB0aGF0IHQwIDw9IHQuICBSZXN1bHRz
IGFyZSB1bmRlZmluZWQKKy8vIG90aGVyd2lzZS4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1FeHBvbmVu
dGlhbFJhbXAodCwgdjAsIHQwLCB2MSwgdDEpIHsKKyAgaWYgKHQgPj0gdDEpCisgICAgcmV0dXJu
IHYxOworICByZXR1cm4gdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAodCAtIHQwKSAvICh0MSAtIHQw
KSk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0VGFyZ2V0IHZhbHVlIGF0IHRpbWUgdCBmb3IgYSBz
ZXRUYXJnZXQgY3VydmUgc3RhcnRpbmcgYXQgKHQwLAorLy8gdjApIHdpdGggYSBmaW5hbCB2YWx1
ZSBvZiB2RmFpbmFsIGFuZCBhIHRpbWUgY29uc3RhbnQgb2YgdGltZUNvbnN0YW50LiAgSXQgaXMK
Ky8vIGFzc3VtZWQgdGhhdCB0MCA8PSB0LiAgUmVzdWx0cyBhcmUgdW5kZWZpbmVkIG90aGVyd2lz
ZS4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1TZXRUYXJnZXQodCwgdjAsIHQwLCB2RmluYWwsIHRpbWVD
b25zdGFudCkgeworICByZXR1cm4gdkZpbmFsICsgKHYwIC0gdkZpbmFsKSAqIE1hdGguZXhwKC0o
dCAtIHQwKSAvIHRpbWVDb25zdGFudCk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0VmFsdWVDdXJ2
ZSB2YWx1ZSBhdCB0aW1lIHQgZm9yIGEgc2V0VmFsdWVDdXJ2ZSBzdGFydGluZyBhdCB0aW1lCisv
LyB0MCB3aXRoIGN1cnZlLCBjdXJ2ZSwgYW5kIGR1cmF0aW9uIGR1cmF0aW9uLiAgVGhlIHNhbXBs
ZSByYXRlIGlzIHNhbXBsZVJhdGUuCisvLyBJdCBpcyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4KK2Z1
bmN0aW9uIGF1ZGlvUGFyYW1TZXRWYWx1ZUN1cnZlKHQsIGN1cnZlLCB0MCwgZHVyYXRpb24pIHsK
KyAgaWYgKHQgPiB0MCArIGR1cmF0aW9uKQorICAgIHJldHVybiBjdXJ2ZVtjdXJ2ZS5sZW5ndGgg
LSAxXTsKKworICBsZXQgY3VydmVQb2ludHNQZXJTZWNvbmQgPSAoY3VydmUubGVuZ3RoIC0gMSkg
LyBkdXJhdGlvbjsKKworICBsZXQgdmlydHVhbEluZGV4ID0gKHQgLSB0MCkgKiBjdXJ2ZVBvaW50
c1BlclNlY29uZDsKKyAgbGV0IGluZGV4ID0gTWF0aC5mbG9vcih2aXJ0dWFsSW5kZXgpOworCisg
IGxldCBkZWx0YSA9IHZpcnR1YWxJbmRleCAtIGluZGV4OworCisgIGxldCBjMCA9IGN1cnZlW2lu
ZGV4XTsKKyAgbGV0IGMxID0gY3VydmVbTWF0aC5taW4oaW5kZXggKyAxLCBjdXJ2ZS5sZW5ndGgg
LSAxKV07CisgIHJldHVybiBjMCArIChjMSAtIGMwKSAqIGRlbHRhOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKaW5kZXggNTIzMTAyYTA5OTI2
Li42MmQxY2Q0ZjhhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcApAQCAtMjE1LDYgKzIxNSwxOCBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFt
Jj4gQXVkaW9QYXJhbTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1lKQog
ICAgIHJldHVybiAqdGhpczsKIH0KIAorRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFy
YW06OmNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpCit7CisgICAgaWYgKGNh
bmNlbFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgImNh
bmNlbFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVlIl9zIH07CisKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fdGltZWxpbmUuY2FuY2VsQW5kSG9sZEF0VGltZShTZWNvbmRzIHsgY2FuY2VsVGltZSB9
KTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKwogZmxvYXQgQXVk
aW9QYXJhbTo6ZmluYWxWYWx1ZSgpCiB7CiAgICAgZmxvYXQgdmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmluZGV4IDhhNGE3NmVkYzdhMS4uMGZk
N2U2NTEwNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaApAQCAtMTA4LDYgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxBdWRpb1Bh
cmFtJj4gc2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgZG91YmxlIHN0YXJ0VGltZSwgZmxv
YXQgdGltZUNvbnN0YW50KTsKICAgICBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gc2V0VmFsdWVD
dXJ2ZUF0VGltZShWZWN0b3I8ZmxvYXQ+JiYgY3VydmUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJs
ZSBkdXJhdGlvbik7CiAgICAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IGNhbmNlbFNjaGVkdWxl
ZFZhbHVlcyhkb3VibGUgY2FuY2VsVGltZSk7CisgICAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+
IGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpOwogCiAgICAgYm9vbCBoYXNT
YW1wbGVBY2N1cmF0ZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmUuaGFzVmFsdWVz
KCkgfHwgbnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpOyB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAppbmRleCAwOWQ4NDNkNDZm
YjEuLmIyY2FhZGM3MjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uaWRsCkBAIC01OSw5ICs1OSw3IEBACiAKICAgICAvLyBDYW5jZWxzIGFsbCBz
Y2hlZHVsZWQgcGFyYW1ldGVyIGNoYW5nZXMgd2l0aCB0aW1lcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gc3RhcnRUaW1lLgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXVkaW9QYXJhbSBjYW5j
ZWxTY2hlZHVsZWRWYWx1ZXMoZG91YmxlIGNhbmNlbFRpbWUpOwotCi0gICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciB0aGlzLgotICAgIC8vIEF1ZGlvUGFyYW0gY2FuY2VsQW5kSG9sZEF0VGlt
ZShkb3VibGUgY2FuY2VsVGltZSk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBBdWRpb1BhcmFt
IGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpOwogCiAgICAgLy8gRklYTUU6
IFRoZXNlIGFyZSBub3Qgc3RhbmRhcmQuCiAgICAgW0VuYWJsZWRCeVNldHRpbmc9UHJlZml4ZWRX
ZWJBdWRpb10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmlu
ZGV4IGE3NWY4ODhlMDZkZC4uOGQxOTRkZDc5ZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBAIC02NSwyNyAr
NjUsMzIgQEAgc3RhdGljIGJvb2wgaGFzU2V0VGFyZ2V0Q29udmVyZ2VkKGZsb2F0IHZhbHVlLCBm
bG9hdCB0YXJnZXQsIFNlY29uZHMgY3VycmVudFRpbWUKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVk
aW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1l
KQogewotICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OlNldFZh
bHVlLCB2YWx1ZSwgdGltZSwgMCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fZXZlbnRzTXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50Ojpj
cmVhdGVTZXRWYWx1ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUs
IFNlY29uZHMgdGltZSkKIHsKLSAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudChQYXJh
bUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSwgdmFsdWUsIHRpbWUsIDAsIHsgfSwgeyB9KSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5z
ZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlTGluZWFyUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7
CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxS
YW1wVG9WYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIHJldHVy
biBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OkV4cG9uZW50aWFsUmFtcFRvVmFs
dWUsIHZhbHVlLCB0aW1lLCAwLCB7IH0sIHsgfSkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9ldmVudHNNdXRleCk7CisgICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNy
ZWF0ZUV4cG9uZW50aWFsUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwg
U2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7Ci0gICAgcmV0dXJuIGluc2VydEV2
ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VGFyZ2V0LCB0YXJnZXQsIHRpbWUsIHRpbWVD
b25zdGFudCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRz
TXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRUYXJn
ZXRFdmVudCh0YXJnZXQsIHRpbWUsIHRpbWVDb25zdGFudCkpOwogfQogCiBFeGNlcHRpb25Pcjx2
b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3VydmVBdFRpbWUoVmVjdG9yPGZsb2F0
PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVyYXRpb24pCiB7Ci0gICAgcmV0dXJu
IGluc2VydEV2ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwgMCwgdGlt
ZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6
Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3VydmUpLCB0aW1lLCBkdXJhdGlvbikp
OwogfQogCiBzdGF0aWMgYm9vbCBpc1ZhbGlkTnVtYmVyKGZsb2F0IHgpCkBAIC05OCw1MiArMTAz
LDU1IEBAIHN0YXRpYyBib29sIGlzVmFsaWROdW1iZXIoU2Vjb25kcyBzKQogICAgIHJldHVybiAh
c3RkOjppc25hbihzLnZhbHVlKCkpICYmICFzdGQ6OmlzaW5mKHMudmFsdWUoKSk7CiB9CiAKLUV4
Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoY29uc3QgUGFy
YW1FdmVudCYgZXZlbnQpCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omlu
c2VydEV2ZW50KHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50PiBldmVudCkKIHsKICAgICAvLyBT
YW5pdHkgY2hlY2sgdGhlIGV2ZW50LiBCZSBzdXBlciBjYXJlZnVsIHdlJ3JlIG5vdCBnZXR0aW5n
IGluZmVjdGVkIHdpdGggTmFOIG9yIEluZi4KLSAgICBib29sIGlzVmFsaWQgPSBldmVudC50eXBl
KCkgPCBQYXJhbUV2ZW50OjpMYXN0VHlwZQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50
LnZhbHVlKCkpCi0gICAgICAgICYmIGlzVmFsaWROdW1iZXIoZXZlbnQudGltZSgpKQotICAgICAg
ICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LnRpbWVDb25zdGFudCgpKQotICAgICAgICAmJiBpc1Zh
bGlkTnVtYmVyKGV2ZW50LmR1cmF0aW9uKCkpCi0gICAgICAgICYmIGV2ZW50LmR1cmF0aW9uKCkg
Pj0gMF9zOworICAgIGJvb2wgaXNWYWxpZCA9IGV2ZW50LT50eXBlKCkgPCBQYXJhbUV2ZW50OjpM
YXN0VHlwZQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT52YWx1ZSgpKQorICAgICAg
ICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT50aW1lKCkpCisgICAgICAgICYmIGlzVmFsaWROdW1i
ZXIoZXZlbnQtPnRpbWVDb25zdGFudCgpKQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50
LT5kdXJhdGlvbigpKQorICAgICAgICAmJiBldmVudC0+ZHVyYXRpb24oKSA+PSAwX3M7CiAKICAg
ICBpZiAoIWlzVmFsaWQpCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIAotICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgQVNTRVJUKG1fZXZlbnRzTXV0
ZXguaXNMb2NrZWQoKSk7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICBhdXRvIGluc2VydFRp
bWUgPSBldmVudC50aW1lKCk7CisgICAgYXV0byBpbnNlcnRUaW1lID0gZXZlbnQtPnRpbWUoKTsK
KwogICAgIGZvciAoYXV0byYgcGFyYW1FdmVudCA6IG1fZXZlbnRzKSB7Ci0gICAgICAgIGlmIChl
dmVudC50eXBlKCkgPT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkgewotICAgICAgICAgICAg
Ly8gSWYgdGhpcyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0
IG92ZXJsYXAgYW55IGV4aXN0aW5nIGV2ZW50LgotICAgICAgICAgICAgLy8gSXQncyBvayBpZiB0
aGUgU2V0VmFsdWVDdXJ2ZSBzdGFydHMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZW5kIG9mIHNv
bWUgb3RoZXIgZHVyYXRpb24uCi0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBldmVudC50aW1l
KCkgKyBldmVudC5kdXJhdGlvbigpOwotICAgICAgICAgICAgaWYgKHBhcmFtRXZlbnQudHlwZSgp
ID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHBh
cmFtRXZlbnRFbmRUaW1lID0gcGFyYW1FdmVudC50aW1lKCkgKyBwYXJhbUV2ZW50LmR1cmF0aW9u
KCk7Ci0gICAgICAgICAgICAgICAgaWYgKChwYXJhbUV2ZW50LnRpbWUoKSA+PSBldmVudC50aW1l
KCkgJiYgcGFyYW1FdmVudC50aW1lKCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8
fCAocGFyYW1FdmVudEVuZFRpbWUgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudEVuZFRpbWUg
PCBlbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAoZXZlbnQudGltZSgpID49IHBhcmFt
RXZlbnQudGltZSgpICYmIGV2ZW50LnRpbWUoKSA8IHBhcmFtRXZlbnRFbmRUaW1lKQotICAgICAg
ICAgICAgICAgICAgICB8fCAoZW5kVGltZSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAmJiBlbmRUaW1l
IDwgcGFyYW1FdmVudEVuZFRpbWUpKSB7CisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAgIGlmIChwYXJhbUV2ZW50LT50
eXBlKCkgIT0gUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzKSB7CisgICAgICAgICAgICAgICAgLy8g
SWYgdGhpcyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG92
ZXJsYXAgYW55IGV4aXN0aW5nIGV2ZW50LgorICAgICAgICAgICAgICAgIC8vIEl0J3Mgb2sgaWYg
dGhlIFNldFZhbHVlQ3VydmUgc3RhcnRzIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGVuZCBvZiBz
b21lIG90aGVyIGR1cmF0aW9uLgorICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IGV2ZW50
LT50aW1lKCkgKyBldmVudC0+ZHVyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1F
dmVudC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byBwYXJhbUV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQtPnRpbWUoKSArIHBh
cmFtRXZlbnQtPmR1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocGFyYW1FdmVu
dC0+dGltZSgpID49IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGlt
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChwYXJhbUV2ZW50RW5kVGltZSA+IGV2ZW50
LT50aW1lKCkgJiYgcGFyYW1FdmVudEVuZFRpbWUgPCBlbmRUaW1lKQorICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgKGV2ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50
LT50aW1lKCkgPCBwYXJhbUV2ZW50RW5kVGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8
IChlbmRUaW1lID49IHBhcmFtRXZlbnQtPnRpbWUoKSAmJiBlbmRUaW1lIDwgcGFyYW1FdmVudEVu
ZFRpbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtRXZlbnQtPnRpbWUo
KSA+IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGltZSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZl
bnRzIGFyZSBvdmVybGFwcGluZyJfcyB9OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0gZWxzZSBpZiAocGFyYW1FdmVudC50aW1lKCkgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVu
dC50aW1lKCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciX3MgfTsKLSAgICAgICAg
fSBlbHNlIGlmIChwYXJhbUV2ZW50LnR5cGUoKSA9PSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZl
KSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocGFyYW1FdmVudC0+dHlwZSgp
ID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKICAgICAgICAgICAgIC8vIE90aGVyd2lz
ZSwgbWFrZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGluZyBTZXRW
YWx1ZUN1cnZlIGV2ZW50LgotICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBw
YXJhbUV2ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKLSAgICAgICAgICAgIGlm
IChldmVudC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgpIDwgcGFy
ZW50RXZlbnRFbmRUaW1lKQorICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBw
YXJhbUV2ZW50LT50aW1lKCkgKyBwYXJhbUV2ZW50LT5kdXJhdGlvbigpOworICAgICAgICAgICAg
aWYgKGV2ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50LT50aW1lKCkg
PCBwYXJlbnRFdmVudEVuZFRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIgfTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmIChwYXJhbUV2ZW50LnRpbWUoKSA+IGluc2VydFRpbWUpCisgICAgICAg
IGlmIChwYXJhbUV2ZW50LT50aW1lKCkgPiBpbnNlcnRUaW1lKQogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIG1fZXZlbnRzLmluc2VydChpLCBldmVudCk7
CisgICAgbV9ldmVudHMuaW5zZXJ0KGksIFdURk1vdmUoZXZlbnQpKTsKICAgICByZXR1cm4geyB9
OwogfQogCkBAIC0xNjksMTggKzE3NywxMzAgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OmNh
bmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAKICAgICAvLyBSZW1vdmUg
YWxsIGV2ZW50cyBzdGFydGluZyBhdCBjYW5jZWxUaW1lLgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2V2ZW50cy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoaXNBZnRlcihtX2V2
ZW50c1tpXSwgY2FuY2VsVGltZSkpIHsKKyAgICAgICAgaWYgKGlzQWZ0ZXIoKm1fZXZlbnRzW2ld
LCBjYW5jZWxUaW1lKSkgewogICAgICAgICAgICAgbV9ldmVudHMucmVtb3ZlKGksIG1fZXZlbnRz
LnNpemUoKSAtIGkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiB9CiAK
K0V4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2VsQW5kSG9sZEF0VGlt
ZShTZWNvbmRzIGNhbmNlbFRpbWUpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2
ZW50c011dGV4KTsKKworICAgIHNpemVfdCBpOworICAgIC8vIEZpbmQgdGhlIGZpcnN0IGV2ZW50
IGF0IG9yIGp1c3QgcGFzdCBjYW5jZWxUaW1lLgorICAgIGZvciAoaSA9IDA7IGkgPCBtX2V2ZW50
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9ldmVudHNbaV0tPnRpbWUoKSA+IGNhbmNl
bFRpbWUpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBUaGUgZXZlbnQgdGhh
dCBpcyBiZWluZyBjYW5jZWxsZWQuIFRoaXMgaXMgdGhlIGV2ZW50IGp1c3QgcGFzdCBjYW5jZWxU
aW1lLCBpZiBhbnkuCisgICAgc2l6ZV90IGNhbmNlbGxlZEV2ZW50SW5kZXggPSBpOworCisgICAg
Ly8gSWYgdGhlIGV2ZW50IGp1c3QgYmVmb3JlIGNhbmNlbFRpbWUgaXMgYSBTZXRUYXJnZXQgb3Ig
U2V0VmFsdWVDdXJ2ZSBldmVudCwgd2UgbmVlZAorICAgIC8vIHRvIGhhbmRsZSB0aGF0IGV2ZW50
IHNwZWNpYWxseSBpbnN0ZWFkIG9mIHRoZSBldmVudCBhZnRlci4KKyAgICBpZiAoaSA+IDAgJiYg
KChtX2V2ZW50c1tpIC0gMV0tPnR5cGUoKSA9PSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQpIHx8ICht
X2V2ZW50c1tpIC0gMV0tPnR5cGUoKSA9PSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZlKSkpCisg
ICAgICAgIGNhbmNlbGxlZEV2ZW50SW5kZXggPSBpIC0gMTsKKyAgICBlbHNlIGlmIChpID49IG1f
ZXZlbnRzLnNpemUoKSkgeworICAgICAgICAvLyBJZiB0aGVyZSB3ZXJlIG5vIGV2ZW50cyBvY2N1
cnJpbmcgYWZ0ZXIgfGNhbmNlbFRpbWV8IChhbmQgdGhlCisgICAgICAgIC8vIHByZXZpb3VzIGV2
ZW50IGlzIG5vdCBTZXRUYXJnZXQgb3IgU2V0VmFsdWVDdXJ2ZSwgd2UncmUgZG9uZS4KKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICAvLyBjYW5jZWxsZWRFdmVudCBpcyB0aGUgZXZl
bnQgdGhhdCBpcyBiZWluZyBjYW5jZWxsZWQuCisgICAgYXV0byogY2FuY2VsbGVkRXZlbnQgPSBt
X2V2ZW50c1tjYW5jZWxsZWRFdmVudEluZGV4XS5nZXQoKTsKKyAgICBhdXRvIGV2ZW50VHlwZSA9
IGNhbmNlbGxlZEV2ZW50LT50eXBlKCk7CisKKyAgICAvLyBOZXcgZXZlbnQgdG8gYmUgaW5zZXJ0
ZWQsIGlmIGFueSwgYW5kIGEgU2V0VmFsdWVFdmVudCBpZiBuZWVkZWQuCisgICAgc3RkOjp1bmlx
dWVfcHRyPFBhcmFtRXZlbnQ+IG5ld0V2ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2
ZW50PiBuZXdTZXRWYWx1ZUV2ZW50OworCisgICAgc3dpdGNoIChldmVudFR5cGUpIHsKKyAgICBj
YXNlIFBhcmFtRXZlbnQ6OkxpbmVhclJhbXBUb1ZhbHVlOgorICAgIGNhc2UgUGFyYW1FdmVudDo6
RXhwb25lbnRpYWxSYW1wVG9WYWx1ZTogeworICAgICAgICAvLyBGb3IgdGhlc2UgZXZlbnRzIHdl
IG5lZWQgdG8gcmVtZW1iZXIgdGhlIHBhcmFtZXRlcnMgb2YgdGhlIGV2ZW50CisgICAgICAgIC8v
IGZvciBhIENhbmNlbFZhbHVlcyBldmVudCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJseSBjYW5jZWwg
dGhlIGV2ZW50CisgICAgICAgIC8vIGFuZCBob2xkIHRoZSB2YWx1ZS4KKyAgICAgICAgYXV0byBz
YXZlZEV2ZW50ID0gbWFrZVVuaXF1ZTxQYXJhbUV2ZW50PihldmVudFR5cGUsIGNhbmNlbGxlZEV2
ZW50LT52YWx1ZSgpLCBjYW5jZWxsZWRFdmVudC0+dGltZSgpLCBjYW5jZWxsZWRFdmVudC0+dGlt
ZUNvbnN0YW50KCksIGNhbmNlbGxlZEV2ZW50LT5kdXJhdGlvbigpLCBWZWN0b3I8ZmxvYXQ+IHsg
Y2FuY2VsbGVkRXZlbnQtPmN1cnZlKCkgfSwgY2FuY2VsbGVkRXZlbnQtPmN1cnZlUG9pbnRzUGVy
U2Vjb25kKCksIGNhbmNlbGxlZEV2ZW50LT5jdXJ2ZUVuZFZhbHVlKCksIG51bGxwdHIpOworICAg
ICAgICBuZXdFdmVudCA9IFBhcmFtRXZlbnQ6OmNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KGNhbmNl
bFRpbWUsIFdURk1vdmUoc2F2ZWRFdmVudCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQ6IHsKKyAgICAgICAgaWYgKGNhbmNlbGxlZEV2ZW50
LT50aW1lKCkgPCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIHJl
bW92ZSB0aGUgU2V0VGFyZ2V0IGV2ZW50IGlmIGl0IHN0YXJ0ZWQgYmVmb3JlIHRoZQorICAgICAg
ICAgICAgLy8gY2FuY2VsIHRpbWUsIHNvIGJ1bXAgdGhlIGluZGV4LiBCdXQgd2UgZG8gd2FudCB0
byBpbnNlcnQgYQorICAgICAgICAgICAgLy8gY2FuY2VsRXZlbnQgc28gdGhhdCB3ZSBzdG9wIHRo
aXMgYXV0b21hdGlvbiBhbmQgaG9sZCB0aGUgdmFsdWUgd2hlbgorICAgICAgICAgICAgLy8gd2Ug
Z2V0IHRoZXJlLgorICAgICAgICAgICAgKytjYW5jZWxsZWRFdmVudEluZGV4OworCisgICAgICAg
ICAgICBuZXdFdmVudCA9IFBhcmFtRXZlbnQ6OmNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KGNhbmNl
bFRpbWUsIG51bGxwdHIpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmU6IHsKKyAgICAgICAgLy8gSWYgdGhlIHNldFZh
bHVlQ3VydmUgZXZlbnQgc3RhcnRlZCBzdHJpY3RseSBiZWZvcmUgdGhlIGNhbmNlbCB0aW1lLAor
ICAgICAgICAvLyB0aGVyZSBtaWdodCBiZSBzb21ldGhpbmcgdG8gZG8uLi4uCisgICAgICAgIGlm
IChjYW5jZWxsZWRFdmVudC0+dGltZSgpIDwgY2FuY2VsVGltZSkgeworICAgICAgICAgICAgaWYg
KGNhbmNlbFRpbWUgPiBjYW5jZWxsZWRFdmVudC0+dGltZSgpICsgY2FuY2VsbGVkRXZlbnQtPmR1
cmF0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FuY2VsbGF0aW9uIHRpbWUg
aXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBjdXJ2ZSB0aGVyZSdzCisgICAgICAgICAgICAgICAgLy8g
bm90aGluZyB0byBkbyBleGNlcHQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgZXZlbnRzLgorICAgICAg
ICAgICAgICAgICsrY2FuY2VsbGVkRXZlbnRJbmRleDsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgLy8gQ2FuY2VsbGF0aW9uIHRpbWUgaXMgaW4gdGhlIG1pZGRsZSBvZiB0
aGUgY3VydmUuIFRoZXJlZm9yZSwKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgU2V0
VmFsdWVDdXJ2ZSBldmVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBuZXcKKyAgICAgICAgICAgICAg
ICAvLyBwYXJhbWV0ZXJzIHRvIGNhbmNlbCB0aGlzIGV2ZW50IHByb3Blcmx5LiBTaW5jZSBpdCdz
IGlsbGVnYWwKKyAgICAgICAgICAgICAgICAvLyB0byBpbnNlcnQgYW55IGV2ZW50IHdpdGhpbiBh
IFNldFZhbHVlQ3VydmUgZXZlbnQsIHdlIGNhbgorICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUg
dGhlIG5ldyBlbmQgdmFsdWUgbm93IGluc3RlYWQgb2YgZG9pbmcgd2hlbiBydW5uaW5nCisgICAg
ICAgICAgICAgICAgLy8gdGhlIHRpbWVsaW5lLgorICAgICAgICAgICAgICAgIGF1dG8gbmV3RHVy
YXRpb24gPSBjYW5jZWxUaW1lIC0gY2FuY2VsbGVkRXZlbnQtPnRpbWUoKTsKKyAgICAgICAgICAg
ICAgICBmbG9hdCBlbmRWYWx1ZSA9IHZhbHVlQ3VydmVBdFRpbWUoY2FuY2VsVGltZSwgY2FuY2Vs
bGVkRXZlbnQtPnRpbWUoKSwgY2FuY2VsbGVkRXZlbnQtPmR1cmF0aW9uKCksIGNhbmNlbGxlZEV2
ZW50LT5jdXJ2ZSgpLmRhdGEoKSwgY2FuY2VsbGVkRXZlbnQtPmN1cnZlKCkuc2l6ZSgpKTsKKwor
ICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgd2l0
aCB0aGlzIG5ldyBvbmUgdGhhdCBpcyBpZGVudGljYWwgZXhjZXB0IGZvciB0aGUgZHVyYXRpb24u
CisgICAgICAgICAgICAgICAgbmV3RXZlbnQgPSBtYWtlVW5pcXVlPFBhcmFtRXZlbnQ+KGV2ZW50
VHlwZSwgY2FuY2VsbGVkRXZlbnQtPnZhbHVlKCksIGNhbmNlbGxlZEV2ZW50LT50aW1lKCksIGNh
bmNlbGxlZEV2ZW50LT50aW1lQ29uc3RhbnQoKSwgbmV3RHVyYXRpb24sIFZlY3RvcjxmbG9hdD4g
eyBjYW5jZWxsZWRFdmVudC0+Y3VydmUoKSB9LCBjYW5jZWxsZWRFdmVudC0+Y3VydmVQb2ludHNQ
ZXJTZWNvbmQoKSwgZW5kVmFsdWUsIG51bGxwdHIpOworICAgICAgICAgICAgICAgIG5ld1NldFZh
bHVlRXZlbnQgPSBQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1ZUV2ZW50KGVuZFZhbHVlLCBjYW5j
ZWxsZWRFdmVudC0+dGltZSgpICsgbmV3RHVyYXRpb24pOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVl
OgorICAgIGNhc2UgUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzOgorICAgICAgICAvLyBOb3RoaW5n
IG5lZWRzIHRvIGJlIGRvbmUgZm9yIGEgU2V0VmFsdWUgb3IgQ2FuY2VsVmFsdWVzIGV2ZW50Lgor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFtRXZlbnQ6Okxhc3RUeXBlOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gTm93
IHJlbW92ZSBhbGwgdGhlIGZvbGxvd2luZyBldmVudHMgZnJvbSB0aGUgdGltZWxpbmUuCisgICAg
aWYgKGNhbmNlbGxlZEV2ZW50SW5kZXggPCBtX2V2ZW50cy5zaXplKCkpCisgICAgICAgIHJlbW92
ZUNhbmNlbGxlZEV2ZW50cyhjYW5jZWxsZWRFdmVudEluZGV4KTsKKworICAgIC8vIEluc2VydCB0
aGUgbmV3IGV2ZW50LCBpZiBhbnkuCisgICAgaWYgKG5ld0V2ZW50KSB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gaW5zZXJ0RXZlbnQoV1RGTW92ZShuZXdFdmVudCkpOworICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgICAgIGlmIChuZXdTZXRWYWx1ZUV2ZW50KSB7CisgICAgICAgICAgICBp
bnNlcnRFdmVudChXVEZNb3ZlKG5ld1NldFZhbHVlRXZlbnQpKTsKKyAgICAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQor
Cit2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBm
aXJzdEV2ZW50VG9SZW1vdmUpCit7CisgICAgbV9ldmVudHMucmVtb3ZlKGZpcnN0RXZlbnRUb1Jl
bW92ZSwgbV9ldmVudHMuc2l6ZSgpIC0gZmlyc3RFdmVudFRvUmVtb3ZlKTsKK30KKwogT3B0aW9u
YWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBm
bG9hdCBtYXhWYWx1ZSkKIHsKICAgICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4g
bG9jayhtX2V2ZW50c011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICAgICAgaWYgKCFsb2Nr
Lm93bnNfbG9jaygpIHx8ICFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3Vy
cmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIWxvY2sub3du
c19sb2NrKCkgfHwgIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50
VGltZSgpIH0gPCBtX2V2ZW50c1swXS0+dGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMSw3ICszNDEsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMg
ZW5kVAogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogCiAgICAgLy8gUmV0dXJuIGRlZmF1
bHQgdmFsdWUgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBtYXRjaGluZyB0aGUgZGVzaXJlZCB0aW1l
IHJhbmdlLgotICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IGVuZFRpbWUgPD0gbV9ldmVudHNb
MF0udGltZSgpKSB7CisgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgZW5kVGltZSA8PSBtX2V2
ZW50c1swXS0+dGltZSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1i
ZXJPZlZhbHVlczsgKytpKQogICAgICAgICAgICAgdmFsdWVzW2ldID0gZGVmYXVsdFZhbHVlOwog
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwpAQCAtMjMzLDcgKzM1Myw3IEBAIGZsb2F0IEF1
ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGlt
ZSwgU2Vjb25kcyBlbmRUCiAKICAgICAvLyBJZiBmaXJzdCBldmVudCBpcyBhZnRlciBzdGFydFRp
bWUgdGhlbiBmaWxsIGluaXRpYWwgcGFydCBvZiB2YWx1ZXMgYnVmZmVyIHdpdGggZGVmYXVsdFZh
bHVlCiAgICAgLy8gdW50aWwgd2UgcmVhY2ggdGhlIGZpcnN0IGV2ZW50IHRpbWUuCi0gICAgYXV0
byBmaXJzdEV2ZW50VGltZSA9IG1fZXZlbnRzWzBdLnRpbWUoKTsKKyAgICBhdXRvIGZpcnN0RXZl
bnRUaW1lID0gbV9ldmVudHNbMF0tPnRpbWUoKTsKICAgICBpZiAoZmlyc3RFdmVudFRpbWUgPiBz
dGFydFRpbWUpIHsKICAgICAgICAgYXV0byBmaWxsVG9UaW1lID0gc3RkOjptaW4oZW5kVGltZSwg
Zmlyc3RFdmVudFRpbWUpOwogICAgICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRp
bGl0aWVzOjp0aW1lVG9TYW1wbGVGcmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUo
KSwgc2FtcGxlUmF0ZSk7CkBAIC0yNTIsMTggKzM3MiwyMiBAQCBmbG9hdCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMg
ZW5kVAogICAgIC8vIGFuZCBrZWVwaW5nIHRyYWNrIG9mIGEgImN1cnJlbnQiIGV2ZW50IGluZGV4
LgogICAgIGludCBuID0gbV9ldmVudHMuc2l6ZSgpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
biAmJiB3cml0ZUluZGV4IDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkgewotICAgICAgICBQYXJhbUV2
ZW50JiBldmVudCA9IG1fZXZlbnRzW2ldOwotICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQg
PSBpIDwgbiAtIDEgPyAmKG1fZXZlbnRzW2kgKyAxXSkgOiBudWxscHRyOworICAgICAgICBQYXJh
bUV2ZW50KiBldmVudCA9IG1fZXZlbnRzW2ldLmdldCgpOworICAgICAgICBQYXJhbUV2ZW50KiBu
ZXh0RXZlbnQgPSBpIDwgbiAtIDEgPyBtX2V2ZW50c1tpICsgMV0uZ2V0KCkgOiBudWxscHRyOwog
CiAgICAgICAgIC8vIFdhaXQgdW50aWwgd2UgZ2V0IGEgbW9yZSByZWNlbnQgZXZlbnQuCiAgICAg
ICAgIGlmIChuZXh0RXZlbnQgJiYgbmV4dEV2ZW50LT50aW1lKCkgPCBjdXJyZW50VGltZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGZsb2F0IHZhbHVlMSA9IGV2ZW50LnZhbHVl
KCk7Ci0gICAgICAgIGF1dG8gdGltZTEgPSBldmVudC50aW1lKCk7CisgICAgICAgIFBhcmFtRXZl
bnQ6OlR5cGUgbmV4dEV2ZW50VHlwZSA9IG5leHRFdmVudCA/IHN0YXRpY19jYXN0PFBhcmFtRXZl
bnQ6OlR5cGU+KG5leHRFdmVudC0+dHlwZSgpKSA6IFBhcmFtRXZlbnQ6Okxhc3RUeXBlIC8qIHVu
a25vd24gKi87CisKKyAgICAgICAgZmxvYXQgdmFsdWUxID0gZXZlbnQtPnZhbHVlKCk7CisgICAg
ICAgIGF1dG8gdGltZTEgPSBldmVudC0+dGltZSgpOwogICAgICAgICBmbG9hdCB2YWx1ZTIgPSBu
ZXh0RXZlbnQgPyBuZXh0RXZlbnQtPnZhbHVlKCkgOiB2YWx1ZTE7CiAgICAgICAgIGF1dG8gdGlt
ZTIgPSBuZXh0RXZlbnQgPyBuZXh0RXZlbnQtPnRpbWUoKSA6IGVuZFRpbWUgKyAxX3M7CiAKKyAg
ICAgICAgaGFuZGxlQ2FuY2VsVmFsdWVzKGV2ZW50LCBuZXh0RXZlbnQsIHZhbHVlMiwgdGltZTIs
IG5leHRFdmVudFR5cGUpOworCiAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gdGltZTIgLSB0aW1l
MTsKICAgICAgICAgYXV0byBzYW1wbGVGcmFtZVRpbWVJbmNyID0gU2Vjb25kcyB7IDEgLyBzYW1w
bGVSYXRlIH07CiAKQEAgLTI3MSw4ICszOTUsNiBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6
OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAog
ICAgICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRpbGl0aWVzOjp0aW1lVG9TYW1w
bGVGcmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUoKSwgc2FtcGxlUmF0ZSk7CiAg
ICAgICAgIGZpbGxUb0ZyYW1lID0gc3RkOjptaW4oZmlsbFRvRnJhbWUsIG51bWJlck9mVmFsdWVz
KTsKIAotICAgICAgICBQYXJhbUV2ZW50OjpUeXBlIG5leHRFdmVudFR5cGUgPSBuZXh0RXZlbnQg
PyBzdGF0aWNfY2FzdDxQYXJhbUV2ZW50OjpUeXBlPihuZXh0RXZlbnQtPnR5cGUoKSkgOiBQYXJh
bUV2ZW50OjpMYXN0VHlwZSAvKiB1bmtub3duICovOwotCiAgICAgICAgIC8vIEZpcnN0IGhhbmRs
ZSBsaW5lYXIgYW5kIGV4cG9uZW50aWFsIHJhbXBzIHdoaWNoIHJlcXVpcmUgbG9va2luZyBhaGVh
ZCB0byB0aGUgbmV4dCBldmVudC4KICAgICAgICAgaWYgKG5leHRFdmVudFR5cGUgPT0gUGFyYW1F
dmVudDo6TGluZWFyUmFtcFRvVmFsdWUpIHsKICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4
IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkgewpAQCAtMzEwLDcgKzQzMiw3IEBAIGZsb2F0
IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0
VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAvLyBIYW5kbGUgZXZlbnQgdHlwZXMgbm90IHJlcXVpcmluZyBsb29raW5nIGFoZWFk
IHRvIHRoZSBuZXh0IGV2ZW50LgotICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsK
KyAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQ
YXJhbUV2ZW50OjpTZXRWYWx1ZToKICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6TGluZWFy
UmFtcFRvVmFsdWU6CiAgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OkV4cG9uZW50aWFsUmFt
cFRvVmFsdWU6CkBAIC0zMTgsMjAgKzQ0MCw0NyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6
OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAog
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGltZSA9IGZpbGxUb1RpbWU7CiAKICAgICAgICAg
ICAgICAgICAgICAgLy8gU2ltcGx5IHN0YXkgYXQgYSBjb25zdGFudCB2YWx1ZS4KLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWUgPSBldmVudC52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB2
YWx1ZSA9IGV2ZW50LT52YWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICBmb3IgKDsgd3JpdGVJ
bmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKIAogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6Q2Fu
Y2VsVmFsdWVzOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUg
cHJldmlvdXMgZXZlbnQgd2FzIGEgU2V0VGFyZ2V0IG9yIEV4cG9uZW50aWFsUmFtcAorICAgICAg
ICAgICAgICAgIC8vIGV2ZW50LCB0aGUgY3VycmVudCB2YWx1ZSBpcyBvbmUgc2FtcGxlIGJlaGlu
ZC4gVXBkYXRlCisgICAgICAgICAgICAgICAgLy8gdGhlIHNhbXBsZSB2YWx1ZSBieSBvbmUgc2Ft
cGxlLCBidXQgb25seSBhdCB0aGUgc3RhcnQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGlzIENh
bmNlbFZhbHVlcyBldmVudC4KKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQtPmhhc0RlZmF1bHRD
YW5jZWxsZWRWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGV2ZW50LT52YWx1
ZSgpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhdXRvIGNh
bmNlbFRpbWUgPSB0aW1lMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMSAmJiBjYW5j
ZWxUaW1lIDw9IGN1cnJlbnRUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2FuY2VsVGltZSArIHNhbXBs
ZUZyYW1lVGltZUluY3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbGFzdEV2ZW50
VHlwZSA9IG1fZXZlbnRzW2kgLSAxXS0+dHlwZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGxhc3RFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gbV9ldmVudHNbaSAtIDFdLT52YWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRpbWVDb25zdGFudCA9IG1fZXZl
bnRzW2kgLSAxXS0+dGltZUNvbnN0YW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgZGlzY3JldGVUaW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oQXVkaW9VdGls
aXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIGNv
bnRyb2xSYXRlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gKHRhcmdl
dCAtIHZhbHVlKSAqIGRpc2NyZXRlVGltZUNvbnN0YW50OworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQor
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKKworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgY2FzZSBQ
YXJhbUV2ZW50OjpTZXRUYXJnZXQ6CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50VGltZSA9IGZpbGxUb1RpbWU7CiAKICAgICAgICAgICAgICAgICAgICAgLy8g
RXhwb25lbnRpYWwgYXBwcm9hY2ggdG8gdGFyZ2V0IHZhbHVlIHdpdGggZ2l2ZW4gdGltZSBjb25z
dGFudC4KLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gZXZlbnQudmFsdWUoKTsK
LSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50ID0gZXZlbnQudGltZUNvbnN0
YW50KCk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRhcmdldCA9IGV2ZW50LT52YWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICBmbG9hdCB0aW1lQ29uc3RhbnQgPSBldmVudC0+dGltZUNv
bnN0YW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRpc2NyZXRlVGltZUNvbnN0YW50
ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFu
dEZvclNhbXBsZVJhdGUodGltZUNvbnN0YW50LCBjb250cm9sUmF0ZSkpOwogCiAgICAgICAgICAg
ICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBjbG9zZSBlbm91Z2ggdG8gdGhlIHRhcmdldCwg
anVzdCBmaWxsIGluIHRoZSBkYXRhCkBAIC0zNTMsMTMgKzUwMiwxMyBAQCBmbG9hdCBBdWRpb1Bh
cmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNl
Y29uZHMgZW5kVAogCiAgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmU6
CiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBmbG9hdCogY3VydmVEYXRh
ID0gZXZlbnQuY3VydmUoKS5kYXRhKCk7Ci0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51
bWJlck9mQ3VydmVQb2ludHMgPSBldmVudC5jdXJ2ZSgpLnNpemUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmxvYXQqIGN1cnZlRGF0YSA9IGV2ZW50LT5jdXJ2ZSgpLmRhdGEoKTsKKyAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZDdXJ2ZVBvaW50cyA9IGV2ZW50LT5jdXJ2ZSgp
LnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgY3VydmVFbmRWYWx1ZSA9IGV2ZW50
LT5jdXJ2ZUVuZFZhbHVlKCk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gQ3VydmUgZXZlbnRz
IGhhdmUgZHVyYXRpb24sIHNvIGRvbid0IGp1c3QgdXNlIG5leHQgZXZlbnQgdGltZS4KLSAgICAg
ICAgICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gZHVyYXRpb25GcmFtZXMgPSBkdXJhdGlvbi52YWx1ZSgpICogc2Ft
cGxlUmF0ZTsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgY3VydmVQb2ludHNQZXJGcmFtZSA9
IHN0YXRpY19jYXN0PGZsb2F0PihudW1iZXJPZkN1cnZlUG9pbnRzKSAvIGR1cmF0aW9uRnJhbWVz
OworICAgICAgICAgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gZXZlbnQtPmR1cmF0aW9uKCk7
CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGN1cnZlUG9pbnRzUGVyRnJhbWUgPSBldmVudC0+
Y3VydmVQb2ludHNQZXJTZWNvbmQoKSAvIHNhbXBsZVJhdGU7CiAKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFjdXJ2ZURhdGEgfHwgIW51bWJlck9mQ3VydmVQb2ludHMgfHwgZHVyYXRpb24gPD0g
MF9zIHx8IHNhbXBsZVJhdGUgPD0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXJy
b3IgY29uZGl0aW9uIC0gc2ltcGx5IHByb3BhZ2F0ZSBwcmV2aW91cyB2YWx1ZS4KQEAgLTM4Nyw2
ICs1MzYsOSBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUlt
cGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgICAgICAgICAgICAgICAgICAg
ICAgY3VydmVWaXJ0dWFsSW5kZXggPSBjdXJ2ZVBvaW50c1BlckZyYW1lICogZnJhbWVPZmZzZXQ7
CiAgICAgICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhl
IGRlZmF1bHQgdmFsdWUgaW4gY2FzZSBmaWxsVG9GcmFtZSBpcyAwLgorICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IGN1cnZlRW5kVmFsdWU7CisKICAgICAgICAgICAgICAgICAgICAgLy8gUmVu
ZGVyIHRoZSBzdHJldGNoZWQgY3VydmUgZGF0YSB1c2luZyBuZWFyZXN0IG5laWdoYm9yIHNhbXBs
aW5nLgogICAgICAgICAgICAgICAgICAgICAvLyBPdmVyc2FtcGxlZCBjdXJ2ZSBkYXRhIGNhbiBi
ZSBwcm92aWRlZCBpZiBzbW9vdGhuZXNzIGlzIGRlc2lyZWQuCiAgICAgICAgICAgICAgICAgICAg
IGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkgewpAQCAtNDA1
LDE0ICs1NTcsMjAgQEAgZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JUaW1lUmFu
Z2VJbXBsKFNlY29uZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFQKIAogICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0aGVyZSdzIGFueSB0aW1lIGxlZnQgYWZ0ZXIgdGhlIGR1cmF0aW9uIG9mIHRo
aXMgZXZlbnQgYW5kIHRoZSBzdGFydAogICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgbmV4
dCwgdGhlbiBqdXN0IHByb3BhZ2F0ZSB0aGUgbGFzdCB2YWx1ZS4KLSAgICAgICAgICAgICAgICAg
ICAgZm9yICg7IHdyaXRlSW5kZXggPCBuZXh0RXZlbnRGaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4
KQotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3dyaXRlSW5kZXhdID0gdmFsdWU7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh3cml0ZUluZGV4IDwgbmV4dEV2ZW50RmlsbFRvRnJhbWUp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3VydmVFbmRWYWx1ZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgbmV4dEV2ZW50RmlsbFRvRnJh
bWU7ICsrd3JpdGVJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3Jp
dGVJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgICAgIC8vIFJlLWFkanVzdCBjdXJyZW50IHRpbWUKICAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudFRpbWUgPSBuZXh0RXZlbnRGaWxsVG9UaW1lOwogCiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6TGFz
dFR5cGU6CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC00MjUsNiAr
NTgzLDk4IEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1w
bChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgcmV0dXJuIHZhbHVlOwogfQog
CitpbmxpbmUgZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjpsaW5lYXJSYW1wQXRUaW1lKFNlY29u
ZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNlY29uZHMg
dGltZTIpCit7CisgICAgcmV0dXJuIHZhbHVlMSArICh2YWx1ZTIgLSB2YWx1ZTEpICogKHQgLSB0
aW1lMSkudmFsdWUoKSAvICh0aW1lMiAtIHRpbWUxKS52YWx1ZSgpOworfQorCitpbmxpbmUgZmxv
YXQgQXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vjb25kcyB0LCBm
bG9hdCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMikK
K3sKKyAgICByZXR1cm4gdmFsdWUxICogcG93KHZhbHVlMiAvIHZhbHVlMSwgKHQgLSB0aW1lMSku
dmFsdWUoKSAvICh0aW1lMiAtIHRpbWUxKS52YWx1ZSgpKTsKK30KKworZmxvYXQgQXVkaW9QYXJh
bVRpbWVsaW5lOjp2YWx1ZUN1cnZlQXRUaW1lKFNlY29uZHMgdCwgU2Vjb25kcyB0aW1lMSwgU2Vj
b25kcyBkdXJhdGlvbiwgY29uc3QgZmxvYXQqIGN1cnZlRGF0YSwgc2l6ZV90IGN1cnZlTGVuZ3Ro
KQoreworICAgIGRvdWJsZSBjdXJ2ZUluZGV4ID0gKGN1cnZlTGVuZ3RoIC0gMSkgLyBkdXJhdGlv
bi52YWx1ZSgpICogKHQgLSB0aW1lMSkudmFsdWUoKTsKKyAgICBzaXplX3QgayA9IHN0ZDo6bWlu
KHN0YXRpY19jYXN0PHNpemVfdD4oY3VydmVJbmRleCksIGN1cnZlTGVuZ3RoIC0gMSk7CisgICAg
c2l6ZV90IGsxID0gc3RkOjptaW4oayArIDEsIGN1cnZlTGVuZ3RoIC0gMSk7CisgICAgZmxvYXQg
YzAgPSBjdXJ2ZURhdGFba107CisgICAgZmxvYXQgYzEgPSBjdXJ2ZURhdGFbazFdOworICAgIGZs
b2F0IGRlbHRhID0gc3RkOjptaW4oY3VydmVJbmRleCAtIGssIDEuMCk7CisKKyAgICByZXR1cm4g
YzAgKyAoYzEgLSBjMCkgKiBkZWx0YTsKK30KKwordm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6Omhh
bmRsZUNhbmNlbFZhbHVlcyhQYXJhbUV2ZW50KiBldmVudCwgUGFyYW1FdmVudCogbmV4dEV2ZW50
LCBmbG9hdCYgdmFsdWUyLCBTZWNvbmRzJiB0aW1lMiwgUGFyYW1FdmVudDo6VHlwZSYgbmV4dEV2
ZW50VHlwZSkKK3sKKyAgICBpZiAobmV4dEV2ZW50ICYmIG5leHRFdmVudC0+dHlwZSgpID09IFBh
cmFtRXZlbnQ6OkNhbmNlbFZhbHVlcyAmJiBuZXh0RXZlbnQtPnNhdmVkRXZlbnQoKSkgeworICAg
ICAgICBmbG9hdCB2YWx1ZTEgPSBldmVudC0+dmFsdWUoKTsKKyAgICAgICAgYXV0byB0aW1lMSA9
IGV2ZW50LT50aW1lKCk7CisKKyAgICAgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAg
ICAgIGNhc2UgUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzOgorICAgICAgICBjYXNlIFBhcmFtRXZl
bnQ6OkxpbmVhclJhbXBUb1ZhbHVlOgorICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OkV4cG9uZW50
aWFsUmFtcFRvVmFsdWU6CisgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWU6IHsKKyAg
ICAgICAgICAgIC8vIFRoZXNlIHRocmVlIGV2ZW50cyBwb3RlbnRpYWxseSBlc3RhYmxpc2ggYSBz
dGFydGluZyB2YWx1ZSBmb3IKKyAgICAgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgZXZlbnQsIHNv
IHdlIG5lZWQgdG8gZXhhbWluZSB0aGUgY2FuY2VsbGVkCisgICAgICAgICAgICAvLyBldmVudCB0
byBzZWUgd2hhdCB0byBkby4KKyAgICAgICAgICAgIGF1dG8qIHNhdmVkRXZlbnQgPSBuZXh0RXZl
bnQtPnNhdmVkRXZlbnQoKTsKKworICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBlbmQgdGltZSBh
bmQgdHlwZSB0byBwcmV0ZW5kIHRoYXQgd2UncmUgcnVubmluZworICAgICAgICAgICAgLy8gdGhp
cyBzYXZlZCBldmVudCB0eXBlLgorICAgICAgICAgICAgdGltZTIgPSBuZXh0RXZlbnQtPnRpbWUo
KTsKKyAgICAgICAgICAgIG5leHRFdmVudFR5cGUgPSBzYXZlZEV2ZW50LT50eXBlKCk7CisKKyAg
ICAgICAgICAgIGlmIChuZXh0RXZlbnQtPmhhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSgpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBlc3RhYmxpc2hlZCBhIHZhbHVlIGZvciB0
aGUgY2FuY2VsbGVkCisgICAgICAgICAgICAgICAgLy8gZXZlbnQsIHNvIGp1c3QgcmV0dXJuIGl0
LgorICAgICAgICAgICAgICAgIHZhbHVlMiA9IG5leHRFdmVudC0+dmFsdWUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5leHQgZXZlbnQgd291bGQg
aGF2ZSBiZWVuIGEgTGluZWFyUmFtcCBvcgorICAgICAgICAgICAgICAgIC8vIEV4cG9uZW50aWFs
UmFtcCwgd2UgbmVlZCB0byBjb21wdXRlIGEgbmV3IGVuZCB2YWx1ZSBmb3IKKyAgICAgICAgICAg
ICAgICAvLyB0aGUgZXZlbnQgc28gdGhhdCB0aGUgY3VydmUgd29ya3MgY29udGludWVzIGFzIGlm
IGl0IHdlcmUKKyAgICAgICAgICAgICAgICAvLyBub3QgY2FuY2VsbGVkLgorICAgICAgICAgICAg
ICAgIHN3aXRjaCAoc2F2ZWRFdmVudC0+dHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBQ
YXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUy
ID0gbGluZWFyUmFtcEF0VGltZShuZXh0RXZlbnQtPnRpbWUoKSwgdmFsdWUxLCB0aW1lMSwgc2F2
ZWRFdmVudC0+dmFsdWUoKSwgc2F2ZWRFdmVudC0+dGltZSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJh
bXBUb1ZhbHVlOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZTIgPSBleHBvbmVudGlhbFJhbXBB
dFRpbWUobmV4dEV2ZW50LT50aW1lKCksIHZhbHVlMSwgdGltZTEsIHNhdmVkRXZlbnQtPnZhbHVl
KCksIHNhdmVkRXZlbnQtPnRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZToKKyAgICAgICAgICAg
ICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlOgorICAgICAgICAgICAgICAgIGNhc2UgUGFy
YW1FdmVudDo6U2V0VGFyZ2V0OgorICAgICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6Q2Fu
Y2VsVmFsdWVzOgorICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBjYW5ub3QgYmUgcG9zc2li
bGUgdHlwZXMgZm9yIHRoZSBzYXZlZCBldmVudCBiZWNhdXNlIHRoZXkgY2FuJ3QgYmUgY3JlYXRl
ZC4KKyAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlQ2FuY2VsVmFsdWVzRXZlbnQgZG9lc24n
dCBhbGxvdyB0aGVtIChTZXRWYWx1ZSwgU2V0VGFyZ2V0LCBDYW5jZWxWYWx1ZXMpIG9yCisgICAg
ICAgICAgICAgICAgICAgIC8vIGNhbmNlbFNjaGVkdWxlZFZhbHVlcygpIGRvZXNuJ3QgY3JlYXRl
IHN1Y2ggYW4gZXZlbnQgKFNldFZhbHVlQ3VydmUpLgorICAgICAgICAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIENhY2hlIHRoZSBuZXcgdmFsdWUgc28gd2Ug
ZG9uJ3Qga2VlcCBjb21wdXRpbmcgaXQgb3ZlciBhbmQgb3Zlci4KKyAgICAgICAgICAgICAgICBu
ZXh0RXZlbnQtPnNldENhbmNlbGxlZFZhbHVlKHZhbHVlMik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZToKKyAg
ICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgbmVlZGVkIGZvciB0aGlzIHdhcyBoYW5kbGVkIHdoZW4g
Y2FuY2VsbGluZyB3YXMKKyAgICAgICAgICAgIC8vIGRvbmUuCisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQ6CisgICAgICAgICAgICAvLyBOb3Ro
aW5nIHNwZWNpYWwgbmVlZHMgdG8gYmUgZG9uZSBmb3IgU2V0VGFyZ2V0CisgICAgICAgICAgICAv
LyBmb2xsb3dlZCBieSBDYW5jZWxWYWx1ZXMuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRl
eCBjOTBlMDg1ODQyYjYuLjM2NWVhN2YxMzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oCkBAIC00OCw3ICs0OCw4IEBA
IHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIFNlY29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0
YW50KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUN1cnZlQXRUaW1lKFZlY3Rvcjxm
bG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9uKTsKLSAgICB2b2lk
IGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIHN0YXJ0VGltZSk7CisgICAgdm9pZCBjYW5j
ZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKTsKKyAgICBFeGNlcHRpb25Pcjx2
b2lkPiBjYW5jZWxBbmRIb2xkQXRUaW1lKFNlY29uZHMgY2FuY2VsVGltZSk7CiAKICAgICAvLyBo
YXNWYWx1ZSBpcyBzZXQgdG8gdHJ1ZSBpZiBhIHZhbGlkIHRpbWVsaW5lIHZhbHVlIGlzIHJldHVy
bmVkLgogICAgIC8vIG90aGVyd2lzZSBkZWZhdWx0VmFsdWUgaXMgcmV0dXJuZWQuCkBAIC02NSw2
ICs2Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjbGFzcyBQYXJhbUV2ZW50IHsKKyAg
ICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBlbnVt
IFR5cGUgewogICAgICAgICAgICAgU2V0VmFsdWUsCkBAIC03MiwzOSArNzQsMTMyIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLAogICAgICAgICAgICAgU2V0
VGFyZ2V0LAogICAgICAgICAgICAgU2V0VmFsdWVDdXJ2ZSwKKyAgICAgICAgICAgIENhbmNlbFZh
bHVlcywKICAgICAgICAgICAgIExhc3RUeXBlCiAgICAgICAgIH07CiAKLSAgICAgICAgUGFyYW1F
dmVudChUeXBlIHR5cGUsIGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRpbWVDb25z
dGFudCwgU2Vjb25kcyBkdXJhdGlvbiwgVmVjdG9yPGZsb2F0PiYmIGN1cnZlKQorICAgICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IGNyZWF0ZVNldFZhbHVlRXZlbnQoZmxv
YXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmlxdWU8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWUsIHZhbHVlLCB0aW1lLCAw
LCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworICAgICAg
ICB9CisKKyAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50PiBjcmVhdGVM
aW5lYXJSYW1wRXZlbnQoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6TGluZWFy
UmFtcFRvVmFsdWUsIHZhbHVlLCB0aW1lLCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7
IH0sIDAsIDAsIG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxQYXJhbUV2ZW50PiBjcmVhdGVFeHBvbmVudGlhbFJhbXBFdmVudChmbG9hdCB2YWx1
ZSwgU2Vjb25kcyB0aW1lKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1
ZTxQYXJhbUV2ZW50PihQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLCB2YWx1ZSwg
dGltZSwgMCwgU2Vjb25kcyB7IH0sIFZlY3RvcjxmbG9hdD4geyB9LCAwLCAwLCBudWxscHRyKTsK
KyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1FdmVudD4g
Y3JlYXRlU2V0VGFyZ2V0RXZlbnQoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRp
bWVDb25zdGFudCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIHRpbWUgbGluZSBjb2Rl
IGRvZXMgbm90IGV4cGVjdCBhIHRpbWVDb25zdGFudCBvZiAwLiAoSXQgcmV0dXJucyBOYU4gb3Ig
SW5maW5pdHkgZHVlIHRvIGRpdmlzaW9uIGJ5IHplcm8uIFRoZSBjYWxsZXIKKyAgICAgICAgICAg
IC8vIHNob3VsZCBoYXZlIGNvbnZlcnRlZCB0aGlzIHRvIGEgU2V0VmFsdWVFdmVudC4KKyAgICAg
ICAgICAgIEFTU0VSVCghIXRpbWVDb25zdGFudCk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZTxQYXJhbUV2ZW50PihQYXJhbUV2ZW50OjpTZXRUYXJnZXQsIHRhcmdldCwgdGltZSwgdGlt
ZUNvbnN0YW50LCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIp
OworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50
PiBjcmVhdGVTZXRWYWx1ZUN1cnZlRXZlbnQoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRz
IHRpbWUsIFNlY29uZHMgZHVyYXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvdWJsZSBj
dXJ2ZVBvaW50c1BlclNlY29uZCA9IChjdXJ2ZS5zaXplKCkgLSAxKSAvIGR1cmF0aW9uLnZhbHVl
KCk7CisgICAgICAgICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0gY3VydmUubGFzdCgpOworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFs
dWVDdXJ2ZSwgMCwgdGltZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpLCBjdXJ2ZVBvaW50
c1BlclNlY29uZCwgY3VydmVFbmRWYWx1ZSwgbnVsbHB0cik7CisgICAgICAgIH0KKworICAgICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IGNyZWF0ZUNhbmNlbFZhbHVlc0V2
ZW50KFNlY29uZHMgY2FuY2VsVGltZSwgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IHNhdmVk
RXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzYXZlZEV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgLy8gVGhlIHNhdmVkRXZlbnQgY2FuIG9ubHkgaGF2ZSBjZXJ0YWluIGV2ZW50IHR5
cGVzLiBWZXJpZnkgdGhhdC4KKyAgICAgICAgICAgICAgICBhdXRvIHNhdmVkRXZlbnRUeXBlID0g
c2F2ZWRFdmVudC0+dHlwZSgpOworCisgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkRXZlbnRU
eXBlICE9IFBhcmFtRXZlbnQ6Okxhc3RUeXBlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2
ZWRFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6TGluZWFyUmFtcFRvVmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgfHwgc2F2ZWRFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6RXhwb25lbnRpYWxSYW1w
VG9WYWx1ZQorICAgICAgICAgICAgICAgICAgICB8fCBzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2
ZW50OjpTZXRWYWx1ZUN1cnZlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPFBhcmFtRXZlbnQ+KFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlcywgMCwgY2FuY2Vs
VGltZSwgMCwgU2Vjb25kcyB7IH0sIFZlY3RvcjxmbG9hdD4geyB9LCAwLCAwLCBXVEZNb3ZlKHNh
dmVkRXZlbnQpKTsKKyAgICAgICAgfQorCisgICAgICAgIFBhcmFtRXZlbnQoVHlwZSB0eXBlLCBm
bG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQsIFNlY29uZHMgZHVy
YXRpb24sIFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgZG91YmxlIGN1cnZlUG9pbnRzUGVyU2Vjb25k
LCBmbG9hdCBjdXJ2ZUVuZFZhbHVlLCBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1FdmVudD4gc2F2ZWRF
dmVudCkKICAgICAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICAgICAsIG1fdmFsdWUo
dmFsdWUpCiAgICAgICAgICAgICAsIG1fdGltZSh0aW1lKQogICAgICAgICAgICAgLCBtX3RpbWVD
b25zdGFudCh0aW1lQ29uc3RhbnQpCiAgICAgICAgICAgICAsIG1fZHVyYXRpb24oZHVyYXRpb24p
CiAgICAgICAgICAgICAsIG1fY3VydmUoV1RGTW92ZShjdXJ2ZSkpCisgICAgICAgICAgICAsIG1f
Y3VydmVQb2ludHNQZXJTZWNvbmQoY3VydmVQb2ludHNQZXJTZWNvbmQpCisgICAgICAgICAgICAs
IG1fY3VydmVFbmRWYWx1ZShjdXJ2ZUVuZFZhbHVlKQorICAgICAgICAgICAgLCBtX3NhdmVkRXZl
bnQoV1RGTW92ZShzYXZlZEV2ZW50KSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
dW5zaWduZWQgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgICAgICBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAgICAgZmxvYXQgdmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgICAgIFNlY29uZHMgdGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdGltZTsgfQogICAgICAgICBmbG9hdCB0aW1lQ29uc3RhbnQoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVDb25zdGFudDsgfQogICAgICAgICBTZWNvbmRzIGR1cmF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9kdXJhdGlvbjsgfQogICAgICAgICBWZWN0b3I8ZmxvYXQ+JiBjdXJ2ZSgpIHsgcmV0
dXJuIG1fY3VydmU7IH0KKyAgICAgICAgUGFyYW1FdmVudCogc2F2ZWRFdmVudCgpIHsgcmV0dXJu
IG1fc2F2ZWRFdmVudC5nZXQoKTsgfQorCisgICAgICAgIHZvaWQgc2V0Q2FuY2VsbGVkVmFsdWUo
ZmxvYXQgY2FuY2VsbGVkVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gVHlwZTo6Q2FuY2VsVmFsdWVzKTsKKyAgICAgICAgICAgIG1fdmFsdWUgPSBjYW5jZWxs
ZWRWYWx1ZTsKKyAgICAgICAgICAgIG1faGFzRGVmYXVsdENhbmNlbGxlZFZhbHVlID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBib29sIGhhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSgpIGNvbnN0
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6Q2FuY2VsVmFs
dWVzKTsKKyAgICAgICAgICAgIHJldHVybiBtX2hhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIGRvdWJsZSBjdXJ2ZVBvaW50c1BlclNlY29uZCgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VydmVQb2ludHNQZXJTZWNvbmQ7IH0KKyAgICAgICAgZmxvYXQgY3VydmVFbmRW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VydmVFbmRWYWx1ZTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdW5zaWduZWQgbV90eXBlOwotICAgICAgICBmbG9hdCBtX3ZhbHVlOworICAgICAg
ICBUeXBlIG1fdHlwZTsKKyAgICAgICAgZmxvYXQgbV92YWx1ZSB7IDAgfTsKICAgICAgICAgU2Vj
b25kcyBtX3RpbWU7Ci0gICAgICAgIGZsb2F0IG1fdGltZUNvbnN0YW50OworCisgICAgICAgIC8v
IE9ubHkgdXNlZCBmb3IgU2V0VGFyZ2V0IGV2ZW50cy4KKyAgICAgICAgZmxvYXQgbV90aW1lQ29u
c3RhbnQgeyAwIH07CisKKyAgICAgICAgLy8gVGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJ2ZS4KICAg
ICAgICAgU2Vjb25kcyBtX2R1cmF0aW9uOworCisgICAgICAgIC8vIFRoZSBhcnJheSBvZiBjdXJ2
ZSBwb2ludHMuCiAgICAgICAgIFZlY3RvcjxmbG9hdD4gbV9jdXJ2ZTsKKworICAgICAgICAvLyBU
aGUgbnVtYmVyIG9mIGN1cnZlIHBvaW50cyBwZXIgc2Vjb25kLiBpdCBpcyB1c2VkIHRvIGNvbXB1
dGUKKyAgICAgICAgLy8gdGhlIGN1cnZlIGluZGV4IHN0ZXAgd2hlbiBydW5uaW5nIHRoZSBhdXRv
bWF0aW9uLgorICAgICAgICBkb3VibGUgbV9jdXJ2ZVBvaW50c1BlclNlY29uZCB7IDAgfTsKKwor
ICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSB0byB1c2UgYXQgdGhlIGVuZCBvZiB0aGUgY3Vy
dmUuIE5vcm1hbGx5CisgICAgICAgIC8vIGl0J3MgdGhlIGxhc3QgZW50cnkgaW4gbV9jdXJ2ZSwg
YnV0IGNhbmNlbGxpbmcgYSBTZXRWYWx1ZUN1cnZlCisgICAgICAgIC8vIHdpbGwgc2V0IHRoaXMg
dG8gYSBuZXcgdmFsdWUuCisgICAgICAgIGZsb2F0IG1fY3VydmVFbmRWYWx1ZSB7IDAgfTsKKwor
ICAgICAgICAvLyBUcnVlIGlmIGEgZGVmYXVsdCB2YWx1ZSBoYXMgYmVlbiBhc3NpZ25lZCB0byB0
aGUgQ2FuY2VsVmFsdWVzIGV2ZW50LgorICAgICAgICBib29sIG1faGFzRGVmYXVsdENhbmNlbGxl
ZFZhbHVlIHsgZmFsc2UgfTsKKworICAgICAgICAvLyBGb3IgQ2FuY2VsVmFsdWVzLiBJZiBDYW5j
ZWxWYWx1ZXMgaXMgaW4gdGhlIG1pZGRsZSBvZiBhbiBldmVudCwgdGhpcworICAgICAgICAvLyBo
b2xkcyB0aGUgZXZlbnQgdGhhdCBpcyBiZWluZyBjYW5jZWxsZWQsIHNvIHRoYXQgcHJvY2Vzc2lu
ZyBjYW4KKyAgICAgICAgLy8gY29udGludWUgYXMgaWYgdGhlIGV2ZW50IHN0aWxsIGV4aXN0ZWQg
dXAgdW50aWwgd2UgcmVhY2ggdGhlIGFjdHVhbAorICAgICAgICAvLyBzY2hlZHVsZWQgY2FuY2Vs
IHRpbWUuCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50PiBtX3NhdmVkRXZlbnQ7
CiAgICAgfTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEV2ZW50KGNvbnN0IFBhcmFt
RXZlbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVu
dFRvUmVtb3ZlKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRFdmVudChzdGQ6OnVuaXF1
ZV9wdHI8UGFyYW1FdmVudD4pOwogICAgIGZsb2F0IHZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vj
b25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVGltZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9h
dCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRv
dWJsZSBjb250cm9sUmF0ZSk7CisgICAgZmxvYXQgbGluZWFyUmFtcEF0VGltZShTZWNvbmRzIHQs
IGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNvbmRzIHRpbWUy
KTsKKyAgICBmbG9hdCBleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vjb25kcyB0LCBmbG9hdCB2YWx1
ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMik7CisgICAgZmxv
YXQgdmFsdWVDdXJ2ZUF0VGltZShTZWNvbmRzIHQsIFNlY29uZHMgdGltZTEsIFNlY29uZHMgZHVy
YXRpb24sIGNvbnN0IGZsb2F0KiBjdXJ2ZURhdGEsIHNpemVfdCBjdXJ2ZUxlbmd0aCk7CisgICAg
dm9pZCBoYW5kbGVDYW5jZWxWYWx1ZXMoUGFyYW1FdmVudCosIFBhcmFtRXZlbnQqIG5leHRFdmVu
dCwgZmxvYXQmIHZhbHVlMiwgU2Vjb25kcyYgdGltZTIsIFBhcmFtRXZlbnQ6OlR5cGUmIG5leHRF
dmVudFR5cGUpOwogCi0gICAgVmVjdG9yPFBhcmFtRXZlbnQ+IG1fZXZlbnRzOworICAgIFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1FdmVudD4+IG1fZXZlbnRzOwogCiAgICAgTG9jayBtX2V2
ZW50c011dGV4OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408162</attachid>
            <date>2020-09-06 19:53:34 -0700</date>
            <delta_ts>2020-09-07 11:36:15 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>215947_AudioParam_cancelAndHoldAtTime_wip.patch</filename>
            <type>text/plain</type>
            <size>89680</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1o
b2xkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2Vs
LWFuZC1ob2xkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjliMTVhNTQyNDYyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
MyBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGlu
ZyAibGluZWFyIiAKK1BBU1MgRXhlY3V0aW5nICJleHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGlu
ZyAic2V0VGFyZ2V0IiAKK1BBU1MgRXhlY3V0aW5nICJzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgRXhl
Y3V0aW5nICJzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCIgCitQQVNTIEV4ZWN1dGluZyAiaW5pdGlh
bCBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBMaW5lYXIiIAorUEFT
UyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAi
cG9zdCBjYW5jZWw6IFZhbHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBz
ZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRWYWx1ZSIgCitQQVNT
IEV4ZWN1dGluZyAiY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgImNh
bmNlbCBzZXRUYXJnZXQgbm93IiAKK1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgZnV0dXJlIHNldFZh
bHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdyIgCitQ
QVNTIEV4ZWN1dGluZyAibGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXIiIAor
UEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2xpbmVhcl0gQ2FuY2VsIGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lIAorUEFTUyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5
OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgz
NjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgz
MzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIw
ODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAu
MDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5
OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29u
dGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBl
Y3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdp
dGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTIDwgW2xpbmVhcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxd
IENhbmNlbCBleHBvbmVudGlhbFJhbXBBdFRpbWUgCitQQVNTICAgZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZSgwLjAwMSwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5
MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMz
MzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAx
NDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiww
LjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1Mjkw
MywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjUuOTYw
NWUtOCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIGV4cG9uZW50
aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhl
IGNvbnN0YW50IDAuMDMzOTMyMjIwMTkwNzYzNDc0LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBm
b3IgY2FuY2VsbGluZyBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAwLjUpIGF0IHRpbWUg
MC4yNSBpcyAwLjAzMzkzMjIxNjQ2NTQ3MzE3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDE4
NjY0LiAKK1BBU1MgPCBbZXhwb25lbnRpYWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFRhcmdldF0gQ2FuY2VsIHNldFRhcmdldEF0VGlt
ZSAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgdXAgdG8gdGltZSAwLjI1
IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYy
NTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUs
MC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1
NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMw
MDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2
NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7
ImFic29sdXRlVGhyZXNob2xkIjo0LjUyNjdlLTcsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQ
QVNTICAgQ2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAw
LjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDA4MjI2MzIxMDc4ODM2OTE4LiAKK0ZB
SUwgWCBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4w
MSwgMC4wNSkgYXQgdGltZSAwLjI1IGlzIG5vdCBjbG9zZSB0byAwLjAwODIyOTc0NzQxNDU4ODky
OCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA0LjUyNjdlLTcgKFJlbEVycj0wLjAwMDQxNjMz
NTQ2OTI5MjM0NTE2KS4gR290IDAuMDA4MjI2MzIxMDc4ODM2OTE4LiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbc2V0VGFyZ2V0XSAxIG91dCBvZiAzIGFzc2Vy
dGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyA+IFtzZXRWYWx1ZUN1cnZlXSBDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSAKK1BBU1Mg
ICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjQ5KSB1cCB0byB0aW1lIDAuMjUg
ZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1
MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSww
LjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1
OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAw
NzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0
OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2Fu
Y2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjQ5KSBhdCB0aW1lIDAu
MjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1Mg
ICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBd
LCAwLjAxLCAwLjQ5KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwODE2MzI2NTMgd2l0aGluIGFu
IGVycm9yIG9mIDkuNTM2OGUtOS4gCitQQVNTIDwgW3NldFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFZhbHVlQ3VydmUg
YWZ0ZXIgZW5kXSBDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSBhZnRlciB0aGUgZW5kIAorUEFT
UyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuMTE0OTk5OTk5OTk5OTk5OTkp
IHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2
NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEw
NDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMs
MC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1
MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5
MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEs
IDAuMTE0OTk5OTk5OTk5OTk5OTkpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25z
dGFudCAwLiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRWYWx1ZUN1
cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5KSBhdCB0aW1lIDAuMjUg
aXMgMCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTIDwgW3NldFZhbHVlQ3VydmUgYWZ0ZXIg
ZW5kXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+
IFtpbml0aWFsIHNldFRhcmdldF0gQ2FuY2VsIHdpdGggaW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUg
CitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAuMSkgdXAgdG8gdGltZSAwLjI1IGVx
dWFscyBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDAxMjMyLCJyZWxh
dGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VGFyZ2V0QXRUaW1lKDAs
IDAuMDEsIDAuMSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDkw
Njk4Nzc4NjI5MzAyOTguIAorRkFJTCBYIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNl
dFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIGF0IHRpbWUgMC4yNSBpcyBub3QgY2xvc2UgdG8g
MC4wOTA3MTc5NTY0MjM3NTk0NiB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiAwLjAwMDAwMTIz
MiAoUmVsRXJyPTAuMDAwMjExNDAwMjAzNTgxNTE2OTUpLiBHb3QgMC4wOTA2OTg3Nzg2MjkzMDI5
OC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgW2luaXRpYWwg
c2V0VGFyZ2V0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3N0IGNhbmNlbDogTGluZWFyXSBM
aW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcgCitQQVNTICAgUG9zdCBjYW5jZWxsYXRpb24gbGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGlt
ZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgs
MC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5Nzcx
MDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2
NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkx
NjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAy
OTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVk
IHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIw
NDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0
IGxpbmVhclJhbXAoMiwgMC4zNzUpIGVxdWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwNDUy
Mzg5NzE3MTAyLDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDk0ODk1NjAxMjcyNTgsMC41MTExOTcy
Njg5NjI4NjAxLDAuNTExNDQ1NTgxOTEyOTk0NCwwLjUxMTY5Mzg5NDg2MzEyODcsMC41MTE5NDIx
NDgyMDg2MTgyLDAuNTEyMTkwNDYxMTU4NzUyNCwwLjUxMjQzODc3NDEwODg4NjcsMC41MTI2ODcw
ODcwNTkwMjEsMC41MTI5MzUzNDA0MDQ1MTA1LDAuNTEzMTgzNjUzMzU0NjQ0OCwwLjUxMzQzMTk2
NjMwNDc3OSwwLjUxMzY4MDI3OTI1NDkxMzMsMC41MTM5Mjg1OTIyMDUwNDc2Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5jZWw6IExpbmVhcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BBU1MgPiBbcG9zdCBjYW5jZWw6
IEV4cG9uZW50aWFsXSBFeHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKK1BBU1MgICBQ
b3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1
ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSww
LjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYy
Nzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMy
NDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMz
MzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3
MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVs
ZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBl
eHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0
IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2Nzgu
IAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIGV4cG9u
ZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGlt
ZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5
OTguIAorUEFTUyAgIFBvc3QgZXhwb25lbnRpYWxSYW1wKDIsIDAuMzc1KSBlcXVhbHMgWzAuNTEw
MjA0MDc2NzY2OTY3OCwwLjUxMDMyMDI0NjIxOTYzNSwwLjUxMDQzNjQxNTY3MjMwMjIsMC41MTA1
NTI2NDQ3Mjk2MTQzLDAuNTEwNjY4ODczNzg2OTI2MywwLjUxMDc4NTE2MjQ0ODg4MzEsMC41MTA5
MDE0NTExMTA4Mzk4LDAuNTExMDE3Nzk5Mzc3NDQxNCwwLjUxMTEzNDE0NzY0NDA0MywwLjUxMTI1
MDU1NTUxNTI4OTMsMC41MTEzNjY5NjMzODY1MzU2LDAuNTExNDgzMzcxMjU3NzgyLDAuNTExNTk5
ODM4NzMzNjczMSwwLjUxMTcxNjMwNjIwOTU2NDIsMC41MTE4MzI4MzMyOTAxMDAxLDAuNTExOTQ5
MzYwMzcwNjM2Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5j
ZWw6IEV4cG9uZW50aWFsXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlv
bnMpIAorUEFTUyA+IFtwb3N0IGNhbmNlbDogVmFsdWVDdXJ2ZV0gIAorUEFTUyAgIFBvc3QgY2Fu
Y2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8g
dGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEz
OTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5
NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2
NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAy
MjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4Nyww
LjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hv
bGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRp
bWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFt
cFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhp
biBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRWYWx1ZUN1cnZlKFsw
LjEyNSwyXSwgMC4zNzUsIDAuMTI1KSBlcXVhbHMgWzAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIw
NDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OC4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAw
MDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtwb3N0IGNhbmNlbDogVmFs
dWVDdXJ2ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbcG9zdCBjYW5jZWw6IHNldFRhcmdldF0gIAorUEFTUyAgIFBvc3QgY2FuY2VsIHNldFRh
cmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1
YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAw
MDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAx
MjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIs
MC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2
ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4
MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFT
UyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUx
MDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBv
c3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0
aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4
Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRUYXJnZXRBdFRpbWUoMC4xMjUsIDAuMzc1LCAwLjEpIGVx
dWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMTIzODQ4OTE1MTAwMSwwLjUxMDA0MzYyMTA2
MzIzMjQsMC41MDk5NjMzOTMyMTEzNjQ3LDAuNTA5ODgzMjI0OTY0MTQxOCwwLjUwOTgwMzA1Njcx
NjkxOSwwLjUwOTcyMjg4ODQ2OTY5NiwwLjUwOTY0MjcyMDIyMjQ3MzEsMC41MDk1NjI2MTE1Nzk4
OTUsMC41MDk0ODI1MDI5MzczMTY5LDAuNTA5NDAyMzk0Mjk0NzM4OCwwLjUwOTMyMjM0NTI1Njgw
NTQsMC41MDkyNDIyOTYyMTg4NzIxLDAuNTA5MTYyMjQ3MTgwOTM4NywwLjUwOTA4MjE5ODE0MzAw
NTQsMC41MDkwMDIyMDg3MDk3MTY4Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODQwMzcsInJlbGF0aXZlVGhyZXNob2xkIjow
fS4gCitQQVNTIDwgW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZV0g
IAorUEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgw
LCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAw
NDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2
LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0
MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMz
OTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgz
MzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJl
bGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRW
YWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBlY3Rl
ZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdp
dGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRWYWx1ZUF0VGlt
ZSgwLjEyNSwgMC4zNzUpIGVxdWFscyBbMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4x
MjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUs
MC4xMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtwb3N0IGNhbmNlbDog
c2V0VmFsdWVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGlu
ZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMC41LiAKK1BBU1MgPCBbY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2NhbmNlbCBzZXRUYXJnZXQg
bm93XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBzZXRUYXJnZXQgZXZlbnQgc3RhcnRpbmcg
bm93LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgPCBbY2Fu
Y2VsIHNldFRhcmdldCBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykgCitQQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZV0gIAorUEFTUyAgIEFm
dGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91dHB1dCBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwgZnV0dXJlIHNldFZhbHVl
Q3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNT
ID4gW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vd10gIAorUEFTUyAgIEFmdGVyIGNhbmNlbGxpbmcg
Y3VycmVudCBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0IGNvbnRhaW5z
IG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5v
d10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
bGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIFNjaGVkdWxlcyAzIGxpbmVh
ciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sIHNvIHRoYXQgd2UgZW5kIHVwIHdpdGggMiBj
YW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlciAKK0ZBSUwgWCAxc3QgbGluZWFyUmFtcDog
bGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3QgZXF1YWwg
WzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkz
MTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAw
MDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAx
ODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSww
LjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4
NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJCUV4
cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzcxNV0JOS45MDAw
ODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVl
LTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs3NTZdCTku
ODgyNjUzMzU1NTk4NDQ5N2UtMQk5Ljg4MjY1Mjc1OTU1MjAwMjBlLTEJNS45NjA0NjQ0Nzc1Mzkw
NjI1ZS04CTYuMDMxMjM5NDA3NjM1NzkwN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMTEw
MF0JOS43MzYzOTQ4ODIyMDIxNDg0ZS0xCTkuNzM2Mzk0Mjg2MTU1NzAwN2UtMQk1Ljk2MDQ2NDQ3
NzUzOTA2MjVlLTgJNi4xMjE4Mzk2NjkxNDE1MDE1ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAor
CVsxMjIzXQk5LjY4NDA5ODk1ODk2OTExNjJlLTEJOS42ODQwOTgzNjI5MjI2Njg1ZS0xCTUuOTYw
NDY0NDc3NTM5MDYyNWUtOAk2LjE1NDg5ODczNjIyMDc5NzRlLTgJMC4wMDAwMDAwMDAwMDAwMDAw
ZSswCisJWzEyNDVdCTkuNjc0NzQ1MjAyMDY0NTE0MmUtMQk5LjY3NDc0NDYwNjAxODA2NjRlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTYwODQ5NDI4MzQ3MTAzNGUtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwkuLi5hbmQgMTEyNSBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45
NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0IGluZGV4IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4x
NjgwNTYzMjI3NDE0Mzc2ZS03IGF0IGluZGV4IG9mIDExOTk4LgorCVsxMTk5OF0JNS4xMDI4OTE5
MjE5OTcwNzAzZS0xCTUuMTAyODkxMzI1OTUwNjIyNmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJ
MS4xNjgwNTYzMjI3NDE0Mzc2ZS03CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIENhbmNlbGxpbmcgMXN0IGxpbmVhclJh
bXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
YXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4g
CitQQVNTICAgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBlcXVhbHMgWzAuNTEwMjA0MDc2NzY2OTY3
OCwwLjUxMDMyODIzMzI0MjAzNDksMC41MTA0NTIzODk3MTcxMDIsMC41MTA1NzY1NDYxOTIxNjky
LDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDgyNDc5OTUzNzY1ODcsMC41MTA5NDg5NTYwMTI3MjU4
LDAuNTExMDczMTEyNDg3NzkzLDAuNTExMTk3MjY4OTYyODYwMSwwLjUxMTMyMTQyNTQzNzkyNzIs
MC41MTE0NDU1ODE5MTI5OTQ0LDAuNTExNTY5NzM4Mzg4MDYxNSwwLjUxMTY5Mzg5NDg2MzEyODcs
MC41MTE4MTgwNTEzMzgxOTU4LDAuNTExOTQyMTQ4MjA4NjE4MiwwLjUxMjA2NjMwNDY4MzY4NTMu
Li5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgMm5kIGxpbmVh
clJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEu
MjU1MTAyMDM4MzgzNDgzOS4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcg
Mm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGlzIDEuMjU1MTAyMDM4MzgzNDgz
OSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTICAgM3JkIGxpbmVhclJhbXAoMCwgMC41KSBl
cXVhbHMgWzEuMjU1MTAyMDM4MzgzNDgzOSwxLjI1NDg5MjgyNjA4MDMyMjMsMS4yNTQ2ODM2MTM3
NzcxNjA2LDEuMjU0NDc0NTIwNjgzMjg4NiwxLjI1NDI2NTMwODM4MDEyNywxLjI1NDA1NjA5NjA3
Njk2NTMsMS4yNTM4NDY4ODM3NzM4MDM3LDEuMjUzNjM3NzkwNjc5OTMxNiwxLjI1MzQyODU3ODM3
Njc3LDEuMjUzMjE5MzY2MDczNjA4NCwxLjI1MzAxMDE1Mzc3MDQ0NjgsMS4yNTI4MDEwNjA2NzY1
NzQ3LDEuMjUyNTkxODQ4MzczNDEzLDEuMjUyMzgyNjM2MDcwMjUxNSwxLjI1MjE3MzQyMzc2NzA4
OTgsMS4yNTE5NjQzMzA2NzMyMTc4Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwg
PCBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIDEgb3V0IG9mIDcgYXNz
ZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDMgb3V0IG9mIDE2IHRhc2tzIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYTZhMGZmMTMwZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1h
bmQtaG9sZC5odG1sCkBAIC0wLDAgKzEsODIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IENhbmNlbFZhbHVlc0FuZEhvbGRBdFRp
bWUKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby1wYXJhbS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVS
YXRlID0gNDgwMDA7CisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSAwLjU7CisKKyAgICAgIGxl
dCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gVGhlIGZpcnN0
IGZldyB0YXNrcyB0ZXN0IHRoZSBjYW5jZWxsYXRpb24gb2YgZWFjaCByZWxldmFudCBhdXRvbWF0
aW9uCisgICAgICAvLyBmdW5jdGlvbi4gIEZvciB0aGUgdGVzdCwgYSBzaW1wbGUgbGluZWFyIHJh
bXAgZnJvbSAwIHRvIDEgaXMgdXNlZCB0bworICAgICAgLy8gc3RhcnQgdGhpbmdzIG9mZi4gIFRo
ZW4gdGhlIGF1dG9tYXRpb24gdG8gYmUgdGVzdGVkIGlzIHNjaGVkdWxlZCBhbmQKKyAgICAgIC8v
IGNhbmNlbGxlZC4KKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ2xp
bmVhcicsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJ30sCisg
ICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICBjYW5jZWxUZXN0
KHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksIHsKKyAg
ICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwKKyAgICAgICAgICAgICAgY3Vy
dmVUaHJlc2hvbGQ6IDguMzk5OGUtNQorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmlu
ZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAg
ICB7bGFiZWw6ICdleHBvbmVudGlhbCcsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGV4cG9uZW50aWFs
UmFtcEF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAg
ICAgICAgLy8gQ2FuY2VsIGFuIGV4cG9uZW50aWFsIHJhbXAuICBUaGUgdGhyZXNob2xkcyBhcmUg
ZXhwZXJpbWVudGFsbHkKKyAgICAgICAgICAgIC8vIGRldGVybWluZWQuCisgICAgICAgICAgICBj
YW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAg
ICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0u
Z2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZh
bHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVh
ciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0
aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAgdG8gdGhlIGVuZC4K
KyAgICAgICAgICAgICAgLy8gKFRoaXMgaXMgdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBiZSBjYW5j
ZWxsZWQuKQorICAgICAgICAgICAgICBsZXQgdjEgPSAwLjAwMTsKKyAgICAgICAgICAgICAgbGV0
IHQxID0gcmVuZGVyRHVyYXRpb247CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLmV4
cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKworICAgICAgICAgICAgICBleHBl
Y3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAgICB2MCAqIE1hdGgu
cG93KHYxIC8gdjAsIChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKSk7CisgICAgICAgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRD
b25zdGFudCwKKyAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ2V4cG9uZW50aWFsUmFtcFRv
VmFsdWUoJyArIHYxICsgJywgJyArIHQxICsgJyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6
ICdleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDEuODY2NGUtNiwKKyAg
ICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDUuOTYwNWUtOAorICAgICAgICAgICAgfSkudGhl
bih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgKKyAgICAgICAgICB7bGFiZWw6ICdzZXRUYXJnZXQnLCBkZXNjcmlwdGlvbjogJ0NhbmNl
bCBzZXRUYXJnZXRBdFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsK
KyAgICAgICAgICAgIC8vIENhbmNlbCBhIHNldFRhcmdldCBldmVudC4KKyAgICAgICAgICAgIGNh
bmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAg
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAgICAgICAgZ1swXS5n
YWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFs
dWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFy
IHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAgIC8vIEF0IHRoZSBl
bmQgb2YgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFRhcmdldC4gIChUaGlzIGlzCisg
ICAgICAgICAgICAgIC8vIHRoZSBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikKKyAgICAg
ICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IHQxID0gdDA7CisgICAgICAg
ICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAwLjA1OworCisgICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRUYXJnZXRBdFRpbWUodjEsIHQxLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBn
WzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MSwgdGltZUNvbnN0YW50KTsKKworICAgICAg
ICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAg
ICB2MSArICh2MCAtIHYxKSAqIE1hdGguZXhwKC0oY2FuY2VsVGltZSAtIHQwKSAvIHRpbWVDb25z
dGFudCkpOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVk
Q29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6
ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsgJywgJyArIHQxICsgJywgJyArCisgICAgICAgICAg
ICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKKyAgICAgICAgICAgICAgICBzdW1tYXJ5OiAn
c2V0VGFyZ2V0QXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDQuNTI2N2UtNywgIC8vIDEuMTMxN2UtNywKKyAg
ICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDQuNTI2N2UtNworICAgICAgICAgICAgfSkudGhl
bih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgKKyAgICAgICAgICB7bGFiZWw6ICdzZXRWYWx1ZUN1cnZlJywgZGVzY3JpcHRpb246ICdD
YW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNo
b3VsZCkgeworICAgICAgICAgICAgLy8gQ2FuY2VsIGEgc2V0VmFsdWVDdXJ2ZSBldmVudC4KKyAg
ICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRp
bWUpIHsKKyAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAg
ICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFd
LmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEg
c2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1sw
XS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdb
MV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAg
IC8vIEFmdGVyIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRWYWx1ZXNDdXJ2ZS4gKFRo
aXMgaXMgdGhlCisgICAgICAgICAgICAgIC8vIGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5jZWxsZWQu
KQorICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgZHVyYXRpb24g
PSByZW5kZXJEdXJhdGlvbiAtIHQwOworCisgICAgICAgICAgICAgIC8vIEZvciBzaW1wbGljaXR5
LCBhIDItcG9pbnQgY3VydmUgc28gd2UgZ2V0IGEgbGluZWFyIGludGVycG9sYXRlZAorICAgICAg
ICAgICAgICAvLyByZXN1bHQuCisgICAgICAgICAgICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJh
eS5mcm9tKFt2MCwgMF0pOworCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUN1cnZl
QXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0
VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKworICAgICAgICAgICAgICBs
ZXQgaW5kZXggPQorICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigoY3VydmUubGVuZ3RoIC0g
MSkgLyBkdXJhdGlvbiAqIChjYW5jZWxUaW1lIC0gdDApKTsKKworICAgICAgICAgICAgICBsZXQg
Y3VydmVQb2ludHNQZXJGcmFtZSA9CisgICAgICAgICAgICAgICAgICAoY3VydmUubGVuZ3RoIC0g
MSkgLyBkdXJhdGlvbiAvIHNhbXBsZVJhdGU7CisgICAgICAgICAgICAgIGxldCB2aXJ0dWFsSW5k
ZXggPQorICAgICAgICAgICAgICAgICAgKGNhbmNlbFRpbWUgLSB0MCkgKiBzYW1wbGVSYXRlICog
Y3VydmVQb2ludHNQZXJGcmFtZTsKKworICAgICAgICAgICAgICBsZXQgZGVsdGEgPSB2aXJ0dWFs
SW5kZXggLSBpbmRleDsKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IGN1cnZlWzBd
ICsgKGN1cnZlWzFdIC0gY3VydmVbMF0pICogZGVsdGE7CisgICAgICAgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAg
ICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFZhbHVlQ3VydmVBdFRpbWUoWycgKyBjdXJ2
ZSArICddLCAnICsgdDAgKworICAgICAgICAgICAgICAgICAgICAnLCAnICsgZHVyYXRpb24gKyAn
KScsCisgICAgICAgICAgICAgICAgc3VtbWFyeTogJ3NldFZhbHVlQ3VydmVBdFRpbWUnLAorICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVz
aG9sZDogOS41MzY4ZS05LAorICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMAorICAgICAg
ICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3NldFZh
bHVlQ3VydmUgYWZ0ZXIgZW5kJywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHNl
dFZhbHVlQ3VydmVBdFRpbWUgYWZ0ZXIgdGhlIGVuZCcKKyAgICAgICAgICB9LAorICAgICAgICAg
IGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQs
IGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2VsVGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0
aWFsaXplIHZhbHVlcyB0byAwLgorICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRp
bWUoMCwgMCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsK
KyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0
aGluZ3Mgb2ZmLgorICAgICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRp
bWUodjAsIHQwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lKHYwLCB0MCk7CisKKyAgICAgICAgICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBz
Y2hlZHVsZSBhIHNldFZhbHVlc0N1cnZlLiAoVGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgLy8g
ZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNlbGxlZC4pICBNYWtlIHN1cmUgdGhlIGN1cnZlIGVuZHMg
YmVmb3JlCisgICAgICAgICAgICAgIC8vIHRoZSBjYW5jZWxsYXRpb24gdGltZS4KKyAgICAgICAg
ICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gY2FuY2VsVGlt
ZSAtIHQwIC0gMC4xMjU7CisKKyAgICAgICAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIGEgMi1w
b2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5lYXIgaW50ZXJwb2xhdGVkCisgICAgICAgICAgICAg
IC8vIHJlc3VsdC4KKyAgICAgICAgICAgICAgbGV0IGN1cnZlID0gRmxvYXQzMkFycmF5LmZyb20o
W3YwLCAwXSk7CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUo
Y3VydmUsIHQwLCBkdXJhdGlvbik7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUN1
cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworCisgICAgICAgICAgICAgIGV4cGVjdGVk
Q29uc3RhbnQgPSBjdXJ2ZVsxXTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAg
IGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2ZUF0VGltZShbJyArIGN1cnZlICsgJ10sICcgKyB0
MCArCisgICAgICAgICAgICAgICAgICAgICcsICcgKyBkdXJhdGlvbiArICcpJywKKyAgICAgICAg
ICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVDdXJ2ZUF0VGltZScsCisgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiAwLAorICAg
ICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMAorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRv
bmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFNwZWNpYWwgY2FzZSB3
aGVyZSB3ZSBzY2hlZHVsZSBhIHNldFRhcmdldCBhbmQgdGhlcmUgaXMgbm8gZWFybGllcgorICAg
ICAgLy8gYXV0b21hdGlvbiBldmVudC4gIFRoaXMgdGVzdHMgdGhhdCB3ZSBwaWNrIHVwIHRoZSBz
dGFydGluZyBwb2ludAorICAgICAgLy8gY29ycmVjdGx5IGZyb20gdGhlIGxhc3Qgc2V0dGluZyBv
ZiB0aGUgQXVkaW9QYXJhbSB2YWx1ZSBhdHRyaWJ1dGUuCisKKworICAgICAgYXVkaXQuZGVmaW5l
KAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAnaW5pdGlhbCBzZXRUYXJnZXQnLAor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDYW5jZWwgd2l0aCBpbml0aWFsIHNldFRhcmdldEF0
VGltZScKKyAgICAgICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewor
ICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2Vs
VGltZSkgeworICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgdGlt
ZUNvbnN0YW50ID0gMC4xOworICAgICAgICAgICAgICBnWzBdLmdhaW4udmFsdWUgPSAxOworICAg
ICAgICAgICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50
KTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnZhbHVlID0gMTsKKyAgICAgICAgICAgICAgZ1sx
XS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDAsIHRpbWVDb25zdGFudCk7CisKKyAgICAgICAg
ICAgICAgbGV0IGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKKyAgICAgICAgICAgICAg
ICAgIHYxICsgKHYwIC0gdjEpICogTWF0aC5leHAoLShjYW5jZWxUaW1lIC0gdDApIC8gdGltZUNv
bnN0YW50KSk7CisKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBleHBl
Y3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAgIGF1dG9NZXNz
YWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MSArICcsICcgKyB0MCArICcsICcgKworICAgICAg
ICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAgICAgICAgc3VtbWFy
eTogJ0luaXRpYWwgc2V0VGFyZ2V0QXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDEuMjMyMGUtNiwKKyAgICAg
ICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDEuMjMyMGUtNgorICAgICAgICAgICAgfSkudGhlbih0
YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFRlc3QgYXV0
b21hdGlvbnMgc2NoZWR1bGVkIGFmdGVyIHRoZSBjYWxsIHRvIGNhbmNlbEFuZEhvbGRBdFRpbWUu
CisgICAgICAvLyBWZXJ5IHNpbWlsYXIgdG8gdGhlIGFib3ZlIHRlc3RzLCBidXQgd2UgYWxzbyBz
Y2hlZHVsZSBhbiBldmVudCBhZnRlcgorICAgICAgLy8gY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQg
dmVyaWZ5IHRoYXQgY3VydmUgYWZ0ZXIgY2FuY2VsbGF0aW9uIGhhcworICAgICAgLy8gdGhlIGNv
cnJlY3QgdmFsdWVzLgorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAg
ICAgICAgbGFiZWw6ICdwb3N0IGNhbmNlbDogTGluZWFyJywKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAnTGluZWFyUmFtcCBhZnRlciBjYW5jZWxsaW5nJworICAgICAgICAgIH0sCisgICAgICAg
ICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBSdW4gdGhlIGNhbmNl
bCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUKKyAgICAgICAgICAg
IC8vIGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVsZSBhbm90aGVyIGxpbmVhciByYW1wIGFmdGVyIHRo
ZQorICAgICAgICAgICAgLy8gY2FuY2VsbGF0aW9uLgorICAgICAgICAgICAgY2FuY2VsVGVzdCgK
KyAgICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAgbGluZWFyUmFtcFRlc3Qo
J1Bvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksCisgICAgICAgICAg
ICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThl
LTV9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29u
c3RhbnQpIHsKKyAgICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBsaW5lYXIgcmFtcCBv
biBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yIGdbMl0sCisgICAgICAgICAgICAgICAgICAvLyB1
c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAg
ICAgICAgICAgICAgIGxldCB2MiA9IDI7CisgICAgICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5j
ZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRv
VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1
ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgICAg
IGdbMl0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5j
ZWxUaW1lLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBsaW5lYXJSYW1wKCcg
KyB2MiArICcsICcgKyB0MiArICcpJworICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAg
ICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHsKKyAgICAgICAg
ICAgIGxhYmVsOiAncG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsJywKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uOiAnRXhwb25lbnRpYWxSYW1wIGFmdGVyIGNhbmNlbGxpbmcnCisgICAgICAgICAgfSwK
KyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIC8vIFJ1biB0
aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZQorICAg
ICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAg
YWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBjYW5jZWxsYXRpb24uCisgICAgICAgICAgICBjYW5j
ZWxUZXN0KAorICAgICAgICAgICAgICAgIHNob3VsZCwKKyAgICAgICAgICAgICAgICBsaW5lYXJS
YW1wVGVzdCgnUG9zdCBjYW5jZWwgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScpLAorICAg
ICAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDog
OC4zOTk4ZS01fSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBl
Y3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25l
bnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAgICAgICAg
ICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25z
dGFudC4KKyAgICAgICAgICAgICAgICAgIGxldCB2MiA9IDI7CisgICAgICAgICAgICAgICAgICBs
ZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgICAgICBnWzBdLmdhaW4u
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICAgICAg
Z1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOwor
ICAgICAgICAgICAgICAgICAgZ1syXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUo
djIsIHQyKTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZTogJ1Bvc3QgZXhwb25lbnRpYWxSYW1wKCcgKyB2MiArICcsICcgKyB0MiArICcpJworICAgICAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdwb3N0IGNhbmNlbDogVmFsdWVDdXJ2ZScsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewor
ICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUg
ZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VmFs
dWVDdXJ2ZSBhZnRlciB0aGUgY2FuY2VsbGF0aW9uLgorICAgICAgICBjYW5jZWxUZXN0KAorICAg
ICAgICAgICAgc2hvdWxkLCBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2
ZUF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZl
VGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGlt
ZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhw
b25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAgICAg
IC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0
YW50LgorICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAg
ICAgICAgIGxldCBkdXJhdGlvbiA9IDAuMTI1OworICAgICAgICAgICAgICBsZXQgY3VydmUgPSBG
bG9hdDMyQXJyYXkuZnJvbShbLjEyNSwgMl0pOworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0
VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1sy
XS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAg
ICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0
aW9uKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVu
ZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFs
dWVDdXJ2ZShbJyArIGN1cnZlICsgJ10sICcgKyB0MiArICcsICcgKworICAgICAgICAgICAgICAg
ICAgICBkdXJhdGlvbiArICcpJywKKyAgICAgICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC4z
OTk4ZS01CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRo
ZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmlu
ZSgncG9zdCBjYW5jZWw6IHNldFRhcmdldCcsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAg
ICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZl
bnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0
IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAg
ICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWUnKSwK
KyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDog
OC4zOTk4ZS01fSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVk
Q29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJh
bXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgorICAgICAgICAgICAgICAvLyBnWzJdLCB1
c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAg
ICAgICAgICAgbGV0IHYyID0gMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRp
bWUgKyAwLjEyNTsKKyAgICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMTsKKyAgICAg
ICAgICAgICAgZ1swXS5nYWluLnNldFRhcmdldEF0VGltZSh2MiwgdDIsIHRpbWVDb25zdGFudCk7
CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50
LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFRhcmdldEF0VGltZSh2
MiwgdDIsIHRpbWVDb25zdGFudCk7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lICsgMC4xMjUsCisgICAgICAgICAgICAg
ICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MiArICcsICcgKyB0MiArICcs
ICcgKworICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAg
ICAgICAgZXJyb3JUaHJlc2hvbGQ6IDguNDAzN2UtNQorICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAg
IH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZScsIGZ1bmN0
aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5n
IGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBU
aGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAg
IGNhbmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNh
bmNlbCBzZXRWYWx1ZUF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5
OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgZnVuY3Rpb24o
ZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAvLyBTY2hl
ZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisg
ICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBl
eHBlY3RlZENvbnN0YW50LgorICAgICAgICAgICAgICBsZXQgdjIgPSAwLjEyNTsKKyAgICAgICAg
ICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAgICBnWzBdLmdh
aW4uc2V0VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZh
bHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAgICAgICAgICAgICBn
WzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUgKyAwLjEyNSwKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBzZXRWYWx1ZUF0VGltZSgnICsgdjIgKyAnLCAn
ICsgdDIgKyAnKScKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQu
ZGVmaW5lKCdjYW5jZWwgZnV0dXJlIHNldFRhcmdldCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAg
ICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBj
b25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMu
Y29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZh
bHVlQXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAs
IDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAgICAgLy8gTm93IGNhbmNlbCB0aGUg
ZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNyYy5vZmZzZXQuY2FuY2VsQW5kSG9s
ZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7Cisg
ICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oYnVmZmVy
ID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5jZWxsZWQs
IHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAgICAgLy8gY29uc3RhbnQuCisgICAg
ICAgICAgICAgIHNob3VsZChhY3R1YWwsICdBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRUYXJn
ZXQgZXZlbnQsIG91dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2Yo
MC41KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0
YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VGFyZ2V0
IG5vdycsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAg
ICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBs
ZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3Vy
Y2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDAuNSwgMCk7CisgICAgICAg
IHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAsIDAuNSAqIHJlbmRlckR1cmF0aW9uLCAwLjEp
OworICAgICAgICAvLyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAg
ICAgICAgc3JjLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9u
KTsKKworICAgICAgICBzcmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmlu
ZygpCisgICAgICAgICAgICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0
dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNl
IHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAg
ICAgICAgICAgICAvLyBjb25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAg
ICAgICAgICAgYWN0dWFsLAorICAgICAgICAgICAgICAgICAgJ0FmdGVyIGNhbmNlbGxpbmcgc2V0
VGFyZ2V0IGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5i
ZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUo
J2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25z
dCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVl
QXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVDdXJ2ZUF0VGltZShb
LTEsIDFdLCAwLjc1ICogcmVuZGVyRHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8vIE5vdyBjYW5j
ZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zmc2V0LmNhbmNl
bEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRpb24pOworCisgICAgICAgIHNyYy5zdGFy
dCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVu
KGJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5l
bERhdGEoMCk7CisgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2Fu
Y2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCisgICAgICAgICAgICAgIC8vIGNvbnN0YW50
LgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBhY3R1YWwsICdBZnRl
ciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlIGV2ZW50LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgnY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93JywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVk
aW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Cisg
ICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7CisgICAg
ICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5vZmZz
ZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUN1
cnZlQXRUaW1lKFstMSwgMV0sIDAuNSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAgICAgICAv
LyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAgc3JjLm9m
ZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAg
ICBzcmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAg
ICAgICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJn
ZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAgICAgICAv
LyBjb25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgYWN0
dWFsLAorICAgICAgICAgICAgICAgICAgJ0FmdGVyIGNhbmNlbGxpbmcgY3VycmVudCBzZXRWYWx1
ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5i
ZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUo
CisgICAgICAgIHsKKyAgICAgICAgICBsYWJlbDogJ2xpbmVhciwgY2FuY2VsLCBsaW5lYXIsIGNh
bmNlbCwgbGluZWFyJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlcyAzIGxpbmVh
ciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sICcKKyAgICAgICAgICAgICsgJ3NvIHRoYXQg
d2UgZW5kIHVwIHdpdGggMiBjYW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlcicKKyAgICAg
ICAgfSwKKyAgICAgICAgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAgIGNhbmNlbFRlc3Qy
KAorICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAgICAgbGluZWFyUmFtcFRlc3QoJzFzdCBs
aW5lYXJSYW1wJyksCisgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDAsIGN1cnZlVGhyZXNo
b2xkOiAwfSwKKyAgICAgICAgICAgIChnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lMikgPT4geworICAgICAgICAgICAgICAvLyBSYW1wIGZyb20gZmlyc3QgY2FuY2Vs
IHRpbWUgdG8gdGhlIGVuZCB3aWxsIGJlIGNhbmNlbGxlZCBhdAorICAgICAgICAgICAgICAvLyBz
ZWNvbmQgY2FuY2VsIHRpbWUuCisgICAgICAgICAgICAgIGNvbnN0IHYxID0gZXhwZWN0ZWRDb25z
dGFudDsKKyAgICAgICAgICAgICAgY29uc3QgdDEgPSBjYW5jZWxUaW1lOworICAgICAgICAgICAg
ICBjb25zdCB2MiA9IDI7CisgICAgICAgICAgICAgIGNvbnN0IHQyID0gcmVuZGVyRHVyYXRpb247
CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIp
OworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjEsIHQxKTsKKyAgICAg
ICAgICAgICAgZ1syXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisKKyAg
ICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRDb25zdGFudDIgPQorICAgICAgICAgICAgICAgIGF1
ZGlvUGFyYW1MaW5lYXJSYW1wKGNhbmNlbFRpbWUyLCB2MSwgdDEsIHYyLCB0Mik7CisKKyAgICAg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNl
bFRpbWUsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogYDJuZCBsaW5lYXJSYW1wKCR7djJ9LCAk
e3QyfSlgLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQyCisgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgKGcsIGNhbmNlbFRpbWUyLCBleHBlY3Rl
ZENvbnN0YW50MikgPT4geworICAgICAgICAgICAgICAvLyBSYW1wIGZyb20gc2Vjb25kIGNhbmNl
bCB0aW1lIHRvIHRoZSBlbmQuCisgICAgICAgICAgICAgIGNvbnN0IHYzID0gMDsKKyAgICAgICAg
ICAgICAgY29uc3QgdDMgPSByZW5kZXJEdXJhdGlvbjsKKyAgICAgICAgICAgICAgZ1swXS5nYWlu
LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYzLCB0Myk7CisgICAgICAgICAgICAgIGdbM10uZ2Fp
bi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50MiwgY2FuY2VsVGltZTIpOworICAgICAg
ICAgICAgICBnWzNdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWUyOiBjYW5j
ZWxUaW1lMiwKKyAgICAgICAgICAgICAgICBtZXNzYWdlMjogYDNyZCBsaW5lYXJSYW1wKCR7djN9
LCAke3QzfSlgLAorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
IC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1
bigpOworCisgICAgICAvLyBDb21tb24gZnVuY3Rpb24gZm9yIGRvaW5nIGEgbGluZWFyUmFtcCB0
ZXN0LiAgVGhpcyBqdXN0IGRvZXMgYSBsaW5lYXIKKyAgICAgIC8vIHJhbXAgZnJvbSAwIHRvIHYw
IGF0IGZyb20gdGltZSAwIHRvIHQwLiAgVGhlbiBhbm90aGVyIGxpbmVhciByYW1wIGlzCisgICAg
ICAvLyBzY2hlZHVsZWQgZnJvbSB2MCB0byAwIGZyb20gdGltZSB0MCB0byB0MS4gIFRoaXMgaXMg
dGhlIHJhbXAgdGhhdCBpcyB0bworICAgICAgLy8gYmUgY2FuY2VsbGVkLgorICAgICAgZnVuY3Rp
b24gbGluZWFyUmFtcFRlc3QobWVzc2FnZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZywg
djAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1l
KDAsIDApOworICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAg
ICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAg
ICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAg
IGxldCB2MSA9IDA7CisgICAgICAgICAgbGV0IHQxID0gcmVuZGVyRHVyYXRpb247CisgICAgICAg
ICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAg
Z1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisKKyAgICAgICAgICBl
eHBlY3RlZENvbnN0YW50ID0KKyAgICAgICAgICAgICAgTWF0aC5mcm91bmQodjAgKyAodjEgLSB2
MCkgKiAoY2FuY2VsVGltZSAtIHQwKSAvICh0MSAtIHQwKSk7CisKKyAgICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAgICAg
ICAgICAgIGF1dG9NZXNzYWdlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKyAnOiBsaW5lYXJS
YW1wVG9WYWx1ZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCisgICAgICAgICAgICBzdW1tYXJ5
OiBtZXNzYWdlLAorICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8g
UnVuIHRoZSBjYW5jZWxsYXRpb24gdGVzdC4gQSBzZXQgb2YgYXV0b21hdGlvbnMgaXMgY3JlYXRl
ZCBhbmQKKyAgICAgIC8vIGNhbmNlbGVkLgorICAgICAgLy8KKyAgICAgIC8vIHx0ZXN0ZXJGdW5j
dGlvbnwgaXMgYSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgYXV0b21hdGlvbiB0byBiZQor
ICAgICAgLy8gdGVzdGVkLiAgSXQgaXMgZ2l2ZW4gYW4gYXJyYXkgb2YgMyBnYWluIG5vZGVzLCB0
aGUgdmFsdWUgYW5kIHRpbWUgb2YgYW4KKyAgICAgIC8vIGluaXRpYWwgbGluZWFyIHJhbXAsIGFu
ZCB0aGUgdGltZSB3aGVyZSB0aGUgY2FuY2VsbGF0aW9uIHNob3VsZCBvY2N1ci4KKyAgICAgIC8v
IFRoZSBmdW5jdGlvbiBtdXN0IGRvIHRoZSBhdXRvbWF0aW9ucyBmb3IgdGhlIGZpcnN0IHR3byBn
YWluIG5vZGVzLiAgSXQKKyAgICAgIC8vIG11c3QgcmV0dXJuIGEgZGljdGlvbmFyeSB3aXRoIHxl
eHBlY3RlZENvbnN0YW50fCBiZWluZyB0aGUgdmFsdWUgYXQgdGhlCisgICAgICAvLyBjYW5jZWxs
YXRpb24gdGltZSwgfGF1dG9NZXNzYWdlfCBmb3IgbWVzc2FnZSB0byBkZXNjcmliZSB0aGUgdGVz
dCwgYW5kCisgICAgICAvLyB8c3VtbWFyeXwgZm9yIGdlbmVyYWwgc3VtbWFyeSBtZXNzYWdlIHRv
IGJlIHByaW50ZWQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgIC8vIHRlc3QuCisgICAgICAvLwor
ICAgICAgLy8gfHRocmVzaG9sZE9wdGlvbnN8IGlzIGEgcHJvcGVydHkgYmFnIHRoYXQgc3BlY2lm
aWVzIHRoZSBlcnJvciB0aHJlc2hvbGQKKyAgICAgIC8vIHRvIHVzZS4gfHRocmVzaG9sZE9wdGlv
bnMudmFsdWVUaHJlc2hvbGR8IGlzIHRoZSBlcnJvciB0aHJlc2hvbGQgZm9yCisgICAgICAvLyBj
b21wYXJpbmcgdGhlIGFjdHVhbCBjb25zdGFudCBvdXRwdXQgYWZ0ZXIgY2FuY2VsbGluZyB0byB0
aGUgZXhwZWN0ZWQKKyAgICAgIC8vIHZhbHVlLiAgfHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJl
c2hvbGR8IGlzIHRoZSBlcnJvciB0aHJlc2hvbGQgZm9yCisgICAgICAvLyBjb21wYXJpbmcgdGhl
IGFjdHVhbCBhbmQgZXhwZWN0ZWQgYXV0b21hdGlvbiBjdXJ2ZXMgYmVmb3JlIHRoZQorICAgICAg
Ly8gY2FuY2VsYXRpb24gcG9pbnQuCisgICAgICAvLworICAgICAgLy8gRm9yIGNhbmNlbGxhdGlv
biB0ZXN0cywgfHBvc3RDYW5jZWxUZXN0fCBpcyBhIGZ1bmN0aW9uIHRoYXQgc2NoZWR1bGVzCisg
ICAgICAvLyBzb21lIGF1dG9tYXRpb24gYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4gIEl0IHRha2Vz
IDMgYXJndW1lbnRzOiBhbiBhcnJheQorICAgICAgLy8gb2YgdGhlIGdhaW4gbm9kZXMsIHRoZSBj
YW5jZWxsYXRpb24gdGltZSwgYW5kIHRoZSBleHBlY3RlZCB2YWx1ZSBhdCB0aGUKKyAgICAgIC8v
IGNhbmNlbGxhdGlvbiB0aW1lLiAgVGhpcyBmdW5jdGlvbiBtdXN0IHJldHVybiBhIGRpY3Rpb25h
cnkgY29uc2lzdGluZworICAgICAgLy8gb2YgfGNvbnN0YW50RW5kdGltZXwgaW5kaWNhdGluZyB3
aGVuIHRoZSBoZWxkIGNvbnN0YW50IGZyb20KKyAgICAgIC8vIGNhbmNlbGxhdGlvbiBzdG9wcyBi
ZWluZyBjb25zdGFudCwgfG1lc3NhZ2V8IGdpdmluZyBhIHN1bW1hcnkgb2Ygd2hhdAorICAgICAg
Ly8gYXV0b21hdGlvbiBpcyBiZWluZyB1c2VkLCBhbmQgfGVycm9yVGhyZXNob2xkfCB0aGF0IGlz
IHRoZSBlcnJvcgorICAgICAgLy8gdGhyZXNob2xkIGJldHdlZW4gdGhlIGV4cGVjdGVkIGN1cnZl
IGFuZCB0aGUgYWN0dWFsIGN1cnZlLgorICAgICAgLy8KKyAgICAgIGZ1bmN0aW9uIGNhbmNlbFRl
c3QoCisgICAgICAgICAgc2hvdWxkLCB0ZXN0ZXJGdW5jdGlvbiwgdGhyZXNob2xkT3B0aW9ucywg
cG9zdENhbmNlbFRlc3QpIHsKKyAgICAgICAgLy8gQ3JlYXRlIGEgY29udGV4dCB3aXRoIHRocmVl
IGNoYW5uZWxzLiAgQ2hhbm5lbCAwIGlzIHRoZSB0ZXN0IGNoYW5uZWwKKyAgICAgICAgLy8gY29u
dGFpbmluZyB0aGUgYWN0dWFsIG91dHB1dCB0aGF0IGluY2x1ZGVzIHRoZSBjYW5jZWxsYXRpb24g
b2YKKyAgICAgICAgLy8gZXZlbnRzLiAgQ2hhbm5lbCAxIGlzIHRoZSBleHBlY3RlZCBkYXRhIHVw
dG8gdGhlIGNhbmNlbGxhdGlvbiBzbyB3ZQorICAgICAgICAvLyBjYW4gdmVyaWZ5IHRoZSBjYW5j
ZWxsYXRpb24gcHJvZHVjZWQgdGhlIGNvcnJlY3QgcmVzdWx0LiAgQ2hhbm5lbCAyCisgICAgICAg
IC8vIGlzIGZvciB2ZXJpZnlpbmcgZXZlbnRzIGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRp
b24gc28gd2UgY2FuCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IGF1dG9tYXRpb25zIGFyZSBjb3Jy
ZWN0bHkgZ2VuZXJhdGVkIGFmdGVyIHRoZQorICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9pbnQu
CisgICAgICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDMsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisKKyAgICAg
ICAgLy8gVGVzdCBzb3VyY2UgaXMgYSBjb25zdGFudCBzaWduYWwKKyAgICAgICAgbGV0IHNyYyA9
IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNyYy5idWZmZXIgPSBjcmVh
dGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc3JjLmxvb3AgPSB0cnVl
OworCisgICAgICAgIC8vIFdlJ2xsIGRvIHRoZSBhdXRvbWF0aW9uIHRlc3RzIHdpdGggdGhyZWUg
Z2FpbiBub2Rlcy4gIE9uZSAoZzApIHdpbGwKKyAgICAgICAgLy8gaGF2ZSBjYW5jZWxBbmRIb2xk
QXRUaW1lIGFuZCB0aGUgb3RoZXIgKGcxKSB3aWxsIG5vdC4gIGcxIGlzCisgICAgICAgIC8vIHVz
ZWQgYXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgdGhhdCBhdXRvbWF0aW9uIHVwIHRvIHRoZQor
ICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9pbnQuICBUaGV5IHNob3VsZCBiZSB0aGUgc2FtZS4g
IFRoZSB0aGlyZCBub2RlIChnMikgaXMKKyAgICAgICAgLy8gdXNlZCBmb3IgdGVzdGluZyBhdXRv
bWF0aW9ucyBpbnNlcnRlZCBhZnRlciB0aGUgY2FuY2VsbGF0aW9uIHBvaW50LAorICAgICAgICAv
LyBpZiBhbnkuICBnMiBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZyb20gdGhlIGNhbmNlbGxhdGlv
biBwb2ludCB0byB0aGUKKyAgICAgICAgLy8gZW5kIG9mIHRoZSB0ZXN0LgorCisgICAgICAgIGxl
dCBnMCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZzEgPSBjb250ZXh0LmNy
ZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0IGcyID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAg
ICAgIGxldCB2MCA9IDE7CisgICAgICAgIGxldCB0MCA9IDAuMDE7CisKKyAgICAgICAgbGV0IGNh
bmNlbFRpbWUgPSByZW5kZXJEdXJhdGlvbiAvIDI7CisKKyAgICAgICAgLy8gVGVzdCBhdXRvbWF0
aW9uIGhlcmUuICBUaGUgdGVzdGVyIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5n
CisgICAgICAgIC8vIHVwIHRoZSBnYWluIG5vZGVzIHdpdGggdGhlIGRlc2lyZWQgYXV0b21hdGlv
biBmb3IgdGVzdGluZy4KKyAgICAgICAgYXV0b1Jlc3VsdCA9IHRlc3RlckZ1bmN0aW9uKFtnMCwg
ZzEsIGcyXSwgdjAsIHQwLCBjYW5jZWxUaW1lKTsKKyAgICAgICAgbGV0IGV4cGVjdGVkQ29uc3Rh
bnQgPSBhdXRvUmVzdWx0LmV4cGVjdGVkQ29uc3RhbnQ7CisgICAgICAgIGxldCBhdXRvTWVzc2Fn
ZSA9IGF1dG9SZXN1bHQuYXV0b01lc3NhZ2U7CisgICAgICAgIGxldCBzdW1tYXJ5TWVzc2FnZSA9
IGF1dG9SZXN1bHQuc3VtbWFyeTsKKworICAgICAgICAvLyBDYW5jZWwgc2NoZWR1bGVkIGV2ZW50
cyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgdGVzdAorICAgICAgICAvLyBhdXRvbWF0
aW9uLgorICAgICAgICBnMC5nYWluLmNhbmNlbEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZSk7CisK
KyAgICAgICAgbGV0IGNvbnN0YW50RW5kVGltZTsKKyAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0
KSB7CisgICAgICAgICAgcG9zdFJlc3VsdCA9CisgICAgICAgICAgICAgIHBvc3RDYW5jZWxUZXN0
KFtnMCwgZzEsIGcyXSwgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCk7CisgICAgICAgICAg
Y29uc3RhbnRFbmRUaW1lID0gcG9zdFJlc3VsdC5jb25zdGFudEVuZFRpbWU7CisgICAgICAgIH0K
KworICAgICAgICAvLyBDb25uZWN0IGV2ZXJ5dGhpbmcgdG9nZXRoZXIgKHdpdGggYSBtZXJnZXIg
dG8gbWFrZSBhIHR3by1jaGFubmVsCisgICAgICAgIC8vIHJlc3VsdCkuICBDaGFubmVsIDAgaXMg
dGhlIHRlc3QgKHdpdGggY2FuY2VsQW5kSG9sZEF0VGltZSkgYW5kCisgICAgICAgIC8vIGNoYW5u
ZWwgMSBpcyB0aGUgcmVmZXJlbmNlICh3aXRob3V0IGNhbmNlbEFuZEhvbGRBdFRpbWUpLgorICAg
ICAgICAvLyBDaGFubmVsIDEgaXMgdXNlZCB0byB2ZXJpZnkgdGhhdCBldmVyeXRoaW5nIHVwIHRv
IHRoZSBjYW5jZWxsYXRpb24KKyAgICAgICAgLy8gaGFzIHRoZSBjb3JyZWN0IHZhbHVlcy4KKyAg
ICAgICAgc3JjLmNvbm5lY3QoZzApOworICAgICAgICBzcmMuY29ubmVjdChnMSk7CisgICAgICAg
IHNyYy5jb25uZWN0KGcyKTsKKyAgICAgICAgbGV0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hh
bm5lbE1lcmdlcigzKTsKKyAgICAgICAgZzAuY29ubmVjdChtZXJnZXIsIDAsIDApOworICAgICAg
ICBnMS5jb25uZWN0KG1lcmdlciwgMCwgMSk7CisgICAgICAgIGcyLmNvbm5lY3QobWVyZ2VyLCAw
LCAyKTsKKyAgICAgICAgbWVyZ2VyLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAg
ICAgICAgLy8gR28hCisgICAgICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihidWZmZXIpIHsKKyAgICAgICAgICBs
ZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGxldCBleHBl
Y3RlZCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKworICAgICAgICAgIC8vIFRoZSBhY3R1
YWwgb3V0cHV0IHNob3VsZCBiZSBhIGNvbnN0YW50IGZyb20gdGhlIGNhbmNlbCB0aW1lIHRvIHRo
ZQorICAgICAgICAgIC8vIGVuZC4gIFdlIHVzZSB0aGUgbGFzdCB2YWx1ZSBvZiB0aGUgYWN0dWFs
IG91dHB1dCBhcyB0aGUgY29uc3RhbnQsCisgICAgICAgICAgLy8gYnV0IHdlIGFsc28gd2FudCB0
byBjb21wYXJlIHRoYXQgd2l0aCB3aGF0IHdlIHRob3VnaHQgaXQgc2hvdWxkCisgICAgICAgICAg
Ly8gcmVhbGx5IGJlLgorCisgICAgICAgICAgbGV0IGNhbmNlbEZyYW1lID0gTWF0aC5jZWlsKGNh
bmNlbFRpbWUgKiBzYW1wbGVSYXRlKTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBj
dXJ2ZXMgdXAgdG8gdGhlIGNhbmNlbCB0aW1lIGFyZSAiaWRlbnRpY2FsIi4gIFRoZQorICAgICAg
ICAgIC8vIHNob3VsZCBiZSBidXQgcm91bmQtb2ZmIG1heSBtYWtlIHRoZW0gZGlmZmVyIHNsaWdo
dGx5IGR1ZSB0byB0aGUKKyAgICAgICAgICAvLyB3YXkgY2FuY2VsbGluZyBpcyBkb25lLgorICAg
ICAgICAgIGxldCBlbmRGcmFtZSA9IE1hdGguZmxvb3IoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUp
OworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGVuZEZy
YW1lKSwKKyAgICAgICAgICAgICAgYXV0b01lc3NhZ2UgKyAnIHVwIHRvIHRpbWUgJyArIGNhbmNl
bFRpbWUpCisgICAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkLnNsaWNlKDAsIGVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgIHthYnNvbHV0
ZVRocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy5jdXJ2ZVRocmVzaG9sZH0pOworCisgICAgICAg
ICAgLy8gVmVyaWZ5IHRoZSBvdXRwdXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbiBpcyBhIGNvbnN0
YW50LgorICAgICAgICAgIGxldCBhY3R1YWxUYWlsOworICAgICAgICAgIGxldCBjb25zdGFudEVu
ZEZyYW1lOworCisgICAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0KSB7CisgICAgICAgICAgICBj
b25zdGFudEVuZEZyYW1lID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZSAqIHNhbXBsZVJhdGUp
OworICAgICAgICAgICAgYWN0dWFsVGFpbCA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSwgY29u
c3RhbnRFbmRGcmFtZSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFjdHVhbFRh
aWwgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUpOworICAgICAgICAgIH0KKworICAgICAgICAg
IGxldCBhY3R1YWxDb25zdGFudCA9IGFjdHVhbFtjYW5jZWxGcmFtZV07CisKKyAgICAgICAgICBz
aG91bGQoCisgICAgICAgICAgICAgIGFjdHVhbFRhaWwsCisgICAgICAgICAgICAgICdDYW5jZWxs
aW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2VsVGltZSkKKyAgICAgICAg
ICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFjdHVhbENvbnN0YW50KTsKKworICAgICAgICAgIC8v
IFZlcmlmeSB0aGF0IHRoZSBjb25zdGFudCBpcyB0aGUgdmFsdWUgd2UgZXhwZWN0LgorICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsQ29uc3RhbnQsCisgICAgICAgICAgICAg
ICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRp
bWUgJyArCisgICAgICAgICAgICAgICAgICBjYW5jZWxUaW1lKQorICAgICAgICAgICAgICAuYmVD
bG9zZVRvKAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAg
ICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKwor
ICAgICAgICAgIC8vIFZlcmlmeSB0aGUgY3VydmUgYWZ0ZXIgdGhlIGNvbnN0YW50RW5kVGltZSBt
YXRjaGVzIG91cgorICAgICAgICAgIC8vIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgICBpZiAocG9z
dENhbmNlbFRlc3QpIHsKKyAgICAgICAgICAgIGxldCBjMiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0
YSgyKTsKKyAgICAgICAgICAgIHNob3VsZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZSks
IHBvc3RSZXN1bHQubWVzc2FnZSkKKyAgICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisg
ICAgICAgICAgICAgICAgICAgIGMyLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUpLAorICAgICAgICAg
ICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IHBvc3RSZXN1bHQuZXJyb3JUaHJlc2hvbGQg
fHwgMH0pOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIC8vIFNp
bWlsYXIgdG8gY2FuY2VsVGVzdCwgYnV0IGRvZXMgMiBjYW5jZWxzLgorICAgICAgZnVuY3Rpb24g
Y2FuY2VsVGVzdDIoCisgICAgICAgICAgc2hvdWxkLCB0ZXN0ZXJGdW5jdGlvbiwgdGhyZXNob2xk
T3B0aW9ucywKKyAgICAgICAgICBwb3N0Q2FuY2VsVGVzdCwgcG9zdENhbmNlbFRlc3QyKSB7Cisg
ICAgICAgIC8vIENoYW5uZWwgMDogQWN0dWFsIG91dHB1dCB0aGF0IGluY2x1ZGVzIHRoZSBjYW5j
ZWxsYXRpb24gb2YgZXZlbnRzLgorICAgICAgICAvLyBDaGFubmVsIDE6IEV4cGVjdGVkIGRhdGEg
dXAgdG8gdGhlIGZpcnN0IGNhbmNlbGxhdGlvbi4KKyAgICAgICAgLy8gQ2hhbm5lbCAyOiBFeHBl
Y3RlZCBkYXRhIGZyb20gMXN0IGNhbmNlbGxhdGlvbiB0byAybmQgY2FuY2VsbGF0aW9uLgorICAg
ICAgICAvLyBDaGFubmVsIDM6IEV4cGVjdGVkIGRhdGEgZnJvbSAybmQgY2FuY2VsbGF0aW9uIHRv
IHRoZSBlbmQuCisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgIG5ldyBPZmZsaW5l
QXVkaW9Db250ZXh0KDQsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7
CisKKyAgICAgICAgY29uc3Qgc3JjID0gY29udGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOwor
CisgICAgICAgIC8vIGcwOiBBY3R1YWwgZ2FpbiB3aGljaCB3aWxsIGhhdmUgY2FuY2VsQW5kSG9s
ZEF0VGltZSBjYWxsZWQgb24gaXQKKyAgICAgICAgLy8gdHdpY2UuCisgICAgICAgIC8vIGcxOiBF
eHBlY3RlZCBnYWluIGZyb20gc3RhcnQgdG8gdGhlIDFzdCBjYW5jZWwuCisgICAgICAgIC8vIGcy
OiBFeHBlY3RlZCBnYWluIGZyb20gMXN0IGNhbmNlbCB0byB0aGUgMm5kIGNhbmNlbC4KKyAgICAg
ICAgLy8gZzM6IEV4cGVjdGVkIGdhaW4gZnJvbSB0aGUgMm5kIGNhbmNlbCB0byB0aGUgZW5kLgor
ICAgICAgICBjb25zdCBnMCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBjb25zdCBn
MSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBjb25zdCBnMiA9IGNvbnRleHQuY3Jl
YXRlR2FpbigpOworICAgICAgICBjb25zdCBnMyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAg
ICAgICBjb25zdCB2MCA9IDE7CisgICAgICAgIGNvbnN0IHQwID0gMC4wMTsKKworICAgICAgICBj
b25zdCBjYW5jZWxUaW1lMSA9IHJlbmRlckR1cmF0aW9uICogMC41OworICAgICAgICBjb25zdCBj
YW5jZWxUaW1lMiA9IHJlbmRlckR1cmF0aW9uICogMC43NTsKKworICAgICAgICAvLyBSdW4gdGVz
dGVyRnVuY3Rpb24gdG8gZ2VuZXJhdGUgdGhlIDFzdCByYW1wLgorICAgICAgICBjb25zdCB7Cisg
ICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwgYXV0b01lc3NhZ2UsIHN1bW1hcnlNZXNzYWdlfSA9
CisgICAgICAgICAgICB0ZXN0ZXJGdW5jdGlvbihbZzAsIGcxLCBnMl0sIHYwLCB0MCwgY2FuY2Vs
VGltZTEpOworCisgICAgICAgIC8vIDFzdCBjYW5jZWwsIGNhbmNlbGxpbmcgdGhlIDFzdCByYW1w
LgorICAgICAgICBnMC5nYWluLmNhbmNlbEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZTEpOworCisg
ICAgICAgIC8vIFJ1biBwb3N0Q2FuY2VsVGVzdCB0byBnZW5lcmF0ZSB0aGUgMm5kIHJhbXAuCisg
ICAgICAgIGNvbnN0IHsKKyAgICAgICAgICBjb25zdGFudEVuZFRpbWUsIG1lc3NhZ2UsIGVycm9y
VGhyZXNob2xkID0gMCwgZXhwZWN0ZWRDb25zdGFudDJ9ID0KKyAgICAgICAgICAgIHBvc3RDYW5j
ZWxUZXN0KAorICAgICAgICAgICAgICBbZzAsIGcxLCBnMl0sIGNhbmNlbFRpbWUxLCBleHBlY3Rl
ZENvbnN0YW50LCBjYW5jZWxUaW1lMik7CisKKyAgICAgICAgLy8gMm5kIGNhbmNlbCwgY2FuY2Vs
bGluZyB0aGUgMm5kIHJhbXAuCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShj
YW5jZWxUaW1lMik7CisKKyAgICAgICAgLy8gUnVuIHBvc3RDYW5jZWxUZXN0MiB0byBnZW5lcmF0
ZSB0aGUgM3JkIHJhbXAuCisgICAgICAgIGNvbnN0IHtjb25zdGFudEVuZFRpbWUyLCBtZXNzYWdl
Mn0gPQorICAgICAgICAgIHBvc3RDYW5jZWxUZXN0MihbZzAsIGcxLCBnMiwgZzNdLCBjYW5jZWxU
aW1lMiwgZXhwZWN0ZWRDb25zdGFudDIpOworCisgICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGlu
ZyB0b2dldGhlcgorICAgICAgICBzcmMuY29ubmVjdChnMCk7CisgICAgICAgIHNyYy5jb25uZWN0
KGcxKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzIpOworICAgICAgICBzcmMuY29ubmVjdChnMyk7
CisgICAgICAgIGNvbnN0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hhbm5lbE1lcmdlcig0KTsK
KyAgICAgICAgZzAuY29ubmVjdChtZXJnZXIsIDAsIDApOworICAgICAgICBnMS5jb25uZWN0KG1l
cmdlciwgMCwgMSk7CisgICAgICAgIGcyLmNvbm5lY3QobWVyZ2VyLCAwLCAyKTsKKyAgICAgICAg
ZzMuY29ubmVjdChtZXJnZXIsIDAsIDMpOworICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0
LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAvLyBHbyEKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisK
KyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uIChi
dWZmZXIpIHsKKyAgICAgICAgICBjb25zdCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MCk7CisgICAgICAgICAgY29uc3QgZXhwZWN0ZWQxID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEp
OworICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgyKTsK
KyAgICAgICAgICBjb25zdCBleHBlY3RlZDMgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMyk7CisK
KyAgICAgICAgICBjb25zdCBjYW5jZWxGcmFtZTEgPSBNYXRoLmNlaWwoY2FuY2VsVGltZTEgKiBz
YW1wbGVSYXRlKTsKKyAgICAgICAgICBjb25zdCBjYW5jZWxGcmFtZTIgPSBNYXRoLmNlaWwoY2Fu
Y2VsVGltZTIgKiBzYW1wbGVSYXRlKTsKKworICAgICAgICAgIGNvbnN0IGNvbnN0YW50RW5kRnJh
bWUxID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZSAqIHNhbXBsZVJhdGUpOworICAgICAgICAg
IGNvbnN0IGNvbnN0YW50RW5kRnJhbWUyID0gTWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZTIgKiBz
YW1wbGVSYXRlKTsKKworICAgICAgICAgIGNvbnN0IGFjdHVhbFRhaWwxID0gYWN0dWFsLnNsaWNl
KGNhbmNlbEZyYW1lMSwgY29uc3RhbnRFbmRGcmFtZTEpOworICAgICAgICAgIGNvbnN0IGFjdHVh
bFRhaWwyID0gYWN0dWFsLnNsaWNlKGNhbmNlbEZyYW1lMiwgY29uc3RhbnRFbmRGcmFtZTIpOwor
CisgICAgICAgICAgY29uc3QgYWN0dWFsQ29uc3RhbnQxID0gYWN0dWFsW2NhbmNlbEZyYW1lMV07
CisgICAgICAgICAgY29uc3QgYWN0dWFsQ29uc3RhbnQyID0gYWN0dWFsW2NhbmNlbEZyYW1lMl07
CisKKyAgICAgICAgICAvLyBWZXJpZnkgZmlyc3Qgc2VjdGlvbiBjdXJ2ZQorICAgICAgICAgIHNo
b3VsZCgKKyAgICAgICAgICAgIGFjdHVhbC5zbGljZSgwLCBjYW5jZWxGcmFtZTEpLAorICAgICAg
ICAgICAgYXV0b01lc3NhZ2UgKyAnIHVwIHRvIHRpbWUgJyArIGNhbmNlbFRpbWUxKQorICAgICAg
ICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICBleHBlY3RlZDEuc2xpY2UoMCwg
Y2FuY2VsRnJhbWUxKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hv
bGRPcHRpb25zLmN1cnZlVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBh
IHZhbHVlIHdhcyBoZWxkIGFmdGVyIDFzdCBjYW5jZWwKKyAgICAgICAgICBzaG91bGQoCisgICAg
ICAgICAgICBhY3R1YWxUYWlsMSwKKyAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBhdXRvTWVz
c2FnZSArICcgYXQgdGltZSAnICsgY2FuY2VsVGltZTEpCisgICAgICAgICAgICAuYmVDb25zdGFu
dFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQxKTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGhl
bGQgdmFsdWUgYWZ0ZXIgMXN0IGNhbmNlbCB3YXMgY29ycmVjdAorICAgICAgICAgIHNob3VsZCgK
KyAgICAgICAgICAgIGFjdHVhbENvbnN0YW50MSwKKyAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1
ZSBmb3IgY2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArCisgICAgICAg
ICAgICBjYW5jZWxUaW1lMSkKKyAgICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAg
IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9w
dGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8vIFZlcmlmeSBtaWRkbGUgc2Vj
dGlvbiBjdXJ2ZQorICAgICAgICAgIHNob3VsZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFt
ZTEsIGNhbmNlbEZyYW1lMiksIG1lc3NhZ2UpCisgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXko
CisgICAgICAgICAgICAgIGV4cGVjdGVkMi5zbGljZShjb25zdGFudEVuZEZyYW1lMSwgY2FuY2Vs
RnJhbWUyKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9s
ZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgYSB2YWx1ZSB3YXMgaGVsZCBhZnRlciAy
bmQgY2FuY2VsCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsVGFpbDIsCisg
ICAgICAgICAgICAnQ2FuY2VsbGluZyAnICsgbWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2Vs
VGltZTIpCisgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQyKTsK
KworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGhlbGQgdmFsdWUgYWZ0ZXIgMm5kIGNhbmNlbCB3
YXMgY29ycmVjdAorICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgIGFjdHVhbENvbnN0YW50
MiwKKyAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgbWVzc2Fn
ZSArICcgYXQgdGltZSAnICsKKyAgICAgICAgICAgIGNhbmNlbFRpbWUyKQorICAgICAgICAgICAg
LmJlQ2xvc2VUbygKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDIsCisgICAgICAgICAg
ICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKKworICAg
ICAgICAgIC8vIFZlcmlmeSBlbmQgc2VjdGlvbiBjdXJ2ZQorICAgICAgICAgIHNob3VsZChhY3R1
YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZTIpLCBtZXNzYWdlMikKKyAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhwZWN0ZWQzLnNsaWNlKGNvbnN0YW50RW5kRnJh
bWUyKSwKKyAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9sZCB8
fCAwfSk7CisgICAgICAgIH0pOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNy
YXNoLTkxMzIxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFs
dWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5hMmUxNDgzMjY0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhl
Y3V0aW5nICJjcmFzaCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbY3Jhc2hdICAKK1BB
U1MgPCBbY3Jhc2hdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYXNzZXJ0aW9ucykg
CitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3Nm
dWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NhbmNlbC12YWx1ZXMt
Y3Jhc2gtOTEzMjE3Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNy
YXNoLTkxMzIxNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
OWFiMTU3Y2IwMjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY2Fu
Y2VsLXZhbHVlcy1jcmFzaC05MTMyMTcuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGlmIGNhbmNl
bGluZyBldmVudHMgYWZ0ZXIgc2V0VGFyZ2V0QXRUaW1lIGNyYXNoZXMKKyAgICA8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0
IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIEFyYml0cmFyeSBwYXJhbWV0ZXJzIGZv
ciB0aGUgb2ZmbGluZSBjb250ZXh0LgorICAgICAgY29uc3Qgc2FtcGxlUmF0ZSA9IDQ4MDAwOwor
ICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAxOworICAgICAgY29uc3QgY2hhbm5lbHMgPSAy
OworICAgICAgY29uc3QgcmVuZGVyRnJhbWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
OworCisgICAgICBjb25zdCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdjcmFzaCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgY29u
c3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dChjaGFubmVs
cywgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc291cmNlID0gY29u
dGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOworICAgICAgICBjb25zdCBhbmFseXNlciA9IGNv
bnRleHQuY3JlYXRlQW5hbHlzZXIoKTsKKyAgICAgICAgc291cmNlLmNvbm5lY3QoYW5hbHlzZXIp
OworCisgICAgICAgIC8vIFNjaGVkdWxpbmcgdGhlIGZvbGxvd2luZyBhdCBhbiBlYXJsaWVyIHRp
bWUgdGhhbiBhYm92ZSBjYXVzZXMgdGhlCisgICAgICAgIC8vIHBhZ2UgdG8gY3Jhc2ggaW4gNzMu
MC4zNjM4LjAuIFNlZSBjcmJ1Zy5jb20vOTEzMjE3LgorICAgICAgICBzb3VyY2Uub2Zmc2V0LnNl
dFZhbHVlQXRUaW1lKDEsIGNvbnRleHQuY3VycmVudFRpbWUpOworICAgICAgICBzb3VyY2Uub2Zm
c2V0LnNldFRhcmdldEF0VGltZSgwLCBjb250ZXh0LmN1cnJlbnRUaW1lICsgMiwgMC4wMDAwMSk7
CisgICAgICAgIHNvdXJjZS5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZShjb250ZXh0LmN1cnJl
bnRUaW1lICsgMS45OTk5OSk7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KGNvbnRleHQuY3VycmVu
dFRpbWUpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAvLyBTaG91bGQgZmluaXNoIHdpdGhvdXQgYSBjcmFzaC4KKyAgICAgICAgICB0
YXNrLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmJjMzNmZThhMjFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcwpAQCAtMCwwICsxLDQ0IEBACisvLyBE
ZWZpbmUgZnVuY3Rpb25zIHRoYXQgaW1wbGVtZW50IHRoZSBmb3JtdWxhcyBmb3IgQXVkaW9QYXJh
bSBhdXRvbWF0aW9ucy4KKworLy8gQXVkaW9QYXJhbSBsaW5lYXJSYW1wIHZhbHVlIGF0IHRpbWUg
dCBmb3IgYSBsaW5lYXIgcmFtcCBiZXR3ZWVuICh0MCwgdjApIGFuZAorLy8gKHQxLCB2MSkuICBJ
dCBpcyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4gIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBvdGhlcndp
c2UuCitmdW5jdGlvbiBhdWRpb1BhcmFtTGluZWFyUmFtcCh0LCB2MCwgdDAsIHYxLCB0MSkgewor
ICBpZiAodCA+PSB0MSkKKyAgICByZXR1cm4gdjE7CisgIHJldHVybiAodjAgKyAodjEgLSB2MCkg
KiAodCAtIHQwKSAvICh0MSAtIHQwKSkKK30KKworLy8gQXVkaW9QYXJhbSBleHBvbmVudGlhbFJh
bXAgdmFsdWUgYXQgdGltZSB0IGZvciBhbiBleHBvbmVudGlhbCByYW1wIGJldHdlZW4KKy8vICh0
MCwgdjApIGFuZCAodDEsIHYxKS4gSXQgaXMgYXNzdW1lZCB0aGF0IHQwIDw9IHQuICBSZXN1bHRz
IGFyZSB1bmRlZmluZWQKKy8vIG90aGVyd2lzZS4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1FeHBvbmVu
dGlhbFJhbXAodCwgdjAsIHQwLCB2MSwgdDEpIHsKKyAgaWYgKHQgPj0gdDEpCisgICAgcmV0dXJu
IHYxOworICByZXR1cm4gdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAodCAtIHQwKSAvICh0MSAtIHQw
KSk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0VGFyZ2V0IHZhbHVlIGF0IHRpbWUgdCBmb3IgYSBz
ZXRUYXJnZXQgY3VydmUgc3RhcnRpbmcgYXQgKHQwLAorLy8gdjApIHdpdGggYSBmaW5hbCB2YWx1
ZSBvZiB2RmFpbmFsIGFuZCBhIHRpbWUgY29uc3RhbnQgb2YgdGltZUNvbnN0YW50LiAgSXQgaXMK
Ky8vIGFzc3VtZWQgdGhhdCB0MCA8PSB0LiAgUmVzdWx0cyBhcmUgdW5kZWZpbmVkIG90aGVyd2lz
ZS4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1TZXRUYXJnZXQodCwgdjAsIHQwLCB2RmluYWwsIHRpbWVD
b25zdGFudCkgeworICByZXR1cm4gdkZpbmFsICsgKHYwIC0gdkZpbmFsKSAqIE1hdGguZXhwKC0o
dCAtIHQwKSAvIHRpbWVDb25zdGFudCk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0VmFsdWVDdXJ2
ZSB2YWx1ZSBhdCB0aW1lIHQgZm9yIGEgc2V0VmFsdWVDdXJ2ZSBzdGFydGluZyBhdCB0aW1lCisv
LyB0MCB3aXRoIGN1cnZlLCBjdXJ2ZSwgYW5kIGR1cmF0aW9uIGR1cmF0aW9uLiAgVGhlIHNhbXBs
ZSByYXRlIGlzIHNhbXBsZVJhdGUuCisvLyBJdCBpcyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4KK2Z1
bmN0aW9uIGF1ZGlvUGFyYW1TZXRWYWx1ZUN1cnZlKHQsIGN1cnZlLCB0MCwgZHVyYXRpb24pIHsK
KyAgaWYgKHQgPiB0MCArIGR1cmF0aW9uKQorICAgIHJldHVybiBjdXJ2ZVtjdXJ2ZS5sZW5ndGgg
LSAxXTsKKworICBsZXQgY3VydmVQb2ludHNQZXJTZWNvbmQgPSAoY3VydmUubGVuZ3RoIC0gMSkg
LyBkdXJhdGlvbjsKKworICBsZXQgdmlydHVhbEluZGV4ID0gKHQgLSB0MCkgKiBjdXJ2ZVBvaW50
c1BlclNlY29uZDsKKyAgbGV0IGluZGV4ID0gTWF0aC5mbG9vcih2aXJ0dWFsSW5kZXgpOworCisg
IGxldCBkZWx0YSA9IHZpcnR1YWxJbmRleCAtIGluZGV4OworCisgIGxldCBjMCA9IGN1cnZlW2lu
ZGV4XTsKKyAgbGV0IGMxID0gY3VydmVbTWF0aC5taW4oaW5kZXggKyAxLCBjdXJ2ZS5sZW5ndGgg
LSAxKV07CisgIHJldHVybiBjMCArIChjMSAtIGMwKSAqIGRlbHRhOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKaW5kZXggNTIzMTAyYTA5OTI2
Li42MmQxY2Q0ZjhhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcApAQCAtMjE1LDYgKzIxNSwxOCBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFt
Jj4gQXVkaW9QYXJhbTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1lKQog
ICAgIHJldHVybiAqdGhpczsKIH0KIAorRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFy
YW06OmNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpCit7CisgICAgaWYgKGNh
bmNlbFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgImNh
bmNlbFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVlIl9zIH07CisKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fdGltZWxpbmUuY2FuY2VsQW5kSG9sZEF0VGltZShTZWNvbmRzIHsgY2FuY2VsVGltZSB9
KTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKwogZmxvYXQgQXVk
aW9QYXJhbTo6ZmluYWxWYWx1ZSgpCiB7CiAgICAgZmxvYXQgdmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmluZGV4IDhhNGE3NmVkYzdhMS4uMGZk
N2U2NTEwNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaApAQCAtMTA4LDYgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxBdWRpb1Bh
cmFtJj4gc2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgZG91YmxlIHN0YXJ0VGltZSwgZmxv
YXQgdGltZUNvbnN0YW50KTsKICAgICBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gc2V0VmFsdWVD
dXJ2ZUF0VGltZShWZWN0b3I8ZmxvYXQ+JiYgY3VydmUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJs
ZSBkdXJhdGlvbik7CiAgICAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IGNhbmNlbFNjaGVkdWxl
ZFZhbHVlcyhkb3VibGUgY2FuY2VsVGltZSk7CisgICAgRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+
IGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpOwogCiAgICAgYm9vbCBoYXNT
YW1wbGVBY2N1cmF0ZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmUuaGFzVmFsdWVz
KCkgfHwgbnVtYmVyT2ZSZW5kZXJpbmdDb25uZWN0aW9ucygpOyB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAppbmRleCAwOWQ4NDNkNDZm
YjEuLmIyY2FhZGM3MjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uaWRsCkBAIC01OSw5ICs1OSw3IEBACiAKICAgICAvLyBDYW5jZWxzIGFsbCBz
Y2hlZHVsZWQgcGFyYW1ldGVyIGNoYW5nZXMgd2l0aCB0aW1lcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gc3RhcnRUaW1lLgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXVkaW9QYXJhbSBjYW5j
ZWxTY2hlZHVsZWRWYWx1ZXMoZG91YmxlIGNhbmNlbFRpbWUpOwotCi0gICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciB0aGlzLgotICAgIC8vIEF1ZGlvUGFyYW0gY2FuY2VsQW5kSG9sZEF0VGlt
ZShkb3VibGUgY2FuY2VsVGltZSk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBBdWRpb1BhcmFt
IGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpOwogCiAgICAgLy8gRklYTUU6
IFRoZXNlIGFyZSBub3Qgc3RhbmRhcmQuCiAgICAgW0VuYWJsZWRCeVNldHRpbmc9UHJlZml4ZWRX
ZWJBdWRpb10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmlu
ZGV4IGE3NWY4ODhlMDZkZC4uOTg0NjNmMWZjNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBAIC02NSwyNyAr
NjUsMzIgQEAgc3RhdGljIGJvb2wgaGFzU2V0VGFyZ2V0Q29udmVyZ2VkKGZsb2F0IHZhbHVlLCBm
bG9hdCB0YXJnZXQsIFNlY29uZHMgY3VycmVudFRpbWUKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVk
aW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1l
KQogewotICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OlNldFZh
bHVlLCB2YWx1ZSwgdGltZSwgMCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fZXZlbnRzTXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50Ojpj
cmVhdGVTZXRWYWx1ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUs
IFNlY29uZHMgdGltZSkKIHsKLSAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudChQYXJh
bUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSwgdmFsdWUsIHRpbWUsIDAsIHsgfSwgeyB9KSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5z
ZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlTGluZWFyUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7
CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxS
YW1wVG9WYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIHJldHVy
biBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OkV4cG9uZW50aWFsUmFtcFRvVmFs
dWUsIHZhbHVlLCB0aW1lLCAwLCB7IH0sIHsgfSkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9ldmVudHNNdXRleCk7CisgICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNy
ZWF0ZUV4cG9uZW50aWFsUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwg
U2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7Ci0gICAgcmV0dXJuIGluc2VydEV2
ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VGFyZ2V0LCB0YXJnZXQsIHRpbWUsIHRpbWVD
b25zdGFudCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRz
TXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRUYXJn
ZXRFdmVudCh0YXJnZXQsIHRpbWUsIHRpbWVDb25zdGFudCkpOwogfQogCiBFeGNlcHRpb25Pcjx2
b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3VydmVBdFRpbWUoVmVjdG9yPGZsb2F0
PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVyYXRpb24pCiB7Ci0gICAgcmV0dXJu
IGluc2VydEV2ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwgMCwgdGlt
ZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6
Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3VydmUpLCB0aW1lLCBkdXJhdGlvbikp
OwogfQogCiBzdGF0aWMgYm9vbCBpc1ZhbGlkTnVtYmVyKGZsb2F0IHgpCkBAIC05OCw1MiArMTAz
LDU1IEBAIHN0YXRpYyBib29sIGlzVmFsaWROdW1iZXIoU2Vjb25kcyBzKQogICAgIHJldHVybiAh
c3RkOjppc25hbihzLnZhbHVlKCkpICYmICFzdGQ6OmlzaW5mKHMudmFsdWUoKSk7CiB9CiAKLUV4
Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoY29uc3QgUGFy
YW1FdmVudCYgZXZlbnQpCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omlu
c2VydEV2ZW50KFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBldmVudCkKIHsKICAgICAvLyBTYW5pdHkg
Y2hlY2sgdGhlIGV2ZW50LiBCZSBzdXBlciBjYXJlZnVsIHdlJ3JlIG5vdCBnZXR0aW5nIGluZmVj
dGVkIHdpdGggTmFOIG9yIEluZi4KLSAgICBib29sIGlzVmFsaWQgPSBldmVudC50eXBlKCkgPCBQ
YXJhbUV2ZW50OjpMYXN0VHlwZQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LnZhbHVl
KCkpCi0gICAgICAgICYmIGlzVmFsaWROdW1iZXIoZXZlbnQudGltZSgpKQotICAgICAgICAmJiBp
c1ZhbGlkTnVtYmVyKGV2ZW50LnRpbWVDb25zdGFudCgpKQotICAgICAgICAmJiBpc1ZhbGlkTnVt
YmVyKGV2ZW50LmR1cmF0aW9uKCkpCi0gICAgICAgICYmIGV2ZW50LmR1cmF0aW9uKCkgPj0gMF9z
OworICAgIGJvb2wgaXNWYWxpZCA9IGV2ZW50LT50eXBlKCkgPCBQYXJhbUV2ZW50OjpMYXN0VHlw
ZQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT52YWx1ZSgpKQorICAgICAgICAmJiBp
c1ZhbGlkTnVtYmVyKGV2ZW50LT50aW1lKCkpCisgICAgICAgICYmIGlzVmFsaWROdW1iZXIoZXZl
bnQtPnRpbWVDb25zdGFudCgpKQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT5kdXJh
dGlvbigpKQorICAgICAgICAmJiBldmVudC0+ZHVyYXRpb24oKSA+PSAwX3M7CiAKICAgICBpZiAo
IWlzVmFsaWQpCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIAotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgQVNTRVJUKG1fZXZlbnRzTXV0ZXguaXNM
b2NrZWQoKSk7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICBhdXRvIGluc2VydFRpbWUgPSBl
dmVudC50aW1lKCk7CisgICAgYXV0byBpbnNlcnRUaW1lID0gZXZlbnQtPnRpbWUoKTsKKwogICAg
IGZvciAoYXV0byYgcGFyYW1FdmVudCA6IG1fZXZlbnRzKSB7Ci0gICAgICAgIGlmIChldmVudC50
eXBlKCkgPT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkgewotICAgICAgICAgICAgLy8gSWYg
dGhpcyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIGV2ZW50LgotICAgICAgICAgICAgLy8gSXQncyBvayBpZiB0aGUgU2V0
VmFsdWVDdXJ2ZSBzdGFydHMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZW5kIG9mIHNvbWUgb3Ro
ZXIgZHVyYXRpb24uCi0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBldmVudC50aW1lKCkgKyBl
dmVudC5kdXJhdGlvbigpOwotICAgICAgICAgICAgaWYgKHBhcmFtRXZlbnQudHlwZSgpID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHBhcmFtRXZl
bnRFbmRUaW1lID0gcGFyYW1FdmVudC50aW1lKCkgKyBwYXJhbUV2ZW50LmR1cmF0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKChwYXJhbUV2ZW50LnRpbWUoKSA+PSBldmVudC50aW1lKCkgJiYg
cGFyYW1FdmVudC50aW1lKCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAocGFy
YW1FdmVudEVuZFRpbWUgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudEVuZFRpbWUgPCBlbmRU
aW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAoZXZlbnQudGltZSgpID49IHBhcmFtRXZlbnQu
dGltZSgpICYmIGV2ZW50LnRpbWUoKSA8IHBhcmFtRXZlbnRFbmRUaW1lKQotICAgICAgICAgICAg
ICAgICAgICB8fCAoZW5kVGltZSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAmJiBlbmRUaW1lIDwgcGFy
YW1FdmVudEVuZFRpbWUpKSB7CisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IFBhcmFtRXZl
bnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAgIGlmIChwYXJhbUV2ZW50LT50eXBlKCkg
IT0gUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhp
cyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG92ZXJsYXAg
YW55IGV4aXN0aW5nIGV2ZW50LgorICAgICAgICAgICAgICAgIC8vIEl0J3Mgb2sgaWYgdGhlIFNl
dFZhbHVlQ3VydmUgc3RhcnRzIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGVuZCBvZiBzb21lIG90
aGVyIGR1cmF0aW9uLgorICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IGV2ZW50LT50aW1l
KCkgKyBldmVudC0+ZHVyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1FdmVudC0+
dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgYXV0byBwYXJhbUV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQtPnRpbWUoKSArIHBhcmFtRXZl
bnQtPmR1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocGFyYW1FdmVudC0+dGlt
ZSgpID49IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGltZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHx8IChwYXJhbUV2ZW50RW5kVGltZSA+IGV2ZW50LT50aW1l
KCkgJiYgcGFyYW1FdmVudEVuZFRpbWUgPCBlbmRUaW1lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgfHwgKGV2ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50LT50aW1l
KCkgPCBwYXJhbUV2ZW50RW5kVGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChlbmRU
aW1lID49IHBhcmFtRXZlbnQtPnRpbWUoKSAmJiBlbmRUaW1lIDwgcGFyYW1FdmVudEVuZFRpbWUp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtRXZlbnQtPnRpbWUoKSA+IGV2
ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGltZSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFy
ZSBvdmVybGFwcGluZyJfcyB9OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAocGFyYW1FdmVudC50aW1lKCkgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudC50aW1l
KCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBw
b3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciX3MgfTsKLSAgICAgICAgfSBlbHNl
IGlmIChwYXJhbUV2ZW50LnR5cGUoKSA9PSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZlKSB7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocGFyYW1FdmVudC0+dHlwZSgpID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgbWFr
ZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGluZyBTZXRWYWx1ZUN1
cnZlIGV2ZW50LgotICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBwYXJhbUV2
ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKLSAgICAgICAgICAgIGlmIChldmVu
dC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgpIDwgcGFyZW50RXZl
bnRFbmRUaW1lKQorICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBwYXJhbUV2
ZW50LT50aW1lKCkgKyBwYXJhbUV2ZW50LT5kdXJhdGlvbigpOworICAgICAgICAgICAgaWYgKGV2
ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50LT50aW1lKCkgPCBwYXJl
bnRFdmVudEVuZFRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1
cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIgfTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChwYXJhbUV2ZW50LnRpbWUoKSA+IGluc2VydFRpbWUpCisgICAgICAgIGlmIChw
YXJhbUV2ZW50LT50aW1lKCkgPiBpbnNlcnRUaW1lKQogICAgICAgICAgICAgYnJlYWs7CiAKICAg
ICAgICAgKytpOwogICAgIH0KIAotICAgIG1fZXZlbnRzLmluc2VydChpLCBldmVudCk7CisgICAg
bV9ldmVudHMuaW5zZXJ0KGksIFdURk1vdmUoZXZlbnQpKTsKICAgICByZXR1cm4geyB9OwogfQog
CkBAIC0xNzYsMTEgKzE4NCwxMjMgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbFNj
aGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAgICAgfQogfQogCitFeGNlcHRpb25P
cjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUoU2Vjb25kcyBj
YW5jZWxUaW1lKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7
CisKKyAgICBzaXplX3QgaTsKKyAgICAvLyBGaW5kIHRoZSBmaXJzdCBldmVudCBhdCBvciBqdXN0
IHBhc3QgY2FuY2VsVGltZS4KKyAgICBmb3IgKGkgPSAwOyBpIDwgbV9ldmVudHMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgaWYgKG1fZXZlbnRzW2ldLT50aW1lKCkgPiBjYW5jZWxUaW1lKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gVGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcg
Y2FuY2VsbGVkLiBUaGlzIGlzIHRoZSBldmVudCBqdXN0IHBhc3QgY2FuY2VsVGltZSwgaWYgYW55
LgorICAgIHNpemVfdCBjYW5jZWxsZWRFdmVudEluZGV4ID0gaTsKKworICAgIC8vIElmIHRoZSBl
dmVudCBqdXN0IGJlZm9yZSBjYW5jZWxUaW1lIGlzIGEgU2V0VGFyZ2V0IG9yIFNldFZhbHVlQ3Vy
dmUgZXZlbnQsIHdlIG5lZWQKKyAgICAvLyB0byBoYW5kbGUgdGhhdCBldmVudCBzcGVjaWFsbHkg
aW5zdGVhZCBvZiB0aGUgZXZlbnQgYWZ0ZXIuCisgICAgaWYgKGkgPiAwICYmICgobV9ldmVudHNb
aSAtIDFdLT50eXBlKCkgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB8fCAobV9ldmVudHNbaSAt
IDFdLT50eXBlKCkgPT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkpKQorICAgICAgICBjYW5j
ZWxsZWRFdmVudEluZGV4ID0gaSAtIDE7CisgICAgZWxzZSBpZiAoaSA+PSBtX2V2ZW50cy5zaXpl
KCkpIHsKKyAgICAgICAgLy8gSWYgdGhlcmUgd2VyZSBubyBldmVudHMgb2NjdXJyaW5nIGFmdGVy
IHxjYW5jZWxUaW1lfCAoYW5kIHRoZQorICAgICAgICAvLyBwcmV2aW91cyBldmVudCBpcyBub3Qg
U2V0VGFyZ2V0IG9yIFNldFZhbHVlQ3VydmUsIHdlJ3JlIGRvbmUuCisgICAgICAgIHJldHVybiB7
IH07CisgICAgfQorCisgICAgLy8gY2FuY2VsbGVkRXZlbnQgaXMgdGhlIGV2ZW50IHRoYXQgaXMg
YmVpbmcgY2FuY2VsbGVkLgorICAgIGF1dG8mIGNhbmNlbGxlZEV2ZW50ID0gbV9ldmVudHNbY2Fu
Y2VsbGVkRXZlbnRJbmRleF0uZ2V0KCk7CisgICAgYXV0byBldmVudFR5cGUgPSBjYW5jZWxsZWRF
dmVudC50eXBlKCk7CisKKyAgICAvLyBOZXcgZXZlbnQgdG8gYmUgaW5zZXJ0ZWQsIGlmIGFueSwg
YW5kIGEgU2V0VmFsdWVFdmVudCBpZiBuZWVkZWQuCisgICAgT3B0aW9uYWw8VW5pcXVlUmVmPFBh
cmFtRXZlbnQ+PiBuZXdFdmVudDsKKyAgICBPcHRpb25hbDxVbmlxdWVSZWY8UGFyYW1FdmVudD4+
IG5ld1NldFZhbHVlRXZlbnQ7CisKKyAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgeworICAgIGNhc2Ug
UGFyYW1FdmVudDo6TGluZWFyUmFtcFRvVmFsdWU6CisgICAgY2FzZSBQYXJhbUV2ZW50OjpFeHBv
bmVudGlhbFJhbXBUb1ZhbHVlOiB7CisgICAgICAgIC8vIEZvciB0aGVzZSBldmVudHMgd2UgbmVl
ZCB0byByZW1lbWJlciB0aGUgcGFyYW1ldGVycyBvZiB0aGUgZXZlbnQKKyAgICAgICAgLy8gZm9y
IGEgQ2FuY2VsVmFsdWVzIGV2ZW50IHNvIHRoYXQgd2UgY2FuIHByb3Blcmx5IGNhbmNlbCB0aGUg
ZXZlbnQKKyAgICAgICAgLy8gYW5kIGhvbGQgdGhlIHZhbHVlLgorICAgICAgICBhdXRvIHNhdmVk
RXZlbnQgPSBtYWtlVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KGV2ZW50VHlwZSwgY2FuY2VsbGVkRXZl
bnQudmFsdWUoKSwgY2FuY2VsbGVkRXZlbnQudGltZSgpLCBjYW5jZWxsZWRFdmVudC50aW1lQ29u
c3RhbnQoKSwgY2FuY2VsbGVkRXZlbnQuZHVyYXRpb24oKSwgVmVjdG9yPGZsb2F0PiB7IGNhbmNl
bGxlZEV2ZW50LmN1cnZlKCkgfSwgY2FuY2VsbGVkRXZlbnQuY3VydmVQb2ludHNQZXJTZWNvbmQo
KSwgY2FuY2VsbGVkRXZlbnQuY3VydmVFbmRWYWx1ZSgpLCBudWxscHRyKTsKKyAgICAgICAgbmV3
RXZlbnQgPSBQYXJhbUV2ZW50OjpjcmVhdGVDYW5jZWxWYWx1ZXNFdmVudChjYW5jZWxUaW1lLCBz
YXZlZEV2ZW50Lm1vdmVUb1VuaXF1ZVB0cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGNhc2UgUGFyYW1FdmVudDo6U2V0VGFyZ2V0OiB7CisgICAgICAgIGlmIChjYW5jZWxsZWRFdmVu
dC50aW1lKCkgPCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIHJl
bW92ZSB0aGUgU2V0VGFyZ2V0IGV2ZW50IGlmIGl0IHN0YXJ0ZWQgYmVmb3JlIHRoZQorICAgICAg
ICAgICAgLy8gY2FuY2VsIHRpbWUsIHNvIGJ1bXAgdGhlIGluZGV4LiBCdXQgd2UgZG8gd2FudCB0
byBpbnNlcnQgYQorICAgICAgICAgICAgLy8gY2FuY2VsRXZlbnQgc28gdGhhdCB3ZSBzdG9wIHRo
aXMgYXV0b21hdGlvbiBhbmQgaG9sZCB0aGUgdmFsdWUgd2hlbgorICAgICAgICAgICAgLy8gd2Ug
Z2V0IHRoZXJlLgorICAgICAgICAgICAgKytjYW5jZWxsZWRFdmVudEluZGV4OworCisgICAgICAg
ICAgICBuZXdFdmVudCA9IFBhcmFtRXZlbnQ6OmNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KGNhbmNl
bFRpbWUsIG51bGxwdHIpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmU6IHsKKyAgICAgICAgLy8gSWYgdGhlIHNldFZh
bHVlQ3VydmUgZXZlbnQgc3RhcnRlZCBzdHJpY3RseSBiZWZvcmUgdGhlIGNhbmNlbCB0aW1lLAor
ICAgICAgICAvLyB0aGVyZSBtaWdodCBiZSBzb21ldGhpbmcgdG8gZG8uLi4uCisgICAgICAgIGlm
IChjYW5jZWxsZWRFdmVudC50aW1lKCkgPCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICBpZiAo
Y2FuY2VsVGltZSA+IGNhbmNlbGxlZEV2ZW50LnRpbWUoKSArIGNhbmNlbGxlZEV2ZW50LmR1cmF0
aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FuY2VsbGF0aW9uIHRpbWUgaXMg
cGFzdCB0aGUgZW5kIG9mIHRoZSBjdXJ2ZSB0aGVyZSdzCisgICAgICAgICAgICAgICAgLy8gbm90
aGluZyB0byBkbyBleGNlcHQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgZXZlbnRzLgorICAgICAgICAg
ICAgICAgICsrY2FuY2VsbGVkRXZlbnRJbmRleDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgLy8gQ2FuY2VsbGF0aW9uIHRpbWUgaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUg
Y3VydmUuIFRoZXJlZm9yZSwKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgU2V0VmFs
dWVDdXJ2ZSBldmVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBuZXcKKyAgICAgICAgICAgICAgICAv
LyBwYXJhbWV0ZXJzIHRvIGNhbmNlbCB0aGlzIGV2ZW50IHByb3Blcmx5LiBTaW5jZSBpdCdzIGls
bGVnYWwKKyAgICAgICAgICAgICAgICAvLyB0byBpbnNlcnQgYW55IGV2ZW50IHdpdGhpbiBhIFNl
dFZhbHVlQ3VydmUgZXZlbnQsIHdlIGNhbgorICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhl
IG5ldyBlbmQgdmFsdWUgbm93IGluc3RlYWQgb2YgZG9pbmcgd2hlbiBydW5uaW5nCisgICAgICAg
ICAgICAgICAgLy8gdGhlIHRpbWVsaW5lLgorICAgICAgICAgICAgICAgIGF1dG8gbmV3RHVyYXRp
b24gPSBjYW5jZWxUaW1lIC0gY2FuY2VsbGVkRXZlbnQudGltZSgpOworICAgICAgICAgICAgICAg
IGZsb2F0IGVuZFZhbHVlID0gdmFsdWVDdXJ2ZUF0VGltZShjYW5jZWxUaW1lLCBjYW5jZWxsZWRF
dmVudC50aW1lKCksIGNhbmNlbGxlZEV2ZW50LmR1cmF0aW9uKCksIGNhbmNlbGxlZEV2ZW50LmN1
cnZlKCkuZGF0YSgpLCBjYW5jZWxsZWRFdmVudC5jdXJ2ZSgpLnNpemUoKSk7CisKKyAgICAgICAg
ICAgICAgICAvLyBSZXBsYWNlIHRoZSBleGlzdGluZyBTZXRWYWx1ZUN1cnZlIHdpdGggdGhpcyBu
ZXcgb25lIHRoYXQgaXMgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIGR1cmF0aW9uLgorICAgICAg
ICAgICAgICAgIG5ld0V2ZW50ID0gbWFrZVVuaXF1ZVJlZjxQYXJhbUV2ZW50PihldmVudFR5cGUs
IGNhbmNlbGxlZEV2ZW50LnZhbHVlKCksIGNhbmNlbGxlZEV2ZW50LnRpbWUoKSwgY2FuY2VsbGVk
RXZlbnQudGltZUNvbnN0YW50KCksIG5ld0R1cmF0aW9uLCBWZWN0b3I8ZmxvYXQ+IHsgY2FuY2Vs
bGVkRXZlbnQuY3VydmUoKSB9LCBjYW5jZWxsZWRFdmVudC5jdXJ2ZVBvaW50c1BlclNlY29uZCgp
LCBlbmRWYWx1ZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgbmV3U2V0VmFsdWVFdmVudCA9
IFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQoZW5kVmFsdWUsIGNhbmNlbGxlZEV2ZW50
LnRpbWUoKSArIG5ld0R1cmF0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRWYWx1ZToKKyAgICBjYXNl
IFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlczoKKyAgICAgICAgLy8gTm90aGluZyBuZWVkcyB0byBi
ZSBkb25lIGZvciBhIFNldFZhbHVlIG9yIENhbmNlbFZhbHVlcyBldmVudC4KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIE5vdyByZW1vdmUgYWxs
IHRoZSBmb2xsb3dpbmcgZXZlbnRzIGZyb20gdGhlIHRpbWVsaW5lLgorICAgIGlmIChjYW5jZWxs
ZWRFdmVudEluZGV4IDwgbV9ldmVudHMuc2l6ZSgpKQorICAgICAgICByZW1vdmVDYW5jZWxsZWRF
dmVudHMoY2FuY2VsbGVkRXZlbnRJbmRleCk7CisKKyAgICAvLyBJbnNlcnQgdGhlIG5ldyBldmVu
dCwgaWYgYW55LgorICAgIGlmIChuZXdFdmVudCkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGlu
c2VydEV2ZW50KFdURk1vdmUoKm5ld0V2ZW50KSk7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICAgICAgaWYgKG5ld1NldFZhbHVlRXZlbnQpIHsKKyAgICAgICAgICAgIGluc2VydEV2ZW50
KFdURk1vdmUoKm5ld1NldFZhbHVlRXZlbnQpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIEF1
ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50
VG9SZW1vdmUpCit7CisgICAgbV9ldmVudHMucmVtb3ZlKGZpcnN0RXZlbnRUb1JlbW92ZSwgbV9l
dmVudHMuc2l6ZSgpIC0gZmlyc3RFdmVudFRvUmVtb3ZlKTsKK30KKwogT3B0aW9uYWw8ZmxvYXQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhW
YWx1ZSkKIHsKICAgICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2V2
ZW50c011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICAgICAgaWYgKCFsb2NrLm93bnNfbG9j
aygpIHx8ICFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVudFRpbWUo
KSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIWxvY2sub3duc19sb2NrKCkg
fHwgIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0g
PCBtX2V2ZW50c1swXS0+dGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIyMSw3ICszNDEsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZh
bHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAg
ICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogCiAgICAgLy8gUmV0dXJuIGRlZmF1bHQgdmFsdWUg
aWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBtYXRjaGluZyB0aGUgZGVzaXJlZCB0aW1lIHJhbmdlLgot
ICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IGVuZFRpbWUgPD0gbV9ldmVudHNbMF0udGltZSgp
KSB7CisgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgZW5kVGltZSA8PSBtX2V2ZW50c1swXS0+
dGltZSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZlZhbHVl
czsgKytpKQogICAgICAgICAgICAgdmFsdWVzW2ldID0gZGVmYXVsdFZhbHVlOwogICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwpAQCAtMjMzLDcgKzM1Myw3IEBAIGZsb2F0IEF1ZGlvUGFyYW1U
aW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25k
cyBlbmRUCiAKICAgICAvLyBJZiBmaXJzdCBldmVudCBpcyBhZnRlciBzdGFydFRpbWUgdGhlbiBm
aWxsIGluaXRpYWwgcGFydCBvZiB2YWx1ZXMgYnVmZmVyIHdpdGggZGVmYXVsdFZhbHVlCiAgICAg
Ly8gdW50aWwgd2UgcmVhY2ggdGhlIGZpcnN0IGV2ZW50IHRpbWUuCi0gICAgYXV0byBmaXJzdEV2
ZW50VGltZSA9IG1fZXZlbnRzWzBdLnRpbWUoKTsKKyAgICBhdXRvIGZpcnN0RXZlbnRUaW1lID0g
bV9ldmVudHNbMF0tPnRpbWUoKTsKICAgICBpZiAoZmlyc3RFdmVudFRpbWUgPiBzdGFydFRpbWUp
IHsKICAgICAgICAgYXV0byBmaWxsVG9UaW1lID0gc3RkOjptaW4oZW5kVGltZSwgZmlyc3RFdmVu
dFRpbWUpOwogICAgICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRpbGl0aWVzOjp0
aW1lVG9TYW1wbGVGcmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUoKSwgc2FtcGxl
UmF0ZSk7CkBAIC0yNTIsMTggKzM3MiwyMiBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZh
bHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAg
IC8vIGFuZCBrZWVwaW5nIHRyYWNrIG9mIGEgImN1cnJlbnQiIGV2ZW50IGluZGV4LgogICAgIGlu
dCBuID0gbV9ldmVudHMuc2l6ZSgpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAmJiB3cml0
ZUluZGV4IDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkgewotICAgICAgICBQYXJhbUV2ZW50JiBldmVu
dCA9IG1fZXZlbnRzW2ldOwotICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQgPSBpIDwgbiAt
IDEgPyAmKG1fZXZlbnRzW2kgKyAxXSkgOiBudWxscHRyOworICAgICAgICBQYXJhbUV2ZW50JiBl
dmVudCA9IG1fZXZlbnRzW2ldLmdldCgpOworICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQg
PSBpIDwgbiAtIDEgPyAmbV9ldmVudHNbaSArIDFdLmdldCgpIDogbnVsbHB0cjsKIAogICAgICAg
ICAvLyBXYWl0IHVudGlsIHdlIGdldCBhIG1vcmUgcmVjZW50IGV2ZW50LgogICAgICAgICBpZiAo
bmV4dEV2ZW50ICYmIG5leHRFdmVudC0+dGltZSgpIDwgY3VycmVudFRpbWUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAorICAgICAgICBQYXJhbUV2ZW50OjpUeXBlIG5leHRFdmVudFR5cGUgPSBu
ZXh0RXZlbnQgPyBzdGF0aWNfY2FzdDxQYXJhbUV2ZW50OjpUeXBlPihuZXh0RXZlbnQtPnR5cGUo
KSkgOiBQYXJhbUV2ZW50OjpMYXN0VHlwZSAvKiB1bmtub3duICovOworCiAgICAgICAgIGZsb2F0
IHZhbHVlMSA9IGV2ZW50LnZhbHVlKCk7CiAgICAgICAgIGF1dG8gdGltZTEgPSBldmVudC50aW1l
KCk7CiAgICAgICAgIGZsb2F0IHZhbHVlMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+dmFsdWUo
KSA6IHZhbHVlMTsKICAgICAgICAgYXV0byB0aW1lMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+
dGltZSgpIDogZW5kVGltZSArIDFfczsKIAorICAgICAgICBoYW5kbGVDYW5jZWxWYWx1ZXMoZXZl
bnQsIG5leHRFdmVudCwgdmFsdWUyLCB0aW1lMiwgbmV4dEV2ZW50VHlwZSk7CisKICAgICAgICAg
YXV0byBkZWx0YVRpbWUgPSB0aW1lMiAtIHRpbWUxOwogICAgICAgICBhdXRvIHNhbXBsZUZyYW1l
VGltZUluY3IgPSBTZWNvbmRzIHsgMSAvIHNhbXBsZVJhdGUgfTsKIApAQCAtMjcxLDggKzM5NSw2
IEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNv
bmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgICAgIHVuc2lnbmVkIGZpbGxUb0ZyYW1l
ID0gQXVkaW9VdGlsaXRpZXM6OnRpbWVUb1NhbXBsZUZyYW1lKChmaWxsVG9UaW1lIC0gc3RhcnRU
aW1lKS52YWx1ZSgpLCBzYW1wbGVSYXRlKTsKICAgICAgICAgZmlsbFRvRnJhbWUgPSBzdGQ6Om1p
bihmaWxsVG9GcmFtZSwgbnVtYmVyT2ZWYWx1ZXMpOwogCi0gICAgICAgIFBhcmFtRXZlbnQ6OlR5
cGUgbmV4dEV2ZW50VHlwZSA9IG5leHRFdmVudCA/IHN0YXRpY19jYXN0PFBhcmFtRXZlbnQ6OlR5
cGU+KG5leHRFdmVudC0+dHlwZSgpKSA6IFBhcmFtRXZlbnQ6Okxhc3RUeXBlIC8qIHVua25vd24g
Ki87Ci0KICAgICAgICAgLy8gRmlyc3QgaGFuZGxlIGxpbmVhciBhbmQgZXhwb25lbnRpYWwgcmFt
cHMgd2hpY2ggcmVxdWlyZSBsb29raW5nIGFoZWFkIHRvIHRoZSBuZXh0IGV2ZW50LgogICAgICAg
ICBpZiAobmV4dEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSkgewog
ICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4
KSB7CkBAIC0zMjUsNiArNDQ3LDMzIEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVz
Rm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgY2Fz
ZSBQYXJhbUV2ZW50OjpDYW5jZWxWYWx1ZXM6CisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBldmVudCB3YXMgYSBTZXRUYXJnZXQgb3IgRXhwb25l
bnRpYWxSYW1wCisgICAgICAgICAgICAgICAgLy8gZXZlbnQsIHRoZSBjdXJyZW50IHZhbHVlIGlz
IG9uZSBzYW1wbGUgYmVoaW5kLiBVcGRhdGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2FtcGxl
IHZhbHVlIGJ5IG9uZSBzYW1wbGUsIGJ1dCBvbmx5IGF0IHRoZSBzdGFydCBvZgorICAgICAgICAg
ICAgICAgIC8vIHRoaXMgQ2FuY2VsVmFsdWVzIGV2ZW50LgorICAgICAgICAgICAgICAgIGlmIChl
dmVudC5oYXNEZWZhdWx0Q2FuY2VsbGVkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgdmFs
dWUgPSBldmVudC52YWx1ZSgpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBhdXRvIGNhbmNlbFRpbWUgPSB0aW1lMTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGkgPj0gMSAmJiBjYW5jZWxUaW1lIDw9IGN1cnJlbnRUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2Fu
Y2VsVGltZSArIHNhbXBsZUZyYW1lVGltZUluY3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gbGFzdEV2ZW50VHlwZSA9IG1fZXZlbnRzW2kgLSAxXS0+dHlwZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGxhc3RFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gbV9ldmVudHNb
aSAtIDFdLT52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRpbWVD
b25zdGFudCA9IG1fZXZlbnRzW2kgLSAxXS0+dGltZUNvbnN0YW50KCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgZGlzY3JldGVUaW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxm
bG9hdD4oQXVkaW9VdGlsaXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0
aW1lQ29uc3RhbnQsIGNvbnRyb2xSYXRlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgKz0gKHRhcmdldCAtIHZhbHVlKSAqIGRpc2NyZXRlVGltZUNvbnN0YW50OworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsg
Kyt3cml0ZUluZGV4KQorICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2
YWx1ZTsKKworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQ6CiAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGltZSA9IGZpbGxUb1RpbWU7CkBAIC0zNTUsMTEg
KzUwNCwxMSBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUlt
cGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgZmxvYXQqIGN1cnZlRGF0YSA9IGV2ZW50LmN1cnZlKCkuZGF0YSgp
OwogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkN1cnZlUG9pbnRzID0gZXZl
bnQuY3VydmUoKS5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGN1cnZlRW5kVmFs
dWUgPSBldmVudC5jdXJ2ZUVuZFZhbHVlKCk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gQ3Vy
dmUgZXZlbnRzIGhhdmUgZHVyYXRpb24sIHNvIGRvbid0IGp1c3QgdXNlIG5leHQgZXZlbnQgdGlt
ZS4KICAgICAgICAgICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uKCk7
Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gZHVyYXRpb25GcmFtZXMgPSBkdXJhdGlvbi52YWx1
ZSgpICogc2FtcGxlUmF0ZTsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgY3VydmVQb2ludHNQ
ZXJGcmFtZSA9IHN0YXRpY19jYXN0PGZsb2F0PihudW1iZXJPZkN1cnZlUG9pbnRzKSAvIGR1cmF0
aW9uRnJhbWVzOworICAgICAgICAgICAgICAgICAgICBmbG9hdCBjdXJ2ZVBvaW50c1BlckZyYW1l
ID0gZXZlbnQuY3VydmVQb2ludHNQZXJTZWNvbmQoKSAvIHNhbXBsZVJhdGU7CiAKICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFjdXJ2ZURhdGEgfHwgIW51bWJlck9mQ3VydmVQb2ludHMgfHwgZHVy
YXRpb24gPD0gMF9zIHx8IHNhbXBsZVJhdGUgPD0gMCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRXJyb3IgY29uZGl0aW9uIC0gc2ltcGx5IHByb3BhZ2F0ZSBwcmV2aW91cyB2YWx1ZS4K
QEAgLTM4Nyw2ICs1MzYsOSBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRp
bWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgICAgICAgICAg
ICAgICAgICAgICAgY3VydmVWaXJ0dWFsSW5kZXggPSBjdXJ2ZVBvaW50c1BlckZyYW1lICogZnJh
bWVPZmZzZXQ7CiAgICAgICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgICAgICAv
LyBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgaW4gY2FzZSBmaWxsVG9GcmFtZSBpcyAwLgorICAgICAg
ICAgICAgICAgICAgICB2YWx1ZSA9IGN1cnZlRW5kVmFsdWU7CisKICAgICAgICAgICAgICAgICAg
ICAgLy8gUmVuZGVyIHRoZSBzdHJldGNoZWQgY3VydmUgZGF0YSB1c2luZyBuZWFyZXN0IG5laWdo
Ym9yIHNhbXBsaW5nLgogICAgICAgICAgICAgICAgICAgICAvLyBPdmVyc2FtcGxlZCBjdXJ2ZSBk
YXRhIGNhbiBiZSBwcm92aWRlZCBpZiBzbW9vdGhuZXNzIGlzIGRlc2lyZWQuCiAgICAgICAgICAg
ICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkg
ewpAQCAtNDA1LDE0ICs1NTcsMjAgQEAgZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNG
b3JUaW1lUmFuZ2VJbXBsKFNlY29uZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFQKIAogICAgICAg
ICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGFueSB0aW1lIGxlZnQgYWZ0ZXIgdGhlIGR1cmF0
aW9uIG9mIHRoaXMgZXZlbnQgYW5kIHRoZSBzdGFydAogICAgICAgICAgICAgICAgICAgICAvLyBv
ZiB0aGUgbmV4dCwgdGhlbiBqdXN0IHByb3BhZ2F0ZSB0aGUgbGFzdCB2YWx1ZS4KLSAgICAgICAg
ICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBuZXh0RXZlbnRGaWxsVG9GcmFtZTsgKyt3
cml0ZUluZGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3dyaXRlSW5kZXhdID0g
dmFsdWU7CisgICAgICAgICAgICAgICAgICAgIGlmICh3cml0ZUluZGV4IDwgbmV4dEV2ZW50Rmls
bFRvRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3VydmVFbmRWYWx1
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgbmV4dEV2ZW50
RmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgICAgIC8vIFJlLWFkanVzdCBjdXJyZW50IHRpbWUKICAgICAgICAgICAgICAg
ICAgICAgY3VycmVudFRpbWUgPSBuZXh0RXZlbnRGaWxsVG9UaW1lOwogCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgUGFyYW1F
dmVudDo6TGFzdFR5cGU6CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBA
IC00MjUsNiArNTgzLDk4IEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGlt
ZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgcmV0dXJuIHZh
bHVlOwogfQogCitpbmxpbmUgZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjpsaW5lYXJSYW1wQXRU
aW1lKFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIs
IFNlY29uZHMgdGltZTIpCit7CisgICAgcmV0dXJuIHZhbHVlMSArICh2YWx1ZTIgLSB2YWx1ZTEp
ICogKHQgLSB0aW1lMSkudmFsdWUoKSAvICh0aW1lMiAtIHRpbWUxKS52YWx1ZSgpOworfQorCitp
bmxpbmUgZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vj
b25kcyB0LCBmbG9hdCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25k
cyB0aW1lMikKK3sKKyAgICByZXR1cm4gdmFsdWUxICogcG93KHZhbHVlMiAvIHZhbHVlMSwgKHQg
LSB0aW1lMSkudmFsdWUoKSAvICh0aW1lMiAtIHRpbWUxKS52YWx1ZSgpKTsKK30KKworZmxvYXQg
QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUN1cnZlQXRUaW1lKFNlY29uZHMgdCwgU2Vjb25kcyB0
aW1lMSwgU2Vjb25kcyBkdXJhdGlvbiwgY29uc3QgZmxvYXQqIGN1cnZlRGF0YSwgc2l6ZV90IGN1
cnZlTGVuZ3RoKQoreworICAgIGRvdWJsZSBjdXJ2ZUluZGV4ID0gKGN1cnZlTGVuZ3RoIC0gMSkg
LyBkdXJhdGlvbi52YWx1ZSgpICogKHQgLSB0aW1lMSkudmFsdWUoKTsKKyAgICBzaXplX3QgayA9
IHN0ZDo6bWluKHN0YXRpY19jYXN0PHNpemVfdD4oY3VydmVJbmRleCksIGN1cnZlTGVuZ3RoIC0g
MSk7CisgICAgc2l6ZV90IGsxID0gc3RkOjptaW4oayArIDEsIGN1cnZlTGVuZ3RoIC0gMSk7Cisg
ICAgZmxvYXQgYzAgPSBjdXJ2ZURhdGFba107CisgICAgZmxvYXQgYzEgPSBjdXJ2ZURhdGFbazFd
OworICAgIGZsb2F0IGRlbHRhID0gc3RkOjptaW4oY3VydmVJbmRleCAtIGssIDEuMCk7CisKKyAg
ICByZXR1cm4gYzAgKyAoYzEgLSBjMCkgKiBkZWx0YTsKK30KKwordm9pZCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OmhhbmRsZUNhbmNlbFZhbHVlcyhQYXJhbUV2ZW50JiBldmVudCwgUGFyYW1FdmVudCog
bmV4dEV2ZW50LCBmbG9hdCYgdmFsdWUyLCBTZWNvbmRzJiB0aW1lMiwgUGFyYW1FdmVudDo6VHlw
ZSYgbmV4dEV2ZW50VHlwZSkKK3sKKyAgICBpZiAobmV4dEV2ZW50ICYmIG5leHRFdmVudC0+dHlw
ZSgpID09IFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlcyAmJiBuZXh0RXZlbnQtPnNhdmVkRXZlbnQo
KSkgeworICAgICAgICBmbG9hdCB2YWx1ZTEgPSBldmVudC52YWx1ZSgpOworICAgICAgICBhdXRv
IHRpbWUxID0gZXZlbnQudGltZSgpOworCisgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSgpKSB7
CisgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzOgorICAgICAgICBjYXNlIFBh
cmFtRXZlbnQ6OkxpbmVhclJhbXBUb1ZhbHVlOgorICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OkV4
cG9uZW50aWFsUmFtcFRvVmFsdWU6CisgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWU6
IHsKKyAgICAgICAgICAgIC8vIFRoZXNlIHRocmVlIGV2ZW50cyBwb3RlbnRpYWxseSBlc3RhYmxp
c2ggYSBzdGFydGluZyB2YWx1ZSBmb3IKKyAgICAgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgZXZl
bnQsIHNvIHdlIG5lZWQgdG8gZXhhbWluZSB0aGUgY2FuY2VsbGVkCisgICAgICAgICAgICAvLyBl
dmVudCB0byBzZWUgd2hhdCB0byBkby4KKyAgICAgICAgICAgIGF1dG8qIHNhdmVkRXZlbnQgPSBu
ZXh0RXZlbnQtPnNhdmVkRXZlbnQoKTsKKworICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBlbmQg
dGltZSBhbmQgdHlwZSB0byBwcmV0ZW5kIHRoYXQgd2UncmUgcnVubmluZworICAgICAgICAgICAg
Ly8gdGhpcyBzYXZlZCBldmVudCB0eXBlLgorICAgICAgICAgICAgdGltZTIgPSBuZXh0RXZlbnQt
PnRpbWUoKTsKKyAgICAgICAgICAgIG5leHRFdmVudFR5cGUgPSBzYXZlZEV2ZW50LT50eXBlKCk7
CisKKyAgICAgICAgICAgIGlmIChuZXh0RXZlbnQtPmhhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSgp
KSB7CisgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBlc3RhYmxpc2hlZCBhIHZhbHVl
IGZvciB0aGUgY2FuY2VsbGVkCisgICAgICAgICAgICAgICAgLy8gZXZlbnQsIHNvIGp1c3QgcmV0
dXJuIGl0LgorICAgICAgICAgICAgICAgIHZhbHVlMiA9IG5leHRFdmVudC0+dmFsdWUoKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5leHQgZXZlbnQg
d291bGQgaGF2ZSBiZWVuIGEgTGluZWFyUmFtcCBvcgorICAgICAgICAgICAgICAgIC8vIEV4cG9u
ZW50aWFsUmFtcCwgd2UgbmVlZCB0byBjb21wdXRlIGEgbmV3IGVuZCB2YWx1ZSBmb3IKKyAgICAg
ICAgICAgICAgICAvLyB0aGUgZXZlbnQgc28gdGhhdCB0aGUgY3VydmUgd29ya3MgY29udGludWVz
IGFzIGlmIGl0IHdlcmUKKyAgICAgICAgICAgICAgICAvLyBub3QgY2FuY2VsbGVkLgorICAgICAg
ICAgICAgICAgIHN3aXRjaCAoc2F2ZWRFdmVudC0+dHlwZSgpKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZToKKyAgICAgICAgICAgICAgICAgICAg
dmFsdWUyID0gbGluZWFyUmFtcEF0VGltZShuZXh0RXZlbnQtPnRpbWUoKSwgdmFsdWUxLCB0aW1l
MSwgc2F2ZWRFdmVudC0+dmFsdWUoKSwgc2F2ZWRFdmVudC0+dGltZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpFeHBvbmVu
dGlhbFJhbXBUb1ZhbHVlOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZTIgPSBleHBvbmVudGlh
bFJhbXBBdFRpbWUobmV4dEV2ZW50LT50aW1lKCksIHZhbHVlMSwgdGltZTEsIHNhdmVkRXZlbnQt
PnZhbHVlKCksIHNhdmVkRXZlbnQtPnRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlOgorICAgICAgICAgICAgICAgIGNh
c2UgUGFyYW1FdmVudDo6U2V0VGFyZ2V0OgorICAgICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVu
dDo6Q2FuY2VsVmFsdWVzOgorICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBjYW5ub3QgYmUg
cG9zc2libGUgdHlwZXMgZm9yIHRoZSBzYXZlZCBldmVudCBiZWNhdXNlIHRoZXkgY2FuJ3QgYmUg
Y3JlYXRlZC4KKyAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlQ2FuY2VsVmFsdWVzRXZlbnQg
ZG9lc24ndCBhbGxvdyB0aGVtIChTZXRWYWx1ZSwgU2V0VGFyZ2V0LCBDYW5jZWxWYWx1ZXMpIG9y
CisgICAgICAgICAgICAgICAgICAgIC8vIGNhbmNlbFNjaGVkdWxlZFZhbHVlcygpIGRvZXNuJ3Qg
Y3JlYXRlIHN1Y2ggYW4gZXZlbnQgKFNldFZhbHVlQ3VydmUpLgorICAgICAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIENhY2hlIHRoZSBuZXcgdmFsdWUg
c28gd2UgZG9uJ3Qga2VlcCBjb21wdXRpbmcgaXQgb3ZlciBhbmQgb3Zlci4KKyAgICAgICAgICAg
ICAgICBuZXh0RXZlbnQtPnNldENhbmNlbGxlZFZhbHVlKHZhbHVlMik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2
ZToKKyAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgbmVlZGVkIGZvciB0aGlzIHdhcyBoYW5kbGVk
IHdoZW4gY2FuY2VsbGluZyB3YXMKKyAgICAgICAgICAgIC8vIGRvbmUuCisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQ6CisgICAgICAgICAgICAv
LyBOb3RoaW5nIHNwZWNpYWwgbmVlZHMgdG8gYmUgZG9uZSBmb3IgU2V0VGFyZ2V0CisgICAgICAg
ICAgICAvLyBmb2xsb3dlZCBieSBDYW5jZWxWYWx1ZXMuCisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
aAppbmRleCBjOTBlMDg1ODQyYjYuLjJhYzY5YjY3YzVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oCkBAIC00OCw3ICs0
OCw4IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBleHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIFNlY29uZHMgdGltZSwgZmxvYXQgdGlt
ZUNvbnN0YW50KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUN1cnZlQXRUaW1lKFZl
Y3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9uKTsKLSAg
ICB2b2lkIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIHN0YXJ0VGltZSk7CisgICAgdm9p
ZCBjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKTsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBjYW5jZWxBbmRIb2xkQXRUaW1lKFNlY29uZHMgY2FuY2VsVGltZSk7CiAKICAg
ICAvLyBoYXNWYWx1ZSBpcyBzZXQgdG8gdHJ1ZSBpZiBhIHZhbGlkIHRpbWVsaW5lIHZhbHVlIGlz
IHJldHVybmVkLgogICAgIC8vIG90aGVyd2lzZSBkZWZhdWx0VmFsdWUgaXMgcmV0dXJuZWQuCkBA
IC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjbGFzcyBQYXJhbUV2ZW50
IHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAg
ICBlbnVtIFR5cGUgewogICAgICAgICAgICAgU2V0VmFsdWUsCkBAIC03MiwzOSArNzQsMTM0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLAogICAgICAgICAg
ICAgU2V0VGFyZ2V0LAogICAgICAgICAgICAgU2V0VmFsdWVDdXJ2ZSwKKyAgICAgICAgICAgIENh
bmNlbFZhbHVlcywKICAgICAgICAgICAgIExhc3RUeXBlCiAgICAgICAgIH07CiAKLSAgICAgICAg
UGFyYW1FdmVudChUeXBlIHR5cGUsIGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRp
bWVDb25zdGFudCwgU2Vjb25kcyBkdXJhdGlvbiwgVmVjdG9yPGZsb2F0PiYmIGN1cnZlKQorICAg
ICAgICBzdGF0aWMgVW5pcXVlUmVmPFBhcmFtRXZlbnQ+IGNyZWF0ZVNldFZhbHVlRXZlbnQoZmxv
YXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWUsIHZhbHVlLCB0aW1l
LCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVMaW5l
YXJSYW1wRXZlbnQoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6TGluZWFy
UmFtcFRvVmFsdWUsIHZhbHVlLCB0aW1lLCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7
IH0sIDAsIDAsIG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJl
ZjxQYXJhbUV2ZW50PiBjcmVhdGVFeHBvbmVudGlhbFJhbXBFdmVudChmbG9hdCB2YWx1ZSwgU2Vj
b25kcyB0aW1lKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PihQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLCB2YWx1ZSwgdGlt
ZSwgMCwgU2Vjb25kcyB7IH0sIFZlY3RvcjxmbG9hdD4geyB9LCAwLCAwLCBudWxscHRyKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHN0YXRpYyBVbmlxdWVSZWY8UGFyYW1FdmVudD4gY3JlYXRlU2V0
VGFyZ2V0RXZlbnQoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRpbWVDb25zdGFu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIHRpbWUgbGluZSBjb2RlIGRvZXMgbm90
IGV4cGVjdCBhIHRpbWVDb25zdGFudCBvZiAwLiAoSXQgcmV0dXJucyBOYU4gb3IgSW5maW5pdHkg
ZHVlIHRvIGRpdmlzaW9uIGJ5IHplcm8uIFRoZSBjYWxsZXIKKyAgICAgICAgICAgIC8vIHNob3Vs
ZCBoYXZlIGNvbnZlcnRlZCB0aGlzIHRvIGEgU2V0VmFsdWVFdmVudC4KKyAgICAgICAgICAgIEFT
U0VSVCghIXRpbWVDb25zdGFudCk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PihQYXJhbUV2ZW50OjpTZXRUYXJnZXQsIHRhcmdldCwgdGltZSwgdGltZUNvbnN0
YW50LCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVTZXRW
YWx1ZUN1cnZlRXZlbnQoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29u
ZHMgZHVyYXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvdWJsZSBjdXJ2ZVBvaW50c1Bl
clNlY29uZCA9IChjdXJ2ZS5zaXplKCkgLSAxKSAvIGR1cmF0aW9uLnZhbHVlKCk7CisgICAgICAg
ICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0gY3VydmUubGFzdCgpOworICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwg
MCwgdGltZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpLCBjdXJ2ZVBvaW50c1BlclNlY29u
ZCwgY3VydmVFbmRWYWx1ZSwgbnVsbHB0cik7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMg
VW5pcXVlUmVmPFBhcmFtRXZlbnQ+IGNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KFNlY29uZHMgY2Fu
Y2VsVGltZSwgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IHNhdmVkRXZlbnQpCisgICAgICAg
IHsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICAgICAgaWYgKHNhdmVkRXZlbnQpIHsKKyAg
ICAgICAgICAgICAgICAvLyBUaGUgc2F2ZWRFdmVudCBjYW4gb25seSBoYXZlIGNlcnRhaW4gZXZl
bnQgdHlwZXMuIFZlcmlmeSB0aGF0LgorICAgICAgICAgICAgICAgIGF1dG8gc2F2ZWRFdmVudFR5
cGUgPSBzYXZlZEV2ZW50LT50eXBlKCk7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRF
dmVudFR5cGUgIT0gUGFyYW1FdmVudDo6TGFzdFR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VS
VChzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZQorICAgICAg
ICAgICAgICAgICAgICB8fCBzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpFeHBvbmVudGlh
bFJhbXBUb1ZhbHVlCisgICAgICAgICAgICAgICAgICAgIHx8IHNhdmVkRXZlbnRUeXBlID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQYXJhbUV2ZW50PihQYXJhbUV2ZW50OjpDYW5jZWxW
YWx1ZXMsIDAsIGNhbmNlbFRpbWUsIDAsIFNlY29uZHMgeyB9LCBWZWN0b3I8ZmxvYXQ+IHsgfSwg
MCwgMCwgV1RGTW92ZShzYXZlZEV2ZW50KSk7CisgICAgICAgIH0KKworICAgICAgICBQYXJhbUV2
ZW50KFR5cGUgdHlwZSwgZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0
YW50LCBTZWNvbmRzIGR1cmF0aW9uLCBWZWN0b3I8ZmxvYXQ+JiYgY3VydmUsIGRvdWJsZSBjdXJ2
ZVBvaW50c1BlclNlY29uZCwgZmxvYXQgY3VydmVFbmRWYWx1ZSwgc3RkOjp1bmlxdWVfcHRyPFBh
cmFtRXZlbnQ+IHNhdmVkRXZlbnQpCiAgICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAgICAgLCBtX3RpbWUodGltZSkKICAgICAg
ICAgICAgICwgbV90aW1lQ29uc3RhbnQodGltZUNvbnN0YW50KQogICAgICAgICAgICAgLCBtX2R1
cmF0aW9uKGR1cmF0aW9uKQogICAgICAgICAgICAgLCBtX2N1cnZlKFdURk1vdmUoY3VydmUpKQor
ICAgICAgICAgICAgLCBtX2N1cnZlUG9pbnRzUGVyU2Vjb25kKGN1cnZlUG9pbnRzUGVyU2Vjb25k
KQorICAgICAgICAgICAgLCBtX2N1cnZlRW5kVmFsdWUoY3VydmVFbmRWYWx1ZSkKKyAgICAgICAg
ICAgICwgbV9zYXZlZEV2ZW50KFdURk1vdmUoc2F2ZWRFdmVudCkpCiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgICAgIHVuc2lnbmVkIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
KyAgICAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIGZs
b2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgICAgICBTZWNvbmRzIHRp
bWUoKSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0KICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50
KCkgY29uc3QgeyByZXR1cm4gbV90aW1lQ29uc3RhbnQ7IH0KICAgICAgICAgU2Vjb25kcyBkdXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KICAgICAgICAgVmVjdG9yPGZsb2F0
PiYgY3VydmUoKSB7IHJldHVybiBtX2N1cnZlOyB9CisgICAgICAgIFBhcmFtRXZlbnQqIHNhdmVk
RXZlbnQoKSB7IHJldHVybiBtX3NhdmVkRXZlbnQuZ2V0KCk7IH0KKworICAgICAgICB2b2lkIHNl
dENhbmNlbGxlZFZhbHVlKGZsb2F0IGNhbmNlbGxlZFZhbHVlKQorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQobV90eXBlID09IFR5cGU6OkNhbmNlbFZhbHVlcyk7CisgICAgICAgICAgICBt
X3ZhbHVlID0gY2FuY2VsbGVkVmFsdWU7CisgICAgICAgICAgICBtX2hhc0RlZmF1bHRDYW5jZWxs
ZWRWYWx1ZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYm9vbCBoYXNEZWZhdWx0Q2FuY2Vs
bGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV90eXBlID09
IFR5cGU6OkNhbmNlbFZhbHVlcyk7CisgICAgICAgICAgICByZXR1cm4gbV9oYXNEZWZhdWx0Q2Fu
Y2VsbGVkVmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgY3VydmVQb2ludHNQZXJT
ZWNvbmQoKSBjb25zdCB7IHJldHVybiBtX2N1cnZlUG9pbnRzUGVyU2Vjb25kOyB9CisgICAgICAg
IGZsb2F0IGN1cnZlRW5kVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnZlRW5kVmFsdWU7IH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIHVuc2lnbmVkIG1fdHlwZTsKLSAgICAgICAgZmxvYXQg
bV92YWx1ZTsKKyAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIGZsb2F0IG1fdmFsdWUgeyAw
IH07CiAgICAgICAgIFNlY29uZHMgbV90aW1lOwotICAgICAgICBmbG9hdCBtX3RpbWVDb25zdGFu
dDsKKworICAgICAgICAvLyBPbmx5IHVzZWQgZm9yIFNldFRhcmdldCBldmVudHMuCisgICAgICAg
IGZsb2F0IG1fdGltZUNvbnN0YW50IHsgMCB9OworCisgICAgICAgIC8vIFRoZSBkdXJhdGlvbiBv
ZiB0aGUgY3VydmUuCiAgICAgICAgIFNlY29uZHMgbV9kdXJhdGlvbjsKKworICAgICAgICAvLyBU
aGUgYXJyYXkgb2YgY3VydmUgcG9pbnRzLgogICAgICAgICBWZWN0b3I8ZmxvYXQ+IG1fY3VydmU7
CisKKyAgICAgICAgLy8gVGhlIG51bWJlciBvZiBjdXJ2ZSBwb2ludHMgcGVyIHNlY29uZC4gaXQg
aXMgdXNlZCB0byBjb21wdXRlCisgICAgICAgIC8vIHRoZSBjdXJ2ZSBpbmRleCBzdGVwIHdoZW4g
cnVubmluZyB0aGUgYXV0b21hdGlvbi4KKyAgICAgICAgZG91YmxlIG1fY3VydmVQb2ludHNQZXJT
ZWNvbmQgeyAwIH07CisKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgdmFsdWUgdG8gdXNlIGF0IHRo
ZSBlbmQgb2YgdGhlIGN1cnZlLiBOb3JtYWxseQorICAgICAgICAvLyBpdCdzIHRoZSBsYXN0IGVu
dHJ5IGluIG1fY3VydmUsIGJ1dCBjYW5jZWxsaW5nIGEgU2V0VmFsdWVDdXJ2ZQorICAgICAgICAv
LyB3aWxsIHNldCB0aGlzIHRvIGEgbmV3IHZhbHVlLgorICAgICAgICBmbG9hdCBtX2N1cnZlRW5k
VmFsdWUgeyAwIH07CisKKyAgICAgICAgLy8gVHJ1ZSBpZiBhIGRlZmF1bHQgdmFsdWUgaGFzIGJl
ZW4gYXNzaWduZWQgdG8gdGhlIENhbmNlbFZhbHVlcyBldmVudC4KKyAgICAgICAgYm9vbCBtX2hh
c0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSB7IGZhbHNlIH07CisKKyAgICAgICAgLy8gRm9yIENhbmNl
bFZhbHVlcy4gSWYgQ2FuY2VsVmFsdWVzIGlzIGluIHRoZSBtaWRkbGUgb2YgYW4gZXZlbnQsIHRo
aXMKKyAgICAgICAgLy8gaG9sZHMgdGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2VsbGVkLCBz
byB0aGF0IHByb2Nlc3NpbmcgY2FuCisgICAgICAgIC8vIGNvbnRpbnVlIGFzIGlmIHRoZSBldmVu
dCBzdGlsbCBleGlzdGVkIHVwIHVudGlsIHdlIHJlYWNoIHRoZSBhY3R1YWwKKyAgICAgICAgLy8g
c2NoZWR1bGVkIGNhbmNlbCB0aW1lLgorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1FdmVu
dD4gbV9zYXZlZEV2ZW50OwogICAgIH07CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRF
dmVudChjb25zdCBQYXJhbUV2ZW50Jik7CisgICAgdm9pZCByZW1vdmVDYW5jZWxsZWRFdmVudHMo
c2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0
RXZlbnQoVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KTsKICAgICBmbG9hdCB2YWx1ZXNGb3JUaW1lUmFu
Z2VJbXBsKFNlY29uZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFRpbWUsIGZsb2F0IGRlZmF1bHRW
YWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1w
bGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOworICAgIGZsb2F0IGxpbmVhclJhbXBBdFRpbWUo
U2Vjb25kcyB0LCBmbG9hdCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vj
b25kcyB0aW1lMik7CisgICAgZmxvYXQgZXhwb25lbnRpYWxSYW1wQXRUaW1lKFNlY29uZHMgdCwg
ZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNlY29uZHMgdGltZTIp
OworICAgIGZsb2F0IHZhbHVlQ3VydmVBdFRpbWUoU2Vjb25kcyB0LCBTZWNvbmRzIHRpbWUxLCBT
ZWNvbmRzIGR1cmF0aW9uLCBjb25zdCBmbG9hdCogY3VydmVEYXRhLCBzaXplX3QgY3VydmVMZW5n
dGgpOworICAgIHZvaWQgaGFuZGxlQ2FuY2VsVmFsdWVzKFBhcmFtRXZlbnQmLCBQYXJhbUV2ZW50
KiBuZXh0RXZlbnQsIGZsb2F0JiB2YWx1ZTIsIFNlY29uZHMmIHRpbWUyLCBQYXJhbUV2ZW50OjpU
eXBlJiBuZXh0RXZlbnRUeXBlKTsKIAotICAgIFZlY3RvcjxQYXJhbUV2ZW50PiBtX2V2ZW50czsK
KyAgICBWZWN0b3I8VW5pcXVlUmVmPFBhcmFtRXZlbnQ+PiBtX2V2ZW50czsKIAogICAgIExvY2sg
bV9ldmVudHNNdXRleDsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408189</attachid>
            <date>2020-09-07 11:36:17 -0700</date>
            <delta_ts>2020-09-07 14:41:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215947-20200907113616.patch</filename>
            <type>text/plain</type>
            <size>112056</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI3YzA3OWQzNDFjOGUw
NmUyM2VmYzNlM2U0ZGM5YzExN2Y3Y2M3OC4uYTgwYmY4NGM4NDNiMDAwMDZhNWZmNjVmMDc4ODY3
YmFmZmM4NzYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA5LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9QYXJhbS5jYW5jZWxB
bmRIb2xkQXRUaW1lKCkgaXMgbWlzc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82ODM2MjA2
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
aW1wbGVtZW50YXRpb24gZm9yIEF1ZGlvUGFyYW0uY2FuY2VsQW5kSG9sZEF0VGltZSgpOgorICAg
ICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvcGFyYW0tY2Fu
Y2VsYW5kaG9sZGF0dGltZQorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGZv
bGxvd2luZyBCbGluayBjb21taXQgYnkgUmF5bW9uZCBUb3k6CisgICAgICAgIC0gaHR0cHM6Ly9j
b2RlcmV2aWV3LmNocm9taXVtLm9yZy8xNTMzMTAzMDAyCisKKyAgICAgICAgVGVzdHM6IHdlYmF1
ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmF1
ZGlvL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFy
Z2V0QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VmFs
dWVDdXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6Omlu
c2VydEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2Vs
QW5kSG9sZEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnJl
bW92ZUNhbmNlbGxlZEV2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxp
bmU6OnZhbHVlRm9yQ29udGV4dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFsUmFtcEF0VGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlQ3VydmVBdFRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpoYW5kbGVDYW5jZWxWYWx1ZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpjcmVhdGVMaW5l
YXJSYW1wRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJh
bUV2ZW50OjpjcmVhdGVFeHBvbmVudGlhbFJhbXBFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZVNldFRhcmdldEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6Y3JlYXRlU2V0
VmFsdWVDdXJ2ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6
UGFyYW1FdmVudDo6Y3JlYXRlQ2FuY2VsVmFsdWVzRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpQYXJhbUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6dHlwZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OnNhdmVkRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpzZXRD
YW5jZWxsZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OlBh
cmFtRXZlbnQ6Omhhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmN1cnZlUG9pbnRzUGVyU2Vjb25k
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVu
dDo6Y3VydmVFbmRWYWx1ZSBjb25zdCk6CisKIDIwMjAtMDktMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDb252b2x2ZXJOb2RlIGluY29ycmVjdGx5IG91dHB1
dHMgc2lsZW5jZSBiZWNhdXNlIG1fcmV2ZXJiIGlzIG51bGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCmluZGV4IDUyMzEwMmEwOTkyNjY3NzQ2ZjNj
MzY0MDBjOGZlNWYwZTk0NjEwOTMuLjYyZDFjZDRmOGFlNmFhYzM4ODI3MzZkNzQyY2MyY2QwYzQ4
OGEwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmNwcApAQCAtMjE1LDYgKzIxNSwxOCBAQCBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9Q
YXJhbTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1lKQogICAgIHJldHVy
biAqdGhpczsKIH0KIAorRXhjZXB0aW9uT3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmNhbmNl
bEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpCit7CisgICAgaWYgKGNhbmNlbFRpbWUg
PCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgImNhbmNlbFRpbWUg
bXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVlIl9zIH07CisKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGlt
ZWxpbmUuY2FuY2VsQW5kSG9sZEF0VGltZShTZWNvbmRzIHsgY2FuY2VsVGltZSB9KTsKKyAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKwogZmxvYXQgQXVkaW9QYXJhbTo6
ZmluYWxWYWx1ZSgpCiB7CiAgICAgZmxvYXQgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmluZGV4IDhhNGE3NmVkYzdhMTY0MTA4YzQzYTdiZDFl
N2U0YTgwZDRlNzMxZTYuLjBmZDdlNjUxMDVmOGFlMGQ1YzVlYzRmMWExODUwNjU0MWI0NTMwZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0x
MDgsNiArMTA4LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBzZXRU
YXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0LCBkb3VibGUgc3RhcnRUaW1lLCBmbG9hdCB0aW1lQ29u
c3RhbnQpOwogICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBzZXRWYWx1ZUN1cnZlQXRUaW1l
KFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGR1cmF0aW9u
KTsKICAgICBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gY2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRv
dWJsZSBjYW5jZWxUaW1lKTsKKyAgICBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gY2FuY2VsQW5k
SG9sZEF0VGltZShkb3VibGUgY2FuY2VsVGltZSk7CiAKICAgICBib29sIGhhc1NhbXBsZUFjY3Vy
YXRlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV90aW1lbGluZS5oYXNWYWx1ZXMoKSB8fCBudW1i
ZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCk7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCmluZGV4IDA5ZDg0M2Q0NmZiMTg3N2YwOTUy
MmU0YTY1MzI5YTNjMGJhN2EyYjIuLmIyY2FhZGM3MjYwZTllMmE0MWVkZDk5ZTJhODc0OWZhMjJj
NmFiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmlkbApAQCAtNTksOSArNTksNyBAQAogCiAgICAgLy8gQ2FuY2VscyBhbGwgc2NoZWR1bGVkIHBh
cmFtZXRlciBjaGFuZ2VzIHdpdGggdGltZXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0
VGltZS4KICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEF1ZGlvUGFyYW0gY2FuY2VsU2NoZWR1bGVk
VmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1lKTsKLQotICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBm
b3IgdGhpcy4KLSAgICAvLyBBdWRpb1BhcmFtIGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNh
bmNlbFRpbWUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXVkaW9QYXJhbSBjYW5jZWxBbmRI
b2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxUaW1lKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUg
bm90IHN0YW5kYXJkLgogICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCBhNzVmODg4
ZTA2ZGQ5ZWZmYjhiNjY4NzI1NTc0N2FhNzgwNzU4MGIwLi4yN2ExODA2ZDFmZTkyYzBhYmZmNjQz
YzE2YTQ4MDE1NzgzNjk2ODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBAIC02NSwyNyArNjUsMzIgQEAgc3Rh
dGljIGJvb2wgaGFzU2V0VGFyZ2V0Q29udmVyZ2VkKGZsb2F0IHZhbHVlLCBmbG9hdCB0YXJnZXQs
IFNlY29uZHMgY3VycmVudFRpbWUKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVs
aW5lOjpzZXRWYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIHJl
dHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OlNldFZhbHVlLCB2YWx1ZSwg
dGltZSwgMCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRz
TXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1
ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGlt
ZSkKIHsKLSAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudChQYXJhbUV2ZW50OjpMaW5l
YXJSYW1wVG9WYWx1ZSwgdmFsdWUsIHRpbWUsIDAsIHsgfSwgeyB9KSk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFy
YW1FdmVudDo6Y3JlYXRlTGluZWFyUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0
VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIHJldHVybiBpbnNlcnRFdmVu
dChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6OkV4cG9uZW50aWFsUmFtcFRvVmFsdWUsIHZhbHVlLCB0
aW1lLCAwLCB7IH0sIHsgfSkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNN
dXRleCk7CisgICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZUV4cG9uZW50
aWFsUmFtcEV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlv
UGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1l
LCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7Ci0gICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZl
bnQoUGFyYW1FdmVudDo6U2V0VGFyZ2V0LCB0YXJnZXQsIHRpbWUsIHRpbWVDb25zdGFudCwgeyB9
LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTXV0ZXgpOworICAg
IHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRUYXJnZXRFdmVudCh0YXJn
ZXQsIHRpbWUsIHRpbWVDb25zdGFudCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1Bh
cmFtVGltZWxpbmU6OnNldFZhbHVlQ3VydmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBT
ZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVyYXRpb24pCiB7Ci0gICAgcmV0dXJuIGluc2VydEV2ZW50
KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwgMCwgdGltZSwgMCwgZHVyYXRp
b24sIFdURk1vdmUoY3VydmUpKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50
c011dGV4KTsKKyAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFs
dWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3VydmUpLCB0aW1lLCBkdXJhdGlvbikpOwogfQogCiBzdGF0
aWMgYm9vbCBpc1ZhbGlkTnVtYmVyKGZsb2F0IHgpCkBAIC05OCw1MiArMTAzLDU1IEBAIHN0YXRp
YyBib29sIGlzVmFsaWROdW1iZXIoU2Vjb25kcyBzKQogICAgIHJldHVybiAhc3RkOjppc25hbihz
LnZhbHVlKCkpICYmICFzdGQ6OmlzaW5mKHMudmFsdWUoKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoY29uc3QgUGFyYW1FdmVudCYgZXZl
bnQpCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omluc2VydEV2ZW50KFVu
aXF1ZVJlZjxQYXJhbUV2ZW50PiBldmVudCkKIHsKICAgICAvLyBTYW5pdHkgY2hlY2sgdGhlIGV2
ZW50LiBCZSBzdXBlciBjYXJlZnVsIHdlJ3JlIG5vdCBnZXR0aW5nIGluZmVjdGVkIHdpdGggTmFO
IG9yIEluZi4KLSAgICBib29sIGlzVmFsaWQgPSBldmVudC50eXBlKCkgPCBQYXJhbUV2ZW50OjpM
YXN0VHlwZQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LnZhbHVlKCkpCi0gICAgICAg
ICYmIGlzVmFsaWROdW1iZXIoZXZlbnQudGltZSgpKQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVy
KGV2ZW50LnRpbWVDb25zdGFudCgpKQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LmR1
cmF0aW9uKCkpCi0gICAgICAgICYmIGV2ZW50LmR1cmF0aW9uKCkgPj0gMF9zOworICAgIGJvb2wg
aXNWYWxpZCA9IGV2ZW50LT50eXBlKCkgPCBQYXJhbUV2ZW50OjpMYXN0VHlwZQorICAgICAgICAm
JiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT52YWx1ZSgpKQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVy
KGV2ZW50LT50aW1lKCkpCisgICAgICAgICYmIGlzVmFsaWROdW1iZXIoZXZlbnQtPnRpbWVDb25z
dGFudCgpKQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT5kdXJhdGlvbigpKQorICAg
ICAgICAmJiBldmVudC0+ZHVyYXRpb24oKSA+PSAwX3M7CiAKICAgICBpZiAoIWlzVmFsaWQpCiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9ldmVudHNNdXRleCk7CisgICAgQVNTRVJUKG1fZXZlbnRzTXV0ZXguaXNMb2NrZWQoKSk7CiAK
ICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICBhdXRvIGluc2VydFRpbWUgPSBldmVudC50aW1lKCk7
CisgICAgYXV0byBpbnNlcnRUaW1lID0gZXZlbnQtPnRpbWUoKTsKKwogICAgIGZvciAoYXV0byYg
cGFyYW1FdmVudCA6IG1fZXZlbnRzKSB7Ci0gICAgICAgIGlmIChldmVudC50eXBlKCkgPT0gUGFy
YW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkgewotICAgICAgICAgICAgLy8gSWYgdGhpcyBldmVudCBp
cyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG92ZXJsYXAgYW55IGV4aXN0
aW5nIGV2ZW50LgotICAgICAgICAgICAgLy8gSXQncyBvayBpZiB0aGUgU2V0VmFsdWVDdXJ2ZSBz
dGFydHMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZW5kIG9mIHNvbWUgb3RoZXIgZHVyYXRpb24u
Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBldmVudC50aW1lKCkgKyBldmVudC5kdXJhdGlv
bigpOwotICAgICAgICAgICAgaWYgKHBhcmFtRXZlbnQudHlwZSgpID09IFBhcmFtRXZlbnQ6OlNl
dFZhbHVlQ3VydmUpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHBhcmFtRXZlbnRFbmRUaW1lID0g
cGFyYW1FdmVudC50aW1lKCkgKyBwYXJhbUV2ZW50LmR1cmF0aW9uKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKChwYXJhbUV2ZW50LnRpbWUoKSA+PSBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudC50
aW1lKCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAocGFyYW1FdmVudEVuZFRp
bWUgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudEVuZFRpbWUgPCBlbmRUaW1lKQotICAgICAg
ICAgICAgICAgICAgICB8fCAoZXZlbnQudGltZSgpID49IHBhcmFtRXZlbnQudGltZSgpICYmIGV2
ZW50LnRpbWUoKSA8IHBhcmFtRXZlbnRFbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAo
ZW5kVGltZSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAmJiBlbmRUaW1lIDwgcGFyYW1FdmVudEVuZFRp
bWUpKSB7CisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVl
Q3VydmUpIHsKKyAgICAgICAgICAgIGlmIChwYXJhbUV2ZW50LT50eXBlKCkgIT0gUGFyYW1FdmVu
dDo6Q2FuY2VsVmFsdWVzKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBldmVudCBpcyBh
IFNldFZhbHVlQ3VydmUsIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG92ZXJsYXAgYW55IGV4aXN0aW5n
IGV2ZW50LgorICAgICAgICAgICAgICAgIC8vIEl0J3Mgb2sgaWYgdGhlIFNldFZhbHVlQ3VydmUg
c3RhcnRzIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIGVuZCBvZiBzb21lIG90aGVyIGR1cmF0aW9u
LgorICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IGV2ZW50LT50aW1lKCkgKyBldmVudC0+
ZHVyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1FdmVudC0+dHlwZSgpID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwYXJh
bUV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQtPnRpbWUoKSArIHBhcmFtRXZlbnQtPmR1cmF0aW9u
KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocGFyYW1FdmVudC0+dGltZSgpID49IGV2ZW50
LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGltZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IChwYXJhbUV2ZW50RW5kVGltZSA+IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1F
dmVudEVuZFRpbWUgPCBlbmRUaW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGV2ZW50
LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50LT50aW1lKCkgPCBwYXJhbUV2
ZW50RW5kVGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChlbmRUaW1lID49IHBhcmFt
RXZlbnQtPnRpbWUoKSAmJiBlbmRUaW1lIDwgcGFyYW1FdmVudEVuZFRpbWUpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJF
dmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtRXZlbnQtPnRpbWUoKSA+IGV2ZW50LT50aW1lKCkg
JiYgcGFyYW1FdmVudC0+dGltZSgpIDwgZW5kVGltZSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyJfcyB9OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1F
dmVudC50aW1lKCkgPiBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudC50aW1lKCkgPCBlbmRUaW1l
KQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwg
IkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciX3MgfTsKLSAgICAgICAgfSBlbHNlIGlmIChwYXJhbUV2
ZW50LnR5cGUoKSA9PSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZlKSB7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSBpZiAocGFyYW1FdmVudC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNl
dFZhbHVlQ3VydmUpIHsKICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgbWFrZSBzdXJlIHRoaXMg
ZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGluZyBTZXRWYWx1ZUN1cnZlIGV2ZW50Lgot
ICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBwYXJhbUV2ZW50LnRpbWUoKSAr
IHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKLSAgICAgICAgICAgIGlmIChldmVudC50aW1lKCkgPj0g
cGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgpIDwgcGFyZW50RXZlbnRFbmRUaW1lKQor
ICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBwYXJhbUV2ZW50LT50aW1lKCkg
KyBwYXJhbUV2ZW50LT5kdXJhdGlvbigpOworICAgICAgICAgICAgaWYgKGV2ZW50LT50aW1lKCkg
Pj0gcGFyYW1FdmVudC0+dGltZSgpICYmIGV2ZW50LT50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRp
bWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIgfTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChw
YXJhbUV2ZW50LnRpbWUoKSA+IGluc2VydFRpbWUpCisgICAgICAgIGlmIChwYXJhbUV2ZW50LT50
aW1lKCkgPiBpbnNlcnRUaW1lKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgKytpOwog
ICAgIH0KIAotICAgIG1fZXZlbnRzLmluc2VydChpLCBldmVudCk7CisgICAgbV9ldmVudHMuaW5z
ZXJ0KGksIFdURk1vdmUoZXZlbnQpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xNzYsMTEg
KzE4NCwxMjMgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVl
cyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAgICAgfQogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b1BhcmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUoU2Vjb25kcyBjYW5jZWxUaW1lKQor
eworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisKKyAgICBzaXpl
X3QgaTsKKyAgICAvLyBGaW5kIHRoZSBmaXJzdCBldmVudCBhdCBvciBqdXN0IHBhc3QgY2FuY2Vs
VGltZS4KKyAgICBmb3IgKGkgPSAwOyBpIDwgbV9ldmVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1fZXZlbnRzW2ldLT50aW1lKCkgPiBjYW5jZWxUaW1lKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgLy8gVGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2VsbGVkLiBU
aGlzIGlzIHRoZSBldmVudCBqdXN0IHBhc3QgY2FuY2VsVGltZSwgaWYgYW55LgorICAgIHNpemVf
dCBjYW5jZWxsZWRFdmVudEluZGV4ID0gaTsKKworICAgIC8vIElmIHRoZSBldmVudCBqdXN0IGJl
Zm9yZSBjYW5jZWxUaW1lIGlzIGEgU2V0VGFyZ2V0IG9yIFNldFZhbHVlQ3VydmUgZXZlbnQsIHdl
IG5lZWQKKyAgICAvLyB0byBoYW5kbGUgdGhhdCBldmVudCBzcGVjaWFsbHkgaW5zdGVhZCBvZiB0
aGUgZXZlbnQgYWZ0ZXIuCisgICAgaWYgKGkgPiAwICYmICgobV9ldmVudHNbaSAtIDFdLT50eXBl
KCkgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB8fCAobV9ldmVudHNbaSAtIDFdLT50eXBlKCkg
PT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkpKQorICAgICAgICBjYW5jZWxsZWRFdmVudElu
ZGV4ID0gaSAtIDE7CisgICAgZWxzZSBpZiAoaSA+PSBtX2V2ZW50cy5zaXplKCkpIHsKKyAgICAg
ICAgLy8gSWYgdGhlcmUgd2VyZSBubyBldmVudHMgb2NjdXJyaW5nIGFmdGVyIHxjYW5jZWxUaW1l
fCAoYW5kIHRoZQorICAgICAgICAvLyBwcmV2aW91cyBldmVudCBpcyBub3QgU2V0VGFyZ2V0IG9y
IFNldFZhbHVlQ3VydmUsIHdlJ3JlIGRvbmUuCisgICAgICAgIHJldHVybiB7IH07CisgICAgfQor
CisgICAgLy8gY2FuY2VsbGVkRXZlbnQgaXMgdGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2Vs
bGVkLgorICAgIGF1dG8mIGNhbmNlbGxlZEV2ZW50ID0gbV9ldmVudHNbY2FuY2VsbGVkRXZlbnRJ
bmRleF0uZ2V0KCk7CisgICAgYXV0byBldmVudFR5cGUgPSBjYW5jZWxsZWRFdmVudC50eXBlKCk7
CisKKyAgICAvLyBOZXcgZXZlbnQgdG8gYmUgaW5zZXJ0ZWQsIGlmIGFueSwgYW5kIGEgU2V0VmFs
dWVFdmVudCBpZiBuZWVkZWQuCisgICAgT3B0aW9uYWw8VW5pcXVlUmVmPFBhcmFtRXZlbnQ+PiBu
ZXdFdmVudDsKKyAgICBPcHRpb25hbDxVbmlxdWVSZWY8UGFyYW1FdmVudD4+IG5ld1NldFZhbHVl
RXZlbnQ7CisKKyAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgeworICAgIGNhc2UgUGFyYW1FdmVudDo6
TGluZWFyUmFtcFRvVmFsdWU6CisgICAgY2FzZSBQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBU
b1ZhbHVlOiB7CisgICAgICAgIC8vIEZvciB0aGVzZSBldmVudHMgd2UgbmVlZCB0byByZW1lbWJl
ciB0aGUgcGFyYW1ldGVycyBvZiB0aGUgZXZlbnQKKyAgICAgICAgLy8gZm9yIGEgQ2FuY2VsVmFs
dWVzIGV2ZW50IHNvIHRoYXQgd2UgY2FuIHByb3Blcmx5IGNhbmNlbCB0aGUgZXZlbnQKKyAgICAg
ICAgLy8gYW5kIGhvbGQgdGhlIHZhbHVlLgorICAgICAgICBhdXRvIHNhdmVkRXZlbnQgPSBtYWtl
VW5pcXVlUmVmPFBhcmFtRXZlbnQ+KGV2ZW50VHlwZSwgY2FuY2VsbGVkRXZlbnQudmFsdWUoKSwg
Y2FuY2VsbGVkRXZlbnQudGltZSgpLCBjYW5jZWxsZWRFdmVudC50aW1lQ29uc3RhbnQoKSwgY2Fu
Y2VsbGVkRXZlbnQuZHVyYXRpb24oKSwgVmVjdG9yPGZsb2F0PiB7IGNhbmNlbGxlZEV2ZW50LmN1
cnZlKCkgfSwgY2FuY2VsbGVkRXZlbnQuY3VydmVQb2ludHNQZXJTZWNvbmQoKSwgY2FuY2VsbGVk
RXZlbnQuY3VydmVFbmRWYWx1ZSgpLCBudWxscHRyKTsKKyAgICAgICAgbmV3RXZlbnQgPSBQYXJh
bUV2ZW50OjpjcmVhdGVDYW5jZWxWYWx1ZXNFdmVudChjYW5jZWxUaW1lLCBzYXZlZEV2ZW50Lm1v
dmVUb1VuaXF1ZVB0cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUGFyYW1F
dmVudDo6U2V0VGFyZ2V0OiB7CisgICAgICAgIGlmIChjYW5jZWxsZWRFdmVudC50aW1lKCkgPCBj
YW5jZWxUaW1lKSB7CisgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIHJlbW92ZSB0aGUgU2V0
VGFyZ2V0IGV2ZW50IGlmIGl0IHN0YXJ0ZWQgYmVmb3JlIHRoZQorICAgICAgICAgICAgLy8gY2Fu
Y2VsIHRpbWUsIHNvIGJ1bXAgdGhlIGluZGV4LiBCdXQgd2UgZG8gd2FudCB0byBpbnNlcnQgYQor
ICAgICAgICAgICAgLy8gY2FuY2VsRXZlbnQgc28gdGhhdCB3ZSBzdG9wIHRoaXMgYXV0b21hdGlv
biBhbmQgaG9sZCB0aGUgdmFsdWUgd2hlbgorICAgICAgICAgICAgLy8gd2UgZ2V0IHRoZXJlLgor
ICAgICAgICAgICAgKytjYW5jZWxsZWRFdmVudEluZGV4OworCisgICAgICAgICAgICBuZXdFdmVu
dCA9IFBhcmFtRXZlbnQ6OmNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KGNhbmNlbFRpbWUsIG51bGxw
dHIpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBhcmFtRXZl
bnQ6OlNldFZhbHVlQ3VydmU6IHsKKyAgICAgICAgLy8gSWYgdGhlIHNldFZhbHVlQ3VydmUgZXZl
bnQgc3RhcnRlZCBzdHJpY3RseSBiZWZvcmUgdGhlIGNhbmNlbCB0aW1lLAorICAgICAgICAvLyB0
aGVyZSBtaWdodCBiZSBzb21ldGhpbmcgdG8gZG8uLi4uCisgICAgICAgIGlmIChjYW5jZWxsZWRF
dmVudC50aW1lKCkgPCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICBpZiAoY2FuY2VsVGltZSA+
IGNhbmNlbGxlZEV2ZW50LnRpbWUoKSArIGNhbmNlbGxlZEV2ZW50LmR1cmF0aW9uKCkpIHsKKyAg
ICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FuY2VsbGF0aW9uIHRpbWUgaXMgcGFzdCB0aGUgZW5k
IG9mIHRoZSBjdXJ2ZSB0aGVyZSdzCisgICAgICAgICAgICAgICAgLy8gbm90aGluZyB0byBkbyBl
eGNlcHQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgZXZlbnRzLgorICAgICAgICAgICAgICAgICsrY2Fu
Y2VsbGVkRXZlbnRJbmRleDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
Ly8gQ2FuY2VsbGF0aW9uIHRpbWUgaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY3VydmUuIFRoZXJl
Zm9yZSwKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgU2V0VmFsdWVDdXJ2ZSBldmVu
dCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBuZXcKKyAgICAgICAgICAgICAgICAvLyBwYXJhbWV0ZXJz
IHRvIGNhbmNlbCB0aGlzIGV2ZW50IHByb3Blcmx5LiBTaW5jZSBpdCdzIGlsbGVnYWwKKyAgICAg
ICAgICAgICAgICAvLyB0byBpbnNlcnQgYW55IGV2ZW50IHdpdGhpbiBhIFNldFZhbHVlQ3VydmUg
ZXZlbnQsIHdlIGNhbgorICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhlIG5ldyBlbmQgdmFs
dWUgbm93IGluc3RlYWQgb2YgZG9pbmcgd2hlbiBydW5uaW5nCisgICAgICAgICAgICAgICAgLy8g
dGhlIHRpbWVsaW5lLgorICAgICAgICAgICAgICAgIGF1dG8gbmV3RHVyYXRpb24gPSBjYW5jZWxU
aW1lIC0gY2FuY2VsbGVkRXZlbnQudGltZSgpOworICAgICAgICAgICAgICAgIGZsb2F0IGVuZFZh
bHVlID0gdmFsdWVDdXJ2ZUF0VGltZShjYW5jZWxUaW1lLCBjYW5jZWxsZWRFdmVudC50aW1lKCks
IGNhbmNlbGxlZEV2ZW50LmR1cmF0aW9uKCksIGNhbmNlbGxlZEV2ZW50LmN1cnZlKCkuZGF0YSgp
LCBjYW5jZWxsZWRFdmVudC5jdXJ2ZSgpLnNpemUoKSk7CisKKyAgICAgICAgICAgICAgICAvLyBS
ZXBsYWNlIHRoZSBleGlzdGluZyBTZXRWYWx1ZUN1cnZlIHdpdGggdGhpcyBuZXcgb25lIHRoYXQg
aXMgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIGR1cmF0aW9uLgorICAgICAgICAgICAgICAgIG5l
d0V2ZW50ID0gbWFrZVVuaXF1ZVJlZjxQYXJhbUV2ZW50PihldmVudFR5cGUsIGNhbmNlbGxlZEV2
ZW50LnZhbHVlKCksIGNhbmNlbGxlZEV2ZW50LnRpbWUoKSwgY2FuY2VsbGVkRXZlbnQudGltZUNv
bnN0YW50KCksIG5ld0R1cmF0aW9uLCBWZWN0b3I8ZmxvYXQ+IHsgY2FuY2VsbGVkRXZlbnQuY3Vy
dmUoKSB9LCBjYW5jZWxsZWRFdmVudC5jdXJ2ZVBvaW50c1BlclNlY29uZCgpLCBlbmRWYWx1ZSwg
bnVsbHB0cik7CisgICAgICAgICAgICAgICAgbmV3U2V0VmFsdWVFdmVudCA9IFBhcmFtRXZlbnQ6
OmNyZWF0ZVNldFZhbHVlRXZlbnQoZW5kVmFsdWUsIGNhbmNlbGxlZEV2ZW50LnRpbWUoKSArIG5l
d0R1cmF0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRWYWx1ZToKKyAgICBjYXNlIFBhcmFtRXZlbnQ6
OkNhbmNlbFZhbHVlczoKKyAgICAgICAgLy8gTm90aGluZyBuZWVkcyB0byBiZSBkb25lIGZvciBh
IFNldFZhbHVlIG9yIENhbmNlbFZhbHVlcyBldmVudC4KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIE5vdyByZW1vdmUgYWxsIHRoZSBmb2xsb3dp
bmcgZXZlbnRzIGZyb20gdGhlIHRpbWVsaW5lLgorICAgIGlmIChjYW5jZWxsZWRFdmVudEluZGV4
IDwgbV9ldmVudHMuc2l6ZSgpKQorICAgICAgICByZW1vdmVDYW5jZWxsZWRFdmVudHMoY2FuY2Vs
bGVkRXZlbnRJbmRleCk7CisKKyAgICAvLyBJbnNlcnQgdGhlIG5ldyBldmVudCwgaWYgYW55Lgor
ICAgIGlmIChuZXdFdmVudCkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGluc2VydEV2ZW50KFdU
Rk1vdmUoKm5ld0V2ZW50KSk7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgaWYg
KG5ld1NldFZhbHVlRXZlbnQpIHsKKyAgICAgICAgICAgIGluc2VydEV2ZW50KFdURk1vdmUoKm5l
d1NldFZhbHVlRXZlbnQpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIEF1ZGlvUGFyYW1UaW1l
bGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCit7
CisgICAgbV9ldmVudHMucmVtb3ZlKGZpcnN0RXZlbnRUb1JlbW92ZSwgbV9ldmVudHMuc2l6ZSgp
IC0gZmlyc3RFdmVudFRvUmVtb3ZlKTsKK30KKwogT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBm
bG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSkKIHsKICAg
ICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2V2ZW50c011dGV4LCBz
dGQ6OnRyeV90b19sb2NrKTsKLSAgICAgICAgaWYgKCFsb2NrLm93bnNfbG9jaygpIHx8ICFtX2V2
ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVu
dHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIWxvY2sub3duc19sb2NrKCkgfHwgIW1fZXZlbnRz
LnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1sw
XS0+dGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTIyMSw3ICszNDEsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVS
YW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgICAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOwogCiAgICAgLy8gUmV0dXJuIGRlZmF1bHQgdmFsdWUgaWYgdGhlcmUgYXJl
IG5vIGV2ZW50cyBtYXRjaGluZyB0aGUgZGVzaXJlZCB0aW1lIHJhbmdlLgotICAgIGlmICghbV9l
dmVudHMuc2l6ZSgpIHx8IGVuZFRpbWUgPD0gbV9ldmVudHNbMF0udGltZSgpKSB7CisgICAgaWYg
KCFtX2V2ZW50cy5zaXplKCkgfHwgZW5kVGltZSA8PSBtX2V2ZW50c1swXS0+dGltZSgpKSB7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZlZhbHVlczsgKytpKQogICAg
ICAgICAgICAgdmFsdWVzW2ldID0gZGVmYXVsdFZhbHVlOwogICAgICAgICByZXR1cm4gZGVmYXVs
dFZhbHVlOwpAQCAtMjMzLDcgKzM1Myw3IEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFs
dWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAKICAg
ICAvLyBJZiBmaXJzdCBldmVudCBpcyBhZnRlciBzdGFydFRpbWUgdGhlbiBmaWxsIGluaXRpYWwg
cGFydCBvZiB2YWx1ZXMgYnVmZmVyIHdpdGggZGVmYXVsdFZhbHVlCiAgICAgLy8gdW50aWwgd2Ug
cmVhY2ggdGhlIGZpcnN0IGV2ZW50IHRpbWUuCi0gICAgYXV0byBmaXJzdEV2ZW50VGltZSA9IG1f
ZXZlbnRzWzBdLnRpbWUoKTsKKyAgICBhdXRvIGZpcnN0RXZlbnRUaW1lID0gbV9ldmVudHNbMF0t
PnRpbWUoKTsKICAgICBpZiAoZmlyc3RFdmVudFRpbWUgPiBzdGFydFRpbWUpIHsKICAgICAgICAg
YXV0byBmaWxsVG9UaW1lID0gc3RkOjptaW4oZW5kVGltZSwgZmlyc3RFdmVudFRpbWUpOwogICAg
ICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRpbGl0aWVzOjp0aW1lVG9TYW1wbGVG
cmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUoKSwgc2FtcGxlUmF0ZSk7CkBAIC0y
NTIsMTggKzM3MiwyMiBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVS
YW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgIC8vIGFuZCBrZWVw
aW5nIHRyYWNrIG9mIGEgImN1cnJlbnQiIGV2ZW50IGluZGV4LgogICAgIGludCBuID0gbV9ldmVu
dHMuc2l6ZSgpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAmJiB3cml0ZUluZGV4IDwgbnVt
YmVyT2ZWYWx1ZXM7ICsraSkgewotICAgICAgICBQYXJhbUV2ZW50JiBldmVudCA9IG1fZXZlbnRz
W2ldOwotICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQgPSBpIDwgbiAtIDEgPyAmKG1fZXZl
bnRzW2kgKyAxXSkgOiBudWxscHRyOworICAgICAgICBQYXJhbUV2ZW50JiBldmVudCA9IG1fZXZl
bnRzW2ldLmdldCgpOworICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQgPSBpIDwgbiAtIDEg
PyAmbV9ldmVudHNbaSArIDFdLmdldCgpIDogbnVsbHB0cjsKIAogICAgICAgICAvLyBXYWl0IHVu
dGlsIHdlIGdldCBhIG1vcmUgcmVjZW50IGV2ZW50LgogICAgICAgICBpZiAobmV4dEV2ZW50ICYm
IG5leHRFdmVudC0+dGltZSgpIDwgY3VycmVudFRpbWUpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAorICAgICAgICBQYXJhbUV2ZW50OjpUeXBlIG5leHRFdmVudFR5cGUgPSBuZXh0RXZlbnQgPyBz
dGF0aWNfY2FzdDxQYXJhbUV2ZW50OjpUeXBlPihuZXh0RXZlbnQtPnR5cGUoKSkgOiBQYXJhbUV2
ZW50OjpMYXN0VHlwZSAvKiB1bmtub3duICovOworCiAgICAgICAgIGZsb2F0IHZhbHVlMSA9IGV2
ZW50LnZhbHVlKCk7CiAgICAgICAgIGF1dG8gdGltZTEgPSBldmVudC50aW1lKCk7CiAgICAgICAg
IGZsb2F0IHZhbHVlMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+dmFsdWUoKSA6IHZhbHVlMTsK
ICAgICAgICAgYXV0byB0aW1lMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+dGltZSgpIDogZW5k
VGltZSArIDFfczsKIAorICAgICAgICBoYW5kbGVDYW5jZWxWYWx1ZXMoZXZlbnQsIG5leHRFdmVu
dCwgdmFsdWUyLCB0aW1lMiwgbmV4dEV2ZW50VHlwZSk7CisKICAgICAgICAgYXV0byBkZWx0YVRp
bWUgPSB0aW1lMiAtIHRpbWUxOwogICAgICAgICBhdXRvIHNhbXBsZUZyYW1lVGltZUluY3IgPSBT
ZWNvbmRzIHsgMSAvIHNhbXBsZVJhdGUgfTsKIApAQCAtMjcxLDggKzM5NSw2IEBAIGZsb2F0IEF1
ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGlt
ZSwgU2Vjb25kcyBlbmRUCiAgICAgICAgIHVuc2lnbmVkIGZpbGxUb0ZyYW1lID0gQXVkaW9VdGls
aXRpZXM6OnRpbWVUb1NhbXBsZUZyYW1lKChmaWxsVG9UaW1lIC0gc3RhcnRUaW1lKS52YWx1ZSgp
LCBzYW1wbGVSYXRlKTsKICAgICAgICAgZmlsbFRvRnJhbWUgPSBzdGQ6Om1pbihmaWxsVG9GcmFt
ZSwgbnVtYmVyT2ZWYWx1ZXMpOwogCi0gICAgICAgIFBhcmFtRXZlbnQ6OlR5cGUgbmV4dEV2ZW50
VHlwZSA9IG5leHRFdmVudCA/IHN0YXRpY19jYXN0PFBhcmFtRXZlbnQ6OlR5cGU+KG5leHRFdmVu
dC0+dHlwZSgpKSA6IFBhcmFtRXZlbnQ6Okxhc3RUeXBlIC8qIHVua25vd24gKi87Ci0KICAgICAg
ICAgLy8gRmlyc3QgaGFuZGxlIGxpbmVhciBhbmQgZXhwb25lbnRpYWwgcmFtcHMgd2hpY2ggcmVx
dWlyZSBsb29raW5nIGFoZWFkIHRvIHRoZSBuZXh0IGV2ZW50LgogICAgICAgICBpZiAobmV4dEV2
ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSkgewogICAgICAgICAgICAg
Zm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KSB7CkBAIC0zMjUs
NiArNDQ3LDM1IEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdl
SW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50
OjpDYW5jZWxWYWx1ZXM6CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJl
bnRUaW1lID0gZmlsbFRvVGltZTsKKworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwcmV2aW91
cyBldmVudCB3YXMgYSBTZXRUYXJnZXQgb3IgRXhwb25lbnRpYWxSYW1wCisgICAgICAgICAgICAg
ICAgLy8gZXZlbnQsIHRoZSBjdXJyZW50IHZhbHVlIGlzIG9uZSBzYW1wbGUgYmVoaW5kLiBVcGRh
dGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2FtcGxlIHZhbHVlIGJ5IG9uZSBzYW1wbGUsIGJ1
dCBvbmx5IGF0IHRoZSBzdGFydCBvZgorICAgICAgICAgICAgICAgIC8vIHRoaXMgQ2FuY2VsVmFs
dWVzIGV2ZW50LgorICAgICAgICAgICAgICAgIGlmIChldmVudC5oYXNEZWZhdWx0Q2FuY2VsbGVk
VmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldmVudC52YWx1ZSgpOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhdXRvIGNhbmNlbFRpbWUg
PSB0aW1lMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMSAmJiBjYW5jZWxUaW1lIDw9
IGN1cnJlbnRUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2FuY2VsVGltZSArIHNhbXBsZUZyYW1lVGlt
ZUluY3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbGFzdEV2ZW50VHlwZSA9IG1f
ZXZlbnRzW2kgLSAxXS0+dHlwZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RF
dmVudFR5cGUgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gbV9ldmVudHNbaSAtIDFdLT52YWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRpbWVDb25zdGFudCA9IG1fZXZlbnRzW2kgLSAx
XS0+dGltZUNvbnN0YW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGlz
Y3JldGVUaW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oQXVkaW9VdGlsaXRpZXM6OmRp
c2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIGNvbnRyb2xSYXRl
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gKHRhcmdldCAtIHZhbHVl
KSAqIGRpc2NyZXRlVGltZUNvbnN0YW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
Zm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQorICAgICAgICAg
ICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKKworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50
OjpTZXRUYXJnZXQ6CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50VGltZSA9IGZpbGxUb1RpbWU7CkBAIC0zNTUsMTEgKzUwNiwxMSBAQCBmbG9hdCBBdWRpb1Bh
cmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNl
Y29uZHMgZW5kVAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZmxvYXQq
IGN1cnZlRGF0YSA9IGV2ZW50LmN1cnZlKCkuZGF0YSgpOwogICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBudW1iZXJPZkN1cnZlUG9pbnRzID0gZXZlbnQuY3VydmUoKS5zaXplKCk7CisgICAg
ICAgICAgICAgICAgICAgIGZsb2F0IGN1cnZlRW5kVmFsdWUgPSBldmVudC5jdXJ2ZUVuZFZhbHVl
KCk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gQ3VydmUgZXZlbnRzIGhhdmUgZHVyYXRpb24s
IHNvIGRvbid0IGp1c3QgdXNlIG5leHQgZXZlbnQgdGltZS4KICAgICAgICAgICAgICAgICAgICAg
YXV0byBkdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGF1
dG8gZHVyYXRpb25GcmFtZXMgPSBkdXJhdGlvbi52YWx1ZSgpICogc2FtcGxlUmF0ZTsKLSAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgY3VydmVQb2ludHNQZXJGcmFtZSA9IHN0YXRpY19jYXN0PGZs
b2F0PihudW1iZXJPZkN1cnZlUG9pbnRzKSAvIGR1cmF0aW9uRnJhbWVzOworICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgY3VydmVQb2ludHNQZXJGcmFtZSA9IGV2ZW50LmN1cnZlUG9pbnRzUGVy
U2Vjb25kKCkgLyBzYW1wbGVSYXRlOwogCiAgICAgICAgICAgICAgICAgICAgIGlmICghY3VydmVE
YXRhIHx8ICFudW1iZXJPZkN1cnZlUG9pbnRzIHx8IGR1cmF0aW9uIDw9IDBfcyB8fCBzYW1wbGVS
YXRlIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVycm9yIGNvbmRpdGlvbiAt
IHNpbXBseSBwcm9wYWdhdGUgcHJldmlvdXMgdmFsdWUuCkBAIC0zNzksNDAgKzUzMCw2NiBAQCBm
bG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBz
dGFydFRpbWUsIFNlY29uZHMgZW5kVAogCiAgICAgICAgICAgICAgICAgICAgIC8vIEluZGV4IGlu
dG8gdGhlIGN1cnZlIGRhdGEgdXNpbmcgYSBmbG9hdGluZy1wb2ludCB2YWx1ZS4KICAgICAgICAg
ICAgICAgICAgICAgLy8gV2UncmUgc2NhbGluZyB0aGUgbnVtYmVyIG9mIGN1cnZlIHBvaW50cyBi
eSB0aGUgZHVyYXRpb24gKHNlZSBjdXJ2ZVBvaW50c1BlckZyYW1lKS4KLSAgICAgICAgICAgICAg
ICAgICAgZmxvYXQgY3VydmVWaXJ0dWFsSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICBk
b3VibGUgY3VydmVWaXJ0dWFsSW5kZXggPSAwOwogICAgICAgICAgICAgICAgICAgICBpZiAodGlt
ZTEgPCBjdXJyZW50VGltZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5kZXggc29t
ZXdoZXJlIGluIHRoZSBtaWRkbGUgb2YgdGhlIGN1cnZlIGRhdGEuCiAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBEb24ndCB1c2UgdGltZVRvU2FtcGxlRnJhbWUoKSBzaW5jZSB3ZSB3YW50IHRo
ZSBleGFjdCBmbG9hdGluZy1wb2ludCBmcmFtZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGZs
b2F0IGZyYW1lT2Zmc2V0ID0gKGN1cnJlbnRUaW1lIC0gdGltZTEpLnZhbHVlKCkgKiBzYW1wbGVS
YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGZyYW1lT2Zmc2V0ID0gKGN1cnJl
bnRUaW1lIC0gdGltZTEpLnZhbHVlKCkgKiBzYW1wbGVSYXRlOwogICAgICAgICAgICAgICAgICAg
ICAgICAgY3VydmVWaXJ0dWFsSW5kZXggPSBjdXJ2ZVBvaW50c1BlckZyYW1lICogZnJhbWVPZmZz
ZXQ7CiAgICAgICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgICAgICAvLyBTZXQg
dGhlIGRlZmF1bHQgdmFsdWUgaW4gY2FzZSBmaWxsVG9GcmFtZSBpcyAwLgorICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGN1cnZlRW5kVmFsdWU7CisKICAgICAgICAgICAgICAgICAgICAgLy8g
UmVuZGVyIHRoZSBzdHJldGNoZWQgY3VydmUgZGF0YSB1c2luZyBuZWFyZXN0IG5laWdoYm9yIHNh
bXBsaW5nLgogICAgICAgICAgICAgICAgICAgICAvLyBPdmVyc2FtcGxlZCBjdXJ2ZSBkYXRhIGNh
biBiZSBwcm92aWRlZCBpZiBzbW9vdGhuZXNzIGlzIGRlc2lyZWQuCi0gICAgICAgICAgICAgICAg
ICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSWRlYWxseSB3ZSdkIHVzZSByb3VuZCgpIGZyb20gTWF0
aEV4dHJhcywgYnV0IHdlJ3JlIGluIGEgdGlnaHQgbG9vcCBoZXJlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAvLyBhbmQgd2UncmUgdHJhZGluZyBvZmYgcHJlY2lzaW9uIGZvciBleHRyYSBzcGVl
ZC4KLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGN1cnZlSW5kZXggPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oMC41ICsgY3VydmVWaXJ0dWFsSW5kZXgpOwotCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjdXJ2ZVZpcnR1YWxJbmRleCArPSBjdXJ2ZVBvaW50c1BlckZyYW1lOwotCi0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyBCb3VuZHMgY2hlY2suCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoY3VydmVJbmRleCA8IG51bWJlck9mQ3VydmVQb2ludHMpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjdXJ2ZURhdGFbY3VydmVJbmRleF07CisgICAgICAg
ICAgICAgICAgICAgIGludCBrID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7IHdyaXRl
SW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4LCArK2spIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbXB1dGUgY3VycmVudCBpbmRleCB0aGlzIHdheSB0byBtaW5pbWl6ZSBy
b3VuZC1vZmYgdGhhdCB3b3VsZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBvY2N1
cnJlZCBieSBpbmNyZW1lbnRpbmcgdGhlIGluZGV4IGJ5IGN1cnZlUG9pbnRzUGVyRnJhbWUuCisg
ICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgY3VycmVudFZpcnR1YWxJbmRleCA9IGN1cnZl
VmlydHVhbEluZGV4ICsgayAqIGN1cnZlUG9pbnRzUGVyRnJhbWU7CisgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjdXJ2ZUluZGV4MDsKKworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gQ2xhbXAgaW5kZXggdG8gdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkuCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZpcnR1YWxJbmRleCA8IG51bWJlck9mQ3VydmVQ
b2ludHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VydmVJbmRleDAgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oY3VycmVudFZpcnR1YWxJbmRleCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VydmVJbmRleDAgPSBudW1i
ZXJPZkN1cnZlUG9pbnRzIC0gMTsKKworICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y3VydmVJbmRleDEgPSBzdGQ6Om1pbihjdXJ2ZUluZGV4MCArIDEsIG51bWJlck9mQ3VydmVQb2lu
dHMgLSAxKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGluZWFybHkgaW50ZXJwb2xh
dGUgYmV0d2VlbiB0aGUgdHdvIG5lYXJlc3QgY3VydmUgcG9pbnRzLgorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gfGRlbHRhfCBpcyBjbGFtcGVkIHRvIDEgYmVjYXVzZSBjdXJyZW50VmlydHVh
bEluZGV4IGNhbiBleGNlZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGN1cnZlSW5kZXgw
IGJ5IG1vcmUgdGhhbiBvbmUuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIHJlYWNoZWQKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnZlIGJ1dCBzdGlsbCBuZWVk
IHZhbHVlcyB0byBmaWxsIG91dCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGN1cnJl
bnQgcmVuZGVyaW5nIHF1YW50dW0uCisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY3Vy
dmVJbmRleDAgPCBudW1iZXJPZkN1cnZlUG9pbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEFTU0VSVChjdXJ2ZUluZGV4MSA8IG51bWJlck9mQ3VydmVQb2ludHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZmxvYXQgYzAgPSBjdXJ2ZURhdGFbY3VydmVJbmRleDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgYzEgPSBjdXJ2ZURhdGFbY3VydmVJbmRleDFdOworICAgICAg
ICAgICAgICAgICAgICAgICAgZG91YmxlIGRlbHRhID0gc3RkOjptaW4oY3VycmVudFZpcnR1YWxJ
bmRleCAtIGN1cnZlSW5kZXgwLCAxLjApOworCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IGMwICsgKGMxIC0gYzApICogZGVsdGE7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBhbnkgdGltZSBsZWZ0IGFmdGVyIHRoZSBkdXJh
dGlvbiBvZiB0aGlzIGV2ZW50IGFuZCB0aGUgc3RhcnQKICAgICAgICAgICAgICAgICAgICAgLy8g
b2YgdGhlIG5leHQsIHRoZW4ganVzdCBwcm9wYWdhdGUgdGhlIGxhc3QgdmFsdWUuCi0gICAgICAg
ICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgbmV4dEV2ZW50RmlsbFRvRnJhbWU7ICsr
d3JpdGVJbmRleCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9
IHZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZiAod3JpdGVJbmRleCA8IG5leHRFdmVudEZp
bGxUb0ZyYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGN1cnZlRW5kVmFs
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IG5leHRFdmVu
dEZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWVzW3dyaXRlSW5kZXhdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgICAgICAgICAvLyBSZS1hZGp1c3QgY3VycmVudCB0aW1lCiAgICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRUaW1lID0gbmV4dEV2ZW50RmlsbFRvVGltZTsKIAogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFBhcmFt
RXZlbnQ6Okxhc3RUeXBlOgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpA
QCAtNDI1LDYgKzYwMiw5OSBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRp
bWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVAogICAgIHJldHVybiB2
YWx1ZTsKIH0KIAoraW5saW5lIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcEF0
VGltZShTZWNvbmRzIHQsIGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUy
LCBTZWNvbmRzIHRpbWUyKQoreworICAgIHJldHVybiB2YWx1ZTEgKyAodmFsdWUyIC0gdmFsdWUx
KSAqICh0IC0gdGltZTEpLnZhbHVlKCkgLyAodGltZTIgLSB0aW1lMSkudmFsdWUoKTsKK30KKwor
aW5saW5lIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wQXRUaW1lKFNl
Y29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNlY29u
ZHMgdGltZTIpCit7CisgICAgcmV0dXJuIHZhbHVlMSAqIHBvdyh2YWx1ZTIgLyB2YWx1ZTEsICh0
IC0gdGltZTEpLnZhbHVlKCkgLyAodGltZTIgLSB0aW1lMSkudmFsdWUoKSk7Cit9CisKK2Zsb2F0
IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVDdXJ2ZUF0VGltZShTZWNvbmRzIHQsIFNlY29uZHMg
dGltZTEsIFNlY29uZHMgZHVyYXRpb24sIGNvbnN0IGZsb2F0KiBjdXJ2ZURhdGEsIHNpemVfdCBj
dXJ2ZUxlbmd0aCkKK3sKKyAgICBkb3VibGUgY3VydmVJbmRleCA9IChjdXJ2ZUxlbmd0aCAtIDEp
IC8gZHVyYXRpb24udmFsdWUoKSAqICh0IC0gdGltZTEpLnZhbHVlKCk7CisgICAgc2l6ZV90IGsg
PSBzdGQ6Om1pbihzdGF0aWNfY2FzdDxzaXplX3Q+KGN1cnZlSW5kZXgpLCBjdXJ2ZUxlbmd0aCAt
IDEpOworICAgIHNpemVfdCBrMSA9IHN0ZDo6bWluKGsgKyAxLCBjdXJ2ZUxlbmd0aCAtIDEpOwor
ICAgIGZsb2F0IGMwID0gY3VydmVEYXRhW2tdOworICAgIGZsb2F0IGMxID0gY3VydmVEYXRhW2sx
XTsKKyAgICBmbG9hdCBkZWx0YSA9IHN0ZDo6bWluKGN1cnZlSW5kZXggLSBrLCAxLjApOworCisg
ICAgcmV0dXJuIGMwICsgKGMxIC0gYzApICogZGVsdGE7Cit9CisKK3ZvaWQgQXVkaW9QYXJhbVRp
bWVsaW5lOjpoYW5kbGVDYW5jZWxWYWx1ZXMoUGFyYW1FdmVudCYgZXZlbnQsIFBhcmFtRXZlbnQq
IG5leHRFdmVudCwgZmxvYXQmIHZhbHVlMiwgU2Vjb25kcyYgdGltZTIsIFBhcmFtRXZlbnQ6OlR5
cGUmIG5leHRFdmVudFR5cGUpCit7CisgICAgaWYgKCFuZXh0RXZlbnQgfHwgbmV4dEV2ZW50LT50
eXBlKCkgIT0gUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzIHx8ICFuZXh0RXZlbnQtPnNhdmVkRXZl
bnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQgdmFsdWUxID0gZXZlbnQudmFsdWUo
KTsKKyAgICBhdXRvIHRpbWUxID0gZXZlbnQudGltZSgpOworCisgICAgc3dpdGNoIChldmVudC50
eXBlKCkpIHsKKyAgICBjYXNlIFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlczoKKyAgICBjYXNlIFBh
cmFtRXZlbnQ6OkxpbmVhclJhbXBUb1ZhbHVlOgorICAgIGNhc2UgUGFyYW1FdmVudDo6RXhwb25l
bnRpYWxSYW1wVG9WYWx1ZToKKyAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlOiB7CisgICAg
ICAgIC8vIFRoZXNlIHRocmVlIGV2ZW50cyBwb3RlbnRpYWxseSBlc3RhYmxpc2ggYSBzdGFydGlu
ZyB2YWx1ZSBmb3IKKyAgICAgICAgLy8gdGhlIGZvbGxvd2luZyBldmVudCwgc28gd2UgbmVlZCB0
byBleGFtaW5lIHRoZSBjYW5jZWxsZWQKKyAgICAgICAgLy8gZXZlbnQgdG8gc2VlIHdoYXQgdG8g
ZG8uCisgICAgICAgIGF1dG8qIHNhdmVkRXZlbnQgPSBuZXh0RXZlbnQtPnNhdmVkRXZlbnQoKTsK
KworICAgICAgICAvLyBVcGRhdGUgdGhlIGVuZCB0aW1lIGFuZCB0eXBlIHRvIHByZXRlbmQgdGhh
dCB3ZSdyZSBydW5uaW5nCisgICAgICAgIC8vIHRoaXMgc2F2ZWQgZXZlbnQgdHlwZS4KKyAgICAg
ICAgdGltZTIgPSBuZXh0RXZlbnQtPnRpbWUoKTsKKyAgICAgICAgbmV4dEV2ZW50VHlwZSA9IHNh
dmVkRXZlbnQtPnR5cGUoKTsKKworICAgICAgICBpZiAobmV4dEV2ZW50LT5oYXNEZWZhdWx0Q2Fu
Y2VsbGVkVmFsdWUoKSkgeworICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBlc3RhYmxpc2hl
ZCBhIHZhbHVlIGZvciB0aGUgY2FuY2VsbGVkCisgICAgICAgICAgICAvLyBldmVudCwgc28ganVz
dCByZXR1cm4gaXQuCisgICAgICAgICAgICB2YWx1ZTIgPSBuZXh0RXZlbnQtPnZhbHVlKCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgbmV4dCBldmVudCB3b3VsZCBo
YXZlIGJlZW4gYSBMaW5lYXJSYW1wIG9yCisgICAgICAgICAgICAvLyBFeHBvbmVudGlhbFJhbXAs
IHdlIG5lZWQgdG8gY29tcHV0ZSBhIG5ldyBlbmQgdmFsdWUgZm9yCisgICAgICAgICAgICAvLyB0
aGUgZXZlbnQgc28gdGhhdCB0aGUgY3VydmUgd29ya3MgY29udGludWVzIGFzIGlmIGl0IHdlcmUK
KyAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxsZWQuCisgICAgICAgICAgICBzd2l0Y2ggKHNhdmVk
RXZlbnQtPnR5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1w
VG9WYWx1ZToKKyAgICAgICAgICAgICAgICB2YWx1ZTIgPSBsaW5lYXJSYW1wQXRUaW1lKG5leHRF
dmVudC0+dGltZSgpLCB2YWx1ZTEsIHRpbWUxLCBzYXZlZEV2ZW50LT52YWx1ZSgpLCBzYXZlZEV2
ZW50LT50aW1lKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQ
YXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBUb1ZhbHVlOgorICAgICAgICAgICAgICAgIHZhbHVl
MiA9IGV4cG9uZW50aWFsUmFtcEF0VGltZShuZXh0RXZlbnQtPnRpbWUoKSwgdmFsdWUxLCB0aW1l
MSwgc2F2ZWRFdmVudC0+dmFsdWUoKSwgc2F2ZWRFdmVudC0+dGltZSgpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZToK
KyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWU6CisgICAgICAgICAgICBjYXNl
IFBhcmFtRXZlbnQ6OlNldFRhcmdldDoKKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6Q2Fu
Y2VsVmFsdWVzOgorICAgICAgICAgICAgICAgIC8vIFRoZXNlIGNhbm5vdCBiZSBwb3NzaWJsZSB0
eXBlcyBmb3IgdGhlIHNhdmVkIGV2ZW50IGJlY2F1c2UgdGhleSBjYW4ndCBiZSBjcmVhdGVkLgor
ICAgICAgICAgICAgICAgIC8vIGNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50IGRvZXNuJ3QgYWxsb3cg
dGhlbSAoU2V0VmFsdWUsIFNldFRhcmdldCwgQ2FuY2VsVmFsdWVzKSBvcgorICAgICAgICAgICAg
ICAgIC8vIGNhbmNlbFNjaGVkdWxlZFZhbHVlcygpIGRvZXNuJ3QgY3JlYXRlIHN1Y2ggYW4gZXZl
bnQgKFNldFZhbHVlQ3VydmUpLgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpM
YXN0VHlwZToKKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2FjaGUgdGhl
IG5ldyB2YWx1ZSBzbyB3ZSBkb24ndCBrZWVwIGNvbXB1dGluZyBpdCBvdmVyIGFuZCBvdmVyLgor
ICAgICAgICAgICAgbmV4dEV2ZW50LT5zZXRDYW5jZWxsZWRWYWx1ZSh2YWx1ZTIpOworICAgICAg
ICB9CisgICAgfSBicmVhazsKKyAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmU6Cisg
ICAgICAgIC8vIEV2ZXJ5dGhpbmcgbmVlZGVkIGZvciB0aGlzIHdhcyBoYW5kbGVkIHdoZW4gY2Fu
Y2VsbGluZyB3YXMKKyAgICAgICAgLy8gZG9uZS4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
YXJhbUV2ZW50OjpTZXRUYXJnZXQ6CisgICAgICAgIC8vIE5vdGhpbmcgc3BlY2lhbCBuZWVkcyB0
byBiZSBkb25lIGZvciBTZXRUYXJnZXQKKyAgICAgICAgLy8gZm9sbG93ZWQgYnkgQ2FuY2VsVmFs
dWVzLgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFtRXZlbnQ6Okxhc3RUeXBlOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmgKaW5kZXggYzkwZTA4NTg0MmI2MzEzZjIyMTUwMzQxODNjYjE5MmUwZTllMDQ0MC4uMmFjNjli
NjdjNWQ4Njc2NjA2YThhNzQwNjE2NDliMzQ1ZjQ2MjVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oCkBAIC00OCw3ICs0
OCw4IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBleHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIFNlY29uZHMgdGltZSwgZmxvYXQgdGlt
ZUNvbnN0YW50KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUN1cnZlQXRUaW1lKFZl
Y3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9uKTsKLSAg
ICB2b2lkIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIHN0YXJ0VGltZSk7CisgICAgdm9p
ZCBjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKTsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBjYW5jZWxBbmRIb2xkQXRUaW1lKFNlY29uZHMgY2FuY2VsVGltZSk7CiAKICAg
ICAvLyBoYXNWYWx1ZSBpcyBzZXQgdG8gdHJ1ZSBpZiBhIHZhbGlkIHRpbWVsaW5lIHZhbHVlIGlz
IHJldHVybmVkLgogICAgIC8vIG90aGVyd2lzZSBkZWZhdWx0VmFsdWUgaXMgcmV0dXJuZWQuCkBA
IC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjbGFzcyBQYXJhbUV2ZW50
IHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAg
ICBlbnVtIFR5cGUgewogICAgICAgICAgICAgU2V0VmFsdWUsCkBAIC03MiwzOSArNzQsMTM0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLAogICAgICAgICAg
ICAgU2V0VGFyZ2V0LAogICAgICAgICAgICAgU2V0VmFsdWVDdXJ2ZSwKKyAgICAgICAgICAgIENh
bmNlbFZhbHVlcywKICAgICAgICAgICAgIExhc3RUeXBlCiAgICAgICAgIH07CiAKLSAgICAgICAg
UGFyYW1FdmVudChUeXBlIHR5cGUsIGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRp
bWVDb25zdGFudCwgU2Vjb25kcyBkdXJhdGlvbiwgVmVjdG9yPGZsb2F0PiYmIGN1cnZlKQorICAg
ICAgICBzdGF0aWMgVW5pcXVlUmVmPFBhcmFtRXZlbnQ+IGNyZWF0ZVNldFZhbHVlRXZlbnQoZmxv
YXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWUsIHZhbHVlLCB0aW1l
LCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVMaW5l
YXJSYW1wRXZlbnQoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6TGluZWFy
UmFtcFRvVmFsdWUsIHZhbHVlLCB0aW1lLCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7
IH0sIDAsIDAsIG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJl
ZjxQYXJhbUV2ZW50PiBjcmVhdGVFeHBvbmVudGlhbFJhbXBFdmVudChmbG9hdCB2YWx1ZSwgU2Vj
b25kcyB0aW1lKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PihQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBUb1ZhbHVlLCB2YWx1ZSwgdGlt
ZSwgMCwgU2Vjb25kcyB7IH0sIFZlY3RvcjxmbG9hdD4geyB9LCAwLCAwLCBudWxscHRyKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHN0YXRpYyBVbmlxdWVSZWY8UGFyYW1FdmVudD4gY3JlYXRlU2V0
VGFyZ2V0RXZlbnQoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRpbWVDb25zdGFu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIHRpbWUgbGluZSBjb2RlIGRvZXMgbm90
IGV4cGVjdCBhIHRpbWVDb25zdGFudCBvZiAwLiAoSXQgcmV0dXJucyBOYU4gb3IgSW5maW5pdHkg
ZHVlIHRvIGRpdmlzaW9uIGJ5IHplcm8uIFRoZSBjYWxsZXIKKyAgICAgICAgICAgIC8vIHNob3Vs
ZCBoYXZlIGNvbnZlcnRlZCB0aGlzIHRvIGEgU2V0VmFsdWVFdmVudC4KKyAgICAgICAgICAgIEFT
U0VSVCghIXRpbWVDb25zdGFudCk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PihQYXJhbUV2ZW50OjpTZXRUYXJnZXQsIHRhcmdldCwgdGltZSwgdGltZUNvbnN0
YW50LCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVTZXRW
YWx1ZUN1cnZlRXZlbnQoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29u
ZHMgZHVyYXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvdWJsZSBjdXJ2ZVBvaW50c1Bl
clNlY29uZCA9IChjdXJ2ZS5zaXplKCkgLSAxKSAvIGR1cmF0aW9uLnZhbHVlKCk7CisgICAgICAg
ICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0gY3VydmUubGFzdCgpOworICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwg
MCwgdGltZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpLCBjdXJ2ZVBvaW50c1BlclNlY29u
ZCwgY3VydmVFbmRWYWx1ZSwgbnVsbHB0cik7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMg
VW5pcXVlUmVmPFBhcmFtRXZlbnQ+IGNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KFNlY29uZHMgY2Fu
Y2VsVGltZSwgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IHNhdmVkRXZlbnQpCisgICAgICAg
IHsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICAgICAgaWYgKHNhdmVkRXZlbnQpIHsKKyAg
ICAgICAgICAgICAgICAvLyBUaGUgc2F2ZWRFdmVudCBjYW4gb25seSBoYXZlIGNlcnRhaW4gZXZl
bnQgdHlwZXMuIFZlcmlmeSB0aGF0LgorICAgICAgICAgICAgICAgIGF1dG8gc2F2ZWRFdmVudFR5
cGUgPSBzYXZlZEV2ZW50LT50eXBlKCk7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRF
dmVudFR5cGUgIT0gUGFyYW1FdmVudDo6TGFzdFR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VS
VChzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZQorICAgICAg
ICAgICAgICAgICAgICB8fCBzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpFeHBvbmVudGlh
bFJhbXBUb1ZhbHVlCisgICAgICAgICAgICAgICAgICAgIHx8IHNhdmVkRXZlbnRUeXBlID09IFBh
cmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQYXJhbUV2ZW50PihQYXJhbUV2ZW50OjpDYW5jZWxW
YWx1ZXMsIDAsIGNhbmNlbFRpbWUsIDAsIFNlY29uZHMgeyB9LCBWZWN0b3I8ZmxvYXQ+IHsgfSwg
MCwgMCwgV1RGTW92ZShzYXZlZEV2ZW50KSk7CisgICAgICAgIH0KKworICAgICAgICBQYXJhbUV2
ZW50KFR5cGUgdHlwZSwgZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0
YW50LCBTZWNvbmRzIGR1cmF0aW9uLCBWZWN0b3I8ZmxvYXQ+JiYgY3VydmUsIGRvdWJsZSBjdXJ2
ZVBvaW50c1BlclNlY29uZCwgZmxvYXQgY3VydmVFbmRWYWx1ZSwgc3RkOjp1bmlxdWVfcHRyPFBh
cmFtRXZlbnQ+IHNhdmVkRXZlbnQpCiAgICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAgICAgLCBtX3RpbWUodGltZSkKICAgICAg
ICAgICAgICwgbV90aW1lQ29uc3RhbnQodGltZUNvbnN0YW50KQogICAgICAgICAgICAgLCBtX2R1
cmF0aW9uKGR1cmF0aW9uKQogICAgICAgICAgICAgLCBtX2N1cnZlKFdURk1vdmUoY3VydmUpKQor
ICAgICAgICAgICAgLCBtX2N1cnZlUG9pbnRzUGVyU2Vjb25kKGN1cnZlUG9pbnRzUGVyU2Vjb25k
KQorICAgICAgICAgICAgLCBtX2N1cnZlRW5kVmFsdWUoY3VydmVFbmRWYWx1ZSkKKyAgICAgICAg
ICAgICwgbV9zYXZlZEV2ZW50KFdURk1vdmUoc2F2ZWRFdmVudCkpCiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgICAgIHVuc2lnbmVkIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
KyAgICAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIGZs
b2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgICAgICBTZWNvbmRzIHRp
bWUoKSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0KICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50
KCkgY29uc3QgeyByZXR1cm4gbV90aW1lQ29uc3RhbnQ7IH0KICAgICAgICAgU2Vjb25kcyBkdXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KICAgICAgICAgVmVjdG9yPGZsb2F0
PiYgY3VydmUoKSB7IHJldHVybiBtX2N1cnZlOyB9CisgICAgICAgIFBhcmFtRXZlbnQqIHNhdmVk
RXZlbnQoKSB7IHJldHVybiBtX3NhdmVkRXZlbnQuZ2V0KCk7IH0KKworICAgICAgICB2b2lkIHNl
dENhbmNlbGxlZFZhbHVlKGZsb2F0IGNhbmNlbGxlZFZhbHVlKQorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQobV90eXBlID09IFR5cGU6OkNhbmNlbFZhbHVlcyk7CisgICAgICAgICAgICBt
X3ZhbHVlID0gY2FuY2VsbGVkVmFsdWU7CisgICAgICAgICAgICBtX2hhc0RlZmF1bHRDYW5jZWxs
ZWRWYWx1ZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYm9vbCBoYXNEZWZhdWx0Q2FuY2Vs
bGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV90eXBlID09
IFR5cGU6OkNhbmNlbFZhbHVlcyk7CisgICAgICAgICAgICByZXR1cm4gbV9oYXNEZWZhdWx0Q2Fu
Y2VsbGVkVmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgY3VydmVQb2ludHNQZXJT
ZWNvbmQoKSBjb25zdCB7IHJldHVybiBtX2N1cnZlUG9pbnRzUGVyU2Vjb25kOyB9CisgICAgICAg
IGZsb2F0IGN1cnZlRW5kVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnZlRW5kVmFsdWU7IH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIHVuc2lnbmVkIG1fdHlwZTsKLSAgICAgICAgZmxvYXQg
bV92YWx1ZTsKKyAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIGZsb2F0IG1fdmFsdWUgeyAw
IH07CiAgICAgICAgIFNlY29uZHMgbV90aW1lOwotICAgICAgICBmbG9hdCBtX3RpbWVDb25zdGFu
dDsKKworICAgICAgICAvLyBPbmx5IHVzZWQgZm9yIFNldFRhcmdldCBldmVudHMuCisgICAgICAg
IGZsb2F0IG1fdGltZUNvbnN0YW50IHsgMCB9OworCisgICAgICAgIC8vIFRoZSBkdXJhdGlvbiBv
ZiB0aGUgY3VydmUuCiAgICAgICAgIFNlY29uZHMgbV9kdXJhdGlvbjsKKworICAgICAgICAvLyBU
aGUgYXJyYXkgb2YgY3VydmUgcG9pbnRzLgogICAgICAgICBWZWN0b3I8ZmxvYXQ+IG1fY3VydmU7
CisKKyAgICAgICAgLy8gVGhlIG51bWJlciBvZiBjdXJ2ZSBwb2ludHMgcGVyIHNlY29uZC4gaXQg
aXMgdXNlZCB0byBjb21wdXRlCisgICAgICAgIC8vIHRoZSBjdXJ2ZSBpbmRleCBzdGVwIHdoZW4g
cnVubmluZyB0aGUgYXV0b21hdGlvbi4KKyAgICAgICAgZG91YmxlIG1fY3VydmVQb2ludHNQZXJT
ZWNvbmQgeyAwIH07CisKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgdmFsdWUgdG8gdXNlIGF0IHRo
ZSBlbmQgb2YgdGhlIGN1cnZlLiBOb3JtYWxseQorICAgICAgICAvLyBpdCdzIHRoZSBsYXN0IGVu
dHJ5IGluIG1fY3VydmUsIGJ1dCBjYW5jZWxsaW5nIGEgU2V0VmFsdWVDdXJ2ZQorICAgICAgICAv
LyB3aWxsIHNldCB0aGlzIHRvIGEgbmV3IHZhbHVlLgorICAgICAgICBmbG9hdCBtX2N1cnZlRW5k
VmFsdWUgeyAwIH07CisKKyAgICAgICAgLy8gVHJ1ZSBpZiBhIGRlZmF1bHQgdmFsdWUgaGFzIGJl
ZW4gYXNzaWduZWQgdG8gdGhlIENhbmNlbFZhbHVlcyBldmVudC4KKyAgICAgICAgYm9vbCBtX2hh
c0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSB7IGZhbHNlIH07CisKKyAgICAgICAgLy8gRm9yIENhbmNl
bFZhbHVlcy4gSWYgQ2FuY2VsVmFsdWVzIGlzIGluIHRoZSBtaWRkbGUgb2YgYW4gZXZlbnQsIHRo
aXMKKyAgICAgICAgLy8gaG9sZHMgdGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2VsbGVkLCBz
byB0aGF0IHByb2Nlc3NpbmcgY2FuCisgICAgICAgIC8vIGNvbnRpbnVlIGFzIGlmIHRoZSBldmVu
dCBzdGlsbCBleGlzdGVkIHVwIHVudGlsIHdlIHJlYWNoIHRoZSBhY3R1YWwKKyAgICAgICAgLy8g
c2NoZWR1bGVkIGNhbmNlbCB0aW1lLgorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1FdmVu
dD4gbV9zYXZlZEV2ZW50OwogICAgIH07CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRF
dmVudChjb25zdCBQYXJhbUV2ZW50Jik7CisgICAgdm9pZCByZW1vdmVDYW5jZWxsZWRFdmVudHMo
c2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0
RXZlbnQoVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KTsKICAgICBmbG9hdCB2YWx1ZXNGb3JUaW1lUmFu
Z2VJbXBsKFNlY29uZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFRpbWUsIGZsb2F0IGRlZmF1bHRW
YWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1w
bGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOworICAgIGZsb2F0IGxpbmVhclJhbXBBdFRpbWUo
U2Vjb25kcyB0LCBmbG9hdCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vj
b25kcyB0aW1lMik7CisgICAgZmxvYXQgZXhwb25lbnRpYWxSYW1wQXRUaW1lKFNlY29uZHMgdCwg
ZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNlY29uZHMgdGltZTIp
OworICAgIGZsb2F0IHZhbHVlQ3VydmVBdFRpbWUoU2Vjb25kcyB0LCBTZWNvbmRzIHRpbWUxLCBT
ZWNvbmRzIGR1cmF0aW9uLCBjb25zdCBmbG9hdCogY3VydmVEYXRhLCBzaXplX3QgY3VydmVMZW5n
dGgpOworICAgIHZvaWQgaGFuZGxlQ2FuY2VsVmFsdWVzKFBhcmFtRXZlbnQmLCBQYXJhbUV2ZW50
KiBuZXh0RXZlbnQsIGZsb2F0JiB2YWx1ZTIsIFNlY29uZHMmIHRpbWUyLCBQYXJhbUV2ZW50OjpU
eXBlJiBuZXh0RXZlbnRUeXBlKTsKIAotICAgIFZlY3RvcjxQYXJhbUV2ZW50PiBtX2V2ZW50czsK
KyAgICBWZWN0b3I8VW5pcXVlUmVmPFBhcmFtRXZlbnQ+PiBtX2V2ZW50czsKIAogICAgIExvY2sg
bV9ldmVudHNNdXRleDsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjdhMzIxNzg1MjljNmZhMGFiYWFhNmYzMGUwMTY0
NTIwNDc0MWM0NS4uMTBlMzI5NmU0NTI1MDA1OGY5YWEwYjIyYjkyM2M4ZWIxZWEwMzcxNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQXVkaW9QYXJhbS5jYW5jZWxBbmRIb2xkQXRUaW1lKCkgaXMgbWlz
c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1
OTQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82ODM2MjA2MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcGFyYW0tY2Fu
Y2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vYXVk
aW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8v
Y2FuY2VsLXZhbHVlcy1jcmFzaC05MTMyMTctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tcGFyYW0uanM6IEFkZGVkLgorICAgICAgICBJ
bXBvcnQgbGF5b3V0IHRlc3QgY292ZXJhZ2UgZnJvbSBCbGluay4KKworICAgICAgICAqIHdlYmF1
ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBvdXRkYXRlZCB0ZXN0LiBUaGlzIHRlc3QgaXMgbm93
IHBhcnQgb2Ygd2ViLXBsYXRmb3JtLXRlc3RzIGF0CisgICAgICAgIHdlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0
VGltZS5odG1sCisgICAgICAgIGFuZCBpcyBub3cgcGFzc2luZy4KKwogMjAyMC0wOS0wNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZvbHZlck5vZGUgaW5j
b3JyZWN0bHkgb3V0cHV0cyBzaWxlbmNlIGJlY2F1c2UgbV9yZXZlcmIgaXMgbnVsbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOTQ2NDZlYjBmNmQ2MjE3ZDBhYzg4ZWE2ZTA5ZDgy
MjMxYmI0Y2UxMy4uNzg5NTMzOTNhMTA2NDMxYzU4OWVmNGM0OTk4Y2FlYWZhNDVmNzJhOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDktMDcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb1BhcmFtLmNh
bmNlbEFuZEhvbGRBdFRpbWUoKSBpcyBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU5NDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY4
MzYyMDYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlYmFzZWxpbmUgV1BUIHRlc3RzIHRoYXQgYXJlIG5vdyBwYXNzaW5nLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2UvYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRU
aW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2UvcmV0cm9zcGVjdGl2ZS1zZXRW
YWx1ZUN1cnZlQXRUaW1lLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOS0wNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZvbHZlck5vZGUgaW5jb3JyZWN0bHkg
b3V0cHV0cyBzaWxlbmNlIGJlY2F1c2UgbV9yZXZlcmIgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVj
dGVkLnR4dAppbmRleCA4MTc0OTQ1NTE2ODQyMDRkMjViYzQ4ZDExMWY0ZGIyYWIwY2I0YWU3Li5k
NzFmMDI2NGY0MjY1NmMxNTliN2UwMWZmYmRmNDc5MGQyOTM4YzdiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5l
c3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4
cGVjdGVkLnR4dApAQCAtMjMyLDcgKzIzMiw3IEBAIFBBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0LCBkb3VibGUpCiBQ
QVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VGFyZ2V0QXRUaW1lKGZsb2F0
LCBkb3VibGUsIGZsb2F0KSAKIFBBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRWYWx1ZUN1cnZlQXRUaW1lKHNlcXVlbmNlPGZsb2F0PiwgZG91YmxlLCBkb3VibGUpIAogUEFT
UyBBdWRpb1BhcmFtIGludGVyZmFjZTogb3BlcmF0aW9uIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhk
b3VibGUpIAotRkFJTCBBdWRpb1BhcmFtIGludGVyZmFjZTogb3BlcmF0aW9uIGNhbmNlbEFuZEhv
bGRBdFRpbWUoZG91YmxlKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJj
YW5jZWxBbmRIb2xkQXRUaW1lIiBtaXNzaW5nCitQQVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBv
cGVyYXRpb24gY2FuY2VsQW5kSG9sZEF0VGltZShkb3VibGUpIAogUEFTUyBBdWRpb1BhcmFtIG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250
ZXh0KS5wbGF5YmFja1JhdGUgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlKGNvbnRleHQpLnBsYXliYWNrUmF0ZSAKIFBBU1MgQXVkaW9QYXJhbSBpbnRl
cmZhY2U6IG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidmFsdWUiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAtMjUy
LDggKzI1Miw4IEBAIFBBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6IG5ldyBBdWRpb0J1ZmZlclNv
dXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIG11c3QKIFBBU1MgQXVkaW9QYXJhbSBpbnRl
cmZhY2U6IGNhbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShzZXF1ZW5jZTxmbG9hdD4sIGRvdWJs
ZSwgZG91YmxlKSBvbiBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQpLnBsYXliYWNr
UmF0ZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBB
dWRpb1BhcmFtIGludGVyZmFjZTogbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250ZXh0KS5w
bGF5YmFja1JhdGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxTY2hlZHVsZWRWYWx1ZXMo
ZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNl
OiBjYWxsaW5nIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhkb3VibGUpIG9uIG5ldyBBdWRpb0J1ZmZl
clNvdXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBuZXcgQXVk
aW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQpLnBsYXliYWNrUmF0ZSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiY2FuY2VsQW5kSG9sZEF0VGltZSIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBBdWRpb1BhcmFtIGludGVyZmFjZTogY2FsbGluZyBj
YW5jZWxBbmRIb2xkQXRUaW1lKGRvdWJsZSkgb24gbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShj
b250ZXh0KS5wbGF5YmFja1JhdGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjYW5jZWxBbmRIb2xkQXRUaW1lIiBu
b3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBu
ZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQpLnBsYXliYWNrUmF0ZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBjYWxsaW5nIGNhbmNlbEFuZEhvbGRB
dFRpbWUoZG91YmxlKSBvbiBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQpLnBsYXli
YWNrUmF0ZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3Bh
cmFtLWludGVyZmFjZS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9hdWRpb3BhcmFtLXNldFZhbHVl
Q3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0CmluZGV4IGNjZjNlNjMyNWFhNzQ2OTYxZWY5NDFjNTg3
OGNjOTA5NzU0YTNlMzcuLjdhNmYwOWNiMDVjZjBlNzAyZTA2MGExM2RiNzAxODIwOTk2ZmJjZjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2UvYXVkaW9wYXJh
bS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvcGFyYW0taW50ZXJmYWNlL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3Rl
ZC50eHQKQEAgLTQsMjcgKzQsMjcgQEAgUEFTUyBFeGVjdXRpbmcgInRlc3QiCiBQQVNTIEF1ZGl0
IHJlcG9ydCAKIFBBU1MgPiBbdGVzdF0gQXVkaW9QYXJhbSBzZXRWYWx1ZUN1cnZlQXRUaW1lKCkg
ZnVuY3Rpb25hbGl0eS4gCiBQQVNTICAgTnVtYmVyIG9mIHRlc3RzIHN0YXJ0ZWQgYW5kIGVuZGVk
IGF0IHRoZSBjb3JyZWN0IHRpbWUgaXMgZXF1YWwgdG8gMjAuIAotRkFJTCBYIE1heCBlcnJvciBm
b3IgdGVzdCAwIGF0IG9mZnNldCAxMzA0IGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4w
MDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1NTc5OTMuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCAxIGF0IG9mZnNldCAy
NjI3IGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4
NzE0NzI3NTE1NTc5OTMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBYIE1heCBlcnJvciBmb3IgdGVzdCAyIGF0IG9mZnNldCAzOTUwIGlzIG5vdCBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1NDM3ODMuIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVz
dCAzIGF0IG9mZnNldCA1MjczIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3
MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1NDM3ODMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCA0IGF0IG9mZnNldCA2NTk2IGlz
IG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3
NTE1NDM3ODMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1h
eCBlcnJvciBmb3IgdGVzdCA1IGF0IG9mZnNldCA3OTE5IGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1
YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1NDM3ODMuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCA2IGF0
IG9mZnNldCA5MjQyIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBH
b3QgMC4wMzA4NzE0NzI3NTE1NDM3ODMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCA3IGF0IG9mZnNldCAxMDU2NSBpcyBub3Qg
bGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTQz
NzgzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBNYXggZXJy
b3IgZm9yIHRlc3QgOCBhdCBvZmZzZXQgMTE4ODggaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0
byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU4NjUyNi4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDkgYXQgb2Zm
c2V0IDEzMjExIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3Qg
MC4wMzA4NzE0NzI3NTE1MTUyNS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDEwIGF0IG9mZnNldCAxNDUzNCBpcyBub3QgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTE1MjUu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBm
b3IgdGVzdCAxMSBhdCBvZmZzZXQgMTU4NTcgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAw
LjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTUwODE0NC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDEyIGF0IG9mZnNl
dCAxNzE4MCBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAu
MDMwODcxNDcyNzUxNTg2NTI2LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgMTMgYXQgb2Zmc2V0IDE4NTAzIGlzIG5vdCBsZXNz
IHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1MTUyNS4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZv
ciB0ZXN0IDE0IGF0IG9mZnNldCAxOTgyNiBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAu
MDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTE1MjUuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCAxNSBhdCBvZmZzZXQg
MjExNDkgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAz
MDg3MTQ3Mjc1MTUwODE0NC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDE2IGF0IG9mZnNldCAyMjQ3MiBpcyBub3QgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTg2NTI2LiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBNYXggZXJyb3IgZm9y
IHRlc3QgMTcgYXQgb2Zmc2V0IDIzNzk1IGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4w
MDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1ODY1MjYuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCAxOCBhdCBvZmZzZXQg
MjUxMTggaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAz
MDg3MTQ3Mjc1MTQzNjk4LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgMTkgYXQgb2Zmc2V0IDI2NDQxIGlzIG5vdCBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1ODY1MjYuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIE1heCBlcnJvciBmb3Ig
dGVzdCAwIGF0IG9mZnNldCA5MDMgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5
NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDEgYXQgb2Zmc2V0IDIyMjYgaXMgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0
IDIgYXQgb2Zmc2V0IDM1NDkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4g
CitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDMgYXQgb2Zmc2V0IDQ4NzIgaXMgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDQg
YXQgb2Zmc2V0IDYxOTUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQ
QVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDUgYXQgb2Zmc2V0IDc1MTggaXMgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDYgYXQg
b2Zmc2V0IDg4NDEgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNT
ICAgTWF4IGVycm9yIGZvciB0ZXN0IDcgYXQgb2Zmc2V0IDEwMTY0IGlzIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFTUyAgIE1heCBlcnJvciBmb3IgdGVzdCA4IGF0IG9m
ZnNldCAxMTQ4NyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1Mg
ICBNYXggZXJyb3IgZm9yIHRlc3QgOSBhdCBvZmZzZXQgMTI4MTAgaXMgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDEwIGF0IG9m
ZnNldCAxNDEzMyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1Mg
ICBNYXggZXJyb3IgZm9yIHRlc3QgMTEgYXQgb2Zmc2V0IDE1NDU2IGlzIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFTUyAgIE1heCBlcnJvciBmb3IgdGVzdCAxMiBhdCBv
ZmZzZXQgMTY3NzkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNT
ICAgTWF4IGVycm9yIGZvciB0ZXN0IDEzIGF0IG9mZnNldCAxODEwMiBpcyBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTQgYXQg
b2Zmc2V0IDE5NDI1IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFT
UyAgIE1heCBlcnJvciBmb3IgdGVzdCAxNSBhdCBvZmZzZXQgMjA3NDggaXMgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDE2IGF0
IG9mZnNldCAyMjA3MSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BB
U1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTcgYXQgb2Zmc2V0IDIzMzk0IGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFTUyAgIE1heCBlcnJvciBmb3IgdGVzdCAxOCBh
dCBvZmZzZXQgMjQ3MTcgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQ
QVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDE5IGF0IG9mZnNldCAyNjA0MCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKIFBBU1MgICBOdW1iZXIgb2YgZmFpbGVkIHRlc3Rz
IHdpdGggYW4gYWNjZXB0YWJsZSByZWxhdGl2ZSB0b2xlcmFuY2Ugb2YgMC4wMDAwMDM3MTk0IGlz
IGVxdWFsIHRvIDAuIAotRkFJTCA8IFt0ZXN0XSAyMCBvdXQgb2YgMjIgYXNzZXJ0aW9ucyB3ZXJl
IGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMICMgQVVE
SVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDEgdGFza3Mgd2VyZSBmYWlsZWQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA8IFt0ZXN0XSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyMiBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9yZXRyb3NwZWN0aXZlLXNldFZh
bHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWlu
dGVyZmFjZS9yZXRyb3NwZWN0aXZlLXNldFZhbHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGExYzIwY2NjOGQ0ZDljMGQ5MGM1NzE0ZGU0MGVjMGU1ZmE0OGFkNzIuLjZjNDc1ZGE5OTY3
NGFhY2EzMmRiNWM2NThmZjg4NjE1OWY3Y2FiOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9wYXJhbS1pbnRlcmZhY2UvcmV0cm9zcGVjdGl2ZS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL3JldHJv
c3BlY3RpdmUtc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBA
IFBBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW3Rlc3RdIFRlc3QgU2V0VmFsdWVDdXJ2ZSB3aXRo
IHN0YXJ0IHRpbWUgaW4gdGhlIHBhc3QgCiBQQVNTICAgVGVzdFswOjEyN10gY29udGFpbnMgb25s
eSB0aGUgY29uc3RhbnQgMS4gCiBQQVNTICAgUmVmZXJlbmNlWzA6MTI3XSBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAxLiAKLVBBU1MgICBUZXN0WzEyODpdIGlzIGlkZW50aWNhbCB0byB0aGUg
YXJyYXkgWzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5dLiAKK1BBU1MgICBUZXN0
WzEyODpdIGlzIGlkZW50aWNhbCB0byB0aGUgYXJyYXkgWzEsMC45OTk5NDUwNDQ1MTc1MTcxLDAu
OTk5ODkwMTQ4NjM5Njc5LDAuOTk5ODM1MTkzMTU3MTk2LDAuOTk5NzgwMjk3Mjc5MzU3OSwwLjk5
OTcyNTM0MTc5Njg3NSwwLjk5OTY3MDM4NjMxNDM5MjEsMC45OTk2MTU0OTA0MzY1NTQsMC45OTk1
NjA1MzQ5NTQwNzEsMC45OTk1MDU2MzkwNzYyMzI5LDAuOTk5NDUwNjgzNTkzNzUsMC45OTkzOTU3
MjgxMTEyNjcxLDAuOTk5MzQwODMyMjMzNDI5LDAuOTk5Mjg1ODc2NzUwOTQ2LDAuOTk5MjMwOTgw
ODczMTA3OSwwLjk5OTE3NjAyNTM5MDYyNS4uLl0uIAogUEFTUyA8IFt0ZXN0XSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAogUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTYxYmRmNzk0OTFhMDg2NjE1MzIyMzc5NGMxY2IzNDdlMmYx
NTY5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0t
Y2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExMyBAQAorCitQQVNTICMg
QVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAibGluZWFyIiAKK1BB
U1MgRXhlY3V0aW5nICJleHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAic2V0VGFyZ2V0IiAK
K1BBU1MgRXhlY3V0aW5nICJzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgRXhlY3V0aW5nICJzZXRWYWx1
ZUN1cnZlIGFmdGVyIGVuZCIgCitQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbCBzZXRUYXJnZXQiIAor
UEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBMaW5lYXIiIAorUEFTUyBFeGVjdXRpbmcgInBv
c3QgY2FuY2VsOiBFeHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IFZh
bHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRUYXJnZXQiIAorUEFT
UyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRWYWx1ZSIgCitQQVNTIEV4ZWN1dGluZyAiY2Fu
Y2VsIGZ1dHVyZSBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRUYXJnZXQg
bm93IiAKK1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgZnV0dXJlIHNldFZhbHVlQ3VydmUiIAorUEFT
UyBFeGVjdXRpbmcgImNhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdyIgCitQQVNTIEV4ZWN1dGluZyAi
bGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXIiIAorUEFTUyBBdWRpdCByZXBv
cnQgCitQQVNTID4gW2xpbmVhcl0gQ2FuY2VsIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lIAorUEFT
UyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVw
IHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQx
ODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2
NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4w
MTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUs
MC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQw
ODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhy
ZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTog
bGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3Ig
Y2FuY2VsbGluZyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwg
MC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBv
ZiAwLjAwMDA4Mzk5OC4gCitQQVNTIDwgW2xpbmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxdIENhbmNlbCBleHBvbmVu
dGlhbFJhbXBBdFRpbWUgCitQQVNTICAgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZSgwLjAwMSwgMC41
KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2
NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAx
MDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkz
LDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIx
NTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcx
OTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjUuOTYwNWUtOCwicmVsYXRpdmVU
aHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIGV4cG9uZW50aWFsUmFtcFRvVmFsdWUo
MC4wMDEsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDMz
OTMyMjIwMTkwNzYzNDc0LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBl
eHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjAzMzkz
MjIxNjQ2NTQ3MzE3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDE4NjY0LiAKK1BBU1MgPCBb
ZXhwb25lbnRpYWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykg
CitQQVNTID4gW3NldFRhcmdldF0gQ2FuY2VsIHNldFRhcmdldEF0VGltZSAKK1BBU1MgICBzZXRU
YXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAw
MjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1
LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYy
NjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAw
NzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAw
MDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMx
MjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNo
b2xkIjo0LjUyNjdlLTcsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGlu
ZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9u
bHkgdGhlIGNvbnN0YW50IDAuMDA4MjI5NzQ5Mjc3MjM0MDc3LiAKK1BBU1MgICBFeHBlY3RlZCB2
YWx1ZSBmb3IgY2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGlt
ZSAwLjI1IGlzIDAuMDA4MjI5NzQ3NDE0NTg4OTI4IHdpdGhpbiBhbiBlcnJvciBvZiA0LjUyNjdl
LTcuIAorUEFTUyA8IFtzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMg
YXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFZhbHVlQ3VydmVdIENhbmNlbCBzZXRWYWx1ZUN1cnZl
QXRUaW1lIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIHVw
IHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQx
ODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2
NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4w
MTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUs
MC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQw
ODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAu
NDkpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2
Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFZhbHVlQ3Vy
dmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA4MTYz
MjY1MyB3aXRoaW4gYW4gZXJyb3Igb2YgOS41MzY4ZS05LiAKK1BBU1MgPCBbc2V0VmFsdWVDdXJ2
ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
c2V0VmFsdWVDdXJ2ZSBhZnRlciBlbmRdIENhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGFmdGVy
IHRoZSBlbmQgCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC4xMTQ5
OTk5OTk5OTk5OTk5OSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1
Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMy
ODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1
ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4w
MjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMs
MC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGgg
YW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxh
dGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGlt
ZShbMSwwXSwgMC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5z
IG9ubHkgdGhlIGNvbnN0YW50IDAuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxs
aW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuMTE0OTk5OTk5OTk5OTk5OTkp
IGF0IHRpbWUgMC4yNSBpcyAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKK1BBU1MgPCBbc2V0VmFs
dWVDdXJ2ZSBhZnRlciBlbmRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0
aW9ucykgCitQQVNTID4gW2luaXRpYWwgc2V0VGFyZ2V0XSBDYW5jZWwgd2l0aCBpbml0aWFsIHNl
dFRhcmdldEF0VGltZSAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSB1cCB0
byB0aW1lIDAuMjUgZXF1YWxzIFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXSB3
aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4w
MDAwMDEyMzIsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBzZXRU
YXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC4wOTA3MTc2NzMzMDE2OTY3OC4gCitGQUlMIFggRXhwZWN0ZWQgdmFsdWUgZm9y
IGNhbmNlbGxpbmcgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAuMSkgYXQgdGltZSAwLjI1IGlz
IG5vdCBjbG9zZSB0byAwLjA5MDcxNzk1NjQyMzc1OTQ2IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9y
IG9mIDAuMDAwMDAxMjMyIChSZWxFcnI9MC4wMDAwMDMxMjA5MDQzMjYzNzgyNjEpLiBHb3QgMC4w
OTA3MTc2NzMzMDE2OTY3OC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIDwgW2luaXRpYWwgc2V0VGFyZ2V0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWls
ZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3N0IGNh
bmNlbDogTGluZWFyXSBMaW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcgCitQQVNTICAgUG9zdCBj
YW5jZWxsYXRpb24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAs
IDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0
MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYs
MC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQw
OTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5
NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMz
MzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9u
IGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRp
bWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAor
UEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUg
MC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4
LiAKK1BBU1MgICBQb3N0IGxpbmVhclJhbXAoMiwgMC4zNzUpIGVxdWFscyBbMC41MTAyMDQwNzY3
NjY5Njc4LDAuNTEwNDUyMzg5NzE3MTAyLDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDk0ODk1NjAx
MjcyNTgsMC41MTExOTcyNjg5NjI4NjAxLDAuNTExNDQ1NTgxOTEyOTk0NCwwLjUxMTY5Mzg5NDg2
MzEyODcsMC41MTE5NDIxNDgyMDg2MTgyLDAuNTEyMTkwNDYxMTU4NzUyNCwwLjUxMjQzODc3NDEw
ODg4NjcsMC41MTI2ODcwODcwNTkwMjEsMC41MTI5MzUzNDA0MDQ1MTA1LDAuNTEzMTgzNjUzMzU0
NjQ0OCwwLjUxMzQzMTk2NjMwNDc3OSwwLjUxMzY4MDI3OTI1NDkxMzMsMC41MTM5Mjg1OTIyMDUw
NDc2Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVz
aG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5jZWw6IExp
bmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BBU1Mg
PiBbcG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsXSBFeHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2Vs
bGluZyAKK1BBU1MgICBQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBs
aW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIw
ODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSww
LjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0
NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0
NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAw
MDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1
Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9s
ZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGlu
ZyBQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUx
MDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBv
c3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVl
KDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJy
b3Igb2YgMC4wMDAwODM5OTguIAorUEFTUyAgIFBvc3QgZXhwb25lbnRpYWxSYW1wKDIsIDAuMzc1
KSBlcXVhbHMgWzAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDMyMDI0NjIxOTYzNSwwLjUxMDQzNjQx
NTY3MjMwMjIsMC41MTA1NTI2NDQ3Mjk2MTQzLDAuNTEwNjY4ODczNzg2OTI2MywwLjUxMDc4NTE2
MjQ0ODg4MzEsMC41MTA5MDE0NTExMTA4Mzk4LDAuNTExMDE3Nzk5Mzc3NDQxNCwwLjUxMTEzNDE0
NzY0NDA0MywwLjUxMTI1MDU1NTUxNTI4OTMsMC41MTEzNjY5NjMzODY1MzU2LDAuNTExNDgzMzcx
MjU3NzgyLDAuNTExNTk5ODM4NzMzNjczMSwwLjUxMTcxNjMwNjIwOTU2NDIsMC41MTE4MzI4MzMy
OTAxMDAxLDAuNTExOTQ5MzYwMzcwNjM2Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFu
Y2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BB
U1MgPCBbcG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCA0IGFzc2VydGlvbnMpIAorUEFTUyA+IFtwb3N0IGNhbmNlbDogVmFsdWVDdXJ2ZV0gIAor
UEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVl
KDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAu
MDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3
OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0
NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMz
MzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcw
ODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwi
cmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNl
dFZhbHVlQ3VydmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAg
RXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0
VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQw
NzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBz
ZXRWYWx1ZUN1cnZlKFswLjEyNSwyXSwgMC4zNzUsIDAuMTI1KSBlcXVhbHMgWzAuNTEwMjA0MDc2
NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2
NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2
NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2
NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2
NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMjA0MDc2
NzY2OTY3OC4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVU
aHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtw
b3N0IGNhbmNlbDogVmFsdWVDdXJ2ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbcG9zdCBjYW5jZWw6IHNldFRhcmdldF0gIAorUEFTUyAgIFBv
c3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0
byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgz
MTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2
Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2
NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAu
MDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3
LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9s
ZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRo
ZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZv
ciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFs
dWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBl
cnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBzZXRUYXJnZXRBdFRpbWUoMC4xMjUs
IDAuMzc1LCAwLjEpIGVxdWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMTIzODQ4OTE1MTAw
MSwwLjUxMDA0MzYyMTA2MzIzMjQsMC41MDk5NjMzOTMyMTEzNjQ3LDAuNTA5ODgzMjI0OTY0MTQx
OCwwLjUwOTgwMzA1NjcxNjkxOSwwLjUwOTcyMjg4ODQ2OTY5NiwwLjUwOTY0MjcyMDIyMjQ3MzEs
MC41MDk1NjI2MTE1Nzk4OTUsMC41MDk0ODI1MDI5MzczMTY5LDAuNTA5NDAyMzk0Mjk0NzM4OCww
LjUwOTMyMjM0NTI1NjgwNTQsMC41MDkyNDIyOTYyMTg4NzIxLDAuNTA5MTYyMjQ3MTgwOTM4Nyww
LjUwOTA4MjE5ODE0MzAwNTQsMC41MDkwMDIyMDg3MDk3MTY4Li4uXSB3aXRoIGFuIGVsZW1lbnQt
d2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODQwMzcsInJlbGF0
aXZlVGhyZXNob2xkIjowfS4gCitQQVNTIDwgW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Bvc3QgY2Fu
Y2VsOiBzZXRWYWx1ZV0gIAorUEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5l
YXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMz
MzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAw
ODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1
LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1
ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3
MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4u
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQ
b3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0
aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAK
K1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1
ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAy
MDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9z
dCBzZXRWYWx1ZUF0VGltZSgwLjEyNSwgMC4zNzUpIGVxdWFscyBbMC4xMjUsMC4xMjUsMC4xMjUs
MC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4x
MjUsMC4xMjUsMC4xMjUsMC4xMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBv
ZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8
IFtwb3N0IGNhbmNlbDogc2V0VmFsdWVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQg
YXNzZXJ0aW9ucykgCitQQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0XSAgCitQQVNTICAg
QWZ0ZXIgY2FuY2VsbGluZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBvdXRwdXQgY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgPCBbY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXRd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2Nh
bmNlbCBzZXRUYXJnZXQgbm93XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBzZXRUYXJnZXQg
ZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41
LiAKK1BBU1MgPCBbY2FuY2VsIHNldFRhcmdldCBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2
ZV0gIAorUEFTUyAgIEFmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQs
IG91dHB1dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwg
ZnV0dXJlIHNldFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNz
ZXJ0aW9ucykgCitQQVNTID4gW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vd10gIAorUEFTUyAgIEFm
dGVyIGNhbmNlbGxpbmcgY3VycmVudCBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywg
b3V0cHV0IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2NhbmNlbCBz
ZXRWYWx1ZUN1cnZlIG5vd10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRp
b25zKSAKK1BBU1MgPiBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIFNj
aGVkdWxlcyAzIGxpbmVhciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sIHNvIHRoYXQgd2Ug
ZW5kIHVwIHdpdGggMiBjYW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlciAKK0ZBSUwgWCAx
c3QgbGluZWFyUmFtcDogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUg
ZG9lcyBub3QgZXF1YWwgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQxODMxMzk4
LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2NjY2OTc3
MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4wMTY2NjY2
NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5
MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQwODcsMC4w
MjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFu
Y2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUlu
ZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xk
CisJWzcxNV0JOS45MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2
MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAw
MGUrMAorCVs3NTZdCTkuODgyNjUzMzU1NTk4NDQ5N2UtMQk5Ljg4MjY1Mjc1OTU1MjAwMjBlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDMxMjM5NDA3NjM1NzkwN2UtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwlbMTEwMF0JOS43MzYzOTQ4ODIyMDIxNDg0ZS0xCTkuNzM2Mzk0Mjg2MTU1NzAw
N2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xMjE4Mzk2NjkxNDE1MDE1ZS04CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAorCVsxMjIzXQk5LjY4NDA5ODk1ODk2OTExNjJlLTEJOS42ODQwOTgzNjI5
MjI2Njg1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE1NDg5ODczNjIyMDc5NzRlLTgJMC4w
MDAwMDAwMDAwMDAwMDAwZSswCisJWzEyNDVdCTkuNjc0NzQ1MjAyMDY0NTE0MmUtMQk5LjY3NDc0
NDYwNjAxODA2NjRlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTYwODQ5NDI4MzQ3MTAzNGUt
OAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5hbmQgMTEyNSBtb3JlIGVycm9ycy4KKwlNYXgg
QWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0IGluZGV4IG9mIDcxNS4KKwlNYXgg
UmVsRXJyb3Igb2YgMS4xNjgwNTYzMjI3NDE0Mzc2ZS03IGF0IGluZGV4IG9mIDExOTk4LgorCVsx
MTk5OF0JNS4xMDI4OTE5MjE5OTcwNzAzZS0xCTUuMTAyODkxMzI1OTUwNjIyNmUtMQk1Ljk2MDQ2
NDQ3NzUzOTA2MjVlLTgJMS4xNjgwNTYzMjI3NDE0Mzc2ZS03CTAuMDAwMDAwMDAwMDAwMDAwMGUr
MAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIENhbmNlbGxp
bmcgMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAg
RXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBU
b1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4g
YW4gZXJyb3Igb2YgMC4gCitQQVNTICAgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBlcXVhbHMgWzAu
NTEwMjA0MDc2NzY2OTY3OCwwLjUxMDMyODIzMzI0MjAzNDksMC41MTA0NTIzODk3MTcxMDIsMC41
MTA1NzY1NDYxOTIxNjkyLDAuNTEwNzAwNzAyNjY3MjM2MywwLjUxMDgyNDc5OTUzNzY1ODcsMC41
MTA5NDg5NTYwMTI3MjU4LDAuNTExMDczMTEyNDg3NzkzLDAuNTExMTk3MjY4OTYyODYwMSwwLjUx
MTMyMTQyNTQzNzkyNzIsMC41MTE0NDU1ODE5MTI5OTQ0LDAuNTExNTY5NzM4Mzg4MDYxNSwwLjUx
MTY5Mzg5NDg2MzEyODcsMC41MTE4MTgwNTEzMzgxOTU4LDAuNTExOTQyMTQ4MjA4NjE4MiwwLjUx
MjA2NjMwNDY4MzY4NTMuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFi
c29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNl
bGxpbmcgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDEuMjU1MTAyMDM4MzgzNDgzOS4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGlzIDEu
MjU1MTAyMDM4MzgzNDgzOSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTICAgM3JkIGxpbmVh
clJhbXAoMCwgMC41KSBlcXVhbHMgWzEuMjU1MTAyMDM4MzgzNDgzOSwxLjI1NDg5MjgyNjA4MDMy
MjMsMS4yNTQ2ODM2MTM3NzcxNjA2LDEuMjU0NDc0NTIwNjgzMjg4NiwxLjI1NDI2NTMwODM4MDEy
NywxLjI1NDA1NjA5NjA3Njk2NTMsMS4yNTM4NDY4ODM3NzM4MDM3LDEuMjUzNjM3NzkwNjc5OTMx
NiwxLjI1MzQyODU3ODM3Njc3LDEuMjUzMjE5MzY2MDczNjA4NCwxLjI1MzAxMDE1Mzc3MDQ0Njgs
MS4yNTI4MDEwNjA2NzY1NzQ3LDEuMjUyNTkxODQ4MzczNDEzLDEuMjUyMzgyNjM2MDcwMjUxNSwx
LjI1MjE3MzQyMzc2NzA4OTgsMS4yNTE5NjQzMzA2NzMyMTc4Li4uXSB3aXRoIGFuIGVsZW1lbnQt
d2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hv
bGQiOjB9LiAKK0ZBSUwgPCBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJd
IDEgb3V0IG9mIDcgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgb3V0
IG9mIDE2IHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5j
ZWwtYW5kLWhvbGQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2Vs
LWFuZC1ob2xkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE2YTBmZjEzMGRjYjg1ZGJmZTU4Y2Y2ZDkxMTlj
MmI2OTg2MzhiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
cGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwKQEAgLTAsMCArMSw4MjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgQ2FuY2VsVmFs
dWVzQW5kSG9sZEF0VGltZQorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8
L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAg
ICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDAu
NTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAg
ICAvLyBUaGUgZmlyc3QgZmV3IHRhc2tzIHRlc3QgdGhlIGNhbmNlbGxhdGlvbiBvZiBlYWNoIHJl
bGV2YW50IGF1dG9tYXRpb24KKyAgICAgIC8vIGZ1bmN0aW9uLiAgRm9yIHRoZSB0ZXN0LCBhIHNp
bXBsZSBsaW5lYXIgcmFtcCBmcm9tIDAgdG8gMSBpcyB1c2VkIHRvCisgICAgICAvLyBzdGFydCB0
aGluZ3Mgb2ZmLiAgVGhlbiB0aGUgYXV0b21hdGlvbiB0byBiZSB0ZXN0ZWQgaXMgc2NoZWR1bGVk
IGFuZAorICAgICAgLy8gY2FuY2VsbGVkLgorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAg
ICAge2xhYmVsOiAnbGluZWFyJywgZGVzY3JpcHRpb246ICdDYW5jZWwgbGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAg
ICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBsaW5lYXJSYW1wVGVzdCgnbGluZWFyUmFtcFRvVmFsdWVB
dFRpbWUnKSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LAorICAg
ICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01CisgICAgICAgICAgICB9KS50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKAorICAgICAgICAgIHtsYWJlbDogJ2V4cG9uZW50aWFsJywgZGVzY3JpcHRpb246ICdDYW5j
ZWwgZXhwb25lbnRpYWxSYW1wQXRUaW1lJ30sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hv
dWxkKSB7CisgICAgICAgICAgICAvLyBDYW5jZWwgYW4gZXhwb25lbnRpYWwgcmFtcC4gIFRoZSB0
aHJlc2hvbGRzIGFyZSBleHBlcmltZW50YWxseQorICAgICAgICAgICAgLy8gZGV0ZXJtaW5lZC4K
KyAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNl
bFRpbWUpIHsKKyAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAg
ICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBn
WzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxl
IGEgc2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAg
Z1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAg
ICAgIC8vIEFmdGVyIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYW4gZXhwb25lbnRpYWwgcmFt
cCB0byB0aGUgZW5kLgorICAgICAgICAgICAgICAvLyAoVGhpcyBpcyB0aGUgZXZlbnQgdGhhdCB3
aWxsIGJlIGJlIGNhbmNlbGxlZC4pCisgICAgICAgICAgICAgIGxldCB2MSA9IDAuMDAxOworICAg
ICAgICAgICAgICBsZXQgdDEgPSByZW5kZXJEdXJhdGlvbjsKKworICAgICAgICAgICAgICBnWzBd
LmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOworICAgICAgICAgICAg
ICBnWzFdLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOworCisgICAg
ICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKKyAgICAgICAgICAgICAg
ICAgIHYwICogTWF0aC5wb3codjEgLyB2MCwgKGNhbmNlbFRpbWUgLSB0MCkgLyAodDEgLSB0MCkp
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0
YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnZXhw
b25lbnRpYWxSYW1wVG9WYWx1ZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCisgICAgICAgICAg
ICAgICAgc3VtbWFyeTogJ2V4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUnLAorICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDog
MS44NjY0ZS02LAorICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogNS45NjA1ZS04CisgICAg
ICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKwor
ICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ3NldFRhcmdldCcsIGRlc2Ny
aXB0aW9uOiAnQ2FuY2VsIHNldFRhcmdldEF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRh
c2ssIHNob3VsZCkgeworICAgICAgICAgICAgLy8gQ2FuY2VsIGEgc2V0VGFyZ2V0IGV2ZW50Lgor
ICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2Vs
VGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgorICAgICAg
ICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIGdb
MV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUg
YSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgorICAgICAgICAgICAgICBn
WzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAgICAgICAg
Z1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisKKyAgICAgICAgICAg
ICAgLy8gQXQgdGhlIGVuZCBvZiB0aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGEgc2V0VGFyZ2V0
LiAgKFRoaXMgaXMKKyAgICAgICAgICAgICAgLy8gdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5j
ZWxsZWQuKQorICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgdDEg
PSB0MDsKKyAgICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMDU7CisKKyAgICAgICAg
ICAgICAgZ1swXS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDEsIHRpbWVDb25zdGFudCk7Cisg
ICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQxLCB0aW1lQ29uc3Rh
bnQpOworCisgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKKyAg
ICAgICAgICAgICAgICAgIHYxICsgKHYwIC0gdjEpICogTWF0aC5leHAoLShjYW5jZWxUaW1lIC0g
dDApIC8gdGltZUNvbnN0YW50KSk7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAgICAg
ICBhdXRvTWVzc2FnZTogJ3NldFRhcmdldEF0VGltZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnLCAn
ICsKKyAgICAgICAgICAgICAgICAgICAgdGltZUNvbnN0YW50ICsgJyknLAorICAgICAgICAgICAg
ICAgIHN1bW1hcnk6ICdzZXRUYXJnZXRBdFRpbWUnLAorICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogNC41MjY3ZS03LCAgLy8g
MS4xMzE3ZS03LAorICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogNC41MjY3ZS03CisgICAg
ICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKwor
ICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ3NldFZhbHVlQ3VydmUnLCBk
ZXNjcmlwdGlvbjogJ0NhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lJ30sCisgICAgICAgICAgZnVu
Y3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBDYW5jZWwgYSBzZXRWYWx1ZUN1
cnZlIGV2ZW50LgorICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYw
LCB0MCwgY2FuY2VsVGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0
byAwLgorICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAg
ICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAg
Ly8gU2NoZWR1bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgorICAg
ICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAg
ICAgICAgICAgICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisK
KyAgICAgICAgICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFZh
bHVlc0N1cnZlLiAoVGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgLy8gZXZlbnQgdGhhdCB3aWxs
IGJlIGNhbmNlbGxlZC4pCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAg
IGxldCBkdXJhdGlvbiA9IHJlbmRlckR1cmF0aW9uIC0gdDA7CisKKyAgICAgICAgICAgICAgLy8g
Rm9yIHNpbXBsaWNpdHksIGEgMi1wb2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5lYXIgaW50ZXJw
b2xhdGVkCisgICAgICAgICAgICAgIC8vIHJlc3VsdC4KKyAgICAgICAgICAgICAgbGV0IGN1cnZl
ID0gRmxvYXQzMkFycmF5LmZyb20oW3YwLCAwXSk7CisKKyAgICAgICAgICAgICAgZ1swXS5nYWlu
LnNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7CisgICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworCisg
ICAgICAgICAgICAgIGxldCBpbmRleCA9CisgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKChj
dXJ2ZS5sZW5ndGggLSAxKSAvIGR1cmF0aW9uICogKGNhbmNlbFRpbWUgLSB0MCkpOworCisgICAg
ICAgICAgICAgIGxldCBjdXJ2ZVBvaW50c1BlckZyYW1lID0KKyAgICAgICAgICAgICAgICAgIChj
dXJ2ZS5sZW5ndGggLSAxKSAvIGR1cmF0aW9uIC8gc2FtcGxlUmF0ZTsKKyAgICAgICAgICAgICAg
bGV0IHZpcnR1YWxJbmRleCA9CisgICAgICAgICAgICAgICAgICAoY2FuY2VsVGltZSAtIHQwKSAq
IHNhbXBsZVJhdGUgKiBjdXJ2ZVBvaW50c1BlckZyYW1lOworCisgICAgICAgICAgICAgIGxldCBk
ZWx0YSA9IHZpcnR1YWxJbmRleCAtIGluZGV4OworICAgICAgICAgICAgICBleHBlY3RlZENvbnN0
YW50ID0gY3VydmVbMF0gKyAoY3VydmVbMV0gLSBjdXJ2ZVswXSkgKiBkZWx0YTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3Rl
ZENvbnN0YW50LAorICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2ZUF0
VGltZShbJyArIGN1cnZlICsgJ10sICcgKyB0MCArCisgICAgICAgICAgICAgICAgICAgICcsICcg
KyBkdXJhdGlvbiArICcpJywKKyAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVDdXJ2
ZUF0VGltZScsCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAg
ICAgIHZhbHVlVGhyZXNob2xkOiA5LjUzNjhlLTksCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNo
b2xkOiAwCisgICAgICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAg
ICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHsKKyAgICAgICAgICAg
IGxhYmVsOiAnc2V0VmFsdWVDdXJ2ZSBhZnRlciBlbmQnLAorICAgICAgICAgICAgZGVzY3JpcHRp
b246ICdDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSBhZnRlciB0aGUgZW5kJworICAgICAgICAg
IH0sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICBjYW5j
ZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAg
ICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVl
QXRUaW1lKDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciBy
YW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJS
YW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFy
UmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0aGUg
bGluZWFyIHJhbXAsIHNjaGVkdWxlIGEgc2V0VmFsdWVzQ3VydmUuIChUaGlzIGlzIHRoZQorICAg
ICAgICAgICAgICAvLyBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikgIE1ha2Ugc3VyZSB0
aGUgY3VydmUgZW5kcyBiZWZvcmUKKyAgICAgICAgICAgICAgLy8gdGhlIGNhbmNlbGxhdGlvbiB0
aW1lLgorICAgICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgZHVyYXRp
b24gPSBjYW5jZWxUaW1lIC0gdDAgLSAwLjEyNTsKKworICAgICAgICAgICAgICAvLyBGb3Igc2lt
cGxpY2l0eSwgYSAyLXBvaW50IGN1cnZlIHNvIHdlIGdldCBhIGxpbmVhciBpbnRlcnBvbGF0ZWQK
KyAgICAgICAgICAgICAgLy8gcmVzdWx0LgorICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9h
dDMyQXJyYXkuZnJvbShbdjAsIDBdKTsKKworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFs
dWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1sxXS5n
YWluLnNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7CisKKyAgICAgICAg
ICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IGN1cnZlWzFdOworICAgICAgICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisg
ICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lKFsnICsgY3Vy
dmUgKyAnXSwgJyArIHQwICsKKyAgICAgICAgICAgICAgICAgICAgJywgJyArIGR1cmF0aW9uICsg
JyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lJywKKyAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJl
c2hvbGQ6IDAsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCisgICAgICAgICAgICB9
KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgLy8g
U3BlY2lhbCBjYXNlIHdoZXJlIHdlIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFuZCB0aGVyZSBpcyBu
byBlYXJsaWVyCisgICAgICAvLyBhdXRvbWF0aW9uIGV2ZW50LiAgVGhpcyB0ZXN0cyB0aGF0IHdl
IHBpY2sgdXAgdGhlIHN0YXJ0aW5nIHBvaW50CisgICAgICAvLyBjb3JyZWN0bHkgZnJvbSB0aGUg
bGFzdCBzZXR0aW5nIG9mIHRoZSBBdWRpb1BhcmFtIHZhbHVlIGF0dHJpYnV0ZS4KKworCisgICAg
ICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAgICAgICAgbGFiZWw6ICdpbml0aWFs
IHNldFRhcmdldCcsCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NhbmNlbCB3aXRoIGluaXRp
YWwgc2V0VGFyZ2V0QXRUaW1lJworICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24odGFz
aywgc2hvdWxkKSB7CisgICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywg
djAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAg
ICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAwLjE7CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi52
YWx1ZSA9IDE7CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQw
LCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBnWzFdLmdhaW4udmFsdWUgPSAxOworICAg
ICAgICAgICAgICBnWzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50
KTsKKworICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAor
ICAgICAgICAgICAgICAgICAgdjEgKyAodjAgLSB2MSkgKiBNYXRoLmV4cCgtKGNhbmNlbFRpbWUg
LSB0MCkgLyB0aW1lQ29uc3RhbnQpKTsKKworICAgICAgICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAg
ICAgICAgYXV0b01lc3NhZ2U6ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsgJywgJyArIHQwICsg
JywgJyArCisgICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKKyAgICAgICAg
ICAgICAgICBzdW1tYXJ5OiAnSW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUnLAorICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogMS4y
MzIwZS02LAorICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMS4yMzIwZS02CisgICAgICAg
ICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAg
ICAgLy8gVGVzdCBhdXRvbWF0aW9ucyBzY2hlZHVsZWQgYWZ0ZXIgdGhlIGNhbGwgdG8gY2FuY2Vs
QW5kSG9sZEF0VGltZS4KKyAgICAgIC8vIFZlcnkgc2ltaWxhciB0byB0aGUgYWJvdmUgdGVzdHMs
IGJ1dCB3ZSBhbHNvIHNjaGVkdWxlIGFuIGV2ZW50IGFmdGVyCisgICAgICAvLyBjYW5jZWxBbmRI
b2xkQXRUaW1lIGFuZCB2ZXJpZnkgdGhhdCBjdXJ2ZSBhZnRlciBjYW5jZWxsYXRpb24gaGFzCisg
ICAgICAvLyB0aGUgY29ycmVjdCB2YWx1ZXMuCisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAg
ICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3Bvc3QgY2FuY2VsOiBMaW5lYXInLAorICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICdMaW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcnCisgICAgICAg
ICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIC8v
IFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBi
ZQorICAgICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxlIGFub3RoZXIgbGluZWFy
IHJhbXAgYWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBjYW5jZWxsYXRpb24uCisgICAgICAgICAg
ICBjYW5jZWxUZXN0KAorICAgICAgICAgICAgICAgIHNob3VsZCwKKyAgICAgICAgICAgICAgICBs
aW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWxsYXRpb24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUn
KSwKKyAgICAgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwgY3VydmVUaHJl
c2hvbGQ6IDguMzk5OGUtNX0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGlt
ZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhl
IGxpbmVhciByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IgZ1syXSwKKyAgICAgICAg
ICAgICAgICAgIC8vIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENv
bnN0YW50LgorICAgICAgICAgICAgICAgICAgbGV0IHYyID0gMjsKKyAgICAgICAgICAgICAgICAg
IGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKKyAgICAgICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICAgICAgZ1sy
XS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAg
ICAgICAgICAgICAgICAgZ1syXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7
CisgICAgICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICBjb25zdGFu
dEVuZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0
IGxpbmVhclJhbXAoJyArIHYyICsgJywgJyArIHQyICsgJyknCisgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJp
bmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAg
ICAgeworICAgICAgICAgICAgbGFiZWw6ICdwb3N0IGNhbmNlbDogRXhwb25lbnRpYWwnLAorICAg
ICAgICAgICAgZGVzY3JpcHRpb246ICdFeHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2VsbGluZycK
KyAgICAgICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAg
ICAgICAgLy8gUnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVhclJhbXAgYXMgdGhlIGV2
ZW50IHRvIGJlCisgICAgICAgICAgICAvLyBjYW5jZWxsZWQuIFRoZW4gc2NoZWR1bGUgYW4gZXhw
b25lbnRpYWwgcmFtcCBhZnRlciB0aGUKKyAgICAgICAgICAgIC8vIGNhbmNlbGxhdGlvbi4KKyAg
ICAgICAgICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAg
ICAgICAgIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVl
QXRUaW1lJyksCisgICAgICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1
cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNh
bmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgICAgIC8vIFNjaGVk
dWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKKyAg
ICAgICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBi
eSBleHBlY3RlZENvbnN0YW50LgorICAgICAgICAgICAgICAgICAgbGV0IHYyID0gMjsKKyAgICAg
ICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKKyAgICAgICAgICAgICAg
ICAgIGdbMF0uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAg
ICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwg
Y2FuY2VsVGltZSk7CisgICAgICAgICAgICAgICAgICBnWzJdLmdhaW4uZXhwb25lbnRpYWxSYW1w
VG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAorICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlOiAnUG9zdCBleHBvbmVudGlhbFJhbXAoJyArIHYyICsgJywgJyArIHQy
ICsgJyknCisgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0pCisgICAgICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisg
ICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlJywgZnVuY3Rpb24odGFz
aywgc2hvdWxkKSB7CisgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5l
YXJSYW1wIGFzIHRoZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCisgICAgICAgIC8vIFRoZW4gc2No
ZWR1bGUgYSBzZXRWYWx1ZUN1cnZlIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAgIGNh
bmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNl
bCBzZXRWYWx1ZUN1cnZlQXRUaW1lJyksCisgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDgu
Mzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCisgICAgICAgICAgICBmdW5jdGlv
bihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgIC8vIFNj
aGVkdWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IK
KyAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5
IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAw
LjEyNTsKKyAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gMC4xMjU7CisgICAgICAgICAgICAg
IGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFsuMTI1LCAyXSk7CisgICAgICAgICAgICAg
IGdbMF0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MiwgZHVyYXRpb24pOworICAg
ICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2Fu
Y2VsVGltZSk7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1
cnZlLCB0MiwgZHVyYXRpb24pOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
ICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICBtZXNzYWdl
OiAnUG9zdCBzZXRWYWx1ZUN1cnZlKFsnICsgY3VydmUgKyAnXSwgJyArIHQyICsgJywgJyArCisg
ICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uICsgJyknLAorICAgICAgICAgICAgICAgIGVycm9y
VGhyZXNob2xkOiA4LjM5OThlLTUKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdwb3N0IGNhbmNlbDogc2V0VGFyZ2V0JywgZnVuY3Rpb24odGFzaywg
c2hvdWxkKSB7CisgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJS
YW1wIGFzIHRoZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCisgICAgICAgIC8vIFRoZW4gc2NoZWR1
bGUgYSBzZXRUYXJnZXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KKyAgICAgICAgY2FuY2VsVGVz
dCgKKyAgICAgICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2VsIHNldFRh
cmdldEF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1
cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAorICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2Vs
VGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUg
ZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAg
ICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENv
bnN0YW50LgorICAgICAgICAgICAgICBsZXQgdjIgPSAwLjEyNTsKKyAgICAgICAgICAgICAgbGV0
IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAgICBsZXQgdGltZUNvbnN0YW50
ID0gMC4xOworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYyLCB0Miwg
dGltZUNvbnN0YW50KTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4
cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0
VGFyZ2V0QXRUaW1lKHYyLCB0MiwgdGltZUNvbnN0YW50KTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUgKyAwLjEyNSwK
KyAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBzZXRUYXJnZXRBdFRpbWUoJyArIHYyICsg
JywgJyArIHQyICsgJywgJyArCisgICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcp
JywKKyAgICAgICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC40MDM3ZS01CisgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQo
dGFzaykpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IHNl
dFZhbHVlJywgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgIC8vIFJ1biB0aGUgY2Fu
Y2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZSBjYW5jZWxsZWQu
CisgICAgICAgIC8vIFRoZW4gc2NoZWR1bGUgYSBzZXRUYXJnZXQgYWZ0ZXIgdGhlIGNhbmNlbGxh
dGlvbi4KKyAgICAgICAgY2FuY2VsVGVzdCgKKyAgICAgICAgICAgIHNob3VsZCwgbGluZWFyUmFt
cFRlc3QoJ1Bvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lJyksCisgICAgICAgICAgICB7dmFsdWVU
aHJlc2hvbGQ6IDguMzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCisgICAgICAg
ICAgICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAg
ICAgICAgIC8vIFNjaGVkdWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0
aGUgc2FtZSBmb3IKKyAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBv
aW50IGdpdmVuIGJ5IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB2MiA9IDAu
MTI1OworICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICBn
WzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7Cisg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGlt
ZSArIDAuMTI1LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IHNldFZhbHVlQXRUaW1l
KCcgKyB2MiArICcsICcgKyB0MiArICcpJworICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
fSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoJ2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0JywgKHRhc2ssIHNo
b3VsZCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZs
aW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0
ZSk7CisgICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7
CisgICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNy
Yy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRU
YXJnZXRBdFRpbWUoMCwgMC43NSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAgICAgICAvLyBO
b3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAgc3JjLm9mZnNl
dC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBz
cmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAg
ICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdl
dENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQg
d2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAgICAgICAvLyBj
b25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKGFjdHVhbCwgJ0FmdGVyIGNhbmNlbGxpbmcg
ZnV0dXJlIHNldFRhcmdldCBldmVudCwgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5iZUNv
bnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRh
c2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2Nh
bmNlbCBzZXRUYXJnZXQgbm93JywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBjb25zdCBj
b250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1
cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnN0IHNyYyA9IG5l
dyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7CisgICAgICAgIHNyYy5jb25uZWN0KGNvbnRl
eHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41
LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRUYXJnZXRBdFRpbWUoMCwgMC41ICogcmVuZGVy
RHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUg
c2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICog
cmVuZGVyRHVyYXRpb24pOworCisgICAgICAgIHNyYy5zdGFydCgpOworICAgICAgICBjb250ZXh0
LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAg
ICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAg
ICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNo
b3VsZCBiZSBhCisgICAgICAgICAgICAgIC8vIGNvbnN0YW50LgorICAgICAgICAgICAgICBzaG91
bGQoCisgICAgICAgICAgICAgICAgICBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAnQWZ0ZXIg
Y2FuY2VsbGluZyBzZXRUYXJnZXQgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgnY2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7
CisgICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7Cisg
ICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5v
ZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1
ZUN1cnZlQXRUaW1lKFstMSwgMV0sIDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAg
ICAgLy8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNy
Yy5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAg
ICAgICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAg
ICAgICAgICAgLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1
ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0
VGFyZ2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAg
ICAgLy8gY29uc3RhbnQuCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAg
IGFjdHVhbCwgJ0FmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91
dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKKyAgICAg
ICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAg
ICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBub3cnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAg
bmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBz
YW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShj
b250ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAg
ICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOworICAgICAgICBzcmMub2Zm
c2V0LnNldFZhbHVlQ3VydmVBdFRpbWUoWy0xLCAxXSwgMC41ICogcmVuZGVyRHVyYXRpb24sIDAu
MSk7CisgICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0Lgor
ICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRp
b24pOworCisgICAgICAgIHNyYy5zdGFydCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVy
aW5nKCkKKyAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBh
Y3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIC8vIEJlY2F1
c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCisg
ICAgICAgICAgICAgIC8vIGNvbnN0YW50LgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAg
ICAgICAgICAgICBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAnQWZ0ZXIgY2FuY2VsbGluZyBj
dXJyZW50IHNldFZhbHVlQ3VydmUgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgKKyAgICAgICAgeworICAgICAgICAgIGxhYmVsOiAnbGluZWFyLCBjYW5j
ZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXInLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2No
ZWR1bGVzIDMgbGluZWFyIHJhbXBzLCBjYW5jZWxsaW5nIDIgb2YgdGhlbSwgJworICAgICAgICAg
ICAgKyAnc28gdGhhdCB3ZSBlbmQgdXAgd2l0aCAyIGNhbmNlbCBldmVudHMgbmV4dCB0byBlYWNo
IG90aGVyJworICAgICAgICB9LAorICAgICAgICAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
ICAgY2FuY2VsVGVzdDIoCisgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICBsaW5lYXJS
YW1wVGVzdCgnMXN0IGxpbmVhclJhbXAnKSwKKyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDog
MCwgY3VydmVUaHJlc2hvbGQ6IDB9LAorICAgICAgICAgICAgKGcsIGNhbmNlbFRpbWUsIGV4cGVj
dGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUyKSA9PiB7CisgICAgICAgICAgICAgIC8vIFJhbXAgZnJv
bSBmaXJzdCBjYW5jZWwgdGltZSB0byB0aGUgZW5kIHdpbGwgYmUgY2FuY2VsbGVkIGF0CisgICAg
ICAgICAgICAgIC8vIHNlY29uZCBjYW5jZWwgdGltZS4KKyAgICAgICAgICAgICAgY29uc3QgdjEg
PSBleHBlY3RlZENvbnN0YW50OworICAgICAgICAgICAgICBjb25zdCB0MSA9IGNhbmNlbFRpbWU7
CisgICAgICAgICAgICAgIGNvbnN0IHYyID0gMjsKKyAgICAgICAgICAgICAgY29uc3QgdDIgPSBy
ZW5kZXJEdXJhdGlvbjsKKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2
MSwgdDEpOworICAgICAgICAgICAgICBnWzJdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUo
djIsIHQyKTsKKworICAgICAgICAgICAgICBjb25zdCBleHBlY3RlZENvbnN0YW50MiA9CisgICAg
ICAgICAgICAgICAgYXVkaW9QYXJhbUxpbmVhclJhbXAoY2FuY2VsVGltZTIsIHYxLCB0MSwgdjIs
IHQyKTsKKworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50
RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBgMm5kIGxpbmVh
clJhbXAoJHt2Mn0sICR7dDJ9KWAsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDIK
KyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAoZywgY2FuY2Vs
VGltZTIsIGV4cGVjdGVkQ29uc3RhbnQyKSA9PiB7CisgICAgICAgICAgICAgIC8vIFJhbXAgZnJv
bSBzZWNvbmQgY2FuY2VsIHRpbWUgdG8gdGhlIGVuZC4KKyAgICAgICAgICAgICAgY29uc3QgdjMg
PSAwOworICAgICAgICAgICAgICBjb25zdCB0MyA9IHJlbmRlckR1cmF0aW9uOworICAgICAgICAg
ICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKKyAgICAgICAg
ICAgICAgZ1szXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQyLCBjYW5jZWxU
aW1lMik7CisgICAgICAgICAgICAgIGdbM10uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2
MywgdDMpOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50
RW5kVGltZTI6IGNhbmNlbFRpbWUyLAorICAgICAgICAgICAgICAgIG1lc3NhZ2UyOiBgM3JkIGxp
bmVhclJhbXAoJHt2M30sICR7dDN9KWAsCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9
KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgICB9KTsKKwor
ICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIC8vIENvbW1vbiBmdW5jdGlvbiBmb3IgZG9pbmcg
YSBsaW5lYXJSYW1wIHRlc3QuICBUaGlzIGp1c3QgZG9lcyBhIGxpbmVhcgorICAgICAgLy8gcmFt
cCBmcm9tIDAgdG8gdjAgYXQgZnJvbSB0aW1lIDAgdG8gdDAuICBUaGVuIGFub3RoZXIgbGluZWFy
IHJhbXAgaXMKKyAgICAgIC8vIHNjaGVkdWxlZCBmcm9tIHYwIHRvIDAgZnJvbSB0aW1lIHQwIHRv
IHQxLiAgVGhpcyBpcyB0aGUgcmFtcCB0aGF0IGlzIHRvCisgICAgICAvLyBiZSBjYW5jZWxsZWQu
CisgICAgICBmdW5jdGlvbiBsaW5lYXJSYW1wVGVzdChtZXNzYWdlKSB7CisgICAgICAgIHJldHVy
biBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICBnWzBdLmdhaW4u
c2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1l
KDAsIDApOworICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwg
dDApOworICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDAp
OworCisgICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICBsZXQgdDEgPSByZW5kZXJEdXJh
dGlvbjsKKyAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQx
KTsKKyAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsK
KworICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPQorICAgICAgICAgICAgICBNYXRoLmZyb3Vu
ZCh2MCArICh2MSAtIHYwKSAqIChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKTsKKworICAg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENv
bnN0YW50LAorICAgICAgICAgICAgYXV0b01lc3NhZ2U6CisgICAgICAgICAgICAgICAgbWVzc2Fn
ZSArICc6IGxpbmVhclJhbXBUb1ZhbHVlKCcgKyB2MSArICcsICcgKyB0MSArICcpJywKKyAgICAg
ICAgICAgIHN1bW1hcnk6IG1lc3NhZ2UsCisgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAg
fQorCisgICAgICAvLyBSdW4gdGhlIGNhbmNlbGxhdGlvbiB0ZXN0LiBBIHNldCBvZiBhdXRvbWF0
aW9ucyBpcyBjcmVhdGVkIGFuZAorICAgICAgLy8gY2FuY2VsZWQuCisgICAgICAvLworICAgICAg
Ly8gfHRlc3RlckZ1bmN0aW9ufCBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBhdXRv
bWF0aW9uIHRvIGJlCisgICAgICAvLyB0ZXN0ZWQuICBJdCBpcyBnaXZlbiBhbiBhcnJheSBvZiAz
IGdhaW4gbm9kZXMsIHRoZSB2YWx1ZSBhbmQgdGltZSBvZiBhbgorICAgICAgLy8gaW5pdGlhbCBs
aW5lYXIgcmFtcCwgYW5kIHRoZSB0aW1lIHdoZXJlIHRoZSBjYW5jZWxsYXRpb24gc2hvdWxkIG9j
Y3VyLgorICAgICAgLy8gVGhlIGZ1bmN0aW9uIG11c3QgZG8gdGhlIGF1dG9tYXRpb25zIGZvciB0
aGUgZmlyc3QgdHdvIGdhaW4gbm9kZXMuICBJdAorICAgICAgLy8gbXVzdCByZXR1cm4gYSBkaWN0
aW9uYXJ5IHdpdGggfGV4cGVjdGVkQ29uc3RhbnR8IGJlaW5nIHRoZSB2YWx1ZSBhdCB0aGUKKyAg
ICAgIC8vIGNhbmNlbGxhdGlvbiB0aW1lLCB8YXV0b01lc3NhZ2V8IGZvciBtZXNzYWdlIHRvIGRl
c2NyaWJlIHRoZSB0ZXN0LCBhbmQKKyAgICAgIC8vIHxzdW1tYXJ5fCBmb3IgZ2VuZXJhbCBzdW1t
YXJ5IG1lc3NhZ2UgdG8gYmUgcHJpbnRlZCBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgLy8gdGVz
dC4KKyAgICAgIC8vCisgICAgICAvLyB8dGhyZXNob2xkT3B0aW9uc3wgaXMgYSBwcm9wZXJ0eSBi
YWcgdGhhdCBzcGVjaWZpZXMgdGhlIGVycm9yIHRocmVzaG9sZAorICAgICAgLy8gdG8gdXNlLiB8
dGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBm
b3IKKyAgICAgIC8vIGNvbXBhcmluZyB0aGUgYWN0dWFsIGNvbnN0YW50IG91dHB1dCBhZnRlciBj
YW5jZWxsaW5nIHRvIHRoZSBleHBlY3RlZAorICAgICAgLy8gdmFsdWUuICB8dGhyZXNob2xkT3B0
aW9ucy5jdXJ2ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBmb3IKKyAgICAgIC8v
IGNvbXBhcmluZyB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCBhdXRvbWF0aW9uIGN1cnZlcyBiZWZv
cmUgdGhlCisgICAgICAvLyBjYW5jZWxhdGlvbiBwb2ludC4KKyAgICAgIC8vCisgICAgICAvLyBG
b3IgY2FuY2VsbGF0aW9uIHRlc3RzLCB8cG9zdENhbmNlbFRlc3R8IGlzIGEgZnVuY3Rpb24gdGhh
dCBzY2hlZHVsZXMKKyAgICAgIC8vIHNvbWUgYXV0b21hdGlvbiBhZnRlciB0aGUgY2FuY2VsbGF0
aW9uLiAgSXQgdGFrZXMgMyBhcmd1bWVudHM6IGFuIGFycmF5CisgICAgICAvLyBvZiB0aGUgZ2Fp
biBub2RlcywgdGhlIGNhbmNlbGxhdGlvbiB0aW1lLCBhbmQgdGhlIGV4cGVjdGVkIHZhbHVlIGF0
IHRoZQorICAgICAgLy8gY2FuY2VsbGF0aW9uIHRpbWUuICBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0
dXJuIGEgZGljdGlvbmFyeSBjb25zaXN0aW5nCisgICAgICAvLyBvZiB8Y29uc3RhbnRFbmR0aW1l
fCBpbmRpY2F0aW5nIHdoZW4gdGhlIGhlbGQgY29uc3RhbnQgZnJvbQorICAgICAgLy8gY2FuY2Vs
bGF0aW9uIHN0b3BzIGJlaW5nIGNvbnN0YW50LCB8bWVzc2FnZXwgZ2l2aW5nIGEgc3VtbWFyeSBv
ZiB3aGF0CisgICAgICAvLyBhdXRvbWF0aW9uIGlzIGJlaW5nIHVzZWQsIGFuZCB8ZXJyb3JUaHJl
c2hvbGR8IHRoYXQgaXMgdGhlIGVycm9yCisgICAgICAvLyB0aHJlc2hvbGQgYmV0d2VlbiB0aGUg
ZXhwZWN0ZWQgY3VydmUgYW5kIHRoZSBhY3R1YWwgY3VydmUuCisgICAgICAvLworICAgICAgZnVu
Y3Rpb24gY2FuY2VsVGVzdCgKKyAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0aW9uLCB0aHJl
c2hvbGRPcHRpb25zLCBwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAvLyBDcmVhdGUgYSBjb250
ZXh0IHdpdGggdGhyZWUgY2hhbm5lbHMuICBDaGFubmVsIDAgaXMgdGhlIHRlc3QgY2hhbm5lbAor
ICAgICAgICAvLyBjb250YWluaW5nIHRoZSBhY3R1YWwgb3V0cHV0IHRoYXQgaW5jbHVkZXMgdGhl
IGNhbmNlbGxhdGlvbiBvZgorICAgICAgICAvLyBldmVudHMuICBDaGFubmVsIDEgaXMgdGhlIGV4
cGVjdGVkIGRhdGEgdXB0byB0aGUgY2FuY2VsbGF0aW9uIHNvIHdlCisgICAgICAgIC8vIGNhbiB2
ZXJpZnkgdGhlIGNhbmNlbGxhdGlvbiBwcm9kdWNlZCB0aGUgY29ycmVjdCByZXN1bHQuICBDaGFu
bmVsIDIKKyAgICAgICAgLy8gaXMgZm9yIHZlcmlmeWluZyBldmVudHMgaW5zZXJ0ZWQgYWZ0ZXIg
dGhlIGNhbmNlbGxhdGlvbiBzbyB3ZSBjYW4KKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgYXV0b21h
dGlvbnMgYXJlIGNvcnJlY3RseSBnZW5lcmF0ZWQgYWZ0ZXIgdGhlCisgICAgICAgIC8vIGNhbmNl
bGxhdGlvbiBwb2ludC4KKyAgICAgICAgbGV0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMywgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVS
YXRlKTsKKworICAgICAgICAvLyBUZXN0IHNvdXJjZSBpcyBhIGNvbnN0YW50IHNpZ25hbAorICAg
ICAgICBsZXQgc3JjID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc3Jj
LmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBz
cmMubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gV2UnbGwgZG8gdGhlIGF1dG9tYXRpb24gdGVz
dHMgd2l0aCB0aHJlZSBnYWluIG5vZGVzLiAgT25lIChnMCkgd2lsbAorICAgICAgICAvLyBoYXZl
IGNhbmNlbEFuZEhvbGRBdFRpbWUgYW5kIHRoZSBvdGhlciAoZzEpIHdpbGwgbm90LiAgZzEgaXMK
KyAgICAgICAgLy8gdXNlZCBhcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciB0aGF0IGF1dG9tYXRp
b24gdXAgdG8gdGhlCisgICAgICAgIC8vIGNhbmNlbGxhdGlvbiBwb2ludC4gIFRoZXkgc2hvdWxk
IGJlIHRoZSBzYW1lLiAgVGhlIHRoaXJkIG5vZGUgKGcyKSBpcworICAgICAgICAvLyB1c2VkIGZv
ciB0ZXN0aW5nIGF1dG9tYXRpb25zIGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24gcG9p
bnQsCisgICAgICAgIC8vIGlmIGFueS4gIGcyIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSB0
aGUgY2FuY2VsbGF0aW9uIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBlbmQgb2YgdGhlIHRlc3Qu
CisKKyAgICAgICAgbGV0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGxldCBn
MSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZzIgPSBjb250ZXh0LmNyZWF0
ZUdhaW4oKTsKKyAgICAgICAgbGV0IHYwID0gMTsKKyAgICAgICAgbGV0IHQwID0gMC4wMTsKKwor
ICAgICAgICBsZXQgY2FuY2VsVGltZSA9IHJlbmRlckR1cmF0aW9uIC8gMjsKKworICAgICAgICAv
LyBUZXN0IGF1dG9tYXRpb24gaGVyZS4gIFRoZSB0ZXN0ZXIgZnVuY3Rpb24gaXMgcmVzcG9uc2li
bGUgZm9yIHNldHRpbmcKKyAgICAgICAgLy8gdXAgdGhlIGdhaW4gbm9kZXMgd2l0aCB0aGUgZGVz
aXJlZCBhdXRvbWF0aW9uIGZvciB0ZXN0aW5nLgorICAgICAgICBhdXRvUmVzdWx0ID0gdGVzdGVy
RnVuY3Rpb24oW2cwLCBnMSwgZzJdLCB2MCwgdDAsIGNhbmNlbFRpbWUpOworICAgICAgICBsZXQg
ZXhwZWN0ZWRDb25zdGFudCA9IGF1dG9SZXN1bHQuZXhwZWN0ZWRDb25zdGFudDsKKyAgICAgICAg
bGV0IGF1dG9NZXNzYWdlID0gYXV0b1Jlc3VsdC5hdXRvTWVzc2FnZTsKKyAgICAgICAgbGV0IHN1
bW1hcnlNZXNzYWdlID0gYXV0b1Jlc3VsdC5zdW1tYXJ5OworCisgICAgICAgIC8vIENhbmNlbCBz
Y2hlZHVsZWQgZXZlbnRzIHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSB0ZXN0CisgICAg
ICAgIC8vIGF1dG9tYXRpb24uCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShj
YW5jZWxUaW1lKTsKKworICAgICAgICBsZXQgY29uc3RhbnRFbmRUaW1lOworICAgICAgICBpZiAo
cG9zdENhbmNlbFRlc3QpIHsKKyAgICAgICAgICBwb3N0UmVzdWx0ID0KKyAgICAgICAgICAgICAg
cG9zdENhbmNlbFRlc3QoW2cwLCBnMSwgZzJdLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50
KTsKKyAgICAgICAgICBjb25zdGFudEVuZFRpbWUgPSBwb3N0UmVzdWx0LmNvbnN0YW50RW5kVGlt
ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGluZyB0b2dldGhlciAo
d2l0aCBhIG1lcmdlciB0byBtYWtlIGEgdHdvLWNoYW5uZWwKKyAgICAgICAgLy8gcmVzdWx0KS4g
IENoYW5uZWwgMCBpcyB0aGUgdGVzdCAod2l0aCBjYW5jZWxBbmRIb2xkQXRUaW1lKSBhbmQKKyAg
ICAgICAgLy8gY2hhbm5lbCAxIGlzIHRoZSByZWZlcmVuY2UgKHdpdGhvdXQgY2FuY2VsQW5kSG9s
ZEF0VGltZSkuCisgICAgICAgIC8vIENoYW5uZWwgMSBpcyB1c2VkIHRvIHZlcmlmeSB0aGF0IGV2
ZXJ5dGhpbmcgdXAgdG8gdGhlIGNhbmNlbGxhdGlvbgorICAgICAgICAvLyBoYXMgdGhlIGNvcnJl
Y3QgdmFsdWVzLgorICAgICAgICBzcmMuY29ubmVjdChnMCk7CisgICAgICAgIHNyYy5jb25uZWN0
KGcxKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzIpOworICAgICAgICBsZXQgbWVyZ2VyID0gY29u
dGV4dC5jcmVhdGVDaGFubmVsTWVyZ2VyKDMpOworICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwg
MCwgMCk7CisgICAgICAgIGcxLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKyAgICAgICAgZzIuY29u
bmVjdChtZXJnZXIsIDAsIDIpOworICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3Rp
bmF0aW9uKTsKKworICAgICAgICAvLyBHbyEKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKGJ1ZmZlcikg
eworICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAg
ICAgICAgbGV0IGV4cGVjdGVkID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworCisgICAgICAg
ICAgLy8gVGhlIGFjdHVhbCBvdXRwdXQgc2hvdWxkIGJlIGEgY29uc3RhbnQgZnJvbSB0aGUgY2Fu
Y2VsIHRpbWUgdG8gdGhlCisgICAgICAgICAgLy8gZW5kLiAgV2UgdXNlIHRoZSBsYXN0IHZhbHVl
IG9mIHRoZSBhY3R1YWwgb3V0cHV0IGFzIHRoZSBjb25zdGFudCwKKyAgICAgICAgICAvLyBidXQg
d2UgYWxzbyB3YW50IHRvIGNvbXBhcmUgdGhhdCB3aXRoIHdoYXQgd2UgdGhvdWdodCBpdCBzaG91
bGQKKyAgICAgICAgICAvLyByZWFsbHkgYmUuCisKKyAgICAgICAgICBsZXQgY2FuY2VsRnJhbWUg
PSBNYXRoLmNlaWwoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgLy8gVmVy
aWZ5IHRoYXQgdGhlIGN1cnZlcyB1cCB0byB0aGUgY2FuY2VsIHRpbWUgYXJlICJpZGVudGljYWwi
LiAgVGhlCisgICAgICAgICAgLy8gc2hvdWxkIGJlIGJ1dCByb3VuZC1vZmYgbWF5IG1ha2UgdGhl
bSBkaWZmZXIgc2xpZ2h0bHkgZHVlIHRvIHRoZQorICAgICAgICAgIC8vIHdheSBjYW5jZWxsaW5n
IGlzIGRvbmUuCisgICAgICAgICAgbGV0IGVuZEZyYW1lID0gTWF0aC5mbG9vcihjYW5jZWxUaW1l
ICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWwu
c2xpY2UoMCwgZW5kRnJhbWUpLAorICAgICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8g
dGltZSAnICsgY2FuY2VsVGltZSkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQuc2xpY2UoMCwgZW5kRnJhbWUpLAorICAgICAgICAgICAg
ICAgICAge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLmN1cnZlVGhyZXNob2xk
fSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhlIG91dHB1dCBhZnRlciB0aGUgY2FuY2VsbGF0
aW9uIGlzIGEgY29uc3RhbnQuCisgICAgICAgICAgbGV0IGFjdHVhbFRhaWw7CisgICAgICAgICAg
bGV0IGNvbnN0YW50RW5kRnJhbWU7CisKKyAgICAgICAgICBpZiAocG9zdENhbmNlbFRlc3QpIHsK
KyAgICAgICAgICAgIGNvbnN0YW50RW5kRnJhbWUgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1l
ICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBhY3R1YWxUYWlsID0gYWN0dWFsLnNsaWNlKGNh
bmNlbEZyYW1lLCBjb25zdGFudEVuZEZyYW1lKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgYWN0dWFsVGFpbCA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSk7CisgICAgICAgICAg
fQorCisgICAgICAgICAgbGV0IGFjdHVhbENvbnN0YW50ID0gYWN0dWFsW2NhbmNlbEZyYW1lXTsK
KworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsVGFpbCwKKyAgICAgICAg
ICAgICAgJ0NhbmNlbGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxU
aW1lKQorICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQpOwor
CisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvbnN0YW50IGlzIHRoZSB2YWx1ZSB3ZSBl
eHBlY3QuCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWxDb25zdGFudCwK
KyAgICAgICAgICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVz
c2FnZSArICcgYXQgdGltZSAnICsKKyAgICAgICAgICAgICAgICAgIGNhbmNlbFRpbWUpCisgICAg
ICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
LAorICAgICAgICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRo
cmVzaG9sZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoZSBjdXJ2ZSBhZnRlciB0aGUgY29u
c3RhbnRFbmRUaW1lIG1hdGNoZXMgb3VyCisgICAgICAgICAgLy8gZXhwZWN0YXRpb25zLgorICAg
ICAgICAgIGlmIChwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAgICAgbGV0IGMyID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDIpOworICAgICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25z
dGFudEVuZEZyYW1lKSwgcG9zdFJlc3VsdC5tZXNzYWdlKQorICAgICAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgICAgICAgYzIuc2xpY2UoY29uc3RhbnRFbmRGcmFt
ZSksCisgICAgICAgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogcG9zdFJlc3VsdC5l
cnJvclRocmVzaG9sZCB8fCAwfSk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0K
KworICAgICAgLy8gU2ltaWxhciB0byBjYW5jZWxUZXN0LCBidXQgZG9lcyAyIGNhbmNlbHMuCisg
ICAgICBmdW5jdGlvbiBjYW5jZWxUZXN0MigKKyAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0
aW9uLCB0aHJlc2hvbGRPcHRpb25zLAorICAgICAgICAgIHBvc3RDYW5jZWxUZXN0LCBwb3N0Q2Fu
Y2VsVGVzdDIpIHsKKyAgICAgICAgLy8gQ2hhbm5lbCAwOiBBY3R1YWwgb3V0cHV0IHRoYXQgaW5j
bHVkZXMgdGhlIGNhbmNlbGxhdGlvbiBvZiBldmVudHMuCisgICAgICAgIC8vIENoYW5uZWwgMTog
RXhwZWN0ZWQgZGF0YSB1cCB0byB0aGUgZmlyc3QgY2FuY2VsbGF0aW9uLgorICAgICAgICAvLyBD
aGFubmVsIDI6IEV4cGVjdGVkIGRhdGEgZnJvbSAxc3QgY2FuY2VsbGF0aW9uIHRvIDJuZCBjYW5j
ZWxsYXRpb24uCisgICAgICAgIC8vIENoYW5uZWwgMzogRXhwZWN0ZWQgZGF0YSBmcm9tIDJuZCBj
YW5jZWxsYXRpb24gdG8gdGhlIGVuZC4KKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAg
ICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoNCwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
LCBzYW1wbGVSYXRlKTsKKworICAgICAgICBjb25zdCBzcmMgPSBjb250ZXh0LmNyZWF0ZUNvbnN0
YW50U291cmNlKCk7CisKKyAgICAgICAgLy8gZzA6IEFjdHVhbCBnYWluIHdoaWNoIHdpbGwgaGF2
ZSBjYW5jZWxBbmRIb2xkQXRUaW1lIGNhbGxlZCBvbiBpdAorICAgICAgICAvLyB0d2ljZS4KKyAg
ICAgICAgLy8gZzE6IEV4cGVjdGVkIGdhaW4gZnJvbSBzdGFydCB0byB0aGUgMXN0IGNhbmNlbC4K
KyAgICAgICAgLy8gZzI6IEV4cGVjdGVkIGdhaW4gZnJvbSAxc3QgY2FuY2VsIHRvIHRoZSAybmQg
Y2FuY2VsLgorICAgICAgICAvLyBnMzogRXhwZWN0ZWQgZ2FpbiBmcm9tIHRoZSAybmQgY2FuY2Vs
IHRvIHRoZSBlbmQuCisgICAgICAgIGNvbnN0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7Cisg
ICAgICAgIGNvbnN0IGcxID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGNvbnN0IGcy
ID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGNvbnN0IGczID0gY29udGV4dC5jcmVh
dGVHYWluKCk7CisgICAgICAgIGNvbnN0IHYwID0gMTsKKyAgICAgICAgY29uc3QgdDAgPSAwLjAx
OworCisgICAgICAgIGNvbnN0IGNhbmNlbFRpbWUxID0gcmVuZGVyRHVyYXRpb24gKiAwLjU7Cisg
ICAgICAgIGNvbnN0IGNhbmNlbFRpbWUyID0gcmVuZGVyRHVyYXRpb24gKiAwLjc1OworCisgICAg
ICAgIC8vIFJ1biB0ZXN0ZXJGdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUgMXN0IHJhbXAuCisgICAg
ICAgIGNvbnN0IHsKKyAgICAgICAgICBleHBlY3RlZENvbnN0YW50LCBhdXRvTWVzc2FnZSwgc3Vt
bWFyeU1lc3NhZ2V9ID0KKyAgICAgICAgICAgIHRlc3RlckZ1bmN0aW9uKFtnMCwgZzEsIGcyXSwg
djAsIHQwLCBjYW5jZWxUaW1lMSk7CisKKyAgICAgICAgLy8gMXN0IGNhbmNlbCwgY2FuY2VsbGlu
ZyB0aGUgMXN0IHJhbXAuCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShjYW5j
ZWxUaW1lMSk7CisKKyAgICAgICAgLy8gUnVuIHBvc3RDYW5jZWxUZXN0IHRvIGdlbmVyYXRlIHRo
ZSAybmQgcmFtcC4KKyAgICAgICAgY29uc3QgeworICAgICAgICAgIGNvbnN0YW50RW5kVGltZSwg
bWVzc2FnZSwgZXJyb3JUaHJlc2hvbGQgPSAwLCBleHBlY3RlZENvbnN0YW50Mn0gPQorICAgICAg
ICAgICAgcG9zdENhbmNlbFRlc3QoCisgICAgICAgICAgICAgIFtnMCwgZzEsIGcyXSwgY2FuY2Vs
VGltZTEsIGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUyKTsKKworICAgICAgICAvLyAybmQg
Y2FuY2VsLCBjYW5jZWxsaW5nIHRoZSAybmQgcmFtcC4KKyAgICAgICAgZzAuZ2Fpbi5jYW5jZWxB
bmRIb2xkQXRUaW1lKGNhbmNlbFRpbWUyKTsKKworICAgICAgICAvLyBSdW4gcG9zdENhbmNlbFRl
c3QyIHRvIGdlbmVyYXRlIHRoZSAzcmQgcmFtcC4KKyAgICAgICAgY29uc3Qge2NvbnN0YW50RW5k
VGltZTIsIG1lc3NhZ2UyfSA9CisgICAgICAgICAgcG9zdENhbmNlbFRlc3QyKFtnMCwgZzEsIGcy
LCBnM10sIGNhbmNlbFRpbWUyLCBleHBlY3RlZENvbnN0YW50Mik7CisKKyAgICAgICAgLy8gQ29u
bmVjdCBldmVyeXRoaW5nIHRvZ2V0aGVyCisgICAgICAgIHNyYy5jb25uZWN0KGcwKTsKKyAgICAg
ICAgc3JjLmNvbm5lY3QoZzEpOworICAgICAgICBzcmMuY29ubmVjdChnMik7CisgICAgICAgIHNy
Yy5jb25uZWN0KGczKTsKKyAgICAgICAgY29uc3QgbWVyZ2VyID0gY29udGV4dC5jcmVhdGVDaGFu
bmVsTWVyZ2VyKDQpOworICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwgMCwgMCk7CisgICAgICAg
IGcxLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKyAgICAgICAgZzIuY29ubmVjdChtZXJnZXIsIDAs
IDIpOworICAgICAgICBnMy5jb25uZWN0KG1lcmdlciwgMCwgMyk7CisgICAgICAgIG1lcmdlci5j
b25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIC8vIEdvIQorICAgICAgICBz
cmMuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRo
ZW4oZnVuY3Rpb24gKGJ1ZmZlcikgeworICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IGJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICBjb25zdCBleHBlY3RlZDEgPSBidWZmZXIuZ2V0
Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgY29uc3QgZXhwZWN0ZWQyID0gYnVmZmVyLmdldENo
YW5uZWxEYXRhKDIpOworICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMyA9IGJ1ZmZlci5nZXRDaGFu
bmVsRGF0YSgzKTsKKworICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMSA9IE1hdGguY2VpbChj
YW5jZWxUaW1lMSAqIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMiA9
IE1hdGguY2VpbChjYW5jZWxUaW1lMiAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgY29uc3Qg
Y29uc3RhbnRFbmRGcmFtZTEgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1lICogc2FtcGxlUmF0
ZSk7CisgICAgICAgICAgY29uc3QgY29uc3RhbnRFbmRGcmFtZTIgPSBNYXRoLmNlaWwoY29uc3Rh
bnRFbmRUaW1lMiAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgY29uc3QgYWN0dWFsVGFpbDEg
PSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUxLCBjb25zdGFudEVuZEZyYW1lMSk7CisgICAgICAg
ICAgY29uc3QgYWN0dWFsVGFpbDIgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUyLCBjb25zdGFu
dEVuZEZyYW1lMik7CisKKyAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDEgPSBhY3R1YWxb
Y2FuY2VsRnJhbWUxXTsKKyAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDIgPSBhY3R1YWxb
Y2FuY2VsRnJhbWUyXTsKKworICAgICAgICAgIC8vIFZlcmlmeSBmaXJzdCBzZWN0aW9uIGN1cnZl
CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGNhbmNlbEZy
YW1lMSksCisgICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8gdGltZSAnICsgY2FuY2Vs
VGltZTEpCisgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAgICAgIGV4cGVj
dGVkMS5zbGljZSgwLCBjYW5jZWxGcmFtZTEpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJl
c2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8v
IFZlcmlmeSB0aGF0IGEgdmFsdWUgd2FzIGhlbGQgYWZ0ZXIgMXN0IGNhbmNlbAorICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgIGFjdHVhbFRhaWwxLAorICAgICAgICAgICAgJ0NhbmNlbGxp
bmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxUaW1lMSkKKyAgICAgICAg
ICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFudDEpOworCisgICAgICAgICAgLy8g
VmVyaWZ5IHRoYXQgaGVsZCB2YWx1ZSBhZnRlciAxc3QgY2FuY2VsIHdhcyBjb3JyZWN0CisgICAg
ICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsQ29uc3RhbnQxLAorICAgICAgICAgICAg
J0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGlt
ZSAnICsKKyAgICAgICAgICAgIGNhbmNlbFRpbWUxKQorICAgICAgICAgICAgLmJlQ2xvc2VUbygK
KyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAgICAge3RocmVzaG9s
ZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZH0pOworCisgICAgICAgICAgLy8gVmVy
aWZ5IG1pZGRsZSBzZWN0aW9uIGN1cnZlCisgICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShj
b25zdGFudEVuZEZyYW1lMSwgY2FuY2VsRnJhbWUyKSwgbWVzc2FnZSkKKyAgICAgICAgICAgIC5i
ZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhwZWN0ZWQyLnNsaWNlKGNvbnN0YW50RW5k
RnJhbWUxLCBjYW5jZWxGcmFtZTIpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6
IGVycm9yVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBhIHZhbHVlIHdh
cyBoZWxkIGFmdGVyIDJuZCBjYW5jZWwKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBh
Y3R1YWxUYWlsMiwKKyAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBtZXNzYWdlICsgJyBhdCB0
aW1lICcgKyBjYW5jZWxUaW1lMikKKyAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1
YWxDb25zdGFudDIpOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgaGVsZCB2YWx1ZSBhZnRl
ciAybmQgY2FuY2VsIHdhcyBjb3JyZWN0CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAg
YWN0dWFsQ29uc3RhbnQyLAorICAgICAgICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxs
aW5nICcgKyBtZXNzYWdlICsgJyBhdCB0aW1lICcgKworICAgICAgICAgICAgY2FuY2VsVGltZTIp
CisgICAgICAgICAgICAuYmVDbG9zZVRvKAorICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
MiwKKyAgICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVz
aG9sZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IGVuZCBzZWN0aW9uIGN1cnZlCisgICAgICAg
ICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25zdGFudEVuZEZyYW1lMiksIG1lc3NhZ2UyKQorICAg
ICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICBleHBlY3RlZDMuc2xpY2Uo
Y29uc3RhbnRFbmRGcmFtZTIpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IGVy
cm9yVGhyZXNob2xkIHx8IDB9KTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+
CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Mzc3YmIwOTQxNmY1YmQ0MjE0ODkxYTQ1NmU3Mzli
NjlkN2RhMTFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0IEF1ZGlvUGFyYW0g
c2V0VmFsdWVDdXJ2ZUF0VGltZSgpIGZ1bmN0aW9uYWxpdHkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotUEFTUyBBbGwgMjAgdGVzdHMgc3RhcnRlZCBhbmQgZW5kZWQgYXQgdGhlIGNv
cnJlY3QgdGltZS4KLVBBU1MgQWxsIDIwIHRlc3RzIHBhc3NlZCB3aXRoaW4gYW4gYWNjZXB0YWJs
ZSB0b2xlcmFuY2UuCi1QQVNTIEF1ZGlvUGFyYW0gc2V0VmFsdWVDdXJ2ZUF0VGltZSgpIHRlc3Qg
cGFzc2VkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVD
dXJ2ZUF0VGltZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1
ZUN1cnZlQXRUaW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ODU3YjQ1
ZDBjNTJhN2YwYzM5NDU2MTg2YzE0OTc2YWI2YmRiNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1z
ZXRWYWx1ZUN1cnZlQXRUaW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3Rp
bmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3Rp
bmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigi
VGVzdCBBdWRpb1BhcmFtIHNldFZhbHVlQ3VydmVBdFRpbWUoKSBmdW5jdGlvbmFsaXR5LiIpOwot
Ci0vLyBQbGF5IGEgbG9uZyBEQyBzaWduYWwgb3V0IHRocm91Z2ggYW4gQXVkaW9HYWluTm9kZSBh
bmQgZm9yIGVhY2ggdGltZSBpbnRlcnZhbCBjYWxsCi0vLyBzZXRWYWx1ZUN1cnZlQXRUaW1lKCkg
dG8gc2V0IHRoZSB2YWx1ZXMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgaW50ZXJ2YWwuICBFYWNo
IGN1cnZlIGlzIGEgc2luZQotLy8gd2F2ZSwgYW5kIHdlIGFzc3VtZSB0aGF0IHRoZSB0aW1lIGlu
dGVydmFsIGlzIG5vdCBhbiBleGFjdCBtdWx0aXBsZSBvZiB0aGUgcGVyaW9kLiBUaGlzIGNhdXNl
cyBhCi0vLyBkaXNjb250aW51aXR5IGJldHdlZW4gdGltZSBpbnRlcnZhbHMgd2hpY2ggaXMgdXNl
ZCB0byB0ZXN0IHRpbWluZy4KLQotLy8gTnVtYmVyIG9mIHRlc3RzIHRvIHJ1bi4KLXZhciBudW1i
ZXJPZlRlc3RzID0gMjA7Ci0KLS8vIE1heCBhbGxvd2VkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg
cmVuZGVyZWQgZGF0YSBhbmQgdGhlIGV4cGVjdGVkIHJlc3VsdC4gIChUaGUgZXJyb3IgaXMgemVy
bwotLy8gYmVjYXVzZSB0aGUgcmVuZGVyZWQgY3VydmUgc2hvdWxkIHJlYWxseSBiZSBleGFjdGx5
IHRoZSBzYW1lIGFzIHRoZSByZWZlcmVuY2UuKQotdmFyIG1heEFsbG93ZWRFcnJvciA9IDA7Ci0K
LS8vIFRoZSBhbXBsaXR1ZGUgb2YgdGhlIHNpbmUgd2F2ZS4KLXZhciBzaW5lQW1wbGl0dWRlID0g
MTsKLQotLy8gRnJlcXVlbmN5IG9mIHRoZSBzaW5lIHdhdmUuCi12YXIgZnJlcUh6ID0gNDQwOwot
Ci0vLyBDdXJ2ZSB0byB1c2UgZm9yIHNldFZhbHVlQ3VydmVBdFRpbWUoKS4KLXZhciBjdXJ2ZTsK
LQotLy8gU2V0cyB0aGUgY3VydmUgZGF0YSBmb3IgdGhlIGVudGlyZSB0aW1lIGludGVydmFsLgot
ZnVuY3Rpb24gYXV0b21hdGlvbih2YWx1ZSwgc3RhcnRUaW1lLCBlbmRUaW1lKQotewotICAgIGdh
aW5Ob2RlLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgc3RhcnRUaW1lLCBlbmRUaW1l
IC0gc3RhcnRUaW1lKTsKLX0KLQotLy8gQ3JlYXRlIGEgc2luZSB3YXZlIG9mIHRoZSBzcGVjaWZp
ZWQgZHVyYXRpb24uCi1mdW5jdGlvbiBjcmVhdGVSZWZlcmVuY2VTaW5lQXJyYXkoc3RhcnRUaW1l
LCBlbmRUaW1lLCBzdGFydFZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkKLXsKLSAgICAvLyBJ
Z25vcmUgfHN0YXJ0VmFsdWV8IGFuZCB8ZW5kVmFsdWV8IGZvciB0aGUgc2luZSB3YXZlLgotICAg
IHJldHVybiBjcmVhdGVTaW5lV2F2ZUFycmF5KGVuZFRpbWUgLSBzdGFydFRpbWUsIGZyZXFIeiwg
c2luZUFtcGxpdHVkZSwgc2FtcGxlUmF0ZSk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSAKLXsK
LSAgICAvLyBUaGUgY3VydmUgb2YgdmFsdWVzIHRvIHVzZS4KLSAgICBjdXJ2ZSA9IGNyZWF0ZVNp
bmVXYXZlQXJyYXkodGltZUludGVydmFsLCBmcmVxSHosIHNpbmVBbXBsaXR1ZGUsIHNhbXBsZVJh
dGUpOwotCi0gICAgY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaW5lQW1wbGl0dWRlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKGspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRG9uJ3QgbmVlZCB0byBzZXQgdGhlIHZhbHVlLgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2V0VmFsdWVDdXJ2ZUF0VGltZSgpIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXhBbGxvd2VkRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlUmVmZXJlbmNlU2luZUFycmF5LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIgKiBNYXRoLlBJICogc2luZUFtcGxpdHVkZSAqIGZyZXFIeiAvIHNhbXBsZVJhdGUpOwot
fQotCi1ydW5UZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4K
LQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY2FuY2Vs
LXZhbHVlcy1jcmFzaC05MTMyMTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
Y2FuY2VsLXZhbHVlcy1jcmFzaC05MTMyMTctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZTE0
ODMyNjRkNjA4MTZiZjkwNTkzOTJmYTk0N2I0Y2Q3ZTYyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAK
K1BBU1MgRXhlY3V0aW5nICJjcmFzaCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbY3Jh
c2hdICAKK1BBU1MgPCBbY3Jhc2hdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYXNz
ZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFu
IHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NhbmNl
bC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5jZWwt
dmFsdWVzLWNyYXNoLTkxMzIxNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYjE1N2NiMDI4MDkwYTRlYzU0
Y2NkMzhmNjMzNjIyYTRkZjQxM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3Qg
aWYgY2FuY2VsaW5nIGV2ZW50cyBhZnRlciBzZXRUYXJnZXRBdFRpbWUgY3Jhc2hlcworICAgIDwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8gQXJiaXRyYXJ5IHBhcmFt
ZXRlcnMgZm9yIHRoZSBvZmZsaW5lIGNvbnRleHQuCisgICAgICBjb25zdCBzYW1wbGVSYXRlID0g
NDgwMDA7CisgICAgICBjb25zdCByZW5kZXJEdXJhdGlvbiA9IDE7CisgICAgICBjb25zdCBjaGFu
bmVscyA9IDI7CisgICAgICBjb25zdCByZW5kZXJGcmFtZXMgPSByZW5kZXJEdXJhdGlvbiAqIHNh
bXBsZVJhdGU7CisKKyAgICAgIGNvbnN0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigp
OworCisgICAgICBhdWRpdC5kZWZpbmUoJ2NyYXNoJywgKHRhc2ssIHNob3VsZCkgPT4geworICAg
ICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0
KGNoYW5uZWxzLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25zdCBzb3Vy
Y2UgPSBjb250ZXh0LmNyZWF0ZUNvbnN0YW50U291cmNlKCk7CisgICAgICAgIGNvbnN0IGFuYWx5
c2VyID0gY29udGV4dC5jcmVhdGVBbmFseXNlcigpOworICAgICAgICBzb3VyY2UuY29ubmVjdChh
bmFseXNlcik7CisKKyAgICAgICAgLy8gU2NoZWR1bGluZyB0aGUgZm9sbG93aW5nIGF0IGFuIGVh
cmxpZXIgdGltZSB0aGFuIGFib3ZlIGNhdXNlcyB0aGUKKyAgICAgICAgLy8gcGFnZSB0byBjcmFz
aCBpbiA3My4wLjM2MzguMC4gU2VlIGNyYnVnLmNvbS85MTMyMTcuCisgICAgICAgIHNvdXJjZS5v
ZmZzZXQuc2V0VmFsdWVBdFRpbWUoMSwgY29udGV4dC5jdXJyZW50VGltZSk7CisgICAgICAgIHNv
dXJjZS5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAsIGNvbnRleHQuY3VycmVudFRpbWUgKyAyLCAw
LjAwMDAxKTsKKyAgICAgICAgc291cmNlLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKGNvbnRl
eHQuY3VycmVudFRpbWUgKyAxLjk5OTk5KTsKKworICAgICAgICBzb3VyY2Uuc3RhcnQoY29udGV4
dC5jdXJyZW50VGltZSk7CisKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4o
KCkgPT4geworICAgICAgICAgIC8vIFNob3VsZCBmaW5pc2ggd2l0aG91dCBhIGNyYXNoLgorICAg
ICAgICAgIHRhc2suZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgIH0pOworCisgICAgICBhdWRp
dC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMzNmZThh
MjFmNWU3ZmNiZTRlM2QyZDJhNGM0YzNiODQwZDMwNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tcGFyYW0uanMKQEAgLTAsMCArMSw0NCBA
QAorLy8gRGVmaW5lIGZ1bmN0aW9ucyB0aGF0IGltcGxlbWVudCB0aGUgZm9ybXVsYXMgZm9yIEF1
ZGlvUGFyYW0gYXV0b21hdGlvbnMuCisKKy8vIEF1ZGlvUGFyYW0gbGluZWFyUmFtcCB2YWx1ZSBh
dCB0aW1lIHQgZm9yIGEgbGluZWFyIHJhbXAgYmV0d2VlbiAodDAsIHYwKSBhbmQKKy8vICh0MSwg
djEpLiAgSXQgaXMgYXNzdW1lZCB0aGF0IHQwIDw9IHQuICBSZXN1bHRzIGFyZSB1bmRlZmluZWQg
b3RoZXJ3aXNlLgorZnVuY3Rpb24gYXVkaW9QYXJhbUxpbmVhclJhbXAodCwgdjAsIHQwLCB2MSwg
dDEpIHsKKyAgaWYgKHQgPj0gdDEpCisgICAgcmV0dXJuIHYxOworICByZXR1cm4gKHYwICsgKHYx
IC0gdjApICogKHQgLSB0MCkgLyAodDEgLSB0MCkpCit9CisKKy8vIEF1ZGlvUGFyYW0gZXhwb25l
bnRpYWxSYW1wIHZhbHVlIGF0IHRpbWUgdCBmb3IgYW4gZXhwb25lbnRpYWwgcmFtcCBiZXR3ZWVu
CisvLyAodDAsIHYwKSBhbmQgKHQxLCB2MSkuIEl0IGlzIGFzc3VtZWQgdGhhdCB0MCA8PSB0LiAg
UmVzdWx0cyBhcmUgdW5kZWZpbmVkCisvLyBvdGhlcndpc2UuCitmdW5jdGlvbiBhdWRpb1BhcmFt
RXhwb25lbnRpYWxSYW1wKHQsIHYwLCB0MCwgdjEsIHQxKSB7CisgIGlmICh0ID49IHQxKQorICAg
IHJldHVybiB2MTsKKyAgcmV0dXJuIHYwICogTWF0aC5wb3codjEgLyB2MCwgKHQgLSB0MCkgLyAo
dDEgLSB0MCkpOworfQorCisvLyBBdWRpb1BhcmFtIHNldFRhcmdldCB2YWx1ZSBhdCB0aW1lIHQg
Zm9yIGEgc2V0VGFyZ2V0IGN1cnZlIHN0YXJ0aW5nIGF0ICh0MCwKKy8vIHYwKSB3aXRoIGEgZmlu
YWwgdmFsdWUgb2YgdkZhaW5hbCBhbmQgYSB0aW1lIGNvbnN0YW50IG9mIHRpbWVDb25zdGFudC4g
IEl0IGlzCisvLyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4gIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBv
dGhlcndpc2UuCitmdW5jdGlvbiBhdWRpb1BhcmFtU2V0VGFyZ2V0KHQsIHYwLCB0MCwgdkZpbmFs
LCB0aW1lQ29uc3RhbnQpIHsKKyAgcmV0dXJuIHZGaW5hbCArICh2MCAtIHZGaW5hbCkgKiBNYXRo
LmV4cCgtKHQgLSB0MCkgLyB0aW1lQ29uc3RhbnQpOworfQorCisvLyBBdWRpb1BhcmFtIHNldFZh
bHVlQ3VydmUgdmFsdWUgYXQgdGltZSB0IGZvciBhIHNldFZhbHVlQ3VydmUgc3RhcnRpbmcgYXQg
dGltZQorLy8gdDAgd2l0aCBjdXJ2ZSwgY3VydmUsIGFuZCBkdXJhdGlvbiBkdXJhdGlvbi4gIFRo
ZSBzYW1wbGUgcmF0ZSBpcyBzYW1wbGVSYXRlLgorLy8gSXQgaXMgYXNzdW1lZCB0aGF0IHQwIDw9
IHQuCitmdW5jdGlvbiBhdWRpb1BhcmFtU2V0VmFsdWVDdXJ2ZSh0LCBjdXJ2ZSwgdDAsIGR1cmF0
aW9uKSB7CisgIGlmICh0ID4gdDAgKyBkdXJhdGlvbikKKyAgICByZXR1cm4gY3VydmVbY3VydmUu
bGVuZ3RoIC0gMV07CisKKyAgbGV0IGN1cnZlUG9pbnRzUGVyU2Vjb25kID0gKGN1cnZlLmxlbmd0
aCAtIDEpIC8gZHVyYXRpb247CisKKyAgbGV0IHZpcnR1YWxJbmRleCA9ICh0IC0gdDApICogY3Vy
dmVQb2ludHNQZXJTZWNvbmQ7CisgIGxldCBpbmRleCA9IE1hdGguZmxvb3IodmlydHVhbEluZGV4
KTsKKworICBsZXQgZGVsdGEgPSB2aXJ0dWFsSW5kZXggLSBpbmRleDsKKworICBsZXQgYzAgPSBj
dXJ2ZVtpbmRleF07CisgIGxldCBjMSA9IGN1cnZlW01hdGgubWluKGluZGV4ICsgMSwgY3VydmUu
bGVuZ3RoIC0gMSldOworICByZXR1cm4gYzAgKyAoYzEgLSBjMCkgKiBkZWx0YTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408197</attachid>
            <date>2020-09-07 14:41:56 -0700</date>
            <delta_ts>2020-09-07 18:35:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215947-20200907144155.patch</filename>
            <type>text/plain</type>
            <size>119069</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI3YzA3OWQzNDFjOGUw
NmUyM2VmYzNlM2U0ZGM5YzExN2Y3Y2M3OC4uNjU1YjU3ZWU1ZTc4M2RiNjg0MmM2ZWYxYWQ2NDkw
Y2I3NGNmMzE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA5LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9QYXJhbS5jYW5jZWxB
bmRIb2xkQXRUaW1lKCkgaXMgbWlzc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82ODM2MjA2
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIEF1ZGlvUGFyYW0uY2FuY2VsQW5kSG9sZEF0VGltZSgpOgorICAgICAg
ICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvcGFyYW0tY2FuY2Vs
YW5kaG9sZGF0dGltZQorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGZvbGxv
d2luZyBCbGluayBjb21taXQgYnkgUmF5bW9uZCBUb3k6CisgICAgICAgIC0gaHR0cHM6Ly9jb2Rl
cmV2aWV3LmNocm9taXVtLm9yZy8xNTMzMTAzMDAyCisKKyAgICAgICAgVGVzdHM6IHdlYmF1ZGlv
L2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmF1ZGlv
L2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBUb1ZhbHVl
QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0
QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VmFsdWVD
dXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6Omluc2Vy
dEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2VsQW5k
SG9sZEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnJlbW92
ZUNhbmNlbGxlZEV2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6
OnZhbHVlRm9yQ29udGV4dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVs
aW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6bGluZWFyUmFtcEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bh
cmFtVGltZWxpbmU6OmV4cG9uZW50aWFsUmFtcEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlQ3VydmVBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9QYXJhbVRpbWVsaW5lOjpoYW5kbGVDYW5jZWxWYWx1ZXMpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpjcmVhdGVMaW5lYXJS
YW1wRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2
ZW50OjpjcmVhdGVFeHBvbmVudGlhbFJhbXBFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZVNldFRhcmdldEV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFs
dWVDdXJ2ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFy
YW1FdmVudDo6Y3JlYXRlQ2FuY2VsVmFsdWVzRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpQYXJhbUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6dHlwZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OnNhdmVkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpzZXRDYW5j
ZWxsZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFt
RXZlbnQ6Omhhc0RlZmF1bHRDYW5jZWxsZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmN1cnZlUG9pbnRzUGVyU2Vjb25kIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6
Y3VydmVFbmRWYWx1ZSBjb25zdCk6CisKIDIwMjAtMDktMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb252b2x2ZXJOb2RlIGluY29ycmVjdGx5IG91dHB1dHMg
c2lsZW5jZSBiZWNhdXNlIG1fcmV2ZXJiIGlzIG51bGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1VuaXF1ZVJlZi5oIGIvU291cmNlL1dURi93dGYvVW5pcXVlUmVmLmgKaW5kZXggNGJmMzY4
ZGFlZGNjNzdlMDQwZDljNjk2NThhYWFiZDFkM2EzNDVkYi4uNDE1YTI5YjY2MGNmZTllODM2MDBk
YTYxOWMxZWMzZTcxYzBmMzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVW5pcXVlUmVm
LmgKKysrIGIvU291cmNlL1dURi93dGYvVW5pcXVlUmVmLmgKQEAgLTQ1LDYgKzQ1LDEyIEBAIFVu
aXF1ZVJlZjxUPiBtYWtlVW5pcXVlUmVmKEFyZ3MmJi4uLiBhcmdzKQogICAgIHJldHVybiBtYWtl
VW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxUPihzdGQ6OmZvcndhcmQ8QXJncz4oYXJn
cykuLi4pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVW5pcXVlUmVmPFQ+IG1ha2VVbmlx
dWVSZWZGcm9tTm9uTnVsbFVuaXF1ZVB0cihzdGQ6OnVuaXF1ZV9wdHI8VD4gcHRyKQoreworICAg
IHJldHVybiBVbmlxdWVSZWY8VD4oKnB0ci5yZWxlYXNlKCkpOworfQorCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogY2xhc3MgVW5pcXVlUmVmIHsKIHB1YmxpYzoKQEAgLTcxLDYgKzc3LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzLi4uIEFyZ3M+IGZy
aWVuZCBVbmlxdWVSZWY8VT4gbWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2soQXJn
cyYmLi4uKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBmcmllbmQgVW5pcXVlUmVmPFU+IG1ha2VV
bmlxdWVSZWZGcm9tTm9uTnVsbFVuaXF1ZVB0cihzdGQ6OnVuaXF1ZV9wdHI8VT4pOwogICAgIHRl
bXBsYXRlPGNsYXNzIFU+IGZyaWVuZCBjbGFzcyBVbmlxdWVSZWY7CiAKICAgICBVbmlxdWVSZWYo
VCYgb3RoZXIpCkBAIC04NywzICs5NCw0IEBAIHByaXZhdGU6CiB1c2luZyBXVEY6OlVuaXF1ZVJl
ZjsKIHVzaW5nIFdURjo6bWFrZVVuaXF1ZVJlZjsKIHVzaW5nIFdURjo6bWFrZVVuaXF1ZVJlZldp
dGhvdXRGYXN0TWFsbG9jQ2hlY2s7Cit1c2luZyBXVEY6Om1ha2VVbmlxdWVSZWZGcm9tTm9uTnVs
bFVuaXF1ZVB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uY3BwCmluZGV4IDUyMzEwMmEwOTkyNjY3NzQ2ZjNjMzY0MDBjOGZlNWYwZTk0NjEwOTMuLjYy
ZDFjZDRmOGFlNmFhYzM4ODI3MzZkNzQyY2MyY2QwYzQ4OGEwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMjE1LDYgKzIxNSwxOCBA
QCBFeGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gQXVkaW9QYXJhbTo6Y2FuY2VsU2NoZWR1bGVkVmFs
dWVzKGRvdWJsZSBjYW5jZWxUaW1lKQogICAgIHJldHVybiAqdGhpczsKIH0KIAorRXhjZXB0aW9u
T3I8QXVkaW9QYXJhbSY+IEF1ZGlvUGFyYW06OmNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNh
bmNlbFRpbWUpCit7CisgICAgaWYgKGNhbmNlbFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgUmFuZ2VFcnJvciwgImNhbmNlbFRpbWUgbXVzdCBiZSBhIHBvc2l0aXZlIHZhbHVl
Il9zIH07CisKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGltZWxpbmUuY2FuY2VsQW5kSG9sZEF0VGlt
ZShTZWNvbmRzIHsgY2FuY2VsVGltZSB9KTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIHJldHVy
biAqdGhpczsKK30KKwogZmxvYXQgQXVkaW9QYXJhbTo6ZmluYWxWYWx1ZSgpCiB7CiAgICAgZmxv
YXQgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5o
CmluZGV4IDhhNGE3NmVkYzdhMTY0MTA4YzQzYTdiZDFlN2U0YTgwZDRlNzMxZTYuLjBmZDdlNjUx
MDVmOGFlMGQ1YzVlYzRmMWExODUwNjU0MWI0NTMwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0xMDgsNiArMTA4LDcgQEAgcHVibGljOgog
ICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBzZXRUYXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0
LCBkb3VibGUgc3RhcnRUaW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpOwogICAgIEV4Y2VwdGlvbk9y
PEF1ZGlvUGFyYW0mPiBzZXRWYWx1ZUN1cnZlQXRUaW1lKFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwg
ZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGR1cmF0aW9uKTsKICAgICBFeGNlcHRpb25PcjxBdWRp
b1BhcmFtJj4gY2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1lKTsKKyAgICBF
eGNlcHRpb25PcjxBdWRpb1BhcmFtJj4gY2FuY2VsQW5kSG9sZEF0VGltZShkb3VibGUgY2FuY2Vs
VGltZSk7CiAKICAgICBib29sIGhhc1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkgY29uc3QgeyByZXR1
cm4gbV90aW1lbGluZS5oYXNWYWx1ZXMoKSB8fCBudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25z
KCk7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaWRsCmluZGV4IDA5ZDg0M2Q0NmZiMTg3N2YwOTUyMmU0YTY1MzI5YTNjMGJhN2EyYjIuLmIy
Y2FhZGM3MjYwZTllMmE0MWVkZDk5ZTJhODc0OWZhMjJjNmFiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbApAQCAtNTksOSArNTksNyBAQAog
CiAgICAgLy8gQ2FuY2VscyBhbGwgc2NoZWR1bGVkIHBhcmFtZXRlciBjaGFuZ2VzIHdpdGggdGlt
ZXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0VGltZS4KICAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIEF1ZGlvUGFyYW0gY2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSBjYW5jZWxUaW1l
KTsKLQotICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgdGhpcy4KLSAgICAvLyBBdWRpb1Bh
cmFtIGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlIGNhbmNlbFRpbWUpOworICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gQXVkaW9QYXJhbSBjYW5jZWxBbmRIb2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxU
aW1lKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgbm90IHN0YW5kYXJkLgogICAgIFtFbmFi
bGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCBhNzVmODg4ZTA2ZGQ5ZWZmYjhiNjY4NzI1NTc0N2Fh
NzgwNzU4MGIwLi43ODdiYjM0MmVkM2RmNGJlMjAzYmVmMDZkN2E0YmIwNDliYzdmMzk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCkBAIC02NSwyNyArNjUsMzIgQEAgc3RhdGljIGJvb2wgaGFzU2V0VGFyZ2V0Q29u
dmVyZ2VkKGZsb2F0IHZhbHVlLCBmbG9hdCB0YXJnZXQsIFNlY29uZHMgY3VycmVudFRpbWUKIAog
RXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUF0VGltZShmbG9h
dCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2
ZW50KFBhcmFtRXZlbnQ6OlNldFZhbHVlLCB2YWx1ZSwgdGltZSwgMCwgeyB9LCB7IH0pKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTXV0ZXgpOworICAgIHJldHVybiBpbnNl
cnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9
CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKIHsKLSAgICByZXR1cm4gaW5zZXJ0
RXZlbnQoUGFyYW1FdmVudChQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSwgdmFsdWUsIHRp
bWUsIDAsIHsgfSwgeyB9KSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c011
dGV4KTsKKyAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlTGluZWFyUmFt
cEV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25k
cyB0aW1lKQogewotICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50KFBhcmFtRXZlbnQ6
OkV4cG9uZW50aWFsUmFtcFRvVmFsdWUsIHZhbHVlLCB0aW1lLCAwLCB7IH0sIHsgfSkpOworICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgcmV0dXJuIGluc2Vy
dEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZUV4cG9uZW50aWFsUmFtcEV2ZW50KHZhbHVlLCB0aW1l
KSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0
QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7
Ci0gICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6U2V0VGFyZ2V0
LCB0YXJnZXQsIHRpbWUsIHRpbWVDb25zdGFudCwgeyB9LCB7IH0pKTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fZXZlbnRzTXV0ZXgpOworICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJh
bUV2ZW50OjpjcmVhdGVTZXRUYXJnZXRFdmVudCh0YXJnZXQsIHRpbWUsIHRpbWVDb25zdGFudCkp
OwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3Vy
dmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVy
YXRpb24pCiB7Ci0gICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQoUGFyYW1FdmVudDo6
U2V0VmFsdWVDdXJ2ZSwgMCwgdGltZSwgMCwgZHVyYXRpb24sIFdURk1vdmUoY3VydmUpKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c011dGV4KTsKKyAgICByZXR1cm4gaW5z
ZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3Vy
dmUpLCB0aW1lLCBkdXJhdGlvbikpOwogfQogCiBzdGF0aWMgYm9vbCBpc1ZhbGlkTnVtYmVyKGZs
b2F0IHgpCkBAIC05OCw1MiArMTAzLDU1IEBAIHN0YXRpYyBib29sIGlzVmFsaWROdW1iZXIoU2Vj
b25kcyBzKQogICAgIHJldHVybiAhc3RkOjppc25hbihzLnZhbHVlKCkpICYmICFzdGQ6OmlzaW5m
KHMudmFsdWUoKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6
aW5zZXJ0RXZlbnQoY29uc3QgUGFyYW1FdmVudCYgZXZlbnQpCitFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6Omluc2VydEV2ZW50KFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBldmVu
dCkKIHsKICAgICAvLyBTYW5pdHkgY2hlY2sgdGhlIGV2ZW50LiBCZSBzdXBlciBjYXJlZnVsIHdl
J3JlIG5vdCBnZXR0aW5nIGluZmVjdGVkIHdpdGggTmFOIG9yIEluZi4KLSAgICBib29sIGlzVmFs
aWQgPSBldmVudC50eXBlKCkgPCBQYXJhbUV2ZW50OjpMYXN0VHlwZQotICAgICAgICAmJiBpc1Zh
bGlkTnVtYmVyKGV2ZW50LnZhbHVlKCkpCi0gICAgICAgICYmIGlzVmFsaWROdW1iZXIoZXZlbnQu
dGltZSgpKQotICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LnRpbWVDb25zdGFudCgpKQot
ICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LmR1cmF0aW9uKCkpCi0gICAgICAgICYmIGV2
ZW50LmR1cmF0aW9uKCkgPj0gMF9zOworICAgIGJvb2wgaXNWYWxpZCA9IGV2ZW50LT50eXBlKCkg
PCBQYXJhbUV2ZW50OjpMYXN0VHlwZQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT52
YWx1ZSgpKQorICAgICAgICAmJiBpc1ZhbGlkTnVtYmVyKGV2ZW50LT50aW1lKCkpCisgICAgICAg
ICYmIGlzVmFsaWROdW1iZXIoZXZlbnQtPnRpbWVDb25zdGFudCgpKQorICAgICAgICAmJiBpc1Zh
bGlkTnVtYmVyKGV2ZW50LT5kdXJhdGlvbigpKQorICAgICAgICAmJiBldmVudC0+ZHVyYXRpb24o
KSA+PSAwX3M7CiAKICAgICBpZiAoIWlzVmFsaWQpCiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgQVNT
RVJUKG1fZXZlbnRzTXV0ZXguaXNMb2NrZWQoKSk7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKLSAg
ICBhdXRvIGluc2VydFRpbWUgPSBldmVudC50aW1lKCk7CisgICAgYXV0byBpbnNlcnRUaW1lID0g
ZXZlbnQtPnRpbWUoKTsKKwogICAgIGZvciAoYXV0byYgcGFyYW1FdmVudCA6IG1fZXZlbnRzKSB7
Ci0gICAgICAgIGlmIChldmVudC50eXBlKCkgPT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkg
ewotICAgICAgICAgICAgLy8gSWYgdGhpcyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ug
c3VyZSBpdCBkb2Vzbid0IG92ZXJsYXAgYW55IGV4aXN0aW5nIGV2ZW50LgotICAgICAgICAgICAg
Ly8gSXQncyBvayBpZiB0aGUgU2V0VmFsdWVDdXJ2ZSBzdGFydHMgYXQgdGhlIHNhbWUgdGltZSBh
cyB0aGUgZW5kIG9mIHNvbWUgb3RoZXIgZHVyYXRpb24uCi0gICAgICAgICAgICBhdXRvIGVuZFRp
bWUgPSBldmVudC50aW1lKCkgKyBldmVudC5kdXJhdGlvbigpOwotICAgICAgICAgICAgaWYgKHBh
cmFtRXZlbnQudHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKLSAgICAgICAg
ICAgICAgICBhdXRvIHBhcmFtRXZlbnRFbmRUaW1lID0gcGFyYW1FdmVudC50aW1lKCkgKyBwYXJh
bUV2ZW50LmR1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgaWYgKChwYXJhbUV2ZW50LnRpbWUo
KSA+PSBldmVudC50aW1lKCkgJiYgcGFyYW1FdmVudC50aW1lKCkgPCBlbmRUaW1lKQotICAgICAg
ICAgICAgICAgICAgICB8fCAocGFyYW1FdmVudEVuZFRpbWUgPiBldmVudC50aW1lKCkgJiYgcGFy
YW1FdmVudEVuZFRpbWUgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAoZXZlbnQu
dGltZSgpID49IHBhcmFtRXZlbnQudGltZSgpICYmIGV2ZW50LnRpbWUoKSA8IHBhcmFtRXZlbnRF
bmRUaW1lKQotICAgICAgICAgICAgICAgICAgICB8fCAoZW5kVGltZSA+PSBwYXJhbUV2ZW50LnRp
bWUoKSAmJiBlbmRUaW1lIDwgcGFyYW1FdmVudEVuZFRpbWUpKSB7CisgICAgICAgIGlmIChldmVu
dC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKKyAgICAgICAgICAgIGlm
IChwYXJhbUV2ZW50LT50eXBlKCkgIT0gUGFyYW1FdmVudDo6Q2FuY2VsVmFsdWVzKSB7CisgICAg
ICAgICAgICAgICAgLy8gSWYgdGhpcyBldmVudCBpcyBhIFNldFZhbHVlQ3VydmUsIG1ha2Ugc3Vy
ZSBpdCBkb2Vzbid0IG92ZXJsYXAgYW55IGV4aXN0aW5nIGV2ZW50LgorICAgICAgICAgICAgICAg
IC8vIEl0J3Mgb2sgaWYgdGhlIFNldFZhbHVlQ3VydmUgc3RhcnRzIGF0IHRoZSBzYW1lIHRpbWUg
YXMgdGhlIGVuZCBvZiBzb21lIG90aGVyIGR1cmF0aW9uLgorICAgICAgICAgICAgICAgIGF1dG8g
ZW5kVGltZSA9IGV2ZW50LT50aW1lKCkgKyBldmVudC0+ZHVyYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBpZiAocGFyYW1FdmVudC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUp
IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwYXJhbUV2ZW50RW5kVGltZSA9IHBhcmFtRXZl
bnQtPnRpbWUoKSArIHBhcmFtRXZlbnQtPmR1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmICgocGFyYW1FdmVudC0+dGltZSgpID49IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+
dGltZSgpIDwgZW5kVGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChwYXJhbUV2ZW50
RW5kVGltZSA+IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudEVuZFRpbWUgPCBlbmRUaW1lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGV2ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+
dGltZSgpICYmIGV2ZW50LT50aW1lKCkgPCBwYXJhbUV2ZW50RW5kVGltZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHx8IChlbmRUaW1lID49IHBhcmFtRXZlbnQtPnRpbWUoKSAmJiBlbmRUaW1l
IDwgcGFyYW1FdmVudEVuZFRpbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9z
IH07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBh
cmFtRXZlbnQtPnRpbWUoKSA+IGV2ZW50LT50aW1lKCkgJiYgcGFyYW1FdmVudC0+dGltZSgpIDwg
ZW5kVGltZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyJfcyB9OwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1FdmVudC50aW1lKCkgPiBldmVudC50aW1l
KCkgJiYgcGFyYW1FdmVudC50aW1lKCkgPCBlbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmci
X3MgfTsKLSAgICAgICAgfSBlbHNlIGlmIChwYXJhbUV2ZW50LnR5cGUoKSA9PSBQYXJhbUV2ZW50
OjpTZXRWYWx1ZUN1cnZlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocGFy
YW1FdmVudC0+dHlwZSgpID09IFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmUpIHsKICAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSwgbWFrZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFu
eSBleGlzdGluZyBTZXRWYWx1ZUN1cnZlIGV2ZW50LgotICAgICAgICAgICAgYXV0byBwYXJlbnRF
dmVudEVuZFRpbWUgPSBwYXJhbUV2ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsK
LSAgICAgICAgICAgIGlmIChldmVudC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZl
bnQudGltZSgpIDwgcGFyZW50RXZlbnRFbmRUaW1lKQorICAgICAgICAgICAgYXV0byBwYXJlbnRF
dmVudEVuZFRpbWUgPSBwYXJhbUV2ZW50LT50aW1lKCkgKyBwYXJhbUV2ZW50LT5kdXJhdGlvbigp
OworICAgICAgICAgICAgaWYgKGV2ZW50LT50aW1lKCkgPj0gcGFyYW1FdmVudC0+dGltZSgpICYm
IGV2ZW50LT50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwYXJhbUV2ZW50LnRpbWUoKSA+IGluc2Vy
dFRpbWUpCisgICAgICAgIGlmIChwYXJhbUV2ZW50LT50aW1lKCkgPiBpbnNlcnRUaW1lKQogICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIG1fZXZlbnRzLmlu
c2VydChpLCBldmVudCk7CisgICAgbV9ldmVudHMuaW5zZXJ0KGksIFdURk1vdmUoZXZlbnQpKTsK
ICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xNzYsMTEgKzE4NCwxMjIgQEAgdm9pZCBBdWRpb1Bh
cmFtVGltZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAg
ICAgfQogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbEFu
ZEhvbGRBdFRpbWUoU2Vjb25kcyBjYW5jZWxUaW1lKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9ldmVudHNNdXRleCk7CisKKyAgICAvLyBGaW5kIHRoZSBmaXJzdCBldmVudCBhdCBv
ciBqdXN0IHBhc3QgY2FuY2VsVGltZS4KKyAgICBzaXplX3QgaSA9IG1fZXZlbnRzLmZpbmRNYXRj
aGluZyhbJl0oYXV0byYgZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LT50aW1lKCkgPiBj
YW5jZWxUaW1lOworICAgIH0pOworICAgIGkgPSAoaSA9PSBub3RGb3VuZCkgPyBtX2V2ZW50cy5z
aXplKCkgOiBpOworCisgICAgLy8gVGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2VsbGVkLiBU
aGlzIGlzIHRoZSBldmVudCBqdXN0IHBhc3QgY2FuY2VsVGltZSwgaWYgYW55LgorICAgIHNpemVf
dCBjYW5jZWxsZWRFdmVudEluZGV4ID0gaTsKKworICAgIC8vIElmIHRoZSBldmVudCBqdXN0IGJl
Zm9yZSBjYW5jZWxUaW1lIGlzIGEgU2V0VGFyZ2V0IG9yIFNldFZhbHVlQ3VydmUgZXZlbnQsIHdl
IG5lZWQKKyAgICAvLyB0byBoYW5kbGUgdGhhdCBldmVudCBzcGVjaWFsbHkgaW5zdGVhZCBvZiB0
aGUgZXZlbnQgYWZ0ZXIuCisgICAgaWYgKGkgPiAwICYmICgobV9ldmVudHNbaSAtIDFdLT50eXBl
KCkgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB8fCAobV9ldmVudHNbaSAtIDFdLT50eXBlKCkg
PT0gUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSkpKQorICAgICAgICBjYW5jZWxsZWRFdmVudElu
ZGV4ID0gaSAtIDE7CisgICAgZWxzZSBpZiAoaSA+PSBtX2V2ZW50cy5zaXplKCkpIHsKKyAgICAg
ICAgLy8gSWYgdGhlcmUgd2VyZSBubyBldmVudHMgb2NjdXJyaW5nIGFmdGVyIHxjYW5jZWxUaW1l
fCAoYW5kIHRoZQorICAgICAgICAvLyBwcmV2aW91cyBldmVudCBpcyBub3QgU2V0VGFyZ2V0IG9y
IFNldFZhbHVlQ3VydmUsIHdlJ3JlIGRvbmUuCisgICAgICAgIHJldHVybiB7IH07CisgICAgfQor
CisgICAgLy8gY2FuY2VsbGVkRXZlbnQgaXMgdGhlIGV2ZW50IHRoYXQgaXMgYmVpbmcgY2FuY2Vs
bGVkLgorICAgIGF1dG8mIGNhbmNlbGxlZEV2ZW50ID0gbV9ldmVudHNbY2FuY2VsbGVkRXZlbnRJ
bmRleF0uZ2V0KCk7CisgICAgYXV0byBldmVudFR5cGUgPSBjYW5jZWxsZWRFdmVudC50eXBlKCk7
CisKKyAgICAvLyBOZXcgZXZlbnQgdG8gYmUgaW5zZXJ0ZWQsIGlmIGFueSwgYW5kIGEgU2V0VmFs
dWVFdmVudCBpZiBuZWVkZWQuCisgICAgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IG5ld0V2
ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50PiBuZXdTZXRWYWx1ZUV2ZW50Owor
CisgICAgc3dpdGNoIChldmVudFR5cGUpIHsKKyAgICBjYXNlIFBhcmFtRXZlbnQ6OkxpbmVhclJh
bXBUb1ZhbHVlOgorICAgIGNhc2UgUGFyYW1FdmVudDo6RXhwb25lbnRpYWxSYW1wVG9WYWx1ZTog
eworICAgICAgICAvLyBGb3IgdGhlc2UgZXZlbnRzIHdlIG5lZWQgdG8gcmVtZW1iZXIgdGhlIHBh
cmFtZXRlcnMgb2YgdGhlIGV2ZW50CisgICAgICAgIC8vIGZvciBhIENhbmNlbFZhbHVlcyBldmVu
dCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJseSBjYW5jZWwgdGhlIGV2ZW50CisgICAgICAgIC8vIGFu
ZCBob2xkIHRoZSB2YWx1ZS4KKyAgICAgICAgYXV0byBzYXZlZEV2ZW50ID0gbWFrZVVuaXF1ZVJl
ZjxQYXJhbUV2ZW50PihldmVudFR5cGUsIGNhbmNlbGxlZEV2ZW50LnZhbHVlKCksIGNhbmNlbGxl
ZEV2ZW50LnRpbWUoKSwgY2FuY2VsbGVkRXZlbnQudGltZUNvbnN0YW50KCksIGNhbmNlbGxlZEV2
ZW50LmR1cmF0aW9uKCksIFZlY3RvcjxmbG9hdD4geyBjYW5jZWxsZWRFdmVudC5jdXJ2ZSgpIH0s
IGNhbmNlbGxlZEV2ZW50LmN1cnZlUG9pbnRzUGVyU2Vjb25kKCksIGNhbmNlbGxlZEV2ZW50LmN1
cnZlRW5kVmFsdWUoKSwgbnVsbHB0cik7CisgICAgICAgIG5ld0V2ZW50ID0gUGFyYW1FdmVudDo6
Y3JlYXRlQ2FuY2VsVmFsdWVzRXZlbnQoY2FuY2VsVGltZSwgc2F2ZWRFdmVudC5tb3ZlVG9Vbmlx
dWVQdHIoKSkubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFBhcmFtRXZlbnQ6OlNldFRhcmdldDogeworICAgICAgICBpZiAoY2FuY2VsbGVkRXZlbnQu
dGltZSgpIDwgY2FuY2VsVGltZSkgeworICAgICAgICAgICAgLy8gRG9uJ3Qgd2FudCB0byByZW1v
dmUgdGhlIFNldFRhcmdldCBldmVudCBpZiBpdCBzdGFydGVkIGJlZm9yZSB0aGUKKyAgICAgICAg
ICAgIC8vIGNhbmNlbCB0aW1lLCBzbyBidW1wIHRoZSBpbmRleC4gQnV0IHdlIGRvIHdhbnQgdG8g
aW5zZXJ0IGEKKyAgICAgICAgICAgIC8vIGNhbmNlbEV2ZW50IHNvIHRoYXQgd2Ugc3RvcCB0aGlz
IGF1dG9tYXRpb24gYW5kIGhvbGQgdGhlIHZhbHVlIHdoZW4KKyAgICAgICAgICAgIC8vIHdlIGdl
dCB0aGVyZS4KKyAgICAgICAgICAgICsrY2FuY2VsbGVkRXZlbnRJbmRleDsKKworICAgICAgICAg
ICAgbmV3RXZlbnQgPSBQYXJhbUV2ZW50OjpjcmVhdGVDYW5jZWxWYWx1ZXNFdmVudChjYW5jZWxU
aW1lLCBudWxscHRyKS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZlOiB7CisgICAgICAg
IC8vIElmIHRoZSBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0ZWQgc3RyaWN0bHkgYmVmb3JlIHRo
ZSBjYW5jZWwgdGltZSwKKyAgICAgICAgLy8gdGhlcmUgbWlnaHQgYmUgc29tZXRoaW5nIHRvIGRv
Li4uLgorICAgICAgICBpZiAoY2FuY2VsbGVkRXZlbnQudGltZSgpIDwgY2FuY2VsVGltZSkgewor
ICAgICAgICAgICAgaWYgKGNhbmNlbFRpbWUgPiBjYW5jZWxsZWRFdmVudC50aW1lKCkgKyBjYW5j
ZWxsZWRFdmVudC5kdXJhdGlvbigpKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhbmNl
bGxhdGlvbiB0aW1lIGlzIHBhc3QgdGhlIGVuZCBvZiB0aGUgY3VydmUgdGhlcmUncworICAgICAg
ICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gZXhjZXB0IHJlbW92ZSB0aGUgZm9sbG93aW5nIGV2
ZW50cy4KKyAgICAgICAgICAgICAgICArK2NhbmNlbGxlZEV2ZW50SW5kZXg7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENhbmNlbGxhdGlvbiB0aW1lIGlzIGluIHRo
ZSBtaWRkbGUgb2YgdGhlIGN1cnZlLiBUaGVyZWZvcmUsCisgICAgICAgICAgICAgICAgLy8gY3Jl
YXRlIGEgbmV3IFNldFZhbHVlQ3VydmUgZXZlbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgbmV3Cisg
ICAgICAgICAgICAgICAgLy8gcGFyYW1ldGVycyB0byBjYW5jZWwgdGhpcyBldmVudCBwcm9wZXJs
eS4gU2luY2UgaXQncyBpbGxlZ2FsCisgICAgICAgICAgICAgICAgLy8gdG8gaW5zZXJ0IGFueSBl
dmVudCB3aXRoaW4gYSBTZXRWYWx1ZUN1cnZlIGV2ZW50LCB3ZSBjYW4KKyAgICAgICAgICAgICAg
ICAvLyBjb21wdXRlIHRoZSBuZXcgZW5kIHZhbHVlIG5vdyBpbnN0ZWFkIG9mIGRvaW5nIHdoZW4g
cnVubmluZworICAgICAgICAgICAgICAgIC8vIHRoZSB0aW1lbGluZS4KKyAgICAgICAgICAgICAg
ICBhdXRvIG5ld0R1cmF0aW9uID0gY2FuY2VsVGltZSAtIGNhbmNlbGxlZEV2ZW50LnRpbWUoKTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBlbmRWYWx1ZSA9IHZhbHVlQ3VydmVBdFRpbWUoY2FuY2Vs
VGltZSwgY2FuY2VsbGVkRXZlbnQudGltZSgpLCBjYW5jZWxsZWRFdmVudC5kdXJhdGlvbigpLCBj
YW5jZWxsZWRFdmVudC5jdXJ2ZSgpLmRhdGEoKSwgY2FuY2VsbGVkRXZlbnQuY3VydmUoKS5zaXpl
KCkpOworCisgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgZXhpc3RpbmcgU2V0VmFsdWVD
dXJ2ZSB3aXRoIHRoaXMgbmV3IG9uZSB0aGF0IGlzIGlkZW50aWNhbCBleGNlcHQgZm9yIHRoZSBk
dXJhdGlvbi4KKyAgICAgICAgICAgICAgICBuZXdFdmVudCA9IG1ha2VVbmlxdWVSZWY8UGFyYW1F
dmVudD4oZXZlbnRUeXBlLCBjYW5jZWxsZWRFdmVudC52YWx1ZSgpLCBjYW5jZWxsZWRFdmVudC50
aW1lKCksIGNhbmNlbGxlZEV2ZW50LnRpbWVDb25zdGFudCgpLCBuZXdEdXJhdGlvbiwgVmVjdG9y
PGZsb2F0PiB7IGNhbmNlbGxlZEV2ZW50LmN1cnZlKCkgfSwgY2FuY2VsbGVkRXZlbnQuY3VydmVQ
b2ludHNQZXJTZWNvbmQoKSwgZW5kVmFsdWUsIG51bGxwdHIpLm1vdmVUb1VuaXF1ZVB0cigpOwor
ICAgICAgICAgICAgICAgIG5ld1NldFZhbHVlRXZlbnQgPSBQYXJhbUV2ZW50OjpjcmVhdGVTZXRW
YWx1ZUV2ZW50KGVuZFZhbHVlLCBjYW5jZWxsZWRFdmVudC50aW1lKCkgKyBuZXdEdXJhdGlvbiku
bW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWU6CisgICAgY2FzZSBQYXJh
bUV2ZW50OjpDYW5jZWxWYWx1ZXM6CisgICAgICAgIC8vIE5vdGhpbmcgbmVlZHMgdG8gYmUgZG9u
ZSBmb3IgYSBTZXRWYWx1ZSBvciBDYW5jZWxWYWx1ZXMgZXZlbnQuCisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGFyYW1FdmVudDo6TGFzdFR5cGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBOb3cgcmVtb3ZlIGFsbCB0aGUg
Zm9sbG93aW5nIGV2ZW50cyBmcm9tIHRoZSB0aW1lbGluZS4KKyAgICBpZiAoY2FuY2VsbGVkRXZl
bnRJbmRleCA8IG1fZXZlbnRzLnNpemUoKSkKKyAgICAgICAgcmVtb3ZlQ2FuY2VsbGVkRXZlbnRz
KGNhbmNlbGxlZEV2ZW50SW5kZXgpOworCisgICAgLy8gSW5zZXJ0IHRoZSBuZXcgZXZlbnQsIGlm
IGFueS4KKyAgICBpZiAobmV3RXZlbnQpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBpbnNlcnRF
dmVudChtYWtlVW5pcXVlUmVmRnJvbU5vbk51bGxVbmlxdWVQdHIoV1RGTW92ZShuZXdFdmVudCkp
KTsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICBpZiAobmV3U2V0VmFsdWVFdmVu
dCkgeworICAgICAgICAgICAgaW5zZXJ0RXZlbnQobWFrZVVuaXF1ZVJlZkZyb21Ob25OdWxsVW5p
cXVlUHRyKFdURk1vdmUobmV3U2V0VmFsdWVFdmVudCkpKTsKKyAgICAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit2
b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJz
dEV2ZW50VG9SZW1vdmUpCit7CisgICAgbV9ldmVudHMucmVtb3ZlKGZpcnN0RXZlbnRUb1JlbW92
ZSwgbV9ldmVudHMuc2l6ZSgpIC0gZmlyc3RFdmVudFRvUmVtb3ZlKTsKK30KKwogT3B0aW9uYWw8
ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9h
dCBtYXhWYWx1ZSkKIHsKICAgICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9j
ayhtX2V2ZW50c011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICAgICAgaWYgKCFsb2NrLm93
bnNfbG9jaygpIHx8ICFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVu
dFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIWxvY2sub3duc19s
b2NrKCkgfHwgIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGlt
ZSgpIH0gPCBtX2V2ZW50c1swXS0+dGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIyMSw3ICszNDAsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxp
bmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5k
VAogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogCiAgICAgLy8gUmV0dXJuIGRlZmF1bHQg
dmFsdWUgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBtYXRjaGluZyB0aGUgZGVzaXJlZCB0aW1lIHJh
bmdlLgotICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IGVuZFRpbWUgPD0gbV9ldmVudHNbMF0u
dGltZSgpKSB7CisgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgZW5kVGltZSA8PSBtX2V2ZW50
c1swXS0+dGltZSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJP
ZlZhbHVlczsgKytpKQogICAgICAgICAgICAgdmFsdWVzW2ldID0gZGVmYXVsdFZhbHVlOwogICAg
ICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwpAQCAtMjMzLDcgKzM1Miw3IEBAIGZsb2F0IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwg
U2Vjb25kcyBlbmRUCiAKICAgICAvLyBJZiBmaXJzdCBldmVudCBpcyBhZnRlciBzdGFydFRpbWUg
dGhlbiBmaWxsIGluaXRpYWwgcGFydCBvZiB2YWx1ZXMgYnVmZmVyIHdpdGggZGVmYXVsdFZhbHVl
CiAgICAgLy8gdW50aWwgd2UgcmVhY2ggdGhlIGZpcnN0IGV2ZW50IHRpbWUuCi0gICAgYXV0byBm
aXJzdEV2ZW50VGltZSA9IG1fZXZlbnRzWzBdLnRpbWUoKTsKKyAgICBhdXRvIGZpcnN0RXZlbnRU
aW1lID0gbV9ldmVudHNbMF0tPnRpbWUoKTsKICAgICBpZiAoZmlyc3RFdmVudFRpbWUgPiBzdGFy
dFRpbWUpIHsKICAgICAgICAgYXV0byBmaWxsVG9UaW1lID0gc3RkOjptaW4oZW5kVGltZSwgZmly
c3RFdmVudFRpbWUpOwogICAgICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRpbGl0
aWVzOjp0aW1lVG9TYW1wbGVGcmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUoKSwg
c2FtcGxlUmF0ZSk7CkBAIC0yNTIsMTggKzM3MSwyMiBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxp
bmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5k
VAogICAgIC8vIGFuZCBrZWVwaW5nIHRyYWNrIG9mIGEgImN1cnJlbnQiIGV2ZW50IGluZGV4Lgog
ICAgIGludCBuID0gbV9ldmVudHMuc2l6ZSgpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAm
JiB3cml0ZUluZGV4IDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkgewotICAgICAgICBQYXJhbUV2ZW50
JiBldmVudCA9IG1fZXZlbnRzW2ldOwotICAgICAgICBQYXJhbUV2ZW50KiBuZXh0RXZlbnQgPSBp
IDwgbiAtIDEgPyAmKG1fZXZlbnRzW2kgKyAxXSkgOiBudWxscHRyOworICAgICAgICBhdXRvJiBl
dmVudCA9IG1fZXZlbnRzW2ldLmdldCgpOworICAgICAgICBhdXRvKiBuZXh0RXZlbnQgPSBpIDwg
biAtIDEgPyAmbV9ldmVudHNbaSArIDFdLmdldCgpIDogbnVsbHB0cjsKIAogICAgICAgICAvLyBX
YWl0IHVudGlsIHdlIGdldCBhIG1vcmUgcmVjZW50IGV2ZW50LgogICAgICAgICBpZiAobmV4dEV2
ZW50ICYmIG5leHRFdmVudC0+dGltZSgpIDwgY3VycmVudFRpbWUpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAorICAgICAgICBhdXRvIG5leHRFdmVudFR5cGUgPSBuZXh0RXZlbnQgPyBzdGF0aWNf
Y2FzdDxQYXJhbUV2ZW50OjpUeXBlPihuZXh0RXZlbnQtPnR5cGUoKSkgOiBQYXJhbUV2ZW50OjpM
YXN0VHlwZSAvKiB1bmtub3duICovOworCiAgICAgICAgIGZsb2F0IHZhbHVlMSA9IGV2ZW50LnZh
bHVlKCk7CiAgICAgICAgIGF1dG8gdGltZTEgPSBldmVudC50aW1lKCk7CiAgICAgICAgIGZsb2F0
IHZhbHVlMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+dmFsdWUoKSA6IHZhbHVlMTsKICAgICAg
ICAgYXV0byB0aW1lMiA9IG5leHRFdmVudCA/IG5leHRFdmVudC0+dGltZSgpIDogZW5kVGltZSAr
IDFfczsKIAorICAgICAgICBoYW5kbGVDYW5jZWxWYWx1ZXMoZXZlbnQsIG5leHRFdmVudCwgdmFs
dWUyLCB0aW1lMiwgbmV4dEV2ZW50VHlwZSk7CisKICAgICAgICAgYXV0byBkZWx0YVRpbWUgPSB0
aW1lMiAtIHRpbWUxOwogICAgICAgICBhdXRvIHNhbXBsZUZyYW1lVGltZUluY3IgPSBTZWNvbmRz
IHsgMSAvIHNhbXBsZVJhdGUgfTsKIApAQCAtMjcxLDggKzM5NCw2IEBAIGZsb2F0IEF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vj
b25kcyBlbmRUCiAgICAgICAgIHVuc2lnbmVkIGZpbGxUb0ZyYW1lID0gQXVkaW9VdGlsaXRpZXM6
OnRpbWVUb1NhbXBsZUZyYW1lKChmaWxsVG9UaW1lIC0gc3RhcnRUaW1lKS52YWx1ZSgpLCBzYW1w
bGVSYXRlKTsKICAgICAgICAgZmlsbFRvRnJhbWUgPSBzdGQ6Om1pbihmaWxsVG9GcmFtZSwgbnVt
YmVyT2ZWYWx1ZXMpOwogCi0gICAgICAgIFBhcmFtRXZlbnQ6OlR5cGUgbmV4dEV2ZW50VHlwZSA9
IG5leHRFdmVudCA/IHN0YXRpY19jYXN0PFBhcmFtRXZlbnQ6OlR5cGU+KG5leHRFdmVudC0+dHlw
ZSgpKSA6IFBhcmFtRXZlbnQ6Okxhc3RUeXBlIC8qIHVua25vd24gKi87Ci0KICAgICAgICAgLy8g
Rmlyc3QgaGFuZGxlIGxpbmVhciBhbmQgZXhwb25lbnRpYWwgcmFtcHMgd2hpY2ggcmVxdWlyZSBs
b29raW5nIGFoZWFkIHRvIHRoZSBuZXh0IGV2ZW50LgogICAgICAgICBpZiAobmV4dEV2ZW50VHlw
ZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSkgewogICAgICAgICAgICAgZm9yICg7
IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KSB7CkBAIC0zMTQsMTA1ICs0
MzUsMTUxIEBAIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1w
bChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUCiAgICAgICAgICAgICBjYXNlIFBhcmFt
RXZlbnQ6OlNldFZhbHVlOgogICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1w
VG9WYWx1ZToKICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6RXhwb25lbnRpYWxSYW1wVG9W
YWx1ZToKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUaW1l
ID0gZmlsbFRvVGltZTsKKyAgICAgICAgICAgICAgICBjdXJyZW50VGltZSA9IGZpbGxUb1RpbWU7
CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltcGx5IHN0YXkgYXQgYSBjb25zdGFudCB2YWx1
ZS4KLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldmVudC52YWx1ZSgpOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgp
Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKLQot
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgLy8gU2ltcGx5IHN0YXkgYXQgYSBjb25zdGFudCB2YWx1ZS4KKyAgICAgICAgICAgICAg
ICB2YWx1ZSA9IGV2ZW50LnZhbHVlKCk7CisgICAgICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5k
ZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQorICAgICAgICAgICAgICAgICAgICB2YWx1
ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKIAotICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50OjpT
ZXRUYXJnZXQ6Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50
VGltZSA9IGZpbGxUb1RpbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlczoKKyAgICAgICAgICAgICAgICBjdXJyZW50VGlt
ZSA9IGZpbGxUb1RpbWU7CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gRXhwb25lbnRpYWwgYXBw
cm9hY2ggdG8gdGFyZ2V0IHZhbHVlIHdpdGggZ2l2ZW4gdGltZSBjb25zdGFudC4KLSAgICAgICAg
ICAgICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gZXZlbnQudmFsdWUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgZmxvYXQgdGltZUNvbnN0YW50ID0gZXZlbnQudGltZUNvbnN0YW50KCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGZsb2F0IGRpc2NyZXRlVGltZUNvbnN0YW50ID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUodGlt
ZUNvbnN0YW50LCBjb250cm9sUmF0ZSkpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIElmIHRo
ZSB2YWx1ZSBpcyBjbG9zZSBlbm91Z2ggdG8gdGhlIHRhcmdldCwganVzdCBmaWxsIGluIHRoZSBk
YXRhCi0gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIHRhcmdldCB2YWx1ZS4KLSAgICAg
ICAgICAgICAgICAgICAgaWYgKGhhc1NldFRhcmdldENvbnZlcmdlZCh2YWx1ZSwgdGFyZ2V0LCBj
dXJyZW50VGltZSwgdGltZTEsIHRpbWVDb25zdGFudCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB0YXJnZXQ7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRhcmdldDsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlcmlhbGx5IHByb2Nlc3MgcmVt
YWluaW5nIHZhbHVlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4
IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIC8vIElmIHRo
ZSBwcmV2aW91cyBldmVudCB3YXMgYSBTZXRUYXJnZXQgb3IgRXhwb25lbnRpYWxSYW1wCisgICAg
ICAgICAgICAgICAgLy8gZXZlbnQsIHRoZSBjdXJyZW50IHZhbHVlIGlzIG9uZSBzYW1wbGUgYmVo
aW5kLiBVcGRhdGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2FtcGxlIHZhbHVlIGJ5IG9uZSBz
YW1wbGUsIGJ1dCBvbmx5IGF0IHRoZSBzdGFydCBvZgorICAgICAgICAgICAgICAgIC8vIHRoaXMg
Q2FuY2VsVmFsdWVzIGV2ZW50LgorICAgICAgICAgICAgICAgIGlmIChldmVudC5oYXNEZWZhdWx0
Q2FuY2VsbGVkVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldmVudC52YWx1
ZSgpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhdXRvIGNh
bmNlbFRpbWUgPSB0aW1lMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMSAmJiBjYW5j
ZWxUaW1lIDw9IGN1cnJlbnRUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2FuY2VsVGltZSArIHNhbXBs
ZUZyYW1lVGltZUluY3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbGFzdEV2ZW50
VHlwZSA9IG1fZXZlbnRzW2kgLSAxXS0+dHlwZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGxhc3RFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6U2V0VGFyZ2V0KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmxvYXQgdGFyZ2V0ID0gbV9ldmVudHNbaSAtIDFdLT52YWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRpbWVDb25zdGFudCA9IG1fZXZl
bnRzW2kgLSAxXS0+dGltZUNvbnN0YW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgZGlzY3JldGVUaW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oQXVkaW9VdGls
aXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIGNv
bnRyb2xSYXRlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gKHRhcmdl
dCAtIHZhbHVlKSAqIGRpc2NyZXRlVGltZUNvbnN0YW50OwogICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZh
bHVlQ3VydmU6Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBmbG9hdCog
Y3VydmVEYXRhID0gZXZlbnQuY3VydmUoKS5kYXRhKCk7Ci0gICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIG51bWJlck9mQ3VydmVQb2ludHMgPSBldmVudC5jdXJ2ZSgpLnNpemUoKTsKLQotICAg
ICAgICAgICAgICAgICAgICAvLyBDdXJ2ZSBldmVudHMgaGF2ZSBkdXJhdGlvbiwgc28gZG9uJ3Qg
anVzdCB1c2UgbmV4dCBldmVudCB0aW1lLgotICAgICAgICAgICAgICAgICAgICBhdXRvIGR1cmF0
aW9uID0gZXZlbnQuZHVyYXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBkdXJhdGlv
bkZyYW1lcyA9IGR1cmF0aW9uLnZhbHVlKCkgKiBzYW1wbGVSYXRlOwotICAgICAgICAgICAgICAg
ICAgICBmbG9hdCBjdXJ2ZVBvaW50c1BlckZyYW1lID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG51bWJl
ck9mQ3VydmVQb2ludHMpIC8gZHVyYXRpb25GcmFtZXM7Ci0KLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFjdXJ2ZURhdGEgfHwgIW51bWJlck9mQ3VydmVQb2ludHMgfHwgZHVyYXRpb24gPD0gMF9z
IHx8IHNhbXBsZVJhdGUgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXJyb3Ig
Y29uZGl0aW9uIC0gc2ltcGx5IHByb3BhZ2F0ZSBwcmV2aW91cyB2YWx1ZS4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRUaW1lID0gZmlsbFRvVGltZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4
KQorICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKIAotICAg
ICAgICAgICAgICAgICAgICAvLyBTYXZlIG9sZCB2YWx1ZXMgYW5kIHJlY2FsY3VsYXRlIGluZm9y
bWF0aW9uIGJhc2VkIG9uIHRoZSBjdXJ2ZSdzIGR1cmF0aW9uCi0gICAgICAgICAgICAgICAgICAg
IC8vIGluc3RlYWQgb2YgdGhlIG5leHQgZXZlbnQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbmV4dEV2ZW50RmlsbFRvRnJhbWUgPSBmaWxsVG9GcmFtZTsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBuZXh0RXZlbnRGaWxsVG9UaW1lID0gZmlsbFRvVGltZTsKLSAgICAgICAg
ICAgICAgICAgICAgZmlsbFRvVGltZSA9IHN0ZDo6bWluKGVuZFRpbWUsIHRpbWUxICsgZHVyYXRp
b24pOwotICAgICAgICAgICAgICAgICAgICBmaWxsVG9GcmFtZSA9IEF1ZGlvVXRpbGl0aWVzOjp0
aW1lVG9TYW1wbGVGcmFtZSgoZmlsbFRvVGltZSAtIHN0YXJ0VGltZSkudmFsdWUoKSwgc2FtcGxl
UmF0ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbGxUb0ZyYW1lID0gc3RkOjptaW4oZmlsbFRv
RnJhbWUsIG51bWJlck9mVmFsdWVzKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBJbmRleCBp
bnRvIHRoZSBjdXJ2ZSBkYXRhIHVzaW5nIGEgZmxvYXRpbmctcG9pbnQgdmFsdWUuCi0gICAgICAg
ICAgICAgICAgICAgIC8vIFdlJ3JlIHNjYWxpbmcgdGhlIG51bWJlciBvZiBjdXJ2ZSBwb2ludHMg
YnkgdGhlIGR1cmF0aW9uIChzZWUgY3VydmVQb2ludHNQZXJGcmFtZSkuCi0gICAgICAgICAgICAg
ICAgICAgIGZsb2F0IGN1cnZlVmlydHVhbEluZGV4ID0gMDsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRpbWUxIDwgY3VycmVudFRpbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElu
ZGV4IHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjdXJ2ZSBkYXRhLgotICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3QgdXNlIHRpbWVUb1NhbXBsZUZyYW1lKCkgc2luY2Ugd2Ug
d2FudCB0aGUgZXhhY3QgZmxvYXRpbmctcG9pbnQgZnJhbWUuCi0gICAgICAgICAgICAgICAgICAg
ICAgICBmbG9hdCBmcmFtZU9mZnNldCA9IChjdXJyZW50VGltZSAtIHRpbWUxKS52YWx1ZSgpICog
c2FtcGxlUmF0ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnZlVmlydHVhbEluZGV4ID0g
Y3VydmVQb2ludHNQZXJGcmFtZSAqIGZyYW1lT2Zmc2V0OwotICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNl
dFRhcmdldDogeworICAgICAgICAgICAgICAgIGN1cnJlbnRUaW1lID0gZmlsbFRvVGltZTsKIAot
ICAgICAgICAgICAgICAgICAgICAvLyBSZW5kZXIgdGhlIHN0cmV0Y2hlZCBjdXJ2ZSBkYXRhIHVz
aW5nIG5lYXJlc3QgbmVpZ2hib3Igc2FtcGxpbmcuCi0gICAgICAgICAgICAgICAgICAgIC8vIE92
ZXJzYW1wbGVkIGN1cnZlIGRhdGEgY2FuIGJlIHByb3ZpZGVkIGlmIHNtb290aG5lc3MgaXMgZGVz
aXJlZC4KKyAgICAgICAgICAgICAgICAvLyBFeHBvbmVudGlhbCBhcHByb2FjaCB0byB0YXJnZXQg
dmFsdWUgd2l0aCBnaXZlbiB0aW1lIGNvbnN0YW50LgorICAgICAgICAgICAgICAgIGZsb2F0IHRh
cmdldCA9IGV2ZW50LnZhbHVlKCk7CisgICAgICAgICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50
ID0gZXZlbnQudGltZUNvbnN0YW50KCk7CisgICAgICAgICAgICAgICAgZmxvYXQgZGlzY3JldGVU
aW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oQXVkaW9VdGlsaXRpZXM6OmRpc2NyZXRl
VGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIGNvbnRyb2xSYXRlKSk7CisK
KyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgY2xvc2UgZW5vdWdoIHRvIHRoZSB0
YXJnZXQsIGp1c3QgZmlsbCBpbiB0aGUgZGF0YQorICAgICAgICAgICAgICAgIC8vIHdpdGggdGhl
IHRhcmdldCB2YWx1ZS4KKyAgICAgICAgICAgICAgICBpZiAoaGFzU2V0VGFyZ2V0Q29udmVyZ2Vk
KHZhbHVlLCB0YXJnZXQsIGN1cnJlbnRUaW1lLCB0aW1lMSwgdGltZUNvbnN0YW50KSkgeworICAg
ICAgICAgICAgICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRl
SW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB0YXJn
ZXQ7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGFyZ2V0OworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNlcmlhbGx5IHByb2Nlc3MgcmVtYWlu
aW5nIHZhbHVlcy4KICAgICAgICAgICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxs
VG9GcmFtZTsgKyt3cml0ZUluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGVh
bGx5IHdlJ2QgdXNlIHJvdW5kKCkgZnJvbSBNYXRoRXh0cmFzLCBidXQgd2UncmUgaW4gYSB0aWdo
dCBsb29wIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSdyZSB0cmFkaW5n
IG9mZiBwcmVjaXNpb24gZm9yIGV4dHJhIHNwZWVkLgotICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY3VydmVJbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPigwLjUgKyBjdXJ2ZVZp
cnR1YWxJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0g
PSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICh0YXJnZXQgLSB2YWx1
ZSkgKiBkaXNjcmV0ZVRpbWVDb25zdGFudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICAgICAgY3VydmVWaXJ0dWFsSW5kZXgg
Kz0gY3VydmVQb2ludHNQZXJGcmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZTogeworICAg
ICAgICAgICAgICAgIGZsb2F0KiBjdXJ2ZURhdGEgPSBldmVudC5jdXJ2ZSgpLmRhdGEoKTsKKyAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkN1cnZlUG9pbnRzID0gZXZlbnQuY3VydmUo
KS5zaXplKCk7CisgICAgICAgICAgICAgICAgZmxvYXQgY3VydmVFbmRWYWx1ZSA9IGV2ZW50LmN1
cnZlRW5kVmFsdWUoKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gQm91bmRzIGNoZWNr
LgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnZlSW5kZXggPCBudW1iZXJPZkN1cnZl
UG9pbnRzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3VydmVEYXRhW2N1
cnZlSW5kZXhdOworICAgICAgICAgICAgICAgIC8vIEN1cnZlIGV2ZW50cyBoYXZlIGR1cmF0aW9u
LCBzbyBkb24ndCBqdXN0IHVzZSBuZXh0IGV2ZW50IHRpbWUuCisgICAgICAgICAgICAgICAgYXV0
byBkdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgZG91YmxlIGN1
cnZlUG9pbnRzUGVyRnJhbWUgPSBldmVudC5jdXJ2ZVBvaW50c1BlclNlY29uZCgpIC8gc2FtcGxl
UmF0ZTsKIAorICAgICAgICAgICAgICAgIGlmICghY3VydmVEYXRhIHx8ICFudW1iZXJPZkN1cnZl
UG9pbnRzIHx8IGR1cmF0aW9uIDw9IDBfcyB8fCBzYW1wbGVSYXRlIDw9IDApIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gRXJyb3IgY29uZGl0aW9uIC0gc2ltcGx5IHByb3BhZ2F0ZSBwcmV2aW91
cyB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRpbWUgPSBmaWxsVG9UaW1lOwor
ICAgICAgICAgICAgICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dy
aXRlSW5kZXgpCiAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2
YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBh
bnkgdGltZSBsZWZ0IGFmdGVyIHRoZSBkdXJhdGlvbiBvZiB0aGlzIGV2ZW50IGFuZCB0aGUgc3Rh
cnQKLSAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIG5leHQsIHRoZW4ganVzdCBwcm9wYWdh
dGUgdGhlIGxhc3QgdmFsdWUuCisgICAgICAgICAgICAgICAgLy8gU2F2ZSBvbGQgdmFsdWVzIGFu
ZCByZWNhbGN1bGF0ZSBpbmZvcm1hdGlvbiBiYXNlZCBvbiB0aGUgY3VydmUncyBkdXJhdGlvbgor
ICAgICAgICAgICAgICAgIC8vIGluc3RlYWQgb2YgdGhlIG5leHQgZXZlbnQgdGltZS4KKyAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBuZXh0RXZlbnRGaWxsVG9GcmFtZSA9IGZpbGxUb0ZyYW1lOwor
ICAgICAgICAgICAgICAgIGF1dG8gbmV4dEV2ZW50RmlsbFRvVGltZSA9IGZpbGxUb1RpbWU7Cisg
ICAgICAgICAgICAgICAgZmlsbFRvVGltZSA9IHN0ZDo6bWluKGVuZFRpbWUsIHRpbWUxICsgZHVy
YXRpb24pOworICAgICAgICAgICAgICAgIGZpbGxUb0ZyYW1lID0gQXVkaW9VdGlsaXRpZXM6OnRp
bWVUb1NhbXBsZUZyYW1lKChmaWxsVG9UaW1lIC0gc3RhcnRUaW1lKS52YWx1ZSgpLCBzYW1wbGVS
YXRlKTsKKyAgICAgICAgICAgICAgICBmaWxsVG9GcmFtZSA9IHN0ZDo6bWluKGZpbGxUb0ZyYW1l
LCBudW1iZXJPZlZhbHVlcyk7CisKKyAgICAgICAgICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSBj
dXJ2ZSBkYXRhIHVzaW5nIGEgZmxvYXRpbmctcG9pbnQgdmFsdWUuCisgICAgICAgICAgICAgICAg
Ly8gV2UncmUgc2NhbGluZyB0aGUgbnVtYmVyIG9mIGN1cnZlIHBvaW50cyBieSB0aGUgZHVyYXRp
b24gKHNlZSBjdXJ2ZVBvaW50c1BlckZyYW1lKS4KKyAgICAgICAgICAgICAgICBkb3VibGUgY3Vy
dmVWaXJ0dWFsSW5kZXggPSAwOworICAgICAgICAgICAgICAgIGlmICh0aW1lMSA8IGN1cnJlbnRU
aW1lKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEluZGV4IHNvbWV3aGVyZSBpbiB0aGUgbWlk
ZGxlIG9mIHRoZSBjdXJ2ZSBkYXRhLgorICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCB1c2Ug
dGltZVRvU2FtcGxlRnJhbWUoKSBzaW5jZSB3ZSB3YW50IHRoZSBleGFjdCBmbG9hdGluZy1wb2lu
dCBmcmFtZS4KKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIGZyYW1lT2Zmc2V0ID0gKGN1cnJl
bnRUaW1lIC0gdGltZTEpLnZhbHVlKCkgKiBzYW1wbGVSYXRlOworICAgICAgICAgICAgICAgICAg
ICBjdXJ2ZVZpcnR1YWxJbmRleCA9IGN1cnZlUG9pbnRzUGVyRnJhbWUgKiBmcmFtZU9mZnNldDsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIGRlZmF1bHQg
dmFsdWUgaW4gY2FzZSBmaWxsVG9GcmFtZSBpcyAwLgorICAgICAgICAgICAgICAgIHZhbHVlID0g
Y3VydmVFbmRWYWx1ZTsKKworICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgc3RyZXRjaGVk
IGN1cnZlIGRhdGEgdXNpbmcgbmVhcmVzdCBuZWlnaGJvciBzYW1wbGluZy4KKyAgICAgICAgICAg
ICAgICAvLyBPdmVyc2FtcGxlZCBjdXJ2ZSBkYXRhIGNhbiBiZSBwcm92aWRlZCBpZiBzbW9vdGhu
ZXNzIGlzIGRlc2lyZWQuCisgICAgICAgICAgICAgICAgaW50IGsgPSAwOworICAgICAgICAgICAg
ICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCwgKytrKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIENvbXB1dGUgY3VycmVudCBpbmRleCB0aGlzIHdheSB0
byBtaW5pbWl6ZSByb3VuZC1vZmYgdGhhdCB3b3VsZAorICAgICAgICAgICAgICAgICAgICAvLyBo
YXZlIG9jY3VycmVkIGJ5IGluY3JlbWVudGluZyB0aGUgaW5kZXggYnkgY3VydmVQb2ludHNQZXJG
cmFtZS4KKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIGN1cnJlbnRWaXJ0dWFsSW5kZXggPSBj
dXJ2ZVZpcnR1YWxJbmRleCArIGsgKiBjdXJ2ZVBvaW50c1BlckZyYW1lOworICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjdXJ2ZUluZGV4MDsKKworICAgICAgICAgICAgICAgICAgICAvLyBD
bGFtcCBpbmRleCB0byB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBhcnJheS4KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGN1cnJlbnRWaXJ0dWFsSW5kZXggPCBudW1iZXJPZkN1cnZlUG9pbnRzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgY3VydmVJbmRleDAgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oY3VycmVudFZpcnR1YWxJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnZlSW5kZXgwID0gbnVtYmVyT2ZDdXJ2ZVBvaW50cyAtIDE7
CisKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY3VydmVJbmRleDEgPSBzdGQ6Om1pbihj
dXJ2ZUluZGV4MCArIDEsIG51bWJlck9mQ3VydmVQb2ludHMgLSAxKTsKKworICAgICAgICAgICAg
ICAgICAgICAvLyBMaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSB0d28gbmVhcmVzdCBj
dXJ2ZSBwb2ludHMuCisgICAgICAgICAgICAgICAgICAgIC8vIHxkZWx0YXwgaXMgY2xhbXBlZCB0
byAxIGJlY2F1c2UgY3VycmVudFZpcnR1YWxJbmRleCBjYW4gZXhjZWVkCisgICAgICAgICAgICAg
ICAgICAgIC8vIGN1cnZlSW5kZXgwIGJ5IG1vcmUgdGhhbiBvbmUuIFRoaXMgY2FuIGhhcHBlbiB3
aGVuIHdlIHJlYWNoZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgY3Vy
dmUgYnV0IHN0aWxsIG5lZWQgdmFsdWVzIHRvIGZpbGwgb3V0IHRoZQorICAgICAgICAgICAgICAg
ICAgICAvLyBjdXJyZW50IHJlbmRlcmluZyBxdWFudHVtLgorICAgICAgICAgICAgICAgICAgICBB
U1NFUlQoY3VydmVJbmRleDAgPCBudW1iZXJPZkN1cnZlUG9pbnRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKGN1cnZlSW5kZXgxIDwgbnVtYmVyT2ZDdXJ2ZVBvaW50cyk7CisgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IGMwID0gY3VydmVEYXRhW2N1cnZlSW5kZXgwXTsKKyAgICAgICAg
ICAgICAgICAgICAgZmxvYXQgYzEgPSBjdXJ2ZURhdGFbY3VydmVJbmRleDFdOworICAgICAgICAg
ICAgICAgICAgICBkb3VibGUgZGVsdGEgPSBzdGQ6Om1pbihjdXJyZW50VmlydHVhbEluZGV4IC0g
Y3VydmVJbmRleDAsIDEuMCk7CisKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjMCArIChj
MSAtIGMwKSAqIGRlbHRhOworCisgICAgICAgICAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4
XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIElmIHRo
ZXJlJ3MgYW55IHRpbWUgbGVmdCBhZnRlciB0aGUgZHVyYXRpb24gb2YgdGhpcyBldmVudCBhbmQg
dGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIG5leHQsIHRoZW4ganVzdCBwcm9w
YWdhdGUgdGhlIGxhc3QgdmFsdWUuCisgICAgICAgICAgICAgICAgaWYgKHdyaXRlSW5kZXggPCBu
ZXh0RXZlbnRGaWxsVG9GcmFtZSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGN1cnZl
RW5kVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgbmV4dEV2
ZW50RmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkKICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgICAgICAvLyBSZS1hZGp1c3QgY3VycmVudCB0aW1lCi0gICAgICAgICAgICAgICAgICAg
IGN1cnJlbnRUaW1lID0gbmV4dEV2ZW50RmlsbFRvVGltZTsKKyAgICAgICAgICAgICAgICAvLyBS
ZS1hZGp1c3QgY3VycmVudCB0aW1lCisgICAgICAgICAgICAgICAgY3VycmVudFRpbWUgPSBuZXh0
RXZlbnRGaWxsVG9UaW1lOwogCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNhc2UgUGFyYW1FdmVudDo6TGFzdFR5cGU6CisgICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CkBAIC00MjUsNiArNTkyLDE0NSBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxp
bmU6OnZhbHVlc0ZvclRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5k
VAogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjpsaW5l
YXJSYW1wQXRUaW1lKFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9h
dCB2YWx1ZTIsIFNlY29uZHMgdGltZTIpCit7CisgICAgcmV0dXJuIHZhbHVlMSArICh2YWx1ZTIg
LSB2YWx1ZTEpICogKHQgLSB0aW1lMSkudmFsdWUoKSAvICh0aW1lMiAtIHRpbWUxKS52YWx1ZSgp
OworfQorCitmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFsUmFtcEF0VGltZShT
ZWNvbmRzIHQsIGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNv
bmRzIHRpbWUyKQoreworICAgIHJldHVybiB2YWx1ZTEgKiBwb3codmFsdWUyIC8gdmFsdWUxLCAo
dCAtIHRpbWUxKS52YWx1ZSgpIC8gKHRpbWUyIC0gdGltZTEpLnZhbHVlKCkpOworfQorCitmbG9h
dCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlQ3VydmVBdFRpbWUoU2Vjb25kcyB0LCBTZWNvbmRz
IHRpbWUxLCBTZWNvbmRzIGR1cmF0aW9uLCBjb25zdCBmbG9hdCogY3VydmVEYXRhLCBzaXplX3Qg
Y3VydmVMZW5ndGgpCit7CisgICAgZG91YmxlIGN1cnZlSW5kZXggPSAoY3VydmVMZW5ndGggLSAx
KSAvIGR1cmF0aW9uLnZhbHVlKCkgKiAodCAtIHRpbWUxKS52YWx1ZSgpOworICAgIHNpemVfdCBr
ID0gc3RkOjptaW4oc3RhdGljX2Nhc3Q8c2l6ZV90PihjdXJ2ZUluZGV4KSwgY3VydmVMZW5ndGgg
LSAxKTsKKyAgICBzaXplX3QgazEgPSBzdGQ6Om1pbihrICsgMSwgY3VydmVMZW5ndGggLSAxKTsK
KyAgICBmbG9hdCBjMCA9IGN1cnZlRGF0YVtrXTsKKyAgICBmbG9hdCBjMSA9IGN1cnZlRGF0YVtr
MV07CisgICAgZmxvYXQgZGVsdGEgPSBzdGQ6Om1pbihjdXJ2ZUluZGV4IC0gaywgMS4wKTsKKwor
ICAgIHJldHVybiBjMCArIChjMSAtIGMwKSAqIGRlbHRhOworfQorCit2b2lkIEF1ZGlvUGFyYW1U
aW1lbGluZTo6aGFuZGxlQ2FuY2VsVmFsdWVzKFBhcmFtRXZlbnQmIGV2ZW50LCBQYXJhbUV2ZW50
KiBuZXh0RXZlbnQsIGZsb2F0JiB2YWx1ZTIsIFNlY29uZHMmIHRpbWUyLCBQYXJhbUV2ZW50OjpU
eXBlJiBuZXh0RXZlbnRUeXBlKQoreworICAgIGlmICghbmV4dEV2ZW50IHx8IG5leHRFdmVudC0+
dHlwZSgpICE9IFBhcmFtRXZlbnQ6OkNhbmNlbFZhbHVlcyB8fCAhbmV4dEV2ZW50LT5zYXZlZEV2
ZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZsb2F0IHZhbHVlMSA9IGV2ZW50LnZhbHVl
KCk7CisgICAgYXV0byB0aW1lMSA9IGV2ZW50LnRpbWUoKTsKKworICAgIHN3aXRjaCAoZXZlbnQu
dHlwZSgpKSB7CisgICAgY2FzZSBQYXJhbUV2ZW50OjpDYW5jZWxWYWx1ZXM6CisgICAgY2FzZSBQ
YXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZToKKyAgICBjYXNlIFBhcmFtRXZlbnQ6OkV4cG9u
ZW50aWFsUmFtcFRvVmFsdWU6CisgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRWYWx1ZTogeworICAg
ICAgICAvLyBUaGVzZSB0aHJlZSBldmVudHMgcG90ZW50aWFsbHkgZXN0YWJsaXNoIGEgc3RhcnRp
bmcgdmFsdWUgZm9yCisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgZXZlbnQsIHNvIHdlIG5lZWQg
dG8gZXhhbWluZSB0aGUgY2FuY2VsbGVkCisgICAgICAgIC8vIGV2ZW50IHRvIHNlZSB3aGF0IHRv
IGRvLgorICAgICAgICBhdXRvKiBzYXZlZEV2ZW50ID0gbmV4dEV2ZW50LT5zYXZlZEV2ZW50KCk7
CisKKyAgICAgICAgLy8gVXBkYXRlIHRoZSBlbmQgdGltZSBhbmQgdHlwZSB0byBwcmV0ZW5kIHRo
YXQgd2UncmUgcnVubmluZworICAgICAgICAvLyB0aGlzIHNhdmVkIGV2ZW50IHR5cGUuCisgICAg
ICAgIHRpbWUyID0gbmV4dEV2ZW50LT50aW1lKCk7CisgICAgICAgIG5leHRFdmVudFR5cGUgPSBz
YXZlZEV2ZW50LT50eXBlKCk7CisKKyAgICAgICAgaWYgKG5leHRFdmVudC0+aGFzRGVmYXVsdENh
bmNlbGxlZFZhbHVlKCkpIHsKKyAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgZXN0YWJsaXNo
ZWQgYSB2YWx1ZSBmb3IgdGhlIGNhbmNlbGxlZAorICAgICAgICAgICAgLy8gZXZlbnQsIHNvIGp1
c3QgcmV0dXJuIGl0LgorICAgICAgICAgICAgdmFsdWUyID0gbmV4dEV2ZW50LT52YWx1ZSgpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgdGhlIG5leHQgZXZlbnQgd291bGQg
aGF2ZSBiZWVuIGEgTGluZWFyUmFtcCBvcgorICAgICAgICAgICAgLy8gRXhwb25lbnRpYWxSYW1w
LCB3ZSBuZWVkIHRvIGNvbXB1dGUgYSBuZXcgZW5kIHZhbHVlIGZvcgorICAgICAgICAgICAgLy8g
dGhlIGV2ZW50IHNvIHRoYXQgdGhlIGN1cnZlIHdvcmtzIGNvbnRpbnVlcyBhcyBpZiBpdCB3ZXJl
CisgICAgICAgICAgICAvLyBub3QgY2FuY2VsbGVkLgorICAgICAgICAgICAgc3dpdGNoIChzYXZl
ZEV2ZW50LT50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6TGluZWFyUmFt
cFRvVmFsdWU6CisgICAgICAgICAgICAgICAgdmFsdWUyID0gbGluZWFyUmFtcEF0VGltZShuZXh0
RXZlbnQtPnRpbWUoKSwgdmFsdWUxLCB0aW1lMSwgc2F2ZWRFdmVudC0+dmFsdWUoKSwgc2F2ZWRF
dmVudC0+dGltZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
UGFyYW1FdmVudDo6RXhwb25lbnRpYWxSYW1wVG9WYWx1ZToKKyAgICAgICAgICAgICAgICB2YWx1
ZTIgPSBleHBvbmVudGlhbFJhbXBBdFRpbWUobmV4dEV2ZW50LT50aW1lKCksIHZhbHVlMSwgdGlt
ZTEsIHNhdmVkRXZlbnQtPnZhbHVlKCksIHNhdmVkRXZlbnQtPnRpbWUoKSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlQ3VydmU6
CisgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OlNldFZhbHVlOgorICAgICAgICAgICAgY2Fz
ZSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQ6CisgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6OkNh
bmNlbFZhbHVlczoKKyAgICAgICAgICAgICAgICAvLyBUaGVzZSBjYW5ub3QgYmUgcG9zc2libGUg
dHlwZXMgZm9yIHRoZSBzYXZlZCBldmVudCBiZWNhdXNlIHRoZXkgY2FuJ3QgYmUgY3JlYXRlZC4K
KyAgICAgICAgICAgICAgICAvLyBjcmVhdGVDYW5jZWxWYWx1ZXNFdmVudCBkb2Vzbid0IGFsbG93
IHRoZW0gKFNldFZhbHVlLCBTZXRUYXJnZXQsIENhbmNlbFZhbHVlcykgb3IKKyAgICAgICAgICAg
ICAgICAvLyBjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoKSBkb2Vzbid0IGNyZWF0ZSBzdWNoIGFuIGV2
ZW50IChTZXRWYWx1ZUN1cnZlKS4KKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVudDo6
TGFzdFR5cGU6CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENhY2hlIHRo
ZSBuZXcgdmFsdWUgc28gd2UgZG9uJ3Qga2VlcCBjb21wdXRpbmcgaXQgb3ZlciBhbmQgb3Zlci4K
KyAgICAgICAgICAgIG5leHRFdmVudC0+c2V0Q2FuY2VsbGVkVmFsdWUodmFsdWUyKTsKKyAgICAg
ICAgfQorICAgIH0gYnJlYWs7CisgICAgY2FzZSBQYXJhbUV2ZW50OjpTZXRWYWx1ZUN1cnZlOgor
ICAgICAgICAvLyBFdmVyeXRoaW5nIG5lZWRlZCBmb3IgdGhpcyB3YXMgaGFuZGxlZCB3aGVuIGNh
bmNlbGxpbmcgd2FzCisgICAgICAgIC8vIGRvbmUuCisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UGFyYW1FdmVudDo6U2V0VGFyZ2V0OgorICAgICAgICAvLyBOb3RoaW5nIHNwZWNpYWwgbmVlZHMg
dG8gYmUgZG9uZSBmb3IgU2V0VGFyZ2V0CisgICAgICAgIC8vIGZvbGxvd2VkIGJ5IENhbmNlbFZh
bHVlcy4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhbUV2ZW50OjpMYXN0VHlwZToKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
YXV0byBBdWRpb1BhcmFtVGltZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQo
ZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkgLT4gVW5pcXVlUmVmPFBhcmFtRXZlbnQ+Cit7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1FdmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWUs
IHZhbHVlLCB0aW1lLCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51
bGxwdHIpOworfQorCithdXRvIEF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6Y3JlYXRl
TGluZWFyUmFtcEV2ZW50KGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpIC0+IFVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PgoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KFBhcmFt
RXZlbnQ6OkxpbmVhclJhbXBUb1ZhbHVlLCB2YWx1ZSwgdGltZSwgMCwgU2Vjb25kcyB7IH0sIFZl
Y3RvcjxmbG9hdD4geyB9LCAwLCAwLCBudWxscHRyKTsKK30KKworYXV0byBBdWRpb1BhcmFtVGlt
ZWxpbmU6OlBhcmFtRXZlbnQ6OmNyZWF0ZUV4cG9uZW50aWFsUmFtcEV2ZW50KGZsb2F0IHZhbHVl
LCBTZWNvbmRzIHRpbWUpIC0+IFVuaXF1ZVJlZjxQYXJhbUV2ZW50PgoreworICAgIHJldHVybiBt
YWtlVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KFBhcmFtRXZlbnQ6OkV4cG9uZW50aWFsUmFtcFRvVmFs
dWUsIHZhbHVlLCB0aW1lLCAwLCBTZWNvbmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAs
IG51bGxwdHIpOworfQorCithdXRvIEF1ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6Y3Jl
YXRlU2V0VGFyZ2V0RXZlbnQoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRpbWVD
b25zdGFudCkgLT4gVW5pcXVlUmVmPFBhcmFtRXZlbnQ+Cit7CisgICAgLy8gVGhlIHRpbWUgbGlu
ZSBjb2RlIGRvZXMgbm90IGV4cGVjdCBhIHRpbWVDb25zdGFudCBvZiAwLiAoSXQgcmV0dXJucyBO
YU4gb3IgSW5maW5pdHkgZHVlIHRvIGRpdmlzaW9uIGJ5IHplcm8uIFRoZSBjYWxsZXIKKyAgICAv
LyBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyB0byBhIFNldFZhbHVlRXZlbnQuCisgICAgQVNT
RVJUKCEhdGltZUNvbnN0YW50KTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQYXJhbUV2ZW50
PihQYXJhbUV2ZW50OjpTZXRUYXJnZXQsIHRhcmdldCwgdGltZSwgdGltZUNvbnN0YW50LCBTZWNv
bmRzIHsgfSwgVmVjdG9yPGZsb2F0PiB7IH0sIDAsIDAsIG51bGxwdHIpOworfQorCithdXRvIEF1
ZGlvUGFyYW1UaW1lbGluZTo6UGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFZl
Y3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9uKSAtPiBV
bmlxdWVSZWY8UGFyYW1FdmVudD4KK3sKKyAgICBkb3VibGUgY3VydmVQb2ludHNQZXJTZWNvbmQg
PSAoY3VydmUuc2l6ZSgpIC0gMSkgLyBkdXJhdGlvbi52YWx1ZSgpOworICAgIGZsb2F0IGN1cnZl
RW5kVmFsdWUgPSBjdXJ2ZS5sYXN0KCk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UGFyYW1F
dmVudD4oUGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZSwgMCwgdGltZSwgMCwgZHVyYXRpb24sIFdU
Rk1vdmUoY3VydmUpLCBjdXJ2ZVBvaW50c1BlclNlY29uZCwgY3VydmVFbmRWYWx1ZSwgbnVsbHB0
cik7Cit9CisKK2F1dG8gQXVkaW9QYXJhbVRpbWVsaW5lOjpQYXJhbUV2ZW50OjpjcmVhdGVDYW5j
ZWxWYWx1ZXNFdmVudChTZWNvbmRzIGNhbmNlbFRpbWUsIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2
ZW50PiBzYXZlZEV2ZW50KSAtPiBVbmlxdWVSZWY8UGFyYW1FdmVudD4KK3sKKyNpZiBBU1NFUlRf
RU5BQkxFRAorICAgIGlmIChzYXZlZEV2ZW50KSB7CisgICAgICAgIC8vIFRoZSBzYXZlZEV2ZW50
IGNhbiBvbmx5IGhhdmUgY2VydGFpbiBldmVudCB0eXBlcy4gVmVyaWZ5IHRoYXQuCisgICAgICAg
IGF1dG8gc2F2ZWRFdmVudFR5cGUgPSBzYXZlZEV2ZW50LT50eXBlKCk7CisKKyAgICAgICAgQVNT
RVJUKHNhdmVkRXZlbnRUeXBlICE9IFBhcmFtRXZlbnQ6Okxhc3RUeXBlKTsKKyAgICAgICAgQVNT
RVJUKHNhdmVkRXZlbnRUeXBlID09IFBhcmFtRXZlbnQ6OkxpbmVhclJhbXBUb1ZhbHVlCisgICAg
ICAgICAgICB8fCBzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpFeHBvbmVudGlhbFJhbXBU
b1ZhbHVlCisgICAgICAgICAgICB8fCBzYXZlZEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpTZXRW
YWx1ZUN1cnZlKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQYXJh
bUV2ZW50PihQYXJhbUV2ZW50OjpDYW5jZWxWYWx1ZXMsIDAsIGNhbmNlbFRpbWUsIDAsIFNlY29u
ZHMgeyB9LCBWZWN0b3I8ZmxvYXQ+IHsgfSwgMCwgMCwgV1RGTW92ZShzYXZlZEV2ZW50KSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1U
aW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuaAppbmRleCBjOTBlMDg1ODQyYjYzMTNmMjIxNTAzNDE4M2NiMTkyZTBlOWUwNDQwLi4y
M2RlNTQ0MDgzNTA1ZTcyYzhjZWZmMTU1ODUyYzRmNWJjNzUxYTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKQEAgLTQ4
LDcgKzQ4LDggQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGV4cG9uZW50aWFsUmFt
cFRvVmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSk7CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lLCBmbG9h
dCB0aW1lQ29uc3RhbnQpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQ3VydmVBdFRp
bWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVyYXRpb24p
OwotICAgIHZvaWQgY2FuY2VsU2NoZWR1bGVkVmFsdWVzKFNlY29uZHMgc3RhcnRUaW1lKTsKKyAg
ICB2b2lkIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpOworICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IGNhbmNlbEFuZEhvbGRBdFRpbWUoU2Vjb25kcyBjYW5jZWxUaW1lKTsK
IAogICAgIC8vIGhhc1ZhbHVlIGlzIHNldCB0byB0cnVlIGlmIGEgdmFsaWQgdGltZWxpbmUgdmFs
dWUgaXMgcmV0dXJuZWQuCiAgICAgLy8gb3RoZXJ3aXNlIGRlZmF1bHRWYWx1ZSBpcyByZXR1cm5l
ZC4KQEAgLTY1LDYgKzY2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGNsYXNzIFBhcmFt
RXZlbnQgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAg
ICAgICAgIGVudW0gVHlwZSB7CiAgICAgICAgICAgICBTZXRWYWx1ZSwKQEAgLTcyLDM5ICs3NCw5
NSBAQCBwcml2YXRlOgogICAgICAgICAgICAgRXhwb25lbnRpYWxSYW1wVG9WYWx1ZSwKICAgICAg
ICAgICAgIFNldFRhcmdldCwKICAgICAgICAgICAgIFNldFZhbHVlQ3VydmUsCisgICAgICAgICAg
ICBDYW5jZWxWYWx1ZXMsCiAgICAgICAgICAgICBMYXN0VHlwZQogICAgICAgICB9OwogCi0gICAg
ICAgIFBhcmFtRXZlbnQoVHlwZSB0eXBlLCBmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lLCBmbG9h
dCB0aW1lQ29uc3RhbnQsIFNlY29uZHMgZHVyYXRpb24sIFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSkK
KyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVTZXRWYWx1ZUV2ZW50
KGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpOworICAgICAgICBzdGF0aWMgVW5pcXVlUmVmPFBh
cmFtRXZlbnQ+IGNyZWF0ZUxpbmVhclJhbXBFdmVudChmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1l
KTsKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVFeHBvbmVudGlh
bFJhbXBFdmVudChmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKTsKKyAgICAgICAgc3RhdGljIFVu
aXF1ZVJlZjxQYXJhbUV2ZW50PiBjcmVhdGVTZXRUYXJnZXRFdmVudChmbG9hdCB0YXJnZXQsIFNl
Y29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0YW50KTsKKyAgICAgICAgc3RhdGljIFVuaXF1ZVJl
ZjxQYXJhbUV2ZW50PiBjcmVhdGVTZXRWYWx1ZUN1cnZlRXZlbnQoVmVjdG9yPGZsb2F0PiYmIGN1
cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVyYXRpb24pOworICAgICAgICBzdGF0aWMgVW5p
cXVlUmVmPFBhcmFtRXZlbnQ+IGNyZWF0ZUNhbmNlbFZhbHVlc0V2ZW50KFNlY29uZHMgY2FuY2Vs
VGltZSwgc3RkOjp1bmlxdWVfcHRyPFBhcmFtRXZlbnQ+IHNhdmVkRXZlbnQpOworCisgICAgICAg
IFBhcmFtRXZlbnQoVHlwZSB0eXBlLCBmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0
aW1lQ29uc3RhbnQsIFNlY29uZHMgZHVyYXRpb24sIFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgZG91
YmxlIGN1cnZlUG9pbnRzUGVyU2Vjb25kLCBmbG9hdCBjdXJ2ZUVuZFZhbHVlLCBzdGQ6OnVuaXF1
ZV9wdHI8UGFyYW1FdmVudD4gc2F2ZWRFdmVudCkKICAgICAgICAgICAgIDogbV90eXBlKHR5cGUp
CiAgICAgICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAgICAgICAsIG1fdGltZSh0aW1l
KQogICAgICAgICAgICAgLCBtX3RpbWVDb25zdGFudCh0aW1lQ29uc3RhbnQpCiAgICAgICAgICAg
ICAsIG1fZHVyYXRpb24oZHVyYXRpb24pCiAgICAgICAgICAgICAsIG1fY3VydmUoV1RGTW92ZShj
dXJ2ZSkpCisgICAgICAgICAgICAsIG1fY3VydmVQb2ludHNQZXJTZWNvbmQoY3VydmVQb2ludHNQ
ZXJTZWNvbmQpCisgICAgICAgICAgICAsIG1fY3VydmVFbmRWYWx1ZShjdXJ2ZUVuZFZhbHVlKQor
ICAgICAgICAgICAgLCBtX3NhdmVkRXZlbnQoV1RGTW92ZShzYXZlZEV2ZW50KSkKICAgICAgICAg
ewogICAgICAgICB9CiAKLSAgICAgICAgdW5zaWduZWQgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQorICAgICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAg
ICAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgICAgIFNl
Y29uZHMgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQogICAgICAgICBmbG9hdCB0aW1l
Q29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVDb25zdGFudDsgfQogICAgICAgICBTZWNv
bmRzIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlvbjsgfQogICAgICAgICBWZWN0
b3I8ZmxvYXQ+JiBjdXJ2ZSgpIHsgcmV0dXJuIG1fY3VydmU7IH0KKyAgICAgICAgUGFyYW1FdmVu
dCogc2F2ZWRFdmVudCgpIHsgcmV0dXJuIG1fc2F2ZWRFdmVudC5nZXQoKTsgfQorCisgICAgICAg
IHZvaWQgc2V0Q2FuY2VsbGVkVmFsdWUoZmxvYXQgY2FuY2VsbGVkVmFsdWUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6Q2FuY2VsVmFsdWVzKTsKKyAgICAg
ICAgICAgIG1fdmFsdWUgPSBjYW5jZWxsZWRWYWx1ZTsKKyAgICAgICAgICAgIG1faGFzRGVmYXVs
dENhbmNlbGxlZFZhbHVlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBib29sIGhhc0RlZmF1
bHRDYW5jZWxsZWRWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gVHlwZTo6Q2FuY2VsVmFsdWVzKTsKKyAgICAgICAgICAgIHJldHVybiBtX2hhc0Rl
ZmF1bHRDYW5jZWxsZWRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSBjdXJ2ZVBv
aW50c1BlclNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VydmVQb2ludHNQZXJTZWNvbmQ7IH0K
KyAgICAgICAgZmxvYXQgY3VydmVFbmRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VydmVFbmRW
YWx1ZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdW5zaWduZWQgbV90eXBlOwotICAgICAg
ICBmbG9hdCBtX3ZhbHVlOworICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgZmxvYXQgbV92
YWx1ZSB7IDAgfTsKICAgICAgICAgU2Vjb25kcyBtX3RpbWU7Ci0gICAgICAgIGZsb2F0IG1fdGlt
ZUNvbnN0YW50OworCisgICAgICAgIC8vIE9ubHkgdXNlZCBmb3IgU2V0VGFyZ2V0IGV2ZW50cy4K
KyAgICAgICAgZmxvYXQgbV90aW1lQ29uc3RhbnQgeyAwIH07CisKKyAgICAgICAgLy8gVGhlIGR1
cmF0aW9uIG9mIHRoZSBjdXJ2ZS4KICAgICAgICAgU2Vjb25kcyBtX2R1cmF0aW9uOworCisgICAg
ICAgIC8vIFRoZSBhcnJheSBvZiBjdXJ2ZSBwb2ludHMuCiAgICAgICAgIFZlY3RvcjxmbG9hdD4g
bV9jdXJ2ZTsKKworICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGN1cnZlIHBvaW50cyBwZXIgc2Vj
b25kLiBpdCBpcyB1c2VkIHRvIGNvbXB1dGUKKyAgICAgICAgLy8gdGhlIGN1cnZlIGluZGV4IHN0
ZXAgd2hlbiBydW5uaW5nIHRoZSBhdXRvbWF0aW9uLgorICAgICAgICBkb3VibGUgbV9jdXJ2ZVBv
aW50c1BlclNlY29uZCB7IDAgfTsKKworICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSB0byB1
c2UgYXQgdGhlIGVuZCBvZiB0aGUgY3VydmUuIE5vcm1hbGx5CisgICAgICAgIC8vIGl0J3MgdGhl
IGxhc3QgZW50cnkgaW4gbV9jdXJ2ZSwgYnV0IGNhbmNlbGxpbmcgYSBTZXRWYWx1ZUN1cnZlCisg
ICAgICAgIC8vIHdpbGwgc2V0IHRoaXMgdG8gYSBuZXcgdmFsdWUuCisgICAgICAgIGZsb2F0IG1f
Y3VydmVFbmRWYWx1ZSB7IDAgfTsKKworICAgICAgICAvLyBUcnVlIGlmIGEgZGVmYXVsdCB2YWx1
ZSBoYXMgYmVlbiBhc3NpZ25lZCB0byB0aGUgQ2FuY2VsVmFsdWVzIGV2ZW50LgorICAgICAgICBi
b29sIG1faGFzRGVmYXVsdENhbmNlbGxlZFZhbHVlIHsgZmFsc2UgfTsKKworICAgICAgICAvLyBG
b3IgQ2FuY2VsVmFsdWVzLiBJZiBDYW5jZWxWYWx1ZXMgaXMgaW4gdGhlIG1pZGRsZSBvZiBhbiBl
dmVudCwgdGhpcworICAgICAgICAvLyBob2xkcyB0aGUgZXZlbnQgdGhhdCBpcyBiZWluZyBjYW5j
ZWxsZWQsIHNvIHRoYXQgcHJvY2Vzc2luZyBjYW4KKyAgICAgICAgLy8gY29udGludWUgYXMgaWYg
dGhlIGV2ZW50IHN0aWxsIGV4aXN0ZWQgdXAgdW50aWwgd2UgcmVhY2ggdGhlIGFjdHVhbAorICAg
ICAgICAvLyBzY2hlZHVsZWQgY2FuY2VsIHRpbWUuCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
YXJhbUV2ZW50PiBtX3NhdmVkRXZlbnQ7CiAgICAgfTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IGluc2VydEV2ZW50KGNvbnN0IFBhcmFtRXZlbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNhbmNlbGxl
ZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBpbnNlcnRFdmVudChVbmlxdWVSZWY8UGFyYW1FdmVudD4pOwogICAgIGZsb2F0IHZhbHVlc0Zv
clRpbWVSYW5nZUltcGwoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVGltZSwgZmxvYXQg
ZGVmYXVsdFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgZG91
YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSk7CisgICAgZmxvYXQgbGluZWFyUmFt
cEF0VGltZShTZWNvbmRzIHQsIGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFs
dWUyLCBTZWNvbmRzIHRpbWUyKTsKKyAgICBmbG9hdCBleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vj
b25kcyB0LCBmbG9hdCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25k
cyB0aW1lMik7CisgICAgZmxvYXQgdmFsdWVDdXJ2ZUF0VGltZShTZWNvbmRzIHQsIFNlY29uZHMg
dGltZTEsIFNlY29uZHMgZHVyYXRpb24sIGNvbnN0IGZsb2F0KiBjdXJ2ZURhdGEsIHNpemVfdCBj
dXJ2ZUxlbmd0aCk7CisgICAgdm9pZCBoYW5kbGVDYW5jZWxWYWx1ZXMoUGFyYW1FdmVudCYsIFBh
cmFtRXZlbnQqIG5leHRFdmVudCwgZmxvYXQmIHZhbHVlMiwgU2Vjb25kcyYgdGltZTIsIFBhcmFt
RXZlbnQ6OlR5cGUmIG5leHRFdmVudFR5cGUpOwogCi0gICAgVmVjdG9yPFBhcmFtRXZlbnQ+IG1f
ZXZlbnRzOworICAgIFZlY3RvcjxVbmlxdWVSZWY8UGFyYW1FdmVudD4+IG1fZXZlbnRzOwogCiAg
ICAgTG9jayBtX2V2ZW50c011dGV4OwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyN2EzMjE3ODUyOWM2ZmEwYWJhYWE2
ZjMwZTAxNjQ1MjA0NzQxYzQ1Li5lMzQ2YTY4MWI3MWY5YWRkMDg1MTcxYmZmZWY1NjUxMGQ0ZTM4
YWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDktMDcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb1BhcmFtLmNhbmNlbEFuZEhvbGRBdFRpbWUo
KSBpcyBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTU5NDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY4MzYyMDYxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJh
bS1jYW5jZWwtYW5kLWhvbGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
dWRpby9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmF1ZGlvL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qczogQWRkZWQuCisgICAg
ICAgIEltcG9ydCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSBmcm9tIEJsaW5rLgorCisgICAgICAgICog
d2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVBdFRpbWUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgUmVtb3ZlIG91dGRhdGVkIHRlc3QuIFRoaXMgdGVzdCBp
cyBub3cgcGFydCBvZiB3ZWItcGxhdGZvcm0tdGVzdHMgYXQKKyAgICAgICAgd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2UvYXVkaW9wYXJhbS1zZXRWYWx1ZUN1
cnZlQXRUaW1lLmh0bWwKKyAgICAgICAgYW5kIGlzIG5vdyBwYXNzaW5nLgorCiAyMDIwLTA5LTA2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udm9sdmVyTm9k
ZSBpbmNvcnJlY3RseSBvdXRwdXRzIHNpbGVuY2UgYmVjYXVzZSBtX3JldmVyYiBpcyBudWxsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5NDY0NmViMGY2ZDYyMTdkMGFjODhlYTZl
MDlkODIyMzFiYjRjZTEzLi5mNWYxMjdlOWExYjZiY2I3OTVjNTljMjQ4Nzc2YzJmOWYxNWZiMzYw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0w
OS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF1ZGlvUGFy
YW0uY2FuY2VsQW5kSG9sZEF0VGltZSgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTk0NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjgzNjIwNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgUmViYXNlbGluZSBXUFQgdGVzdHMgdGhhdCBhcmUgbm93IHBhc3NpbmcuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVB
dFRpbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9yZXRyb3NwZWN0aXZlLXNl
dFZhbHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA5LTA2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udm9sdmVyTm9kZSBpbmNvcnJlY3Rs
eSBvdXRwdXRzIHNpbGVuY2UgYmVjYXVzZSBtX3JldmVyYiBpcyBudWxsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CmluZGV4IDgxNzQ5NDU1MTY4NDIwNGQyNWJjNDhkMTExZjRkYjJhYjBjYjRhZTcu
LmQ3MWYwMjY0ZjQyNjU2YzE1OWI3ZTAxZmZiZGY0NzkwZDI5MzhjN2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFy
bmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0yMzIsNyArMjMyLDcgQEAgUEFTUyBBdWRpb1BhcmFtIGludGVyZmFj
ZTogb3BlcmF0aW9uIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQsIGRvdWJsZSkK
IFBBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRUYXJnZXRBdFRpbWUoZmxv
YXQsIGRvdWJsZSwgZmxvYXQpIAogUEFTUyBBdWRpb1BhcmFtIGludGVyZmFjZTogb3BlcmF0aW9u
IHNldFZhbHVlQ3VydmVBdFRpbWUoc2VxdWVuY2U8ZmxvYXQ+LCBkb3VibGUsIGRvdWJsZSkgCiBQ
QVNTIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gY2FuY2VsU2NoZWR1bGVkVmFsdWVz
KGRvdWJsZSkgCi1GQUlMIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBvcGVyYXRpb24gY2FuY2VsQW5k
SG9sZEF0VGltZShkb3VibGUpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkg
ImNhbmNlbEFuZEhvbGRBdFRpbWUiIG1pc3NpbmcKK1BBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBjYW5jZWxBbmRIb2xkQXRUaW1lKGRvdWJsZSkgCiBQQVNTIEF1ZGlvUGFyYW0g
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNv
bnRleHQpLnBsYXliYWNrUmF0ZSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBBdWRpb0J1
ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIAogUEFTUyBBdWRpb1BhcmFtIGlu
dGVyZmFjZTogbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250ZXh0KS5wbGF5YmFja1JhdGUg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ2YWx1ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0y
NTIsOCArMjUyLDggQEAgUEFTUyBBdWRpb1BhcmFtIGludGVyZmFjZTogbmV3IEF1ZGlvQnVmZmVy
U291cmNlTm9kZShjb250ZXh0KS5wbGF5YmFja1JhdGUgbXVzdAogUEFTUyBBdWRpb1BhcmFtIGlu
dGVyZmFjZTogY2FsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKHNlcXVlbmNlPGZsb2F0PiwgZG91
YmxlLCBkb3VibGUpIG9uIG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxheWJh
Y2tSYXRlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQp
LnBsYXliYWNrUmF0ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbFNjaGVkdWxlZFZhbHVl
cyhkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9QYXJhbSBpbnRlcmZh
Y2U6IGNhbGxpbmcgY2FuY2VsU2NoZWR1bGVkVmFsdWVzKGRvdWJsZSkgb24gbmV3IEF1ZGlvQnVm
ZmVyU291cmNlTm9kZShjb250ZXh0KS5wbGF5YmFja1JhdGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgQXVkaW9QYXJhbSBpbnRlcmZhY2U6IG5ldyBB
dWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiY2FuY2VsQW5kSG9sZEF0VGltZShkb3VibGUpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJjYW5jZWxBbmRIb2xkQXRUaW1lIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIEF1ZGlvUGFyYW0gaW50ZXJmYWNlOiBjYWxsaW5n
IGNhbmNlbEFuZEhvbGRBdFRpbWUoZG91YmxlKSBvbiBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
KGNvbnRleHQpLnBsYXliYWNrUmF0ZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNhbmNlbEFuZEhvbGRBdFRpbWUi
IG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6
IG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxheWJhY2tSYXRlIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY2FuY2VsQW5kSG9sZEF0VGltZShkb3VibGUpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgQXVkaW9QYXJhbSBpbnRlcmZhY2U6IGNhbGxpbmcgY2FuY2VsQW5kSG9s
ZEF0VGltZShkb3VibGUpIG9uIG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkucGxh
eWJhY2tSYXRlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBBdWRpb1NjaGVkdWxlZFNvdXJjZU5v
ZGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
cGFyYW0taW50ZXJmYWNlL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2F1ZGlvcGFyYW0tc2V0VmFs
dWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQKaW5kZXggY2NmM2U2MzI1YWE3NDY5NjFlZjk0MWM1
ODc4Y2M5MDk3NTRhM2UzNy4uN2E2ZjA5Y2IwNWNmMGU3MDJlMDYwYTEzZGI3MDE4MjA5OTZmYmNm
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9hdWRpb3Bh
cmFtLXNldFZhbHVlQ3VydmVBdFRpbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9wYXJhbS1pbnRlcmZhY2UvYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4cGVj
dGVkLnR4dApAQCAtNCwyNyArNCwyNyBAQCBQQVNTIEV4ZWN1dGluZyAidGVzdCIKIFBBU1MgQXVk
aXQgcmVwb3J0IAogUEFTUyA+IFt0ZXN0XSBBdWRpb1BhcmFtIHNldFZhbHVlQ3VydmVBdFRpbWUo
KSBmdW5jdGlvbmFsaXR5LiAKIFBBU1MgICBOdW1iZXIgb2YgdGVzdHMgc3RhcnRlZCBhbmQgZW5k
ZWQgYXQgdGhlIGNvcnJlY3QgdGltZSBpcyBlcXVhbCB0byAyMC4gCi1GQUlMIFggTWF4IGVycm9y
IGZvciB0ZXN0IDAgYXQgb2Zmc2V0IDEzMDQgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAw
LjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU1Nzk5My4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDEgYXQgb2Zmc2V0
IDI2MjcgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAz
MDg3MTQ3Mjc1MTU1Nzk5My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDIgYXQgb2Zmc2V0IDM5NTAgaXMgbm90IGxlc3MgdGhh
biBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU0Mzc4My4gYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0
ZXN0IDMgYXQgb2Zmc2V0IDUyNzMgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAw
MzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU0Mzc4My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDQgYXQgb2Zmc2V0IDY1OTYg
aXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3
Mjc1MTU0Mzc4My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFgg
TWF4IGVycm9yIGZvciB0ZXN0IDUgYXQgb2Zmc2V0IDc5MTkgaXMgbm90IGxlc3MgdGhhbiBvciBl
cXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU0Mzc4My4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDYg
YXQgb2Zmc2V0IDkyNDIgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQu
IEdvdCAwLjAzMDg3MTQ3Mjc1MTU0Mzc4My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDcgYXQgb2Zmc2V0IDEwNTY1IGlzIG5v
dCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1
NDM3ODMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBl
cnJvciBmb3IgdGVzdCA4IGF0IG9mZnNldCAxMTg4OCBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDAuMDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTg2NTI2LiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgOSBhdCBv
ZmZzZXQgMTMyMTEgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdv
dCAwLjAzMDg3MTQ3Mjc1MTUxNTI1LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgMTAgYXQgb2Zmc2V0IDE0NTM0IGlzIG5vdCBs
ZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1MTUy
NS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9y
IGZvciB0ZXN0IDExIGF0IG9mZnNldCAxNTg1NyBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
IDAuMDAwMDAzNzE5NC4gR290IDAuMDMwODcxNDcyNzUxNTA4MTQ0LiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgMTIgYXQgb2Zm
c2V0IDE3MTgwIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3Qg
MC4wMzA4NzE0NzI3NTE1ODY1MjYuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCAxMyBhdCBvZmZzZXQgMTg1MDMgaXMgbm90IGxl
c3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTUxNTI1
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBNYXggZXJyb3Ig
Zm9yIHRlc3QgMTQgYXQgb2Zmc2V0IDE5ODI2IGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
MC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1MTUyNS4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDE1IGF0IG9mZnNl
dCAyMTE0OSBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAu
MDMwODcxNDcyNzUxNTA4MTQ0LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgWCBNYXggZXJyb3IgZm9yIHRlc3QgMTYgYXQgb2Zmc2V0IDIyNDcyIGlzIG5vdCBsZXNz
IHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiBHb3QgMC4wMzA4NzE0NzI3NTE1ODY1MjYu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIE1heCBlcnJvciBm
b3IgdGVzdCAxNyBhdCBvZmZzZXQgMjM3OTUgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byAw
LjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU4NjUyNi4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggTWF4IGVycm9yIGZvciB0ZXN0IDE4IGF0IG9mZnNl
dCAyNTExOCBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gR290IDAu
MDMwODcxNDcyNzUxNDM2OTguIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBYIE1heCBlcnJvciBmb3IgdGVzdCAxOSBhdCBvZmZzZXQgMjY0NDEgaXMgbm90IGxlc3Mg
dGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIEdvdCAwLjAzMDg3MTQ3Mjc1MTU4NjUyNi4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgTWF4IGVycm9yIGZv
ciB0ZXN0IDAgYXQgb2Zmc2V0IDkwMyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3
MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMSBhdCBvZmZzZXQgMjIyNiBpcyBsZXNz
IHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRl
c3QgMiBhdCBvZmZzZXQgMzU0OSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0
LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMyBhdCBvZmZzZXQgNDg3MiBpcyBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3Qg
NCBhdCBvZmZzZXQgNjE5NSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAK
K1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgNSBhdCBvZmZzZXQgNzUxOCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgNiBh
dCBvZmZzZXQgODg0MSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BB
U1MgICBNYXggZXJyb3IgZm9yIHRlc3QgNyBhdCBvZmZzZXQgMTAxNjQgaXMgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDggYXQg
b2Zmc2V0IDExNDg3IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFT
UyAgIE1heCBlcnJvciBmb3IgdGVzdCA5IGF0IG9mZnNldCAxMjgxMCBpcyBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTAgYXQg
b2Zmc2V0IDE0MTMzIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFT
UyAgIE1heCBlcnJvciBmb3IgdGVzdCAxMSBhdCBvZmZzZXQgMTU0NTYgaXMgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDEyIGF0
IG9mZnNldCAxNjc3OSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BB
U1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTMgYXQgb2Zmc2V0IDE4MTAyIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAorUEFTUyAgIE1heCBlcnJvciBmb3IgdGVzdCAxNCBh
dCBvZmZzZXQgMTk0MjUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQ
QVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDE1IGF0IG9mZnNldCAyMDc0OCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAKK1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTYg
YXQgb2Zmc2V0IDIyMDcxIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAor
UEFTUyAgIE1heCBlcnJvciBmb3IgdGVzdCAxNyBhdCBvZmZzZXQgMjMzOTQgaXMgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIDAuMDAwMDAzNzE5NC4gCitQQVNTICAgTWF4IGVycm9yIGZvciB0ZXN0IDE4
IGF0IG9mZnNldCAyNDcxNyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDAwMDM3MTk0LiAK
K1BBU1MgICBNYXggZXJyb3IgZm9yIHRlc3QgMTkgYXQgb2Zmc2V0IDI2MDQwIGlzIGxlc3MgdGhh
biBvciBlcXVhbCB0byAwLjAwMDAwMzcxOTQuIAogUEFTUyAgIE51bWJlciBvZiBmYWlsZWQgdGVz
dHMgd2l0aCBhbiBhY2NlcHRhYmxlIHJlbGF0aXZlIHRvbGVyYW5jZSBvZiAwLjAwMDAwMzcxOTQg
aXMgZXF1YWwgdG8gMC4gCi1GQUlMIDwgW3Rlc3RdIDIwIG91dCBvZiAyMiBhc3NlcnRpb25zIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMSB0YXNrcyB3ZXJlIGZhaWxlZC4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDwgW3Rlc3RdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIyIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL3JldHJvc3BlY3RpdmUtc2V0
VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0t
aW50ZXJmYWNlL3JldHJvc3BlY3RpdmUtc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQK
aW5kZXggYTFjMjBjY2M4ZDRkOWMwZDkwYzU3MTRkZTQwZWMwZTVmYTQ4YWQ3Mi4uNmM0NzVkYTk5
Njc0YWFjYTMyZGI1YzY1OGZmODg2MTU5ZjdjYWI5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3BhcmFtLWludGVyZmFjZS9yZXRyb3NwZWN0aXZlLXNldFZhbHVlQ3VydmVBdFRpbWUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2UvcmV0
cm9zcGVjdGl2ZS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcg
QEAgUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbdGVzdF0gVGVzdCBTZXRWYWx1ZUN1cnZlIHdp
dGggc3RhcnQgdGltZSBpbiB0aGUgcGFzdCAKIFBBU1MgICBUZXN0WzA6MTI3XSBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAxLiAKIFBBU1MgICBSZWZlcmVuY2VbMDoxMjddIGNvbnRhaW5zIG9u
bHkgdGhlIGNvbnN0YW50IDEuIAotUEFTUyAgIFRlc3RbMTI4Ol0gaXMgaWRlbnRpY2FsIHRvIHRo
ZSBhcnJheSBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0uIAorUEFTUyAgIFRl
c3RbMTI4Ol0gaXMgaWRlbnRpY2FsIHRvIHRoZSBhcnJheSBbMSwwLjk5OTk0NTA0NDUxNzUxNzEs
MC45OTk4OTAxNDg2Mzk2NzksMC45OTk4MzUxOTMxNTcxOTYsMC45OTk3ODAyOTcyNzkzNTc5LDAu
OTk5NzI1MzQxNzk2ODc1LDAuOTk5NjcwMzg2MzE0MzkyMSwwLjk5OTYxNTQ5MDQzNjU1NCwwLjk5
OTU2MDUzNDk1NDA3MSwwLjk5OTUwNTYzOTA3NjIzMjksMC45OTk0NTA2ODM1OTM3NSwwLjk5OTM5
NTcyODExMTI2NzEsMC45OTkzNDA4MzIyMzM0MjksMC45OTkyODU4NzY3NTA5NDYsMC45OTkyMzA5
ODA4NzMxMDc5LDAuOTk5MTc2MDI1MzkwNjI1Li4uXS4gCiBQQVNTIDwgW3Rlc3RdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCiBQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjFiZGY3OTQ5MWEwODY2MTUzMjIzNzk0YzFjYjM0N2Uy
ZjE1Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJh
bS1jYW5jZWwtYW5kLWhvbGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEzIEBACisKK1BBU1Mg
IyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJsaW5lYXIiIAor
UEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFsIiAKK1BBU1MgRXhlY3V0aW5nICJzZXRUYXJnZXQi
IAorUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgInNldFZh
bHVlQ3VydmUgYWZ0ZXIgZW5kIiAKK1BBU1MgRXhlY3V0aW5nICJpbml0aWFsIHNldFRhcmdldCIg
CitQQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IExpbmVhciIgCitQQVNTIEV4ZWN1dGluZyAi
cG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsIiAKK1BBU1MgRXhlY3V0aW5nICJwb3N0IGNhbmNlbDog
VmFsdWVDdXJ2ZSIgCitQQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IHNldFRhcmdldCIgCitQ
QVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IHNldFZhbHVlIiAKK1BBU1MgRXhlY3V0aW5nICJj
YW5jZWwgZnV0dXJlIHNldFRhcmdldCIgCitQQVNTIEV4ZWN1dGluZyAiY2FuY2VsIHNldFRhcmdl
dCBub3ciIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZSIgCitQ
QVNTIEV4ZWN1dGluZyAiY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93IiAKK1BBU1MgRXhlY3V0aW5n
ICJsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVhciIgCitQQVNTIEF1ZGl0IHJl
cG9ydCAKK1BBU1MgPiBbbGluZWFyXSBDYW5jZWwgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUgCitQ
QVNTICAgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
dXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2
NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0
MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5Myww
LjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUw
NSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkw
NDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVU
aHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRo
ZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZv
ciBjYW5jZWxsaW5nIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgw
LCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgPCBbbGluZWFyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtleHBvbmVudGlhbF0gQ2FuY2VsIGV4cG9u
ZW50aWFsUmFtcEF0VGltZSAKK1BBU1MgICBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAw
LjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2
NjY2NjQxODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAu
MDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4
OTMsMC4wMTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0
MjE1MDUsMC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMx
NzE5MDQwODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQt
d2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6NS45NjA1ZS04LCJyZWxhdGl2
ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgZXhwb25lbnRpYWxSYW1wVG9WYWx1
ZSgwLjAwMSwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4w
MzM5MzIyMjAxOTA3NjM0NzQuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5n
IGV4cG9uZW50aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuMDMz
OTMyMjE2NDY1NDczMTc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTg2NjQuIAorUEFTUyA8
IFtleHBvbmVudGlhbF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25z
KSAKK1BBU1MgPiBbc2V0VGFyZ2V0XSBDYW5jZWwgc2V0VGFyZ2V0QXRUaW1lIAorUEFTUyAgIHNl
dFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAu
MDAyMDgzMzMzMjA5MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1
NzUsMC4wMDgzMzMzMzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4
NjI2NDUxNSwwLjAxNDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAw
MDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUw
MDAwMDAzNzI1MjkwMywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4w
MzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjQuNTI2N2UtNywicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxs
aW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSBhdCB0aW1lIDAuMjUgY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgMC4wMDgyMjk3NDkyNzcyMzQwNzcuIAorUEFTUyAgIEV4cGVjdGVk
IHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSBhdCB0
aW1lIDAuMjUgaXMgMC4wMDgyMjk3NDc0MTQ1ODg5Mjggd2l0aGluIGFuIGVycm9yIG9mIDQuNTI2
N2UtNy4gCitQQVNTIDwgW3NldFRhcmdldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0VmFsdWVDdXJ2ZV0gQ2FuY2VsIHNldFZhbHVlQ3Vy
dmVBdFRpbWUgCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC40OSkg
dXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2
NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0
MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5Myww
LjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUw
NSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkw
NDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6
MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwg
MC40OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2
NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgc2V0VmFsdWVD
dXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC40OSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDgx
NjMyNjUzIHdpdGhpbiBhbiBlcnJvciBvZiA5LjUzNjhlLTkuIAorUEFTUyA8IFtzZXRWYWx1ZUN1
cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+
IFtzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZF0gQ2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWUgYWZ0
ZXIgdGhlIGVuZCAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjEx
NDk5OTk5OTk5OTk5OTk5KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5
MTU2OTksMC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMz
MzI4MzY2Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAx
NDU4MzMzMjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiww
LjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1Mjkw
MywwLjAyNzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJl
bGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRU
aW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5KSBhdCB0aW1lIDAuMjUgY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNl
bGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5
OSkgYXQgdGltZSAwLjI1IGlzIDAgd2l0aGluIGFuIGVycm9yIG9mIDAuIAorUEFTUyA8IFtzZXRW
YWx1ZUN1cnZlIGFmdGVyIGVuZF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3Nl
cnRpb25zKSAKK1BBU1MgPiBbaW5pdGlhbCBzZXRUYXJnZXRdIENhbmNlbCB3aXRoIGluaXRpYWwg
c2V0VGFyZ2V0QXRUaW1lIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIHVw
IHRvIHRpbWUgMC4yNSBlcXVhbHMgWzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5d
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LjAwMDAwMTIzMiwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNl
dFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRo
ZSBjb25zdGFudCAwLjA5MDcxNzY3MzMwMTY5Njc4LiAKK0ZBSUwgWCBFeHBlY3RlZCB2YWx1ZSBm
b3IgY2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSBhdCB0aW1lIDAuMjUg
aXMgbm90IGNsb3NlIHRvIDAuMDkwNzE3OTU2NDIzNzU5NDYgd2l0aGluIGEgcmVsYXRpdmUgZXJy
b3Igb2YgMC4wMDAwMDEyMzIgKFJlbEVycj0wLjAwMDAwMzEyMDkwNDMyNjM3ODI2MSkuIEdvdCAw
LjA5MDcxNzY3MzMwMTY5Njc4LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgPCBbaW5pdGlhbCBzZXRUYXJnZXRdIDEgb3V0IG9mIDMgYXNzZXJ0aW9ucyB3ZXJlIGZh
aWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW3Bvc3Qg
Y2FuY2VsOiBMaW5lYXJdIExpbmVhclJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKK1BBU1MgICBQb3N0
IGNhbmNlbGxhdGlvbiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUo
MCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTksMC4w
MDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2Mjc5
NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMjQ2
NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMz
Mzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4
MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVt
ZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJy
ZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWxsYXRp
b24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQg
dGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4g
CitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWxsYXRpb24g
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGlt
ZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5
OTguIAorUEFTUyAgIFBvc3QgbGluZWFyUmFtcCgyLCAwLjM3NSkgZXF1YWxzIFswLjUxMDIwNDA3
Njc2Njk2NzgsMC41MTA0NTIzODk3MTcxMDIsMC41MTA3MDA3MDI2NjcyMzYzLDAuNTEwOTQ4OTU2
MDEyNzI1OCwwLjUxMTE5NzI2ODk2Mjg2MDEsMC41MTE0NDU1ODE5MTI5OTQ0LDAuNTExNjkzODk0
ODYzMTI4NywwLjUxMTk0MjE0ODIwODYxODIsMC41MTIxOTA0NjExNTg3NTI0LDAuNTEyNDM4Nzc0
MTA4ODg2NywwLjUxMjY4NzA4NzA1OTAyMSwwLjUxMjkzNTM0MDQwNDUxMDUsMC41MTMxODM2NTMz
NTQ2NDQ4LDAuNTEzNDMxOTY2MzA0Nzc5LDAuNTEzNjgwMjc5MjU0OTEzMywwLjUxMzkyODU5MjIw
NTA0NzYuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtwb3N0IGNhbmNlbDog
TGluZWFyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAorUEFT
UyA+IFtwb3N0IGNhbmNlbDogRXhwb25lbnRpYWxdIEV4cG9uZW50aWFsUmFtcCBhZnRlciBjYW5j
ZWxsaW5nIAorUEFTUyAgIFBvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6
IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAw
MjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1
LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYy
NjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAw
NzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAw
MDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMx
MjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNo
b2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxs
aW5nIFBvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBU
b1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAu
NTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcg
UG9zdCBjYW5jZWwgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFs
dWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBl
cnJvciBvZiAwLjAwMDA4Mzk5OC4gCitQQVNTICAgUG9zdCBleHBvbmVudGlhbFJhbXAoMiwgMC4z
NzUpIGVxdWFscyBbMC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMzIwMjQ2MjE5NjM1LDAuNTEwNDM2
NDE1NjcyMzAyMiwwLjUxMDU1MjY0NDcyOTYxNDMsMC41MTA2Njg4NzM3ODY5MjYzLDAuNTEwNzg1
MTYyNDQ4ODgzMSwwLjUxMDkwMTQ1MTExMDgzOTgsMC41MTEwMTc3OTkzNzc0NDE0LDAuNTExMTM0
MTQ3NjQ0MDQzLDAuNTExMjUwNTU1NTE1Mjg5MywwLjUxMTM2Njk2MzM4NjUzNTYsMC41MTE0ODMz
NzEyNTc3ODIsMC41MTE1OTk4Mzg3MzM2NzMxLDAuNTExNzE2MzA2MjA5NTY0MiwwLjUxMTgzMjgz
MzI5MDEwMDEsMC41MTE5NDkzNjAzNzA2MzYuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAor
UEFTUyA8IFtwb3N0IGNhbmNlbDogRXhwb25lbnRpYWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDQgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlXSAg
CitQQVNTICAgUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFtcFRvVmFs
dWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFswLDAuMDAyMDgzMzMzMjA5MTU2OTks
MC4wMDQxNjY2NjY0MTgzMTM5OCwwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzI4MzY2
Mjc5NiwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMz
MjQ2NDA5ODkzLDAuMDE2NjY2NjY1NjczMjU1OTIsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgz
MzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY1MzAwNzI2ODksMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAy
NzA4MzMzMTcxOTA0MDg3LDAuMDI5MTY2NjY0OTI4MTk3ODYsMC4wMzEyNS4uLl0gd2l0aCBhbiBl
bGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4
LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwg
c2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAu
MjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1Mg
ICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUN1cnZl
QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIw
NDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0
IHNldFZhbHVlQ3VydmUoWzAuMTI1LDJdLCAwLjM3NSwgMC4xMjUpIGVxdWFscyBbMC41MTAyMDQw
NzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQw
NzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQw
NzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQw
NzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQw
NzY3NjY5Njc4LDAuNTEwMjA0MDc2NzY2OTY3OCwwLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAyMDQw
NzY3NjY5Njc4Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTIDwg
W3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0
IGFzc2VydGlvbnMpIAorUEFTUyA+IFtwb3N0IGNhbmNlbDogc2V0VGFyZ2V0XSAgCitQQVNTICAg
UG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVw
IHRvIHRpbWUgMC4yNSBlcXVhbHMgWzAsMC4wMDIwODMzMzMyMDkxNTY5OSwwLjAwNDE2NjY2NjQx
ODMxMzk4LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMjgzNjYyNzk2LDAuMDEwNDE2
NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMyNDY0MDk4OTMsMC4w
MTY2NjY2NjU2NzMyNTU5MiwwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUs
MC4wMjI5MTY2NjUzMDA3MjY4OSwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMxNzE5MDQw
ODcsMC4wMjkxNjY2NjQ5MjgxOTc4NiwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhy
ZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRp
bWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9W
YWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFu
IGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0IHNldFRhcmdldEF0VGltZSgwLjEy
NSwgMC4zNzUsIDAuMSkgZXF1YWxzIFswLjUxMDIwNDA3Njc2Njk2NzgsMC41MTAxMjM4NDg5MTUx
MDAxLDAuNTEwMDQzNjIxMDYzMjMyNCwwLjUwOTk2MzM5MzIxMTM2NDcsMC41MDk4ODMyMjQ5NjQx
NDE4LDAuNTA5ODAzMDU2NzE2OTE5LDAuNTA5NzIyODg4NDY5Njk2LDAuNTA5NjQyNzIwMjIyNDcz
MSwwLjUwOTU2MjYxMTU3OTg5NSwwLjUwOTQ4MjUwMjkzNzMxNjksMC41MDk0MDIzOTQyOTQ3Mzg4
LDAuNTA5MzIyMzQ1MjU2ODA1NCwwLjUwOTI0MjI5NjIxODg3MjEsMC41MDkxNjIyNDcxODA5Mzg3
LDAuNTA5MDgyMTk4MTQzMDA1NCwwLjUwOTAwMjIwODcwOTcxNjguLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4NDAzNywicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbcG9zdCBjYW5jZWw6IHNldFRhcmdldF0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKK1BBU1MgPiBbcG9zdCBj
YW5jZWw6IHNldFZhbHVlXSAgCitQQVNTICAgUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWU6IGxp
bmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbMCwwLjAwMjA4
MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEzOTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAu
MDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1
MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1
MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAw
MzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4NywwLjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUu
Li5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5n
IFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0
IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2Nzgu
IAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZh
bHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUx
MDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQ
b3N0IHNldFZhbHVlQXRUaW1lKDAuMTI1LCAwLjM3NSkgZXF1YWxzIFswLjEyNSwwLjEyNSwwLjEy
NSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSww
LjEyNSwwLjEyNSwwLjEyNSwwLjEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNl
IG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNT
IDwgW3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
NCBhc3NlcnRpb25zKSAKK1BBU1MgPiBbY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXRdICAKK1BBU1Mg
ICBBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRUYXJnZXQgZXZlbnQsIG91dHB1dCBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwgZnV0dXJlIHNldFRhcmdl
dF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
Y2FuY2VsIHNldFRhcmdldCBub3ddICAKK1BBU1MgICBBZnRlciBjYW5jZWxsaW5nIHNldFRhcmdl
dCBldmVudCBzdGFydGluZyBub3csIG91dHB1dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAw
LjUuIAorUEFTUyA8IFtjYW5jZWwgc2V0VGFyZ2V0IG5vd10gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbY2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1
cnZlXSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBmdXR1cmUgc2V0VmFsdWVDdXJ2ZSBldmVu
dCwgb3V0cHV0IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2NhbmNl
bCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93XSAgCitQQVNTICAg
QWZ0ZXIgY2FuY2VsbGluZyBjdXJyZW50IHNldFZhbHVlQ3VydmUgZXZlbnQgc3RhcnRpbmcgbm93
LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgPCBbY2FuY2Vs
IHNldFZhbHVlQ3VydmUgbm93XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVhcl0g
U2NoZWR1bGVzIDMgbGluZWFyIHJhbXBzLCBjYW5jZWxsaW5nIDIgb2YgdGhlbSwgc28gdGhhdCB3
ZSBlbmQgdXAgd2l0aCAyIGNhbmNlbCBldmVudHMgbmV4dCB0byBlYWNoIG90aGVyIAorRkFJTCBY
IDFzdCBsaW5lYXJSYW1wOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4y
NSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzIwOTE1Njk5LDAuMDA0MTY2NjY2NDE4MzEz
OTgsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMyODM2NjI3OTYsMC4wMTA0MTY2NjY5
NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzI0NjQwOTg5MywwLjAxNjY2
NjY2NTY3MzI1NTkyLDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAy
MjkxNjY2NTMwMDcyNjg5LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzE3MTkwNDA4Nyww
LjAyOTE2NjY2NDkyODE5Nzg2LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJ
SW5kZXgJQWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hv
bGQKKwlbNzE1XQk5LjkwMDA4NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3MzM5NjMwMTI3ZS0xCTUu
OTYwNDY0NDc3NTM5MDYyNWUtOAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJMC4wMDAwMDAwMDAwMDAw
MDAwZSswCisJWzc1Nl0JOS44ODI2NTMzNTU1OTg0NDk3ZS0xCTkuODgyNjUyNzU5NTUyMDAyMGUt
MQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wMzEyMzk0MDc2MzU3OTA3ZS04CTAuMDAwMDAwMDAw
MDAwMDAwMGUrMAorCVsxMTAwXQk5LjczNjM5NDg4MjIwMjE0ODRlLTEJOS43MzYzOTQyODYxNTU3
MDA3ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjEyMTgzOTY2OTE0MTUwMTVlLTgJMC4wMDAw
MDAwMDAwMDAwMDAwZSswCisJWzEyMjNdCTkuNjg0MDk4OTU4OTY5MTE2MmUtMQk5LjY4NDA5ODM2
MjkyMjY2ODVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTU0ODk4NzM2MjIwNzk3NGUtOAkw
LjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMTI0NV0JOS42NzQ3NDUyMDIwNjQ1MTQyZS0xCTkuNjc0
NzQ0NjA2MDE4MDY2NGUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xNjA4NDk0MjgzNDcxMDM0
ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCS4uLmFuZCAxMTI1IG1vcmUgZXJyb3JzLgorCU1h
eCBBYnNFcnJvciBvZiA1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1LgorCU1h
eCBSZWxFcnJvciBvZiAxLjE2ODA1NjMyMjc0MTQzNzZlLTcgYXQgaW5kZXggb2YgMTE5OTguCisJ
WzExOTk4XQk1LjEwMjg5MTkyMTk5NzA3MDNlLTEJNS4xMDI4OTEzMjU5NTA2MjI2ZS0xCTUuOTYw
NDY0NDc3NTM5MDYyNWUtOAkxLjE2ODA1NjMyMjc0MTQzNzZlLTcJMC4wMDAwMDAwMDAwMDAwMDAw
ZSswCisgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ2FuY2Vs
bGluZyAxc3QgbGluZWFyUmFtcDogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAu
MjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1Mg
ICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAxc3QgbGluZWFyUmFtcDogbGluZWFyUmFt
cFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhp
biBhbiBlcnJvciBvZiAwLiAKK1BBU1MgICAybmQgbGluZWFyUmFtcCgyLCAwLjUpIGVxdWFscyBb
MC41MTAyMDQwNzY3NjY5Njc4LDAuNTEwMzI4MjMzMjQyMDM0OSwwLjUxMDQ1MjM4OTcxNzEwMiww
LjUxMDU3NjU0NjE5MjE2OTIsMC41MTA3MDA3MDI2NjcyMzYzLDAuNTEwODI0Nzk5NTM3NjU4Nyww
LjUxMDk0ODk1NjAxMjcyNTgsMC41MTEwNzMxMTI0ODc3OTMsMC41MTExOTcyNjg5NjI4NjAxLDAu
NTExMzIxNDI1NDM3OTI3MiwwLjUxMTQ0NTU4MTkxMjk5NDQsMC41MTE1Njk3MzgzODgwNjE1LDAu
NTExNjkzODk0ODYzMTI4NywwLjUxMTgxODA1MTMzODE5NTgsMC41MTE5NDIxNDgyMDg2MTgyLDAu
NTEyMDY2MzA0NjgzNjg1My4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2Fu
Y2VsbGluZyAybmQgbGluZWFyUmFtcCgyLCAwLjUpIGF0IHRpbWUgMC4zNzUgY29udGFpbnMgb25s
eSB0aGUgY29uc3RhbnQgMS4yNTUxMDIwMzgzODM0ODM5LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1
ZSBmb3IgY2FuY2VsbGluZyAybmQgbGluZWFyUmFtcCgyLCAwLjUpIGF0IHRpbWUgMC4zNzUgaXMg
MS4yNTUxMDIwMzgzODM0ODM5IHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKK1BBU1MgICAzcmQgbGlu
ZWFyUmFtcCgwLCAwLjUpIGVxdWFscyBbMS4yNTUxMDIwMzgzODM0ODM5LDEuMjU0ODkyODI2MDgw
MzIyMywxLjI1NDY4MzYxMzc3NzE2MDYsMS4yNTQ0NzQ1MjA2ODMyODg2LDEuMjU0MjY1MzA4Mzgw
MTI3LDEuMjU0MDU2MDk2MDc2OTY1MywxLjI1Mzg0Njg4Mzc3MzgwMzcsMS4yNTM2Mzc3OTA2Nzk5
MzE2LDEuMjUzNDI4NTc4Mzc2NzcsMS4yNTMyMTkzNjYwNzM2MDg0LDEuMjUzMDEwMTUzNzcwNDQ2
OCwxLjI1MjgwMTA2MDY3NjU3NDcsMS4yNTI1OTE4NDgzNzM0MTMsMS4yNTIzODI2MzYwNzAyNTE1
LDEuMjUyMTczNDIzNzY3MDg5OCwxLjI1MTk2NDMzMDY3MzIxNzguLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uIAorRkFJTCA8IFtsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVh
cl0gMSBvdXQgb2YgNyBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiBv
dXQgb2YgMTYgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNh
bmNlbC1hbmQtaG9sZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5j
ZWwtYW5kLWhvbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTZhMGZmMTMwZGNiODVkYmZlNThjZjZkOTEx
OWMyYjY5ODYzOGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbApAQCAtMCwwICsxLDgyMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBDYW5jZWxW
YWx1ZXNBbmRIb2xkQXRUaW1lCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tcGFyYW0uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+Cisg
ICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0g
MC41OworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCBmZXcgdGFza3MgdGVzdCB0aGUgY2FuY2VsbGF0aW9uIG9mIGVhY2gg
cmVsZXZhbnQgYXV0b21hdGlvbgorICAgICAgLy8gZnVuY3Rpb24uICBGb3IgdGhlIHRlc3QsIGEg
c2ltcGxlIGxpbmVhciByYW1wIGZyb20gMCB0byAxIGlzIHVzZWQgdG8KKyAgICAgIC8vIHN0YXJ0
IHRoaW5ncyBvZmYuICBUaGVuIHRoZSBhdXRvbWF0aW9uIHRvIGJlIHRlc3RlZCBpcyBzY2hlZHVs
ZWQgYW5kCisgICAgICAvLyBjYW5jZWxsZWQuCisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAg
ICAgICB7bGFiZWw6ICdsaW5lYXInLCBkZXNjcmlwdGlvbjogJ0NhbmNlbCBsaW5lYXJSYW1wVG9W
YWx1ZUF0VGltZSd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAg
ICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdsaW5lYXJSYW1wVG9WYWx1
ZUF0VGltZScpLCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsCisg
ICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiA4LjM5OThlLTUKKyAgICAgICAgICAgIH0pLnRo
ZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5k
ZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnZXhwb25lbnRpYWwnLCBkZXNjcmlwdGlvbjogJ0Nh
bmNlbCBleHBvbmVudGlhbFJhbXBBdFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBz
aG91bGQpIHsKKyAgICAgICAgICAgIC8vIENhbmNlbCBhbiBleHBvbmVudGlhbCByYW1wLiAgVGhl
IHRocmVzaG9sZHMgYXJlIGV4cGVyaW1lbnRhbGx5CisgICAgICAgICAgICAvLyBkZXRlcm1pbmVk
LgorICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2Fu
Y2VsVGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgorICAg
ICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1
bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgorICAgICAgICAgICAg
ICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAgICAg
ICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisKKyAgICAgICAg
ICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhbiBleHBvbmVudGlhbCBy
YW1wIHRvIHRoZSBlbmQuCisgICAgICAgICAgICAgIC8vIChUaGlzIGlzIHRoZSBldmVudCB0aGF0
IHdpbGwgYmUgYmUgY2FuY2VsbGVkLikKKyAgICAgICAgICAgICAgbGV0IHYxID0gMC4wMDE7Cisg
ICAgICAgICAgICAgIGxldCB0MSA9IHJlbmRlckR1cmF0aW9uOworCisgICAgICAgICAgICAgIGdb
MF0uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAg
ICAgIGdbMV0uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisKKyAg
ICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAorICAgICAgICAgICAg
ICAgICAgdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAoY2FuY2VsVGltZSAtIHQwKSAvICh0MSAtIHQw
KSkpOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29u
c3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdl
eHBvbmVudGlhbFJhbXBUb1ZhbHVlKCcgKyB2MSArICcsICcgKyB0MSArICcpJywKKyAgICAgICAg
ICAgICAgICBzdW1tYXJ5OiAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xk
OiAxLjg2NjRlLTYsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiA1Ljk2MDVlLTgKKyAg
ICAgICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnc2V0VGFyZ2V0JywgZGVz
Y3JpcHRpb246ICdDYW5jZWwgc2V0VGFyZ2V0QXRUaW1lJ30sCisgICAgICAgICAgZnVuY3Rpb24o
dGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBDYW5jZWwgYSBzZXRUYXJnZXQgZXZlbnQu
CisgICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5j
ZWxUaW1lKSB7CisgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAg
ICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAg
Z1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVs
ZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAg
IGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAg
ICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAg
ICAgICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRUYXJn
ZXQuICAoVGhpcyBpcworICAgICAgICAgICAgICAvLyB0aGUgZXZlbnQgdGhhdCB3aWxsIGJlIGNh
bmNlbGxlZC4pCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAgIGxldCB0
MSA9IHQwOworICAgICAgICAgICAgICBsZXQgdGltZUNvbnN0YW50ID0gMC4wNTsKKworICAgICAg
ICAgICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MSwgdGltZUNvbnN0YW50KTsK
KyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDEsIHRpbWVDb25z
dGFudCk7CisKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAor
ICAgICAgICAgICAgICAgICAgdjEgKyAodjAgLSB2MSkgKiBNYXRoLmV4cCgtKGNhbmNlbFRpbWUg
LSB0MCkgLyB0aW1lQ29uc3RhbnQpKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAg
ICAgIGF1dG9NZXNzYWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MSArICcsICcgKyB0MSArICcs
ICcgKworICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAg
ICAgICAgc3VtbWFyeTogJ3NldFRhcmdldEF0VGltZScsCisgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiA0LjUyNjdlLTcsICAv
LyAxLjEzMTdlLTcsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiA0LjUyNjdlLTcKKyAg
ICAgICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnc2V0VmFsdWVDdXJ2ZScs
IGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWUnfSwKKyAgICAgICAgICBm
dW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIC8vIENhbmNlbCBhIHNldFZhbHVl
Q3VydmUgZXZlbnQuCisgICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywg
djAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVz
IHRvIDAuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAg
ICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAg
ICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisg
ICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOwor
ICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsK
KworICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGEgc2V0
VmFsdWVzQ3VydmUuIChUaGlzIGlzIHRoZQorICAgICAgICAgICAgICAvLyBldmVudCB0aGF0IHdp
bGwgYmUgY2FuY2VsbGVkLikKKyAgICAgICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAg
ICAgbGV0IGR1cmF0aW9uID0gcmVuZGVyRHVyYXRpb24gLSB0MDsKKworICAgICAgICAgICAgICAv
LyBGb3Igc2ltcGxpY2l0eSwgYSAyLXBvaW50IGN1cnZlIHNvIHdlIGdldCBhIGxpbmVhciBpbnRl
cnBvbGF0ZWQKKyAgICAgICAgICAgICAgLy8gcmVzdWx0LgorICAgICAgICAgICAgICBsZXQgY3Vy
dmUgPSBGbG9hdDMyQXJyYXkuZnJvbShbdjAsIDBdKTsKKworICAgICAgICAgICAgICBnWzBdLmdh
aW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKyAgICAgICAgICAg
ICAgZ1sxXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7CisK
KyAgICAgICAgICAgICAgbGV0IGluZGV4ID0KKyAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3Io
KGN1cnZlLmxlbmd0aCAtIDEpIC8gZHVyYXRpb24gKiAoY2FuY2VsVGltZSAtIHQwKSk7CisKKyAg
ICAgICAgICAgICAgbGV0IGN1cnZlUG9pbnRzUGVyRnJhbWUgPQorICAgICAgICAgICAgICAgICAg
KGN1cnZlLmxlbmd0aCAtIDEpIC8gZHVyYXRpb24gLyBzYW1wbGVSYXRlOworICAgICAgICAgICAg
ICBsZXQgdmlydHVhbEluZGV4ID0KKyAgICAgICAgICAgICAgICAgIChjYW5jZWxUaW1lIC0gdDAp
ICogc2FtcGxlUmF0ZSAqIGN1cnZlUG9pbnRzUGVyRnJhbWU7CisKKyAgICAgICAgICAgICAgbGV0
IGRlbHRhID0gdmlydHVhbEluZGV4IC0gaW5kZXg7CisgICAgICAgICAgICAgIGV4cGVjdGVkQ29u
c3RhbnQgPSBjdXJ2ZVswXSArIChjdXJ2ZVsxXSAtIGN1cnZlWzBdKSAqIGRlbHRhOworICAgICAg
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVj
dGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdzZXRWYWx1ZUN1cnZl
QXRUaW1lKFsnICsgY3VydmUgKyAnXSwgJyArIHQwICsKKyAgICAgICAgICAgICAgICAgICAgJywg
JyArIGR1cmF0aW9uICsgJyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdzZXRWYWx1ZUN1
cnZlQXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgICAgdmFsdWVUaHJlc2hvbGQ6IDkuNTM2OGUtOSwKKyAgICAgICAgICAgICAgY3VydmVUaHJl
c2hvbGQ6IDAKKyAgICAgICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAg
ICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAgICAg
ICAgbGFiZWw6ICdzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCcsCisgICAgICAgICAgICBkZXNjcmlw
dGlvbjogJ0NhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGFmdGVyIHRoZSBlbmQnCisgICAgICAg
ICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIGNh
bmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAg
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAgICAgICAgZ1swXS5n
YWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFs
dWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFy
IHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAgIC8vIEFmdGVyIHRo
ZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRWYWx1ZXNDdXJ2ZS4gKFRoaXMgaXMgdGhlCisg
ICAgICAgICAgICAgIC8vIGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5jZWxsZWQuKSAgTWFrZSBzdXJl
IHRoZSBjdXJ2ZSBlbmRzIGJlZm9yZQorICAgICAgICAgICAgICAvLyB0aGUgY2FuY2VsbGF0aW9u
IHRpbWUuCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAgIGxldCBkdXJh
dGlvbiA9IGNhbmNlbFRpbWUgLSB0MCAtIDAuMTI1OworCisgICAgICAgICAgICAgIC8vIEZvciBz
aW1wbGljaXR5LCBhIDItcG9pbnQgY3VydmUgc28gd2UgZ2V0IGEgbGluZWFyIGludGVycG9sYXRl
ZAorICAgICAgICAgICAgICAvLyByZXN1bHQuCisgICAgICAgICAgICAgIGxldCBjdXJ2ZSA9IEZs
b2F0MzJBcnJheS5mcm9tKFt2MCwgMF0pOworCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRW
YWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworICAgICAgICAgICAgICBnWzFd
LmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKworICAgICAg
ICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gY3VydmVbMV07CisgICAgICAgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwK
KyAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFZhbHVlQ3VydmVBdFRpbWUoWycgKyBj
dXJ2ZSArICddLCAnICsgdDAgKworICAgICAgICAgICAgICAgICAgICAnLCAnICsgZHVyYXRpb24g
KyAnKScsCisgICAgICAgICAgICAgICAgc3VtbWFyeTogJ3NldFZhbHVlQ3VydmVBdFRpbWUnLAor
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRo
cmVzaG9sZDogMCwKKyAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDAKKyAgICAgICAgICAg
IH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICAv
LyBTcGVjaWFsIGNhc2Ugd2hlcmUgd2Ugc2NoZWR1bGUgYSBzZXRUYXJnZXQgYW5kIHRoZXJlIGlz
IG5vIGVhcmxpZXIKKyAgICAgIC8vIGF1dG9tYXRpb24gZXZlbnQuICBUaGlzIHRlc3RzIHRoYXQg
d2UgcGljayB1cCB0aGUgc3RhcnRpbmcgcG9pbnQKKyAgICAgIC8vIGNvcnJlY3RseSBmcm9tIHRo
ZSBsYXN0IHNldHRpbmcgb2YgdGhlIEF1ZGlvUGFyYW0gdmFsdWUgYXR0cmlidXRlLgorCisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ2luaXRp
YWwgc2V0VGFyZ2V0JywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHdpdGggaW5p
dGlhbCBzZXRUYXJnZXRBdFRpbWUnCisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0
YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihn
LCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAg
ICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMTsKKyAgICAgICAgICAgICAgZ1swXS5nYWlu
LnZhbHVlID0gMTsKKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwg
dDAsIHRpbWVDb25zdGFudCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi52YWx1ZSA9IDE7Cisg
ICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQwLCB0aW1lQ29uc3Rh
bnQpOworCisgICAgICAgICAgICAgIGxldCBleHBlY3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQo
CisgICAgICAgICAgICAgICAgICB2MSArICh2MCAtIHYxKSAqIE1hdGguZXhwKC0oY2FuY2VsVGlt
ZSAtIHQwKSAvIHRpbWVDb25zdGFudCkpOworCisgICAgICAgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAg
ICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFRhcmdldEF0VGltZSgnICsgdjEgKyAnLCAnICsgdDAg
KyAnLCAnICsKKyAgICAgICAgICAgICAgICAgICAgdGltZUNvbnN0YW50ICsgJyknLAorICAgICAg
ICAgICAgICAgIHN1bW1hcnk6ICdJbml0aWFsIHNldFRhcmdldEF0VGltZScsCisgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiAx
LjIzMjBlLTYsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAxLjIzMjBlLTYKKyAgICAg
ICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisg
ICAgICAvLyBUZXN0IGF1dG9tYXRpb25zIHNjaGVkdWxlZCBhZnRlciB0aGUgY2FsbCB0byBjYW5j
ZWxBbmRIb2xkQXRUaW1lLgorICAgICAgLy8gVmVyeSBzaW1pbGFyIHRvIHRoZSBhYm92ZSB0ZXN0
cywgYnV0IHdlIGFsc28gc2NoZWR1bGUgYW4gZXZlbnQgYWZ0ZXIKKyAgICAgIC8vIGNhbmNlbEFu
ZEhvbGRBdFRpbWUgYW5kIHZlcmlmeSB0aGF0IGN1cnZlIGFmdGVyIGNhbmNlbGxhdGlvbiBoYXMK
KyAgICAgIC8vIHRoZSBjb3JyZWN0IHZhbHVlcy4KKworICAgICAgYXVkaXQuZGVmaW5lKAorICAg
ICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAncG9zdCBjYW5jZWw6IExpbmVhcicsCisgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogJ0xpbmVhclJhbXAgYWZ0ZXIgY2FuY2VsbGluZycKKyAgICAg
ICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgICAg
Ly8gUnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVhclJhbXAgYXMgdGhlIGV2ZW50IHRv
IGJlCisgICAgICAgICAgICAvLyBjYW5jZWxsZWQuIFRoZW4gc2NoZWR1bGUgYW5vdGhlciBsaW5l
YXIgcmFtcCBhZnRlciB0aGUKKyAgICAgICAgICAgIC8vIGNhbmNlbGxhdGlvbi4KKyAgICAgICAg
ICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAgICAgICAg
IGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbGxhdGlvbiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGlt
ZScpLAorICAgICAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRo
cmVzaG9sZDogOC4zOTk4ZS01fSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5jZWxU
aW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0
aGUgbGluZWFyIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvciBnWzJdLAorICAgICAg
ICAgICAgICAgICAgLy8gdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4cGVjdGVk
Q29uc3RhbnQuCisgICAgICAgICAgICAgICAgICBsZXQgdjIgPSAyOworICAgICAgICAgICAgICAg
ICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAgICAgICAgZ1swXS5n
YWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgICAgICBn
WzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7Cisg
ICAgICAgICAgICAgICAgICBnWzJdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQy
KTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0
YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bv
c3QgbGluZWFyUmFtcCgnICsgdjIgKyAnLCAnICsgdDIgKyAnKScKKyAgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUu
YmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAg
ICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3Bvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCcsCisg
ICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0V4cG9uZW50aWFsUmFtcCBhZnRlciBjYW5jZWxsaW5n
JworICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAg
ICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUg
ZXZlbnQgdG8gYmUKKyAgICAgICAgICAgIC8vIGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVsZSBhbiBl
eHBvbmVudGlhbCByYW1wIGFmdGVyIHRoZQorICAgICAgICAgICAgLy8gY2FuY2VsbGF0aW9uLgor
ICAgICAgICAgICAgY2FuY2VsVGVzdCgKKyAgICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAg
ICAgICAgICAgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFs
dWVBdFRpbWUnKSwKKyAgICAgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwg
Y3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZywg
Y2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAgICAgLy8gU2No
ZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgor
ICAgICAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVu
IGJ5IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgICAgICBsZXQgdjIgPSAyOworICAg
ICAgICAgICAgICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAg
ICAgICAgZ1swXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKKyAg
ICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50
LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5leHBvbmVudGlhbFJh
bXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgICAgICByZXR1cm4geworICAg
ICAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IGV4cG9uZW50aWFsUmFtcCgnICsgdjIgKyAnLCAnICsg
dDIgKyAnKScKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IFZhbHVlQ3VydmUnLCBmdW5jdGlvbih0
YXNrLCBzaG91bGQpIHsKKyAgICAgICAgLy8gUnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxp
bmVhclJhbXAgYXMgdGhlIGV2ZW50IHRvIGJlIGNhbmNlbGxlZC4KKyAgICAgICAgLy8gVGhlbiBz
Y2hlZHVsZSBhIHNldFZhbHVlQ3VydmUgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KKyAgICAgICAg
Y2FuY2VsVGVzdCgKKyAgICAgICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2Fu
Y2VsIHNldFZhbHVlQ3VydmVBdFRpbWUnKSwKKyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDog
OC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01fSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgLy8g
U2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZv
cgorICAgICAgICAgICAgICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4g
YnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAgICAgICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSAr
IDAuMTI1OworICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSAwLjEyNTsKKyAgICAgICAgICAg
ICAgbGV0IGN1cnZlID0gRmxvYXQzMkFycmF5LmZyb20oWy4xMjUsIDJdKTsKKyAgICAgICAgICAg
ICAgZ1swXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIHQyLCBkdXJhdGlvbik7Cisg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUo
Y3VydmUsIHQyLCBkdXJhdGlvbik7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAorICAgICAgICAgICAgICAgIG1lc3Nh
Z2U6ICdQb3N0IHNldFZhbHVlQ3VydmUoWycgKyBjdXJ2ZSArICddLCAnICsgdDIgKyAnLCAnICsK
KyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24gKyAnKScsCisgICAgICAgICAgICAgICAgZXJy
b3JUaHJlc2hvbGQ6IDguMzk5OGUtNQorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSkK
KyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisg
ICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXQnLCBmdW5jdGlvbih0YXNr
LCBzaG91bGQpIHsKKyAgICAgICAgLy8gUnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVh
clJhbXAgYXMgdGhlIGV2ZW50IHRvIGJlIGNhbmNlbGxlZC4KKyAgICAgICAgLy8gVGhlbiBzY2hl
ZHVsZSBhIHNldFRhcmdldCBhZnRlciB0aGUgY2FuY2VsbGF0aW9uLgorICAgICAgICBjYW5jZWxU
ZXN0KAorICAgICAgICAgICAgc2hvdWxkLCBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgc2V0
VGFyZ2V0QXRUaW1lJyksCisgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwg
Y3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCisgICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5j
ZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRo
ZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKKyAgICAgICAg
ICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4cGVjdGVk
Q29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB2MiA9IDAuMTI1OworICAgICAgICAgICAgICBs
ZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0aW1lQ29uc3Rh
bnQgPSAwLjE7CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjIsIHQy
LCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUo
ZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5z
ZXRUYXJnZXRBdFRpbWUodjIsIHQyLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSArIDAuMTI1
LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IHNldFRhcmdldEF0VGltZSgnICsgdjIg
KyAnLCAnICsgdDIgKyAnLCAnICsKKyAgICAgICAgICAgICAgICAgICAgdGltZUNvbnN0YW50ICsg
JyknLAorICAgICAgICAgICAgICAgIGVycm9yVGhyZXNob2xkOiA4LjQwMzdlLTUKKyAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmlu
ZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdwb3N0IGNhbmNlbDog
c2V0VmFsdWUnLCBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgLy8gUnVuIHRoZSBj
YW5jZWwgdGVzdCB1c2luZyBhIGxpbmVhclJhbXAgYXMgdGhlIGV2ZW50IHRvIGJlIGNhbmNlbGxl
ZC4KKyAgICAgICAgLy8gVGhlbiBzY2hlZHVsZSBhIHNldFRhcmdldCBhZnRlciB0aGUgY2FuY2Vs
bGF0aW9uLgorICAgICAgICBjYW5jZWxUZXN0KAorICAgICAgICAgICAgc2hvdWxkLCBsaW5lYXJS
YW1wVGVzdCgnUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWUnKSwKKyAgICAgICAgICAgIHt2YWx1
ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01fSwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAgICAg
ICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRv
IHRoZSBzYW1lIGZvcgorICAgICAgICAgICAgICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcg
cG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAgICAgICAgICAgbGV0IHYyID0g
MC4xMjU7CisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKKyAgICAg
ICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAg
IGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lKTsK
KyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxU
aW1lICsgMC4xMjUsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFsdWVBdFRp
bWUoJyArIHYyICsgJywgJyArIHQyICsgJyknCisgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7
CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXQnLCAodGFzaywg
c2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVS
YXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0
KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAg
c3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOworICAgICAgICBzcmMub2Zmc2V0LnNl
dFRhcmdldEF0VGltZSgwLCAwLjc1ICogcmVuZGVyRHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8v
IE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zm
c2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRpb24pOworCisgICAgICAg
IHNyYy5zdGFydCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAg
ICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIu
Z2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdl
dCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCisgICAgICAgICAgICAgIC8v
IGNvbnN0YW50LgorICAgICAgICAgICAgICBzaG91bGQoYWN0dWFsLCAnQWZ0ZXIgY2FuY2VsbGlu
ZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBvdXRwdXQnKQorICAgICAgICAgICAgICAgICAgLmJl
Q29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4o
dGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgn
Y2FuY2VsIHNldFRhcmdldCBub3cnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0
IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVy
RHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0g
bmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29u
dGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgw
LjUsIDApOworICAgICAgICBzcmMub2Zmc2V0LnNldFRhcmdldEF0VGltZSgwLCAwLjUgKiByZW5k
ZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAgICAgLy8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRo
ZSBzZXRUYXJnZXQuCisgICAgICAgIHNyYy5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUg
KiByZW5kZXJEdXJhdGlvbik7CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIGNvbnRl
eHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oYnVmZmVyID0+IHsKKyAgICAg
ICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAg
ICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQg
c2hvdWxkIGJlIGEKKyAgICAgICAgICAgICAgLy8gY29uc3RhbnQuCisgICAgICAgICAgICAgIHNo
b3VsZCgKKyAgICAgICAgICAgICAgICAgIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICdBZnRl
ciBjYW5jZWxsaW5nIHNldFRhcmdldCBldmVudCBzdGFydGluZyBub3csIG91dHB1dCcpCisgICAg
ICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgZnV0dXJlIHNldFZhbHVlQ3VydmUnLCAodGFzaywgc2hv
dWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxp
bmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRl
KTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsK
KyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc3Jj
Lm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOworICAgICAgICBzcmMub2Zmc2V0LnNldFZh
bHVlQ3VydmVBdFRpbWUoWy0xLCAxXSwgMC43NSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAg
ICAgICAvLyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAg
c3JjLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKwor
ICAgICAgICBzcmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisg
ICAgICAgICAgICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0g
YnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBz
ZXRUYXJnZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAg
ICAgICAvLyBjb25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAg
ICAgYWN0dWFsLCAnQWZ0ZXIgY2FuY2VsbGluZyBmdXR1cmUgc2V0VmFsdWVDdXJ2ZSBldmVudCwg
b3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAg
ICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAg
ICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdycs
ICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAg
ICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUs
IHNhbXBsZVJhdGUpOworICAgICAgICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2Rl
KGNvbnRleHQpOworICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKwor
ICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5v
ZmZzZXQuc2V0VmFsdWVDdXJ2ZUF0VGltZShbLTEsIDFdLCAwLjUgKiByZW5kZXJEdXJhdGlvbiwg
MC4xKTsKKyAgICAgICAgLy8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQu
CisgICAgICAgIHNyYy5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJh
dGlvbik7CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5k
ZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0
IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgLy8gQmVj
YXVzZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEK
KyAgICAgICAgICAgICAgLy8gY29uc3RhbnQuCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAg
ICAgICAgICAgICAgIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICdBZnRlciBjYW5jZWxsaW5n
IGN1cnJlbnQgc2V0VmFsdWVDdXJ2ZSBldmVudCBzdGFydGluZyBub3csIG91dHB1dCcpCisgICAg
ICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKAorICAgICAgICB7CisgICAgICAgICAgbGFiZWw6ICdsaW5lYXIsIGNh
bmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVhcicsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdT
Y2hlZHVsZXMgMyBsaW5lYXIgcmFtcHMsIGNhbmNlbGxpbmcgMiBvZiB0aGVtLCAnCisgICAgICAg
ICAgICArICdzbyB0aGF0IHdlIGVuZCB1cCB3aXRoIDIgY2FuY2VsIGV2ZW50cyBuZXh0IHRvIGVh
Y2ggb3RoZXInCisgICAgICAgIH0sCisgICAgICAgICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgICBjYW5jZWxUZXN0MigKKyAgICAgICAgICAgIHNob3VsZCwKKyAgICAgICAgICAgIGxpbmVh
clJhbXBUZXN0KCcxc3QgbGluZWFyUmFtcCcpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xk
OiAwLCBjdXJ2ZVRocmVzaG9sZDogMH0sCisgICAgICAgICAgICAoZywgY2FuY2VsVGltZSwgZXhw
ZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZTIpID0+IHsKKyAgICAgICAgICAgICAgLy8gUmFtcCBm
cm9tIGZpcnN0IGNhbmNlbCB0aW1lIHRvIHRoZSBlbmQgd2lsbCBiZSBjYW5jZWxsZWQgYXQKKyAg
ICAgICAgICAgICAgLy8gc2Vjb25kIGNhbmNlbCB0aW1lLgorICAgICAgICAgICAgICBjb25zdCB2
MSA9IGV4cGVjdGVkQ29uc3RhbnQ7CisgICAgICAgICAgICAgIGNvbnN0IHQxID0gY2FuY2VsVGlt
ZTsKKyAgICAgICAgICAgICAgY29uc3QgdjIgPSAyOworICAgICAgICAgICAgICBjb25zdCB0MiA9
IHJlbmRlckR1cmF0aW9uOworICAgICAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1l
KHYxLCB0MSk7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGlt
ZSh2MiwgdDIpOworCisgICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkQ29uc3RhbnQyID0KKyAg
ICAgICAgICAgICAgICBhdWRpb1BhcmFtTGluZWFyUmFtcChjYW5jZWxUaW1lMiwgdjEsIHQxLCB2
MiwgdDIpOworCisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgY29uc3Rh
bnRFbmRUaW1lOiBjYW5jZWxUaW1lLAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGAybmQgbGlu
ZWFyUmFtcCgke3YyfSwgJHt0Mn0pYCwKKyAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
MgorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIChnLCBjYW5j
ZWxUaW1lMiwgZXhwZWN0ZWRDb25zdGFudDIpID0+IHsKKyAgICAgICAgICAgICAgLy8gUmFtcCBm
cm9tIHNlY29uZCBjYW5jZWwgdGltZSB0byB0aGUgZW5kLgorICAgICAgICAgICAgICBjb25zdCB2
MyA9IDA7CisgICAgICAgICAgICAgIGNvbnN0IHQzID0gcmVuZGVyRHVyYXRpb247CisgICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MywgdDMpOworICAgICAg
ICAgICAgICBnWzNdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudDIsIGNhbmNl
bFRpbWUyKTsKKyAgICAgICAgICAgICAgZ1szXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
KHYzLCB0Myk7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgY29uc3Rh
bnRFbmRUaW1lMjogY2FuY2VsVGltZTIsCisgICAgICAgICAgICAgICAgbWVzc2FnZTI6IGAzcmQg
bGluZWFyUmFtcCgke3YzfSwgJHt0M30pYCwKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgIH0pOwor
CisgICAgICBhdWRpdC5ydW4oKTsKKworICAgICAgLy8gQ29tbW9uIGZ1bmN0aW9uIGZvciBkb2lu
ZyBhIGxpbmVhclJhbXAgdGVzdC4gIFRoaXMganVzdCBkb2VzIGEgbGluZWFyCisgICAgICAvLyBy
YW1wIGZyb20gMCB0byB2MCBhdCBmcm9tIHRpbWUgMCB0byB0MC4gIFRoZW4gYW5vdGhlciBsaW5l
YXIgcmFtcCBpcworICAgICAgLy8gc2NoZWR1bGVkIGZyb20gdjAgdG8gMCBmcm9tIHRpbWUgdDAg
dG8gdDEuICBUaGlzIGlzIHRoZSByYW1wIHRoYXQgaXMgdG8KKyAgICAgIC8vIGJlIGNhbmNlbGxl
ZC4KKyAgICAgIGZ1bmN0aW9uIGxpbmVhclJhbXBUZXN0KG1lc3NhZ2UpIHsKKyAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2VsVGltZSkgeworICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRp
bWUoMCwgMCk7CisgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYw
LCB0MCk7CisgICAgICAgICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0
MCk7CisKKyAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgIGxldCB0MSA9IHJlbmRlckR1
cmF0aW9uOworICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MSwg
dDEpOworICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEp
OworCisgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9CisgICAgICAgICAgICAgIE1hdGguZnJv
dW5kKHYwICsgKHYxIC0gdjApICogKGNhbmNlbFRpbWUgLSB0MCkgLyAodDEgLSB0MCkpOworCisg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVk
Q29uc3RhbnQsCisgICAgICAgICAgICBhdXRvTWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNz
YWdlICsgJzogbGluZWFyUmFtcFRvVmFsdWUoJyArIHYxICsgJywgJyArIHQxICsgJyknLAorICAg
ICAgICAgICAgc3VtbWFyeTogbWVzc2FnZSwKKyAgICAgICAgICB9OworICAgICAgICB9CisgICAg
ICB9CisKKyAgICAgIC8vIFJ1biB0aGUgY2FuY2VsbGF0aW9uIHRlc3QuIEEgc2V0IG9mIGF1dG9t
YXRpb25zIGlzIGNyZWF0ZWQgYW5kCisgICAgICAvLyBjYW5jZWxlZC4KKyAgICAgIC8vCisgICAg
ICAvLyB8dGVzdGVyRnVuY3Rpb258IGlzIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGF1
dG9tYXRpb24gdG8gYmUKKyAgICAgIC8vIHRlc3RlZC4gIEl0IGlzIGdpdmVuIGFuIGFycmF5IG9m
IDMgZ2FpbiBub2RlcywgdGhlIHZhbHVlIGFuZCB0aW1lIG9mIGFuCisgICAgICAvLyBpbml0aWFs
IGxpbmVhciByYW1wLCBhbmQgdGhlIHRpbWUgd2hlcmUgdGhlIGNhbmNlbGxhdGlvbiBzaG91bGQg
b2NjdXIuCisgICAgICAvLyBUaGUgZnVuY3Rpb24gbXVzdCBkbyB0aGUgYXV0b21hdGlvbnMgZm9y
IHRoZSBmaXJzdCB0d28gZ2FpbiBub2Rlcy4gIEl0CisgICAgICAvLyBtdXN0IHJldHVybiBhIGRp
Y3Rpb25hcnkgd2l0aCB8ZXhwZWN0ZWRDb25zdGFudHwgYmVpbmcgdGhlIHZhbHVlIGF0IHRoZQor
ICAgICAgLy8gY2FuY2VsbGF0aW9uIHRpbWUsIHxhdXRvTWVzc2FnZXwgZm9yIG1lc3NhZ2UgdG8g
ZGVzY3JpYmUgdGhlIHRlc3QsIGFuZAorICAgICAgLy8gfHN1bW1hcnl8IGZvciBnZW5lcmFsIHN1
bW1hcnkgbWVzc2FnZSB0byBiZSBwcmludGVkIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAvLyB0
ZXN0LgorICAgICAgLy8KKyAgICAgIC8vIHx0aHJlc2hvbGRPcHRpb25zfCBpcyBhIHByb3BlcnR5
IGJhZyB0aGF0IHNwZWNpZmllcyB0aGUgZXJyb3IgdGhyZXNob2xkCisgICAgICAvLyB0byB1c2Uu
IHx0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhyZXNob2xkfCBpcyB0aGUgZXJyb3IgdGhyZXNob2xk
IGZvcgorICAgICAgLy8gY29tcGFyaW5nIHRoZSBhY3R1YWwgY29uc3RhbnQgb3V0cHV0IGFmdGVy
IGNhbmNlbGxpbmcgdG8gdGhlIGV4cGVjdGVkCisgICAgICAvLyB2YWx1ZS4gIHx0aHJlc2hvbGRP
cHRpb25zLmN1cnZlVGhyZXNob2xkfCBpcyB0aGUgZXJyb3IgdGhyZXNob2xkIGZvcgorICAgICAg
Ly8gY29tcGFyaW5nIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkIGF1dG9tYXRpb24gY3VydmVzIGJl
Zm9yZSB0aGUKKyAgICAgIC8vIGNhbmNlbGF0aW9uIHBvaW50LgorICAgICAgLy8KKyAgICAgIC8v
IEZvciBjYW5jZWxsYXRpb24gdGVzdHMsIHxwb3N0Q2FuY2VsVGVzdHwgaXMgYSBmdW5jdGlvbiB0
aGF0IHNjaGVkdWxlcworICAgICAgLy8gc29tZSBhdXRvbWF0aW9uIGFmdGVyIHRoZSBjYW5jZWxs
YXRpb24uICBJdCB0YWtlcyAzIGFyZ3VtZW50czogYW4gYXJyYXkKKyAgICAgIC8vIG9mIHRoZSBn
YWluIG5vZGVzLCB0aGUgY2FuY2VsbGF0aW9uIHRpbWUsIGFuZCB0aGUgZXhwZWN0ZWQgdmFsdWUg
YXQgdGhlCisgICAgICAvLyBjYW5jZWxsYXRpb24gdGltZS4gIFRoaXMgZnVuY3Rpb24gbXVzdCBy
ZXR1cm4gYSBkaWN0aW9uYXJ5IGNvbnNpc3RpbmcKKyAgICAgIC8vIG9mIHxjb25zdGFudEVuZHRp
bWV8IGluZGljYXRpbmcgd2hlbiB0aGUgaGVsZCBjb25zdGFudCBmcm9tCisgICAgICAvLyBjYW5j
ZWxsYXRpb24gc3RvcHMgYmVpbmcgY29uc3RhbnQsIHxtZXNzYWdlfCBnaXZpbmcgYSBzdW1tYXJ5
IG9mIHdoYXQKKyAgICAgIC8vIGF1dG9tYXRpb24gaXMgYmVpbmcgdXNlZCwgYW5kIHxlcnJvclRo
cmVzaG9sZHwgdGhhdCBpcyB0aGUgZXJyb3IKKyAgICAgIC8vIHRocmVzaG9sZCBiZXR3ZWVuIHRo
ZSBleHBlY3RlZCBjdXJ2ZSBhbmQgdGhlIGFjdHVhbCBjdXJ2ZS4KKyAgICAgIC8vCisgICAgICBm
dW5jdGlvbiBjYW5jZWxUZXN0KAorICAgICAgICAgIHNob3VsZCwgdGVzdGVyRnVuY3Rpb24sIHRo
cmVzaG9sZE9wdGlvbnMsIHBvc3RDYW5jZWxUZXN0KSB7CisgICAgICAgIC8vIENyZWF0ZSBhIGNv
bnRleHQgd2l0aCB0aHJlZSBjaGFubmVscy4gIENoYW5uZWwgMCBpcyB0aGUgdGVzdCBjaGFubmVs
CisgICAgICAgIC8vIGNvbnRhaW5pbmcgdGhlIGFjdHVhbCBvdXRwdXQgdGhhdCBpbmNsdWRlcyB0
aGUgY2FuY2VsbGF0aW9uIG9mCisgICAgICAgIC8vIGV2ZW50cy4gIENoYW5uZWwgMSBpcyB0aGUg
ZXhwZWN0ZWQgZGF0YSB1cHRvIHRoZSBjYW5jZWxsYXRpb24gc28gd2UKKyAgICAgICAgLy8gY2Fu
IHZlcmlmeSB0aGUgY2FuY2VsbGF0aW9uIHByb2R1Y2VkIHRoZSBjb3JyZWN0IHJlc3VsdC4gIENo
YW5uZWwgMgorICAgICAgICAvLyBpcyBmb3IgdmVyaWZ5aW5nIGV2ZW50cyBpbnNlcnRlZCBhZnRl
ciB0aGUgY2FuY2VsbGF0aW9uIHNvIHdlIGNhbgorICAgICAgICAvLyB2ZXJpZnkgdGhhdCBhdXRv
bWF0aW9ucyBhcmUgY29ycmVjdGx5IGdlbmVyYXRlZCBhZnRlciB0aGUKKyAgICAgICAgLy8gY2Fu
Y2VsbGF0aW9uIHBvaW50LgorICAgICAgICBsZXQgY29udGV4dCA9CisgICAgICAgICAgICBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgzLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBs
ZVJhdGUpOworCisgICAgICAgIC8vIFRlc3Qgc291cmNlIGlzIGEgY29uc3RhbnQgc2lnbmFsCisg
ICAgICAgIGxldCBzcmMgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBz
cmMuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAg
IHNyYy5sb29wID0gdHJ1ZTsKKworICAgICAgICAvLyBXZSdsbCBkbyB0aGUgYXV0b21hdGlvbiB0
ZXN0cyB3aXRoIHRocmVlIGdhaW4gbm9kZXMuICBPbmUgKGcwKSB3aWxsCisgICAgICAgIC8vIGhh
dmUgY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQgdGhlIG90aGVyIChnMSkgd2lsbCBub3QuICBnMSBp
cworICAgICAgICAvLyB1c2VkIGFzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHRoYXQgYXV0b21h
dGlvbiB1cCB0byB0aGUKKyAgICAgICAgLy8gY2FuY2VsbGF0aW9uIHBvaW50LiAgVGhleSBzaG91
bGQgYmUgdGhlIHNhbWUuICBUaGUgdGhpcmQgbm9kZSAoZzIpIGlzCisgICAgICAgIC8vIHVzZWQg
Zm9yIHRlc3RpbmcgYXV0b21hdGlvbnMgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbiBw
b2ludCwKKyAgICAgICAgLy8gaWYgYW55LiAgZzIgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9t
IHRoZSBjYW5jZWxsYXRpb24gcG9pbnQgdG8gdGhlCisgICAgICAgIC8vIGVuZCBvZiB0aGUgdGVz
dC4KKworICAgICAgICBsZXQgZzAgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0
IGcxID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGxldCBnMiA9IGNvbnRleHQuY3Jl
YXRlR2FpbigpOworICAgICAgICBsZXQgdjAgPSAxOworICAgICAgICBsZXQgdDAgPSAwLjAxOwor
CisgICAgICAgIGxldCBjYW5jZWxUaW1lID0gcmVuZGVyRHVyYXRpb24gLyAyOworCisgICAgICAg
IC8vIFRlc3QgYXV0b21hdGlvbiBoZXJlLiAgVGhlIHRlc3RlciBmdW5jdGlvbiBpcyByZXNwb25z
aWJsZSBmb3Igc2V0dGluZworICAgICAgICAvLyB1cCB0aGUgZ2FpbiBub2RlcyB3aXRoIHRoZSBk
ZXNpcmVkIGF1dG9tYXRpb24gZm9yIHRlc3RpbmcuCisgICAgICAgIGF1dG9SZXN1bHQgPSB0ZXN0
ZXJGdW5jdGlvbihbZzAsIGcxLCBnMl0sIHYwLCB0MCwgY2FuY2VsVGltZSk7CisgICAgICAgIGxl
dCBleHBlY3RlZENvbnN0YW50ID0gYXV0b1Jlc3VsdC5leHBlY3RlZENvbnN0YW50OworICAgICAg
ICBsZXQgYXV0b01lc3NhZ2UgPSBhdXRvUmVzdWx0LmF1dG9NZXNzYWdlOworICAgICAgICBsZXQg
c3VtbWFyeU1lc3NhZ2UgPSBhdXRvUmVzdWx0LnN1bW1hcnk7CisKKyAgICAgICAgLy8gQ2FuY2Vs
IHNjaGVkdWxlZCBldmVudHMgc29tZXdoZXJlIGluIHRoZSBtaWRkbGUgb2YgdGhlIHRlc3QKKyAg
ICAgICAgLy8gYXV0b21hdGlvbi4KKyAgICAgICAgZzAuZ2Fpbi5jYW5jZWxBbmRIb2xkQXRUaW1l
KGNhbmNlbFRpbWUpOworCisgICAgICAgIGxldCBjb25zdGFudEVuZFRpbWU7CisgICAgICAgIGlm
IChwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAgIHBvc3RSZXN1bHQgPQorICAgICAgICAgICAg
ICBwb3N0Q2FuY2VsVGVzdChbZzAsIGcxLCBnMl0sIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3Rh
bnQpOworICAgICAgICAgIGNvbnN0YW50RW5kVGltZSA9IHBvc3RSZXN1bHQuY29uc3RhbnRFbmRU
aW1lOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29ubmVjdCBldmVyeXRoaW5nIHRvZ2V0aGVy
ICh3aXRoIGEgbWVyZ2VyIHRvIG1ha2UgYSB0d28tY2hhbm5lbAorICAgICAgICAvLyByZXN1bHQp
LiAgQ2hhbm5lbCAwIGlzIHRoZSB0ZXN0ICh3aXRoIGNhbmNlbEFuZEhvbGRBdFRpbWUpIGFuZAor
ICAgICAgICAvLyBjaGFubmVsIDEgaXMgdGhlIHJlZmVyZW5jZSAod2l0aG91dCBjYW5jZWxBbmRI
b2xkQXRUaW1lKS4KKyAgICAgICAgLy8gQ2hhbm5lbCAxIGlzIHVzZWQgdG8gdmVyaWZ5IHRoYXQg
ZXZlcnl0aGluZyB1cCB0byB0aGUgY2FuY2VsbGF0aW9uCisgICAgICAgIC8vIGhhcyB0aGUgY29y
cmVjdCB2YWx1ZXMuCisgICAgICAgIHNyYy5jb25uZWN0KGcwKTsKKyAgICAgICAgc3JjLmNvbm5l
Y3QoZzEpOworICAgICAgICBzcmMuY29ubmVjdChnMik7CisgICAgICAgIGxldCBtZXJnZXIgPSBj
b250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIoMyk7CisgICAgICAgIGcwLmNvbm5lY3QobWVyZ2Vy
LCAwLCAwKTsKKyAgICAgICAgZzEuY29ubmVjdChtZXJnZXIsIDAsIDEpOworICAgICAgICBnMi5j
b25uZWN0KG1lcmdlciwgMCwgMik7CisgICAgICAgIG1lcmdlci5jb25uZWN0KGNvbnRleHQuZGVz
dGluYXRpb24pOworCisgICAgICAgIC8vIEdvIQorICAgICAgICBzcmMuc3RhcnQoKTsKKworICAg
ICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oZnVuY3Rpb24oYnVmZmVy
KSB7CisgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAg
ICAgICAgICBsZXQgZXhwZWN0ZWQgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisKKyAgICAg
ICAgICAvLyBUaGUgYWN0dWFsIG91dHB1dCBzaG91bGQgYmUgYSBjb25zdGFudCBmcm9tIHRoZSBj
YW5jZWwgdGltZSB0byB0aGUKKyAgICAgICAgICAvLyBlbmQuICBXZSB1c2UgdGhlIGxhc3QgdmFs
dWUgb2YgdGhlIGFjdHVhbCBvdXRwdXQgYXMgdGhlIGNvbnN0YW50LAorICAgICAgICAgIC8vIGJ1
dCB3ZSBhbHNvIHdhbnQgdG8gY29tcGFyZSB0aGF0IHdpdGggd2hhdCB3ZSB0aG91Z2h0IGl0IHNo
b3VsZAorICAgICAgICAgIC8vIHJlYWxseSBiZS4KKworICAgICAgICAgIGxldCBjYW5jZWxGcmFt
ZSA9IE1hdGguY2VpbChjYW5jZWxUaW1lICogc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAvLyBW
ZXJpZnkgdGhhdCB0aGUgY3VydmVzIHVwIHRvIHRoZSBjYW5jZWwgdGltZSBhcmUgImlkZW50aWNh
bCIuICBUaGUKKyAgICAgICAgICAvLyBzaG91bGQgYmUgYnV0IHJvdW5kLW9mZiBtYXkgbWFrZSB0
aGVtIGRpZmZlciBzbGlnaHRseSBkdWUgdG8gdGhlCisgICAgICAgICAgLy8gd2F5IGNhbmNlbGxp
bmcgaXMgZG9uZS4KKyAgICAgICAgICBsZXQgZW5kRnJhbWUgPSBNYXRoLmZsb29yKGNhbmNlbFRp
bWUgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIGFjdHVh
bC5zbGljZSgwLCBlbmRGcmFtZSksCisgICAgICAgICAgICAgIGF1dG9NZXNzYWdlICsgJyB1cCB0
byB0aW1lICcgKyBjYW5jZWxUaW1lKQorICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisg
ICAgICAgICAgICAgICAgICBleHBlY3RlZC5zbGljZSgwLCBlbmRGcmFtZSksCisgICAgICAgICAg
ICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hv
bGR9KTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGUgb3V0cHV0IGFmdGVyIHRoZSBjYW5jZWxs
YXRpb24gaXMgYSBjb25zdGFudC4KKyAgICAgICAgICBsZXQgYWN0dWFsVGFpbDsKKyAgICAgICAg
ICBsZXQgY29uc3RhbnRFbmRGcmFtZTsKKworICAgICAgICAgIGlmIChwb3N0Q2FuY2VsVGVzdCkg
eworICAgICAgICAgICAgY29uc3RhbnRFbmRGcmFtZSA9IE1hdGguY2VpbChjb25zdGFudEVuZFRp
bWUgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIGFjdHVhbFRhaWwgPSBhY3R1YWwuc2xpY2Uo
Y2FuY2VsRnJhbWUsIGNvbnN0YW50RW5kRnJhbWUpOworICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBhY3R1YWxUYWlsID0gYWN0dWFsLnNsaWNlKGNhbmNlbEZyYW1lKTsKKyAgICAgICAg
ICB9CisKKyAgICAgICAgICBsZXQgYWN0dWFsQ29uc3RhbnQgPSBhY3R1YWxbY2FuY2VsRnJhbWVd
OworCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWxUYWlsLAorICAgICAg
ICAgICAgICAnQ2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArIGNhbmNl
bFRpbWUpCisgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFudCk7
CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29uc3RhbnQgaXMgdGhlIHZhbHVlIHdl
IGV4cGVjdC4KKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIGFjdHVhbENvbnN0YW50
LAorICAgICAgICAgICAgICAnRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgJyArIGF1dG9N
ZXNzYWdlICsgJyBhdCB0aW1lICcgKworICAgICAgICAgICAgICAgICAgY2FuY2VsVGltZSkKKyAg
ICAgICAgICAgICAgLmJlQ2xvc2VUbygKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3Rh
bnQsCisgICAgICAgICAgICAgICAgICB7dGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVl
VGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhlIGN1cnZlIGFmdGVyIHRoZSBj
b25zdGFudEVuZFRpbWUgbWF0Y2hlcyBvdXIKKyAgICAgICAgICAvLyBleHBlY3RhdGlvbnMuCisg
ICAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0KSB7CisgICAgICAgICAgICBsZXQgYzIgPSBidWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMik7CisgICAgICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKGNv
bnN0YW50RW5kRnJhbWUpLCBwb3N0UmVzdWx0Lm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgLmJl
Q2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICAgICAgICBjMi5zbGljZShjb25zdGFudEVuZEZy
YW1lKSwKKyAgICAgICAgICAgICAgICAgICAge2Fic29sdXRlVGhyZXNob2xkOiBwb3N0UmVzdWx0
LmVycm9yVGhyZXNob2xkIHx8IDB9KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAg
fQorCisgICAgICAvLyBTaW1pbGFyIHRvIGNhbmNlbFRlc3QsIGJ1dCBkb2VzIDIgY2FuY2Vscy4K
KyAgICAgIGZ1bmN0aW9uIGNhbmNlbFRlc3QyKAorICAgICAgICAgIHNob3VsZCwgdGVzdGVyRnVu
Y3Rpb24sIHRocmVzaG9sZE9wdGlvbnMsCisgICAgICAgICAgcG9zdENhbmNlbFRlc3QsIHBvc3RD
YW5jZWxUZXN0MikgeworICAgICAgICAvLyBDaGFubmVsIDA6IEFjdHVhbCBvdXRwdXQgdGhhdCBp
bmNsdWRlcyB0aGUgY2FuY2VsbGF0aW9uIG9mIGV2ZW50cy4KKyAgICAgICAgLy8gQ2hhbm5lbCAx
OiBFeHBlY3RlZCBkYXRhIHVwIHRvIHRoZSBmaXJzdCBjYW5jZWxsYXRpb24uCisgICAgICAgIC8v
IENoYW5uZWwgMjogRXhwZWN0ZWQgZGF0YSBmcm9tIDFzdCBjYW5jZWxsYXRpb24gdG8gMm5kIGNh
bmNlbGxhdGlvbi4KKyAgICAgICAgLy8gQ2hhbm5lbCAzOiBFeHBlY3RlZCBkYXRhIGZyb20gMm5k
IGNhbmNlbGxhdGlvbiB0byB0aGUgZW5kLgorICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAg
ICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCg0LCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJh
dGUsIHNhbXBsZVJhdGUpOworCisgICAgICAgIGNvbnN0IHNyYyA9IGNvbnRleHQuY3JlYXRlQ29u
c3RhbnRTb3VyY2UoKTsKKworICAgICAgICAvLyBnMDogQWN0dWFsIGdhaW4gd2hpY2ggd2lsbCBo
YXZlIGNhbmNlbEFuZEhvbGRBdFRpbWUgY2FsbGVkIG9uIGl0CisgICAgICAgIC8vIHR3aWNlLgor
ICAgICAgICAvLyBnMTogRXhwZWN0ZWQgZ2FpbiBmcm9tIHN0YXJ0IHRvIHRoZSAxc3QgY2FuY2Vs
LgorICAgICAgICAvLyBnMjogRXhwZWN0ZWQgZ2FpbiBmcm9tIDFzdCBjYW5jZWwgdG8gdGhlIDJu
ZCBjYW5jZWwuCisgICAgICAgIC8vIGczOiBFeHBlY3RlZCBnYWluIGZyb20gdGhlIDJuZCBjYW5j
ZWwgdG8gdGhlIGVuZC4KKyAgICAgICAgY29uc3QgZzAgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsK
KyAgICAgICAgY29uc3QgZzEgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3Qg
ZzIgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3QgZzMgPSBjb250ZXh0LmNy
ZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3QgdjAgPSAxOworICAgICAgICBjb25zdCB0MCA9IDAu
MDE7CisKKyAgICAgICAgY29uc3QgY2FuY2VsVGltZTEgPSByZW5kZXJEdXJhdGlvbiAqIDAuNTsK
KyAgICAgICAgY29uc3QgY2FuY2VsVGltZTIgPSByZW5kZXJEdXJhdGlvbiAqIDAuNzU7CisKKyAg
ICAgICAgLy8gUnVuIHRlc3RlckZ1bmN0aW9uIHRvIGdlbmVyYXRlIHRoZSAxc3QgcmFtcC4KKyAg
ICAgICAgY29uc3QgeworICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQsIGF1dG9NZXNzYWdlLCBz
dW1tYXJ5TWVzc2FnZX0gPQorICAgICAgICAgICAgdGVzdGVyRnVuY3Rpb24oW2cwLCBnMSwgZzJd
LCB2MCwgdDAsIGNhbmNlbFRpbWUxKTsKKworICAgICAgICAvLyAxc3QgY2FuY2VsLCBjYW5jZWxs
aW5nIHRoZSAxc3QgcmFtcC4KKyAgICAgICAgZzAuZ2Fpbi5jYW5jZWxBbmRIb2xkQXRUaW1lKGNh
bmNlbFRpbWUxKTsKKworICAgICAgICAvLyBSdW4gcG9zdENhbmNlbFRlc3QgdG8gZ2VuZXJhdGUg
dGhlIDJuZCByYW1wLgorICAgICAgICBjb25zdCB7CisgICAgICAgICAgY29uc3RhbnRFbmRUaW1l
LCBtZXNzYWdlLCBlcnJvclRocmVzaG9sZCA9IDAsIGV4cGVjdGVkQ29uc3RhbnQyfSA9CisgICAg
ICAgICAgICBwb3N0Q2FuY2VsVGVzdCgKKyAgICAgICAgICAgICAgW2cwLCBnMSwgZzJdLCBjYW5j
ZWxUaW1lMSwgZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZTIpOworCisgICAgICAgIC8vIDJu
ZCBjYW5jZWwsIGNhbmNlbGxpbmcgdGhlIDJuZCByYW1wLgorICAgICAgICBnMC5nYWluLmNhbmNl
bEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZTIpOworCisgICAgICAgIC8vIFJ1biBwb3N0Q2FuY2Vs
VGVzdDIgdG8gZ2VuZXJhdGUgdGhlIDNyZCByYW1wLgorICAgICAgICBjb25zdCB7Y29uc3RhbnRF
bmRUaW1lMiwgbWVzc2FnZTJ9ID0KKyAgICAgICAgICBwb3N0Q2FuY2VsVGVzdDIoW2cwLCBnMSwg
ZzIsIGczXSwgY2FuY2VsVGltZTIsIGV4cGVjdGVkQ29uc3RhbnQyKTsKKworICAgICAgICAvLyBD
b25uZWN0IGV2ZXJ5dGhpbmcgdG9nZXRoZXIKKyAgICAgICAgc3JjLmNvbm5lY3QoZzApOworICAg
ICAgICBzcmMuY29ubmVjdChnMSk7CisgICAgICAgIHNyYy5jb25uZWN0KGcyKTsKKyAgICAgICAg
c3JjLmNvbm5lY3QoZzMpOworICAgICAgICBjb25zdCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNo
YW5uZWxNZXJnZXIoNCk7CisgICAgICAgIGcwLmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAg
ICAgZzEuY29ubmVjdChtZXJnZXIsIDAsIDEpOworICAgICAgICBnMi5jb25uZWN0KG1lcmdlciwg
MCwgMik7CisgICAgICAgIGczLmNvbm5lY3QobWVyZ2VyLCAwLCAzKTsKKyAgICAgICAgbWVyZ2Vy
LmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgLy8gR28hCisgICAgICAg
IHNyYy5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCku
dGhlbihmdW5jdGlvbiAoYnVmZmVyKSB7CisgICAgICAgICAgY29uc3QgYWN0dWFsID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMSA9IGJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgxKTsKKyAgICAgICAgICBjb25zdCBleHBlY3RlZDIgPSBidWZmZXIuZ2V0
Q2hhbm5lbERhdGEoMik7CisgICAgICAgICAgY29uc3QgZXhwZWN0ZWQzID0gYnVmZmVyLmdldENo
YW5uZWxEYXRhKDMpOworCisgICAgICAgICAgY29uc3QgY2FuY2VsRnJhbWUxID0gTWF0aC5jZWls
KGNhbmNlbFRpbWUxICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29uc3QgY2FuY2VsRnJhbWUy
ID0gTWF0aC5jZWlsKGNhbmNlbFRpbWUyICogc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICBjb25z
dCBjb25zdGFudEVuZEZyYW1lMSA9IE1hdGguY2VpbChjb25zdGFudEVuZFRpbWUgKiBzYW1wbGVS
YXRlKTsKKyAgICAgICAgICBjb25zdCBjb25zdGFudEVuZEZyYW1lMiA9IE1hdGguY2VpbChjb25z
dGFudEVuZFRpbWUyICogc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICBjb25zdCBhY3R1YWxUYWls
MSA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZTEsIGNvbnN0YW50RW5kRnJhbWUxKTsKKyAgICAg
ICAgICBjb25zdCBhY3R1YWxUYWlsMiA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZTIsIGNvbnN0
YW50RW5kRnJhbWUyKTsKKworICAgICAgICAgIGNvbnN0IGFjdHVhbENvbnN0YW50MSA9IGFjdHVh
bFtjYW5jZWxGcmFtZTFdOworICAgICAgICAgIGNvbnN0IGFjdHVhbENvbnN0YW50MiA9IGFjdHVh
bFtjYW5jZWxGcmFtZTJdOworCisgICAgICAgICAgLy8gVmVyaWZ5IGZpcnN0IHNlY3Rpb24gY3Vy
dmUKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBhY3R1YWwuc2xpY2UoMCwgY2FuY2Vs
RnJhbWUxKSwKKyAgICAgICAgICAgIGF1dG9NZXNzYWdlICsgJyB1cCB0byB0aW1lICcgKyBjYW5j
ZWxUaW1lMSkKKyAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhw
ZWN0ZWQxLnNsaWNlKDAsIGNhbmNlbEZyYW1lMSksCisgICAgICAgICAgICAgIHthYnNvbHV0ZVRo
cmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy5jdXJ2ZVRocmVzaG9sZH0pOworCisgICAgICAgICAg
Ly8gVmVyaWZ5IHRoYXQgYSB2YWx1ZSB3YXMgaGVsZCBhZnRlciAxc3QgY2FuY2VsCisgICAgICAg
ICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsVGFpbDEsCisgICAgICAgICAgICAnQ2FuY2Vs
bGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArIGNhbmNlbFRpbWUxKQorICAgICAg
ICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFjdHVhbENvbnN0YW50MSk7CisKKyAgICAgICAgICAv
LyBWZXJpZnkgdGhhdCBoZWxkIHZhbHVlIGFmdGVyIDFzdCBjYW5jZWwgd2FzIGNvcnJlY3QKKyAg
ICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBhY3R1YWxDb25zdGFudDEsCisgICAgICAgICAg
ICAnRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0
aW1lICcgKworICAgICAgICAgICAgY2FuY2VsVGltZTEpCisgICAgICAgICAgICAuYmVDbG9zZVRv
KAorICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICB7dGhyZXNo
b2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBW
ZXJpZnkgbWlkZGxlIHNlY3Rpb24gY3VydmUKKyAgICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNl
KGNvbnN0YW50RW5kRnJhbWUxLCBjYW5jZWxGcmFtZTIpLCBtZXNzYWdlKQorICAgICAgICAgICAg
LmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICBleHBlY3RlZDIuc2xpY2UoY29uc3RhbnRF
bmRGcmFtZTEsIGNhbmNlbEZyYW1lMiksCisgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9s
ZDogZXJyb3JUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGEgdmFsdWUg
d2FzIGhlbGQgYWZ0ZXIgMm5kIGNhbmNlbAorICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAg
IGFjdHVhbFRhaWwyLAorICAgICAgICAgICAgJ0NhbmNlbGxpbmcgJyArIG1lc3NhZ2UgKyAnIGF0
IHRpbWUgJyArIGNhbmNlbFRpbWUyKQorICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFj
dHVhbENvbnN0YW50Mik7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBoZWxkIHZhbHVlIGFm
dGVyIDJuZCBjYW5jZWwgd2FzIGNvcnJlY3QKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAg
ICBhY3R1YWxDb25zdGFudDIsCisgICAgICAgICAgICAnRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNl
bGxpbmcgJyArIG1lc3NhZ2UgKyAnIGF0IHRpbWUgJyArCisgICAgICAgICAgICBjYW5jZWxUaW1l
MikKKyAgICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3Rh
bnQyLAorICAgICAgICAgICAgICB7dGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhy
ZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgZW5kIHNlY3Rpb24gY3VydmUKKyAgICAg
ICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUyKSwgbWVzc2FnZTIpCisg
ICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAgICAgIGV4cGVjdGVkMy5zbGlj
ZShjb25zdGFudEVuZEZyYW1lMiksCisgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDog
ZXJyb3JUaHJlc2hvbGQgfHwgMH0pOworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczNzdiYjA5NDE2ZjViZDQyMTQ4OTFhNDU2ZTcz
OWI2OWQ3ZGExMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgQXVkaW9QYXJh
bSBzZXRWYWx1ZUN1cnZlQXRUaW1lKCkgZnVuY3Rpb25hbGl0eS4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi1QQVNTIEFsbCAyMCB0ZXN0cyBzdGFydGVkIGFuZCBlbmRlZCBhdCB0aGUg
Y29ycmVjdCB0aW1lLgotUEFTUyBBbGwgMjAgdGVzdHMgcGFzc2VkIHdpdGhpbiBhbiBhY2NlcHRh
YmxlIHRvbGVyYW5jZS4KLVBBU1MgQXVkaW9QYXJhbSBzZXRWYWx1ZUN1cnZlQXRUaW1lKCkgdGVz
dCBwYXNzZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1
ZUN1cnZlQXRUaW1lLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXNldFZh
bHVlQ3VydmVBdFRpbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjk4NTdi
NDVkMGM1MmE3ZjBjMzk0NTYxODZjMTQ5NzZhYjZiZGI0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFt
LXNldFZhbHVlQ3VydmVBdFRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVz
dGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVz
dGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9u
KCJUZXN0IEF1ZGlvUGFyYW0gc2V0VmFsdWVDdXJ2ZUF0VGltZSgpIGZ1bmN0aW9uYWxpdHkuIik7
Ci0KLS8vIFBsYXkgYSBsb25nIERDIHNpZ25hbCBvdXQgdGhyb3VnaCBhbiBBdWRpb0dhaW5Ob2Rl
IGFuZCBmb3IgZWFjaCB0aW1lIGludGVydmFsIGNhbGwKLS8vIHNldFZhbHVlQ3VydmVBdFRpbWUo
KSB0byBzZXQgdGhlIHZhbHVlcyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBpbnRlcnZhbC4gIEVh
Y2ggY3VydmUgaXMgYSBzaW5lCi0vLyB3YXZlLCBhbmQgd2UgYXNzdW1lIHRoYXQgdGhlIHRpbWUg
aW50ZXJ2YWwgaXMgbm90IGFuIGV4YWN0IG11bHRpcGxlIG9mIHRoZSBwZXJpb2QuIFRoaXMgY2F1
c2VzIGEKLS8vIGRpc2NvbnRpbnVpdHkgYmV0d2VlbiB0aW1lIGludGVydmFscyB3aGljaCBpcyB1
c2VkIHRvIHRlc3QgdGltaW5nLgotCi0vLyBOdW1iZXIgb2YgdGVzdHMgdG8gcnVuLgotdmFyIG51
bWJlck9mVGVzdHMgPSAyMDsKLQotLy8gTWF4IGFsbG93ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRo
ZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUgZXhwZWN0ZWQgcmVzdWx0LiAgKFRoZSBlcnJvciBpcyB6
ZXJvCi0vLyBiZWNhdXNlIHRoZSByZW5kZXJlZCBjdXJ2ZSBzaG91bGQgcmVhbGx5IGJlIGV4YWN0
bHkgdGhlIHNhbWUgYXMgdGhlIHJlZmVyZW5jZS4pCi12YXIgbWF4QWxsb3dlZEVycm9yID0gMDsK
LQotLy8gVGhlIGFtcGxpdHVkZSBvZiB0aGUgc2luZSB3YXZlLgotdmFyIHNpbmVBbXBsaXR1ZGUg
PSAxOwotCi0vLyBGcmVxdWVuY3kgb2YgdGhlIHNpbmUgd2F2ZS4KLXZhciBmcmVxSHogPSA0NDA7
Ci0KLS8vIEN1cnZlIHRvIHVzZSBmb3Igc2V0VmFsdWVDdXJ2ZUF0VGltZSgpLgotdmFyIGN1cnZl
OwotCi0vLyBTZXRzIHRoZSBjdXJ2ZSBkYXRhIGZvciB0aGUgZW50aXJlIHRpbWUgaW50ZXJ2YWwu
Ci1mdW5jdGlvbiBhdXRvbWF0aW9uKHZhbHVlLCBzdGFydFRpbWUsIGVuZFRpbWUpCi17Ci0gICAg
Z2Fpbk5vZGUuZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCBzdGFydFRpbWUsIGVuZFRp
bWUgLSBzdGFydFRpbWUpOwotfQotCi0vLyBDcmVhdGUgYSBzaW5lIHdhdmUgb2YgdGhlIHNwZWNp
ZmllZCBkdXJhdGlvbi4KLWZ1bmN0aW9uIGNyZWF0ZVJlZmVyZW5jZVNpbmVBcnJheShzdGFydFRp
bWUsIGVuZFRpbWUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBzYW1wbGVSYXRlKQotewotICAgIC8v
IElnbm9yZSB8c3RhcnRWYWx1ZXwgYW5kIHxlbmRWYWx1ZXwgZm9yIHRoZSBzaW5lIHdhdmUuCi0g
ICAgcmV0dXJuIGNyZWF0ZVNpbmVXYXZlQXJyYXkoZW5kVGltZSAtIHN0YXJ0VGltZSwgZnJlcUh6
LCBzaW5lQW1wbGl0dWRlLCBzYW1wbGVSYXRlKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIAot
ewotICAgIC8vIFRoZSBjdXJ2ZSBvZiB2YWx1ZXMgdG8gdXNlLgotICAgIGN1cnZlID0gY3JlYXRl
U2luZVdhdmVBcnJheSh0aW1lSW50ZXJ2YWwsIGZyZXFIeiwgc2luZUFtcGxpdHVkZSwgc2FtcGxl
UmF0ZSk7Ci0KLSAgICBjcmVhdGVBdWRpb0dyYXBoQW5kVGVzdChudW1iZXJPZlRlc3RzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmVBbXBsaXR1ZGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24oaykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBEb24ndCBuZWVkIHRvIHNldCB0aGUgdmFsdWUuCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzZXRWYWx1ZUN1cnZlQXRUaW1lKCkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1heEFsbG93ZWRFcnJvciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVSZWZlcmVuY2VTaW5lQXJyYXksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMiAqIE1hdGguUEkgKiBzaW5lQW1wbGl0dWRlICogZnJlcUh6IC8gc2FtcGxlUmF0ZSk7
Ci19Ci0KLXJ1blRlc3QoKTsKLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jYW5j
ZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJl
MTQ4MzI2NGQ2MDgxNmJmOTA1OTM5MmZhOTQ3YjRjZDdlNjI1YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQu
IAorUEFTUyBFeGVjdXRpbmcgImNyYXNoIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtj
cmFzaF0gIAorUEFTUyA8IFtjcmFzaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMCBh
c3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyBy
YW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY2Fu
Y2VsLXZhbHVlcy1jcmFzaC05MTMyMTcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NhbmNl
bC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFiMTU3Y2IwMjgwOTBhNGVj
NTRjY2QzOGY2MzM2MjJhNGRmNDEzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVz
dCBpZiBjYW5jZWxpbmcgZXZlbnRzIGFmdGVyIHNldFRhcmdldEF0VGltZSBjcmFzaGVzCisgICAg
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+Cisg
ICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICAvLyBBcmJpdHJhcnkgcGFy
YW1ldGVycyBmb3IgdGhlIG9mZmxpbmUgY29udGV4dC4KKyAgICAgIGNvbnN0IHNhbXBsZVJhdGUg
PSA0ODAwMDsKKyAgICAgIGNvbnN0IHJlbmRlckR1cmF0aW9uID0gMTsKKyAgICAgIGNvbnN0IGNo
YW5uZWxzID0gMjsKKyAgICAgIGNvbnN0IHJlbmRlckZyYW1lcyA9IHJlbmRlckR1cmF0aW9uICog
c2FtcGxlUmF0ZTsKKworICAgICAgY29uc3QgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVy
KCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY3Jhc2gnLCAodGFzaywgc2hvdWxkKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRl
eHQoY2hhbm5lbHMsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnN0IHNv
dXJjZSA9IGNvbnRleHQuY3JlYXRlQ29uc3RhbnRTb3VyY2UoKTsKKyAgICAgICAgY29uc3QgYW5h
bHlzZXIgPSBjb250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CisgICAgICAgIHNvdXJjZS5jb25uZWN0
KGFuYWx5c2VyKTsKKworICAgICAgICAvLyBTY2hlZHVsaW5nIHRoZSBmb2xsb3dpbmcgYXQgYW4g
ZWFybGllciB0aW1lIHRoYW4gYWJvdmUgY2F1c2VzIHRoZQorICAgICAgICAvLyBwYWdlIHRvIGNy
YXNoIGluIDczLjAuMzYzOC4wLiBTZWUgY3JidWcuY29tLzkxMzIxNy4KKyAgICAgICAgc291cmNl
Lm9mZnNldC5zZXRWYWx1ZUF0VGltZSgxLCBjb250ZXh0LmN1cnJlbnRUaW1lKTsKKyAgICAgICAg
c291cmNlLm9mZnNldC5zZXRUYXJnZXRBdFRpbWUoMCwgY29udGV4dC5jdXJyZW50VGltZSArIDIs
IDAuMDAwMDEpOworICAgICAgICBzb3VyY2Uub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoY29u
dGV4dC5jdXJyZW50VGltZSArIDEuOTk5OTkpOworCisgICAgICAgIHNvdXJjZS5zdGFydChjb250
ZXh0LmN1cnJlbnRUaW1lKTsKKworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhl
bigoKSA9PiB7CisgICAgICAgICAgLy8gU2hvdWxkIGZpbmlzaCB3aXRob3V0IGEgY3Jhc2guCisg
ICAgICAgICAgdGFzay5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIGF1
ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tcGFyYW0uanMgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tcGFyYW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMzM2Zl
OGEyMWY1ZTdmY2JlNGUzZDJkMmE0YzRjM2I4NDBkMzA3MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcwpAQCAtMCwwICsxLDQ0
IEBACisvLyBEZWZpbmUgZnVuY3Rpb25zIHRoYXQgaW1wbGVtZW50IHRoZSBmb3JtdWxhcyBmb3Ig
QXVkaW9QYXJhbSBhdXRvbWF0aW9ucy4KKworLy8gQXVkaW9QYXJhbSBsaW5lYXJSYW1wIHZhbHVl
IGF0IHRpbWUgdCBmb3IgYSBsaW5lYXIgcmFtcCBiZXR3ZWVuICh0MCwgdjApIGFuZAorLy8gKHQx
LCB2MSkuICBJdCBpcyBhc3N1bWVkIHRoYXQgdDAgPD0gdC4gIFJlc3VsdHMgYXJlIHVuZGVmaW5l
ZCBvdGhlcndpc2UuCitmdW5jdGlvbiBhdWRpb1BhcmFtTGluZWFyUmFtcCh0LCB2MCwgdDAsIHYx
LCB0MSkgeworICBpZiAodCA+PSB0MSkKKyAgICByZXR1cm4gdjE7CisgIHJldHVybiAodjAgKyAo
djEgLSB2MCkgKiAodCAtIHQwKSAvICh0MSAtIHQwKSkKK30KKworLy8gQXVkaW9QYXJhbSBleHBv
bmVudGlhbFJhbXAgdmFsdWUgYXQgdGltZSB0IGZvciBhbiBleHBvbmVudGlhbCByYW1wIGJldHdl
ZW4KKy8vICh0MCwgdjApIGFuZCAodDEsIHYxKS4gSXQgaXMgYXNzdW1lZCB0aGF0IHQwIDw9IHQu
ICBSZXN1bHRzIGFyZSB1bmRlZmluZWQKKy8vIG90aGVyd2lzZS4KK2Z1bmN0aW9uIGF1ZGlvUGFy
YW1FeHBvbmVudGlhbFJhbXAodCwgdjAsIHQwLCB2MSwgdDEpIHsKKyAgaWYgKHQgPj0gdDEpCisg
ICAgcmV0dXJuIHYxOworICByZXR1cm4gdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAodCAtIHQwKSAv
ICh0MSAtIHQwKSk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0VGFyZ2V0IHZhbHVlIGF0IHRpbWUg
dCBmb3IgYSBzZXRUYXJnZXQgY3VydmUgc3RhcnRpbmcgYXQgKHQwLAorLy8gdjApIHdpdGggYSBm
aW5hbCB2YWx1ZSBvZiB2RmFpbmFsIGFuZCBhIHRpbWUgY29uc3RhbnQgb2YgdGltZUNvbnN0YW50
LiAgSXQgaXMKKy8vIGFzc3VtZWQgdGhhdCB0MCA8PSB0LiAgUmVzdWx0cyBhcmUgdW5kZWZpbmVk
IG90aGVyd2lzZS4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1TZXRUYXJnZXQodCwgdjAsIHQwLCB2Rmlu
YWwsIHRpbWVDb25zdGFudCkgeworICByZXR1cm4gdkZpbmFsICsgKHYwIC0gdkZpbmFsKSAqIE1h
dGguZXhwKC0odCAtIHQwKSAvIHRpbWVDb25zdGFudCk7Cit9CisKKy8vIEF1ZGlvUGFyYW0gc2V0
VmFsdWVDdXJ2ZSB2YWx1ZSBhdCB0aW1lIHQgZm9yIGEgc2V0VmFsdWVDdXJ2ZSBzdGFydGluZyBh
dCB0aW1lCisvLyB0MCB3aXRoIGN1cnZlLCBjdXJ2ZSwgYW5kIGR1cmF0aW9uIGR1cmF0aW9uLiAg
VGhlIHNhbXBsZSByYXRlIGlzIHNhbXBsZVJhdGUuCisvLyBJdCBpcyBhc3N1bWVkIHRoYXQgdDAg
PD0gdC4KK2Z1bmN0aW9uIGF1ZGlvUGFyYW1TZXRWYWx1ZUN1cnZlKHQsIGN1cnZlLCB0MCwgZHVy
YXRpb24pIHsKKyAgaWYgKHQgPiB0MCArIGR1cmF0aW9uKQorICAgIHJldHVybiBjdXJ2ZVtjdXJ2
ZS5sZW5ndGggLSAxXTsKKworICBsZXQgY3VydmVQb2ludHNQZXJTZWNvbmQgPSAoY3VydmUubGVu
Z3RoIC0gMSkgLyBkdXJhdGlvbjsKKworICBsZXQgdmlydHVhbEluZGV4ID0gKHQgLSB0MCkgKiBj
dXJ2ZVBvaW50c1BlclNlY29uZDsKKyAgbGV0IGluZGV4ID0gTWF0aC5mbG9vcih2aXJ0dWFsSW5k
ZXgpOworCisgIGxldCBkZWx0YSA9IHZpcnR1YWxJbmRleCAtIGluZGV4OworCisgIGxldCBjMCA9
IGN1cnZlW2luZGV4XTsKKyAgbGV0IGMxID0gY3VydmVbTWF0aC5taW4oaW5kZXggKyAxLCBjdXJ2
ZS5sZW5ndGggLSAxKV07CisgIHJldHVybiBjMCArIChjMSAtIGMwKSAqIGRlbHRhOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>