<?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>74802</bug_id>
          
          <creation_ts>2011-12-17 21:33:09 -0800</creation_ts>
          <short_desc>Add timeout support to XMLHttpRequest</short_desc>
          <delta_ts>2012-10-25 06:50:57 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72154</dependson>
    
    <dependson>94796</dependson>
    
    <dependson>95755</dependson>
    
    <dependson>98055</dependson>
    
    <dependson>98156</dependson>
    
    <dependson>98157</dependson>
    
    <dependson>98404</dependson>
    
    <dependson>99478</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jarred Nicholls">jarred</reporter>
          <assigned_to name="Dominik Röttsches (drott)">d-r</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>mike</cc>
    
    <cc>ojan</cc>
    
    <cc>peter</cc>
    
    <cc>priyajeet.hora</cc>
    
    <cc>rakuco</cc>
    
    <cc>roger_fong</cc>
    
    <cc>s.choi</cc>
    
    <cc>syoichi</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523402</commentid>
    <comment_count>0</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-17 21:33:09 -0800</bug_when>
    <thetext>As described in XHR-2 W3C working draft and editor&apos;s draft, give XHR a configurable timeout ability that will abort the request and throw the timeout event.

Latest editor&apos;s version: http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-timeout-attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524420</commentid>
    <comment_count>1</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-19 21:21:57 -0800</bug_when>
    <thetext>Bug #72154 should land before adding in the timeout functionality.  XHR.timeout is restricted to async requests in the same way that responseType and withCredentials is; once bug #72154 lands I will submit a patch for the timeout support, with the appropriate async restriction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524908</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-20 15:52:51 -0800</bug_when>
    <thetext>&gt; XHR.timeout is restricted to async requests

This is surprising. A special API for timeout is not strictly required for async requests, but it&apos;s very important for sync ones, like them or not (we all don&apos;t).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524927</commentid>
    <comment_count>3</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-20 16:10:38 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; XHR.timeout is restricted to async requests
&gt; 
&gt; This is surprising. A special API for timeout is not strictly required for async requests, but it&apos;s very important for sync ones, like them or not (we all don&apos;t).

It&apos;s restricted to async only in the window context, not in workers.  The trend happening is to discourage use of sync requests in the window context altogether.  I agree, timeouts are (the most) useful on sync requests for workers, but sync requests in window context are an abomination, period, and no one should be doing them in the first place.  Firefox and Opera agree.  If you disagree, I suggest hitting up public-webapps.

Besides, I think most of the ports&apos; network stacks timeout on the sync requests, e.g. Mac times out in 10 sec by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525034</commentid>
    <comment_count>4</comment_count>
      <attachid>120131</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-20 18:28:10 -0800</bug_when>
    <thetext>Created attachment 120131
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525053</commentid>
    <comment_count>5</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-20 19:17:14 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=120131) [details]
&gt; Work in progress

Alexey, what do you think about this approach so far for async requests?  Wondering if timeout behavior is better suited at a lower tier (e.g. ThreadableLoader).

A single shot timer on the caller thread works well for async requests.  It would seem that the easiest solution for sync requests in worker contexts would be to augment WorkerThreadableLoader with timeout capability (bearing in mind only worker contexts can use timeout with sync requests) and post a timeout task to the main thread loader.  Any thoughts on that?

Thanks for your time!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525109</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-20 22:41:47 -0800</bug_when>
    <thetext>I have a number of trivial nits and some things I&apos;ll need to carefully check. The only one that seems important at this point is that this case will be working counter-intuitively:

var r = new XMLHttpRequest;
r.timeout = 1000;
r.open(method, url, false /* sync */);

The rest of XHR API doesn&apos;t allow setting properties that won&apos;t be honored.

As you mentioned, implementing timeout at a lower level makes good sense. In particular, that would:
1. Make implementation for workers more sensible.
2. Make it possible to use support for setting timeouts in networking library.

&gt; sync requests in window context are an abomination, period, and no one should be doing them in the first place.

No disagreement here.

We need to carefully consider how much our work discourages people from using sync requests. If all it does it create more complexity for us, while a significant proportion of authors will keep using sync requests (with even poorer results for end users than would be achievable with timeout support), then maybe the current trend is not so meaningful. Ditto for features that will only make library authors write a few more lines of code, while application authors won&apos;t even notice.

Speaking of the timeout property specifically, I have three concerns.

1. It&apos;s not entirely clear what the use case is. Will be be just as good if we don&apos;t implement the timeout property? Will WebKit miss a chance to better please users in some situations?

2. Commonly in networking world, timeout occurs when no data is received for a while. This is not what this API asks for. Why don&apos;t we have a conventional API that times out when loading stalls?

3. In fact, limiting the total time makes it feel that the API is heavily skewed towards sync requests. This still doesn&apos;t make complete sense to me, even if we think that scripts in workers will be the only ones to specify timeouts. Why should the worker be given a chance to misbehave on a slow connection?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525224</commentid>
    <comment_count>7</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-21 05:16:50 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I have a number of trivial nits and some things I&apos;ll need to carefully check. The only one that seems important at this point is that this case will be working counter-intuitively:
&gt; 
&gt; var r = new XMLHttpRequest;
&gt; r.timeout = 1000;
&gt; r.open(method, url, false /* sync */);
&gt; 
&gt; The rest of XHR API doesn&apos;t allow setting properties that won&apos;t be honored.

Well that&apos;s because the sync timeout support isn&apos;t in the attached WIP patch, hence why I queried you for some advice.  The goal is to support it of course all together, or otherwise that line of code in setTimeout() will be changed to only check the m_async flag until sync support was added in later on.

&gt; 
&gt; As you mentioned, implementing timeout at a lower level makes good sense. In particular, that would:
&gt; 1. Make implementation for workers more sensible.
&gt; 2. Make it possible to use support for setting timeouts in networking library.

Agreed.  I think lower would be best too.  More coherent and robust.

&gt; 
&gt; &gt; sync requests in window context are an abomination, period, and no one should be doing them in the first place.
&gt; 
&gt; No disagreement here.
&gt; 
&gt; We need to carefully consider how much our work discourages people from using sync requests. If all it does it create more complexity for us, while a significant proportion of authors will keep using sync requests (with even poorer results for end users than would be achievable with timeout support), then maybe the current trend is not so meaningful. Ditto for features that will only make library authors write a few more lines of code, while application authors won&apos;t even notice.

See bug #72154 :)  If we implement timeout support the way it&apos;s specified and agreed upon in the community, it would only be acceptable for synchronous requests in worker contexts - sync requests in the worker context is an acceptable use case for the web platform.  Sync requests in the window context  is completely discouraged, and has been by library vendors *long before* we, Mozilla, or Opera decided to take initiative in turning off its bells and whistles.

&gt; 
&gt; Speaking of the timeout property specifically, I have three concerns.
&gt; 
&gt; 1. It&apos;s not entirely clear what the use case is. Will be be just as good if we don&apos;t implement the timeout property? Will WebKit miss a chance to better please users in some situations?

User specified/determined timeouts for sync requests in worker contexts is a very good use case worth supporting.  However, the API would be completely unintuitive if timeouts didn&apos;t also work for async requests, though not as important.

&gt; 
&gt; 2. Commonly in networking world, timeout occurs when no data is received for a while. This is not what this API asks for. Why don&apos;t we have a conventional API that times out when loading stalls?

That&apos;s right.  There are good use cases for making sync requests in worker contexts that deterministically fail after a set amount of time.  If the timeout is a sliding window based on data coming over the wire, then the timeout has now become indeterministic.  But with that said, I also think the user should have the ability to specify a timeout value for data stalls, e.g., dataTimeout.  That&apos;s another discussion I suppose, but one that is also useful for async requests that cannot easily be replicated with timers + calls to abort().

&gt; 
&gt; 3. In fact, limiting the total time makes it feel that the API is heavily skewed towards sync requests. This still doesn&apos;t make complete sense to me, even if we think that scripts in workers will be the only ones to specify timeouts. Why should the worker be given a chance to misbehave on a slow connection?

I&apos;ll let the authors figure out how or why they&apos;d use this to satisfy their use case, but I can see it as being useful.  I personally wouldn&apos;t use it ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525243</commentid>
    <comment_count>8</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-21 06:38:26 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I have a number of trivial nits and some things I&apos;ll need to carefully check. The only one that seems important at this point is that this case will be working counter-intuitively:
&gt; &gt; 
&gt; &gt; var r = new XMLHttpRequest;
&gt; &gt; r.timeout = 1000;
&gt; &gt; r.open(method, url, false /* sync */);
&gt; &gt; 
&gt; &gt; The rest of XHR API doesn&apos;t allow setting properties that won&apos;t be honored.
&gt; 
&gt; Well that&apos;s because the sync timeout support isn&apos;t in the attached WIP patch, hence why I queried you for some advice.  The goal is to support it of course all together, or otherwise that line of code in setTimeout() will be changed to only check the m_async flag until sync support was added in later on.

P.S. Also the check in open() from bug #72154 would be amended to also include a check for m_timeout &gt; 0, which is why I have this bug being dependent upon bug #72154.  So, the above code snippet you showed would in fact throw an exception and would not be permissible in the window context, only in worker contexts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525537</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-21 13:44:16 -0800</bug_when>
    <thetext>&gt; User specified/determined timeouts for sync requests in worker contexts is a very good use case worth supporting.

What specific use cases re there? I agree that it sounds like a reasonable feature to have, but I&apos;m interested in more concrete examples, which you probably have in mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525551</commentid>
    <comment_count>10</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-21 13:57:56 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; User specified/determined timeouts for sync requests in worker contexts is a very good use case worth supporting.
&gt; 
&gt; What specific use cases re there? I agree that it sounds like a reasonable feature to have, but I&apos;m interested in more concrete examples, which you probably have in mind.

Great question.  I also posed the question publicly: http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/1667.html in the context of a possible new attribute, &quot;dataTimeout&quot;.  Because I have to assume if &quot;timeout&quot; made it into the spec that there are already documented use cases which would similarly apply to a data-based timeout.  Most of my thoughts stem from technical scenarios, e.g. background tabs/pages, rather than &quot;application&quot; use cases.

I&apos;d encourage you to hop into the conversation if you think of any good points or use cases!  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700834</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-21 09:29:41 -0700</bug_when>
    <thetext>*** Bug 94461 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701772</commentid>
    <comment_count>12</comment_count>
      <attachid>159904</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-08-22 04:45:41 -0700</bug_when>
    <thetext>Created attachment 159904
LayoutTest suggestion.

I wrote this one (http/tests/xmlhttprequest/ontimeout-event-async.html) when I started looking into the bug 94461 that had now been marked as duplicate. Feel free to use it if it&apos;s useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701803</commentid>
    <comment_count>13</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-08-22 05:39:27 -0700</bug_when>
    <thetext>Alexey, Jarred - what&apos;s your opinion now that the spec forbids sync, has-Document case. 

Do you think we could implement and land this in two steps, first for the has-Document, async case, then for sync+async worker case (as a separate bug)?

The sync case is difficult at least for the soup backend since it preempts timers , so that&apos;s why I am suggesting to solve that separately.

That&apos;s also how Mozilla did it:
https://bugzilla.mozilla.org/show_bug.cgi?id=525816
https://bugzilla.mozilla.org/show_bug.cgi?id=498998</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701939</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-22 08:25:54 -0700</bug_when>
    <thetext>There is a setTimeoutInterval method in cross-platform ResourceRequestBase.h, which should be just used by XMLHttpRequest. It might need to be implemented for more ports if it&apos;s not there yet.

So, I don&apos;t think that there is much difference between sync and async cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711176</commentid>
    <comment_count>15</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-09-04 09:33:58 -0700</bug_when>
    <thetext>Jarred, if you don&apos;t mind, I&apos;ll take this one since you didn&apos;t comment in almost a year. I have a work in progress here where I am implementing this based on setTimeoutInterval on ResourceHandle. Please let me know if you have any objections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711188</commentid>
    <comment_count>16</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2012-09-04 09:47:04 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Jarred, if you don&apos;t mind, I&apos;ll take this one since you didn&apos;t comment in almost a year. I have a work in progress here where I am implementing this based on setTimeoutInterval on ResourceHandle. Please let me know if you have any objections.

No problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742058</commentid>
    <comment_count>17</comment_count>
      <attachid>168716</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-15 08:31:43 -0700</bug_when>
    <thetext>Created attachment 168716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742068</commentid>
    <comment_count>18</comment_count>
      <attachid>168717</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-15 08:37:26 -0700</bug_when>
    <thetext>Created attachment 168717
Patch v2, stray test expectation removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742076</commentid>
    <comment_count>19</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-15 08:40:20 -0700</bug_when>
    <thetext>Alexey, fyi, I adapted the *-aborted test cases in a way that they tolerate a secondary abort event after a timeout event.

I&apos;d appreciate if you&apos;d have time to take a look. Thanks very much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742111</commentid>
    <comment_count>20</comment_count>
      <attachid>168717</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-15 09:35:35 -0700</bug_when>
    <thetext>Comment on attachment 168717
Patch v2, stray test expectation removed.

Attachment 168717 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14291699

New failing tests:
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742155</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 10:29:43 -0700</bug_when>
    <thetext>Dominik, I presume that you would like to address the test failures first, is that correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742239</commentid>
    <comment_count>22</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-15 11:49:56 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Dominik, I presume that you would like to address the test failures first, is that correct?

Yes, I&apos;ll take a look at the mac test failures tomorrow morning - however, if you&apos;d have any objections or concerns about the general approach for implementation and testing - it&apos;d be good to hear those early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742427</commentid>
    <comment_count>23</comment_count>
      <attachid>168717</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 14:17:33 -0700</bug_when>
    <thetext>Comment on attachment 168717
Patch v2, stray test expectation removed.

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

&gt; Source/WebCore/loader/cache/CachedResource.h:93
&gt;          LoadError,
&gt; +        TimeoutError,

What is the reason why cached resources need to distinguish the two?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:336
&gt; +    if (scriptExecutionContext()-&gt;isDocument() &amp;&amp; !m_async) {
&gt; +        ec = INVALID_ACCESS_ERR;

Shouldn&apos;t we be logging an explanation to console here, too? We&apos;re raising an exception that could break the whole control flow, and likely wouldn&apos;t ever get to open() that has logging now.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:767
&gt; +    if (m_timeout)
&gt; +        request.setTimeoutInterval(m_timeout / 1000.0);

FWIW, I like to name these variables with measurement unit to avoid confusion (e.g. m_timeoutMilliseconds).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743464</commentid>
    <comment_count>24</comment_count>
      <attachid>169009</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-16 13:13:29 -0700</bug_when>
    <thetext>Created attachment 169009
Patch v3, review comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743469</commentid>
    <comment_count>25</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-16 13:20:13 -0700</bug_when>
    <thetext>(In reply to comment #23)

Thanks for your review, Alexey. Here&apos;s an updated patch, the tests are passing now on mac for me, when I have the patch from bug 99478 applied.

&gt; (From update of attachment 168717 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168717&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.h:93
&gt; &gt;          LoadError,
&gt; &gt; +        TimeoutError,
&gt; 
&gt; What is the reason why cached resources need to distinguish the two?

XHR uses a ThreadableLoader and still expects ResourceHandleClient style callbacks, but the ThreadableLoader only deals with CachedResources and gets informed about them using CachedResourceClient style callbacks. So the ThreadableLoader has to synthesize the didFail callback when it gets informed about the CachedResource progress in notifyFinished() - here it needs to query the failure type from CachedResource - cancellation or timeout - in order to set the correct flag on the synthesized ResourceError.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:336
&gt; &gt; +    if (scriptExecutionContext()-&gt;isDocument() &amp;&amp; !m_async) {
&gt; &gt; +        ec = INVALID_ACCESS_ERR;
&gt; 
&gt; Shouldn&apos;t we be logging an explanation to console here, too? We&apos;re raising an exception that could break the whole control flow, and likely wouldn&apos;t ever get to open() that has logging now.

Added.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:767
&gt; &gt; +    if (m_timeout)
&gt; &gt; +        request.setTimeoutInterval(m_timeout / 1000.0);
&gt; 
&gt; FWIW, I like to name these variables with measurement unit to avoid confusion (e.g. m_timeoutMilliseconds).

Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743484</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-16 13:34:22 -0700</bug_when>
    <thetext>&gt; XHR uses a ThreadableLoader and still expects ResourceHandleClient style callbacks, but the ThreadableLoader only deals with CachedResources and gets informed about them using CachedResourceClient style callbacks.

It makes sense that a XHR works with CachedResource, now that it is actually cached. But synthesizing a ResourceError from a few bits of information is unfortunate.

Perhaps we should get rid of XHR::m_error, because it&apos;s not really used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743513</commentid>
    <comment_count>27</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2012-10-16 13:49:41 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Perhaps we should get rid of XHR::m_error, because it&apos;s not really used.

That&apos;s true, it is a redundant check in several areas that is not necessary, and would still be spec compliant on the surface.  A thorough check to make sure that is the case would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743563</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-16 14:31:26 -0700</bug_when>
    <thetext>I didn&apos;t realize at first that m_error was already a boolean, not a ResourceError. This makes passing a ResourceError to didFail even less meaningful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744017</commentid>
    <comment_count>29</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-17 01:43:29 -0700</bug_when>
    <thetext>(In reply to comment #26)
(In reply to comment #27)

&gt; It makes sense that a XHR works with CachedResource, now that it is actually cached. But synthesizing a ResourceError from a few bits of information is unfortunate.

&gt; Perhaps we should get rid of XHR::m_error, because it&apos;s not really used.

Jarred, Alexey - I understand you have two proposals for refactoring:

1) &quot;Removing m_error&quot;
   My 2 cents: I actually think it makes the XHR code nicely hackable if we have an equivalent of &quot;the error flag&quot; that&apos;s used in the specification.

2) Refactoring ThreadableLoaderClient&apos;s didFail(const ResourceError&amp;)
   By for example creating different callback functions for the different cases like didFail, didCancel, didTimeout or replacing the argument by a failure type enumeration or similar. DocumentThreadable loader synthesizes ResourceErrors all over the place, this is not a new thing with my patch. So that would be a bigger change if done comprehensively.

Hence my question - should any of these two refactorings really be part of this patch or would this part of my implementation be acceptable for now and we&apos;d handle the refactoring separately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746347</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-19 08:58:11 -0700</bug_when>
    <thetext>&gt;    My 2 cents: I actually think it makes the XHR code nicely hackable if we have an equivalent of &quot;the error flag&quot; that&apos;s used in the specification.

I agree. My initial reaction was due to thinking that we kept a ResourceError there.

Nate, you are the most active contributor in this area recently. Would you like to review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746660</commentid>
    <comment_count>31</comment_count>
      <attachid>169009</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-19 14:44:37 -0700</bug_when>
    <thetext>Comment on attachment 169009
Patch v3, review comments addressed.

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

&gt; Source/WebCore/loader/SubresourceLoader.cpp:318
&gt; -    m_resource-&gt;error(CachedResource::LoadError);
&gt; +    if (error.isTimeout())
&gt; +        m_resource-&gt;error(CachedResource::TimeoutError);
&gt; +    else
&gt; +        m_resource-&gt;error(CachedResource::LoadError);

This is ok in the short term, but hopefully we can clean this up soon. I&apos;m planning on adding a m_resource-&gt;setResourceError() call here that will hopefully allow us to simplify the code here (see https://bugs.webkit.org/show_bug.cgi?id=99864).

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1221
&gt; +    clearResponse(); // FIXME: clearResponseBuffers()?

Why the FIXME?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1231
&gt; +    if (!m_async) {
&gt; +        m_state = DONE;
&gt; +        m_exceptionCode = TIMEOUT_ERR;
&gt; +        return;
&gt; +    }

Just to make sure I follow, this is because XHRs in workers can use timeouts in sync requests, right?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1240
&gt; +    if (!m_uploadComplete) {
&gt; +        m_uploadComplete = true;
&gt; +        if (m_upload &amp;&amp; m_uploadEventsAllowed)
&gt; +            m_upload-&gt;dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(eventNames().timeoutEvent));
&gt; +    }
&gt; +    m_progressEventThrottle.dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(eventNames().timeoutEvent));

Pedantic nit: Any reason we do these dispatches in the opposite order as everywhere else in the file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747337</commentid>
    <comment_count>32</comment_count>
      <attachid>169858</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-22 02:24:40 -0700</bug_when>
    <thetext>Created attachment 169858
Patch v4, FIXME removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747339</commentid>
    <comment_count>33</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-22 02:29:20 -0700</bug_when>
    <thetext>(In reply to comment #31)

Thanks for the review, Nate. I removed the FIXME in an updated patch.

&gt; (From update of attachment 169009 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169009&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/SubresourceLoader.cpp:318
&gt; &gt; -    m_resource-&gt;error(CachedResource::LoadError);
&gt; &gt; +    if (error.isTimeout())
&gt; &gt; +        m_resource-&gt;error(CachedResource::TimeoutError);
&gt; &gt; +    else
&gt; &gt; +        m_resource-&gt;error(CachedResource::LoadError);
&gt; 
&gt; This is ok in the short term, but hopefully we can clean this up soon. I&apos;m planning on adding a m_resource-&gt;setResourceError() call here that will hopefully allow us to simplify the code here (see https://bugs.webkit.org/show_bug.cgi?id=99864).

Thanks, CC&apos;ed myself there.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:1221
&gt; &gt; +    clearResponse(); // FIXME: clearResponseBuffers()?
&gt; 
&gt; Why the FIXME?

That was a leftover before uploading. clearResponse() calls clearResponseBuffers(), so we&apos;re resetting to a sane state here.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:1231
&gt; &gt; +    if (!m_async) {
&gt; &gt; +        m_state = DONE;
&gt; &gt; +        m_exceptionCode = TIMEOUT_ERR;
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; Just to make sure I follow, this is because XHRs in workers can use timeouts in sync requests, right?

Yes, in the synchronous worker case, the send() call needs to return with the right exception. This corresponds to line 794 in XMLHttpRequest.cpp:
    if (!m_exceptionCode &amp;&amp; m_error)
        m_exceptionCode = XMLHttpRequestException::NETWORK_ERR;


&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:1240
&gt; &gt; +    if (!m_uploadComplete) {
&gt; &gt; +        m_uploadComplete = true;
&gt; &gt; +        if (m_upload &amp;&amp; m_uploadEventsAllowed)
&gt; &gt; +            m_upload-&gt;dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(eventNames().timeoutEvent));
&gt; &gt; +    }
&gt; &gt; +    m_progressEventThrottle.dispatchEventAndLoadEnd(XMLHttpRequestProgressEvent::create(eventNames().timeoutEvent));
&gt; 
&gt; Pedantic nit: Any reason we do these dispatches in the opposite order as everywhere else in the file?

I think it&apos;s not pedantic but a valid question. I implemented the order here according to steps 7, 8, and 9 of
http://www.w3.org/TR/XMLHttpRequest/#timeout-error
In the spec the upload events are dispatched first, the progress events follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747663</commentid>
    <comment_count>34</comment_count>
      <attachid>169858</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-22 10:26:16 -0700</bug_when>
    <thetext>Comment on attachment 169858
Patch v4, FIXME removed.

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

&gt; LayoutTests/http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html:17
&gt; +    &lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;xmlhttprequest-timeout.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script src=&quot;xmlhttprequest-timeout-runner.js&quot;&gt;&lt;/script&gt;
&gt; +    &lt;script&gt;
&gt; +        function testXhr() {
&gt; +            window.addEventListener(&quot;message&quot;, testResultCallbackHandler);
&gt; +            var runTests = { &quot;type&quot;: &quot;start&quot;, &quot;group&quot;: groupFromLocation() };
&gt; +            window.postMessage(runTests, &quot;*&quot;);
&gt; +        };

FWIW, I can&apos;t figure out what a test like this does without excessive amount of effort. I just wanted to make sure if the code about which Nate earlier commented &quot;Just to make sure I follow&quot; was actually covered by regression tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747774</commentid>
    <comment_count>35</comment_count>
      <attachid>169957</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-22 12:22:16 -0700</bug_when>
    <thetext>Created attachment 169957
Patch v5, synconworker case enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747775</commentid>
    <comment_count>36</comment_count>
      <attachid>169958</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-22 12:23:51 -0700</bug_when>
    <thetext>Created attachment 169958
Difference between v4 and v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747778</commentid>
    <comment_count>37</comment_count>
      <attachid>169858</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-22 12:27:38 -0700</bug_when>
    <thetext>Comment on attachment 169858
Patch v4, FIXME removed.

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

&gt;&gt; LayoutTests/http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html:17
&gt;&gt; +        };
&gt; 
&gt; FWIW, I can&apos;t figure out what a test like this does without excessive amount of effort. I just wanted to make sure if the code about which Nate earlier commented &quot;Just to make sure I follow&quot; was actually covered by regression tests.

Thanks for emphasizing that. I actually commented one test out with the wrong observation. I thought it was a late update case as well but it wasn&apos;t. I modified the patch so that this test is run, which ensures that the synchronous timeout codepath that Nate talked about is covered in the tests. &quot;Difference between v4 and v5&quot; shows what I did to enable that test.

&gt; LayoutTests/http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout.js:330
&gt; +    // new RequestTracker(false, &quot;timeout hit before load&quot;, 2000),

This case is now enabled and passes, which exercises the synchronous timeout exception code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747991</commentid>
    <comment_count>38</comment_count>
      <attachid>169957</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-22 15:44:21 -0700</bug_when>
    <thetext>Comment on attachment 169957
Patch v5, synconworker case enabled.

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

&gt; LayoutTests/http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout.js:308
&gt; +  // FIXME: http://webkit.org/b/98156 - Late updates are not supported yet, these tests are not run.
&gt; +  &quot;overrides&quot; : [
&gt; +    new RequestTracker(true, &quot;timeout disabled after initially set&quot;, 5000, 2000, 0),
&gt; +    new RequestTracker(true, &quot;timeout overrides load after a delay&quot;, 5000, 1000, 2000),
&gt; +    new RequestTracker(true, &quot;timeout enabled after initially disabled&quot;, 0, 2000, 5000)
&gt; +  ],

Should these be commented out if they&apos;re not being run?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748000</commentid>
    <comment_count>39</comment_count>
      <attachid>169957</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-22 15:49:38 -0700</bug_when>
    <thetext>Comment on attachment 169957
Patch v5, synconworker case enabled.

Also, we may want to consider putting these tests in a directory that indicates that they are imported.

I&apos;m not clear from the ChangeLog, are these tests from the W3C, or just adapted to their test harness?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748346</commentid>
    <comment_count>40</comment_count>
      <attachid>170075</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-23 01:01:00 -0700</bug_when>
    <thetext>Created attachment 170075
Patch v6, ChangeLog clarification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748350</commentid>
    <comment_count>41</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-23 01:05:54 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 169957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169957&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout.js:308
&gt; &gt; +  // FIXME: http://webkit.org/b/98156 - Late updates are not supported yet, these tests are not run.
&gt; &gt; +  &quot;overrides&quot; : [
&gt; &gt; +    new RequestTracker(true, &quot;timeout disabled after initially set&quot;, 5000, 2000, 0),
&gt; &gt; +    new RequestTracker(true, &quot;timeout overrides load after a delay&quot;, 5000, 1000, 2000),
&gt; &gt; +    new RequestTracker(true, &quot;timeout enabled after initially disabled&quot;, 0, 2000, 5000)
&gt; &gt; +  ],
&gt; 
&gt; Should these be commented out if they&apos;re not being run?

The entries in this array, like &quot;twice&quot; or &quot;synconmain&quot; are executed if there is a corresponding .html file like, xmlhttprequest-timeout-twice.html or xmlhttprequest-timeout-synconmain.html. The &quot;overrides&quot; group is currently not being run because there is no such corresponding file. I clarified that in the LayoutTests/ChangeLog now. So because the whole group is not run, they don&apos;t need to be commented.

(In reply to comment #39)
&gt; (From update of attachment 169957 [details])
&gt; Also, we may want to consider putting these tests in a directory that indicates that they are imported.
&gt; 
&gt; I&apos;m not clear from the ChangeLog, are these tests from the W3C, or just adapted to their test harness?

They were adapted from a set of tests from Mozilla. They are not from W3C, just adapted to their testharness.js so that I can work on contributing them to W3C later. So, in that sense, it&apos;s not an import and I&apos;d say we do not need a folder that marks them as imported. I tried to clarify this in the ChangeLogs now as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748771</commentid>
    <comment_count>42</comment_count>
      <attachid>170075</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-23 10:26:08 -0700</bug_when>
    <thetext>Comment on attachment 170075
Patch v6, ChangeLog clarification.

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

&gt; LayoutTests/ChangeLog:13
&gt; +        I adapted them for W3C testharness.js and split them into groups with shorter test running time
&gt; +        so that they can be used as WebKit layout tests. Each individual test should
&gt; +        complete in less than 20 seconds.

I assume the timeout durations are the same as the mozilla version of these tests?

It&apos;s still unfortunate that the tests run quite so long, but I suppose it is necessary to given what&apos;s being tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748815</commentid>
    <comment_count>43</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-23 11:21:27 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 170075 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170075&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:13
&gt; &gt; +        I adapted them for W3C testharness.js and split them into groups with shorter test running time
&gt; &gt; +        so that they can be used as WebKit layout tests. Each individual test should
&gt; &gt; +        complete in less than 20 seconds.
&gt; 
&gt; I assume the timeout durations are the same as the mozilla version of these tests?

Yes, they are identical.

&gt; It&apos;s still unfortunate that the tests run quite so long, but I suppose it is necessary to given what&apos;s being tested.

Yes, we don&apos;t want these intervals too narrow in order to avoid fluctuations on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748839</commentid>
    <comment_count>44</comment_count>
      <attachid>170075</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 11:49:32 -0700</bug_when>
    <thetext>Comment on attachment 170075
Patch v6, ChangeLog clarification.

Clearing flags on attachment: 170075

Committed r132252: &lt;http://trac.webkit.org/changeset/132252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748840</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 11:49:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748910</commentid>
    <comment_count>46</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-23 13:31:57 -0700</bug_when>
    <thetext>These tests all appear to time out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749419</commentid>
    <comment_count>47</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-24 00:16:37 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; These tests all appear to time out.

Levi has skipped them in r132263, support for setTimeoutInterval in Chromium&apos;s http backend is tracked in bug 98397.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749714</commentid>
    <comment_count>48</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 08:50:45 -0700</bug_when>
    <thetext>&gt; Levi has skipped them in r132263, support for setTimeoutInterval in Chromium&apos;s http backend is tracked in bug 98397.

Should we disable this feature on ports that don&apos;t support it in their network backend?  If we don&apos;t, web sites will have busted feature detection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749755</commentid>
    <comment_count>49</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-24 09:52:47 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; &gt; Levi has skipped them in r132263, support for setTimeoutInterval in Chromium&apos;s http backend is tracked in bug 98397.
&gt; 
&gt; Should we disable this feature on ports that don&apos;t support it in their network backend?  If we don&apos;t, web sites will have busted feature detection.

It&apos;s only Chromium &amp; Qt left. This is working on Mac, Gtk, EFL. 
It didn&apos;t take me very long to support setTimeoutInterval in the libsoup backend. (cmp. bug 94796) I suppose it&apos;s not gonna take very long to do that in the Chromium http backend.  Can&apos;t we look into just fixing the two remaining network backends? What do you think?

If you still think it should be disabled for other ports, how would you wanna do it, just #ifdef&apos;ing the timeout property and ontimeout event handler in the XHR idl to hide it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750018</commentid>
    <comment_count>50</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-24 14:02:38 -0700</bug_when>
    <thetext>(In reply to comment #49)

&gt; It&apos;s only Chromium &amp; Qt left. This is working on Mac, Gtk, EFL. 
And Apple Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750076</commentid>
    <comment_count>51</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-24 14:55:58 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; (In reply to comment #49)
&gt; 
&gt; &gt; It&apos;s only Chromium &amp; Qt left. This is working on Mac, Gtk, EFL. 
&gt; And Apple Windows

If CF networking on Windows supports setTimeoutInterval, I can look into getting this to work (tomorrow EEST).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750175</commentid>
    <comment_count>52</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 16:19:15 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; (In reply to comment #48)
&gt; &gt; &gt; Levi has skipped them in r132263, support for setTimeoutInterval in Chromium&apos;s http backend is tracked in bug 98397.
&gt; &gt; 
&gt; &gt; Should we disable this feature on ports that don&apos;t support it in their network backend?  If we don&apos;t, web sites will have busted feature detection.
&gt; 
&gt; It&apos;s only Chromium &amp; Qt left. This is working on Mac, Gtk, EFL. 
&gt; It didn&apos;t take me very long to support setTimeoutInterval in the libsoup backend. (cmp. bug 94796) I suppose it&apos;s not gonna take very long to do that in the Chromium http backend.  Can&apos;t we look into just fixing the two remaining network backends? What do you think?

I think you should disable the feature on ports where it doesn&apos;t work until the feature works on those ports.

&gt; If you still think it should be disabled for other ports, how would you wanna do it, just #ifdef&apos;ing the timeout property and ontimeout event handler in the XHR idl to hide it?

Please use an ENABLE macro an features.gypi, like we use for many other features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750548</commentid>
    <comment_count>53</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-25 01:37:34 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; (In reply to comment #49)
&gt; 
&gt; &gt; It&apos;s only Chromium &amp; Qt left. This is working on Mac, Gtk, EFL. 
&gt; And Apple Windows

Fix attempt for this in bug 100349.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750758</commentid>
    <comment_count>54</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-10-25 06:50:57 -0700</bug_when>
    <thetext>(In reply to comment #52)

&gt; Please use an ENABLE macro an features.gypi, like we use for many other features.

Patch in bug 100356. Posted on webkit-dev as well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120131</attachid>
            <date>2011-12-20 18:28:10 -0800</date>
            <delta_ts>2012-10-15 08:31:34 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-74802-20111220212808.patch</filename>
            <type>text/plain</type>
            <size>6898</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAppbmRleCA0OGM3MTNjZDE5Y2ZlYTg1MTYzYjk3NDRlN2E3Mjc5NjY0MjQ4MDY2Li5jNGYz
Njk2ZWMwZDM0NWNmNGRiOTBmZGY1ZGVlNjQwNzM3OGE4YjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE1Miw2ICsxNTIsNyBAQCBYTUxIdHRwUmVxdWVzdDo6WE1M
SHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxT
ZWN1cgogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX2FzeW5j
KHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxzZSkKKyAgICAsIG1fdGltZW91
dCgwKQogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAgLCBtX2NyZWF0ZWREb2N1bWVudChmYWxz
ZSkKICAgICAsIG1fZXJyb3IoZmFsc2UpCkBAIC0zNTUsNiArMzU2LDQzIEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6OmNhbGxSZWFkeVN0YXRlQ2hhbmdlTGlzdGVuZXIoKQogICAgIH0KIH0KIAordm9p
ZCBYTUxIdHRwUmVxdWVzdDo6c2V0VGltZW91dCh1bnNpZ25lZCB0aW1lb3V0LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoIW1fYXN5bmMgJiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3RpbWVvdXQgPSB0aW1lb3V0OworfQorCit2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpkaWRUaW1lb3V0KFRpbWVyPFhNTEh0dHBSZXF1ZXN0PiopCit7Cisg
ICAgY2xlYXJUaW1lcigpOworCisgICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIGRyb3BQcm90
ZWN0aW9uKCksIHdoaWNoIG1heSByZWxlYXNlIHRoZSBsYXN0IHJlZmVyZW5jZS4KKyAgICBSZWZQ
dHI8WE1MSHR0cFJlcXVlc3Q+IHByb3RlY3QodGhpcyk7CisKKyAgICBpbnRlcm5hbEFib3J0KCk7
CisgICAgQVNTRVJUKCFtX2xvYWRlcik7CisgICAgY2xlYXJSZXNwb25zZUJ1ZmZlcnMoKTsKKwor
ICAgIGlmICghbV9hc3luYykgeworICAgICAgICBtX3N0YXRlID0gRE9ORTsKKyAgICAgICAgbV9l
eGNlcHRpb25Db2RlID0gVElNRU9VVF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBjaGFuZ2VTdGF0ZShET05FKTsKKworICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3Bh
dGNoRXZlbnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnRpbWVvdXRFdmVudCkpOworICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSkgeworICAgICAgICBt
X3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKKyAgICAgICAgaWYgKG1fdXBsb2FkICYmIG1fdXBsb2Fk
RXZlbnRzQWxsb3dlZCkKKyAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaEV2ZW50KFhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS50aW1lb3V0RXZlbnQp
KTsKKyAgICB9Cit9CisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFdpdGhDcmVkZW50aWFscyhi
b29sIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9zdGF0ZSAhPSBPUEVO
RUQgfHwgbV9sb2FkZXIpIHsKQEAgLTY2Myw2ICs3MDEsMTMgQEAgdm9pZCBYTUxIdHRwUmVxdWVz
dDo6Y3JlYXRlUmVxdWVzdChFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX2Vycm9yID0gZmFsc2U7
CiAKICAgICBpZiAobV9hc3luYykgeworICAgICAgICAvLyBGSVhNRTogTGF0ZXIgd2Ugc2hvdWxk
IGFsbG93IGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiBhIHdvcmtlciBjb250ZXh0IHRvIHRp
bWVvdXQuCisgICAgICAgIC8vICAgICAgICBUaGlzIHdvdWxkIHJlcXVpcmUgc29tZSBwbHVtYmlu
ZyBkb3duIGluIFJlc291cmNlSGFuZGxlcywgVGhyZWFkYWJsZUxvYWRlcnMsIGV0Yy4KKyAgICAg
ICAgaWYgKG1fdGltZW91dCkgeworICAgICAgICAgICAgbV90aW1lciA9IGFkb3B0UHRyKG5ldyBU
aW1lcjxYTUxIdHRwUmVxdWVzdD4odGhpcywgJlhNTEh0dHBSZXF1ZXN0OjpkaWRUaW1lb3V0KSk7
CisgICAgICAgICAgICBtX3RpbWVyLT5zdGFydE9uZVNob3QobV90aW1lb3V0IC8gMTAwMC4wKTsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChtX3VwbG9hZCkKICAgICAgICAgICAgIHJlcXVlc3Qu
c2V0UmVwb3J0VXBsb2FkUHJvZ3Jlc3ModHJ1ZSk7CiAKQEAgLTcyMCw2ICs3NjUsNyBAQCB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjphYm9ydCgpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFs
QWJvcnQoKQogeworICAgIGNsZWFyVGltZXIoKTsKICAgICBib29sIGhhZExvYWRlciA9IG1fbG9h
ZGVyOwogCiAgICAgbV9lcnJvciA9IHRydWU7CkBAIC03NjIsOCArODA4LDE3IEBAIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmNsZWFyUmVxdWVzdCgpCiAgICAgbV9yZXF1ZXN0RW50aXR5Qm9keSA9IDA7
CiB9CiAKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyVGltZXIoKQoreworICAgIGlmIChtX3Rp
bWVyKSB7CisgICAgICAgIG1fdGltZXItPnN0b3AoKTsKKyAgICAgICAgbV90aW1lci5jbGVhcigp
OworICAgIH0KK30KKwogdm9pZCBYTUxIdHRwUmVxdWVzdDo6Z2VuZXJpY0Vycm9yKCkKIHsKKyAg
ICBjbGVhclRpbWVyKCk7CiAgICAgY2xlYXJSZXNwb25zZSgpOwogICAgIGNsZWFyUmVxdWVzdCgp
OwogICAgIG1fZXJyb3IgPSB0cnVlOwpAQCAtOTk1LDYgKzEwNTAsOCBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91Ymxl
KQogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47CiAKKyAgICBjbGVhclRpbWVyKCk7
CisKICAgICBpZiAobV9zdGF0ZSA8IEhFQURFUlNfUkVDRUlWRUQpCiAgICAgICAgIGNoYW5nZVN0
YXRlKEhFQURFUlNfUkVDRUlWRUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmlu
ZGV4IGJjYmEwOTg0MzYxYTk1NGFiNDU0M2RhNmJiOGY3MDNiODU0MDEzZjIuLjQ3ZjI4YTFmZDFh
M2IxMzhjNWU0YTYyMzYzMTNmMzZkN2YzYTI0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNs
aWVudC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtODEsNiArODIsOSBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIHN0YXR1c1RleHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIGludCBzdGF0
dXMoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsK
KyAgICB1bnNpZ25lZCB0aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1lb3V0OyB9CisgICAg
dm9pZCBzZXRUaW1lb3V0KHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBkaWRU
aW1lb3V0KFRpbWVyPFhNTEh0dHBSZXF1ZXN0PiopOwogICAgIGJvb2wgd2l0aENyZWRlbnRpYWxz
KCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdWRlQ3JlZGVudGlhbHM7IH0KICAgICB2b2lkIHNldFdp
dGhDcmVkZW50aWFscyhib29sLCBFeGNlcHRpb25Db2RlJik7CiAjaWYgRU5BQkxFKFhIUl9SRVNQ
T05TRV9CTE9CKQpAQCAtMTM1LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGxvYWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIobG9hZHN0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHBy
b2dyZXNzKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHRpbWVvdXQpOwog
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxYTUxIdHRwUmVxdWVzdD46OnJlZjsKICAgICB1c2luZyBS
ZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0Pjo6ZGVyZWY7CkBAIC0xNzYsNiArMTgxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNsZWFyUmVzcG9uc2UoKTsKICAgICB2b2lkIGNsZWFyUmVzcG9uc2VC
dWZmZXJzKCk7CiAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKyAgICB2b2lkIGNsZWFyVGltZXIo
KTsKIAogICAgIHZvaWQgY3JlYXRlUmVxdWVzdChFeGNlcHRpb25Db2RlJik7CiAKQEAgLTE5Miw2
ICsxOTgsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJpZGU7CiAgICAg
Ym9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7CisgICAgdW5zaWdu
ZWQgbV90aW1lb3V0OworICAgIE93blB0cjxUaW1lcjxYTUxIdHRwUmVxdWVzdD4gPiBtX3RpbWVy
OwogI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBSZWZQdHI8QmxvYj4gbV9yZXNw
b25zZUJsb2I7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCmluZGV4
IDgyNmQxMDEyNjdiZDBkZDljNTIzZDJjOTVlMjc4MjM3Y2Q3ZGFmZDUuLmJkNjliYzE4MDJmN2I5
NWYwMTE3Y2NhNmJhNzdkODNkNDRlODg3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbApAQCAtNDQsNiArNDQsNyBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25sb2FkOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmxvYWRzdGFydDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wcm9ncmVzczsK
KyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1lb3V0CiAKICAgICAgICAgLy8g
ZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ucmVhZHlzdGF0ZWNoYW5nZTsKQEAgLTYxLDYgKzYyLDggQEAgbW9kdWxlIHhtbCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9WEhSX1JFU1BPTlNFX0JMT0IsIEVuYWJsZWRBdFJ1
bnRpbWVdIGJvb2xlYW4gYXNCbG9iCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiB3aXRoQ3JlZGVudGlhbHMKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBs
b2FkLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaAppbmRleCA3
ZjQ1ODYxNzEwZGIxY2QzZGRhNmMzNDE1YjViODUzZWRmZDMzZjRkLi5hMjE5ZmI2MDUwMGQwZjg3
ZDMxMWFmZTQ3ODIwYjlhNzU3Zjk3NjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RVcGxvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3RVcGxvYWQuaApAQCAtNjIsNiArNjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZCk7CiAgICAgICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZHN0YXJ0KTsKICAgICAgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihwcm9ncmVzcyk7CisgICAgICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIodGltZW91dCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBYTUxI
dHRwUmVxdWVzdFVwbG9hZChYTUxIdHRwUmVxdWVzdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdFVwbG9hZC5pZGwKaW5kZXggNzM0OTM5ZDg5ZDZhM2FjZGYwNTlkOTMxZWQ2
MjdhNmJlYTQ5OThkYS4uNGRkZThjMzczZTdiOWY2YjE5OGRmOTgxYjAzYmM3YWMzZmQ2YzcyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaWRsCkBAIC00MCw2
ICs0MCw3IEBAIG1vZHVsZSB4bWwgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmxvYWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OwogICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAgICAgICBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbnRpbWVvdXQ7CiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50
ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwg
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>159904</attachid>
            <date>2012-08-22 04:45:41 -0700</date>
            <delta_ts>2012-08-22 04:45:41 -0700</delta_ts>
            <desc>LayoutTest suggestion.</desc>
            <filename>ontimeout-event-async.html</filename>
            <type>text/html</type>
            <size>1099</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICBk
ZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmaWVzIHdoZXRoZXIgdGhlIG9udGltZW91dCBldmVu
dCBoYW5kbGVyIGlzIGZpcmVkIGZvciBzdGFsbGVkIFhIUnMuJyk7CiAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwoKICAgICAgICB2YXIgdGltZWRPdXRXYXNDYWxsZWQgPSBmYWxz
ZTsKICAgICAgICBmdW5jdGlvbiB0aW1lZE91dCgpIHsKICAgICAgICAgICAgdGltZWRPdXRXYXND
YWxsZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja1RpbWVkT3V0Q2Fs
bGVkKCkgewogICAgICAgICAgICBzaG91bGRCZVRydWUoInRpbWVkT3V0V2FzQ2FsbGVkIik7CiAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgIH0KICAgICAgICB2YXIgeGhyID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgeGhyLnRpbWVvdXQgPSA1MDA7IC8vIDUwMG1zIGlz
IGxlc3MgdGhhbiAic3RhbGxGb3IiLCB3aGljaCBpcyBzcGVjaWZpZWQgaW4gc2Vjb25kcy4KICAg
ICAgICB4aHIub3BlbigiR0VUIiwgIi9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9
Li4vLi4vLi4vaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbnRpbWVvdXQtZXZlbnQtYXN5bmMu
aHRtbCZzdGFsbEZvcj0xJnN0YWxsQXQ9MCZtaW1lVHlwZT10ZXh0L3BsYWluIik7CiAgICAgICAg
eGhyLm9udGltZW91dCA9IHRpbWVkT3V0OwogICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2Ug
PSBmdW5jdGlvbigpIHsgc2V0VGltZW91dChjaGVja1RpbWVkT3V0Q2FsbGVkLCAwKTsgfTsKICAg
ICAgICB4aHIuc2VuZCgpOwogICAgPC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CiAgICA8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
PC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168716</attachid>
            <date>2012-10-15 08:31:43 -0700</date>
            <delta_ts>2012-10-15 08:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74802-20121015183342.patch</filename>
            <type>text/plain</type>
            <size>63730</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZlZDYyM2ZjYmI3NmI2
ZjQ2ZTI2YjNjZDQ4YmIxODc1NjM1MDM1Mi4uZWFlZmViODFhMjZhZWRlZTM0YmQwNWI2ZTlkMDdj
YmJhNWQxYmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTE1ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBUZXN0cyBp
bXBvcnRlZCBhbmQgYWRhcHRlZCB0byBXM0MgdGVzdGhhcm5lc3MuanMgd2l0aCBwZXJtaXNzaW9u
IChQRC9CU0QgbGljZW5zZSkKKyAgICAgICAgZnJvbSBNb3ppbGxhJ3MgQWxleCBWaW5jZW50J3Mg
c2V0IG9mIFhIUjIgdGltZW91dCB0ZXN0cy4gQmlnIHRoYW5rcyEKKyAgICAgICAgQ21wLiBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MjU4MTYjYzg2CisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXR3aWNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKTogRm9yd2FyZCBpbmZvcm1hdGlvbiBhYm91
dCB0aW1lb3V0IGNhc2UuCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKTogRGlzdGluZ3Vp
c2ggdGltZW91dCBjYXNlIHdoZW4gaW5mb3JtaW5nIGNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogRGlzdGluZ3Vpc2hpbmcgdGltZW91dCBjYXNlIGZvciBl
cnJvcnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZEZhaWxlZE9yQ2FuY2VsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnRpbWVkT3V0KToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KTogSW5pdGlhbGl6aW5nIG1fdGltZW91dCB2YWx1ZSB0byB6ZXJv
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQpOiBTZXR0ZXIg
ZnVuY3Rpb24sIHBvc3NpYmx5IHJhaXNpbmcgSlMgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6IE9wZW4gY2FsbCBt
YXkgcmFpc2UgZXhjZXB0aW9uIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyB3aGVuIHRpbWVvdXQg
dmFsdWUgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBBc3NpZ25pbmcgdGltZW91dCB2YWx1ZSB0byBSZXNvdXJjZVJlcXVlc3QuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6IEhhbmRsaW5nIHRpbWVvdXQg
Y2FzZSBzZXBhcmF0ZWx5LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFRp
bWVvdXQpOiBUaW1lb3V0IGNhc2Ugc3RhdGUgdHJhbnNpc2l0aW9uIGFuZCBldmVudCBmaXJpbmcg
YXMgc3BlYydlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDogTmV3IGV2ZW50IGxp
c3RlbmVyLCBtZW1iZXIgYW5kIGNhbGxiYWNrIGZvciBoYW5kbGluZyB0aW1lb3V0LgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnRpbWVvdXQpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IE5ldyBldmVudCBsaXN0
ZW5lciBhbmQgcHJvcGVydHkgYWRkZWQuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDogQWRk
ZWQgYW4gZXhjZXB0aW9uIHZhbHVlIGZvciB0aGUgdGltZW91dCBjYXNlLgorCisKIDIwMTItMTAt
MTUgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogU2NyaXB0cyBmb3IgZHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0IGVsZW1lbnRz
IGFyZSBub3Qgc2hvd24gaW4gc291cmNlcyBwYW5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThj
MmFiMWJjZGUyOTBhMzE5MmQ1YzY5MDc0Zi4uYWM2ODkxYWY3Y2FmMGIxOWQyYTg5MjZkZTJjOGQ4
ZWZmYmU0OGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKQEAgLTMwOCw2ICszMDgsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAg
ICAgICBSZXNvdXJjZUVycm9yIGVycm9yKCJOZXR3b3JrIFJlcXVlc3QgRmFpbGVkIiwgMCwgbV9y
ZXNvdXJjZS0+dXJsKCksICJSZXNvdXJjZSBmYWlsZWQgdG8gbG9hZCIpOwogICAgICAgICBpZiAo
bV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgIGVycm9yLnNldElzQ2FuY2Vs
bGF0aW9uKHRydWUpOworICAgICAgICBpZiAobV9yZXNvdXJjZS0+dGltZWRPdXQoKSkKKyAgICAg
ICAgICAgIGVycm9yLnNldElzVGltZW91dCh0cnVlKTsKICAgICAgICAgZGlkRmFpbChlcnJvcik7
CiAgICAgfSBlbHNlCiAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+aWRlbnRp
ZmllcigpLCBtX3Jlc291cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDM2YjM2NzY2MDY5MzYyMGRiNjQzMTFh
ZGQ5Mjg0MzVjYjZmYjg2YTIuLmZhY2FkZDc0ZWU2NTMyYjFjNTY2NmYyOWY4NjAxOGM4ZWEwZDEw
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAt
MzEyLDcgKzMxMiwxMCBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVj
dCh0aGlzKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJvdGVj
dFJlc291cmNlKG1fcmVzb3VyY2UpOwogICAgIG1fc3RhdGUgPSBGaW5pc2hpbmc7Ci0gICAgbV9y
ZXNvdXJjZS0+ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7CisgICAgaWYgKGVycm9y
LmlzVGltZW91dCgpKQorICAgICAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNoZWRSZXNvdXJjZTo6
VGltZW91dEVycm9yKTsKKyAgICBlbHNlCisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hl
ZFJlc291cmNlOjpMb2FkRXJyb3IpOwogICAgIGlmICghbV9yZXNvdXJjZS0+aXNQcmVsb2FkZWQo
KSkKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKG1fcmVzb3VyY2UpOwogICAgIFJlc291
cmNlTG9hZGVyOjpkaWRGYWlsKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmgKaW5kZXggZWIzMWQ5ZDFmMmQ5YzRmOTQzZjVjYWFmMjhkNDE1MjFm
MTY1MDc1Yy4uZDdlNzY2ZDY4YzdlODJhZjdlNTBiNjQ3M2M1MDRiMTEzMjQ1MjU4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTkwLDYgKzkw
LDcgQEAgcHVibGljOgogICAgICAgICBDYWNoZWQsICAgICAgIC8vIHJlZ3VsYXIgY2FzZQogICAg
ICAgICBDYW5jZWxlZCwKICAgICAgICAgTG9hZEVycm9yLAorICAgICAgICBUaW1lb3V0RXJyb3Is
CiAgICAgICAgIERlY29kZUVycm9yCiAgICAgfTsKIApAQCAtMjA3LDggKzIwOCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFjY2VwdChjb25zdCBTdHJpbmcmIGFjY2VwdCkgeyBtX2FjY2VwdCA9
IGFjY2VwdDsgfQogCiAgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dHVzID09IENhbmNlbGVkOyB9Ci0gICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1
cm4gKG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBEZWNvZGVFcnJvcik7IH0K
LSAgICBib29sIGxvYWRGYWlsZWRPckNhbmNlbGVkKCkgeyByZXR1cm4gbV9zdGF0dXMgPT0gQ2Fu
Y2VsZWQgfHwgbV9zdGF0dXMgPT0gTG9hZEVycm9yOyB9CisgICAgYm9vbCBlcnJvck9jY3VycmVk
KCkgY29uc3QgeyByZXR1cm4gKG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBE
ZWNvZGVFcnJvciB8fCBtX3N0YXR1cyA9PSBUaW1lb3V0RXJyb3IpOyB9CisgICAgYm9vbCBsb2Fk
RmFpbGVkT3JDYW5jZWxlZCgpIHsgcmV0dXJuIG1fc3RhdHVzID09IENhbmNlbGVkIHx8IG1fc3Rh
dHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBUaW1lb3V0RXJyb3I7IH0KKyAgICBib29s
IHRpbWVkT3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0dXMgPT0gVGltZW91dEVycm9yOyB9CiAK
ICAgICBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZjYxNjkwODU0ZWY3M2UzOWJjMDRmZjY5
Mjk2NjUxZGFjNmE4N2IwZS4uM2FmZjQzOWEyMjY5OGM1NGY1MmY2NjRjN2EzOWRiMjcyZGEyMzg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0zLDYgKzMsNyBAQAog
ICogIENvcHlyaWdodCAoQykgMjAwNS0yMDA3IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtp
dC5vcmc+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEp1bGllbiBDaGFmZnJhaXggPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTE3NSw2ICsxNzYsNyBAQCBYTUxI
dHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxTZWN1cgogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMp
CiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxzZSkK
KyAgICAsIG1fdGltZW91dCgwKQogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAgLCBtX2NyZWF0
ZWREb2N1bWVudChmYWxzZSkKICAgICAsIG1fZXJyb3IoZmFsc2UpCkBAIC0zMjYsNiArMzI4LDE4
IEBAIEFycmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBcnJheUJ1ZmZlcihFeGNl
cHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwog
fQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IE5lZWQgdG8gdHJpZ2dlciBv
ciB1cGRhdGUgdGhlIHRpbWVvdXQgVGltZXIgaGVyZSwgaWYgbmVlZGVkLiBodHRwOi8vd2Via2l0
Lm9yZy9iLzk4MTU2CisgICAgLy8gWEhSMiBzcGVjLCA0LjcuMy4gIlRoaXMgaW1wbGllcyB0aGF0
IHRoZSB0aW1lb3V0IGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHdoaWxlIGZldGNoaW5nIGlzIGluIHBy
b2dyZXNzLiBJZiB0aGF0IG9jY3VycyBpdCB3aWxsIHN0aWxsIGJlIG1lYXN1cmVkIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvZiBmZXRjaGluZy4iCisgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpICYmICFtX2FzeW5jKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdGltZW91dCA9IHRpbWVv
dXQ7Cit9CisKKwogdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0UmVzcG9uc2VUeXBlKGNvbnN0IFN0
cmluZyYgcmVzcG9uc2VUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9zdGF0
ZSA+PSBMT0FESU5HKSB7CkBAIC00OTUsNiArNTA5LDEzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6
Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBhc3luYywg
RXhjCiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQorCisgICAgICAgIC8vIFNpbWlsYXJseSwgdGltZW91dHMgYXJlIGRp
c2FibGVkIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyBhcyB3ZWxsLgorICAgICAgICBpZiAobV90
aW1lb3V0ID4gMCkgeworICAgICAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgIlN5bmNocm9ub3VzIFhNTEh0dHBSZXF1ZXN0cyBtdXN0IG5vdCBoYXZlIGEg
dGltZW91dCB2YWx1ZSBzZXQuIik7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIG1fbWV0aG9k
ID0gdXBwZXJjYXNlS25vd25IVFRQTWV0aG9kKG1ldGhvZCk7CkBAIC03NDIsNiArNzYzLDkgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdChFeGNlcHRpb25Db2RlJiBlYykKICAg
ICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFVzZUFjY2Vzc0NvbnRyb2w7CiAg
ICAgb3B0aW9ucy5zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luKCk7CiAKKyAgICBpZiAo
bV90aW1lb3V0KQorICAgICAgICByZXF1ZXN0LnNldFRpbWVvdXRJbnRlcnZhbChtX3RpbWVvdXQg
LyAxMDAwLjApOworCiAgICAgbV9leGNlcHRpb25Db2RlID0gMDsKICAgICBtX2Vycm9yID0gZmFs
c2U7CiAKQEAgLTEwNTgsNiArMTA4MiwxMSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgaWYgKGVycm9yLmlzVGltZW91dCgpKSB7CisgICAgICAgIGRpZFRpbWVvdXQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkg
cmVwb3J0ZWQgdG8gV2ViIEluc3BlY3RvciBieSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJy
b3IuZG9tYWluKCkgPT0gZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCkKICAgICAgICAgbG9nQ29u
c29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkICIgKyBlcnJvci5mYWlsaW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24oKSk7CkBAIC0xMTgyLDYgKzEyMTEsMzQgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKICAgICB9CiB9CiAKK3Zv
aWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFRpbWVvdXQoKQoreworICAgIC8vIGludGVybmFsQWJvcnQo
KSBjYWxscyBkcm9wUHJvdGVjdGlvbigpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZl
cmVuY2UuCisgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0KHRoaXMpOworICAgIGlu
dGVybmFsQWJvcnQoKTsKKworICAgIGNsZWFyUmVzcG9uc2UoKTsgLy8gRklYTUU6IGNsZWFyUmVz
cG9uc2VCdWZmZXJzKCk/CisgICAgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBtX2Vycm9yID0gdHJ1
ZTsKKyAgICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6VElNRU9V
VF9FUlI7CisKKyAgICBpZiAoIW1fYXN5bmMpIHsKKyAgICAgICAgbV9zdGF0ZSA9IERPTkU7Cisg
ICAgICAgIG1fZXhjZXB0aW9uQ29kZSA9IFRJTUVPVVRfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY2hhbmdlU3RhdGUoRE9ORSk7CisKKyAgICBpZiAoIW1fdXBsb2FkQ29tcGxl
dGUpIHsKKyAgICAgICAgbV91cGxvYWRDb21wbGV0ZSA9IHRydWU7CisgICAgICAgIGlmIChtX3Vw
bG9hZCAmJiBtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgICAgICAgICBtX3VwbG9hZC0+ZGlz
cGF0Y2hFdmVudEFuZExvYWRFbmQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCkpOworICAgIH0KKyAgICBtX3Byb2dyZXNzRXZlbnRU
aHJvdHRsZS5kaXNwYXRjaEV2ZW50QW5kTG9hZEVuZChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudGltZW91dEV2ZW50KSk7Cit9CisKIGJvb2wgWE1MSHR0
cFJlcXVlc3Q6OmNhblN1c3BlbmQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9sb2FkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGNjNmNiYzUwYzM2MDE2NTA4OWUyNjU5
OTc1Y2QxMGQzMTEyMmVmNWQuLmY3YTQzMDYzZjUxNzdlOGU5NjMxMTk0ZDM0M2E5MzZlM2FjYzE5
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yLDYgKzIsNyBAQAogICog
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
PGFwQG55cG9wLmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY5LDYgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRUaW1lb3V0KCk7CiAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzdW1lKCk7CkBAIC0xMDQsNiArMTA2LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiBv
cHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50Lmdl
dCgpOyB9CiAgICAgQmxvYiogcmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBCbG9i
KiBvcHRpb25hbFJlc3BvbnNlQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdl
dCgpOyB9CisgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1l
b3V0OyB9CisgICAgdm9pZCBzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhjZXB0
aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZW5kRnJvbUluc3BlY3RvcihQYXNzUmVmUHRyPEZvcm1E
YXRhPiwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHVibGljOgogICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGVuZCk7CiAgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2Fkc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIocHJvZ3Jlc3MpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIodGltZW91dCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0Pjo6
cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+OjpkZXJlZjsKQEAgLTE5
MSw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJpZGU7CiAg
ICAgYm9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7CisgICAgdW5z
aWduZWQgbG9uZyBtX3RpbWVvdXQ7CiAgICAgUmVmUHRyPEJsb2I+IG1fcmVzcG9uc2VCbG9iOwog
CiAgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggMzdjNjk0ZTc1Y2IyNzNiOGFmMjRkMDQ1YWMzNTQyZWRj
MzIzODMzMi4uYjZhZTIzMmI2YjBjZGFlZjQ1NmYyNzQwNTZjOWY1ZDQxNjFmZDZiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC00Myw2ICs0Myw3IEBACiAgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkZW5kOwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9ubG9hZHN0YXJ0OwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucHJvZ3Jlc3M7
CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1lb3V0OwogCiAgICAgLy8gZXZlbnQg
aGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0
YXRlY2hhbmdlOwpAQCAtNTQsNiArNTUsOCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExP
QURJTkcgPSAzOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERPTkUgPSA0OwogCisgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3Rh
dGU7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKQEAgLTExNyw0ICsx
MjAsMyBAQAogICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAg
IHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiB9OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBjMDZjMDdjMGRlZTE4ZTQyNzViNjE2ODkz
NWRlOGJjYjVhODU1YmMzLi5iOGNiMmYzOTlkYjBhZTlmYmVmMTE1ZDE3MmZkZjJjYzVjMjA3NWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIHN0cnVjdCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5h
bWVEZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3JpcHRpb247CiB9IGV4
Y2VwdGlvbnNbXSA9IHsKICAgICB7ICJORVRXT1JLX0VSUiIsICJBIG5ldHdvcmsgZXJyb3Igb2Nj
dXJyZWQgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAotICAgIHsgIkFCT1JUX0VSUiIsICJU
aGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdCBpbiBzeW5jaHJvbm91cyByZXF1ZXN0cy4iIH0KKyAg
ICB7ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QgaW4gc3luY2hyb25v
dXMgcmVxdWVzdHMuIiB9LAorICAgIHsgIlRJTUVPVVRfRVJSIiwgIkEgdGltZW91dCBlcnJvciBv
Y2N1cmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfQogfTsKIAogYm9vbCBYTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCmluZGV4IDdjNDM3ZWYyZjg1NDg5NDkxOTNmZDAw
Mzg1OGMwZTIxODZlMmQyODkuLjk0MGUzMDEwNzJkZTQ4ZjI1MDZkYzI0MTVjMjAyZWU4OGY4N2Nm
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCkBA
IC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b25Db2RlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9m
ZnNldCArIDEwMSwKLSAgICAgICAgQUJPUlRfRVJSCisgICAgICAgIEFCT1JUX0VSUiwKKyAgICAg
ICAgVElNRU9VVF9FUlIKICAgICB9OwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZURlc2Ny
aXB0aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDc4ZmIzZTUxMzA4Nzk3NDMzMDQzNTE2NWI3YTUxYWJlZDBjNmFlOTkuLjExNjEzZDkwMjc4NDBl
M2M3NjZkMWNkMzEzM2FjMmVmZmQyNmIzNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NyBAQAogMjAxMi0x
MC0xNSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgog
CisgICAgICAgIEFkZCB0aW1lb3V0IHN1cHBvcnQgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODAyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBYSFIy
IHRpbWVvdXQgZnVuY3Rpb25hbGl0eSwgaW1wb3J0ZWQgYW5kIGFkYXB0ZWQgdG8gVzNDIHRlc3Ro
YXJuZXNzLmpzCisgICAgICAgIHdpdGggcGVybWlzc2lvbiAoUEQvQlNEIGxpY2Vuc2UpIGZyb20g
TW96aWxsYSdzIEFsZXggVmluY2VudCdzIHNldCBvZiBYSFIyIHRpbWVvdXQgdGVzdHMuIEJpZyB0
aGFua3MhCisgICAgICAgIENtcC4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorCisgICAgICAgIFRoZSBjYXNlIG9mIGxhdGUgdXBkYXRlcyB0
byB0aGUgdGltZW91dCBwcm9wZXJ0eSwgY2hhbmdpbmcgdGhlIHRpbWVvdXQgdmFsdWUgYWZ0ZXIg
c2VuZCgpCisgICAgICAgIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCBoYW5kbGVkIHNlcGFyYXRl
bHkgaW4gYnVnIDk4MTU2LiBUZXN0cyB0aGF0IGFyZSB0ZXN0aW5nIHRoaXMgZmVhdHVyZQorICAg
ICAgICBhcmUgY29tbWVudGVkIG91dCB1bnRpbCB0aGlzIGJ1ZyBpcyB0YWNrbGVkLgorCisgICAg
ICAgIFNpbmNlIHdlIHRyeSB0byBhdm9pZCBsb25nIHJ1bm5pbmcgdGVzdHMsIHRoZSB0ZXN0cyB3
ZXJlIHNwbGl0IGludG8gcGllY2VzIGRpZ2VzdGlibGUgYnkgV1RSL0RUUgorICAgICAgICB0byBi
ZSBydW4gd2l0aCBzbWFsbGVyIHRpbWVvdXRzLiBFYWNoIGluZGl2aWR1YWwgdGVzdCBzaG91bGQg
Y29tcGxldGUgaW4gbGVzcyB0aGFuIDIwIHNlY29uZHMuCisKKyAgICAgICAgVGhlIHN1ZmZpeCBv
ZiB0aGUgdGVzdCBmaWxlbmFtZSBtYXRjaGVzIHRoZSBncm91cHMgaW4geG1saHR0cHJlcXVlc3Qt
dGltZW91dC5qcyB3aGljaCBjb250YWlucworICAgICAgICBhbGwgdGVzdHMgdGhhdCBhcmUgcnVu
LiBUaGUgcmVzdWx0IG9mIGFzc2VydGlvbnMgaXMgcmVwb3J0ZWQgYmFjayB0byB0ZXN0aGFybmVz
cy5qcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1hYm9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtcnVubmVyLmpzOiBBZGRlZC4gRGlzdGluZ3Vpc2hlcyB3aGljaCBncm91cCBv
ZiB0ZXN0cyB0byBydW4gYmFzZWQgb24gZmlsZW5hbWUgc3VmZml4LgorICAgICAgICAodGVzdFJl
c3VsdENhbGxiYWNrSGFuZGxlci5yZXR1cm4pOgorICAgICAgICAoZ3JvdXBGcm9tTG9jYXRpb24p
OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1hYm9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFi
b3J0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3lu
Y29ud29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndv
cmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQuanM6
IEFkZGVkLiBDb250YWlucyB0ZXN0IGNhc2VzIGZvciBhbGwgaW5kaXZpZHVhbCB0ZXN0IGh0bWwg
ZmlsZXMuCisgICAgICAgIChtZXNzYWdlKTogV3JhcHBlciBmb3IgcG9zdE1lc3NhZ2UgaW4gd29y
a2VyIGFuZCBkb2N1bWVudCBjb250ZXh0IGNhc2UuCisgICAgICAgIChpcyksCisgICAgICAgIChv
ayk6IEFzc2VydGlvbiBmdW5jdGlvbnMuCisgICAgICAgIChSZXF1ZXN0VHJhY2tlcik6IENsYXNz
IGZvciB2YXJpYXRpb25zIG9mIHRoZSByZWd1bGFyIHRpbWVvdXQgY2FzZS4KKyAgICAgICAgKFJl
cXVlc3RUcmFja2VyLnByb3RvdHlwZS5zdGFydFhIUi5oYW5kbGVFdmVudCk6CisgICAgICAgIChS
ZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuc3RhcnRYSFIpOgorICAgICAgICAoUmVxdWVzdFRyYWNr
ZXIucHJvdG90eXBlLmdldE1lc3NhZ2UpOgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIucHJvdG90
eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0KTogQ2xhc3MgZm9yIHRl
c3RpbmcgdGltZW91dCBldmVudCB2cy4gYWJvcnQgZXZlbnRzLgorICAgICAgICAoQWJvcnRlZFJl
cXVlc3QucHJvdG90eXBlLnN0YXJ0WEhSLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKEFib3J0ZWRS
ZXF1ZXN0LnByb3RvdHlwZS5zdGFydFhIUi5hYm9ydFJlcSk6CisgICAgICAgIChBYm9ydGVkUmVx
dWVzdC5wcm90b3R5cGUuc3RhcnRYSFIuZWxzZSk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5w
cm90b3R5cGUuc3RhcnRYSFIpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLm5v
RXZlbnRzRmlyZWQpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLmdldE1lc3Nh
Z2UpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAg
ICAgICAgKFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRBZnRlck9wZW4uc3RhcnRYSFIpLAorICAg
ICAgICAoU3luY1JlcXVlc3RTZXR0aW5nVGltZW91dEJlZm9yZU9wZW4uc3RhcnRYSFIpOiBUZXN0
IGNsYXNzZXMgZm9yIHN5bmNocm9ub3VzIFhIUiBjYXNlcy4KKyAgICAgICAgKFRlc3RDb3VudGVy
LnRlc3RDb21wbGV0ZSksCisgICAgICAgIChUZXN0Q291bnRlci5uZXh0KTogVXNlZCBmb3IgY3lj
bGluZyB0aHJvdWdoIHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnM6IFNraXBwaW5nIFhIUiB0aW1lb3V0IGNhc2VzIHNpbmNlIHNldFRpbWVvdXRJbnRl
cnZhbCBpcyBub3Qgc3VwcG9ydGVkIGluIENocm9taXVtJ3MgSFRUUCBzdGFjay4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogTWFya2luZyBYSFIgdGltZW91dCBjYXNl
cyBhcyBzbG93IGluIG9yZGVyIHRvIHJ1biB0aGVtIHdpdGggYSBsb25nZXIgdGVzdCB0aW1lb3V0
IHRocmVzaG9sZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOiBTa2lw
cGluZyBYSFIgdGltZW91dCBjYXNlcyBzaW5jZSBzZXRUaW1lb3V0SW50ZXJ2YWwgaXMgbm90IHN1
cHBvcnRlZCBpbiBDaHJvbWl1bSdzIEhUVFAgc3RhY2suCisKKzIwMTItMTAtMTUgIERvbWluaWsg
UsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KKwogICAgICAgICBVbnJl
dmlld2VkIEdUSyBnYXJkZW5pbmcuCiAKICAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczogU2lsZW5jaW5nIGEgc3R5bGUtY2hlY2tlciB3YXJuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtYWJvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzE5NDI5MDY1MzRlNjJiZWNjYmE2Njk5NmQwNWI0Yzc5
OWNiNjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3lu
YyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1Mg
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkg
VGVzdHMgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDIgCitQQVNTIFhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0cyAzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9y
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNTczMDEy
ZjRmM2FmODYwZGQxODNhN2ZlZWY0ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LWFib3J0ZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5Y
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3Ii
IC8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+
CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1
bHRDYWxsYmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6
ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdp
bmRvdy5wb3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRp
b248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0
IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQg
KGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFp
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zM2E2YTkzODBjOTU1MTNlYTRkZmU1OTQxMjU3NmQ4MmNiYzMxNmY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhl
IFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2Vz
IGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRp
bWVvdXQgUHJvcGVydHkgVGVzdHMgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAx
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1hYm9ydGVkb25tYWluLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNTczMDEyZjRmM2FmODYwZGQx
ODNhN2ZlZWY0ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0
ZWRvbm1haW4uaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRp
bWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+Cisg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxs
YmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFy
dCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdpbmRvdy5w
b3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gx
PgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4g
bm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2ZDA5ZGEwMGI1MDk2MmZiMWM4MDE5
N2I0NGRjODg5OGJhZTBhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMiBAQAorQ09OU09MRSBNRVNTQUdFOiBTeW5jaHJvbm91cyBYTUxI
dHRwUmVxdWVzdHMgbXVzdCBub3QgaGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LgorRGVzY3JpcHRp
b24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkg
YmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24t
d29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgTm8gdGltZSBvdXQgc2NoZWR1bGVkLCBsb2FkIGZp
cmVzIG5vcm1hbGx5LCB0aW1lb3V0IHNjaGVkdWxlZCBhdCAwIAorUEFTUyBMb2FkIGZpcmVzIG5v
cm1hbGx5LCB0aW1lb3V0IHNjaGVkdWxlZCBhdCA1MDAwIAorUEFTUyBUaW1lb3V0IGhpdCBiZWZv
cmUgbG9hZCwgdGltZW91dCBzY2hlZHVsZWQgYXQgMjAwMCAKK1BBU1MgTG9hZCBmaXJlcyBub3Jt
YWxseSB3aXRoIG5vIHRpbWVvdXQgc2V0LCB0d2ljZSwgb3JpZ2luYWwgdGltZW91dCBhdCAwLCBy
ZXNldCBhdCAyMDAwIHRvIDAgCitQQVNTIExvYWQgZmlyZXMgbm9ybWFsbHkgd2l0aCBzYW1lIHRp
bWVvdXQgc2V0IHR3aWNlLCBvcmlnaW5hbCB0aW1lb3V0IGF0IDUwMDAsIHJlc2V0IGF0IDIwMDAg
dG8gNTAwMCAKK1BBU1MgVGltZW91dCBmaXJlcyBub3JtYWxseSB3aXRoIHNhbWUgdGltZW91dCBz
ZXQgdHdpY2UsIG9yaWdpbmFsIHRpbWVvdXQgYXQgMjAwMCwgcmVzZXQgYXQgMTAwMCB0byAyMDAw
IAorUEFTUyBUaW1lb3V0IHNldCB0byBleHBpcmluZyB2YWx1ZSBhZnRlciBsb2FkIGZpcmVzLCBv
cmlnaW5hbCB0aW1lb3V0IGF0IDUwMDAsIHJlc2V0IGF0IDQwMDAgdG8gMTAwMCAKK1BBU1MgVGlt
ZW91dCBzZXQgdG8gbm9uLWV4cGlyaW5nIHZhbHVlIGFmdGVyIHRpbWVvdXQgZmlyZXMsIG9yaWdp
bmFsIHRpbWVvdXQgYXQgMTAwMCwgcmVzZXQgYXQgMjAwMCB0byA1MDAwIAorUEFTUyBUaW1lIHRv
IGFib3J0IGlzIHVuZGVmaW5lZCwgdGltZW91dCBzZXQgYXQgMjAwMCAKK1BBU1MgVGltZSB0byBh
Ym9ydCBpcyAtMSwgdGltZW91dCBzZXQgYXQgMjAwMCAKK1BBU1MgVGltZSB0byBhYm9ydCBpcyAw
LCB0aW1lb3V0IHNldCBhdCAyMDAwIAorUEFTUyBUaW1lIHRvIGFib3J0IGlzIDEwMDAsIHRpbWVv
dXQgc2V0IGF0IDIwMDAgCitQQVNTIFRpbWUgdG8gYWJvcnQgaXMgNTAwMCwgdGltZW91dCBzZXQg
YXQgMjAwMCAKK1BBU1MgU3luY2hyb25vdXMgWEhSIG11c3Qgbm90IGFsbG93IGEgdGltZW91dCB0
byBiZSBzZXQuIAorUEFTUyBTeW5jaHJvbm91cyBYSFIgbXVzdCBub3QgYWxsb3cgYSB0aW1lb3V0
IHRvIGJlIHNldC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzNhNmE5MzgwYzk1NTEzZWE0ZGZlNTk0MTI1NzZkODJjYmMzMTZmNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0
IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBj
YXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhS
MiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVz
dHMgMSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0
ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8
dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0
LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3Mu
Y3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQt
cnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0
WGhyKCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0
ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsg
InR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAg
ICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRl
c2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIg
dGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRv
Y3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5l
ci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQ4NTI4N2Y5NzliZTRm
N2IyMTk2YTY2ZjE3MGYzZjgyODM4ZDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
cnVubmVyLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RSZXN1bHRDYWxsYmFja0hh
bmRsZXIoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PSAiZG9uZSIpIHsKKyAgICAgICAg
ZG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUg
PT0gImlzIikgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfZXF1YWxzKGV2ZW50
LmRhdGEuZ290LCBldmVudC5kYXRhLmV4cGVjdGVkLCBldmVudC5kYXRhLm1zZyk7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gIm9rIikgewor
ICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShldmVudC5kYXRhLmJvb2wsIGV2
ZW50LmRhdGEubXNnKTsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGdyb3VwRnJvbUxvY2F0aW9uKCkgeworICAgIHN1ZmZpeE1hdGNoID0gL3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtKC4qKVwuaHRtbC87CisgICAgZ3JvdXAgPSBzdWZmaXhNYXRjaC5leGVjKGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYpWzFdOworICAgIGdyb3VwID0gZ3JvdXAucmVwbGFjZSgid29ya2Vy
LSIsICIiKTsKKyAgICByZXR1cm4gZ3JvdXA7Cit9CisKKy8vIFNldHRpbmcgdXAgdGVzdGhhcm5l
c3MuanMKK3NldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgdGltZW91dDogMyAqIDYwICogMTAw
MCB9KTsKKworLy8gQWJvcnQgdGVzdCBleGVjdXRpb24gaWYgYW4gaW5kaXZpZHVhbCB0ZXN0IGNh
c2UgZmFpbHMuCithZGRfcmVzdWx0X2NhbGxiYWNrKGZ1bmN0aW9uICh0KSB7CisgICAgaWYgKHQu
c3RhdHVzID09IHQuRkFJTCkKKyAgICAgICAgZG9uZSgpOworfSk7CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0MDdiNzIwMjQ1MGVkODA2MDU1NjgzNGI5NWY0MGM3MTQ2OWQx
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNl
cyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMg
MSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDIgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzhhNTczMDEyZjRmM2FmODYwZGQxODNhN2ZlZWY0ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cisg
ICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGlt
ZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJu
ZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1l
b3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24g
dGVzdFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMg
PSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAg
ICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9Owor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxo
MT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBY
SFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBp
biBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1z
eW5jb25tYWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVmOTUzZThhOTJjMDc3YTcyNTZiNDU3OGM5YjgxMzE2MWQ4OTU4MGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogU3luY2hyb25vdXMgWE1MSHR0cFJlcXVl
c3RzIG11c3Qgbm90IGhhdmUgYSB0aW1lb3V0IHZhbHVlIHNldC4KK0Rlc2NyaXB0aW9uCisKK1Ro
aXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMg
YXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikg
Y29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhS
MiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5
bmNvbm1haW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
OGE1NzMwMTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cisg
ICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGlt
ZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJu
ZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1l
b3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24g
dGVzdFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMg
PSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAg
ICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9Owor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxo
MT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBY
SFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBp
biBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10
d2ljZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDQwN2I3MjAyNDUwZWQ4MDYwNTU2ODM0Yjk1ZjQwYzcxNDY5ZDE2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0
IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQg
KGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0
eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNTIFhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2lj
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYz
YWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtdHdpY2UuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRp
bWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+Cisg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxs
YmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFy
dCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdpbmRvdy5w
b3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gx
PgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4g
bm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkyN2I0NTI4M2MxYTU2ODg1N2UxMjUwOGFiMDg0MWJlMTIxMTU1ZTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBY
SFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBj
b250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAK
K1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBYSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDIgCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGEzNDcyMjExMmJhODFhYjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKQEAgLTAsMCArMSwyNyBA
QAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtl
cjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9U
Ui9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7
CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGlt
ZW91dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3Rz
ID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAg
ICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRl
c2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIg
dGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRl
eHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTYxMTcxNDk1NDhkZWY2MjkzOTUwYzUzYmIwZmY4Y2UyYTA3OGFjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBh
IHdvcmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGlu
IFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0
NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApAQCAtMCwwICsxLDI3IEBA
CisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2Vy
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsK
KyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1l
b3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMg
PSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAg
ICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVz
Y3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4
dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUyOTdlZWU3OWJj
ZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitEZXNjcmlwdGlv
bgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBi
ZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBYSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJv
cGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0
cyBpbiBXb3JrZXIgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3MjIx
MTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8
dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0bGU+CisgICAg
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVz
dC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRl
c3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1
ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAgICB2
YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyIpOworICAg
ICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2Fs
bGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJz
dGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4K
KyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0
eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorICAgIDxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU2MTE3MTQ5NTQ4ZGVm
NjI5Mzk1MGM1M2JiMGZmOGNlMmEwNzhhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3Jp
cHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVy
dHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LgorCisKK1BBU1Mg
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0
IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItc3luY29ud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2Vy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGEzNDcyMjExMmJhODFhYjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRt
bApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVy
dHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVu
Y3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4
bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAg
ICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9t
TG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsK
KyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFho
cigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0
ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4g
aW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmU1Mjk3ZWVlNzliY2RhNjU5ZWI5ZmFjOGQ5YzFjZTc0YmQyYzRjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGlt
ZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQu
CisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhIUjIgVGltZW91
dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
d29ya2VyLXR3aWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
IDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwv
dGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9Y
TUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7Cisg
ICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91
dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0
ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0g
eyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAg
ICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2Ny
aXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGlt
ZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQu
PC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhNjU1
ZjI2ZTM1MmQwZTJlZjlkMDdjOGIwYzBlOTQ1NDA0NzRjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LmpzCkBAIC0wLDAgKzEsMzYyIEBACisvKiBUZXN0IGltcG9ydGVkIGZyb20gQWxl
eCBWaW5jZW50J3MgWEhSMiB0aW1lb3V0IHRlc3RzLCB3cml0dGVuIGZvciBNb3ppbGxhLgorICAg
aHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwvZmlsZS90aXAvY29udGVudC9i
YXNlL3Rlc3QvCisgICBSZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLCBhY2NvcmRpbmcg
dG8KKyAgIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUyNTgx
NiNjODYKKyovCisKKy8qIE5vdGVzOgorICAgLSBBbGwgdGltZXMgYXJlIGV4cHJlc3NlZCBpbiBt
aWxsaXNlY29uZHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgorICAgLSBUZXN0IGhhcm5lc3MgY29kZSBp
cyBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4KKyAgIC0gV2UgZ2VuZXJhdGUgb25seSBvbmUgcmVx
dWVzdCBhdCBhIHRpbWUsIHRvIGF2b2lkIG92ZXJsb2FkaW5nIHRoZSBIVFRQCisgICByZXF1ZXN0
IGhhbmRsZXJzLgorICovCisKKy8qCisgKiBUaGlzIHNob3VsZCBwb2ludCB0byBhIHJlc291cmNl
IHRoYXQgcmVzcG9uZHMgYWZ0ZXIgYSBkZWxheSBvZiAzIHNlY29uZHMuCisgKi8KK3ZhciBTVEFM
TEVEX1JFUVVFU1RfVVJMID0gIi9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9Li4v
Li4vLi4vaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMmc3RhbGxGb3I9MyZzdGFsbEF0PTAmbWltZVR5cGU9dGV4dC9wbGFpbiI7CisKK3Zh
ciBpbldvcmtlciA9IGZhbHNlOwordHJ5IHsKKyAgaW5Xb3JrZXIgPSAhKHNlbGYgaW5zdGFuY2Vv
ZiBXaW5kb3cpOworfSBjYXRjaCAoZSkgeworICBpbldvcmtlciA9IHRydWU7Cit9CisKK2Z1bmN0
aW9uIG1lc3NhZ2Uob2JqKSB7CisgIGlmIChpbldvcmtlcikKKyAgICBzZWxmLnBvc3RNZXNzYWdl
KG9iaik7CisgIGVsc2UKKyAgICBzZWxmLnBvc3RNZXNzYWdlKG9iaiwgIioiKTsKK30KKworZnVu
Y3Rpb24gaXMoZ290LCBleHBlY3RlZCwgbXNnKSB7CisgIHZhciBvYmogPSB7fTsKKyAgb2JqLnR5
cGUgPSAiaXMiOworICBvYmouZ290ID0gZ290OworICBvYmouZXhwZWN0ZWQgPSBleHBlY3RlZDsK
KyAgb2JqLm1zZyA9IG1zZzsKKworICBtZXNzYWdlKG9iaik7Cit9CisKK2Z1bmN0aW9uIG9rKGJv
b2wsIG1zZykgeworICB2YXIgb2JqID0ge307CisgIG9iai50eXBlID0gIm9rIjsKKyAgb2JqLmJv
b2wgPSBib29sOworICBvYmoubXNnID0gbXNnOworCisgIG1lc3NhZ2Uob2JqKTsKK30KKworLyoq
CisgKiBHZW5lcmF0ZSBhbmQgdHJhY2sgcmVzdWx0cyBmcm9tIGEgWE1MSHR0cFJlcXVlc3Qgd2l0
aCByZWdhcmRzIHRvIHRpbWVvdXRzLgorICoKKyAqIEBwYXJhbSB7U3RyaW5nfSBpZCAgICAgICAg
IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVMaW1pdCAgVGhl
IGluaXRpYWwgc2V0dGluZyBmb3IgdGhlIHJlcXVlc3QgdGltZW91dC4KKyAqIEBwYXJhbSB7TnVt
YmVyfSByZXNldEFmdGVyIChPcHRpb25hbCkgVGhlIHRpbWUgYWZ0ZXIgc2VuZGluZyB0aGUgcmVx
dWVzdCwgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0IHRoZSB0aW1lb3V0
LgorICogQHBhcmFtIHtOdW1iZXJ9IHJlc2V0VG8gICAgKE9wdGlvbmFsKSBUaGUgZGVsYXkgdG8g
cmVzZXQgdGhlIHRpbWVvdXQgdG8uCisgKgorICogQG5vdGUgVGhlIGFjdHVhbCB0ZXN0aW5nIHRh
a2VzIHBsYWNlIGluIGhhbmRsZUV2ZW50KGV2ZW50KS4KKyAqIFRoZSByZXF1ZXN0cyBhcmUgZ2Vu
ZXJhdGVkIGluIHN0YXJ0WEhSKCkuCisgKgorICogQG5vdGUgSWYgcmVzZXRBZnRlciBhbmQgcmVz
ZXRUbyBhcmUgb21pdHRlZCwgb25seSB0aGUgaW5pdGlhbCB0aW1lb3V0IHNldHRpbmcKKyAqIGFw
cGxpZXMuCisgKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyBET01FdmVudExpc3Rl
bmVyCisgKi8KK2Z1bmN0aW9uIFJlcXVlc3RUcmFja2VyKGFzeW5jLCBpZCwgdGltZUxpbWl0IC8q
WywgcmVzZXRBZnRlciwgcmVzZXRUb10qLykgeworICB0aGlzLmFzeW5jID0gYXN5bmM7CisgIHRo
aXMuaWQgPSBpZDsKKyAgdGhpcy50aW1lTGltaXQgPSB0aW1lTGltaXQ7CisKKyAgaWYgKGFyZ3Vt
ZW50cy5sZW5ndGggPiAzKSB7CisgICAgdGhpcy5tdXN0UmVzZXQgID0gdHJ1ZTsKKyAgICB0aGlz
LnJlc2V0QWZ0ZXIgPSBhcmd1bWVudHNbM107CisgICAgdGhpcy5yZXNldFRvICAgID0gYXJndW1l
bnRzWzRdOworICB9CisKKyAgdGhpcy5oYXNGaXJlZCA9IGZhbHNlOworfQorUmVxdWVzdFRyYWNr
ZXIucHJvdG90eXBlID0geworICAvKioKKyAgICogU3RhcnQgdGhlIFhNTEh0dHBSZXF1ZXN0IQor
ICAgKi8KKyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKKyAgICB0aGlzLnJlcXVlc3QgPSByZXE7CisgICAgcmVxLm9wZW4oIkdFVCIs
IFNUQUxMRURfUkVRVUVTVF9VUkwsIHRoaXMuYXN5bmMpOworICAgIHZhciBtZSA9IHRoaXM7Cisg
ICAgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZSkgeyByZXR1cm4gbWUuaGFuZGxlRXZlbnQoZSk7IH07
CisgICAgcmVxLm9uZXJyb3IgPSBoYW5kbGVFdmVudDsKKyAgICByZXEub25sb2FkID0gaGFuZGxl
RXZlbnQ7CisgICAgcmVxLm9uYWJvcnQgPSBoYW5kbGVFdmVudDsKKyAgICByZXEub250aW1lb3V0
ID0gaGFuZGxlRXZlbnQ7CisKKyAgICByZXEudGltZW91dCA9IHRoaXMudGltZUxpbWl0OworICAg
IAorICAgIGlmICh0aGlzLm11c3RSZXNldCkgeworICAgICAgdmFyIHJlc2V0VG8gPSB0aGlzLnJl
c2V0VG87CisgICAgICBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHJlcS50
aW1lb3V0ID0gcmVzZXRUbzsKKyAgICAgIH0sIHRoaXMucmVzZXRBZnRlcik7CisgICAgfQorCisg
ICAgcmVxLnNlbmQobnVsbCk7CisgIH0sCisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVz
Y3JpYmluZyB0aGlzIHRlc3QuCisgICAqCisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0
IGRlc2NyaXB0aW9uLgorICAgKi8KKyAgZ2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgdmFy
IHJ2ID0gdGhpcy5pZCArICIsICI7CisgICAgaWYgKHRoaXMubXVzdFJlc2V0KSB7CisgICAgICBy
diArPSAib3JpZ2luYWwgdGltZW91dCBhdCAiICsgdGhpcy50aW1lTGltaXQgKyAiLCAiOworICAg
ICAgcnYgKz0gInJlc2V0IGF0ICIgKyB0aGlzLnJlc2V0QWZ0ZXIgKyAiIHRvICIgKyB0aGlzLnJl
c2V0VG87CisgICAgfQorICAgIGVsc2UgeworICAgICAgcnYgKz0gInRpbWVvdXQgc2NoZWR1bGVk
IGF0ICIgKyB0aGlzLnRpbWVMaW1pdDsKKyAgICB9CisgICAgcmV0dXJuIHJ2OworICB9LAorCisg
IC8qKgorICAgKiBDaGVjayB0aGUgZXZlbnQgcmVjZWl2ZWQsIGFuZCBpZiBpdCdzIHRoZSByaWdo
dCAoYW5kIG9ubHkpIG9uZSB3ZSBnZXQuCisgICAqCisgICAqIEBwYXJhbSB7RE9NUHJvZ3Jlc3NF
dmVudH0gZXZ0IEFuIGV2ZW50IG9mIHR5cGUgImxvYWQiIG9yICJ0aW1lb3V0Ii4KKyAgICovCisg
IGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldnQpIHsKKyAgICBpZiAodGhpcy5oYXNGaXJlZCkgewor
ICAgICAgb2soZmFsc2UsICJPbmx5IG9uZSBldmVudCBzaG91bGQgZmlyZTogIiArIHRoaXMuZ2V0
TWVzc2FnZSgpKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGhpcy5oYXNGaXJlZCA9IHRy
dWU7CisKKyAgICB2YXIgdHlwZSA9IGV2dC50eXBlLCBleHBlY3RlZFR5cGU7CisgICAgLy8gVGhl
IFhIUiByZXNwb25kcyBhZnRlciAzMDAwIG1pbGxpc2Vjb25kcyB3aXRoIGEgbG9hZCBldmVudC4K
KyAgICB2YXIgdGltZUxpbWl0ID0gdGhpcy5tdXN0UmVzZXQgJiYgKHRoaXMucmVzZXRBZnRlciA8
IE1hdGgubWluKDMwMDAsIHRoaXMudGltZUxpbWl0KSkgPworICAgICAgICAgICAgICAgICAgICB0
aGlzLnJlc2V0VG8gOgorICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVMaW1pdDsKKyAgICBp
ZiAoKHRpbWVMaW1pdCA9PSAwKSB8fCAodGltZUxpbWl0ID49IDMwMDApKSB7CisgICAgICBleHBl
Y3RlZFR5cGUgPSAibG9hZCI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgZXhwZWN0ZWRUeXBl
ID0gInRpbWVvdXQiOworICAgIH0KKyAgICBpcyh0eXBlLCBleHBlY3RlZFR5cGUsIHRoaXMuZ2V0
TWVzc2FnZSgpKTsKKyAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwor
LyoqCisgKiBHZW5lcmF0ZSBhbmQgdHJhY2sgWE1MSHR0cFJlcXVlc3RzIHdoaWNoIHdpbGwgaGF2
ZSBhYm9ydCgpIGNhbGxlZCBvbi4KKyAqCisgKiBAcGFyYW0gc2hvdWxkQWJvcnQge0Jvb2xlYW59
IFRydWUgaWYgd2Ugc2hvdWxkIGNhbGwgYWJvcnQgYXQgYWxsLgorICogQHBhcmFtIGFib3J0RGVs
YXkgIHtOdW1iZXJ9ICBUaGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBjYWxsaW5nIGFib3J0
KCkuCisgKi8KK2Z1bmN0aW9uIEFib3J0ZWRSZXF1ZXN0KHNob3VsZEFib3J0LCBhYm9ydERlbGF5
KSB7CisgIHRoaXMuc2hvdWxkQWJvcnQgPSBzaG91bGRBYm9ydDsKKyAgdGhpcy5hYm9ydERlbGF5
ICA9IGFib3J0RGVsYXk7CisgIHRoaXMuaGFzRmlyZWQgICAgPSBmYWxzZTsKK30KK0Fib3J0ZWRS
ZXF1ZXN0LnByb3RvdHlwZSA9IHsKKyAgLyoqCisgICAqIFN0YXJ0IHRoZSBYTUxIdHRwUmVxdWVz
dCEKKyAgICovCisgIHN0YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVxID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7CisgICAgdGhpcy5yZXF1ZXN0ID0gcmVxOworICAgIHJlcS5vcGVuKCJH
RVQiLCBTVEFMTEVEX1JFUVVFU1RfVVJMKTsKKyAgICB2YXIgbWUgPSB0aGlzOworICAgIGZ1bmN0
aW9uIGhhbmRsZUV2ZW50KGUpIHsgcmV0dXJuIG1lLmhhbmRsZUV2ZW50KGUpOyB9OworICAgIHJl
cS5vbmVycm9yID0gaGFuZGxlRXZlbnQ7CisgICAgcmVxLm9ubG9hZCA9IGhhbmRsZUV2ZW50Owor
ICAgIHJlcS5vbmFib3J0ID0gaGFuZGxlRXZlbnQ7CisgICAgcmVxLm9udGltZW91dCA9IGhhbmRs
ZUV2ZW50OworCisgICAgcmVxLnRpbWVvdXQgPSAyMDAwOworICAgIHZhciBfdGhpcyA9IHRoaXM7
CisKKyAgICBmdW5jdGlvbiBhYm9ydFJlcSgpIHsKKyAgICAgIHJlcS5hYm9ydCgpOworICAgIH0K
KworICAgIGlmICghdGhpcy5zaG91bGRBYm9ydCkgeworICAgICAgc2VsZi5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgIF90aGlzLm5vRXZlbnRzRmlyZWQo
KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoZSkgeworICAgICAgICAgIG9rKGZhbHNlLCAi
VW5leHBlY3RlZCBlcnJvcjogIiArIGUpOworICAgICAgICAgIFRlc3RDb3VudGVyLnRlc3RDb21w
bGV0ZSgpOworICAgICAgICB9CisgICAgICB9LCA1MDAwKTsKKyAgICB9CisgICAgZWxzZSB7Cisg
ICAgICAvLyBBYm9ydCBldmVudHMgY2FuIG9ubHkgYmUgdHJpZ2dlcmVkIG9uIHNlbnQgcmVxdWVz
dHMuCisgICAgICByZXEuc2VuZCgpOworICAgICAgaWYgKHRoaXMuYWJvcnREZWxheSA9PSAtMSkg
eworICAgICAgICBhYm9ydFJlcSgpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHNl
bGYuc2V0VGltZW91dChhYm9ydFJlcSwgdGhpcy5hYm9ydERlbGF5KTsKKyAgICAgIH0KKyAgICB9
CisgIH0sCisKKyAgLyoqCisgICAqIEVuc3VyZSB0aGF0IG5vIGV2ZW50cyBmaXJlZCBhdCBhbGws
IGVzcGVjaWFsbHkgbm90IG91ciB0aW1lb3V0IGV2ZW50LgorICAgKi8KKyAgbm9FdmVudHNGaXJl
ZDogZnVuY3Rpb24oKSB7CisgICAgb2soIXRoaXMuaGFzRmlyZWQsICJObyBldmVudHMgc2hvdWxk
IGZpcmUgZm9yIGFuIHVuc2VudCwgdW5hYm9ydGVkIHJlcXVlc3QiKTsKKyAgICAvLyBXZSdyZSBk
b25lOyBpZiB0aW1lb3V0IGhhc24ndCBmaXJlZCBieSBub3csIGl0IG5ldmVyIHdpbGwuCisgICAg
VGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7CisgIH0sCisKKyAgLyoqCisgICAqIEdldCBhIG1l
c3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRlc3QuCisgICAqCisgICAqIEByZXR1cm5zIHtTdHJpbmd9
IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICAgKi8KKyAgZ2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuICJ0aW1lIHRvIGFib3J0IGlzICIgKyB0aGlzLmFib3J0RGVsYXkgKyAiLCB0
aW1lb3V0IHNldCBhdCAyMDAwIjsKKyAgfSwKKworICAvKioKKyAgICogQ2hlY2sgdGhlIGV2ZW50
IHJlY2VpdmVkLCBhbmQgaWYgaXQncyB0aGUgcmlnaHQgKGFuZCBvbmx5KSBvbmUgd2UgZ2V0Lgor
ICAgKgorICAgKiBXZWJLaXQgZmlyZXMgYWJvcnQgZXZlbnRzIGV2ZW4gZm9yIERPTkUgYW5kIFVO
U0VOVCBzdGF0ZXMsIHdoaWNoIGlzIAorICAgKiAgZGlzY3Vzc2VkIGluIGh0dHA6Ly93ZWJraXQu
b3JnL2IvOTg0MDQKKyAgICogVGhhdCdzIHdoeSB3ZSBjaG9zZSB0byBhY2NlcHQgc2Vjb25kYXJ5
ICJhYm9ydCIgZXZlbnRzIGluIHRoaXMgdGVzdC4KKyAgICoKKyAgICogQHBhcmFtIHtET01Qcm9n
cmVzc0V2ZW50fSBldnQgQW4gZXZlbnQgb2YgdHlwZSAibG9hZCIgb3IgInRpbWVvdXQiLgorICAg
Ki8KKyAgaGFuZGxlRXZlbnQ6IGZ1bmN0aW9uKGV2dCkgeworICAgIGlmICh0aGlzLmhhc0ZpcmVk
ICYmIGV2dC50eXBlICE9ICJhYm9ydCIpIHsKKyAgICAgIG9rKGZhbHNlLCAiT25seSBhYm9ydCBl
dmVudCBzaG91bGQgZmlyZTogIiArIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICB2YXIgZXhwZWN0ZWRFdmVudCA9ICh0aGlzLmFib3J0RGVsYXkgPj0gMjAw
MCAmJiAhdGhpcy5oYXNGaXJlZCkgPyAidGltZW91dCIgOiAiYWJvcnQiOworICAgIHRoaXMuaGFz
RmlyZWQgPSB0cnVlOworICAgIGlzKGV2dC50eXBlLCBleHBlY3RlZEV2ZW50LCB0aGlzLmdldE1l
c3NhZ2UoKSk7CisgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7CisgIH0KK307CisKK3Zh
ciBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QWZ0ZXJPcGVuID0geworICBzdGFydFhIUjogZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHBhc3MgPSBmYWxzZTsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxMRURfUkVRVUVTVF9VUkwsIGZh
bHNlKTsKKyAgICB0cnkgeworICAgICAgcmVxLnRpbWVvdXQgPSAxMDAwOworICAgIH0KKyAgICBj
YXRjaCAoZSkgeworICAgICAgcGFzcyA9IHRydWU7CisgICAgfQorICAgIG9rKHBhc3MsICJTeW5j
aHJvbm91cyBYSFIgbXVzdCBub3QgYWxsb3cgYSB0aW1lb3V0IHRvIGJlIHNldCIpOworICAgIFRl
c3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICB9Cit9OworCit2YXIgU3luY1JlcXVlc3RTZXR0
aW5nVGltZW91dEJlZm9yZU9wZW4gPSB7CisgIHN0YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2
YXIgcGFzcyA9IGZhbHNlOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ICByZXEudGltZW91dCA9IDEwMDA7CisgICAgdHJ5IHsKKyAgICAgIHJlcS5vcGVuKCJHRVQiLCBT
VEFMTEVEX1JFUVVFU1RfVVJMLCBmYWxzZSk7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAg
ICBwYXNzID0gdHJ1ZTsKKyAgICB9CisgICAgb2socGFzcywgIlN5bmNocm9ub3VzIFhIUiBtdXN0
IG5vdCBhbGxvdyBhIHRpbWVvdXQgdG8gYmUgc2V0Iik7CisgICAgVGVzdENvdW50ZXIudGVzdENv
bXBsZXRlKCk7CisgIH0KK307CisKK3ZhciBUZXN0UmVxdWVzdEdyb3VwcyA9IHsKKyAgInNpbXBs
ZSIgOiBbCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJubyB0aW1lIG91dCBzY2hlZHVs
ZWQsIGxvYWQgZmlyZXMgbm9ybWFsbHkiLCAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1
ZSwgImxvYWQgZmlyZXMgbm9ybWFsbHkiLCA1MDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIo
dHJ1ZSwgInRpbWVvdXQgaGl0IGJlZm9yZSBsb2FkIiwgMjAwMCkKKyAgXSwKKworICAidHdpY2Ui
IDogWworICAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgImxvYWQgZmlyZXMgbm9ybWFsbHkg
d2l0aCBubyB0aW1lb3V0IHNldCwgdHdpY2UiLCAwLCAyMDAwLCAwKSwKKyAgICAgbmV3IFJlcXVl
c3RUcmFja2VyKHRydWUsICJsb2FkIGZpcmVzIG5vcm1hbGx5IHdpdGggc2FtZSB0aW1lb3V0IHNl
dCB0d2ljZSIsIDUwMDAsIDIwMDAsIDUwMDApLAorICAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1
ZSwgInRpbWVvdXQgZmlyZXMgbm9ybWFsbHkgd2l0aCBzYW1lIHRpbWVvdXQgc2V0IHR3aWNlIiwg
MjAwMCwgMTAwMCwgMjAwMCkKKyAgXSwKKworICAvLyBGSVhNRTogaHR0cDovL3dlYmtpdC5vcmcv
Yi85ODE1NiAtIExhdGUgdXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHRoZXNlIHRlc3Rz
IGFyZSBub3QgcnVuLgorICAib3ZlcnJpZGVzIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIo
dHJ1ZSwgInRpbWVvdXQgZGlzYWJsZWQgYWZ0ZXIgaW5pdGlhbGx5IHNldCIsIDUwMDAsIDIwMDAs
IDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBvdmVycmlkZXMgbG9h
ZCBhZnRlciBhIGRlbGF5IiwgNTAwMCwgMTAwMCwgMjAwMCksCisgICAgbmV3IFJlcXVlc3RUcmFj
a2VyKHRydWUsICJ0aW1lb3V0IGVuYWJsZWQgYWZ0ZXIgaW5pdGlhbGx5IGRpc2FibGVkIiwgMCwg
MjAwMCwgNTAwMCkKKyAgXSwKKworICAib3ZlcnJpZGVzZXhwaXJlcyIgOiBbCisgICAgbmV3IFJl
cXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0IHNldCB0byBleHBpcmluZyB2YWx1ZSBhZnRlciBs
b2FkIGZpcmVzIiwgNTAwMCwgNDAwMCwgMTAwMCksCisgICAgLy8gRklYTUU6IGh0dHA6Ly93ZWJr
aXQub3JnL2IvOTgxNTYgLSBMYXRlIHVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCB0aGlz
IHRlc3QgaXMgbm90IHJ1bi4KKyAgICAvLyBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVv
dXQgc2V0IHRvIGV4cGlyZWQgdmFsdWUgYmVmb3JlIGxvYWQgZmlyZXMiLCA1MDAwLCAyMDAwLCAx
MDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgc2V0IHRvIG5vbi1l
eHBpcmluZyB2YWx1ZSBhZnRlciB0aW1lb3V0IGZpcmVzIiwgMTAwMCwgMjAwMCwgNTAwMCkKKyAg
XSwKKworICAiYWJvcnRlZCIgOiBbCisgICAgbmV3IEFib3J0ZWRSZXF1ZXN0KGZhbHNlKSwKKyAg
ICBuZXcgQWJvcnRlZFJlcXVlc3QodHJ1ZSwgLTEpLAorICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0
cnVlLCA1MDAwKQorICBdLAorCisgICJhYm9ydGVkb25tYWluIiA6IFsKKyAgICBuZXcgQWJvcnRl
ZFJlcXVlc3QodHJ1ZSwgMCksCisgICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRydWUsIDEwMDApCisg
IF0sCisKKyAgInN5bmNvbm1haW4iIDogWworICAgIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRB
ZnRlck9wZW4sCisgICAgU3luY1JlcXVlc3RTZXR0aW5nVGltZW91dEJlZm9yZU9wZW4KKyAgXSwK
KworICAic3luY29ud29ya2VyIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIoZmFsc2UsICJu
byB0aW1lIG91dCBzY2hlZHVsZWQsIGxvYWQgZmlyZXMgbm9ybWFsbHkiLCAwKSwKKyAgICBuZXcg
UmVxdWVzdFRyYWNrZXIoZmFsc2UsICJsb2FkIGZpcmVzIG5vcm1hbGx5IiwgNTAwMCksCisgICAg
Ly8gRklYTUU6IGh0dHA6Ly93ZWJraXQub3JnL2IvOTgxNTYgLSBMYXRlIHVwZGF0ZXMgYXJlIG5v
dCBzdXBwb3J0ZWQgeWV0LCB0aGlzIHRlc3QgaXMgbm90IHJ1bi4KKyAgICAvLyBuZXcgUmVxdWVz
dFRyYWNrZXIoZmFsc2UsICJ0aW1lb3V0IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApLAorICBdCit9
OworCit2YXIgVGVzdFJlcXVlc3RzID0gW107CisKKy8vIFRoaXMgY29kZSBjb250cm9scyBtb3Zp
bmcgZnJvbSBvbmUgdGVzdCB0byBhbm90aGVyLgordmFyIFRlc3RDb3VudGVyID0geworICB0ZXN0
Q29tcGxldGU6IGZ1bmN0aW9uKCkgeworICAgIC8vIEFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkg
dGhlcmUgYXJlIG90aGVyIGV2ZW50cyBjb21pbmcuCisgICAgc2VsZi5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgVGVzdENvdW50ZXIubmV4dCgpOworICAgIH0sIDUwMDApOworICB9LAor
CisgIG5leHQ6IGZ1bmN0aW9uKCkgeworICAgIHZhciB0ZXN0ID0gVGVzdFJlcXVlc3RzLnNoaWZ0
KCk7CisKKyAgICBpZiAodGVzdCkgeworICAgICAgdGVzdC5zdGFydFhIUigpOworICAgIH0KKyAg
ICBlbHNlIHsKKyAgICAgIG1lc3NhZ2UoImRvbmUiKTsKKyAgICB9CisgIH0KK307CisKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChldmVudCkgeworICBpZiAoZXZl
bnQuZGF0YS50eXBlID09ICJzdGFydCIpIHsKKyAgICBUZXN0UmVxdWVzdHMgPSBUZXN0UmVxdWVz
dEdyb3Vwc1tldmVudC5kYXRhLmdyb3VwXTsKKyAgICBUZXN0Q291bnRlci5uZXh0KCk7CisgIH0K
K30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNjliZTEzNTQwZTc2MWJiODgwMjA4YTAyMWJkZmIyOTk1MzhkM2JhYS4uMGViMzZmZGRi
NGFjNTQyYzMxNjI4NWFhNjNjZDI4ZTZjMzBjMDBlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODgsNiArOTg4LDE5IEBAIHdlYmtp
dC5vcmcvYi81ODg5OCBmYXN0L2Jsb2NrL2Zsb2F0L292ZXJoYW5naW5nLXRhbGwtYmxvY2suaHRt
bCBbIEZhaWx1cmUgXQogIyBOZXcgdGVzdCBhZGRlZCB0aGF0IG5lZWRzIHBsYXRmb3JtIHNwZWNp
ZmljIHJlc3VsdHMKIHdlYmtpdC5vcmcvYi85ODQ1MiBmYXN0L3RleHQvdmVydGljYWwtcmwtcnRs
LWxpbmVicmVhay5odG1sIFsgRmFpbHVyZSBdCiAKKyMgUmVzb3VyY2VSZXF1ZXN0IG5lZWRzIHRv
IHN1cHBvcnQgc2V0VGltZW91dEludGVydmFsCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85
ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC10d2ljZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFi
b3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlk
ZXNleHBpcmVzLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2lt
cGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29y
a2VyLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRt
bCBbIEZhaWx1cmUgXQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEluc3BlY3RvciB0ZXN0cwogIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYTE4OTk1
MTFmN2Q5YjM3MmYxMjQ0NTA2MTNmZTJiMTJjOWJkNDkxLi4zZDRjZmQ5MjlmNzVhMjBlZGI5NzYy
ZWE1NDExNTU3NTM2OTU1ZGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNjA0LDYgKzYwNCwxOCBAQCBCdWcoR1RLKSBbIERlYnVnIF0gc3B1dG5pay9V
bmljb2RlL1VuaWNvZGVfMjE4L1M3LjZfQTUuM19UMS5odG1sIFsgUGFzcyBTbG93IF0KIEJ1ZyhH
VEspIFsgRGVidWcgXSBzcHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgvUzcuNl9BNS4zX1QyLmh0
bWwgWyBQYXNzIFNsb3cgXQogQnVnKEdUSykgdGFibGVzL21vemlsbGEvb3RoZXIvc2xhc2hsb2dv
Lmh0bWwgWyBQYXNzIFNsb3cgXQogCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwgWyBQYXNzIFNsb3cg
XSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykg
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
b3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRt
bCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sIFsgUGFzcyBTbG93IF0g
CitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC10d2ljZS5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJv
cnRlZC5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJl
cy5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwgWyBQYXNz
IFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbCBbIFBhc3MgU2xvdyBd
IAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgWyBQYXNzIFNsb3cgXSAKKwogIy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIHNsb3cgdGVzdHMKICMvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBlZDJiNzZkZmI0NmQxYjI2MTFjOTRhMGRhZTUzZTk5ZGNiY2I2ZDc5Li45NDBi
NjEwOGM3MTZmNTZjMmFjNjcyNTViM2RkNDdjYzhhY2IxNzcyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc4Niw2ICs3ODYsMTkgQEAgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9jYWNoZS1vdmVycmlkZS5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NjYwNgogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0ZS1mb3ItNDA0LXdpdGhvdXQtYm9keS5odG1s
CiAKKyMgUmVzb3VyY2VSZXF1ZXN0IG5lZWRzIHRvIHN1cHBvcnQgc2V0VGltZW91dEludGVydmFs
Cit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgz
OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcg
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
c2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQorCiAjID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgZWRpdGluZy9pbnNlcnRpbmcgdGVzdHMuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168717</attachid>
            <date>2012-10-15 08:37:26 -0700</date>
            <delta_ts>2012-10-16 13:13:20 -0700</delta_ts>
            <desc>Patch v2, stray test expectation removed.</desc>
            <filename>bug-74802-20121015183925.patch</filename>
            <type>text/plain</type>
            <size>61929</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZlZDYyM2ZjYmI3NmI2
ZjQ2ZTI2YjNjZDQ4YmIxODc1NjM1MDM1Mi4uZWFlZmViODFhMjZhZWRlZTM0YmQwNWI2ZTlkMDdj
YmJhNWQxYmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTE1ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBUZXN0cyBp
bXBvcnRlZCBhbmQgYWRhcHRlZCB0byBXM0MgdGVzdGhhcm5lc3MuanMgd2l0aCBwZXJtaXNzaW9u
IChQRC9CU0QgbGljZW5zZSkKKyAgICAgICAgZnJvbSBNb3ppbGxhJ3MgQWxleCBWaW5jZW50J3Mg
c2V0IG9mIFhIUjIgdGltZW91dCB0ZXN0cy4gQmlnIHRoYW5rcyEKKyAgICAgICAgQ21wLiBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MjU4MTYjYzg2CisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXR3aWNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKTogRm9yd2FyZCBpbmZvcm1hdGlvbiBhYm91
dCB0aW1lb3V0IGNhc2UuCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKTogRGlzdGluZ3Vp
c2ggdGltZW91dCBjYXNlIHdoZW4gaW5mb3JtaW5nIGNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogRGlzdGluZ3Vpc2hpbmcgdGltZW91dCBjYXNlIGZvciBl
cnJvcnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZEZhaWxlZE9yQ2FuY2VsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnRpbWVkT3V0KToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KTogSW5pdGlhbGl6aW5nIG1fdGltZW91dCB2YWx1ZSB0byB6ZXJv
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQpOiBTZXR0ZXIg
ZnVuY3Rpb24sIHBvc3NpYmx5IHJhaXNpbmcgSlMgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6IE9wZW4gY2FsbCBt
YXkgcmFpc2UgZXhjZXB0aW9uIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyB3aGVuIHRpbWVvdXQg
dmFsdWUgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBBc3NpZ25pbmcgdGltZW91dCB2YWx1ZSB0byBSZXNvdXJjZVJlcXVlc3QuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6IEhhbmRsaW5nIHRpbWVvdXQg
Y2FzZSBzZXBhcmF0ZWx5LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFRp
bWVvdXQpOiBUaW1lb3V0IGNhc2Ugc3RhdGUgdHJhbnNpc2l0aW9uIGFuZCBldmVudCBmaXJpbmcg
YXMgc3BlYydlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDogTmV3IGV2ZW50IGxp
c3RlbmVyLCBtZW1iZXIgYW5kIGNhbGxiYWNrIGZvciBoYW5kbGluZyB0aW1lb3V0LgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnRpbWVvdXQpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IE5ldyBldmVudCBsaXN0
ZW5lciBhbmQgcHJvcGVydHkgYWRkZWQuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDogQWRk
ZWQgYW4gZXhjZXB0aW9uIHZhbHVlIGZvciB0aGUgdGltZW91dCBjYXNlLgorCisKIDIwMTItMTAt
MTUgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogU2NyaXB0cyBmb3IgZHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0IGVsZW1lbnRz
IGFyZSBub3Qgc2hvd24gaW4gc291cmNlcyBwYW5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThj
MmFiMWJjZGUyOTBhMzE5MmQ1YzY5MDc0Zi4uYWM2ODkxYWY3Y2FmMGIxOWQyYTg5MjZkZTJjOGQ4
ZWZmYmU0OGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAKQEAgLTMwOCw2ICszMDgsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAg
ICAgICBSZXNvdXJjZUVycm9yIGVycm9yKCJOZXR3b3JrIFJlcXVlc3QgRmFpbGVkIiwgMCwgbV9y
ZXNvdXJjZS0+dXJsKCksICJSZXNvdXJjZSBmYWlsZWQgdG8gbG9hZCIpOwogICAgICAgICBpZiAo
bV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkKICAgICAgICAgICAgIGVycm9yLnNldElzQ2FuY2Vs
bGF0aW9uKHRydWUpOworICAgICAgICBpZiAobV9yZXNvdXJjZS0+dGltZWRPdXQoKSkKKyAgICAg
ICAgICAgIGVycm9yLnNldElzVGltZW91dCh0cnVlKTsKICAgICAgICAgZGlkRmFpbChlcnJvcik7
CiAgICAgfSBlbHNlCiAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+aWRlbnRp
ZmllcigpLCBtX3Jlc291cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDM2YjM2NzY2MDY5MzYyMGRiNjQzMTFh
ZGQ5Mjg0MzVjYjZmYjg2YTIuLmZhY2FkZDc0ZWU2NTMyYjFjNTY2NmYyOWY4NjAxOGM4ZWEwZDEw
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAt
MzEyLDcgKzMxMiwxMCBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVj
dCh0aGlzKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJvdGVj
dFJlc291cmNlKG1fcmVzb3VyY2UpOwogICAgIG1fc3RhdGUgPSBGaW5pc2hpbmc7Ci0gICAgbV9y
ZXNvdXJjZS0+ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7CisgICAgaWYgKGVycm9y
LmlzVGltZW91dCgpKQorICAgICAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNoZWRSZXNvdXJjZTo6
VGltZW91dEVycm9yKTsKKyAgICBlbHNlCisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hl
ZFJlc291cmNlOjpMb2FkRXJyb3IpOwogICAgIGlmICghbV9yZXNvdXJjZS0+aXNQcmVsb2FkZWQo
KSkKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKG1fcmVzb3VyY2UpOwogICAgIFJlc291
cmNlTG9hZGVyOjpkaWRGYWlsKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmgKaW5kZXggZWIzMWQ5ZDFmMmQ5YzRmOTQzZjVjYWFmMjhkNDE1MjFm
MTY1MDc1Yy4uZDdlNzY2ZDY4YzdlODJhZjdlNTBiNjQ3M2M1MDRiMTEzMjQ1MjU4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTkwLDYgKzkw
LDcgQEAgcHVibGljOgogICAgICAgICBDYWNoZWQsICAgICAgIC8vIHJlZ3VsYXIgY2FzZQogICAg
ICAgICBDYW5jZWxlZCwKICAgICAgICAgTG9hZEVycm9yLAorICAgICAgICBUaW1lb3V0RXJyb3Is
CiAgICAgICAgIERlY29kZUVycm9yCiAgICAgfTsKIApAQCAtMjA3LDggKzIwOCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFjY2VwdChjb25zdCBTdHJpbmcmIGFjY2VwdCkgeyBtX2FjY2VwdCA9
IGFjY2VwdDsgfQogCiAgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dHVzID09IENhbmNlbGVkOyB9Ci0gICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1
cm4gKG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBEZWNvZGVFcnJvcik7IH0K
LSAgICBib29sIGxvYWRGYWlsZWRPckNhbmNlbGVkKCkgeyByZXR1cm4gbV9zdGF0dXMgPT0gQ2Fu
Y2VsZWQgfHwgbV9zdGF0dXMgPT0gTG9hZEVycm9yOyB9CisgICAgYm9vbCBlcnJvck9jY3VycmVk
KCkgY29uc3QgeyByZXR1cm4gKG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBE
ZWNvZGVFcnJvciB8fCBtX3N0YXR1cyA9PSBUaW1lb3V0RXJyb3IpOyB9CisgICAgYm9vbCBsb2Fk
RmFpbGVkT3JDYW5jZWxlZCgpIHsgcmV0dXJuIG1fc3RhdHVzID09IENhbmNlbGVkIHx8IG1fc3Rh
dHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBUaW1lb3V0RXJyb3I7IH0KKyAgICBib29s
IHRpbWVkT3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0dXMgPT0gVGltZW91dEVycm9yOyB9CiAK
ICAgICBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZjYxNjkwODU0ZWY3M2UzOWJjMDRmZjY5
Mjk2NjUxZGFjNmE4N2IwZS4uM2FmZjQzOWEyMjY5OGM1NGY1MmY2NjRjN2EzOWRiMjcyZGEyMzg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0zLDYgKzMsNyBAQAog
ICogIENvcHlyaWdodCAoQykgMjAwNS0yMDA3IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtp
dC5vcmc+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEp1bGllbiBDaGFmZnJhaXggPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTE3NSw2ICsxNzYsNyBAQCBYTUxI
dHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxTZWN1cgogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMp
CiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxzZSkK
KyAgICAsIG1fdGltZW91dCgwKQogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAgLCBtX2NyZWF0
ZWREb2N1bWVudChmYWxzZSkKICAgICAsIG1fZXJyb3IoZmFsc2UpCkBAIC0zMjYsNiArMzI4LDE4
IEBAIEFycmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBcnJheUJ1ZmZlcihFeGNl
cHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwog
fQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IE5lZWQgdG8gdHJpZ2dlciBv
ciB1cGRhdGUgdGhlIHRpbWVvdXQgVGltZXIgaGVyZSwgaWYgbmVlZGVkLiBodHRwOi8vd2Via2l0
Lm9yZy9iLzk4MTU2CisgICAgLy8gWEhSMiBzcGVjLCA0LjcuMy4gIlRoaXMgaW1wbGllcyB0aGF0
IHRoZSB0aW1lb3V0IGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHdoaWxlIGZldGNoaW5nIGlzIGluIHBy
b2dyZXNzLiBJZiB0aGF0IG9jY3VycyBpdCB3aWxsIHN0aWxsIGJlIG1lYXN1cmVkIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvZiBmZXRjaGluZy4iCisgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpICYmICFtX2FzeW5jKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdGltZW91dCA9IHRpbWVv
dXQ7Cit9CisKKwogdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0UmVzcG9uc2VUeXBlKGNvbnN0IFN0
cmluZyYgcmVzcG9uc2VUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9zdGF0
ZSA+PSBMT0FESU5HKSB7CkBAIC00OTUsNiArNTA5LDEzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6
Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBhc3luYywg
RXhjCiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQorCisgICAgICAgIC8vIFNpbWlsYXJseSwgdGltZW91dHMgYXJlIGRp
c2FibGVkIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyBhcyB3ZWxsLgorICAgICAgICBpZiAobV90
aW1lb3V0ID4gMCkgeworICAgICAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgIlN5bmNocm9ub3VzIFhNTEh0dHBSZXF1ZXN0cyBtdXN0IG5vdCBoYXZlIGEg
dGltZW91dCB2YWx1ZSBzZXQuIik7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIG1fbWV0aG9k
ID0gdXBwZXJjYXNlS25vd25IVFRQTWV0aG9kKG1ldGhvZCk7CkBAIC03NDIsNiArNzYzLDkgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdChFeGNlcHRpb25Db2RlJiBlYykKICAg
ICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFVzZUFjY2Vzc0NvbnRyb2w7CiAg
ICAgb3B0aW9ucy5zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luKCk7CiAKKyAgICBpZiAo
bV90aW1lb3V0KQorICAgICAgICByZXF1ZXN0LnNldFRpbWVvdXRJbnRlcnZhbChtX3RpbWVvdXQg
LyAxMDAwLjApOworCiAgICAgbV9leGNlcHRpb25Db2RlID0gMDsKICAgICBtX2Vycm9yID0gZmFs
c2U7CiAKQEAgLTEwNTgsNiArMTA4MiwxMSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgaWYgKGVycm9yLmlzVGltZW91dCgpKSB7CisgICAgICAgIGRpZFRpbWVvdXQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkg
cmVwb3J0ZWQgdG8gV2ViIEluc3BlY3RvciBieSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJy
b3IuZG9tYWluKCkgPT0gZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCkKICAgICAgICAgbG9nQ29u
c29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkICIgKyBlcnJvci5mYWlsaW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24oKSk7CkBAIC0xMTgyLDYgKzEyMTEsMzQgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKICAgICB9CiB9CiAKK3Zv
aWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFRpbWVvdXQoKQoreworICAgIC8vIGludGVybmFsQWJvcnQo
KSBjYWxscyBkcm9wUHJvdGVjdGlvbigpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZl
cmVuY2UuCisgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0KHRoaXMpOworICAgIGlu
dGVybmFsQWJvcnQoKTsKKworICAgIGNsZWFyUmVzcG9uc2UoKTsgLy8gRklYTUU6IGNsZWFyUmVz
cG9uc2VCdWZmZXJzKCk/CisgICAgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBtX2Vycm9yID0gdHJ1
ZTsKKyAgICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6VElNRU9V
VF9FUlI7CisKKyAgICBpZiAoIW1fYXN5bmMpIHsKKyAgICAgICAgbV9zdGF0ZSA9IERPTkU7Cisg
ICAgICAgIG1fZXhjZXB0aW9uQ29kZSA9IFRJTUVPVVRfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY2hhbmdlU3RhdGUoRE9ORSk7CisKKyAgICBpZiAoIW1fdXBsb2FkQ29tcGxl
dGUpIHsKKyAgICAgICAgbV91cGxvYWRDb21wbGV0ZSA9IHRydWU7CisgICAgICAgIGlmIChtX3Vw
bG9hZCAmJiBtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgICAgICAgICBtX3VwbG9hZC0+ZGlz
cGF0Y2hFdmVudEFuZExvYWRFbmQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCkpOworICAgIH0KKyAgICBtX3Byb2dyZXNzRXZlbnRU
aHJvdHRsZS5kaXNwYXRjaEV2ZW50QW5kTG9hZEVuZChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudGltZW91dEV2ZW50KSk7Cit9CisKIGJvb2wgWE1MSHR0
cFJlcXVlc3Q6OmNhblN1c3BlbmQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9sb2FkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGNjNmNiYzUwYzM2MDE2NTA4OWUyNjU5
OTc1Y2QxMGQzMTEyMmVmNWQuLmY3YTQzMDYzZjUxNzdlOGU5NjMxMTk0ZDM0M2E5MzZlM2FjYzE5
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yLDYgKzIsNyBAQAogICog
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
PGFwQG55cG9wLmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY5LDYgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRUaW1lb3V0KCk7CiAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzdW1lKCk7CkBAIC0xMDQsNiArMTA2LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiBv
cHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50Lmdl
dCgpOyB9CiAgICAgQmxvYiogcmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBCbG9i
KiBvcHRpb25hbFJlc3BvbnNlQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdl
dCgpOyB9CisgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1l
b3V0OyB9CisgICAgdm9pZCBzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhjZXB0
aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZW5kRnJvbUluc3BlY3RvcihQYXNzUmVmUHRyPEZvcm1E
YXRhPiwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHVibGljOgogICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGVuZCk7CiAgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2Fkc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIocHJvZ3Jlc3MpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIodGltZW91dCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0Pjo6
cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+OjpkZXJlZjsKQEAgLTE5
MSw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJpZGU7CiAg
ICAgYm9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7CisgICAgdW5z
aWduZWQgbG9uZyBtX3RpbWVvdXQ7CiAgICAgUmVmUHRyPEJsb2I+IG1fcmVzcG9uc2VCbG9iOwog
CiAgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggMzdjNjk0ZTc1Y2IyNzNiOGFmMjRkMDQ1YWMzNTQyZWRj
MzIzODMzMi4uYjZhZTIzMmI2YjBjZGFlZjQ1NmYyNzQwNTZjOWY1ZDQxNjFmZDZiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC00Myw2ICs0Myw3IEBACiAgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkZW5kOwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9ubG9hZHN0YXJ0OwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucHJvZ3Jlc3M7
CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1lb3V0OwogCiAgICAgLy8gZXZlbnQg
aGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0
YXRlY2hhbmdlOwpAQCAtNTQsNiArNTUsOCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExP
QURJTkcgPSAzOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERPTkUgPSA0OwogCisgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3Rh
dGU7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKQEAgLTExNyw0ICsx
MjAsMyBAQAogICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAg
IHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiB9OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBjMDZjMDdjMGRlZTE4ZTQyNzViNjE2ODkz
NWRlOGJjYjVhODU1YmMzLi5iOGNiMmYzOTlkYjBhZTlmYmVmMTE1ZDE3MmZkZjJjYzVjMjA3NWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIHN0cnVjdCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5h
bWVEZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3JpcHRpb247CiB9IGV4
Y2VwdGlvbnNbXSA9IHsKICAgICB7ICJORVRXT1JLX0VSUiIsICJBIG5ldHdvcmsgZXJyb3Igb2Nj
dXJyZWQgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAotICAgIHsgIkFCT1JUX0VSUiIsICJU
aGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdCBpbiBzeW5jaHJvbm91cyByZXF1ZXN0cy4iIH0KKyAg
ICB7ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QgaW4gc3luY2hyb25v
dXMgcmVxdWVzdHMuIiB9LAorICAgIHsgIlRJTUVPVVRfRVJSIiwgIkEgdGltZW91dCBlcnJvciBv
Y2N1cmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfQogfTsKIAogYm9vbCBYTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCmluZGV4IDdjNDM3ZWYyZjg1NDg5NDkxOTNmZDAw
Mzg1OGMwZTIxODZlMmQyODkuLjk0MGUzMDEwNzJkZTQ4ZjI1MDZkYzI0MTVjMjAyZWU4OGY4N2Nm
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCkBA
IC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b25Db2RlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9m
ZnNldCArIDEwMSwKLSAgICAgICAgQUJPUlRfRVJSCisgICAgICAgIEFCT1JUX0VSUiwKKyAgICAg
ICAgVElNRU9VVF9FUlIKICAgICB9OwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZURlc2Ny
aXB0aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDc4ZmIzZTUxMzA4Nzk3NDMzMDQzNTE2NWI3YTUxYWJlZDBjNmFlOTkuLjIzYjUxZmQzMjgxZDMw
ZjcyNWQ1MGRmMGI1ZjQ4NmE3ODIxZDU0YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NiBAQAogMjAxMi0x
MC0xNSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgog
CisgICAgICAgIEFkZCB0aW1lb3V0IHN1cHBvcnQgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODAyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBYSFIy
IHRpbWVvdXQgZnVuY3Rpb25hbGl0eSwgaW1wb3J0ZWQgYW5kIGFkYXB0ZWQgdG8gVzNDIHRlc3Ro
YXJuZXNzLmpzCisgICAgICAgIHdpdGggcGVybWlzc2lvbiAoUEQvQlNEIGxpY2Vuc2UpIGZyb20g
TW96aWxsYSdzIEFsZXggVmluY2VudCdzIHNldCBvZiBYSFIyIHRpbWVvdXQgdGVzdHMuIEJpZyB0
aGFua3MhCisgICAgICAgIENtcC4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorCisgICAgICAgIFRoZSBjYXNlIG9mIGxhdGUgdXBkYXRlcyB0
byB0aGUgdGltZW91dCBwcm9wZXJ0eSwgY2hhbmdpbmcgdGhlIHRpbWVvdXQgdmFsdWUgYWZ0ZXIg
c2VuZCgpCisgICAgICAgIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCBoYW5kbGVkIHNlcGFyYXRl
bHkgaW4gYnVnIDk4MTU2LiBUZXN0cyB0aGF0IGFyZSB0ZXN0aW5nIHRoaXMgZmVhdHVyZQorICAg
ICAgICBhcmUgY29tbWVudGVkIG91dCB1bnRpbCB0aGlzIGJ1ZyBpcyB0YWNrbGVkLgorCisgICAg
ICAgIFNpbmNlIHdlIHRyeSB0byBhdm9pZCBsb25nIHJ1bm5pbmcgdGVzdHMsIHRoZSB0ZXN0cyB3
ZXJlIHNwbGl0IGludG8gcGllY2VzIGRpZ2VzdGlibGUgYnkgV1RSL0RUUgorICAgICAgICB0byBi
ZSBydW4gd2l0aCBzbWFsbGVyIHRpbWVvdXRzLiBFYWNoIGluZGl2aWR1YWwgdGVzdCBzaG91bGQg
Y29tcGxldGUgaW4gbGVzcyB0aGFuIDIwIHNlY29uZHMuCisKKyAgICAgICAgVGhlIHN1ZmZpeCBv
ZiB0aGUgdGVzdCBmaWxlbmFtZSBtYXRjaGVzIHRoZSBncm91cHMgaW4geG1saHR0cHJlcXVlc3Qt
dGltZW91dC5qcyB3aGljaCBjb250YWlucworICAgICAgICBhbGwgdGVzdHMgdGhhdCBhcmUgcnVu
LiBUaGUgcmVzdWx0IG9mIGFzc2VydGlvbnMgaXMgcmVwb3J0ZWQgYmFjayB0byB0ZXN0aGFybmVz
cy5qcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1hYm9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVy
cmlkZXNleHBpcmVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qczogQWRkZWQuIERp
c3Rpbmd1aXNoZXMgd2hpY2ggZ3JvdXAgb2YgdGVzdHMgdG8gcnVuIGJhc2VkIG9uIGZpbGVuYW1l
IHN1ZmZpeC4KKyAgICAgICAgKHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIucmV0dXJuKToKKyAg
ICAgICAgKGdyb3VwRnJvbUxvY2F0aW9uKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29u
bWFpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtdHdpY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2lj
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBs
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLXR3aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzOiBBZGRlZC4gQ29udGFpbnMgdGVzdCBjYXNlcyBmb3Ig
YWxsIGluZGl2aWR1YWwgdGVzdCBodG1sIGZpbGVzLgorICAgICAgICAobWVzc2FnZSk6IFdyYXBw
ZXIgZm9yIHBvc3RNZXNzYWdlIGluIHdvcmtlciBhbmQgZG9jdW1lbnQgY29udGV4dCBjYXNlLgor
ICAgICAgICAoaXMpLAorICAgICAgICAob2spOiBBc3NlcnRpb24gZnVuY3Rpb25zLgorICAgICAg
ICAoUmVxdWVzdFRyYWNrZXIpOiBDbGFzcyBmb3IgdmFyaWF0aW9ucyBvZiB0aGUgcmVndWxhciB0
aW1lb3V0IGNhc2UuCisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuc3RhcnRYSFIu
aGFuZGxlRXZlbnQpOgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIucHJvdG90eXBlLnN0YXJ0WEhS
KToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5nZXRNZXNzYWdlKToKKyAgICAg
ICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChBYm9y
dGVkUmVxdWVzdCk6IENsYXNzIGZvciB0ZXN0aW5nIHRpbWVvdXQgZXZlbnQgdnMuIGFib3J0IGV2
ZW50cy4KKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5zdGFydFhIUi5oYW5kbGVF
dmVudCk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUuc3RhcnRYSFIuYWJvcnRS
ZXEpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLnN0YXJ0WEhSLmVsc2UpOgor
ICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLnN0YXJ0WEhSKToKKyAgICAgICAgKEFi
b3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5ub0V2ZW50c0ZpcmVkKToKKyAgICAgICAgKEFib3J0ZWRS
ZXF1ZXN0LnByb3RvdHlwZS5nZXRNZXNzYWdlKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnBy
b3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0
QWZ0ZXJPcGVuLnN0YXJ0WEhSKSwKKyAgICAgICAgKFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRC
ZWZvcmVPcGVuLnN0YXJ0WEhSKTogVGVzdCBjbGFzc2VzIGZvciBzeW5jaHJvbm91cyBYSFIgY2Fz
ZXMuCisgICAgICAgIChUZXN0Q291bnRlci50ZXN0Q29tcGxldGUpLAorICAgICAgICAoVGVzdENv
dW50ZXIubmV4dCk6IFVzZWQgZm9yIGN5Y2xpbmcgdGhyb3VnaCB0ZXN0cy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBTa2lwcGluZyBYSFIgdGltZW91dCBj
YXNlcyBzaW5jZSBzZXRUaW1lb3V0SW50ZXJ2YWwgaXMgbm90IHN1cHBvcnRlZCBpbiBDaHJvbWl1
bSdzIEhUVFAgc3RhY2suCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
IE1hcmtpbmcgWEhSIHRpbWVvdXQgY2FzZXMgYXMgc2xvdyBpbiBvcmRlciB0byBydW4gdGhlbSB3
aXRoIGEgbG9uZ2VyIHRlc3QgdGltZW91dCB0aHJlc2hvbGQuCisgICAgICAgICogcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcgWEhSIHRpbWVvdXQgY2FzZXMgc2luY2Ugc2V0
VGltZW91dEludGVydmFsIGlzIG5vdCBzdXBwb3J0ZWQgaW4gQ2hyb21pdW0ncyBIVFRQIHN0YWNr
LgorCisyMDEyLTEwLTE1ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0Bp
bnRlbC5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgogCiAgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFNpbGVuY2luZyBhIHN0eWxlLWNoZWNr
ZXIgd2FybmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxOTQyOTA2
NTM0ZTYyYmVjY2JhNjY5OTZkMDViNGM3OTljYjYxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0Rlc2NyaXB0aW9u
CisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJl
aGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdv
cmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BB
U1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyAyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRs
ZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0
dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1s
aHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0
dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAg
IHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2Nh
dGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7
CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RY
aHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRh
dGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGlu
IGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgor
ICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJv
cnRlZG9ubWFpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNhNmE5MzgwYzk1NTEzZWE0ZGZl
NTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0
ZWRvbm1haW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhp
cyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBh
cyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBj
b250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJv
cnRlZG9ubWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwKQEAgLTAsMCArMSwyNiBAQAor
IDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1
ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
dGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJl
cXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1
ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBm
dW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBy
dW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigp
IH07CisgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAg
ICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+
CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRo
YXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5j
IGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJp
ZGVzZXhwaXJlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNhNmE5MzgwYzk1NTEzZWE0ZGZl
NTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJy
aWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKwor
VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZl
cyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2Vy
KSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
b3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKQEAgLTAs
MCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAg
ICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZy
b21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMs
ICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVj
dGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQu
PC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNzQ4NTI4N2Y5NzliZTRmN2IyMTk2YTY2ZjE3MGYzZjgyODM4ZDExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0
aW9uIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0
YSA9PSAiZG9uZSIpIHsKKyAgICAgICAgZG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gImlzIikgeworICAgICAgICB0ZXN0KGZ1bmN0aW9u
KCkgeyBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEuZ290LCBldmVudC5kYXRhLmV4cGVjdGVkLCBl
dmVudC5kYXRhLm1zZyk7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVu
dC5kYXRhLnR5cGUgPT0gIm9rIikgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRf
dHJ1ZShldmVudC5kYXRhLmJvb2wsIGV2ZW50LmRhdGEubXNnKTsgfSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdyb3VwRnJvbUxvY2F0aW9uKCkgeworICAgIHN1ZmZp
eE1hdGNoID0gL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtKC4qKVwuaHRtbC87CisgICAgZ3JvdXAg
PSBzdWZmaXhNYXRjaC5leGVjKGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpWzFdOworICAgIGdyb3Vw
ID0gZ3JvdXAucmVwbGFjZSgid29ya2VyLSIsICIiKTsKKyAgICByZXR1cm4gZ3JvdXA7Cit9CisK
Ky8vIFNldHRpbmcgdXAgdGVzdGhhcm5lc3MuanMKK3NldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1
ZSwgdGltZW91dDogMyAqIDYwICogMTAwMCB9KTsKKworLy8gQWJvcnQgdGVzdCBleGVjdXRpb24g
aWYgYW4gaW5kaXZpZHVhbCB0ZXN0IGNhc2UgZmFpbHMuCithZGRfcmVzdWx0X2NhbGxiYWNrKGZ1
bmN0aW9uICh0KSB7CisgICAgaWYgKHQuc3RhdHVzID09IHQuRkFJTCkKKyAgICAgICAgZG9uZSgp
OworfSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MDdiNzIwMjQ1MGVk
ODA2MDU1NjgzNGI5NWY0MGM3MTQ2OWQxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVzY3JpcHRpb24KKworVGhp
cyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBh
cyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBj
b250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRl
c3RzIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNTczMDEyZjRmM2FmODYwZGQxODNhN2ZlZWY0
ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sCkBA
IC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBU
ZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9y
Zy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7Cisg
ICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3Jv
dXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRl
c3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBl
eHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250
ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXN5bmNvbm1haW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTUzZThhOTJjMDc3YTcy
NTZiNDU3OGM5YjgxMzE2MWQ4OTU4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1z
eW5jb25tYWluLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTog
U3luY2hyb25vdXMgWE1MSHR0cFJlcXVlc3RzIG11c3Qgbm90IGhhdmUgYSB0aW1lb3V0IHZhbHVl
IHNldC4KK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9j
dW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNv
bm1haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZj
ZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCkBA
IC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBU
ZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9y
Zy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7Cisg
ICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3Jv
dXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRl
c3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBl
eHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250
ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10
d2ljZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQwN2I3MjAyNDUwZWQ4MDYwNTU2ODM0Yjk1
ZjQwYzcxNDY5ZDE2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0
ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4g
YXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQ
QVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbApAQCAtMCwwICsxLDI2IEBACisg
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVl
c3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0
ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVx
dWVzdC10aW1lb3V0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVl
c3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1
bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1
blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkg
fTsKKyAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAg
ICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4K
KyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhh
dCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMg
Y2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFi
b3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyN2I0NTI4M2MxYTU2ODg1N2UxMjUwOGFi
MDg0MWJlMTIxMTU1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJv
cnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBl
eHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFBy
b3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
IGluIFdvcmtlciAxIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2Vy
IDIgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1hYm9ydGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEzNDcyMjExMmJhODFhYjg0YzdmMWM1N2Qw
MzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9y
dGVkLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0
IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIg
Lz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4K
KyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdv
cmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKwor
ICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdy
b3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5U
ZXN0cyk7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVj
dGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVy
cmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNl
eHBpcmVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTYxMTcxNDk1NDhkZWY2MjkzOTUwYzUz
YmIwZmY4Y2UyYTA3OGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92
ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24K
KworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVo
YXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIGluIFdvcmtlciAxIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
b3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGly
ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNi
OTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGly
ZXMuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQg
UHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAv
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAg
ICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29y
a2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisg
ICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3Jv
dXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRl
c3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
dGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2
YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0
ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZTUyOTdlZWU3OWJjZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhl
IFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2Vy
IGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2Vy
IAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhhMzQ3MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwKQEAgLTAs
MCArMSwyNyBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
IGluIFdvcmtlcjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3
LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRl
c3RYaHIoKSB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJl
cXVlc3QtdGltZW91dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFy
IHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9u
KCkgfTsKKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAg
IH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+Cisg
ICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQg
dGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29y
a2VyIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTU2MTE3MTQ5NTQ4ZGVmNjI5Mzk1MGM1M2JiMGZmOGNlMmEwNzhhYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0
IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdv
cmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdv
cmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEzNDcyMjExMmJhODFh
Yjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0
aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0
LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVz
dGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVl
c3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHZh
ciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7CisgICAg
ICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxs
YmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0
YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgor
ICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5
IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAgPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2lj
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1Mjk3ZWVlNzliY2RhNjU5ZWI5ZmFjOGQ5YzFj
ZTc0YmQyYzRjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFs
aWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVk
IGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkg
VGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29y
a2VyIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItdHdpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAz
NjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNl
Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFBy
b3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAg
IGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtl
cigieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAg
ICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3Vw
RnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0
cyk7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFs
aWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVk
IGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzU3M2YyMDQyYjU2MjA4MGEzZmZkNjQ2MzRhZjdiZTBlZmFmNmMw
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzCkBAIC0wLDAgKzEsMzYyIEBACisv
KiBUZXN0IGltcG9ydGVkIGZyb20gQWxleCBWaW5jZW50J3MgWEhSMiB0aW1lb3V0IHRlc3RzLCB3
cml0dGVuIGZvciBNb3ppbGxhLgorICAgaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3ppbGxhLWNl
bnRyYWwvZmlsZS90aXAvY29udGVudC9iYXNlL3Rlc3QvCisgICBSZWxlYXNlZCBpbnRvIHRoZSBw
dWJsaWMgZG9tYWluLCBhY2NvcmRpbmcgdG8KKyAgIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5v
cmcvc2hvd19idWcuY2dpP2lkPTUyNTgxNiNjODYKKyovCisKKy8qIE5vdGVzOgorICAgLSBBbGwg
dGltZXMgYXJlIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgor
ICAgLSBUZXN0IGhhcm5lc3MgY29kZSBpcyBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4KKyAgIC0g
V2UgZ2VuZXJhdGUgb25seSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUsIHRvIGF2b2lkIG92ZXJsb2Fk
aW5nIHRoZSBIVFRQCisgICByZXF1ZXN0IGhhbmRsZXJzLgorICovCisKKy8qCisgKiBUaGlzIHNo
b3VsZCBwb2ludCB0byBhIHJlc291cmNlIHRoYXQgcmVzcG9uZHMgYWZ0ZXIgYSBkZWxheSBvZiAz
IHNlY29uZHMuCisgKi8KK3ZhciBTVEFMTEVEX1JFUVVFU1RfVVJMID0gIi9yZXNvdXJjZXMvbG9h
ZC1hbmQtc3RhbGwuY2dpP25hbWU9Li4vLi4vLi4vaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMmc3RhbGxGb3I9MyZzdGFsbEF0PTAmbWlt
ZVR5cGU9dGV4dC9wbGFpbiI7CisKK3ZhciBpbldvcmtlciA9IGZhbHNlOwordHJ5IHsKKyAgaW5X
b3JrZXIgPSAhKHNlbGYgaW5zdGFuY2VvZiBXaW5kb3cpOworfSBjYXRjaCAoZSkgeworICBpbldv
cmtlciA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG1lc3NhZ2Uob2JqKSB7CisgIGlmIChpbldvcmtl
cikKKyAgICBzZWxmLnBvc3RNZXNzYWdlKG9iaik7CisgIGVsc2UKKyAgICBzZWxmLnBvc3RNZXNz
YWdlKG9iaiwgIioiKTsKK30KKworZnVuY3Rpb24gaXMoZ290LCBleHBlY3RlZCwgbXNnKSB7Cisg
IHZhciBvYmogPSB7fTsKKyAgb2JqLnR5cGUgPSAiaXMiOworICBvYmouZ290ID0gZ290OworICBv
YmouZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgb2JqLm1zZyA9IG1zZzsKKworICBtZXNzYWdlKG9i
aik7Cit9CisKK2Z1bmN0aW9uIG9rKGJvb2wsIG1zZykgeworICB2YXIgb2JqID0ge307CisgIG9i
ai50eXBlID0gIm9rIjsKKyAgb2JqLmJvb2wgPSBib29sOworICBvYmoubXNnID0gbXNnOworCisg
IG1lc3NhZ2Uob2JqKTsKK30KKworLyoqCisgKiBHZW5lcmF0ZSBhbmQgdHJhY2sgcmVzdWx0cyBm
cm9tIGEgWE1MSHR0cFJlcXVlc3Qgd2l0aCByZWdhcmRzIHRvIHRpbWVvdXRzLgorICoKKyAqIEBw
YXJhbSB7U3RyaW5nfSBpZCAgICAgICAgIFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICogQHBhcmFt
IHtOdW1iZXJ9IHRpbWVMaW1pdCAgVGhlIGluaXRpYWwgc2V0dGluZyBmb3IgdGhlIHJlcXVlc3Qg
dGltZW91dC4KKyAqIEBwYXJhbSB7TnVtYmVyfSByZXNldEFmdGVyIChPcHRpb25hbCkgVGhlIHRp
bWUgYWZ0ZXIgc2VuZGluZyB0aGUgcmVxdWVzdCwgdG8KKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc2V0IHRoZSB0aW1lb3V0LgorICogQHBhcmFtIHtOdW1iZXJ9IHJlc2V0VG8gICAg
KE9wdGlvbmFsKSBUaGUgZGVsYXkgdG8gcmVzZXQgdGhlIHRpbWVvdXQgdG8uCisgKgorICogQG5v
dGUgVGhlIGFjdHVhbCB0ZXN0aW5nIHRha2VzIHBsYWNlIGluIGhhbmRsZUV2ZW50KGV2ZW50KS4K
KyAqIFRoZSByZXF1ZXN0cyBhcmUgZ2VuZXJhdGVkIGluIHN0YXJ0WEhSKCkuCisgKgorICogQG5v
dGUgSWYgcmVzZXRBZnRlciBhbmQgcmVzZXRUbyBhcmUgb21pdHRlZCwgb25seSB0aGUgaW5pdGlh
bCB0aW1lb3V0IHNldHRpbmcKKyAqIGFwcGxpZXMuCisgKgorICogQGNvbnN0cnVjdG9yCisgKiBA
aW1wbGVtZW50cyBET01FdmVudExpc3RlbmVyCisgKi8KK2Z1bmN0aW9uIFJlcXVlc3RUcmFja2Vy
KGFzeW5jLCBpZCwgdGltZUxpbWl0IC8qWywgcmVzZXRBZnRlciwgcmVzZXRUb10qLykgeworICB0
aGlzLmFzeW5jID0gYXN5bmM7CisgIHRoaXMuaWQgPSBpZDsKKyAgdGhpcy50aW1lTGltaXQgPSB0
aW1lTGltaXQ7CisKKyAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAzKSB7CisgICAgdGhpcy5tdXN0
UmVzZXQgID0gdHJ1ZTsKKyAgICB0aGlzLnJlc2V0QWZ0ZXIgPSBhcmd1bWVudHNbM107CisgICAg
dGhpcy5yZXNldFRvICAgID0gYXJndW1lbnRzWzRdOworICB9CisKKyAgdGhpcy5oYXNGaXJlZCA9
IGZhbHNlOworfQorUmVxdWVzdFRyYWNrZXIucHJvdG90eXBlID0geworICAvKioKKyAgICogU3Rh
cnQgdGhlIFhNTEh0dHBSZXF1ZXN0IQorICAgKi8KKyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgewor
ICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB0aGlzLnJlcXVlc3QgPSBy
ZXE7CisgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxMRURfUkVRVUVTVF9VUkwsIHRoaXMuYXN5bmMp
OworICAgIHZhciBtZSA9IHRoaXM7CisgICAgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZSkgeyByZXR1
cm4gbWUuaGFuZGxlRXZlbnQoZSk7IH07CisgICAgcmVxLm9uZXJyb3IgPSBoYW5kbGVFdmVudDsK
KyAgICByZXEub25sb2FkID0gaGFuZGxlRXZlbnQ7CisgICAgcmVxLm9uYWJvcnQgPSBoYW5kbGVF
dmVudDsKKyAgICByZXEub250aW1lb3V0ID0gaGFuZGxlRXZlbnQ7CisKKyAgICByZXEudGltZW91
dCA9IHRoaXMudGltZUxpbWl0OworICAgIAorICAgIGlmICh0aGlzLm11c3RSZXNldCkgeworICAg
ICAgdmFyIHJlc2V0VG8gPSB0aGlzLnJlc2V0VG87CisgICAgICBzZWxmLnNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJlcS50aW1lb3V0ID0gcmVzZXRUbzsKKyAgICAgIH0sIHRoaXMu
cmVzZXRBZnRlcik7CisgICAgfQorCisgICAgcmVxLnNlbmQobnVsbCk7CisgIH0sCisKKyAgLyoq
CisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRlc3QuCisgICAqCisgICAqIEBy
ZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICAgKi8KKyAgZ2V0TWVzc2Fn
ZTogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJ2ID0gdGhpcy5pZCArICIsICI7CisgICAgaWYgKHRo
aXMubXVzdFJlc2V0KSB7CisgICAgICBydiArPSAib3JpZ2luYWwgdGltZW91dCBhdCAiICsgdGhp
cy50aW1lTGltaXQgKyAiLCAiOworICAgICAgcnYgKz0gInJlc2V0IGF0ICIgKyB0aGlzLnJlc2V0
QWZ0ZXIgKyAiIHRvICIgKyB0aGlzLnJlc2V0VG87CisgICAgfQorICAgIGVsc2UgeworICAgICAg
cnYgKz0gInRpbWVvdXQgc2NoZWR1bGVkIGF0ICIgKyB0aGlzLnRpbWVMaW1pdDsKKyAgICB9Cisg
ICAgcmV0dXJuIHJ2OworICB9LAorCisgIC8qKgorICAgKiBDaGVjayB0aGUgZXZlbnQgcmVjZWl2
ZWQsIGFuZCBpZiBpdCdzIHRoZSByaWdodCAoYW5kIG9ubHkpIG9uZSB3ZSBnZXQuCisgICAqCisg
ICAqIEBwYXJhbSB7RE9NUHJvZ3Jlc3NFdmVudH0gZXZ0IEFuIGV2ZW50IG9mIHR5cGUgImxvYWQi
IG9yICJ0aW1lb3V0Ii4KKyAgICovCisgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldnQpIHsKKyAg
ICBpZiAodGhpcy5oYXNGaXJlZCkgeworICAgICAgb2soZmFsc2UsICJPbmx5IG9uZSBldmVudCBz
aG91bGQgZmlyZTogIiArIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIHJldHVybjsKKyAgICB9
CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7CisKKyAgICB2YXIgdHlwZSA9IGV2dC50eXBlLCBl
eHBlY3RlZFR5cGU7CisgICAgLy8gVGhlIFhIUiByZXNwb25kcyBhZnRlciAzMDAwIG1pbGxpc2Vj
b25kcyB3aXRoIGEgbG9hZCBldmVudC4KKyAgICB2YXIgdGltZUxpbWl0ID0gdGhpcy5tdXN0UmVz
ZXQgJiYgKHRoaXMucmVzZXRBZnRlciA8IE1hdGgubWluKDMwMDAsIHRoaXMudGltZUxpbWl0KSkg
PworICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VG8gOgorICAgICAgICAgICAgICAgICAg
ICB0aGlzLnRpbWVMaW1pdDsKKyAgICBpZiAoKHRpbWVMaW1pdCA9PSAwKSB8fCAodGltZUxpbWl0
ID49IDMwMDApKSB7CisgICAgICBleHBlY3RlZFR5cGUgPSAibG9hZCI7CisgICAgfQorICAgIGVs
c2UgeworICAgICAgZXhwZWN0ZWRUeXBlID0gInRpbWVvdXQiOworICAgIH0KKyAgICBpcyh0eXBl
LCBleHBlY3RlZFR5cGUsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICBUZXN0Q291bnRlci50ZXN0
Q29tcGxldGUoKTsKKyAgfQorfTsKKworLyoqCisgKiBHZW5lcmF0ZSBhbmQgdHJhY2sgWE1MSHR0
cFJlcXVlc3RzIHdoaWNoIHdpbGwgaGF2ZSBhYm9ydCgpIGNhbGxlZCBvbi4KKyAqCisgKiBAcGFy
YW0gc2hvdWxkQWJvcnQge0Jvb2xlYW59IFRydWUgaWYgd2Ugc2hvdWxkIGNhbGwgYWJvcnQgYXQg
YWxsLgorICogQHBhcmFtIGFib3J0RGVsYXkgIHtOdW1iZXJ9ICBUaGUgdGltZSBpbiBtcyB0byB3
YWl0IGJlZm9yZSBjYWxsaW5nIGFib3J0KCkuCisgKi8KK2Z1bmN0aW9uIEFib3J0ZWRSZXF1ZXN0
KHNob3VsZEFib3J0LCBhYm9ydERlbGF5KSB7CisgIHRoaXMuc2hvdWxkQWJvcnQgPSBzaG91bGRB
Ym9ydDsKKyAgdGhpcy5hYm9ydERlbGF5ICA9IGFib3J0RGVsYXk7CisgIHRoaXMuaGFzRmlyZWQg
ICAgPSBmYWxzZTsKK30KK0Fib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZSA9IHsKKyAgLyoqCisgICAq
IFN0YXJ0IHRoZSBYTUxIdHRwUmVxdWVzdCEKKyAgICovCisgIHN0YXJ0WEhSOiBmdW5jdGlvbigp
IHsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgdGhpcy5yZXF1ZXN0
ID0gcmVxOworICAgIHJlcS5vcGVuKCJHRVQiLCBTVEFMTEVEX1JFUVVFU1RfVVJMKTsKKyAgICB2
YXIgbWUgPSB0aGlzOworICAgIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsgcmV0dXJuIG1lLmhh
bmRsZUV2ZW50KGUpOyB9OworICAgIHJlcS5vbmVycm9yID0gaGFuZGxlRXZlbnQ7CisgICAgcmVx
Lm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmFib3J0ID0gaGFuZGxlRXZlbnQ7Cisg
ICAgcmVxLm9udGltZW91dCA9IGhhbmRsZUV2ZW50OworCisgICAgcmVxLnRpbWVvdXQgPSAyMDAw
OworICAgIHZhciBfdGhpcyA9IHRoaXM7CisKKyAgICBmdW5jdGlvbiBhYm9ydFJlcSgpIHsKKyAg
ICAgIHJlcS5hYm9ydCgpOworICAgIH0KKworICAgIGlmICghdGhpcy5zaG91bGRBYm9ydCkgewor
ICAgICAgc2VsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIF90aGlzLm5vRXZlbnRzRmlyZWQoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoZSkg
eworICAgICAgICAgIG9rKGZhbHNlLCAiVW5leHBlY3RlZCBlcnJvcjogIiArIGUpOworICAgICAg
ICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICAgICAgICB9CisgICAgICB9LCA1MDAw
KTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAvLyBBYm9ydCBldmVudHMgY2FuIG9ubHkgYmUg
dHJpZ2dlcmVkIG9uIHNlbnQgcmVxdWVzdHMuCisgICAgICByZXEuc2VuZCgpOworICAgICAgaWYg
KHRoaXMuYWJvcnREZWxheSA9PSAtMSkgeworICAgICAgICBhYm9ydFJlcSgpOworICAgICAgfQor
ICAgICAgZWxzZSB7CisgICAgICAgIHNlbGYuc2V0VGltZW91dChhYm9ydFJlcSwgdGhpcy5hYm9y
dERlbGF5KTsKKyAgICAgIH0KKyAgICB9CisgIH0sCisKKyAgLyoqCisgICAqIEVuc3VyZSB0aGF0
IG5vIGV2ZW50cyBmaXJlZCBhdCBhbGwsIGVzcGVjaWFsbHkgbm90IG91ciB0aW1lb3V0IGV2ZW50
LgorICAgKi8KKyAgbm9FdmVudHNGaXJlZDogZnVuY3Rpb24oKSB7CisgICAgb2soIXRoaXMuaGFz
RmlyZWQsICJObyBldmVudHMgc2hvdWxkIGZpcmUgZm9yIGFuIHVuc2VudCwgdW5hYm9ydGVkIHJl
cXVlc3QiKTsKKyAgICAvLyBXZSdyZSBkb25lOyBpZiB0aW1lb3V0IGhhc24ndCBmaXJlZCBieSBu
b3csIGl0IG5ldmVyIHdpbGwuCisgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7CisgIH0s
CisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRlc3QuCisgICAq
CisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICAgKi8KKyAg
Z2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuICJ0aW1lIHRvIGFib3J0IGlzICIg
KyB0aGlzLmFib3J0RGVsYXkgKyAiLCB0aW1lb3V0IHNldCBhdCAyMDAwIjsKKyAgfSwKKworICAv
KioKKyAgICogQ2hlY2sgdGhlIGV2ZW50IHJlY2VpdmVkLCBhbmQgaWYgaXQncyB0aGUgcmlnaHQg
KGFuZCBvbmx5KSBvbmUgd2UgZ2V0LgorICAgKgorICAgKiBXZWJLaXQgZmlyZXMgYWJvcnQgZXZl
bnRzIGV2ZW4gZm9yIERPTkUgYW5kIFVOU0VOVCBzdGF0ZXMsIHdoaWNoIGlzIAorICAgKiBkaXNj
dXNzZWQgaW4gaHR0cDovL3dlYmtpdC5vcmcvYi85ODQwNAorICAgKiBUaGF0J3Mgd2h5IHdlIGNo
b3NlIHRvIGFjY2VwdCBzZWNvbmRhcnkgImFib3J0IiBldmVudHMgaW4gdGhpcyB0ZXN0LgorICAg
KgorICAgKiBAcGFyYW0ge0RPTVByb2dyZXNzRXZlbnR9IGV2dCBBbiBldmVudCBvZiB0eXBlICJs
b2FkIiBvciAidGltZW91dCIuCisgICAqLworICBoYW5kbGVFdmVudDogZnVuY3Rpb24oZXZ0KSB7
CisgICAgaWYgKHRoaXMuaGFzRmlyZWQgJiYgZXZ0LnR5cGUgIT0gImFib3J0IikgeworICAgICAg
b2soZmFsc2UsICJPbmx5IGFib3J0IGV2ZW50IHNob3VsZCBmaXJlOiAiICsgdGhpcy5nZXRNZXNz
YWdlKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBleHBlY3RlZEV2ZW50ID0g
KHRoaXMuYWJvcnREZWxheSA+PSAyMDAwICYmICF0aGlzLmhhc0ZpcmVkKSA/ICJ0aW1lb3V0IiA6
ICJhYm9ydCI7CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7CisgICAgaXMoZXZ0LnR5cGUsIGV4
cGVjdGVkRXZlbnQsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICBUZXN0Q291bnRlci50ZXN0Q29t
cGxldGUoKTsKKyAgfQorfTsKKwordmFyIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRBZnRlck9w
ZW4gPSB7CisgIHN0YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcGFzcyA9IGZhbHNlOwor
ICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwg
U1RBTExFRF9SRVFVRVNUX1VSTCwgZmFsc2UpOworICAgIHRyeSB7CisgICAgICByZXEudGltZW91
dCA9IDEwMDA7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICBwYXNzID0gdHJ1ZTsKKyAg
ICB9CisgICAgb2socGFzcywgIlN5bmNocm9ub3VzIFhIUiBtdXN0IG5vdCBhbGxvdyBhIHRpbWVv
dXQgdG8gYmUgc2V0Iik7CisgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7CisgIH0KK307
CisKK3ZhciBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QmVmb3JlT3BlbiA9IHsKKyAgc3RhcnRY
SFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciBwYXNzID0gZmFsc2U7CisgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS50aW1lb3V0ID0gMTAwMDsKKyAgICB0cnkgewor
ICAgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxMRURfUkVRVUVTVF9VUkwsIGZhbHNlKTsKKyAgICB9
CisgICAgY2F0Y2ggKGUpIHsKKyAgICAgIHBhc3MgPSB0cnVlOworICAgIH0KKyAgICBvayhwYXNz
LCAiU3luY2hyb25vdXMgWEhSIG11c3Qgbm90IGFsbG93IGEgdGltZW91dCB0byBiZSBzZXQiKTsK
KyAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFyIFRlc3RSZXF1
ZXN0R3JvdXBzID0geworICAic2ltcGxlIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1
ZSwgIm5vIHRpbWUgb3V0IHNjaGVkdWxlZCwgbG9hZCBmaXJlcyBub3JtYWxseSIsIDApLAorICAg
IG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSIsIDUwMDApLAor
ICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBoaXQgYmVmb3JlIGxvYWQiLCAy
MDAwKQorICBdLAorCisgICJ0d2ljZSIgOiBbCisgICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVl
LCAibG9hZCBmaXJlcyBub3JtYWxseSB3aXRoIG5vIHRpbWVvdXQgc2V0LCB0d2ljZSIsIDAsIDIw
MDAsIDApLAorICAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgImxvYWQgZmlyZXMgbm9ybWFs
bHkgd2l0aCBzYW1lIHRpbWVvdXQgc2V0IHR3aWNlIiwgNTAwMCwgMjAwMCwgNTAwMCksCisgICAg
IG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBmaXJlcyBub3JtYWxseSB3aXRoIHNh
bWUgdGltZW91dCBzZXQgdHdpY2UiLCAyMDAwLCAxMDAwLCAyMDAwKQorICBdLAorCisgIC8vIEZJ
WE1FOiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1cGRhdGVzIGFyZSBub3Qgc3Vw
cG9ydGVkIHlldCwgdGhlc2UgdGVzdHMgYXJlIG5vdCBydW4uCisgICJvdmVycmlkZXMiIDogWwor
ICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBkaXNhYmxlZCBhZnRlciBpbml0
aWFsbHkgc2V0IiwgNTAwMCwgMjAwMCwgMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUs
ICJ0aW1lb3V0IG92ZXJyaWRlcyBsb2FkIGFmdGVyIGEgZGVsYXkiLCA1MDAwLCAxMDAwLCAyMDAw
KSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgZW5hYmxlZCBhZnRlciBp
bml0aWFsbHkgZGlzYWJsZWQiLCAwLCAyMDAwLCA1MDAwKQorICBdLAorCisgICJvdmVycmlkZXNl
eHBpcmVzIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgc2V0IHRv
IGV4cGlyaW5nIHZhbHVlIGFmdGVyIGxvYWQgZmlyZXMiLCA1MDAwLCA0MDAwLCAxMDAwKSwKKyAg
ICAvLyBGSVhNRTogaHR0cDovL3dlYmtpdC5vcmcvYi85ODE1NiAtIExhdGUgdXBkYXRlcyBhcmUg
bm90IHN1cHBvcnRlZCB5ZXQsIHRoaXMgdGVzdCBpcyBub3QgcnVuLgorICAgIC8vIG5ldyBSZXF1
ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gZXhwaXJlZCB2YWx1ZSBiZWZvcmUgbG9h
ZCBmaXJlcyIsIDUwMDAsIDIwMDAsIDEwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVl
LCAidGltZW91dCBzZXQgdG8gbm9uLWV4cGlyaW5nIHZhbHVlIGFmdGVyIHRpbWVvdXQgZmlyZXMi
LCAxMDAwLCAyMDAwLCA1MDAwKQorICBdLAorCisgICJhYm9ydGVkIiA6IFsKKyAgICBuZXcgQWJv
cnRlZFJlcXVlc3QoZmFsc2UpLAorICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAtMSksCisg
ICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRydWUsIDUwMDApCisgIF0sCisKKyAgImFib3J0ZWRvbm1h
aW4iIDogWworICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAwKSwKKyAgICBuZXcgQWJvcnRl
ZFJlcXVlc3QodHJ1ZSwgMTAwMCkKKyAgXSwKKworICAic3luY29ubWFpbiIgOiBbCisgICAgU3lu
Y1JlcXVlc3RTZXR0aW5nVGltZW91dEFmdGVyT3BlbiwKKyAgICBTeW5jUmVxdWVzdFNldHRpbmdU
aW1lb3V0QmVmb3JlT3BlbgorICBdLAorCisgICJzeW5jb253b3JrZXIiIDogWworICAgIG5ldyBS
ZXF1ZXN0VHJhY2tlcihmYWxzZSwgIm5vIHRpbWUgb3V0IHNjaGVkdWxlZCwgbG9hZCBmaXJlcyBu
b3JtYWxseSIsIDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwgImxvYWQgZmlyZXMg
bm9ybWFsbHkiLCA1MDAwKSwKKyAgICAvLyBGSVhNRTogaHR0cDovL3dlYmtpdC5vcmcvYi85ODE1
NiAtIExhdGUgdXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHRoaXMgdGVzdCBpcyBub3Qg
cnVuLgorICAgIC8vIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwgInRpbWVvdXQgaGl0IGJlZm9y
ZSBsb2FkIiwgMjAwMCksCisgIF0KK307CisKK3ZhciBUZXN0UmVxdWVzdHMgPSBbXTsKKworLy8g
VGhpcyBjb2RlIGNvbnRyb2xzIG1vdmluZyBmcm9tIG9uZSB0ZXN0IHRvIGFub3RoZXIuCit2YXIg
VGVzdENvdW50ZXIgPSB7CisgIHRlc3RDb21wbGV0ZTogZnVuY3Rpb24oKSB7CisgICAgLy8gQWxs
b3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGVyZSBhcmUgb3RoZXIgZXZlbnRzIGNvbWluZy4KKyAg
ICBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICBUZXN0Q291bnRlci5uZXh0KCk7
CisgICAgfSwgNTAwMCk7CisgIH0sCisKKyAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgdmFyIHRl
c3QgPSBUZXN0UmVxdWVzdHMuc2hpZnQoKTsKKworICAgIGlmICh0ZXN0KSB7CisgICAgICB0ZXN0
LnN0YXJ0WEhSKCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgbWVzc2FnZSgiZG9uZSIpOwor
ICAgIH0KKyAgfQorfTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rp
b24gKGV2ZW50KSB7CisgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gInN0YXJ0IikgeworICAgIFRl
c3RSZXF1ZXN0cyA9IFRlc3RSZXF1ZXN0R3JvdXBzW2V2ZW50LmRhdGEuZ3JvdXBdOworICAgIFRl
c3RDb3VudGVyLm5leHQoKTsKKyAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWJlMTM1NDBlNzYxYmI4ODAyMDhhMDIxYmRm
YjI5OTUzOGQzYmFhLi4wZWIzNmZkZGI0YWM1NDJjMzE2Mjg1YWE2M2NkMjhlNmMzMGMwMGViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTk4OCw2ICs5ODgsMTkgQEAgd2Via2l0Lm9yZy9iLzU4ODk4IGZhc3QvYmxvY2svZmxvYXQvb3Zl
cmhhbmdpbmctdGFsbC1ibG9jay5odG1sIFsgRmFpbHVyZSBdCiAjIE5ldyB0ZXN0IGFkZGVkIHRo
YXQgbmVlZHMgcGxhdGZvcm0gc3BlY2lmaWMgcmVzdWx0cwogd2Via2l0Lm9yZy9iLzk4NDUyIGZh
c3QvdGV4dC92ZXJ0aWNhbC1ybC1ydGwtbGluZWJyZWFrLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBS
ZXNvdXJjZVJlcXVlc3QgbmVlZHMgdG8gc3VwcG9ydCBzZXRUaW1lb3V0SW50ZXJ2YWwKK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5
NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1hYm9ydGVkb25tYWluLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVy
cmlkZXNleHBpcmVzLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0
Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
Lzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
Lzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIFsgRmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgSW5z
cGVjdG9yIHRlc3RzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGZhMTg5OTUxMWY3ZDliMzcyZjEyNDQ1MDYxM2ZlMmIxMmM5YmQ0OTEu
LjNkNGNmZDkyOWY3NWEyMGVkYjk3NjJlYTU0MTE1NTc1MzY5NTVkYmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02MDQsNiArNjA0LDE4IEBAIEJ1ZyhH
VEspIFsgRGVidWcgXSBzcHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgvUzcuNl9BNS4zX1QxLmh0
bWwgWyBQYXNzIFNsb3cgXQogQnVnKEdUSykgWyBEZWJ1ZyBdIHNwdXRuaWsvVW5pY29kZS9Vbmlj
b2RlXzIxOC9TNy42X0E1LjNfVDIuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSB0YWJsZXMv
bW96aWxsYS9vdGhlci9zbGFzaGxvZ28uaHRtbCBbIFBhc3MgU2xvdyBdCiAKK0J1ZyhHVEspIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFi
b3J0ZWQuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIFsg
UGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBQYXNzIFNsb3cg
XSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25t
YWluLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwgWyBQYXNzIFNsb3cg
XSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEsp
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndv
cmtlci5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCBbIFBh
c3MgU2xvdyBdIAorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2Yg
c2xvdyB0ZXN0cwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVkMmI3NmRmYjQ2ZDFiMjYxMWM5NGEw
ZGFlNTNlOTlkY2JjYjZkNzkuLjk0MGI2MTA4YzcxNmY1NmMyYWM2NzI1NWIzZGQ0N2NjOGFjYjE3
NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzg2LDYg
Kzc4NiwxOSBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NhY2hlLW92ZXJyaWRlLmh0bWwK
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NjA2CiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWdldC1yZWFkeXN0YXRlLWZv
ci00MDQtd2l0aG91dC1ib2R5Lmh0bWwKIAorIyBSZXNvdXJjZVJlcXVlc3QgbmVlZHMgdG8gc3Vw
cG9ydCBzZXRUaW1lb3V0SW50ZXJ2YWwKK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRl
ZC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4
cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIFsg
RmFpbHVyZSBdCisKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgICAgICAgRmFpbGluZyBlZGl0
aW5nL2luc2VydGluZyB0ZXN0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169009</attachid>
            <date>2012-10-16 13:13:29 -0700</date>
            <delta_ts>2012-10-22 02:24:31 -0700</delta_ts>
            <desc>Patch v3, review comments addressed.</desc>
            <filename>bug-74802-20121016231215.patch</filename>
            <type>text/plain</type>
            <size>62180</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwMTU5ZTg1YjE1Nzg1
M2UxMTg0NDUxNzA5MjRhNTA1ZmNlZjhmMy4uYWI2ZTllZjcxOTc2NGYzZmZiZTY5ZGFlOWIxZDEw
YWQ2NzBhMzdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTE1ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBUZXN0cyBp
bXBvcnRlZCBhbmQgYWRhcHRlZCB0byBXM0MgdGVzdGhhcm5lc3MuanMgd2l0aCBwZXJtaXNzaW9u
IChQRC9CU0QgbGljZW5zZSkKKyAgICAgICAgZnJvbSBNb3ppbGxhJ3MgQWxleCBWaW5jZW50J3Mg
c2V0IG9mIFhIUjIgdGltZW91dCB0ZXN0cy4gQmlnIHRoYW5rcyEKKyAgICAgICAgQ21wLiBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MjU4MTYjYzg2CisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXR3aWNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKTogRm9yd2FyZCBpbmZvcm1hdGlvbiBhYm91
dCB0aW1lb3V0IGNhc2UuCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKTogRGlzdGluZ3Vp
c2ggdGltZW91dCBjYXNlIHdoZW4gaW5mb3JtaW5nIGNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogRGlzdGluZ3Vpc2hpbmcgdGltZW91dCBjYXNlIGZvciBl
cnJvcnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZEZhaWxlZE9yQ2FuY2VsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnRpbWVkT3V0KToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KTogSW5pdGlhbGl6aW5nIG1fdGltZW91dCB2YWx1ZSB0byB6ZXJv
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQpOiBTZXR0ZXIg
ZnVuY3Rpb24sIHBvc3NpYmx5IHJhaXNpbmcgSlMgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6IE9wZW4gY2FsbCBt
YXkgcmFpc2UgZXhjZXB0aW9uIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyB3aGVuIHRpbWVvdXQg
dmFsdWUgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBBc3NpZ25pbmcgdGltZW91dCB2YWx1ZSB0byBSZXNvdXJjZVJlcXVlc3QuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6IEhhbmRsaW5nIHRpbWVvdXQg
Y2FzZSBzZXBhcmF0ZWx5LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFRp
bWVvdXQpOiBUaW1lb3V0IGNhc2Ugc3RhdGUgdHJhbnNpc2l0aW9uIGFuZCBldmVudCBmaXJpbmcg
YXMgc3BlYydlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDogTmV3IGV2ZW50IGxp
c3RlbmVyLCBtZW1iZXIgYW5kIGNhbGxiYWNrIGZvciBoYW5kbGluZyB0aW1lb3V0LgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnRpbWVvdXQpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IE5ldyBldmVudCBsaXN0
ZW5lciBhbmQgcHJvcGVydHkgYWRkZWQuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDogQWRk
ZWQgYW4gZXhjZXB0aW9uIHZhbHVlIGZvciB0aGUgdGltZW91dCBjYXNlLgorCisKIDIwMTItMTAt
MTYgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KIAog
ICAgICAgICBJbml0IHRpbWVvdXQgZmxhZyBpbiBSZXNvdXJjZUVycm9yTWFjCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDcx
YTFhZDNiMTk3MTE4YzJhYjFiY2RlMjkwYTMxOTJkNWM2OTA3NGYuLmFjNjg5MWFmN2NhZjBiMTlk
MmE4OTI2ZGUyYzhkOGVmZmJlNDhhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0zMDgsNiArMzA4LDggQEAgdm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigiTmV0d29yayBSZXF1ZXN0IEZh
aWxlZCIsIDAsIG1fcmVzb3VyY2UtPnVybCgpLCAiUmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQiKTsK
ICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpCiAgICAgICAgICAgICBlcnJv
ci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKKyAgICAgICAgaWYgKG1fcmVzb3VyY2UtPnRpbWVk
T3V0KCkpCisgICAgICAgICAgICBlcnJvci5zZXRJc1RpbWVvdXQodHJ1ZSk7CiAgICAgICAgIGRp
ZEZhaWwoZXJyb3IpOwogICAgIH0gZWxzZQogICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKG1fcmVz
b3VyY2UtPmlkZW50aWZpZXIoKSwgbV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCAzNmIzNjc2NjA2
OTM2MjBkYjY0MzExYWRkOTI4NDM1Y2I2ZmI4NmEyLi5mYWNhZGQ3NGVlNjUzMmIxYzU2NjZmMjlm
ODYwMThjOGVhMGQxMGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTMxMiw3ICszMTIsMTAgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlk
RmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBSZWZQdHI8U3VicmVzb3VyY2VM
b2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IHByb3RlY3RSZXNvdXJjZShtX3Jlc291cmNlKTsKICAgICBtX3N0YXRlID0gRmluaXNo
aW5nOwotICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOwor
ICAgIGlmIChlcnJvci5pc1RpbWVvdXQoKSkKKyAgICAgICAgbV9yZXNvdXJjZS0+ZXJyb3IoQ2Fj
aGVkUmVzb3VyY2U6OlRpbWVvdXRFcnJvcik7CisgICAgZWxzZQorICAgICAgICBtX3Jlc291cmNl
LT5lcnJvcihDYWNoZWRSZXNvdXJjZTo6TG9hZEVycm9yKTsKICAgICBpZiAoIW1fcmVzb3VyY2Ut
PmlzUHJlbG9hZGVkKCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShtX3Jlc291cmNl
KTsKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGViMzFkOWQxZjJkOWM0Zjk0M2Y1
Y2FhZjI4ZDQxNTIxZjE2NTA3NWMuLmQ3ZTc2NmQ2OGM3ZTgyYWY3ZTUwYjY0NzNjNTA0YjExMzI0
NTI1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgQ2FjaGVkLCAgICAgICAvLyByZWd1
bGFyIGNhc2UKICAgICAgICAgQ2FuY2VsZWQsCiAgICAgICAgIExvYWRFcnJvciwKKyAgICAgICAg
VGltZW91dEVycm9yLAogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKQEAgLTIwNyw4ICsy
MDgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBY2NlcHQoY29uc3QgU3RyaW5nJiBhY2NlcHQp
IHsgbV9hY2NlcHQgPSBhY2NlcHQ7IH0KIAogICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7
IHJldHVybiBtX3N0YXR1cyA9PSBDYW5jZWxlZDsgfQotICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgp
IGNvbnN0IHsgcmV0dXJuIChtX3N0YXR1cyA9PSBMb2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gRGVj
b2RlRXJyb3IpOyB9Ci0gICAgYm9vbCBsb2FkRmFpbGVkT3JDYW5jZWxlZCgpIHsgcmV0dXJuIG1f
c3RhdHVzID09IENhbmNlbGVkIHx8IG1fc3RhdHVzID09IExvYWRFcnJvcjsgfQorICAgIGJvb2wg
ZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0dXJuIChtX3N0YXR1cyA9PSBMb2FkRXJyb3IgfHwg
bV9zdGF0dXMgPT0gRGVjb2RlRXJyb3IgfHwgbV9zdGF0dXMgPT0gVGltZW91dEVycm9yKTsgfQor
ICAgIGJvb2wgbG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSB7IHJldHVybiBtX3N0YXR1cyA9PSBDYW5j
ZWxlZCB8fCBtX3N0YXR1cyA9PSBMb2FkRXJyb3IgfHwgbV9zdGF0dXMgPT0gVGltZW91dEVycm9y
OyB9CisgICAgYm9vbCB0aW1lZE91dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdHVzID09IFRpbWVv
dXRFcnJvcjsgfQogCiAgICAgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IFNlbmRDYWxsYmFja3M7IH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGY2MTY5MDg1NGVm
NzNlMzliYzA0ZmY2OTI5NjY1MWRhYzZhODdiMGUuLmY5NmFhYzZmNjJhODBjNzg1NDBkOWE3ZWM0
OGMxMGRjMTU0MTljNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAt
Myw2ICszLDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNyBBbGV4ZXkgUHJvc2t1cnlh
a292IDxhcEB3ZWJraXQub3JnPgogICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBKdWxpZW4g
Q2hhZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xNzUsNiAr
MTc2LDcgQEAgWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VjdXIKICAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0LCB0aGlzKQogICAgICwgbV9hc3luYyh0cnVlKQogICAgICwgbV9pbmNsdWRlQ3JlZGVu
dGlhbHMoZmFsc2UpCisgICAgLCBtX3RpbWVvdXRNaWxsaXNlY29uZHMoMCkKICAgICAsIG1fc3Rh
dGUoVU5TRU5UKQogICAgICwgbV9jcmVhdGVkRG9jdW1lbnQoZmFsc2UpCiAgICAgLCBtX2Vycm9y
KGZhbHNlKQpAQCAtMzI2LDYgKzMyOCwxOSBAQCBBcnJheUJ1ZmZlciogWE1MSHR0cFJlcXVlc3Q6
OnJlc3BvbnNlQXJyYXlCdWZmZXIoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKIH0KIAordm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0VGlt
ZW91dCh1bnNpZ25lZCBsb25nIHRpbWVvdXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8v
IEZJWE1FOiBOZWVkIHRvIHRyaWdnZXIgb3IgdXBkYXRlIHRoZSB0aW1lb3V0IFRpbWVyIGhlcmUs
IGlmIG5lZWRlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi85ODE1NgorICAgIC8vIFhIUjIgc3BlYywg
NC43LjMuICJUaGlzIGltcGxpZXMgdGhhdCB0aGUgdGltZW91dCBhdHRyaWJ1dGUgY2FuIGJlIHNl
dCB3aGlsZSBmZXRjaGluZyBpcyBpbiBwcm9ncmVzcy4gSWYgdGhhdCBvY2N1cnMgaXQgd2lsbCBz
dGlsbCBiZSBtZWFzdXJlZCByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgZmV0Y2hpbmcuIgorICAg
IGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhbV9hc3luYykg
eworICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiWE1M
SHR0cFJlcXVlc3QudGltZW91dCBjYW5ub3QgYmUgc2V0IGZvciBzeW5jaHJvbm91cyBIVFRQKFMp
IHJlcXVlc3RzIG1hZGUgZnJvbSB0aGUgd2luZG93IGNvbnRleHQuIik7CisgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdGltZW91
dE1pbGxpc2Vjb25kcyA9IHRpbWVvdXQ7Cit9CisKKwogdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0
UmVzcG9uc2VUeXBlKGNvbnN0IFN0cmluZyYgcmVzcG9uc2VUeXBlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAobV9zdGF0ZSA+PSBMT0FESU5HKSB7CkBAIC00OTUsNiArNTEwLDEzIEBA
IHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtV
UkwmIHVybCwgYm9vbCBhc3luYywgRXhjCiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIC8vIFNpbWls
YXJseSwgdGltZW91dHMgYXJlIGRpc2FibGVkIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyBhcyB3
ZWxsLgorICAgICAgICBpZiAobV90aW1lb3V0TWlsbGlzZWNvbmRzID4gMCkgeworICAgICAgICAg
ICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlN5bmNocm9ub3Vz
IFhNTEh0dHBSZXF1ZXN0cyBtdXN0IG5vdCBoYXZlIGEgdGltZW91dCB2YWx1ZSBzZXQuIik7Cisg
ICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIG1fbWV0aG9kID0gdXBwZXJjYXNlS25vd25IVFRQTWV0
aG9kKG1ldGhvZCk7CkBAIC03NDIsNiArNzY0LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdChFeGNlcHRpb25Db2RlJiBlYykKICAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVx
dWVzdFBvbGljeSA9IFVzZUFjY2Vzc0NvbnRyb2w7CiAgICAgb3B0aW9ucy5zZWN1cml0eU9yaWdp
biA9IHNlY3VyaXR5T3JpZ2luKCk7CiAKKyAgICBpZiAobV90aW1lb3V0TWlsbGlzZWNvbmRzKQor
ICAgICAgICByZXF1ZXN0LnNldFRpbWVvdXRJbnRlcnZhbChtX3RpbWVvdXRNaWxsaXNlY29uZHMg
LyAxMDAwLjApOworCiAgICAgbV9leGNlcHRpb25Db2RlID0gMDsKICAgICBtX2Vycm9yID0gZmFs
c2U7CiAKQEAgLTEwNTgsNiArMTA4MywxMSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgaWYgKGVycm9yLmlzVGltZW91dCgpKSB7CisgICAgICAgIGRpZFRpbWVvdXQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkg
cmVwb3J0ZWQgdG8gV2ViIEluc3BlY3RvciBieSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJy
b3IuZG9tYWluKCkgPT0gZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCkKICAgICAgICAgbG9nQ29u
c29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkICIgKyBlcnJvci5mYWlsaW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24oKSk7CkBAIC0xMTgyLDYgKzEyMTIsMzQgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKICAgICB9CiB9CiAKK3Zv
aWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFRpbWVvdXQoKQoreworICAgIC8vIGludGVybmFsQWJvcnQo
KSBjYWxscyBkcm9wUHJvdGVjdGlvbigpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZl
cmVuY2UuCisgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0KHRoaXMpOworICAgIGlu
dGVybmFsQWJvcnQoKTsKKworICAgIGNsZWFyUmVzcG9uc2UoKTsgLy8gRklYTUU6IGNsZWFyUmVz
cG9uc2VCdWZmZXJzKCk/CisgICAgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBtX2Vycm9yID0gdHJ1
ZTsKKyAgICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6VElNRU9V
VF9FUlI7CisKKyAgICBpZiAoIW1fYXN5bmMpIHsKKyAgICAgICAgbV9zdGF0ZSA9IERPTkU7Cisg
ICAgICAgIG1fZXhjZXB0aW9uQ29kZSA9IFRJTUVPVVRfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY2hhbmdlU3RhdGUoRE9ORSk7CisKKyAgICBpZiAoIW1fdXBsb2FkQ29tcGxl
dGUpIHsKKyAgICAgICAgbV91cGxvYWRDb21wbGV0ZSA9IHRydWU7CisgICAgICAgIGlmIChtX3Vw
bG9hZCAmJiBtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgICAgICAgICBtX3VwbG9hZC0+ZGlz
cGF0Y2hFdmVudEFuZExvYWRFbmQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCkpOworICAgIH0KKyAgICBtX3Byb2dyZXNzRXZlbnRU
aHJvdHRsZS5kaXNwYXRjaEV2ZW50QW5kTG9hZEVuZChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudGltZW91dEV2ZW50KSk7Cit9CisKIGJvb2wgWE1MSHR0
cFJlcXVlc3Q6OmNhblN1c3BlbmQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9sb2FkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGNjNmNiYzUwYzM2MDE2NTA4OWUyNjU5
OTc1Y2QxMGQzMTEyMmVmNWQuLmYyNzc4MmY2MjZhYWE3NjFhYTc1MzNjMjE4YzIzYmM4MzIzYWEx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yLDYgKzIsNyBAQAogICog
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
PGFwQG55cG9wLmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY5LDYgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRUaW1lb3V0KCk7CiAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzdW1lKCk7CkBAIC0xMDQsNiArMTA2LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiBv
cHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50Lmdl
dCgpOyB9CiAgICAgQmxvYiogcmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBCbG9i
KiBvcHRpb25hbFJlc3BvbnNlQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdl
dCgpOyB9CisgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1l
b3V0TWlsbGlzZWNvbmRzOyB9CisgICAgdm9pZCBzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGlt
ZW91dCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZW5kRnJvbUluc3BlY3RvcihQYXNz
UmVmUHRyPEZvcm1EYXRhPiwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAg
cHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGVuZCk7CiAg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2Fkc3RhcnQpOwogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIocHJvZ3Jlc3MpOworICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIodGltZW91dCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0
dHBSZXF1ZXN0Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+Ojpk
ZXJlZjsKQEAgLTE5MSw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBl
T3ZlcnJpZGU7CiAgICAgYm9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlh
bHM7CisgICAgdW5zaWduZWQgbG9uZyBtX3RpbWVvdXRNaWxsaXNlY29uZHM7CiAgICAgUmVmUHRy
PEJsb2I+IG1fcmVzcG9uc2VCbG9iOwogCiAgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1f
bG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggMzdjNjk0ZTc1
Y2IyNzNiOGFmMjRkMDQ1YWMzNTQyZWRjMzIzODMzMi4uYjZhZTIzMmI2YjBjZGFlZjQ1NmYyNzQw
NTZjOWY1ZDQxNjFmZDZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBA
IC00Myw2ICs0Myw3IEBACiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkZW5kOwog
ICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OwogICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ucHJvZ3Jlc3M7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250
aW1lb3V0OwogCiAgICAgLy8gZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwpAQCAtNTQsNiArNTUsOCBAQAogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IExPQURJTkcgPSAzOwogICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IERPTkUgPSA0OwogCisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRo
Q3JlZGVudGlhbHMKQEAgLTExNyw0ICsxMjAsMyBAQAogICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVu
dChpbiBFdmVudCBldnQpCiAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiB9OwotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBj
MDZjMDdjMGRlZTE4ZTQyNzViNjE2ODkzNWRlOGJjYjVhODU1YmMzLi5iOGNiMmYzOTlkYjBhZTlm
YmVmMTE1ZDE3MmZkZjJjYzVjMjA3NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAKQEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIHN0cnVjdCBY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciog
Y29uc3QgZGVzY3JpcHRpb247CiB9IGV4Y2VwdGlvbnNbXSA9IHsKICAgICB7ICJORVRXT1JLX0VS
UiIsICJBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9
LAotICAgIHsgIkFCT1JUX0VSUiIsICJUaGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdCBpbiBzeW5j
aHJvbm91cyByZXF1ZXN0cy4iIH0KKyAgICB7ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRl
ZCBhIHJlcXVlc3QgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAorICAgIHsgIlRJTUVPVVRf
RVJSIiwgIkEgdGltZW91dCBlcnJvciBvY2N1cmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIg
fQogfTsKIAogYm9vbCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0
aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCmluZGV4
IDdjNDM3ZWYyZjg1NDg5NDkxOTNmZDAwMzg1OGMwZTIxODZlMmQyODkuLjk0MGUzMDEwNzJkZTQ4
ZjI1MDZkYzI0MTVjMjAyZWU4OGY4N2NmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5oCkBAIC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIGVu
dW0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25Db2RlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSBY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNldCArIDEwMSwKLSAgICAgICAgQUJPUlRfRVJSCisg
ICAgICAgIEFCT1JUX0VSUiwKKyAgICAgICAgVElNRU9VVF9FUlIKICAgICB9OwogCiAgICAgc3Rh
dGljIGJvb2wgaW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbiopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRiOWM5ZjY2OWEwOGVkMmFmYzM0MDRkOTNkZDdkZjk5
ZTMyZmQxYTEuLjk1ZDVkNGY0MjhmM2MyZTVjMDkzMjc2NTg4NjcyYzZhNzBiNzhlNjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NCBAQAorMjAxMi0xMC0xNSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5p
ay5yb3R0c2NoZXNAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCB0aW1lb3V0IHN1cHBvcnQgdG8g
WE1MSHR0cFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHMgZm9yIHRoZSBYSFIyIHRpbWVvdXQgZnVuY3Rpb25hbGl0eSwgaW1wb3J0ZWQg
YW5kIGFkYXB0ZWQgdG8gVzNDIHRlc3RoYXJuZXNzLmpzCisgICAgICAgIHdpdGggcGVybWlzc2lv
biAoUEQvQlNEIGxpY2Vuc2UpIGZyb20gTW96aWxsYSdzIEFsZXggVmluY2VudCdzIHNldCBvZiBY
SFIyIHRpbWVvdXQgdGVzdHMuIEJpZyB0aGFua3MhCisgICAgICAgIENtcC4gaHR0cHM6Ly9idWd6
aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorCisgICAgICAgIFRo
ZSBjYXNlIG9mIGxhdGUgdXBkYXRlcyB0byB0aGUgdGltZW91dCBwcm9wZXJ0eSwgY2hhbmdpbmcg
dGhlIHRpbWVvdXQgdmFsdWUgYWZ0ZXIgc2VuZCgpCisgICAgICAgIGlzIG5vdCBzdXBwb3J0ZWQg
eWV0IGFuZCBoYW5kbGVkIHNlcGFyYXRlbHkgaW4gYnVnIDk4MTU2LiBUZXN0cyB0aGF0IGFyZSB0
ZXN0aW5nIHRoaXMgZmVhdHVyZQorICAgICAgICBhcmUgY29tbWVudGVkIG91dCB1bnRpbCB0aGlz
IGJ1ZyBpcyB0YWNrbGVkLgorCisgICAgICAgIFNpbmNlIHdlIHRyeSB0byBhdm9pZCBsb25nIHJ1
bm5pbmcgdGVzdHMsIHRoZSB0ZXN0cyB3ZXJlIHNwbGl0IGludG8gcGllY2VzIGRpZ2VzdGlibGUg
YnkgV1RSL0RUUgorICAgICAgICB0byBiZSBydW4gd2l0aCBzbWFsbGVyIHRpbWVvdXRzLiBFYWNo
IGluZGl2aWR1YWwgdGVzdCBzaG91bGQgY29tcGxldGUgaW4gbGVzcyB0aGFuIDIwIHNlY29uZHMu
CisKKyAgICAgICAgVGhlIHN1ZmZpeCBvZiB0aGUgdGVzdCBmaWxlbmFtZSBtYXRjaGVzIHRoZSBn
cm91cHMgaW4geG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyB3aGljaCBjb250YWlucworICAgICAg
ICBhbGwgdGVzdHMgdGhhdCBhcmUgcnVuLiBUaGUgcmVzdWx0IG9mIGFzc2VydGlvbnMgaXMgcmVw
b3J0ZWQgYmFjayB0byB0ZXN0aGFybmVzcy5qcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25t
YWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXJ1bm5lci5qczogQWRkZWQuIERpc3Rpbmd1aXNoZXMgd2hpY2ggZ3JvdXAgb2YgdGVzdHMg
dG8gcnVuIGJhc2VkIG9uIGZpbGVuYW1lIHN1ZmZpeC4KKyAgICAgICAgKHRlc3RSZXN1bHRDYWxs
YmFja0hhbmRsZXIucmV0dXJuKToKKyAgICAgICAgKGdyb3VwRnJvbUxvY2F0aW9uKToKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXN5bmNvbm1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
YWJvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzOiBBZGRlZC4g
Q29udGFpbnMgdGVzdCBjYXNlcyBmb3IgYWxsIGluZGl2aWR1YWwgdGVzdCBodG1sIGZpbGVzLgor
ICAgICAgICAobWVzc2FnZSk6IFdyYXBwZXIgZm9yIHBvc3RNZXNzYWdlIGluIHdvcmtlciBhbmQg
ZG9jdW1lbnQgY29udGV4dCBjYXNlLgorICAgICAgICAoaXMpLAorICAgICAgICAob2spOiBBc3Nl
cnRpb24gZnVuY3Rpb25zLgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIpOiBDbGFzcyBmb3IgdmFy
aWF0aW9ucyBvZiB0aGUgcmVndWxhciB0aW1lb3V0IGNhc2UuCisgICAgICAgIChSZXF1ZXN0VHJh
Y2tlci5wcm90b3R5cGUuc3RhcnRYSFIuaGFuZGxlRXZlbnQpOgorICAgICAgICAoUmVxdWVzdFRy
YWNrZXIucHJvdG90eXBlLnN0YXJ0WEhSKToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3Rv
dHlwZS5nZXRNZXNzYWdlKToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5oYW5k
bGVFdmVudCk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdCk6IENsYXNzIGZvciB0ZXN0aW5nIHRp
bWVvdXQgZXZlbnQgdnMuIGFib3J0IGV2ZW50cy4KKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnBy
b3RvdHlwZS5zdGFydFhIUi5oYW5kbGVFdmVudCk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5w
cm90b3R5cGUuc3RhcnRYSFIuYWJvcnRSZXEpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJv
dG90eXBlLnN0YXJ0WEhSLmVsc2UpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBl
LnN0YXJ0WEhSKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5ub0V2ZW50c0Zp
cmVkKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5nZXRNZXNzYWdlKToKKyAg
ICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChT
eW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QWZ0ZXJPcGVuLnN0YXJ0WEhSKSwKKyAgICAgICAgKFN5
bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRCZWZvcmVPcGVuLnN0YXJ0WEhSKTogVGVzdCBjbGFzc2Vz
IGZvciBzeW5jaHJvbm91cyBYSFIgY2FzZXMuCisgICAgICAgIChUZXN0Q291bnRlci50ZXN0Q29t
cGxldGUpLAorICAgICAgICAoVGVzdENvdW50ZXIubmV4dCk6IFVzZWQgZm9yIGN5Y2xpbmcgdGhy
b3VnaCB0ZXN0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwcGluZyBYSFIgdGltZW91dCBjYXNlcyBzaW5jZSBzZXRUaW1lb3V0SW50ZXJ2YWwgaXMg
bm90IHN1cHBvcnRlZCBpbiBDaHJvbWl1bSdzIEhUVFAgc3RhY2suCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmtpbmcgWEhSIHRpbWVvdXQgY2FzZXMgYXMgc2xv
dyBpbiBvcmRlciB0byBydW4gdGhlbSB3aXRoIGEgbG9uZ2VyIHRlc3QgdGltZW91dCB0aHJlc2hv
bGQuCisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcgWEhS
IHRpbWVvdXQgY2FzZXMgc2luY2Ugc2V0VGltZW91dEludGVydmFsIGlzIG5vdCBzdXBwb3J0ZWQg
aW4gQ2hyb21pdW0ncyBIVFRQIHN0YWNrLgorCiAyMDEyLTEwLTE2ICBDc2FiYSBPc3p0cm9nb27D
oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmlu
ZywgdW5za2lwIGEgbm93IHBhc3NpbmcgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFi
b3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODMxOTQyOTA2NTM0ZTYyYmVjY2JhNjY5OTZkMDViNGM3OTljYjYxMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9j
dW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNT
IFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVy
dHkgVGVzdHMgMyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtYWJvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgz
YTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVk
Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFBy
b3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93
d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5k
bGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3Jv
dXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3Nh
Z2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8
cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhh
dmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3Jr
ZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNh
NmE5MzgwYzk1NTEzZWE0ZGZlNTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
RGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQg
cHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAo
aS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5
IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9u
bWFpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNl
ZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5
IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMu
b3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsK
KyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBn
cm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVu
VGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlz
IHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFz
IGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNv
bnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNh
NmE5MzgwYzk1NTEzZWE0ZGZlNTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVv
dXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVu
dCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3Zl
cnJpZGVzZXhwaXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdm
ZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNl
eHBpcmVzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJh
Y2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQi
LCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9z
dE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4K
KyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0
eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5v
bi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXJ1bm5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQ4NTI4N2Y5NzliZTRmN2IyMTk2YTY2ZjE3MGYz
ZjgyODM4ZDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzCkBAIC0w
LDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIoZXZlbnQpIHsK
KyAgICBpZiAoZXZlbnQuZGF0YSA9PSAiZG9uZSIpIHsKKyAgICAgICAgZG9uZSgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gImlzIikgeworICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEuZ290LCBldmVu
dC5kYXRhLmV4cGVjdGVkLCBldmVudC5kYXRhLm1zZyk7IH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gIm9rIikgeworICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShldmVudC5kYXRhLmJvb2wsIGV2ZW50LmRhdGEubXNnKTsg
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdyb3VwRnJvbUxvY2F0
aW9uKCkgeworICAgIHN1ZmZpeE1hdGNoID0gL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtKC4qKVwu
aHRtbC87CisgICAgZ3JvdXAgPSBzdWZmaXhNYXRjaC5leGVjKGRvY3VtZW50LmxvY2F0aW9uLmhy
ZWYpWzFdOworICAgIGdyb3VwID0gZ3JvdXAucmVwbGFjZSgid29ya2VyLSIsICIiKTsKKyAgICBy
ZXR1cm4gZ3JvdXA7Cit9CisKKy8vIFNldHRpbmcgdXAgdGVzdGhhcm5lc3MuanMKK3NldHVwKHsg
ZXhwbGljaXRfZG9uZTogdHJ1ZSwgdGltZW91dDogMyAqIDYwICogMTAwMCB9KTsKKworLy8gQWJv
cnQgdGVzdCBleGVjdXRpb24gaWYgYW4gaW5kaXZpZHVhbCB0ZXN0IGNhc2UgZmFpbHMuCithZGRf
cmVzdWx0X2NhbGxiYWNrKGZ1bmN0aW9uICh0KSB7CisgICAgaWYgKHQuc3RhdHVzID09IHQuRkFJ
TCkKKyAgICAgICAgZG9uZSgpOworfSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ0MDdiNzIwMjQ1MGVkODA2MDU1NjgzNGI5NWY0MGM3MTQ2OWQxNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAor
RGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQg
cHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAo
aS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5
IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNTczMDEyZjRm
M2FmODYwZGQxODNhN2ZlZWY0ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENh
bGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0
YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93
LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwv
aDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJv
cGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5l
LiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRmODZjOTNlNTk1MjYzODY5MmI4YTdjZmIxOTU4NDM5NjMwOTI2NjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0LnRpbWVvdXQgY2Fubm90IGJlIHNldCBm
b3Igc3luY2hyb25vdXMgSFRUUChTKSByZXF1ZXN0cyBtYWRlIGZyb20gdGhlIHdpbmRvdyBjb250
ZXh0LgorQ09OU09MRSBNRVNTQUdFOiBTeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdHMgbXVzdCBu
b3QgaGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LgorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZh
bGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3Rl
ZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0Lgor
CisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQg
UHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0
ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1zeW5jb25tYWluLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9y
IiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAv
PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkg
eworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVz
dWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUi
OiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3
aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0
aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91
dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50
IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDA3
YjcyMDI0NTBlZDgwNjA1NTY4MzRiOTVmNDBjNzE0NjlkMTZiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtdHdpY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVzY3JpcHRp
b24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkg
YmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24t
d29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAor
UEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFBy
b3BlcnR5IFRlc3RzIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgz
YTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5o
dG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3
LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxl
cik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3Vw
IjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdl
KHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+
VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZl
cyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2Vy
KSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI3
YjQ1MjgzYzFhNTY4ODU3ZTEyNTA4YWIwODQxYmUxMjExNTVlMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91
dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisK
KworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMiAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRl
c3RzIGluIFdvcmtlciAzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0
NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgor
ICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4K
KyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBS
ZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0
cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAg
ICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7
CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1
bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBl
IjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248
L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHBy
b3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+Cisg
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1
NjExNzE0OTU0OGRlZjYyOTM5NTBjNTNiYjBmZjhjZTJhMDc4YWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhI
UjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNv
bnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAor
UEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3MjIxMTJiYTgx
YWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKyA8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cisg
ICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXI8L3RpdGxlPgor
ICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJl
cXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRw
cmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAg
ICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiKTsK
KyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3Vs
dENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUi
OiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMpOworICAgICAgICB9OworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwv
aDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJv
cGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LjwvcD4KKyAg
ICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtl
ci1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNTI5N2VlZTc5YmNkYTY1OWViOWZh
YzhkOWMxY2U3NGJkMmM0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
c2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMg
dGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMg
ZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0
cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtl
ciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEzNDcyMjExMmJhODFhYjg0
YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0
LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3Mu
Y3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91
dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHZhciB3b3JrZXIg
PSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7CisgICAgICAgICAgICB3
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRs
ZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdy
b3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNz
YWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRo
aXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMg
YXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29u
d29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTYxMTcxNDk1NDhkZWY2MjkzOTUwYzUz
YmIwZmY4Y2UyYTA3OGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5
bmNvbndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitEZXNjcmlwdGlvbgorCitU
aGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVz
IGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVv
dXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkg
VGVzdHMgaW4gV29ya2VyIDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5j
b253b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBp
biBXb3JrZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53
My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiB0ZXN0
WGhyKCkgeworICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInhtbGh0dHByZXF1
ZXN0LXRpbWVvdXQuanMiKTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAgICAgICAgIHZhciBy
dW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigp
IH07CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMpOworICAgICAgICB9
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAg
IDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtl
ciBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUyOTdl
ZWU3OWJjZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2Ny
aXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC4KKworCitQQVNT
IFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNTIFhIUjIgVGltZW91
dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5
IFRlc3RzIGluIFdvcmtlciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdp
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3
MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1
ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
dGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJl
cXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAg
IHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7Cisg
ICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRD
YWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjog
InN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gx
PgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAg
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTczZjIwNDJiNTYyMDgw
YTNmZmQ2NDYzNGFmN2JlMGVmYWY2YzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQu
anMKQEAgLTAsMCArMSwzNjIgQEAKKy8qIFRlc3QgaW1wb3J0ZWQgZnJvbSBBbGV4IFZpbmNlbnQn
cyBYSFIyIHRpbWVvdXQgdGVzdHMsIHdyaXR0ZW4gZm9yIE1vemlsbGEuCisgICBodHRwczovL2hn
Lm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9maWxlL3RpcC9jb250ZW50L2Jhc2UvdGVzdC8K
KyAgIFJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4sIGFjY29yZGluZyB0bworICAgaHR0
cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorKi8K
KworLyogTm90ZXM6CisgICAtIEFsbCB0aW1lcyBhcmUgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25k
cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCisgICAtIFRlc3QgaGFybmVzcyBjb2RlIGlzIGF0IHRoZSBl
bmQgb2YgdGhpcyBmaWxlLgorICAgLSBXZSBnZW5lcmF0ZSBvbmx5IG9uZSByZXF1ZXN0IGF0IGEg
dGltZSwgdG8gYXZvaWQgb3ZlcmxvYWRpbmcgdGhlIEhUVFAKKyAgIHJlcXVlc3QgaGFuZGxlcnMu
CisgKi8KKworLyoKKyAqIFRoaXMgc2hvdWxkIHBvaW50IHRvIGEgcmVzb3VyY2UgdGhhdCByZXNw
b25kcyBhZnRlciBhIGRlbGF5IG9mIDMgc2Vjb25kcy4KKyAqLwordmFyIFNUQUxMRURfUkVRVUVT
VF9VUkwgPSAiL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5jZ2k/bmFtZT0uLi8uLi8uLi9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyZz
dGFsbEZvcj0zJnN0YWxsQXQ9MCZtaW1lVHlwZT10ZXh0L3BsYWluIjsKKwordmFyIGluV29ya2Vy
ID0gZmFsc2U7Cit0cnkgeworICBpbldvcmtlciA9ICEoc2VsZiBpbnN0YW5jZW9mIFdpbmRvdyk7
Cit9IGNhdGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gbWVzc2Fn
ZShvYmopIHsKKyAgaWYgKGluV29ya2VyKQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqKTsKKyAg
ZWxzZQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqLCAiKiIpOworfQorCitmdW5jdGlvbiBpcyhn
b3QsIGV4cGVjdGVkLCBtc2cpIHsKKyAgdmFyIG9iaiA9IHt9OworICBvYmoudHlwZSA9ICJpcyI7
CisgIG9iai5nb3QgPSBnb3Q7CisgIG9iai5leHBlY3RlZCA9IGV4cGVjdGVkOworICBvYmoubXNn
ID0gbXNnOworCisgIG1lc3NhZ2Uob2JqKTsKK30KKworZnVuY3Rpb24gb2soYm9vbCwgbXNnKSB7
CisgIHZhciBvYmogPSB7fTsKKyAgb2JqLnR5cGUgPSAib2siOworICBvYmouYm9vbCA9IGJvb2w7
CisgIG9iai5tc2cgPSBtc2c7CisKKyAgbWVzc2FnZShvYmopOworfQorCisvKioKKyAqIEdlbmVy
YXRlIGFuZCB0cmFjayByZXN1bHRzIGZyb20gYSBYTUxIdHRwUmVxdWVzdCB3aXRoIHJlZ2FyZHMg
dG8gdGltZW91dHMuCisgKgorICogQHBhcmFtIHtTdHJpbmd9IGlkICAgICAgICAgVGhlIHRlc3Qg
ZGVzY3JpcHRpb24uCisgKiBAcGFyYW0ge051bWJlcn0gdGltZUxpbWl0ICBUaGUgaW5pdGlhbCBz
ZXR0aW5nIGZvciB0aGUgcmVxdWVzdCB0aW1lb3V0LgorICogQHBhcmFtIHtOdW1iZXJ9IHJlc2V0
QWZ0ZXIgKE9wdGlvbmFsKSBUaGUgdGltZSBhZnRlciBzZW5kaW5nIHRoZSByZXF1ZXN0LCB0bwor
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgdGhlIHRpbWVvdXQuCisgKiBAcGFy
YW0ge051bWJlcn0gcmVzZXRUbyAgICAoT3B0aW9uYWwpIFRoZSBkZWxheSB0byByZXNldCB0aGUg
dGltZW91dCB0by4KKyAqCisgKiBAbm90ZSBUaGUgYWN0dWFsIHRlc3RpbmcgdGFrZXMgcGxhY2Ug
aW4gaGFuZGxlRXZlbnQoZXZlbnQpLgorICogVGhlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQgaW4g
c3RhcnRYSFIoKS4KKyAqCisgKiBAbm90ZSBJZiByZXNldEFmdGVyIGFuZCByZXNldFRvIGFyZSBv
bWl0dGVkLCBvbmx5IHRoZSBpbml0aWFsIHRpbWVvdXQgc2V0dGluZworICogYXBwbGllcy4KKyAq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIERPTUV2ZW50TGlzdGVuZXIKKyAqLwor
ZnVuY3Rpb24gUmVxdWVzdFRyYWNrZXIoYXN5bmMsIGlkLCB0aW1lTGltaXQgLypbLCByZXNldEFm
dGVyLCByZXNldFRvXSovKSB7CisgIHRoaXMuYXN5bmMgPSBhc3luYzsKKyAgdGhpcy5pZCA9IGlk
OworICB0aGlzLnRpbWVMaW1pdCA9IHRpbWVMaW1pdDsKKworICBpZiAoYXJndW1lbnRzLmxlbmd0
aCA+IDMpIHsKKyAgICB0aGlzLm11c3RSZXNldCAgPSB0cnVlOworICAgIHRoaXMucmVzZXRBZnRl
ciA9IGFyZ3VtZW50c1szXTsKKyAgICB0aGlzLnJlc2V0VG8gICAgPSBhcmd1bWVudHNbNF07Cisg
IH0KKworICB0aGlzLmhhc0ZpcmVkID0gZmFsc2U7Cit9CitSZXF1ZXN0VHJhY2tlci5wcm90b3R5
cGUgPSB7CisgIC8qKgorICAgKiBTdGFydCB0aGUgWE1MSHR0cFJlcXVlc3QhCisgICAqLworICBz
dGFydFhIUjogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgIHRoaXMucmVxdWVzdCA9IHJlcTsKKyAgICByZXEub3BlbigiR0VUIiwgU1RBTExFRF9S
RVFVRVNUX1VSTCwgdGhpcy5hc3luYyk7CisgICAgdmFyIG1lID0gdGhpczsKKyAgICBmdW5jdGlv
biBoYW5kbGVFdmVudChlKSB7IHJldHVybiBtZS5oYW5kbGVFdmVudChlKTsgfTsKKyAgICByZXEu
b25lcnJvciA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmxvYWQgPSBoYW5kbGVFdmVudDsKKyAg
ICByZXEub25hYm9ydCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbnRpbWVvdXQgPSBoYW5kbGVF
dmVudDsKKworICAgIHJlcS50aW1lb3V0ID0gdGhpcy50aW1lTGltaXQ7CisgICAgCisgICAgaWYg
KHRoaXMubXVzdFJlc2V0KSB7CisgICAgICB2YXIgcmVzZXRUbyA9IHRoaXMucmVzZXRUbzsKKyAg
ICAgIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgcmVxLnRpbWVvdXQgPSBy
ZXNldFRvOworICAgICAgfSwgdGhpcy5yZXNldEFmdGVyKTsKKyAgICB9CisKKyAgICByZXEuc2Vu
ZChudWxsKTsKKyAgfSwKKworICAvKioKKyAgICogR2V0IGEgbWVzc2FnZSBkZXNjcmliaW5nIHRo
aXMgdGVzdC4KKyAgICoKKyAgICogQHJldHVybnMge1N0cmluZ30gVGhlIHRlc3QgZGVzY3JpcHRp
b24uCisgICAqLworICBnZXRNZXNzYWdlOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcnYgPSB0aGlz
LmlkICsgIiwgIjsKKyAgICBpZiAodGhpcy5tdXN0UmVzZXQpIHsKKyAgICAgIHJ2ICs9ICJvcmln
aW5hbCB0aW1lb3V0IGF0ICIgKyB0aGlzLnRpbWVMaW1pdCArICIsICI7CisgICAgICBydiArPSAi
cmVzZXQgYXQgIiArIHRoaXMucmVzZXRBZnRlciArICIgdG8gIiArIHRoaXMucmVzZXRUbzsKKyAg
ICB9CisgICAgZWxzZSB7CisgICAgICBydiArPSAidGltZW91dCBzY2hlZHVsZWQgYXQgIiArIHRo
aXMudGltZUxpbWl0OworICAgIH0KKyAgICByZXR1cm4gcnY7CisgIH0sCisKKyAgLyoqCisgICAq
IENoZWNrIHRoZSBldmVudCByZWNlaXZlZCwgYW5kIGlmIGl0J3MgdGhlIHJpZ2h0IChhbmQgb25s
eSkgb25lIHdlIGdldC4KKyAgICoKKyAgICogQHBhcmFtIHtET01Qcm9ncmVzc0V2ZW50fSBldnQg
QW4gZXZlbnQgb2YgdHlwZSAibG9hZCIgb3IgInRpbWVvdXQiLgorICAgKi8KKyAgaGFuZGxlRXZl
bnQ6IGZ1bmN0aW9uKGV2dCkgeworICAgIGlmICh0aGlzLmhhc0ZpcmVkKSB7CisgICAgICBvayhm
YWxzZSwgIk9ubHkgb25lIGV2ZW50IHNob3VsZCBmaXJlOiAiICsgdGhpcy5nZXRNZXNzYWdlKCkp
OworICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0aGlzLmhhc0ZpcmVkID0gdHJ1ZTsKKworICAg
IHZhciB0eXBlID0gZXZ0LnR5cGUsIGV4cGVjdGVkVHlwZTsKKyAgICAvLyBUaGUgWEhSIHJlc3Bv
bmRzIGFmdGVyIDMwMDAgbWlsbGlzZWNvbmRzIHdpdGggYSBsb2FkIGV2ZW50LgorICAgIHZhciB0
aW1lTGltaXQgPSB0aGlzLm11c3RSZXNldCAmJiAodGhpcy5yZXNldEFmdGVyIDwgTWF0aC5taW4o
MzAwMCwgdGhpcy50aW1lTGltaXQpKSA/CisgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRU
byA6CisgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZUxpbWl0OworICAgIGlmICgodGltZUxp
bWl0ID09IDApIHx8ICh0aW1lTGltaXQgPj0gMzAwMCkpIHsKKyAgICAgIGV4cGVjdGVkVHlwZSA9
ICJsb2FkIjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICBleHBlY3RlZFR5cGUgPSAidGltZW91
dCI7CisgICAgfQorICAgIGlzKHR5cGUsIGV4cGVjdGVkVHlwZSwgdGhpcy5nZXRNZXNzYWdlKCkp
OworICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICB9Cit9OworCisvKioKKyAqIEdl
bmVyYXRlIGFuZCB0cmFjayBYTUxIdHRwUmVxdWVzdHMgd2hpY2ggd2lsbCBoYXZlIGFib3J0KCkg
Y2FsbGVkIG9uLgorICoKKyAqIEBwYXJhbSBzaG91bGRBYm9ydCB7Qm9vbGVhbn0gVHJ1ZSBpZiB3
ZSBzaG91bGQgY2FsbCBhYm9ydCBhdCBhbGwuCisgKiBAcGFyYW0gYWJvcnREZWxheSAge051bWJl
cn0gIFRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGNhbGxpbmcgYWJvcnQoKS4KKyAqLwor
ZnVuY3Rpb24gQWJvcnRlZFJlcXVlc3Qoc2hvdWxkQWJvcnQsIGFib3J0RGVsYXkpIHsKKyAgdGhp
cy5zaG91bGRBYm9ydCA9IHNob3VsZEFib3J0OworICB0aGlzLmFib3J0RGVsYXkgID0gYWJvcnRE
ZWxheTsKKyAgdGhpcy5oYXNGaXJlZCAgICA9IGZhbHNlOworfQorQWJvcnRlZFJlcXVlc3QucHJv
dG90eXBlID0geworICAvKioKKyAgICogU3RhcnQgdGhlIFhNTEh0dHBSZXF1ZXN0IQorICAgKi8K
KyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVl
c3QoKTsKKyAgICB0aGlzLnJlcXVlc3QgPSByZXE7CisgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxM
RURfUkVRVUVTVF9VUkwpOworICAgIHZhciBtZSA9IHRoaXM7CisgICAgZnVuY3Rpb24gaGFuZGxl
RXZlbnQoZSkgeyByZXR1cm4gbWUuaGFuZGxlRXZlbnQoZSk7IH07CisgICAgcmVxLm9uZXJyb3Ig
PSBoYW5kbGVFdmVudDsKKyAgICByZXEub25sb2FkID0gaGFuZGxlRXZlbnQ7CisgICAgcmVxLm9u
YWJvcnQgPSBoYW5kbGVFdmVudDsKKyAgICByZXEub250aW1lb3V0ID0gaGFuZGxlRXZlbnQ7CisK
KyAgICByZXEudGltZW91dCA9IDIwMDA7CisgICAgdmFyIF90aGlzID0gdGhpczsKKworICAgIGZ1
bmN0aW9uIGFib3J0UmVxKCkgeworICAgICAgcmVxLmFib3J0KCk7CisgICAgfQorCisgICAgaWYg
KCF0aGlzLnNob3VsZEFib3J0KSB7CisgICAgICBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgX3RoaXMubm9FdmVudHNGaXJlZCgpOworICAgICAg
ICB9CisgICAgICAgIGNhdGNoIChlKSB7CisgICAgICAgICAgb2soZmFsc2UsICJVbmV4cGVjdGVk
IGVycm9yOiAiICsgZSk7CisgICAgICAgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7Cisg
ICAgICAgIH0KKyAgICAgIH0sIDUwMDApOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIC8vIEFi
b3J0IGV2ZW50cyBjYW4gb25seSBiZSB0cmlnZ2VyZWQgb24gc2VudCByZXF1ZXN0cy4KKyAgICAg
IHJlcS5zZW5kKCk7CisgICAgICBpZiAodGhpcy5hYm9ydERlbGF5ID09IC0xKSB7CisgICAgICAg
IGFib3J0UmVxKCk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgc2VsZi5zZXRUaW1l
b3V0KGFib3J0UmVxLCB0aGlzLmFib3J0RGVsYXkpOworICAgICAgfQorICAgIH0KKyAgfSwKKwor
ICAvKioKKyAgICogRW5zdXJlIHRoYXQgbm8gZXZlbnRzIGZpcmVkIGF0IGFsbCwgZXNwZWNpYWxs
eSBub3Qgb3VyIHRpbWVvdXQgZXZlbnQuCisgICAqLworICBub0V2ZW50c0ZpcmVkOiBmdW5jdGlv
bigpIHsKKyAgICBvayghdGhpcy5oYXNGaXJlZCwgIk5vIGV2ZW50cyBzaG91bGQgZmlyZSBmb3Ig
YW4gdW5zZW50LCB1bmFib3J0ZWQgcmVxdWVzdCIpOworICAgIC8vIFdlJ3JlIGRvbmU7IGlmIHRp
bWVvdXQgaGFzbid0IGZpcmVkIGJ5IG5vdywgaXQgbmV2ZXIgd2lsbC4KKyAgICBUZXN0Q291bnRl
ci50ZXN0Q29tcGxldGUoKTsKKyAgfSwKKworICAvKioKKyAgICogR2V0IGEgbWVzc2FnZSBkZXNj
cmliaW5nIHRoaXMgdGVzdC4KKyAgICoKKyAgICogQHJldHVybnMge1N0cmluZ30gVGhlIHRlc3Qg
ZGVzY3JpcHRpb24uCisgICAqLworICBnZXRNZXNzYWdlOiBmdW5jdGlvbigpIHsKKyAgICByZXR1
cm4gInRpbWUgdG8gYWJvcnQgaXMgIiArIHRoaXMuYWJvcnREZWxheSArICIsIHRpbWVvdXQgc2V0
IGF0IDIwMDAiOworICB9LAorCisgIC8qKgorICAgKiBDaGVjayB0aGUgZXZlbnQgcmVjZWl2ZWQs
IGFuZCBpZiBpdCdzIHRoZSByaWdodCAoYW5kIG9ubHkpIG9uZSB3ZSBnZXQuCisgICAqCisgICAq
IFdlYktpdCBmaXJlcyBhYm9ydCBldmVudHMgZXZlbiBmb3IgRE9ORSBhbmQgVU5TRU5UIHN0YXRl
cywgd2hpY2ggaXMgCisgICAqIGRpc2N1c3NlZCBpbiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4NDA0
CisgICAqIFRoYXQncyB3aHkgd2UgY2hvc2UgdG8gYWNjZXB0IHNlY29uZGFyeSAiYWJvcnQiIGV2
ZW50cyBpbiB0aGlzIHRlc3QuCisgICAqCisgICAqIEBwYXJhbSB7RE9NUHJvZ3Jlc3NFdmVudH0g
ZXZ0IEFuIGV2ZW50IG9mIHR5cGUgImxvYWQiIG9yICJ0aW1lb3V0Ii4KKyAgICovCisgIGhhbmRs
ZUV2ZW50OiBmdW5jdGlvbihldnQpIHsKKyAgICBpZiAodGhpcy5oYXNGaXJlZCAmJiBldnQudHlw
ZSAhPSAiYWJvcnQiKSB7CisgICAgICBvayhmYWxzZSwgIk9ubHkgYWJvcnQgZXZlbnQgc2hvdWxk
IGZpcmU6ICIgKyB0aGlzLmdldE1lc3NhZ2UoKSk7CisgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgdmFyIGV4cGVjdGVkRXZlbnQgPSAodGhpcy5hYm9ydERlbGF5ID49IDIwMDAgJiYgIXRoaXMu
aGFzRmlyZWQpID8gInRpbWVvdXQiIDogImFib3J0IjsKKyAgICB0aGlzLmhhc0ZpcmVkID0gdHJ1
ZTsKKyAgICBpcyhldnQudHlwZSwgZXhwZWN0ZWRFdmVudCwgdGhpcy5nZXRNZXNzYWdlKCkpOwor
ICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICB9Cit9OworCit2YXIgU3luY1JlcXVl
c3RTZXR0aW5nVGltZW91dEFmdGVyT3BlbiA9IHsKKyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgewor
ICAgIHZhciBwYXNzID0gZmFsc2U7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgIHJlcS5vcGVuKCJHRVQiLCBTVEFMTEVEX1JFUVVFU1RfVVJMLCBmYWxzZSk7CisgICAg
dHJ5IHsKKyAgICAgIHJlcS50aW1lb3V0ID0gMTAwMDsKKyAgICB9CisgICAgY2F0Y2ggKGUpIHsK
KyAgICAgIHBhc3MgPSB0cnVlOworICAgIH0KKyAgICBvayhwYXNzLCAiU3luY2hyb25vdXMgWEhS
IG11c3Qgbm90IGFsbG93IGEgdGltZW91dCB0byBiZSBzZXQiKTsKKyAgICBUZXN0Q291bnRlci50
ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFyIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRC
ZWZvcmVPcGVuID0geworICBzdGFydFhIUjogZnVuY3Rpb24oKSB7CisgICAgdmFyIHBhc3MgPSBm
YWxzZTsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLnRpbWVv
dXQgPSAxMDAwOworICAgIHRyeSB7CisgICAgICByZXEub3BlbigiR0VUIiwgU1RBTExFRF9SRVFV
RVNUX1VSTCwgZmFsc2UpOworICAgIH0KKyAgICBjYXRjaCAoZSkgeworICAgICAgcGFzcyA9IHRy
dWU7CisgICAgfQorICAgIG9rKHBhc3MsICJTeW5jaHJvbm91cyBYSFIgbXVzdCBub3QgYWxsb3cg
YSB0aW1lb3V0IHRvIGJlIHNldCIpOworICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOwor
ICB9Cit9OworCit2YXIgVGVzdFJlcXVlc3RHcm91cHMgPSB7CisgICJzaW1wbGUiIDogWworICAg
IG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAibm8gdGltZSBvdXQgc2NoZWR1bGVkLCBsb2FkIGZp
cmVzIG5vcm1hbGx5IiwgMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJsb2FkIGZp
cmVzIG5vcm1hbGx5IiwgNTAwMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1l
b3V0IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApCisgIF0sCisKKyAgInR3aWNlIiA6IFsKKyAgICAg
bmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJsb2FkIGZpcmVzIG5vcm1hbGx5IHdpdGggbm8gdGlt
ZW91dCBzZXQsIHR3aWNlIiwgMCwgMjAwMCwgMCksCisgICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0
cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSB3aXRoIHNhbWUgdGltZW91dCBzZXQgdHdpY2UiLCA1
MDAwLCAyMDAwLCA1MDAwKSwKKyAgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0
IGZpcmVzIG5vcm1hbGx5IHdpdGggc2FtZSB0aW1lb3V0IHNldCB0d2ljZSIsIDIwMDAsIDEwMDAs
IDIwMDApCisgIF0sCisKKyAgLy8gRklYTUU6IGh0dHA6Ly93ZWJraXQub3JnL2IvOTgxNTYgLSBM
YXRlIHVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCB0aGVzZSB0ZXN0cyBhcmUgbm90IHJ1
bi4KKyAgIm92ZXJyaWRlcyIgOiBbCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1l
b3V0IGRpc2FibGVkIGFmdGVyIGluaXRpYWxseSBzZXQiLCA1MDAwLCAyMDAwLCAwKSwKKyAgICBu
ZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgb3ZlcnJpZGVzIGxvYWQgYWZ0ZXIgYSBk
ZWxheSIsIDUwMDAsIDEwMDAsIDIwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAi
dGltZW91dCBlbmFibGVkIGFmdGVyIGluaXRpYWxseSBkaXNhYmxlZCIsIDAsIDIwMDAsIDUwMDAp
CisgIF0sCisKKyAgIm92ZXJyaWRlc2V4cGlyZXMiIDogWworICAgIG5ldyBSZXF1ZXN0VHJhY2tl
cih0cnVlLCAidGltZW91dCBzZXQgdG8gZXhwaXJpbmcgdmFsdWUgYWZ0ZXIgbG9hZCBmaXJlcyIs
IDUwMDAsIDQwMDAsIDEwMDApLAorICAgIC8vIEZJWE1FOiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4
MTU2IC0gTGF0ZSB1cGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgdGhpcyB0ZXN0IGlzIG5v
dCBydW4uCisgICAgLy8gbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0IHNldCB0byBl
eHBpcmVkIHZhbHVlIGJlZm9yZSBsb2FkIGZpcmVzIiwgNTAwMCwgMjAwMCwgMTAwMCksCisgICAg
bmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0IHNldCB0byBub24tZXhwaXJpbmcgdmFs
dWUgYWZ0ZXIgdGltZW91dCBmaXJlcyIsIDEwMDAsIDIwMDAsIDUwMDApCisgIF0sCisKKyAgImFi
b3J0ZWQiIDogWworICAgIG5ldyBBYm9ydGVkUmVxdWVzdChmYWxzZSksCisgICAgbmV3IEFib3J0
ZWRSZXF1ZXN0KHRydWUsIC0xKSwKKyAgICBuZXcgQWJvcnRlZFJlcXVlc3QodHJ1ZSwgNTAwMCkK
KyAgXSwKKworICAiYWJvcnRlZG9ubWFpbiIgOiBbCisgICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRy
dWUsIDApLAorICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAxMDAwKQorICBdLAorCisgICJz
eW5jb25tYWluIiA6IFsKKyAgICBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QWZ0ZXJPcGVuLAor
ICAgIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRCZWZvcmVPcGVuCisgIF0sCisKKyAgInN5bmNv
bndvcmtlciIgOiBbCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKGZhbHNlLCAibm8gdGltZSBvdXQg
c2NoZWR1bGVkLCBsb2FkIGZpcmVzIG5vcm1hbGx5IiwgMCksCisgICAgbmV3IFJlcXVlc3RUcmFj
a2VyKGZhbHNlLCAibG9hZCBmaXJlcyBub3JtYWxseSIsIDUwMDApLAorICAgIC8vIEZJWE1FOiBo
dHRwOi8vd2Via2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1cGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVk
IHlldCwgdGhpcyB0ZXN0IGlzIG5vdCBydW4uCisgICAgLy8gbmV3IFJlcXVlc3RUcmFja2VyKGZh
bHNlLCAidGltZW91dCBoaXQgYmVmb3JlIGxvYWQiLCAyMDAwKSwKKyAgXQorfTsKKwordmFyIFRl
c3RSZXF1ZXN0cyA9IFtdOworCisvLyBUaGlzIGNvZGUgY29udHJvbHMgbW92aW5nIGZyb20gb25l
IHRlc3QgdG8gYW5vdGhlci4KK3ZhciBUZXN0Q291bnRlciA9IHsKKyAgdGVzdENvbXBsZXRlOiBm
dW5jdGlvbigpIHsKKyAgICAvLyBBbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoZXJlIGFyZSBv
dGhlciBldmVudHMgY29taW5nLgorICAgIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgIFRlc3RDb3VudGVyLm5leHQoKTsKKyAgICB9LCA1MDAwKTsKKyAgfSwKKworICBuZXh0OiBm
dW5jdGlvbigpIHsKKyAgICB2YXIgdGVzdCA9IFRlc3RSZXF1ZXN0cy5zaGlmdCgpOworCisgICAg
aWYgKHRlc3QpIHsKKyAgICAgIHRlc3Quc3RhcnRYSFIoKTsKKyAgICB9CisgICAgZWxzZSB7Cisg
ICAgICBtZXNzYWdlKCJkb25lIik7CisgICAgfQorICB9Cit9OworCitzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgaWYgKGV2ZW50LmRhdGEudHlw
ZSA9PSAic3RhcnQiKSB7CisgICAgVGVzdFJlcXVlc3RzID0gVGVzdFJlcXVlc3RHcm91cHNbZXZl
bnQuZGF0YS5ncm91cF07CisgICAgVGVzdENvdW50ZXIubmV4dCgpOworICB9Cit9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRhNTE3
MTJjYTBhZGMyN2RhYmRhMDM3OGFlMDY1YzQxMWUxYzg2ZmQuLjFlMjIzN2IxMGRhYWE5MDM4ZjEx
NjZkZDg4OTdmNWM2NzA2YWE1N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTkyLDYgKzk5MiwxOSBAQCB3ZWJraXQub3JnL2IvNTg4
OTggZmFzdC9ibG9jay9mbG9hdC9vdmVyaGFuZ2luZy10YWxsLWJsb2NrLmh0bWwgWyBGYWlsdXJl
IF0KICMgTmV3IHRlc3QgYWRkZWQgdGhhdCBuZWVkcyBwbGF0Zm9ybSBzcGVjaWZpYyByZXN1bHRz
CiB3ZWJraXQub3JnL2IvOTg0NTIgZmFzdC90ZXh0L3ZlcnRpY2FsLXJsLXJ0bC1saW5lYnJlYWsu
aHRtbCBbIEZhaWx1cmUgXQogCisjIFJlc291cmNlUmVxdWVzdCBuZWVkcyB0byBzdXBwb3J0IHNl
dFRpbWVvdXRJbnRlcnZhbAord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBbIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgz
OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtc3luY29ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2Uu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgWyBGYWlsdXJl
IF0KKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogIyBJbnNwZWN0b3IgdGVzdHMKICMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmQxODJlZGYwODQ4Mzg0MTRj
ZTEyY2ViODIwNDY5MGJiMDFkMzc3MC4uMGE3ZGQwNmY0ODA0ZmYxYzUwMmMwNTgyZTNmZGNmODVk
MzZkNThkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTYwOSw2ICs2MDksMTggQEAgQnVnKEdUSykgWyBEZWJ1ZyBdIHNwdXRuaWsvVW5pY29kZS9Vbmlj
b2RlXzIxOC9TNy42X0E1LjNfVDEuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RLKSBbIERlYnVn
IF0gc3B1dG5pay9Vbmljb2RlL1VuaWNvZGVfMjE4L1M3LjZfQTUuM19UMi5odG1sIFsgUGFzcyBT
bG93IF0KIEJ1ZyhHVEspIHRhYmxlcy9tb3ppbGxhL290aGVyL3NsYXNobG9nby5odG1sIFsgUGFz
cyBTbG93IF0KIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RL
KSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1hYm9ydGVkb25tYWluLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4
cGlyZXMuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwgWyBQYXNzIFNs
b3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykg
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
dHdpY2UuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbCBb
IFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIFBh
c3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsgUGFzcyBTbG93IF0gCitC
dWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEsp
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci10d2ljZS5odG1sIFsgUGFzcyBTbG93IF0gCisKICMvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAjIEVuZCBvZiBzbG93IHRlc3RzCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YzdmYzUwMGQ5ZjQwOWUzNzFlNjAwZDllZGQzMmE0MWE1YzM4ODdjNy4uOGQ1YTk1NDIwMGU3NGQ5
YzY0ZDcwY2Q0YTNjYWMyM2Q0ODM2ZmY5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0
RXhwZWN0YXRpb25zCkBAIC03ODYsNiArNzg2LDE5IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvY2FjaGUtb3ZlcnJpZGUuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODY2MDYKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
Y2hlY2stZ2V0LXJlYWR5c3RhdGUtZm9yLTQwNC13aXRob3V0LWJvZHkuaHRtbAogCisjIFJlc291
cmNlUmVxdWVzdCBuZWVkcyB0byBzdXBwb3J0IHNldFRpbWVvdXRJbnRlcnZhbAord2Via2l0Lm9y
Zy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LWFib3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFi
b3J0ZWRvbm1haW4uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRl
c2V4cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85
ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgz
OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgz
OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KKwogIyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
IwogIyAgICAgICBGYWlsaW5nIGVkaXRpbmcvaW5zZXJ0aW5nIHRlc3RzLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169858</attachid>
            <date>2012-10-22 02:24:40 -0700</date>
            <delta_ts>2012-10-22 12:27:38 -0700</delta_ts>
            <desc>Patch v4, FIXME removed.</desc>
            <filename>bug-74802-20121022122636.patch</filename>
            <type>text/plain</type>
            <size>62206</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBmYjI3MzRlNTZlZmJi
NWVlYWEzMjI5Y2ViN2I1ZjA1NzY3ZDk5Yi4uNDhmZWVlMjBiMjNkMmQyMDg2YzEzNzhlZTE2NmY4
ZmYzY2MzNjc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTE3ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBUZXN0cyBp
bXBvcnRlZCBhbmQgYWRhcHRlZCB0byBXM0MgdGVzdGhhcm5lc3MuanMgd2l0aCBwZXJtaXNzaW9u
IChQRC9CU0QgbGljZW5zZSkKKyAgICAgICAgZnJvbSBNb3ppbGxhJ3MgQWxleCBWaW5jZW50J3Mg
c2V0IG9mIFhIUjIgdGltZW91dCB0ZXN0cy4gQmlnIHRoYW5rcyEKKyAgICAgICAgQ21wLiBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MjU4MTYjYzg2CisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXR3aWNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKTogRm9yd2FyZCBpbmZvcm1hdGlvbiBhYm91
dCB0aW1lb3V0IGNhc2UuCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKTogRGlzdGluZ3Vp
c2ggdGltZW91dCBjYXNlIHdoZW4gaW5mb3JtaW5nIGNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogRGlzdGluZ3Vpc2hpbmcgdGltZW91dCBjYXNlIGZvciBl
cnJvcnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZEZhaWxlZE9yQ2FuY2VsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnRpbWVkT3V0KToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KTogSW5pdGlhbGl6aW5nIG1fdGltZW91dCB2YWx1ZSB0byB6ZXJv
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQpOiBTZXR0ZXIg
ZnVuY3Rpb24sIHBvc3NpYmx5IHJhaXNpbmcgSlMgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6IE9wZW4gY2FsbCBt
YXkgcmFpc2UgZXhjZXB0aW9uIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyB3aGVuIHRpbWVvdXQg
dmFsdWUgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBBc3NpZ25pbmcgdGltZW91dCB2YWx1ZSB0byBSZXNvdXJjZVJlcXVlc3QuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6IEhhbmRsaW5nIHRpbWVvdXQg
Y2FzZSBzZXBhcmF0ZWx5LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFRp
bWVvdXQpOiBUaW1lb3V0IGNhc2Ugc3RhdGUgdHJhbnNpc2l0aW9uIGFuZCBldmVudCBmaXJpbmcg
YXMgc3BlYydlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDogTmV3IGV2ZW50IGxp
c3RlbmVyLCBtZW1iZXIgYW5kIGNhbGxiYWNrIGZvciBoYW5kbGluZyB0aW1lb3V0LgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnRpbWVvdXQpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IE5ldyBldmVudCBsaXN0
ZW5lciBhbmQgcHJvcGVydHkgYWRkZWQuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDogQWRk
ZWQgYW4gZXhjZXB0aW9uIHZhbHVlIGZvciB0aGUgdGltZW91dCBjYXNlLgorCisKIDIwMTItMTAt
MjIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtT
aGFkb3ddIEFTU0VSVCB0cmlnZ2VyZWQgd2hlbiB3ZSB0cnkgcmVwcm9qZWN0aW5nIGZhbGxiYWNr
IGVsZW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVjNjkw
NzRmLi5hYzY4OTFhZjdjYWYwYjE5ZDJhODkyNmRlMmM4ZDhlZmZiZTQ4YWUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
MzA4LDYgKzMwOCw4IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAgIFJlc291cmNlRXJyb3IgZXJy
b3IoIk5ldHdvcmsgUmVxdWVzdCBGYWlsZWQiLCAwLCBtX3Jlc291cmNlLT51cmwoKSwgIlJlc291
cmNlIGZhaWxlZCB0byBsb2FkIik7CiAgICAgICAgIGlmIChtX3Jlc291cmNlLT53YXNDYW5jZWxl
ZCgpKQogICAgICAgICAgICAgZXJyb3Iuc2V0SXNDYW5jZWxsYXRpb24odHJ1ZSk7CisgICAgICAg
IGlmIChtX3Jlc291cmNlLT50aW1lZE91dCgpKQorICAgICAgICAgICAgZXJyb3Iuc2V0SXNUaW1l
b3V0KHRydWUpOwogICAgICAgICBkaWRGYWlsKGVycm9yKTsKICAgICB9IGVsc2UKICAgICAgICAg
ZGlkRmluaXNoTG9hZGluZyhtX3Jlc291cmNlLT5pZGVudGlmaWVyKCksIG1fcmVzb3VyY2UtPmxv
YWRGaW5pc2hUaW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggZTU3MDE3MTI2NDVkODM0MTI2ODRmYmJlZDY5MTgyNWE4MDEwZmUyNS4uZTM5
YWUyZmIwMjY4NzQ5ZDE1NjA3MjY5MTExZmIyNGY2ZWQ1M2FkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yODMsNyArMjgzLDEwIEBAIHZvaWQg
U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVzb3VyY2UobV9yZXNvdXJjZSk7
CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGluZzsKLSAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNoZWRS
ZXNvdXJjZTo6TG9hZEVycm9yKTsKKyAgICBpZiAoZXJyb3IuaXNUaW1lb3V0KCkpCisgICAgICAg
IG1fcmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291cmNlOjpUaW1lb3V0RXJyb3IpOworICAgIGVs
c2UKKyAgICAgICAgbV9yZXNvdXJjZS0+ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7
CiAgICAgaWYgKCFtX3Jlc291cmNlLT5pc1ByZWxvYWRlZCgpKQogICAgICAgICBtZW1vcnlDYWNo
ZSgpLT5yZW1vdmUobV9yZXNvdXJjZSk7CiAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoZXJy
b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRl
eCBjM2QwOTNhMmZlNzAzYzgzNDgxMGEzZTIzYzdmNWNmZmVjNDYyZTkyLi5mYWM4ODQ1MWI1ZmFj
YWUwYmViNTlhYTg0NmI4MWFmMjIwNDEyZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IENhY2hlZCwgICAgICAgLy8gcmVndWxhciBjYXNlCiAgICAgICAgIENhbmNlbGVkLAogICAgICAg
ICBMb2FkRXJyb3IsCisgICAgICAgIFRpbWVvdXRFcnJvciwKICAgICAgICAgRGVjb2RlRXJyb3IK
ICAgICB9OwogCkBAIC0yMDcsOCArMjA4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWNjZXB0
KGNvbnN0IFN0cmluZyYgYWNjZXB0KSB7IG1fYWNjZXB0ID0gYWNjZXB0OyB9CiAKICAgICBib29s
IHdhc0NhbmNlbGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0dXMgPT0gQ2FuY2VsZWQ7IH0KLSAg
ICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiAobV9zdGF0dXMgPT0gTG9hZEVy
cm9yIHx8IG1fc3RhdHVzID09IERlY29kZUVycm9yKTsgfQotICAgIGJvb2wgbG9hZEZhaWxlZE9y
Q2FuY2VsZWQoKSB7IHJldHVybiBtX3N0YXR1cyA9PSBDYW5jZWxlZCB8fCBtX3N0YXR1cyA9PSBM
b2FkRXJyb3I7IH0KKyAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiAobV9z
dGF0dXMgPT0gTG9hZEVycm9yIHx8IG1fc3RhdHVzID09IERlY29kZUVycm9yIHx8IG1fc3RhdHVz
ID09IFRpbWVvdXRFcnJvcik7IH0KKyAgICBib29sIGxvYWRGYWlsZWRPckNhbmNlbGVkKCkgeyBy
ZXR1cm4gbV9zdGF0dXMgPT0gQ2FuY2VsZWQgfHwgbV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8IG1f
c3RhdHVzID09IFRpbWVvdXRFcnJvcjsgfQorICAgIGJvb2wgdGltZWRPdXQoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXR1cyA9PSBUaW1lb3V0RXJyb3I7IH0KIAogICAgIGJvb2wgc2hvdWxkU2VuZFJl
c291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENh
bGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAppbmRleCBmNjE2OTA4NTRlZjczZTM5YmMwNGZmNjkyOTY2NTFkYWM2YTg3YjBl
Li42ODc2MDcyNzRiMTE2OTQ3ZTU4MmE2MjUyZDFkNDRkOGY5N2MzMjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTMsNiArMyw3IEBACiAgKiAgQ29weXJpZ2h0IChD
KSAyMDA1LTIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KICAqICBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDggSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQu
b3JnPgogICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtMTc1LDYgKzE3Niw3IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxI
dHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNl
Y3VyCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmMo
dHJ1ZSkKICAgICAsIG1faW5jbHVkZUNyZWRlbnRpYWxzKGZhbHNlKQorICAgICwgbV90aW1lb3V0
TWlsbGlzZWNvbmRzKDApCiAgICAgLCBtX3N0YXRlKFVOU0VOVCkKICAgICAsIG1fY3JlYXRlZERv
Y3VtZW50KGZhbHNlKQogICAgICwgbV9lcnJvcihmYWxzZSkKQEAgLTMyNiw2ICszMjgsMTkgQEAg
QXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIHJldHVybiBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuZ2V0KCk7CiB9CiAK
K3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQodW5zaWduZWQgbG9uZyB0aW1lb3V0LCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogTmVlZCB0byB0cmlnZ2VyIG9yIHVw
ZGF0ZSB0aGUgdGltZW91dCBUaW1lciBoZXJlLCBpZiBuZWVkZWQuIGh0dHA6Ly93ZWJraXQub3Jn
L2IvOTgxNTYKKyAgICAvLyBYSFIyIHNwZWMsIDQuNy4zLiAiVGhpcyBpbXBsaWVzIHRoYXQgdGhl
IHRpbWVvdXQgYXR0cmlidXRlIGNhbiBiZSBzZXQgd2hpbGUgZmV0Y2hpbmcgaXMgaW4gcHJvZ3Jl
c3MuIElmIHRoYXQgb2NjdXJzIGl0IHdpbGwgc3RpbGwgYmUgbWVhc3VyZWQgcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IG9mIGZldGNoaW5nLiIKKyAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc0RvY3VtZW50KCkgJiYgIW1fYXN5bmMpIHsKKyAgICAgICAgbG9nQ29uc29sZUVycm9yKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0LnRpbWVvdXQgY2Fubm90IGJl
IHNldCBmb3Igc3luY2hyb25vdXMgSFRUUChTKSByZXF1ZXN0cyBtYWRlIGZyb20gdGhlIHdpbmRv
dyBjb250ZXh0LiIpOworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBtX3RpbWVvdXRNaWxsaXNlY29uZHMgPSB0aW1lb3V0OworfQor
CisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlc3BvbnNlVHlwZShjb25zdCBTdHJpbmcmIHJl
c3BvbnNlVHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fc3RhdGUgPj0gTE9B
RElORykgewpAQCAtNDk1LDYgKzUxMCwxMyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgYXN5bmMsIEV4YwogICAg
ICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KKworICAgICAgICAvLyBTaW1pbGFybHksIHRpbWVvdXRzIGFyZSBkaXNhYmxlZCBm
b3Igc3luY2hyb25vdXMgcmVxdWVzdHMgYXMgd2VsbC4KKyAgICAgICAgaWYgKG1fdGltZW91dE1p
bGxpc2Vjb25kcyA+IDApIHsKKyAgICAgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksICJTeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdHMgbXVzdCBub3QgaGF2
ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LiIpOworICAgICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBtX21l
dGhvZCA9IHVwcGVyY2FzZUtub3duSFRUUE1ldGhvZChtZXRob2QpOwpAQCAtNzQyLDYgKzc2NCw5
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBVc2VBY2Nlc3NDb250cm9s
OwogICAgIG9wdGlvbnMuc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbigpOwogCisgICAg
aWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykKKyAgICAgICAgcmVxdWVzdC5zZXRUaW1lb3V0SW50
ZXJ2YWwobV90aW1lb3V0TWlsbGlzZWNvbmRzIC8gMTAwMC4wKTsKKwogICAgIG1fZXhjZXB0aW9u
Q29kZSA9IDA7CiAgICAgbV9lcnJvciA9IGZhbHNlOwogCkBAIC0xMDU4LDYgKzEwODMsMTEgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChlcnJvci5pc1RpbWVvdXQoKSkgewor
ICAgICAgICBkaWRUaW1lb3V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBO
ZXR3b3JrIGZhaWx1cmVzIGFyZSBhbHJlYWR5IHJlcG9ydGVkIHRvIFdlYiBJbnNwZWN0b3IgYnkg
UmVzb3VyY2VMb2FkZXIuCiAgICAgaWYgKGVycm9yLmRvbWFpbigpID09IGVycm9yRG9tYWluV2Vi
S2l0SW50ZXJuYWwpCiAgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksICJYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCAiICsgZXJyb3IuZmFpbGluZ1VSTCgp
ICsgIi4gIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwpAQCAtMTE4Miw2ICsxMjEy
LDM0IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW4pCiAgICAgfQogfQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRUaW1lb3V0
KCkKK3sKKyAgICAvLyBpbnRlcm5hbEFib3J0KCkgY2FsbHMgZHJvcFByb3RlY3Rpb24oKSwgd2hp
Y2ggbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlLgorICAgIFJlZlB0cjxYTUxIdHRwUmVx
dWVzdD4gcHJvdGVjdCh0aGlzKTsKKyAgICBpbnRlcm5hbEFib3J0KCk7CisKKyAgICBjbGVhclJl
c3BvbnNlKCk7CisgICAgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBtX2Vycm9yID0gdHJ1ZTsKKyAg
ICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6VElNRU9VVF9FUlI7
CisKKyAgICBpZiAoIW1fYXN5bmMpIHsKKyAgICAgICAgbV9zdGF0ZSA9IERPTkU7CisgICAgICAg
IG1fZXhjZXB0aW9uQ29kZSA9IFRJTUVPVVRfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgY2hhbmdlU3RhdGUoRE9ORSk7CisKKyAgICBpZiAoIW1fdXBsb2FkQ29tcGxldGUpIHsK
KyAgICAgICAgbV91cGxvYWRDb21wbGV0ZSA9IHRydWU7CisgICAgICAgIGlmIChtX3VwbG9hZCAm
JiBtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hF
dmVudEFuZExvYWRFbmQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnRpbWVvdXRFdmVudCkpOworICAgIH0KKyAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRs
ZS5kaXNwYXRjaEV2ZW50QW5kTG9hZEVuZChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkudGltZW91dEV2ZW50KSk7Cit9CisKIGJvb2wgWE1MSHR0cFJlcXVl
c3Q6OmNhblN1c3BlbmQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9sb2FkZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGNjNmNiYzUwYzM2MDE2NTA4OWUyNjU5OTc1Y2Qx
MGQzMTEyMmVmNWQuLmYyNzc4MmY2MjZhYWE3NjFhYTc1MzNjMjE4YzIzYmM4MzIzYWExZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yLDYgKzIsNyBAQAogICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55
cG9wLmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KICAqCiAg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKQEAgLTY5LDYgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2
aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRUaW1l
b3V0KCk7CiAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lKCk7CkBAIC0xMDQsNiArMTA2LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiBvcHRpb25h
bFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgpOyB9
CiAgICAgQmxvYiogcmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBCbG9iKiBvcHRp
b25hbFJlc3BvbnNlQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdldCgpOyB9
CisgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1lb3V0TWls
bGlzZWNvbmRzOyB9CisgICAgdm9pZCBzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91dCwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZW5kRnJvbUluc3BlY3RvcihQYXNzUmVmUHRy
PEZvcm1EYXRhPiwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHVibGlj
OgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGVuZCk7CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2Fkc3RhcnQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIocHJvZ3Jlc3MpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIodGltZW91dCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1
ZXN0Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+OjpkZXJlZjsK
QEAgLTE5MSw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJp
ZGU7CiAgICAgYm9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7Cisg
ICAgdW5zaWduZWQgbG9uZyBtX3RpbWVvdXRNaWxsaXNlY29uZHM7CiAgICAgUmVmUHRyPEJsb2I+
IG1fcmVzcG9uc2VCbG9iOwogCiAgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggMzdjNjk0ZTc1Y2IyNzNi
OGFmMjRkMDQ1YWMzNTQyZWRjMzIzODMzMi4uYjZhZTIzMmI2YjBjZGFlZjQ1NmYyNzQwNTZjOWY1
ZDQxNjFmZDZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC00Myw2
ICs0Myw3IEBACiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkZW5kOwogICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OwogICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ucHJvZ3Jlc3M7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1lb3V0
OwogCiAgICAgLy8gZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwpAQCAtNTQsNiArNTUsOCBAQAogICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IExPQURJTkcgPSAzOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERP
TkUgPSA0OwogCisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IHJlYWR5U3RhdGU7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVu
dGlhbHMKQEAgLTExNyw0ICsxMjAsMyBAQAogICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBF
dmVudCBldnQpCiAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiB9OwotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBjMDZjMDdj
MGRlZTE4ZTQyNzViNjE2ODkzNWRlOGJjYjVhODU1YmMzLi5iOGNiMmYzOTlkYjBhZTlmYmVmMTE1
ZDE3MmZkZjJjYzVjMjA3NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbi5jcHAKQEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIHN0cnVjdCBYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3Qg
ZGVzY3JpcHRpb247CiB9IGV4Y2VwdGlvbnNbXSA9IHsKICAgICB7ICJORVRXT1JLX0VSUiIsICJB
IG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAotICAg
IHsgIkFCT1JUX0VSUiIsICJUaGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdCBpbiBzeW5jaHJvbm91
cyByZXF1ZXN0cy4iIH0KKyAgICB7ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRlZCBhIHJl
cXVlc3QgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAorICAgIHsgIlRJTUVPVVRfRVJSIiwg
IkEgdGltZW91dCBlcnJvciBvY2N1cmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfQogfTsK
IAogYm9vbCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4
Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCmluZGV4IDdjNDM3
ZWYyZjg1NDg5NDkxOTNmZDAwMzg1OGMwZTIxODZlMmQyODkuLjk0MGUzMDEwNzJkZTQ4ZjI1MDZk
YzI0MTVjMjAyZWU4OGY4N2NmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbi5oCkBAIC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25Db2RlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSBYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbk9mZnNldCArIDEwMSwKLSAgICAgICAgQUJPUlRfRVJSCisgICAgICAg
IEFCT1JUX0VSUiwKKyAgICAgICAgVElNRU9VVF9FUlIKICAgICB9OwogCiAgICAgc3RhdGljIGJv
b2wgaW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbiopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGZlMTI4YjBlNWNmODZiOTRmNjVjZmNkMDBlMDhjNDZiMDA3MjA0
MDMuLjkwYWVhZjUzNWQwN2M2MTUxMmU1YjZmMTIwNjVlOGYzMjAwNzgzN2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxMi0xMC0xNyAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0
c2NoZXNAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCB0aW1lb3V0IHN1cHBvcnQgdG8gWE1MSHR0
cFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc0ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdHMgZm9yIHRoZSBYSFIyIHRpbWVvdXQgZnVuY3Rpb25hbGl0eSwgaW1wb3J0ZWQgYW5kIGFk
YXB0ZWQgdG8gVzNDIHRlc3RoYXJuZXNzLmpzCisgICAgICAgIHdpdGggcGVybWlzc2lvbiAoUEQv
QlNEIGxpY2Vuc2UpIGZyb20gTW96aWxsYSdzIEFsZXggVmluY2VudCdzIHNldCBvZiBYSFIyIHRp
bWVvdXQgdGVzdHMuIEJpZyB0aGFua3MhCisgICAgICAgIENtcC4gaHR0cHM6Ly9idWd6aWxsYS5t
b3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorCisgICAgICAgIFRoZSBjYXNl
IG9mIGxhdGUgdXBkYXRlcyB0byB0aGUgdGltZW91dCBwcm9wZXJ0eSwgY2hhbmdpbmcgdGhlIHRp
bWVvdXQgdmFsdWUgYWZ0ZXIgc2VuZCgpCisgICAgICAgIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFu
ZCBoYW5kbGVkIHNlcGFyYXRlbHkgaW4gYnVnIDk4MTU2LiBUZXN0cyB0aGF0IGFyZSB0ZXN0aW5n
IHRoaXMgZmVhdHVyZQorICAgICAgICBhcmUgY29tbWVudGVkIG91dCB1bnRpbCB0aGlzIGJ1ZyBp
cyB0YWNrbGVkLgorCisgICAgICAgIFNpbmNlIHdlIHRyeSB0byBhdm9pZCBsb25nIHJ1bm5pbmcg
dGVzdHMsIHRoZSB0ZXN0cyB3ZXJlIHNwbGl0IGludG8gcGllY2VzIGRpZ2VzdGlibGUgYnkgV1RS
L0RUUgorICAgICAgICB0byBiZSBydW4gd2l0aCBzbWFsbGVyIHRpbWVvdXRzLiBFYWNoIGluZGl2
aWR1YWwgdGVzdCBzaG91bGQgY29tcGxldGUgaW4gbGVzcyB0aGFuIDIwIHNlY29uZHMuCisKKyAg
ICAgICAgVGhlIHN1ZmZpeCBvZiB0aGUgdGVzdCBmaWxlbmFtZSBtYXRjaGVzIHRoZSBncm91cHMg
aW4geG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyB3aGljaCBjb250YWlucworICAgICAgICBhbGwg
dGVzdHMgdGhhdCBhcmUgcnVuLiBUaGUgcmVzdWx0IG9mIGFzc2VydGlvbnMgaXMgcmVwb3J0ZWQg
YmFjayB0byB0ZXN0aGFybmVzcy5qcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0
ZWRvbm1haW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1
bm5lci5qczogQWRkZWQuIERpc3Rpbmd1aXNoZXMgd2hpY2ggZ3JvdXAgb2YgdGVzdHMgdG8gcnVu
IGJhc2VkIG9uIGZpbGVuYW1lIHN1ZmZpeC4KKyAgICAgICAgKHRlc3RSZXN1bHRDYWxsYmFja0hh
bmRsZXIucmV0dXJuKToKKyAgICAgICAgKGdyb3VwRnJvbUxvY2F0aW9uKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1z
aW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtc3luY29ubWFpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5
bmNvbm1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC10d2ljZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtl
ci1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXR3aWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzOiBBZGRlZC4gQ29udGFp
bnMgdGVzdCBjYXNlcyBmb3IgYWxsIGluZGl2aWR1YWwgdGVzdCBodG1sIGZpbGVzLgorICAgICAg
ICAobWVzc2FnZSk6IFdyYXBwZXIgZm9yIHBvc3RNZXNzYWdlIGluIHdvcmtlciBhbmQgZG9jdW1l
bnQgY29udGV4dCBjYXNlLgorICAgICAgICAoaXMpLAorICAgICAgICAob2spOiBBc3NlcnRpb24g
ZnVuY3Rpb25zLgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIpOiBDbGFzcyBmb3IgdmFyaWF0aW9u
cyBvZiB0aGUgcmVndWxhciB0aW1lb3V0IGNhc2UuCisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5w
cm90b3R5cGUuc3RhcnRYSFIuaGFuZGxlRXZlbnQpOgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIu
cHJvdG90eXBlLnN0YXJ0WEhSKToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5n
ZXRNZXNzYWdlKToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5oYW5kbGVFdmVu
dCk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdCk6IENsYXNzIGZvciB0ZXN0aW5nIHRpbWVvdXQg
ZXZlbnQgdnMuIGFib3J0IGV2ZW50cy4KKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlw
ZS5zdGFydFhIUi5oYW5kbGVFdmVudCk6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5
cGUuc3RhcnRYSFIuYWJvcnRSZXEpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBl
LnN0YXJ0WEhSLmVsc2UpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLnN0YXJ0
WEhSKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5ub0V2ZW50c0ZpcmVkKToK
KyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5nZXRNZXNzYWdlKToKKyAgICAgICAg
KEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChTeW5jUmVx
dWVzdFNldHRpbmdUaW1lb3V0QWZ0ZXJPcGVuLnN0YXJ0WEhSKSwKKyAgICAgICAgKFN5bmNSZXF1
ZXN0U2V0dGluZ1RpbWVvdXRCZWZvcmVPcGVuLnN0YXJ0WEhSKTogVGVzdCBjbGFzc2VzIGZvciBz
eW5jaHJvbm91cyBYSFIgY2FzZXMuCisgICAgICAgIChUZXN0Q291bnRlci50ZXN0Q29tcGxldGUp
LAorICAgICAgICAoVGVzdENvdW50ZXIubmV4dCk6IFVzZWQgZm9yIGN5Y2xpbmcgdGhyb3VnaCB0
ZXN0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBTa2lw
cGluZyBYSFIgdGltZW91dCBjYXNlcyBzaW5jZSBzZXRUaW1lb3V0SW50ZXJ2YWwgaXMgbm90IHN1
cHBvcnRlZCBpbiBDaHJvbWl1bSdzIEhUVFAgc3RhY2suCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmtpbmcgWEhSIHRpbWVvdXQgY2FzZXMgYXMgc2xvdyBpbiBv
cmRlciB0byBydW4gdGhlbSB3aXRoIGEgbG9uZ2VyIHRlc3QgdGltZW91dCB0aHJlc2hvbGQuCisg
ICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcgWEhSIHRpbWVv
dXQgY2FzZXMgc2luY2Ugc2V0VGltZW91dEludGVydmFsIGlzIG5vdCBzdXBwb3J0ZWQgaW4gQ2hy
b21pdW0ncyBIVFRQIHN0YWNrLgorCiAyMDEyLTEwLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBBU1NFUlQgdHJpZ2dlcmVkIHdo
ZW4gd2UgdHJ5IHJlcHJvamVjdGluZyBmYWxsYmFjayBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxOTQyOTA2NTM0ZTYyYmVjY2JhNjY5OTZkMDViNGM3OTlj
YjYxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhh
dCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMg
Y2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRl
c3RzIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorUEFTUyBYSFIyIFRp
bWVvdXQgUHJvcGVydHkgVGVzdHMgMyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0
ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1hYm9ydGVkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhS
MiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAv
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgewor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0
Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAi
c3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5k
b3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9u
PC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBw
cm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChp
LmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzNhNmE5MzgwYzk1NTEzZWE0ZGZlNTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBY
SFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBp
biBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtYWJvcnRlZG9ubWFpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgz
YTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVk
b25tYWluLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJh
Y2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQi
LCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3aW5kb3cucG9z
dE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4K
KyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0
eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5v
bi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzNhNmE5MzgwYzk1NTEzZWE0ZGZlNTk0MTI1NzZkODJjYmMzMTZmNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNl
cyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMg
MSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0ZjNh
Zjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0
bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVy
cm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3Nz
IiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVu
bmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhy
KCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0
UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5
cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07CisgICAgICAgICAg
ICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2Ny
aXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGlt
ZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGluIGRvY3Vt
ZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQ4NTI4N2Y5NzliZTRmN2Iy
MTk2YTY2ZjE3MGYzZjgyODM4ZDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVu
bmVyLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRs
ZXIoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PSAiZG9uZSIpIHsKKyAgICAgICAgZG9u
ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0g
ImlzIikgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfZXF1YWxzKGV2ZW50LmRh
dGEuZ290LCBldmVudC5kYXRhLmV4cGVjdGVkLCBldmVudC5kYXRhLm1zZyk7IH0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRhLnR5cGUgPT0gIm9rIikgeworICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShldmVudC5kYXRhLmJvb2wsIGV2ZW50
LmRhdGEubXNnKTsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdy
b3VwRnJvbUxvY2F0aW9uKCkgeworICAgIHN1ZmZpeE1hdGNoID0gL3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtKC4qKVwuaHRtbC87CisgICAgZ3JvdXAgPSBzdWZmaXhNYXRjaC5leGVjKGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYpWzFdOworICAgIGdyb3VwID0gZ3JvdXAucmVwbGFjZSgid29ya2VyLSIs
ICIiKTsKKyAgICByZXR1cm4gZ3JvdXA7Cit9CisKKy8vIFNldHRpbmcgdXAgdGVzdGhhcm5lc3Mu
anMKK3NldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgdGltZW91dDogMyAqIDYwICogMTAwMCB9
KTsKKworLy8gQWJvcnQgdGVzdCBleGVjdXRpb24gaWYgYW4gaW5kaXZpZHVhbCB0ZXN0IGNhc2Ug
ZmFpbHMuCithZGRfcmVzdWx0X2NhbGxiYWNrKGZ1bmN0aW9uICh0KSB7CisgICAgaWYgKHQuc3Rh
dHVzID09IHQuRkFJTCkKKyAgICAgICAgZG9uZSgpOworfSk7CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0MDdiNzIwMjQ1MGVkODA2MDU1NjgzNGI5NWY0MGM3MTQ2OWQxNmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBY
SFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBp
biBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAK
K1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhhNTczMDEyZjRmM2FmODYwZGQxODNhN2ZlZWY0ZTk2Y2VkZDQ5ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAg
PHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91
dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNz
LmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVv
dXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0
LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVz
dFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
dGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7
ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAg
ICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5E
ZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIy
IHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBk
b2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5j
b25tYWluLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRmODZjOTNlNTk1MjYzODY5MmI4YTdjZmIxOTU4NDM5NjMwOTI2NjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0LnRpbWVvdXQgY2Fu
bm90IGJlIHNldCBmb3Igc3luY2hyb25vdXMgSFRUUChTKSByZXF1ZXN0cyBtYWRlIGZyb20gdGhl
IHdpbmRvdyBjb250ZXh0LgorQ09OU09MRSBNRVNTQUdFOiBTeW5jaHJvbm91cyBYTUxIdHRwUmVx
dWVzdHMgbXVzdCBub3QgaGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LgorRGVzY3JpcHRpb24KKwor
VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZl
cyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2Vy
KSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIAorUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
c3luY29ubWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorIDwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4K
KyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzPC90aXRsZT4KKyAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0
aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhh
cm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3Qt
dGltZW91dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlv
biB0ZXN0WGhyKCkgeworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBydW5UZXN0
cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07Cisg
ICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UocnVuVGVzdHMsICIqIik7CisgICAgICAgIH07
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAg
PGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhl
IFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2Vz
IGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXR3aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDA3YjcyMDI0NTBlZDgwNjA1NTY4MzRiOTVmNDBjNzE0NjlkMTZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVv
dXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVu
dCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMSAKK1BBU1MgWEhS
MiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3
aWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAxMmY0
ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC10d2ljZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENh
bGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0
YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93
LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwv
aDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJv
cGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5l
LiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTI3YjQ1MjgzYzFhNTY4ODU3ZTEyNTA4YWIwODQxYmUxMjExNTVlMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhl
IFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2Vy
IGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2Vy
IAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMiAKK1BBU1MgWEhSMiBUaW1lb3V0
IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItYWJvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbApAQCAtMCwwICsxLDI3
IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29y
a2VyPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigp
IHsKKyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10
aW1lb3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVz
dHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9Owor
ICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+
RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhS
MiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29u
dGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE1NjExNzE0OTU0OGRlZjYyOTM5NTBjNTNiYjBmZjhjZTJhMDc4YWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVz
IHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGlu
IGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMg
aW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhh
MzQ3MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sCkBAIC0wLDAgKzEsMjcg
QEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3Jr
ZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkg
eworICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMiKTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAgICAgICAgIHZhciBydW5UZXN0
cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07Cisg
ICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMpOworICAgICAgICB9OworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5E
ZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIy
IHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250
ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXdvcmtlci1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNTI5N2VlZTc5
YmNkYTY1OWViOWZhYzhkOWMxY2U3NGJkMmM0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2NyaXB0
aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5
IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC4KKworCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRl
c3RzIGluIFdvcmtlciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEzNDcy
MjExMmJhODFhYjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1
ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
dGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJl
cXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAg
IHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7Cisg
ICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRD
YWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjog
InN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gx
PgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAg
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItc3luY29ud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTYxMTcxNDk1NDhk
ZWY2MjkzOTUwYzUzYmIwZmY4Y2UyYTA3OGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitEZXNj
cmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9w
ZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFT
UyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVv
dXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3Jr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNi
OTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5o
dG1sCkBAIC0wLDAgKzEsMjcgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyBpbiBXb3JrZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+Cisg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBm
dW5jdGlvbiB0ZXN0WGhyKCkgeworICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIo
InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiKTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAg
ICAgICAgIHZhciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZy
b21Mb2NhdGlvbigpIH07CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMp
OworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0
WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlk
YXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBp
biBpbiBhIHdvcmtlciBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZTUyOTdlZWU3OWJjZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4
dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNT
IFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItdHdpY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhhMzQ3MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbApAQCAtMCwwICsxLDI3IEBA
CisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2Vy
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsK
KyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1l
b3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMg
PSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAg
ICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVz
Y3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4
dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTcz
ZjIwNDJiNTYyMDgwYTNmZmQ2NDYzNGFmN2JlMGVmYWY2YzA1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQuanMKQEAgLTAsMCArMSwzNjIgQEAKKy8qIFRlc3QgaW1wb3J0ZWQgZnJvbSBB
bGV4IFZpbmNlbnQncyBYSFIyIHRpbWVvdXQgdGVzdHMsIHdyaXR0ZW4gZm9yIE1vemlsbGEuCisg
ICBodHRwczovL2hnLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9maWxlL3RpcC9jb250ZW50
L2Jhc2UvdGVzdC8KKyAgIFJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4sIGFjY29yZGlu
ZyB0bworICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1
ODE2I2M4NgorKi8KKworLyogTm90ZXM6CisgICAtIEFsbCB0aW1lcyBhcmUgZXhwcmVzc2VkIGlu
IG1pbGxpc2Vjb25kcyBpbiB0aGlzIHRlc3Qgc3VpdGUuCisgICAtIFRlc3QgaGFybmVzcyBjb2Rl
IGlzIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlLgorICAgLSBXZSBnZW5lcmF0ZSBvbmx5IG9uZSBy
ZXF1ZXN0IGF0IGEgdGltZSwgdG8gYXZvaWQgb3ZlcmxvYWRpbmcgdGhlIEhUVFAKKyAgIHJlcXVl
c3QgaGFuZGxlcnMuCisgKi8KKworLyoKKyAqIFRoaXMgc2hvdWxkIHBvaW50IHRvIGEgcmVzb3Vy
Y2UgdGhhdCByZXNwb25kcyBhZnRlciBhIGRlbGF5IG9mIDMgc2Vjb25kcy4KKyAqLwordmFyIFNU
QUxMRURfUkVRVUVTVF9VUkwgPSAiL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5jZ2k/bmFtZT0u
Li8uLi8uLi9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC5qcyZzdGFsbEZvcj0zJnN0YWxsQXQ9MCZtaW1lVHlwZT10ZXh0L3BsYWluIjsKKwor
dmFyIGluV29ya2VyID0gZmFsc2U7Cit0cnkgeworICBpbldvcmtlciA9ICEoc2VsZiBpbnN0YW5j
ZW9mIFdpbmRvdyk7Cit9IGNhdGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1ZTsKK30KKworZnVu
Y3Rpb24gbWVzc2FnZShvYmopIHsKKyAgaWYgKGluV29ya2VyKQorICAgIHNlbGYucG9zdE1lc3Nh
Z2Uob2JqKTsKKyAgZWxzZQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqLCAiKiIpOworfQorCitm
dW5jdGlvbiBpcyhnb3QsIGV4cGVjdGVkLCBtc2cpIHsKKyAgdmFyIG9iaiA9IHt9OworICBvYmou
dHlwZSA9ICJpcyI7CisgIG9iai5nb3QgPSBnb3Q7CisgIG9iai5leHBlY3RlZCA9IGV4cGVjdGVk
OworICBvYmoubXNnID0gbXNnOworCisgIG1lc3NhZ2Uob2JqKTsKK30KKworZnVuY3Rpb24gb2so
Ym9vbCwgbXNnKSB7CisgIHZhciBvYmogPSB7fTsKKyAgb2JqLnR5cGUgPSAib2siOworICBvYmou
Ym9vbCA9IGJvb2w7CisgIG9iai5tc2cgPSBtc2c7CisKKyAgbWVzc2FnZShvYmopOworfQorCisv
KioKKyAqIEdlbmVyYXRlIGFuZCB0cmFjayByZXN1bHRzIGZyb20gYSBYTUxIdHRwUmVxdWVzdCB3
aXRoIHJlZ2FyZHMgdG8gdGltZW91dHMuCisgKgorICogQHBhcmFtIHtTdHJpbmd9IGlkICAgICAg
ICAgVGhlIHRlc3QgZGVzY3JpcHRpb24uCisgKiBAcGFyYW0ge051bWJlcn0gdGltZUxpbWl0ICBU
aGUgaW5pdGlhbCBzZXR0aW5nIGZvciB0aGUgcmVxdWVzdCB0aW1lb3V0LgorICogQHBhcmFtIHtO
dW1iZXJ9IHJlc2V0QWZ0ZXIgKE9wdGlvbmFsKSBUaGUgdGltZSBhZnRlciBzZW5kaW5nIHRoZSBy
ZXF1ZXN0LCB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgdGhlIHRpbWVv
dXQuCisgKiBAcGFyYW0ge051bWJlcn0gcmVzZXRUbyAgICAoT3B0aW9uYWwpIFRoZSBkZWxheSB0
byByZXNldCB0aGUgdGltZW91dCB0by4KKyAqCisgKiBAbm90ZSBUaGUgYWN0dWFsIHRlc3Rpbmcg
dGFrZXMgcGxhY2UgaW4gaGFuZGxlRXZlbnQoZXZlbnQpLgorICogVGhlIHJlcXVlc3RzIGFyZSBn
ZW5lcmF0ZWQgaW4gc3RhcnRYSFIoKS4KKyAqCisgKiBAbm90ZSBJZiByZXNldEFmdGVyIGFuZCBy
ZXNldFRvIGFyZSBvbWl0dGVkLCBvbmx5IHRoZSBpbml0aWFsIHRpbWVvdXQgc2V0dGluZworICog
YXBwbGllcy4KKyAqCisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIERPTUV2ZW50TGlz
dGVuZXIKKyAqLworZnVuY3Rpb24gUmVxdWVzdFRyYWNrZXIoYXN5bmMsIGlkLCB0aW1lTGltaXQg
LypbLCByZXNldEFmdGVyLCByZXNldFRvXSovKSB7CisgIHRoaXMuYXN5bmMgPSBhc3luYzsKKyAg
dGhpcy5pZCA9IGlkOworICB0aGlzLnRpbWVMaW1pdCA9IHRpbWVMaW1pdDsKKworICBpZiAoYXJn
dW1lbnRzLmxlbmd0aCA+IDMpIHsKKyAgICB0aGlzLm11c3RSZXNldCAgPSB0cnVlOworICAgIHRo
aXMucmVzZXRBZnRlciA9IGFyZ3VtZW50c1szXTsKKyAgICB0aGlzLnJlc2V0VG8gICAgPSBhcmd1
bWVudHNbNF07CisgIH0KKworICB0aGlzLmhhc0ZpcmVkID0gZmFsc2U7Cit9CitSZXF1ZXN0VHJh
Y2tlci5wcm90b3R5cGUgPSB7CisgIC8qKgorICAgKiBTdGFydCB0aGUgWE1MSHR0cFJlcXVlc3Qh
CisgICAqLworICBzdGFydFhIUjogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOworICAgIHRoaXMucmVxdWVzdCA9IHJlcTsKKyAgICByZXEub3BlbigiR0VU
IiwgU1RBTExFRF9SRVFVRVNUX1VSTCwgdGhpcy5hc3luYyk7CisgICAgdmFyIG1lID0gdGhpczsK
KyAgICBmdW5jdGlvbiBoYW5kbGVFdmVudChlKSB7IHJldHVybiBtZS5oYW5kbGVFdmVudChlKTsg
fTsKKyAgICByZXEub25lcnJvciA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmxvYWQgPSBoYW5k
bGVFdmVudDsKKyAgICByZXEub25hYm9ydCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbnRpbWVv
dXQgPSBoYW5kbGVFdmVudDsKKworICAgIHJlcS50aW1lb3V0ID0gdGhpcy50aW1lTGltaXQ7Cisg
ICAgCisgICAgaWYgKHRoaXMubXVzdFJlc2V0KSB7CisgICAgICB2YXIgcmVzZXRUbyA9IHRoaXMu
cmVzZXRUbzsKKyAgICAgIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgcmVx
LnRpbWVvdXQgPSByZXNldFRvOworICAgICAgfSwgdGhpcy5yZXNldEFmdGVyKTsKKyAgICB9CisK
KyAgICByZXEuc2VuZChudWxsKTsKKyAgfSwKKworICAvKioKKyAgICogR2V0IGEgbWVzc2FnZSBk
ZXNjcmliaW5nIHRoaXMgdGVzdC4KKyAgICoKKyAgICogQHJldHVybnMge1N0cmluZ30gVGhlIHRl
c3QgZGVzY3JpcHRpb24uCisgICAqLworICBnZXRNZXNzYWdlOiBmdW5jdGlvbigpIHsKKyAgICB2
YXIgcnYgPSB0aGlzLmlkICsgIiwgIjsKKyAgICBpZiAodGhpcy5tdXN0UmVzZXQpIHsKKyAgICAg
IHJ2ICs9ICJvcmlnaW5hbCB0aW1lb3V0IGF0ICIgKyB0aGlzLnRpbWVMaW1pdCArICIsICI7Cisg
ICAgICBydiArPSAicmVzZXQgYXQgIiArIHRoaXMucmVzZXRBZnRlciArICIgdG8gIiArIHRoaXMu
cmVzZXRUbzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICBydiArPSAidGltZW91dCBzY2hlZHVs
ZWQgYXQgIiArIHRoaXMudGltZUxpbWl0OworICAgIH0KKyAgICByZXR1cm4gcnY7CisgIH0sCisK
KyAgLyoqCisgICAqIENoZWNrIHRoZSBldmVudCByZWNlaXZlZCwgYW5kIGlmIGl0J3MgdGhlIHJp
Z2h0IChhbmQgb25seSkgb25lIHdlIGdldC4KKyAgICoKKyAgICogQHBhcmFtIHtET01Qcm9ncmVz
c0V2ZW50fSBldnQgQW4gZXZlbnQgb2YgdHlwZSAibG9hZCIgb3IgInRpbWVvdXQiLgorICAgKi8K
KyAgaGFuZGxlRXZlbnQ6IGZ1bmN0aW9uKGV2dCkgeworICAgIGlmICh0aGlzLmhhc0ZpcmVkKSB7
CisgICAgICBvayhmYWxzZSwgIk9ubHkgb25lIGV2ZW50IHNob3VsZCBmaXJlOiAiICsgdGhpcy5n
ZXRNZXNzYWdlKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0aGlzLmhhc0ZpcmVkID0g
dHJ1ZTsKKworICAgIHZhciB0eXBlID0gZXZ0LnR5cGUsIGV4cGVjdGVkVHlwZTsKKyAgICAvLyBU
aGUgWEhSIHJlc3BvbmRzIGFmdGVyIDMwMDAgbWlsbGlzZWNvbmRzIHdpdGggYSBsb2FkIGV2ZW50
LgorICAgIHZhciB0aW1lTGltaXQgPSB0aGlzLm11c3RSZXNldCAmJiAodGhpcy5yZXNldEFmdGVy
IDwgTWF0aC5taW4oMzAwMCwgdGhpcy50aW1lTGltaXQpKSA/CisgICAgICAgICAgICAgICAgICAg
IHRoaXMucmVzZXRUbyA6CisgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZUxpbWl0OworICAg
IGlmICgodGltZUxpbWl0ID09IDApIHx8ICh0aW1lTGltaXQgPj0gMzAwMCkpIHsKKyAgICAgIGV4
cGVjdGVkVHlwZSA9ICJsb2FkIjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICBleHBlY3RlZFR5
cGUgPSAidGltZW91dCI7CisgICAgfQorICAgIGlzKHR5cGUsIGV4cGVjdGVkVHlwZSwgdGhpcy5n
ZXRNZXNzYWdlKCkpOworICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICB9Cit9Owor
CisvKioKKyAqIEdlbmVyYXRlIGFuZCB0cmFjayBYTUxIdHRwUmVxdWVzdHMgd2hpY2ggd2lsbCBo
YXZlIGFib3J0KCkgY2FsbGVkIG9uLgorICoKKyAqIEBwYXJhbSBzaG91bGRBYm9ydCB7Qm9vbGVh
bn0gVHJ1ZSBpZiB3ZSBzaG91bGQgY2FsbCBhYm9ydCBhdCBhbGwuCisgKiBAcGFyYW0gYWJvcnRE
ZWxheSAge051bWJlcn0gIFRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGNhbGxpbmcgYWJv
cnQoKS4KKyAqLworZnVuY3Rpb24gQWJvcnRlZFJlcXVlc3Qoc2hvdWxkQWJvcnQsIGFib3J0RGVs
YXkpIHsKKyAgdGhpcy5zaG91bGRBYm9ydCA9IHNob3VsZEFib3J0OworICB0aGlzLmFib3J0RGVs
YXkgID0gYWJvcnREZWxheTsKKyAgdGhpcy5oYXNGaXJlZCAgICA9IGZhbHNlOworfQorQWJvcnRl
ZFJlcXVlc3QucHJvdG90eXBlID0geworICAvKioKKyAgICogU3RhcnQgdGhlIFhNTEh0dHBSZXF1
ZXN0IQorICAgKi8KKyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciByZXEgPSBuZXcg
WE1MSHR0cFJlcXVlc3QoKTsKKyAgICB0aGlzLnJlcXVlc3QgPSByZXE7CisgICAgcmVxLm9wZW4o
IkdFVCIsIFNUQUxMRURfUkVRVUVTVF9VUkwpOworICAgIHZhciBtZSA9IHRoaXM7CisgICAgZnVu
Y3Rpb24gaGFuZGxlRXZlbnQoZSkgeyByZXR1cm4gbWUuaGFuZGxlRXZlbnQoZSk7IH07CisgICAg
cmVxLm9uZXJyb3IgPSBoYW5kbGVFdmVudDsKKyAgICByZXEub25sb2FkID0gaGFuZGxlRXZlbnQ7
CisgICAgcmVxLm9uYWJvcnQgPSBoYW5kbGVFdmVudDsKKyAgICByZXEub250aW1lb3V0ID0gaGFu
ZGxlRXZlbnQ7CisKKyAgICByZXEudGltZW91dCA9IDIwMDA7CisgICAgdmFyIF90aGlzID0gdGhp
czsKKworICAgIGZ1bmN0aW9uIGFib3J0UmVxKCkgeworICAgICAgcmVxLmFib3J0KCk7CisgICAg
fQorCisgICAgaWYgKCF0aGlzLnNob3VsZEFib3J0KSB7CisgICAgICBzZWxmLnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgX3RoaXMubm9FdmVudHNGaXJl
ZCgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChlKSB7CisgICAgICAgICAgb2soZmFsc2Us
ICJVbmV4cGVjdGVkIGVycm9yOiAiICsgZSk7CisgICAgICAgICAgVGVzdENvdW50ZXIudGVzdENv
bXBsZXRlKCk7CisgICAgICAgIH0KKyAgICAgIH0sIDUwMDApOworICAgIH0KKyAgICBlbHNlIHsK
KyAgICAgIC8vIEFib3J0IGV2ZW50cyBjYW4gb25seSBiZSB0cmlnZ2VyZWQgb24gc2VudCByZXF1
ZXN0cy4KKyAgICAgIHJlcS5zZW5kKCk7CisgICAgICBpZiAodGhpcy5hYm9ydERlbGF5ID09IC0x
KSB7CisgICAgICAgIGFib3J0UmVxKCk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAg
c2VsZi5zZXRUaW1lb3V0KGFib3J0UmVxLCB0aGlzLmFib3J0RGVsYXkpOworICAgICAgfQorICAg
IH0KKyAgfSwKKworICAvKioKKyAgICogRW5zdXJlIHRoYXQgbm8gZXZlbnRzIGZpcmVkIGF0IGFs
bCwgZXNwZWNpYWxseSBub3Qgb3VyIHRpbWVvdXQgZXZlbnQuCisgICAqLworICBub0V2ZW50c0Zp
cmVkOiBmdW5jdGlvbigpIHsKKyAgICBvayghdGhpcy5oYXNGaXJlZCwgIk5vIGV2ZW50cyBzaG91
bGQgZmlyZSBmb3IgYW4gdW5zZW50LCB1bmFib3J0ZWQgcmVxdWVzdCIpOworICAgIC8vIFdlJ3Jl
IGRvbmU7IGlmIHRpbWVvdXQgaGFzbid0IGZpcmVkIGJ5IG5vdywgaXQgbmV2ZXIgd2lsbC4KKyAg
ICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfSwKKworICAvKioKKyAgICogR2V0IGEg
bWVzc2FnZSBkZXNjcmliaW5nIHRoaXMgdGVzdC4KKyAgICoKKyAgICogQHJldHVybnMge1N0cmlu
Z30gVGhlIHRlc3QgZGVzY3JpcHRpb24uCisgICAqLworICBnZXRNZXNzYWdlOiBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gInRpbWUgdG8gYWJvcnQgaXMgIiArIHRoaXMuYWJvcnREZWxheSArICIs
IHRpbWVvdXQgc2V0IGF0IDIwMDAiOworICB9LAorCisgIC8qKgorICAgKiBDaGVjayB0aGUgZXZl
bnQgcmVjZWl2ZWQsIGFuZCBpZiBpdCdzIHRoZSByaWdodCAoYW5kIG9ubHkpIG9uZSB3ZSBnZXQu
CisgICAqCisgICAqIFdlYktpdCBmaXJlcyBhYm9ydCBldmVudHMgZXZlbiBmb3IgRE9ORSBhbmQg
VU5TRU5UIHN0YXRlcywgd2hpY2ggaXMgCisgICAqIGRpc2N1c3NlZCBpbiBodHRwOi8vd2Via2l0
Lm9yZy9iLzk4NDA0CisgICAqIFRoYXQncyB3aHkgd2UgY2hvc2UgdG8gYWNjZXB0IHNlY29uZGFy
eSAiYWJvcnQiIGV2ZW50cyBpbiB0aGlzIHRlc3QuCisgICAqCisgICAqIEBwYXJhbSB7RE9NUHJv
Z3Jlc3NFdmVudH0gZXZ0IEFuIGV2ZW50IG9mIHR5cGUgImxvYWQiIG9yICJ0aW1lb3V0Ii4KKyAg
ICovCisgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldnQpIHsKKyAgICBpZiAodGhpcy5oYXNGaXJl
ZCAmJiBldnQudHlwZSAhPSAiYWJvcnQiKSB7CisgICAgICBvayhmYWxzZSwgIk9ubHkgYWJvcnQg
ZXZlbnQgc2hvdWxkIGZpcmU6ICIgKyB0aGlzLmdldE1lc3NhZ2UoKSk7CisgICAgICByZXR1cm47
CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkRXZlbnQgPSAodGhpcy5hYm9ydERlbGF5ID49IDIw
MDAgJiYgIXRoaXMuaGFzRmlyZWQpID8gInRpbWVvdXQiIDogImFib3J0IjsKKyAgICB0aGlzLmhh
c0ZpcmVkID0gdHJ1ZTsKKyAgICBpcyhldnQudHlwZSwgZXhwZWN0ZWRFdmVudCwgdGhpcy5nZXRN
ZXNzYWdlKCkpOworICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICB9Cit9OworCit2
YXIgU3luY1JlcXVlc3RTZXR0aW5nVGltZW91dEFmdGVyT3BlbiA9IHsKKyAgc3RhcnRYSFI6IGZ1
bmN0aW9uKCkgeworICAgIHZhciBwYXNzID0gZmFsc2U7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCBTVEFMTEVEX1JFUVVFU1RfVVJMLCBm
YWxzZSk7CisgICAgdHJ5IHsKKyAgICAgIHJlcS50aW1lb3V0ID0gMTAwMDsKKyAgICB9CisgICAg
Y2F0Y2ggKGUpIHsKKyAgICAgIHBhc3MgPSB0cnVlOworICAgIH0KKyAgICBvayhwYXNzLCAiU3lu
Y2hyb25vdXMgWEhSIG11c3Qgbm90IGFsbG93IGEgdGltZW91dCB0byBiZSBzZXQiKTsKKyAgICBU
ZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFyIFN5bmNSZXF1ZXN0U2V0
dGluZ1RpbWVvdXRCZWZvcmVPcGVuID0geworICBzdGFydFhIUjogZnVuY3Rpb24oKSB7CisgICAg
dmFyIHBhc3MgPSBmYWxzZTsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cisg
ICAgcmVxLnRpbWVvdXQgPSAxMDAwOworICAgIHRyeSB7CisgICAgICByZXEub3BlbigiR0VUIiwg
U1RBTExFRF9SRVFVRVNUX1VSTCwgZmFsc2UpOworICAgIH0KKyAgICBjYXRjaCAoZSkgeworICAg
ICAgcGFzcyA9IHRydWU7CisgICAgfQorICAgIG9rKHBhc3MsICJTeW5jaHJvbm91cyBYSFIgbXVz
dCBub3QgYWxsb3cgYSB0aW1lb3V0IHRvIGJlIHNldCIpOworICAgIFRlc3RDb3VudGVyLnRlc3RD
b21wbGV0ZSgpOworICB9Cit9OworCit2YXIgVGVzdFJlcXVlc3RHcm91cHMgPSB7CisgICJzaW1w
bGUiIDogWworICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAibm8gdGltZSBvdXQgc2NoZWR1
bGVkLCBsb2FkIGZpcmVzIG5vcm1hbGx5IiwgMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRy
dWUsICJsb2FkIGZpcmVzIG5vcm1hbGx5IiwgNTAwMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2Vy
KHRydWUsICJ0aW1lb3V0IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApCisgIF0sCisKKyAgInR3aWNl
IiA6IFsKKyAgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJsb2FkIGZpcmVzIG5vcm1hbGx5
IHdpdGggbm8gdGltZW91dCBzZXQsIHR3aWNlIiwgMCwgMjAwMCwgMCksCisgICAgIG5ldyBSZXF1
ZXN0VHJhY2tlcih0cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSB3aXRoIHNhbWUgdGltZW91dCBz
ZXQgdHdpY2UiLCA1MDAwLCAyMDAwLCA1MDAwKSwKKyAgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRy
dWUsICJ0aW1lb3V0IGZpcmVzIG5vcm1hbGx5IHdpdGggc2FtZSB0aW1lb3V0IHNldCB0d2ljZSIs
IDIwMDAsIDEwMDAsIDIwMDApCisgIF0sCisKKyAgLy8gRklYTUU6IGh0dHA6Ly93ZWJraXQub3Jn
L2IvOTgxNTYgLSBMYXRlIHVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCB0aGVzZSB0ZXN0
cyBhcmUgbm90IHJ1bi4KKyAgIm92ZXJyaWRlcyIgOiBbCisgICAgbmV3IFJlcXVlc3RUcmFja2Vy
KHRydWUsICJ0aW1lb3V0IGRpc2FibGVkIGFmdGVyIGluaXRpYWxseSBzZXQiLCA1MDAwLCAyMDAw
LCAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgb3ZlcnJpZGVzIGxv
YWQgYWZ0ZXIgYSBkZWxheSIsIDUwMDAsIDEwMDAsIDIwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJh
Y2tlcih0cnVlLCAidGltZW91dCBlbmFibGVkIGFmdGVyIGluaXRpYWxseSBkaXNhYmxlZCIsIDAs
IDIwMDAsIDUwMDApCisgIF0sCisKKyAgIm92ZXJyaWRlc2V4cGlyZXMiIDogWworICAgIG5ldyBS
ZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gZXhwaXJpbmcgdmFsdWUgYWZ0ZXIg
bG9hZCBmaXJlcyIsIDUwMDAsIDQwMDAsIDEwMDApLAorICAgIC8vIEZJWE1FOiBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1cGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgdGhp
cyB0ZXN0IGlzIG5vdCBydW4uCisgICAgLy8gbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1l
b3V0IHNldCB0byBleHBpcmVkIHZhbHVlIGJlZm9yZSBsb2FkIGZpcmVzIiwgNTAwMCwgMjAwMCwg
MTAwMCksCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0IHNldCB0byBub24t
ZXhwaXJpbmcgdmFsdWUgYWZ0ZXIgdGltZW91dCBmaXJlcyIsIDEwMDAsIDIwMDAsIDUwMDApCisg
IF0sCisKKyAgImFib3J0ZWQiIDogWworICAgIG5ldyBBYm9ydGVkUmVxdWVzdChmYWxzZSksCisg
ICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRydWUsIC0xKSwKKyAgICBuZXcgQWJvcnRlZFJlcXVlc3Qo
dHJ1ZSwgNTAwMCkKKyAgXSwKKworICAiYWJvcnRlZG9ubWFpbiIgOiBbCisgICAgbmV3IEFib3J0
ZWRSZXF1ZXN0KHRydWUsIDApLAorICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAxMDAwKQor
ICBdLAorCisgICJzeW5jb25tYWluIiA6IFsKKyAgICBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0
QWZ0ZXJPcGVuLAorICAgIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVvdXRCZWZvcmVPcGVuCisgIF0s
CisKKyAgInN5bmNvbndvcmtlciIgOiBbCisgICAgbmV3IFJlcXVlc3RUcmFja2VyKGZhbHNlLCAi
bm8gdGltZSBvdXQgc2NoZWR1bGVkLCBsb2FkIGZpcmVzIG5vcm1hbGx5IiwgMCksCisgICAgbmV3
IFJlcXVlc3RUcmFja2VyKGZhbHNlLCAibG9hZCBmaXJlcyBub3JtYWxseSIsIDUwMDApLAorICAg
IC8vIEZJWE1FOiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1cGRhdGVzIGFyZSBu
b3Qgc3VwcG9ydGVkIHlldCwgdGhpcyB0ZXN0IGlzIG5vdCBydW4uCisgICAgLy8gbmV3IFJlcXVl
c3RUcmFja2VyKGZhbHNlLCAidGltZW91dCBoaXQgYmVmb3JlIGxvYWQiLCAyMDAwKSwKKyAgXQor
fTsKKwordmFyIFRlc3RSZXF1ZXN0cyA9IFtdOworCisvLyBUaGlzIGNvZGUgY29udHJvbHMgbW92
aW5nIGZyb20gb25lIHRlc3QgdG8gYW5vdGhlci4KK3ZhciBUZXN0Q291bnRlciA9IHsKKyAgdGVz
dENvbXBsZXRlOiBmdW5jdGlvbigpIHsKKyAgICAvLyBBbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5
IHRoZXJlIGFyZSBvdGhlciBldmVudHMgY29taW5nLgorICAgIHNlbGYuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgIFRlc3RDb3VudGVyLm5leHQoKTsKKyAgICB9LCA1MDAwKTsKKyAgfSwK
KworICBuZXh0OiBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGVzdCA9IFRlc3RSZXF1ZXN0cy5zaGlm
dCgpOworCisgICAgaWYgKHRlc3QpIHsKKyAgICAgIHRlc3Quc3RhcnRYSFIoKTsKKyAgICB9Cisg
ICAgZWxzZSB7CisgICAgICBtZXNzYWdlKCJkb25lIik7CisgICAgfQorICB9Cit9OworCitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgaWYgKGV2
ZW50LmRhdGEudHlwZSA9PSAic3RhcnQiKSB7CisgICAgVGVzdFJlcXVlc3RzID0gVGVzdFJlcXVl
c3RHcm91cHNbZXZlbnQuZGF0YS5ncm91cF07CisgICAgVGVzdENvdW50ZXIubmV4dCgpOworICB9
Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDliYzAyMTNmYjFiYTZlZGRhMDdmNWVhMGZjY2Y2Mjg0ZTMzNTljYmUuLjMyNjQxM2Uw
ZGIyNDRjMGYxYWRiNTNlZDI0MjY5ZmZiYTI4ZTllZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTgxLDYgKzk4MSwxOSBAQCB3ZWJr
aXQub3JnL2IvNTg4OTggZmFzdC9ibG9jay9mbG9hdC9vdmVyaGFuZ2luZy10YWxsLWJsb2NrLmh0
bWwgWyBGYWlsdXJlIF0KICMgTmV3IHRlc3QgYWRkZWQgdGhhdCBuZWVkcyBwbGF0Zm9ybSBzcGVj
aWZpYyByZXN1bHRzCiB3ZWJraXQub3JnL2IvOTg0NTIgWyBMaW51eCBXaW4gXSBmYXN0L3RleHQv
dmVydGljYWwtcmwtcnRsLWxpbmVicmVhay5odG1sIFsgRmFpbHVyZSBdCiAKKyMgUmVzb3VyY2VS
ZXF1ZXN0IG5lZWRzIHRvIHN1cHBvcnQgc2V0VGltZW91dEludGVydmFsCit3ZWJraXQub3JnL2Iv
OTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtYWJvcnRlZC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRl
ZG9ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhw
aXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
OTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85
ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItc2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEluc3BlY3RvciB0
ZXN0cwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA2OTQ3NTA1Y2FiOWVkNmMyODQyYWE3OThhMWUyNjM2NmZmOTZkYzk2Li40YjY0Njgw
ZjRlZGZlNjRlOThlNDQ3NzdlMGMyYzNkMTA0NTQyNDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjE3LDYgKzYxNywxOCBAQCBCdWcoR1RLKSBbIERl
YnVnIF0gc3B1dG5pay9Vbmljb2RlL1VuaWNvZGVfMjE4L1M3LjZfQTUuM19UMS5odG1sIFsgUGFz
cyBTbG93IF0KIEJ1ZyhHVEspIFsgRGVidWcgXSBzcHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgv
UzcuNl9BNS4zX1QyLmh0bWwgWyBQYXNzIFNsb3cgXQogQnVnKEdUSykgdGFibGVzL21vemlsbGEv
b3RoZXIvc2xhc2hsb2dvLmh0bWwgWyBQYXNzIFNsb3cgXQogCitCdWcoR1RLKSBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0
bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIFBhc3MgU2xv
dyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgUGFzcyBTbG93IF0gCitCdWco
R1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1zaW1wbGUuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1s
IFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIFsgUGFzcyBTbG93IF0gCitCdWco
R1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItYWJvcnRlZC5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
b3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2lt
cGxlLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRt
bCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgWyBQYXNzIFNsb3cg
XSAKKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIHNsb3cgdGVz
dHMKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjZmJiMjAyMDA0ZGUwMGZlY2RmZWU4MTg2MGExZTY3
NDIwYWU5YmMxLi40N2FlOTUzZWQwMDkwODEwNTY3ODQ3ZGMyN2QyNzVmNzQxMmY3YjZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5NSw2ICs3OTUsMTkg
QEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jYWNoZS1vdmVycmlkZS5odG1sCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjYwNgogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0ZS1mb3ItNDA0LXdp
dGhvdXQtYm9keS5odG1sCiAKKyMgUmVzb3VyY2VSZXF1ZXN0IG5lZWRzIHRvIHN1cHBvcnQgc2V0
VGltZW91dEludGVydmFsCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5
NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1zeW5jb25tYWluLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCBbIEZhaWx1cmUg
XQorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgZWRpdGluZy9pbnNl
cnRpbmcgdGVzdHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169957</attachid>
            <date>2012-10-22 12:22:16 -0700</date>
            <delta_ts>2012-10-23 01:00:45 -0700</delta_ts>
            <desc>Patch v5, synconworker case enabled.</desc>
            <filename>bug-74802-20121022212054.patch</filename>
            <type>text/plain</type>
            <size>62312</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiNjIwZmQ0ZWE0ZDM2
MGI3YjRiMGZmZDQwY2RmZGM1MjEzZDc4My4uNTY1NWZmNWM1N2RhMzU4NTQ2YzBmOGNiNDIwMmQ4
ZDE4MzM3ZGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTIyICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBUZXN0cyBp
bXBvcnRlZCBhbmQgYWRhcHRlZCB0byBXM0MgdGVzdGhhcm5lc3MuanMgd2l0aCBwZXJtaXNzaW9u
IChQRC9CU0QgbGljZW5zZSkKKyAgICAgICAgZnJvbSBNb3ppbGxhJ3MgQWxleCBWaW5jZW50J3Mg
c2V0IG9mIFhIUjIgdGltZW91dCB0ZXN0cy4gQmlnIHRoYW5rcyEKKyAgICAgICAgQ21wLiBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD01MjU4MTYjYzg2CisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXR3aWNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbAorCisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKTogRm9yd2FyZCBpbmZvcm1hdGlvbiBhYm91
dCB0aW1lb3V0IGNhc2UuCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKTogRGlzdGluZ3Vp
c2ggdGltZW91dCBjYXNlIHdoZW4gaW5mb3JtaW5nIGNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogRGlzdGluZ3Vpc2hpbmcgdGltZW91dCBjYXNlIGZvciBl
cnJvcnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZEZhaWxlZE9yQ2FuY2VsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnRpbWVkT3V0KToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KTogSW5pdGlhbGl6aW5nIG1fdGltZW91dCB2YWx1ZSB0byB6ZXJv
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFRpbWVvdXQpOiBTZXR0ZXIg
ZnVuY3Rpb24sIHBvc3NpYmx5IHJhaXNpbmcgSlMgZXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6IE9wZW4gY2FsbCBt
YXkgcmFpc2UgZXhjZXB0aW9uIGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyB3aGVuIHRpbWVvdXQg
dmFsdWUgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBBc3NpZ25pbmcgdGltZW91dCB2YWx1ZSB0byBSZXNvdXJjZVJlcXVlc3QuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6IEhhbmRsaW5nIHRpbWVvdXQg
Y2FzZSBzZXBhcmF0ZWx5LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFRp
bWVvdXQpOiBUaW1lb3V0IGNhc2Ugc3RhdGUgdHJhbnNpc2l0aW9uIGFuZCBldmVudCBmaXJpbmcg
YXMgc3BlYydlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDogTmV3IGV2ZW50IGxp
c3RlbmVyLCBtZW1iZXIgYW5kIGNhbGxiYWNrIGZvciBoYW5kbGluZyB0aW1lb3V0LgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnRpbWVvdXQpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IE5ldyBldmVudCBsaXN0
ZW5lciBhbmQgcHJvcGVydHkgYWRkZWQuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDogQWRk
ZWQgYW4gZXhjZXB0aW9uIHZhbHVlIGZvciB0aGUgdGltZW91dCBjYXNlLgorCisKIDIwMTItMTAt
MjIgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGV4dHVyZU1h
cHBlclN1cmZhY2VCYWNraW5nU3RvcmUgc2hvdWxkIGNoZWNrIGlmIEdyYXBoaWNzU3VyZmFjZSBp
cyB2YWxpZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThjMmFiMWJjZGUyOTBhMzE5MmQ1YzY5MDc0
Zi4uYWM2ODkxYWY3Y2FmMGIxOWQyYTg5MjZkZTJjOGQ4ZWZmYmU0OGFlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTMw
OCw2ICszMDgsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9y
KCJOZXR3b3JrIFJlcXVlc3QgRmFpbGVkIiwgMCwgbV9yZXNvdXJjZS0+dXJsKCksICJSZXNvdXJj
ZSBmYWlsZWQgdG8gbG9hZCIpOwogICAgICAgICBpZiAobV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQo
KSkKICAgICAgICAgICAgIGVycm9yLnNldElzQ2FuY2VsbGF0aW9uKHRydWUpOworICAgICAgICBp
ZiAobV9yZXNvdXJjZS0+dGltZWRPdXQoKSkKKyAgICAgICAgICAgIGVycm9yLnNldElzVGltZW91
dCh0cnVlKTsKICAgICAgICAgZGlkRmFpbChlcnJvcik7CiAgICAgfSBlbHNlCiAgICAgICAgIGRp
ZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+aWRlbnRpZmllcigpLCBtX3Jlc291cmNlLT5sb2Fk
RmluaXNoVGltZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IGU1NzAxNzEyNjQ1ZDgzNDEyNjg0ZmJiZWQ2OTE4MjVhODAxMGZlMjUuLmUzOWFl
MmZiMDI2ODc0OWQxNTYwNzI2OTExMWZiMjRmNmVkNTNhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMjgzLDcgKzI4MywxMCBAQCB2b2lkIFN1
YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAg
IFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJvdGVjdFJlc291cmNlKG1fcmVzb3VyY2UpOwog
ICAgIG1fc3RhdGUgPSBGaW5pc2hpbmc7Ci0gICAgbV9yZXNvdXJjZS0+ZXJyb3IoQ2FjaGVkUmVz
b3VyY2U6OkxvYWRFcnJvcik7CisgICAgaWYgKGVycm9yLmlzVGltZW91dCgpKQorICAgICAgICBt
X3Jlc291cmNlLT5lcnJvcihDYWNoZWRSZXNvdXJjZTo6VGltZW91dEVycm9yKTsKKyAgICBlbHNl
CisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOwog
ICAgIGlmICghbV9yZXNvdXJjZS0+aXNQcmVsb2FkZWQoKSkKICAgICAgICAgbWVtb3J5Q2FjaGUo
KS0+cmVtb3ZlKG1fcmVzb3VyY2UpOwogICAgIFJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGVycm9y
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXgg
YzNkMDkzYTJmZTcwM2M4MzQ4MTBhM2UyM2M3ZjVjZmZlYzQ2MmU5Mi4uZmFjODg0NTFiNWZhY2Fl
MGJlYjU5YWE4NDZiODFhZjIyMDQxMmVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgogICAgICAgICBD
YWNoZWQsICAgICAgIC8vIHJlZ3VsYXIgY2FzZQogICAgICAgICBDYW5jZWxlZCwKICAgICAgICAg
TG9hZEVycm9yLAorICAgICAgICBUaW1lb3V0RXJyb3IsCiAgICAgICAgIERlY29kZUVycm9yCiAg
ICAgfTsKIApAQCAtMjA3LDggKzIwOCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFjY2VwdChj
b25zdCBTdHJpbmcmIGFjY2VwdCkgeyBtX2FjY2VwdCA9IGFjY2VwdDsgfQogCiAgICAgYm9vbCB3
YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdHVzID09IENhbmNlbGVkOyB9Ci0gICAg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gKG1fc3RhdHVzID09IExvYWRFcnJv
ciB8fCBtX3N0YXR1cyA9PSBEZWNvZGVFcnJvcik7IH0KLSAgICBib29sIGxvYWRGYWlsZWRPckNh
bmNlbGVkKCkgeyByZXR1cm4gbV9zdGF0dXMgPT0gQ2FuY2VsZWQgfHwgbV9zdGF0dXMgPT0gTG9h
ZEVycm9yOyB9CisgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gKG1fc3Rh
dHVzID09IExvYWRFcnJvciB8fCBtX3N0YXR1cyA9PSBEZWNvZGVFcnJvciB8fCBtX3N0YXR1cyA9
PSBUaW1lb3V0RXJyb3IpOyB9CisgICAgYm9vbCBsb2FkRmFpbGVkT3JDYW5jZWxlZCgpIHsgcmV0
dXJuIG1fc3RhdHVzID09IENhbmNlbGVkIHx8IG1fc3RhdHVzID09IExvYWRFcnJvciB8fCBtX3N0
YXR1cyA9PSBUaW1lb3V0RXJyb3I7IH0KKyAgICBib29sIHRpbWVkT3V0KCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0dXMgPT0gVGltZW91dEVycm9yOyB9CiAKICAgICBib29sIHNob3VsZFNlbmRSZXNv
dXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRDYWxs
YmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKaW5kZXggZjYxNjkwODU0ZWY3M2UzOWJjMDRmZjY5Mjk2NjUxZGFjNmE4N2IwZS4u
Njg3NjA3Mjc0YjExNjk0N2U1ODJhNjI1MmQxZDQ0ZDhmOTdjMzIxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0zLDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykg
MjAwNS0yMDA3IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKiAgQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDA4IEp1bGllbiBDaGFmZnJhaXggPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KICAqCiAg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKQEAgLTE3NSw2ICsxNzYsNyBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0
cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxTZWN1
cgogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX2FzeW5jKHRy
dWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxzZSkKKyAgICAsIG1fdGltZW91dE1p
bGxpc2Vjb25kcygwKQogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAgLCBtX2NyZWF0ZWREb2N1
bWVudChmYWxzZSkKICAgICAsIG1fZXJyb3IoZmFsc2UpCkBAIC0zMjYsNiArMzI4LDE5IEBAIEFy
cmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBcnJheUJ1ZmZlcihFeGNlcHRpb25D
b2RlJiBlYykKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwogfQogCit2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IE5lZWQgdG8gdHJpZ2dlciBvciB1cGRh
dGUgdGhlIHRpbWVvdXQgVGltZXIgaGVyZSwgaWYgbmVlZGVkLiBodHRwOi8vd2Via2l0Lm9yZy9i
Lzk4MTU2CisgICAgLy8gWEhSMiBzcGVjLCA0LjcuMy4gIlRoaXMgaW1wbGllcyB0aGF0IHRoZSB0
aW1lb3V0IGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHdoaWxlIGZldGNoaW5nIGlzIGluIHByb2dyZXNz
LiBJZiB0aGF0IG9jY3VycyBpdCB3aWxsIHN0aWxsIGJlIG1lYXN1cmVkIHJlbGF0aXZlIHRvIHRo
ZSBzdGFydCBvZiBmZXRjaGluZy4iCisgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNEb2N1bWVudCgpICYmICFtX2FzeW5jKSB7CisgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksICJYTUxIdHRwUmVxdWVzdC50aW1lb3V0IGNhbm5vdCBiZSBz
ZXQgZm9yIHN5bmNocm9ub3VzIEhUVFAoUykgcmVxdWVzdHMgbWFkZSBmcm9tIHRoZSB3aW5kb3cg
Y29udGV4dC4iKTsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgbV90aW1lb3V0TWlsbGlzZWNvbmRzID0gdGltZW91dDsKK30KKwor
CiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXNwb25zZVR5cGUoY29uc3QgU3RyaW5nJiByZXNw
b25zZVR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3N0YXRlID49IExPQURJ
TkcpIHsKQEAgLTQ5NSw2ICs1MTAsMTMgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25z
dCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYgdXJsLCBib29sIGFzeW5jLCBFeGMKICAgICAg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CisKKyAgICAgICAgLy8gU2ltaWxhcmx5LCB0aW1lb3V0cyBhcmUgZGlzYWJsZWQgZm9y
IHN5bmNocm9ub3VzIHJlcXVlc3RzIGFzIHdlbGwuCisgICAgICAgIGlmIChtX3RpbWVvdXRNaWxs
aXNlY29uZHMgPiAwKSB7CisgICAgICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCAiU3luY2hyb25vdXMgWE1MSHR0cFJlcXVlc3RzIG11c3Qgbm90IGhhdmUg
YSB0aW1lb3V0IHZhbHVlIHNldC4iKTsKKyAgICAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogCiAgICAgbV9tZXRo
b2QgPSB1cHBlcmNhc2VLbm93bkhUVFBNZXRob2QobWV0aG9kKTsKQEAgLTc0Miw2ICs3NjQsOSBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gVXNlQWNjZXNzQ29udHJvbDsK
ICAgICBvcHRpb25zLnNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4oKTsKIAorICAgIGlm
IChtX3RpbWVvdXRNaWxsaXNlY29uZHMpCisgICAgICAgIHJlcXVlc3Quc2V0VGltZW91dEludGVy
dmFsKG1fdGltZW91dE1pbGxpc2Vjb25kcyAvIDEwMDAuMCk7CisKICAgICBtX2V4Y2VwdGlvbkNv
ZGUgPSAwOwogICAgIG1fZXJyb3IgPSBmYWxzZTsKIApAQCAtMTA1OCw2ICsxMDgzLDExIEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoZXJyb3IuaXNUaW1lb3V0KCkpIHsKKyAg
ICAgICAgZGlkVGltZW91dCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gTmV0
d29yayBmYWlsdXJlcyBhcmUgYWxyZWFkeSByZXBvcnRlZCB0byBXZWIgSW5zcGVjdG9yIGJ5IFJl
c291cmNlTG9hZGVyLgogICAgIGlmIChlcnJvci5kb21haW4oKSA9PSBlcnJvckRvbWFpbldlYktp
dEludGVybmFsKQogICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCAiWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgIiArIGVycm9yLmZhaWxpbmdVUkwoKSAr
ICIuICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKQEAgLTExODIsNiArMTIxMiwz
NCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuKQogICAgIH0KIH0KIAordm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkVGltZW91dCgp
Cit7CisgICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIGRyb3BQcm90ZWN0aW9uKCksIHdoaWNo
IG1heSByZWxlYXNlIHRoZSBsYXN0IHJlZmVyZW5jZS4KKyAgICBSZWZQdHI8WE1MSHR0cFJlcXVl
c3Q+IHByb3RlY3QodGhpcyk7CisgICAgaW50ZXJuYWxBYm9ydCgpOworCisgICAgY2xlYXJSZXNw
b25zZSgpOworICAgIGNsZWFyUmVxdWVzdCgpOworCisgICAgbV9lcnJvciA9IHRydWU7CisgICAg
bV9leGNlcHRpb25Db2RlID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OlRJTUVPVVRfRVJSOwor
CisgICAgaWYgKCFtX2FzeW5jKSB7CisgICAgICAgIG1fc3RhdGUgPSBET05FOworICAgICAgICBt
X2V4Y2VwdGlvbkNvZGUgPSBUSU1FT1VUX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNoYW5nZVN0YXRlKERPTkUpOworCisgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlKSB7Cisg
ICAgICAgIG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOworICAgICAgICBpZiAobV91cGxvYWQgJiYg
bV91cGxvYWRFdmVudHNBbGxvd2VkKQorICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoRXZl
bnRBbmRMb2FkRW5kKFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS50aW1lb3V0RXZlbnQpKTsKKyAgICB9CisgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUu
ZGlzcGF0Y2hFdmVudEFuZExvYWRFbmQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCkpOworfQorCiBib29sIFhNTEh0dHBSZXF1ZXN0
OjpjYW5TdXNwZW5kKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fbG9hZGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYzZjYmM1MGMzNjAxNjUwODllMjY1OTk3NWNkMTBk
MzExMjJlZjVkLi5mMjc3ODJmNjI2YWFhNzYxYWE3NTMzYzIxOGMyM2JjODMyM2FhMWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtMiw2ICsyLDcgQEAKICAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEBueXBv
cC5jb20+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgdmly
dHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVGltZW91
dCgpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3Vt
ZSgpOwpAQCAtMTA0LDYgKzEwNiw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogb3B0aW9uYWxS
ZXNwb25zZVhNTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VEb2N1bWVudC5nZXQoKTsgfQog
ICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJik7CiAgICAgQmxvYiogb3B0aW9u
YWxSZXNwb25zZUJsb2IoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlQmxvYi5nZXQoKTsgfQor
ICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZW91dE1pbGxp
c2Vjb25kczsgfQorICAgIHZvaWQgc2V0VGltZW91dCh1bnNpZ25lZCBsb25nIHRpbWVvdXQsIEV4
Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgc2VuZEZyb21JbnNwZWN0b3IoUGFzc1JlZlB0cjxG
b3JtRGF0YT4sIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtMTMzLDYgKzEzNyw3IEBAIHB1YmxpYzoK
ICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRlbmQpOwogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZHN0YXJ0KTsKICAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKHByb2dyZXNzKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKHRpbWVvdXQpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxYTUxIdHRwUmVxdWVz
dD46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0Pjo6ZGVyZWY7CkBA
IC0xOTEsNiArMTk2LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRl
OwogICAgIGJvb2wgbV9hc3luYzsKICAgICBib29sIG1faW5jbHVkZUNyZWRlbnRpYWxzOworICAg
IHVuc2lnbmVkIGxvbmcgbV90aW1lb3V0TWlsbGlzZWNvbmRzOwogICAgIFJlZlB0cjxCbG9iPiBt
X3Jlc3BvbnNlQmxvYjsKIAogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCmluZGV4IDM3YzY5NGU3NWNiMjczYjhh
ZjI0ZDA0NWFjMzU0MmVkYzMyMzgzMzIuLmI2YWUyMzJiNmIwY2RhZWY0NTZmMjc0MDU2YzlmNWQ0
MTYxZmQ2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbApAQCAtNDMsNiAr
NDMsNyBAQAogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVuZDsKICAgICBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnByb2dyZXNzOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udGltZW91dDsK
IAogICAgIC8vIGV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwogICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ucmVhZHlzdGF0ZWNoYW5nZTsKQEAgLTU0LDYgKzU1LDggQEAKICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBMT0FESU5HID0gMzsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBET05F
ID0gNDsKIAorICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRpbWVvdXQKKyAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCByZWFkeVN0YXRlOwogCiAgICAgYXR0cmlidXRlIGJvb2xlYW4gd2l0aENyZWRlbnRp
YWxzCkBAIC0xMTcsNCArMTIwLDMgQEAKICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZl
bnQgZXZ0KQogICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogfTsKLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggYzA2YzA3YzBk
ZWUxOGU0Mjc1YjYxNjg5MzVkZThiY2I1YTg1NWJjMy4uYjhjYjJmMzk5ZGIwYWU5ZmJlZjExNWQx
NzJmZGYyY2M1YzIwNzVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb24uY3BwCkBAIC0zNiw3ICszNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb25OYW1lRGVzY3JpcHRpb24gewogICAgIGNvbnN0IGNoYXIqIGNvbnN0IGRl
c2NyaXB0aW9uOwogfSBleGNlcHRpb25zW10gPSB7CiAgICAgeyAiTkVUV09SS19FUlIiLCAiQSBu
ZXR3b3JrIGVycm9yIG9jY3VycmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfSwKLSAgICB7
ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QgaW4gc3luY2hyb25vdXMg
cmVxdWVzdHMuIiB9CisgICAgeyAiQUJPUlRfRVJSIiwgIlRoZSB1c2VyIGFib3J0ZWQgYSByZXF1
ZXN0IGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfSwKKyAgICB7ICJUSU1FT1VUX0VSUiIsICJB
IHRpbWVvdXQgZXJyb3Igb2NjdXJlZCBpbiBzeW5jaHJvbm91cyByZXF1ZXN0cy4iIH0KIH07CiAK
IGJvb2wgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OmluaXRpYWxpemVEZXNjcmlwdGlvbihFeGNl
cHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24qIGRlc2NyaXB0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaAppbmRleCA3YzQzN2Vm
MmY4NTQ4OTQ5MTkzZmQwMDM4NThjMGUyMTg2ZTJkMjg5Li45NDBlMzAxMDcyZGU0OGYyNTA2ZGMy
NDE1YzIwMmVlODhmODdjZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb24uaApAQCAtNDUsNyArNDUsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFhNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uQ29kZSB7CiAgICAgICAgIE5FVFdPUktfRVJSID0gWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb25PZmZzZXQgKyAxMDEsCi0gICAgICAgIEFCT1JUX0VSUgorICAgICAgICBB
Qk9SVF9FUlIsCisgICAgICAgIFRJTUVPVVRfRVJSCiAgICAgfTsKIAogICAgIHN0YXRpYyBib29s
IGluaXRpYWxpemVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlLCBFeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24qKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5NTM4ZmM3ZGE0YzkxNzA2NTI2YjMwNGI2YTQ3N2EwZWJhZmQ1NTk2
Li5iZmRmNTQwMTZlMzNjYjg3NmU4MmE3NTI4Nzk3YTg0YjY4ODJjYTQyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNzQgQEAKKzIwMTItMTAtMjIgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNj
aGVzQGludGVsLmNvbT4KKworICAgICAgICBBZGQgdGltZW91dCBzdXBwb3J0IHRvIFhNTEh0dHBS
ZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzIGZvciB0aGUgWEhSMiB0aW1lb3V0IGZ1bmN0aW9uYWxpdHksIGltcG9ydGVkIGFuZCBhZGFw
dGVkIHRvIFczQyB0ZXN0aGFybmVzcy5qcworICAgICAgICB3aXRoIHBlcm1pc3Npb24gKFBEL0JT
RCBsaWNlbnNlKSBmcm9tIE1vemlsbGEncyBBbGV4IFZpbmNlbnQncyBzZXQgb2YgWEhSMiB0aW1l
b3V0IHRlc3RzLiBCaWcgdGhhbmtzIQorICAgICAgICBDbXAuIGh0dHBzOi8vYnVnemlsbGEubW96
aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUyNTgxNiNjODYKKworICAgICAgICBUaGUgY2FzZSBv
ZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRoZSB0aW1l
b3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQg
aGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4gVGVzdHMgdGhhdCBhcmUgdGVzdGluZyB0
aGlzIGZlYXR1cmUKKyAgICAgICAgYXJlIGNvbW1lbnRlZCBvdXQgdW50aWwgdGhpcyBidWcgaXMg
dGFja2xlZC4KKworICAgICAgICBTaW5jZSB3ZSB0cnkgdG8gYXZvaWQgbG9uZyBydW5uaW5nIHRl
c3RzLCB0aGUgdGVzdHMgd2VyZSBzcGxpdCBpbnRvIHBpZWNlcyBkaWdlc3RpYmxlIGJ5IFdUUi9E
VFIKKyAgICAgICAgdG8gYmUgcnVuIHdpdGggc21hbGxlciB0aW1lb3V0cy4gRWFjaCBpbmRpdmlk
dWFsIHRlc3Qgc2hvdWxkIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyMCBzZWNvbmRzLgorCisgICAg
ICAgIFRoZSBzdWZmaXggb2YgdGhlIHRlc3QgZmlsZW5hbWUgbWF0Y2hlcyB0aGUgZ3JvdXBzIGlu
IHhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMgd2hpY2ggY29udGFpbnMKKyAgICAgICAgYWxsIHRl
c3RzIHRoYXQgYXJlIHJ1bi4gVGhlIHJlc3VsdCBvZiBhc3NlcnRpb25zIGlzIHJlcG9ydGVkIGJh
Y2sgdG8gdGVzdGhhcm5lc3MuanMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVk
b25tYWluLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5u
ZXIuanM6IEFkZGVkLiBEaXN0aW5ndWlzaGVzIHdoaWNoIGdyb3VwIG9mIHRlc3RzIHRvIHJ1biBi
YXNlZCBvbiBmaWxlbmFtZSBzdWZmaXguCisgICAgICAgICh0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5k
bGVyLnJldHVybik6CisgICAgICAgIChncm91cEZyb21Mb2NhdGlvbik6CisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2lt
cGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXN5bmNvbm1haW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5j
b25tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXdvcmtlci1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
c2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci10d2ljZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qczogQWRkZWQuIENvbnRhaW5z
IHRlc3QgY2FzZXMgZm9yIGFsbCBpbmRpdmlkdWFsIHRlc3QgaHRtbCBmaWxlcy4KKyAgICAgICAg
KG1lc3NhZ2UpOiBXcmFwcGVyIGZvciBwb3N0TWVzc2FnZSBpbiB3b3JrZXIgYW5kIGRvY3VtZW50
IGNvbnRleHQgY2FzZS4KKyAgICAgICAgKGlzKSwKKyAgICAgICAgKG9rKTogQXNzZXJ0aW9uIGZ1
bmN0aW9ucy4KKyAgICAgICAgKFJlcXVlc3RUcmFja2VyKTogQ2xhc3MgZm9yIHZhcmlhdGlvbnMg
b2YgdGhlIHJlZ3VsYXIgdGltZW91dCBjYXNlLgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIucHJv
dG90eXBlLnN0YXJ0WEhSLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnBy
b3RvdHlwZS5zdGFydFhIUik6CisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuZ2V0
TWVzc2FnZSk6CisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQp
OgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QpOiBDbGFzcyBmb3IgdGVzdGluZyB0aW1lb3V0IGV2
ZW50IHZzLiBhYm9ydCBldmVudHMuCisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUu
c3RhcnRYSFIuaGFuZGxlRXZlbnQpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBl
LnN0YXJ0WEhSLmFib3J0UmVxKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5z
dGFydFhIUi5lbHNlKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5zdGFydFhI
Uik6CisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUubm9FdmVudHNGaXJlZCk6Cisg
ICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUuZ2V0TWVzc2FnZSk6CisgICAgICAgIChB
Ym9ydGVkUmVxdWVzdC5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAoU3luY1JlcXVl
c3RTZXR0aW5nVGltZW91dEFmdGVyT3Blbi5zdGFydFhIUiksCisgICAgICAgIChTeW5jUmVxdWVz
dFNldHRpbmdUaW1lb3V0QmVmb3JlT3Blbi5zdGFydFhIUik6IFRlc3QgY2xhc3NlcyBmb3Igc3lu
Y2hyb25vdXMgWEhSIGNhc2VzLgorICAgICAgICAoVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKSwK
KyAgICAgICAgKFRlc3RDb3VudGVyLm5leHQpOiBVc2VkIGZvciBjeWNsaW5nIHRocm91Z2ggdGVz
dHMuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogU2tpcHBp
bmcgWEhSIHRpbWVvdXQgY2FzZXMgc2luY2Ugc2V0VGltZW91dEludGVydmFsIGlzIG5vdCBzdXBw
b3J0ZWQgaW4gQ2hyb21pdW0ncyBIVFRQIHN0YWNrLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zOiBNYXJraW5nIFhIUiB0aW1lb3V0IGNhc2VzIGFzIHNsb3cgaW4gb3Jk
ZXIgdG8gcnVuIHRoZW0gd2l0aCBhIGxvbmdlciB0ZXN0IHRpbWVvdXQgdGhyZXNob2xkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwaW5nIFhIUiB0aW1lb3V0
IGNhc2VzIHNpbmNlIHNldFRpbWVvdXRJbnRlcnZhbCBpcyBub3Qgc3VwcG9ydGVkIGluIENocm9t
aXVtJ3MgSFRUUCBzdGFjay4KKwogMjAxMi0xMC0yMiAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC1hYm9ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTk0MjkwNjUzNGU2MmJlY2NiYTY2OTk2ZDA1YjRjNzk5
Y2I2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRo
YXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5j
IGNhc2VzIGluIGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuCisKKworUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBU
ZXN0cyAxIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMiAKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIDMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJm
NGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtYWJvcnRlZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIg
Lz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4K
KyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3Vs
dENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjog
InN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2lu
ZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlv
bjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQg
cHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAo
aS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWlu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzYTZhOTM4MGM5NTUxM2VhNGRmZTU5NDEyNTc2ZDgyY2JjMzE2ZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUg
WEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMg
aW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGlt
ZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LWFib3J0ZWRvbm1haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4
M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRl
ZG9ubWFpbi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGlt
ZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxi
YWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0
IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBv
c3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+
CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVy
dHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBu
b24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzYTZhOTM4MGM5NTUxM2VhNGRmZTU5NDEyNTc2ZDgyY2JjMzE2ZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDggQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0
aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2Fz
ZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
IDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYz
YWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRp
dGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1l
cnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNz
cyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1
bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFho
cigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVz
dFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0
eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAg
ICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNj
cmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRp
bWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1
bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0ODUyODdmOTc5YmU0Zjdi
MjE5NmE2NmYxNzBmM2Y4MjgzOGQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1
bm5lci5qcwpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5k
bGVyKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRhdGEgPT0gImRvbmUiKSB7CisgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQuZGF0YS50eXBlID09
ICJpcyIpIHsKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X2VxdWFscyhldmVudC5k
YXRhLmdvdCwgZXZlbnQuZGF0YS5leHBlY3RlZCwgZXZlbnQuZGF0YS5tc2cpOyB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQuZGF0YS50eXBlID09ICJvayIpIHsKKyAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUoZXZlbnQuZGF0YS5ib29sLCBldmVu
dC5kYXRhLm1zZyk7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCitmdW5jdGlvbiBn
cm91cEZyb21Mb2NhdGlvbigpIHsKKyAgICBzdWZmaXhNYXRjaCA9IC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LSguKilcLmh0bWwvOworICAgIGdyb3VwID0gc3VmZml4TWF0Y2guZXhlYyhkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmKVsxXTsKKyAgICBncm91cCA9IGdyb3VwLnJlcGxhY2UoIndvcmtlci0i
LCAiIik7CisgICAgcmV0dXJuIGdyb3VwOworfQorCisvLyBTZXR0aW5nIHVwIHRlc3RoYXJuZXNz
LmpzCitzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIHRpbWVvdXQ6IDMgKiA2MCAqIDEwMDAg
fSk7CisKKy8vIEFib3J0IHRlc3QgZXhlY3V0aW9uIGlmIGFuIGluZGl2aWR1YWwgdGVzdCBjYXNl
IGZhaWxzLgorYWRkX3Jlc3VsdF9jYWxsYmFjayhmdW5jdGlvbiAodCkgeworICAgIGlmICh0LnN0
YXR1cyA9PSB0LkZBSUwpCisgICAgICAgIGRvbmUoKTsKK30pOworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDA3YjcyMDI0NTBlZDgwNjA1NTY4MzRiOTVmNDBjNzE0NjlkMTZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUg
WEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMg
aW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGlt
ZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEg
CitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4YTU3MzAxMmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAg
IDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVv
dXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVz
cy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1l
b3V0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91
dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRl
c3RYaHIoKSB7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0g
eyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAg
ICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+
RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhS
MiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4g
ZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3lu
Y29ubWFpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZjg2YzkzZTU5NTI2Mzg2OTJiOGE3Y2ZiMTk1ODQzOTYzMDkyNjYxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdC50aW1lb3V0IGNh
bm5vdCBiZSBzZXQgZm9yIHN5bmNocm9ub3VzIEhUVFAoUykgcmVxdWVzdHMgbWFkZSBmcm9tIHRo
ZSB3aW5kb3cgY29udGV4dC4KK0NPTlNPTEUgTUVTU0FHRTogU3luY2hyb25vdXMgWE1MSHR0cFJl
cXVlc3RzIG11c3Qgbm90IGhhdmUgYSB0aW1lb3V0IHZhbHVlIHNldC4KK0Rlc2NyaXB0aW9uCisK
K1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2
ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtl
cikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1Mg
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXN5bmNvbm1haW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+
CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8j
dGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3Ro
YXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0
LXRpbWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10
aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rp
b24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVz
dHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9Owor
ICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAg
IDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNl
cyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC10d2ljZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDQwN2I3MjAyNDUwZWQ4MDYwNTU2ODM0Yjk1ZjQwYzcxNDY5ZDE2YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1l
b3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1l
bnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10
d2ljZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJm
NGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtdHdpY2UuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIy
IFRpbWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+
CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+Cisg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRD
YWxsYmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJz
dGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdpbmRv
dy5wb3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248
L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHBy
b3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGku
ZS4gbm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkyN2I0NTI4M2MxYTU2ODg1N2UxMjUwOGFiMDg0MWJlMTIxMTU1ZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtl
ciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtl
ciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDIgCitQQVNTIFhIUjIgVGltZW91
dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
d29ya2VyLWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGEzNDcyMjExMmJhODFhYjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdv
cmtlcjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9y
Zy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIo
KSB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3Qt
dGltZW91dC5qcyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRl
c3RzID0geyAidHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsK
KyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgx
PkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhI
UjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNv
bnRleHQuPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNTYxMTcxNDk1NDhkZWY2MjkzOTUwYzUzYmIwZmY4Y2UyYTA3OGFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRl
cyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBp
biBhIHdvcmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
IGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAx
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApAQCAtMCwwICsxLDI3
IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29y
a2VyPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL1hNTEh0dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigp
IHsKKyAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10
aW1lb3V0LmpzIik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVz
dHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9Owor
ICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+
RGVzY3JpcHRpb248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhS
MiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29u
dGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUyOTdlZWU3
OWJjZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitEZXNjcmlw
dGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0
eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBY
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQg
UHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBU
ZXN0cyBpbiBXb3JrZXIgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3
MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAg
ICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0bGU+Cisg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVx
dWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAg
ICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyIpOwor
ICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0
Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6
ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9o
MT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9w
ZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorICAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
d29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1Mjk3ZWVlNzli
Y2RhNjU5ZWI5ZmFjOGQ5YzFjZTc0YmQyYzRjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVz
Y3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJv
cGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LgorCisKK1BB
U1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVy
dHkgVGVzdHMgaW4gV29ya2VyIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1z
eW5jb253b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0
cyBpbiBXb3JrZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiB0
ZXN0WGhyKCkgeworICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInhtbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQuanMiKTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAgICAgICAgIHZh
ciBydW5UZXN0cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlv
bigpIH07CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMpOworICAgICAg
ICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgor
ICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0
IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdv
cmtlciBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUy
OTdlZWU3OWJjZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rl
c2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHBy
b3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC4KKworCitQ
QVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNTIFhIUjIgVGlt
ZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIGluIFdvcmtlciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
dHdpY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhh
MzQ3MjIxMTJiYTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgor
ICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4K
KyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBS
ZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0
cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAg
ICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7
CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1
bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBl
IjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248
L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHBy
b3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+Cisg
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjliMzJjMGRiYTlm
YjY2YThlMjI2ODU1NGM3ZTc2YzFmODJkOWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQuanMKQEAgLTAsMCArMSwzNjggQEAKKy8qIFRlc3QgaW1wb3J0ZWQgZnJvbSBBbGV4IFZpbmNl
bnQncyBYSFIyIHRpbWVvdXQgdGVzdHMsIHdyaXR0ZW4gZm9yIE1vemlsbGEuCisgICBodHRwczov
L2hnLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9maWxlL3RpcC9jb250ZW50L2Jhc2UvdGVz
dC8KKyAgIFJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4sIGFjY29yZGluZyB0bworICAg
aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1ODE2I2M4Ngor
Ki8KKworLyogTm90ZXM6CisgICAtIEFsbCB0aW1lcyBhcmUgZXhwcmVzc2VkIGluIG1pbGxpc2Vj
b25kcyBpbiB0aGlzIHRlc3Qgc3VpdGUuCisgICAtIFRlc3QgaGFybmVzcyBjb2RlIGlzIGF0IHRo
ZSBlbmQgb2YgdGhpcyBmaWxlLgorICAgLSBXZSBnZW5lcmF0ZSBvbmx5IG9uZSByZXF1ZXN0IGF0
IGEgdGltZSwgdG8gYXZvaWQgb3ZlcmxvYWRpbmcgdGhlIEhUVFAKKyAgIHJlcXVlc3QgaGFuZGxl
cnMuCisgKi8KKworLyoKKyAqIFRoaXMgc2hvdWxkIHBvaW50IHRvIGEgcmVzb3VyY2UgdGhhdCBy
ZXNwb25kcyBhZnRlciBhIGRlbGF5IG9mIDMgc2Vjb25kcy4KKyAqLwordmFyIFNUQUxMRURfUkVR
VUVTVF9VUkwgPSAiL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5jZ2k/bmFtZT0uLi8uLi8uLi9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5q
cyZzdGFsbEZvcj0zJnN0YWxsQXQ9MCZtaW1lVHlwZT10ZXh0L3BsYWluIjsKKwordmFyIGluV29y
a2VyID0gZmFsc2U7Cit0cnkgeworICBpbldvcmtlciA9ICEoc2VsZiBpbnN0YW5jZW9mIFdpbmRv
dyk7Cit9IGNhdGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gbWVz
c2FnZShvYmopIHsKKyAgaWYgKGluV29ya2VyKQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqKTsK
KyAgZWxzZQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqLCAiKiIpOworfQorCitmdW5jdGlvbiBp
cyhnb3QsIGV4cGVjdGVkLCBtc2cpIHsKKyAgdmFyIG9iaiA9IHt9OworICBvYmoudHlwZSA9ICJp
cyI7CisgIG9iai5nb3QgPSBnb3Q7CisgIG9iai5leHBlY3RlZCA9IGV4cGVjdGVkOworICBvYmou
bXNnID0gbXNnOworCisgIG1lc3NhZ2Uob2JqKTsKK30KKworZnVuY3Rpb24gb2soYm9vbCwgbXNn
KSB7CisgIHZhciBvYmogPSB7fTsKKyAgb2JqLnR5cGUgPSAib2siOworICBvYmouYm9vbCA9IGJv
b2w7CisgIG9iai5tc2cgPSBtc2c7CisKKyAgbWVzc2FnZShvYmopOworfQorCisvKioKKyAqIEdl
bmVyYXRlIGFuZCB0cmFjayByZXN1bHRzIGZyb20gYSBYTUxIdHRwUmVxdWVzdCB3aXRoIHJlZ2Fy
ZHMgdG8gdGltZW91dHMuCisgKgorICogQHBhcmFtIHtTdHJpbmd9IGlkICAgICAgICAgVGhlIHRl
c3QgZGVzY3JpcHRpb24uCisgKiBAcGFyYW0ge051bWJlcn0gdGltZUxpbWl0ICBUaGUgaW5pdGlh
bCBzZXR0aW5nIGZvciB0aGUgcmVxdWVzdCB0aW1lb3V0LgorICogQHBhcmFtIHtOdW1iZXJ9IHJl
c2V0QWZ0ZXIgKE9wdGlvbmFsKSBUaGUgdGltZSBhZnRlciBzZW5kaW5nIHRoZSByZXF1ZXN0LCB0
bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgdGhlIHRpbWVvdXQuCisgKiBA
cGFyYW0ge051bWJlcn0gcmVzZXRUbyAgICAoT3B0aW9uYWwpIFRoZSBkZWxheSB0byByZXNldCB0
aGUgdGltZW91dCB0by4KKyAqCisgKiBAbm90ZSBUaGUgYWN0dWFsIHRlc3RpbmcgdGFrZXMgcGxh
Y2UgaW4gaGFuZGxlRXZlbnQoZXZlbnQpLgorICogVGhlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQg
aW4gc3RhcnRYSFIoKS4KKyAqCisgKiBAbm90ZSBJZiByZXNldEFmdGVyIGFuZCByZXNldFRvIGFy
ZSBvbWl0dGVkLCBvbmx5IHRoZSBpbml0aWFsIHRpbWVvdXQgc2V0dGluZworICogYXBwbGllcy4K
KyAqCisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIERPTUV2ZW50TGlzdGVuZXIKKyAq
LworZnVuY3Rpb24gUmVxdWVzdFRyYWNrZXIoYXN5bmMsIGlkLCB0aW1lTGltaXQgLypbLCByZXNl
dEFmdGVyLCByZXNldFRvXSovKSB7CisgIHRoaXMuYXN5bmMgPSBhc3luYzsKKyAgdGhpcy5pZCA9
IGlkOworICB0aGlzLnRpbWVMaW1pdCA9IHRpbWVMaW1pdDsKKworICBpZiAoYXJndW1lbnRzLmxl
bmd0aCA+IDMpIHsKKyAgICB0aGlzLm11c3RSZXNldCAgPSB0cnVlOworICAgIHRoaXMucmVzZXRB
ZnRlciA9IGFyZ3VtZW50c1szXTsKKyAgICB0aGlzLnJlc2V0VG8gICAgPSBhcmd1bWVudHNbNF07
CisgIH0KKworICB0aGlzLmhhc0ZpcmVkID0gZmFsc2U7Cit9CitSZXF1ZXN0VHJhY2tlci5wcm90
b3R5cGUgPSB7CisgIC8qKgorICAgKiBTdGFydCB0aGUgWE1MSHR0cFJlcXVlc3QhCisgICAqLwor
ICBzdGFydFhIUjogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHRoaXMucmVxdWVzdCA9IHJlcTsKKyAgICByZXEub3BlbigiR0VUIiwgU1RBTExF
RF9SRVFVRVNUX1VSTCwgdGhpcy5hc3luYyk7CisgICAgdmFyIG1lID0gdGhpczsKKyAgICBmdW5j
dGlvbiBoYW5kbGVFdmVudChlKSB7IHJldHVybiBtZS5oYW5kbGVFdmVudChlKTsgfTsKKyAgICBy
ZXEub25lcnJvciA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmxvYWQgPSBoYW5kbGVFdmVudDsK
KyAgICByZXEub25hYm9ydCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbnRpbWVvdXQgPSBoYW5k
bGVFdmVudDsKKworICAgIHJlcS50aW1lb3V0ID0gdGhpcy50aW1lTGltaXQ7CisgICAgCisgICAg
aWYgKHRoaXMubXVzdFJlc2V0KSB7CisgICAgICB2YXIgcmVzZXRUbyA9IHRoaXMucmVzZXRUbzsK
KyAgICAgIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgcmVxLnRpbWVvdXQg
PSByZXNldFRvOworICAgICAgfSwgdGhpcy5yZXNldEFmdGVyKTsKKyAgICB9CisKKyAgICB0cnkg
eworICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICAv
LyBTeW5jaHJvbm91cyBjYXNlIGluIHdvcmtlcnMuCisgICAgICBvayghdGhpcy5hc3luYyAmJiB0
aGlzLnRpbWVMaW1pdCA8IDMwMDAgJiYgZS5uYW1lID09ICJUSU1FT1VUX0VSUiIsICJVbmV4cGVj
dGVkIGVycm9yOiAiICsgZSk7CisgICAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAg
ICB9CisgIH0sCisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRl
c3QuCisgICAqCisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgor
ICAgKi8KKyAgZ2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJ2ID0gdGhpcy5pZCAr
ICIsICI7CisgICAgaWYgKHRoaXMubXVzdFJlc2V0KSB7CisgICAgICBydiArPSAib3JpZ2luYWwg
dGltZW91dCBhdCAiICsgdGhpcy50aW1lTGltaXQgKyAiLCAiOworICAgICAgcnYgKz0gInJlc2V0
IGF0ICIgKyB0aGlzLnJlc2V0QWZ0ZXIgKyAiIHRvICIgKyB0aGlzLnJlc2V0VG87CisgICAgfQor
ICAgIGVsc2UgeworICAgICAgcnYgKz0gInRpbWVvdXQgc2NoZWR1bGVkIGF0ICIgKyB0aGlzLnRp
bWVMaW1pdDsKKyAgICB9CisgICAgcmV0dXJuIHJ2OworICB9LAorCisgIC8qKgorICAgKiBDaGVj
ayB0aGUgZXZlbnQgcmVjZWl2ZWQsIGFuZCBpZiBpdCdzIHRoZSByaWdodCAoYW5kIG9ubHkpIG9u
ZSB3ZSBnZXQuCisgICAqCisgICAqIEBwYXJhbSB7RE9NUHJvZ3Jlc3NFdmVudH0gZXZ0IEFuIGV2
ZW50IG9mIHR5cGUgImxvYWQiIG9yICJ0aW1lb3V0Ii4KKyAgICovCisgIGhhbmRsZUV2ZW50OiBm
dW5jdGlvbihldnQpIHsKKyAgICBpZiAodGhpcy5oYXNGaXJlZCkgeworICAgICAgb2soZmFsc2Us
ICJPbmx5IG9uZSBldmVudCBzaG91bGQgZmlyZTogIiArIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7CisKKyAgICB2YXIg
dHlwZSA9IGV2dC50eXBlLCBleHBlY3RlZFR5cGU7CisgICAgLy8gVGhlIFhIUiByZXNwb25kcyBh
ZnRlciAzMDAwIG1pbGxpc2Vjb25kcyB3aXRoIGEgbG9hZCBldmVudC4KKyAgICB2YXIgdGltZUxp
bWl0ID0gdGhpcy5tdXN0UmVzZXQgJiYgKHRoaXMucmVzZXRBZnRlciA8IE1hdGgubWluKDMwMDAs
IHRoaXMudGltZUxpbWl0KSkgPworICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VG8gOgor
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVMaW1pdDsKKyAgICBpZiAoKHRpbWVMaW1pdCA9
PSAwKSB8fCAodGltZUxpbWl0ID49IDMwMDApKSB7CisgICAgICBleHBlY3RlZFR5cGUgPSAibG9h
ZCI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgZXhwZWN0ZWRUeXBlID0gInRpbWVvdXQiOwor
ICAgIH0KKyAgICBpcyh0eXBlLCBleHBlY3RlZFR5cGUsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAg
ICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKworLyoqCisgKiBHZW5lcmF0
ZSBhbmQgdHJhY2sgWE1MSHR0cFJlcXVlc3RzIHdoaWNoIHdpbGwgaGF2ZSBhYm9ydCgpIGNhbGxl
ZCBvbi4KKyAqCisgKiBAcGFyYW0gc2hvdWxkQWJvcnQge0Jvb2xlYW59IFRydWUgaWYgd2Ugc2hv
dWxkIGNhbGwgYWJvcnQgYXQgYWxsLgorICogQHBhcmFtIGFib3J0RGVsYXkgIHtOdW1iZXJ9ICBU
aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBjYWxsaW5nIGFib3J0KCkuCisgKi8KK2Z1bmN0
aW9uIEFib3J0ZWRSZXF1ZXN0KHNob3VsZEFib3J0LCBhYm9ydERlbGF5KSB7CisgIHRoaXMuc2hv
dWxkQWJvcnQgPSBzaG91bGRBYm9ydDsKKyAgdGhpcy5hYm9ydERlbGF5ICA9IGFib3J0RGVsYXk7
CisgIHRoaXMuaGFzRmlyZWQgICAgPSBmYWxzZTsKK30KK0Fib3J0ZWRSZXF1ZXN0LnByb3RvdHlw
ZSA9IHsKKyAgLyoqCisgICAqIFN0YXJ0IHRoZSBYTUxIdHRwUmVxdWVzdCEKKyAgICovCisgIHN0
YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CisgICAgdGhpcy5yZXF1ZXN0ID0gcmVxOworICAgIHJlcS5vcGVuKCJHRVQiLCBTVEFMTEVEX1JF
UVVFU1RfVVJMKTsKKyAgICB2YXIgbWUgPSB0aGlzOworICAgIGZ1bmN0aW9uIGhhbmRsZUV2ZW50
KGUpIHsgcmV0dXJuIG1lLmhhbmRsZUV2ZW50KGUpOyB9OworICAgIHJlcS5vbmVycm9yID0gaGFu
ZGxlRXZlbnQ7CisgICAgcmVxLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmFib3J0
ID0gaGFuZGxlRXZlbnQ7CisgICAgcmVxLm9udGltZW91dCA9IGhhbmRsZUV2ZW50OworCisgICAg
cmVxLnRpbWVvdXQgPSAyMDAwOworICAgIHZhciBfdGhpcyA9IHRoaXM7CisKKyAgICBmdW5jdGlv
biBhYm9ydFJlcSgpIHsKKyAgICAgIHJlcS5hYm9ydCgpOworICAgIH0KKworICAgIGlmICghdGhp
cy5zaG91bGRBYm9ydCkgeworICAgICAgc2VsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICB0cnkgeworICAgICAgICAgIF90aGlzLm5vRXZlbnRzRmlyZWQoKTsKKyAgICAgICAgfQor
ICAgICAgICBjYXRjaCAoZSkgeworICAgICAgICAgIG9rKGZhbHNlLCAiVW5leHBlY3RlZCBlcnJv
cjogIiArIGUpOworICAgICAgICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICAgICAg
ICB9CisgICAgICB9LCA1MDAwKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAvLyBBYm9ydCBl
dmVudHMgY2FuIG9ubHkgYmUgdHJpZ2dlcmVkIG9uIHNlbnQgcmVxdWVzdHMuCisgICAgICByZXEu
c2VuZCgpOworICAgICAgaWYgKHRoaXMuYWJvcnREZWxheSA9PSAtMSkgeworICAgICAgICBhYm9y
dFJlcSgpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHNlbGYuc2V0VGltZW91dChh
Ym9ydFJlcSwgdGhpcy5hYm9ydERlbGF5KTsKKyAgICAgIH0KKyAgICB9CisgIH0sCisKKyAgLyoq
CisgICAqIEVuc3VyZSB0aGF0IG5vIGV2ZW50cyBmaXJlZCBhdCBhbGwsIGVzcGVjaWFsbHkgbm90
IG91ciB0aW1lb3V0IGV2ZW50LgorICAgKi8KKyAgbm9FdmVudHNGaXJlZDogZnVuY3Rpb24oKSB7
CisgICAgb2soIXRoaXMuaGFzRmlyZWQsICJObyBldmVudHMgc2hvdWxkIGZpcmUgZm9yIGFuIHVu
c2VudCwgdW5hYm9ydGVkIHJlcXVlc3QiKTsKKyAgICAvLyBXZSdyZSBkb25lOyBpZiB0aW1lb3V0
IGhhc24ndCBmaXJlZCBieSBub3csIGl0IG5ldmVyIHdpbGwuCisgICAgVGVzdENvdW50ZXIudGVz
dENvbXBsZXRlKCk7CisgIH0sCisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmlu
ZyB0aGlzIHRlc3QuCisgICAqCisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2Ny
aXB0aW9uLgorICAgKi8KKyAgZ2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuICJ0
aW1lIHRvIGFib3J0IGlzICIgKyB0aGlzLmFib3J0RGVsYXkgKyAiLCB0aW1lb3V0IHNldCBhdCAy
MDAwIjsKKyAgfSwKKworICAvKioKKyAgICogQ2hlY2sgdGhlIGV2ZW50IHJlY2VpdmVkLCBhbmQg
aWYgaXQncyB0aGUgcmlnaHQgKGFuZCBvbmx5KSBvbmUgd2UgZ2V0LgorICAgKgorICAgKiBXZWJL
aXQgZmlyZXMgYWJvcnQgZXZlbnRzIGV2ZW4gZm9yIERPTkUgYW5kIFVOU0VOVCBzdGF0ZXMsIHdo
aWNoIGlzIAorICAgKiBkaXNjdXNzZWQgaW4gaHR0cDovL3dlYmtpdC5vcmcvYi85ODQwNAorICAg
KiBUaGF0J3Mgd2h5IHdlIGNob3NlIHRvIGFjY2VwdCBzZWNvbmRhcnkgImFib3J0IiBldmVudHMg
aW4gdGhpcyB0ZXN0LgorICAgKgorICAgKiBAcGFyYW0ge0RPTVByb2dyZXNzRXZlbnR9IGV2dCBB
biBldmVudCBvZiB0eXBlICJsb2FkIiBvciAidGltZW91dCIuCisgICAqLworICBoYW5kbGVFdmVu
dDogZnVuY3Rpb24oZXZ0KSB7CisgICAgaWYgKHRoaXMuaGFzRmlyZWQgJiYgZXZ0LnR5cGUgIT0g
ImFib3J0IikgeworICAgICAgb2soZmFsc2UsICJPbmx5IGFib3J0IGV2ZW50IHNob3VsZCBmaXJl
OiAiICsgdGhpcy5nZXRNZXNzYWdlKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZh
ciBleHBlY3RlZEV2ZW50ID0gKHRoaXMuYWJvcnREZWxheSA+PSAyMDAwICYmICF0aGlzLmhhc0Zp
cmVkKSA/ICJ0aW1lb3V0IiA6ICJhYm9ydCI7CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7Cisg
ICAgaXMoZXZ0LnR5cGUsIGV4cGVjdGVkRXZlbnQsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICBU
ZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFyIFN5bmNSZXF1ZXN0U2V0
dGluZ1RpbWVvdXRBZnRlck9wZW4gPSB7CisgIHN0YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2
YXIgcGFzcyA9IGZhbHNlOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ICByZXEub3BlbigiR0VUIiwgU1RBTExFRF9SRVFVRVNUX1VSTCwgZmFsc2UpOworICAgIHRyeSB7
CisgICAgICByZXEudGltZW91dCA9IDEwMDA7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAg
ICBwYXNzID0gdHJ1ZTsKKyAgICB9CisgICAgb2socGFzcywgIlN5bmNocm9ub3VzIFhIUiBtdXN0
IG5vdCBhbGxvdyBhIHRpbWVvdXQgdG8gYmUgc2V0Iik7CisgICAgVGVzdENvdW50ZXIudGVzdENv
bXBsZXRlKCk7CisgIH0KK307CisKK3ZhciBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QmVmb3Jl
T3BlbiA9IHsKKyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciBwYXNzID0gZmFsc2U7
CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS50aW1lb3V0ID0g
MTAwMDsKKyAgICB0cnkgeworICAgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxMRURfUkVRVUVTVF9V
UkwsIGZhbHNlKTsKKyAgICB9CisgICAgY2F0Y2ggKGUpIHsKKyAgICAgIHBhc3MgPSB0cnVlOwor
ICAgIH0KKyAgICBvayhwYXNzLCAiU3luY2hyb25vdXMgWEhSIG11c3Qgbm90IGFsbG93IGEgdGlt
ZW91dCB0byBiZSBzZXQiKTsKKyAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQor
fTsKKwordmFyIFRlc3RSZXF1ZXN0R3JvdXBzID0geworICAic2ltcGxlIiA6IFsKKyAgICBuZXcg
UmVxdWVzdFRyYWNrZXIodHJ1ZSwgIm5vIHRpbWUgb3V0IHNjaGVkdWxlZCwgbG9hZCBmaXJlcyBu
b3JtYWxseSIsIDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAibG9hZCBmaXJlcyBu
b3JtYWxseSIsIDUwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBo
aXQgYmVmb3JlIGxvYWQiLCAyMDAwKQorICBdLAorCisgICJ0d2ljZSIgOiBbCisgICAgIG5ldyBS
ZXF1ZXN0VHJhY2tlcih0cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSB3aXRoIG5vIHRpbWVvdXQg
c2V0LCB0d2ljZSIsIDAsIDIwMDAsIDApLAorICAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwg
ImxvYWQgZmlyZXMgbm9ybWFsbHkgd2l0aCBzYW1lIHRpbWVvdXQgc2V0IHR3aWNlIiwgNTAwMCwg
MjAwMCwgNTAwMCksCisgICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBmaXJl
cyBub3JtYWxseSB3aXRoIHNhbWUgdGltZW91dCBzZXQgdHdpY2UiLCAyMDAwLCAxMDAwLCAyMDAw
KQorICBdLAorCisgIC8vIEZJWE1FOiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1
cGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgdGhlc2UgdGVzdHMgYXJlIG5vdCBydW4uCisg
ICJvdmVycmlkZXMiIDogWworICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBk
aXNhYmxlZCBhZnRlciBpbml0aWFsbHkgc2V0IiwgNTAwMCwgMjAwMCwgMCksCisgICAgbmV3IFJl
cXVlc3RUcmFja2VyKHRydWUsICJ0aW1lb3V0IG92ZXJyaWRlcyBsb2FkIGFmdGVyIGEgZGVsYXki
LCA1MDAwLCAxMDAwLCAyMDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVv
dXQgZW5hYmxlZCBhZnRlciBpbml0aWFsbHkgZGlzYWJsZWQiLCAwLCAyMDAwLCA1MDAwKQorICBd
LAorCisgICJvdmVycmlkZXNleHBpcmVzIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1
ZSwgInRpbWVvdXQgc2V0IHRvIGV4cGlyaW5nIHZhbHVlIGFmdGVyIGxvYWQgZmlyZXMiLCA1MDAw
LCA0MDAwLCAxMDAwKSwKKyAgICAvLyBGSVhNRTogaHR0cDovL3dlYmtpdC5vcmcvYi85ODE1NiAt
IExhdGUgdXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHRoaXMgdGVzdCBpcyBub3QgcnVu
LgorICAgIC8vIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gZXhwaXJl
ZCB2YWx1ZSBiZWZvcmUgbG9hZCBmaXJlcyIsIDUwMDAsIDIwMDAsIDEwMDApLAorICAgIG5ldyBS
ZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gbm9uLWV4cGlyaW5nIHZhbHVlIGFm
dGVyIHRpbWVvdXQgZmlyZXMiLCAxMDAwLCAyMDAwLCA1MDAwKQorICBdLAorCisgICJhYm9ydGVk
IiA6IFsKKyAgICBuZXcgQWJvcnRlZFJlcXVlc3QoZmFsc2UpLAorICAgIG5ldyBBYm9ydGVkUmVx
dWVzdCh0cnVlLCAtMSksCisgICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRydWUsIDUwMDApCisgIF0s
CisKKyAgImFib3J0ZWRvbm1haW4iIDogWworICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAw
KSwKKyAgICBuZXcgQWJvcnRlZFJlcXVlc3QodHJ1ZSwgMTAwMCkKKyAgXSwKKworICAic3luY29u
bWFpbiIgOiBbCisgICAgU3luY1JlcXVlc3RTZXR0aW5nVGltZW91dEFmdGVyT3BlbiwKKyAgICBT
eW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QmVmb3JlT3BlbgorICBdLAorCisgICJzeW5jb253b3Jr
ZXIiIDogWworICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwgIm5vIHRpbWUgb3V0IHNjaGVk
dWxlZCwgbG9hZCBmaXJlcyBub3JtYWxseSIsIDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihm
YWxzZSwgImxvYWQgZmlyZXMgbm9ybWFsbHkiLCA1MDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNr
ZXIoZmFsc2UsICJ0aW1lb3V0IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApCisgIF0KK307CisKK3Zh
ciBUZXN0UmVxdWVzdHMgPSBbXTsKKworLy8gVGhpcyBjb2RlIGNvbnRyb2xzIG1vdmluZyBmcm9t
IG9uZSB0ZXN0IHRvIGFub3RoZXIuCit2YXIgVGVzdENvdW50ZXIgPSB7CisgIHRlc3RDb21wbGV0
ZTogZnVuY3Rpb24oKSB7CisgICAgLy8gQWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGVyZSBh
cmUgb3RoZXIgZXZlbnRzIGNvbWluZy4KKyAgICBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICBUZXN0Q291bnRlci5uZXh0KCk7CisgICAgfSwgNTAwMCk7CisgIH0sCisKKyAgbmV4
dDogZnVuY3Rpb24oKSB7CisgICAgdmFyIHRlc3QgPSBUZXN0UmVxdWVzdHMuc2hpZnQoKTsKKwor
ICAgIGlmICh0ZXN0KSB7CisgICAgICB0ZXN0LnN0YXJ0WEhSKCk7CisgICAgfQorICAgIGVsc2Ug
eworICAgICAgbWVzc2FnZSgiZG9uZSIpOworICAgIH0KKyAgfQorfTsKKworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2ZW50KSB7CisgIGlmIChldmVudC5kYXRh
LnR5cGUgPT0gInN0YXJ0IikgeworICAgIFRlc3RSZXF1ZXN0cyA9IFRlc3RSZXF1ZXN0R3JvdXBz
W2V2ZW50LmRhdGEuZ3JvdXBdOworICAgIFRlc3RDb3VudGVyLm5leHQoKTsKKyAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4
MmVlN2MwNWQ5ZTc3NDdkZTI0NGY1YWRmYjgzMGNlYjI0OTVmMzViLi42ZDMzOTdkY2MzYjUzYWMx
M2Y1N2MxNzRiNzNiZGYxNjFlZWUzZDIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk4MSw2ICs5ODEsMTkgQEAgd2Via2l0Lm9yZy9i
LzU4ODk4IGZhc3QvYmxvY2svZmxvYXQvb3ZlcmhhbmdpbmctdGFsbC1ibG9jay5odG1sIFsgRmFp
bHVyZSBdCiAjIE5ldyB0ZXN0IGFkZGVkIHRoYXQgbmVlZHMgcGxhdGZvcm0gc3BlY2lmaWMgcmVz
dWx0cwogd2Via2l0Lm9yZy9iLzk4NDUyIFsgTGludXggV2luIF0gZmFzdC90ZXh0L3ZlcnRpY2Fs
LXJsLXJ0bC1saW5lYnJlYWsuaHRtbCBbIEZhaWx1cmUgXQogCisjIFJlc291cmNlUmVxdWVzdCBu
ZWVkcyB0byBzdXBwb3J0IHNldFRpbWVvdXRJbnRlcnZhbAord2Via2l0Lm9yZy9iLzk4Mzk3IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFi
b3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4u
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci1hYm9ydGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXIt
b3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5
bmNvbndvcmtlci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3
aWNlLmh0bWwgWyBGYWlsdXJlIF0KKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBJbnNwZWN0b3IgdGVzdHMKICMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ZWRlN2FjMGU0ZTQ4YzU4NjYzYzcxYmYyMDgxMGQwM2U5NDI3ZGI1My4uN2U1MGRkMzE1NDFjMzY2
NGQwODExZDZiYjA3M2Q5YWEyYzVmNzZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTYxMSw2ICs2MTEsMTggQEAgQnVnKEdUSykgWyBEZWJ1ZyBdIHNw
dXRuaWsvVW5pY29kZS9Vbmljb2RlXzIxOC9TNy42X0E1LjNfVDEuaHRtbCBbIFBhc3MgU2xvdyBd
CiBCdWcoR1RLKSBbIERlYnVnIF0gc3B1dG5pay9Vbmljb2RlL1VuaWNvZGVfMjE4L1M3LjZfQTUu
M19UMi5odG1sIFsgUGFzcyBTbG93IF0KIEJ1ZyhHVEspIHRhYmxlcy9tb3ppbGxhL290aGVyL3Ns
YXNobG9nby5odG1sIFsgUGFzcyBTbG93IF0KIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgUGFz
cyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1
ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2lt
cGxlLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBbIFBhc3Mg
U2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLWFib3J0ZWQuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRl
c2V4cGlyZXMuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1s
IFsgUGFzcyBTbG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBQYXNz
IFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIFsgUGFzcyBTbG93IF0gCisKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBzbG93IHRlc3RzCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNTRmNzNhMDVjM2ZiYWQyNDU2NmU0ODYwMjA2M2E0NjMyZGRhZmQ1
ZC4uNGRhNjE4ZTQwNGM4NjkwMDc5OGU0ZDMxZDNmZTk2NDkzNmI3N2FhZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC03OTAsNiArNzkwLDE5IEBAIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvY2FjaGUtb3ZlcnJpZGUuaHRtbAogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2MDYKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtY2hlY2stZ2V0LXJlYWR5c3RhdGUtZm9yLTQwNC13aXRob3V0LWJv
ZHkuaHRtbAogCisjIFJlc291cmNlUmVxdWVzdCBuZWVkcyB0byBzdXBwb3J0IHNldFRpbWVvdXRJ
bnRlcnZhbAord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
Lzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29u
bWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KKwogIyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBGYWlsaW5nIGVkaXRpbmcvaW5zZXJ0aW5nIHRl
c3RzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169958</attachid>
            <date>2012-10-22 12:23:51 -0700</date>
            <delta_ts>2012-10-22 12:23:51 -0700</delta_ts>
            <desc>Difference between v4 and v5</desc>
            <filename>v4_v5_diff.patch</filename>
            <type>text/plain</type>
            <size>1868</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTU2
MTE3MS4uZmU1Mjk3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTUsNCArNSw1IEBAIFRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhS
MiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3CiAKIFBBU1Mg
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKIFBBU1MgWEhSMiBUaW1lb3V0
IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkg
VGVzdHMgaW4gV29ya2VyIDIgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMKaW5kZXggMzU3M2YyMC4uZjI5YjMyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQu
anMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQuanMKQEAgLTEwNCw3ICsxMDQsMTQgQEAgUmVxdWVzdFRyYWNr
ZXIucHJvdG90eXBlID0gewogICAgICAgfSwgdGhpcy5yZXNldEFmdGVyKTsKICAgICB9CiAKLSAg
ICByZXEuc2VuZChudWxsKTsKKyAgICB0cnkgeworICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAg
fQorICAgIGNhdGNoIChlKSB7CisgICAgICAvLyBTeW5jaHJvbm91cyBjYXNlIGluIHdvcmtlcnMu
CisgICAgICBvayghdGhpcy5hc3luYyAmJiB0aGlzLnRpbWVMaW1pdCA8IDMwMDAgJiYgZS5uYW1l
ID09ICJUSU1FT1VUX0VSUiIsICJVbmV4cGVjdGVkIGVycm9yOiAiICsgZSk7CisgICAgICBUZXN0
Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgICB9CiAgIH0sCiAKICAgLyoqCkBAIC0zMjYsOCAr
MzMzLDcgQEAgdmFyIFRlc3RSZXF1ZXN0R3JvdXBzID0gewogICAic3luY29ud29ya2VyIiA6IFsK
ICAgICBuZXcgUmVxdWVzdFRyYWNrZXIoZmFsc2UsICJubyB0aW1lIG91dCBzY2hlZHVsZWQsIGxv
YWQgZmlyZXMgbm9ybWFsbHkiLCAwKSwKICAgICBuZXcgUmVxdWVzdFRyYWNrZXIoZmFsc2UsICJs
b2FkIGZpcmVzIG5vcm1hbGx5IiwgNTAwMCksCi0gICAgLy8gRklYTUU6IGh0dHA6Ly93ZWJraXQu
b3JnL2IvOTgxNTYgLSBMYXRlIHVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCB0aGlzIHRl
c3QgaXMgbm90IHJ1bi4KLSAgICAvLyBuZXcgUmVxdWVzdFRyYWNrZXIoZmFsc2UsICJ0aW1lb3V0
IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwg
InRpbWVvdXQgaGl0IGJlZm9yZSBsb2FkIiwgMjAwMCkKICAgXQogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170075</attachid>
            <date>2012-10-23 01:01:00 -0700</date>
            <delta_ts>2012-10-23 11:49:32 -0700</delta_ts>
            <desc>Patch v6, ChangeLog clarification.</desc>
            <filename>bug-74802-20121023110255.patch</filename>
            <type>text/plain</type>
            <size>62702</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiNjIwZmQ0ZWE0ZDM2
MGI3YjRiMGZmZDQwY2RmZGM1MjEzZDc4My4uNTk5YWM3MWYzYTlhZjU0NWI0MTZmMDg5MWVjMDg2
YTM0ZDE3YmZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTIyICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
QWRkIHRpbWVvdXQgc3VwcG9ydCB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBYSFIyIHRp
bWVvdXRzIGJ5IHVzaW5nIFJlc291cmNlUmVxdWVzdCdzIHNldFRpbWVvdXRJbnRlcnZhbC4KKyAg
ICAgICAgVGhpcyBtYWRlIHNldmVyYWwgY2hhbmdlcyBuZWNlc3NhcnkgaW4gQ2FjaGVkUmVzb3Vy
Y2UgYW5kIFN1YnJlc291cmNlTG9hZGVyIGluIG9yZGVyCisgICAgICAgIHRvIGRpc3Rpbmd1aXNo
IGFuZCBmb3J3YXJkIHRoZSB0aW1lb3V0IGNhc2UgZnJvbSB0aGVyZS4KKworICAgICAgICBUaGUg
Y2FzZSBvZiBsYXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRo
ZSB0aW1lb3V0IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHll
dCBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4KKworICAgICAgICBYSFIyIHRp
bWVvdXQgdGVzdHMgd2VyZSBpbml0aWFsbHkgd3JpdHRlbiBieSBNb3ppbGxhJ3MgQWxleCBWaW5j
ZW50J3MuIEhlIGdyYW50ZWQKKyAgICAgICAgcGVybWlzc2lvbiB0byByZXVzZSB0aGVtIHVuZGVy
IFBEL0JTRCBsaWNlbnNlCisgICAgICAgIGluIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcv
c2hvd19idWcuY2dpP2lkPTUyNTgxNiNjODYgLSBiaWcgdGhhbmtzIQorICAgICAgICBJIGFkYXB0
ZWQgdGhlbSBmb3IgVzNDIHRlc3RoYXJuZXNzLmpzIGFuZCBzcGxpdCB0aGVtIGludG8gZ3JvdXBz
IHdpdGggc2hvcnRlciB0ZXN0IHJ1bm5pbmcgdGltZQorICAgICAgICBzbyB0aGF0IHRoZXkgY2Fu
IGJlIHVzZWQgYXMgV2ViS2l0IGxheW91dCB0ZXN0cy4KKworICAgICAgICBUZXN0czogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRl
ZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LW92ZXJyaWRlc2V4cGlyZXMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92
ZXJyaWRlc2V4cGlyZXMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci10d2ljZS5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bm90
aWZ5RmluaXNoZWQpOiBGb3J3YXJkIGluZm9ybWF0aW9uIGFib3V0IHRpbWVvdXQgY2FzZS4KKyAg
ICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOiBEaXN0aW5ndWlzaCB0aW1lb3V0IGNhc2Ugd2hl
biBpbmZvcm1pbmcgY2xpZW50LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oOiBEaXN0aW5ndWlzaGluZyB0aW1lb3V0IGNhc2UgZm9yIGVycm9ycy4KKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlOjplcnJvck9jY3VycmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpsb2FkRmFpbGVkT3JDYW5jZWxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6dGltZWRPdXQpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3Qp
OiBJbml0aWFsaXppbmcgbV90aW1lb3V0IHZhbHVlIHRvIHplcm8uCisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6c2V0VGltZW91dCk6IFNldHRlciBmdW5jdGlvbiwgcG9zc2libHkg
cmFpc2luZyBKUyBleGNlcHRpb24uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpvcGVuKTogT3BlbiBjYWxsIG1heSByYWlzZSBleGNlcHRpb24g
Zm9yIHN5bmNocm9ub3VzIHJlcXVlc3RzIHdoZW4gdGltZW91dCB2YWx1ZSBpcyBzZXQuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6IEFzc2lnbmluZyB0
aW1lb3V0IHZhbHVlIHRvIFJlc291cmNlUmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpkaWRGYWlsKTogSGFuZGxpbmcgdGltZW91dCBjYXNlIHNlcGFyYXRlbHkuCisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkVGltZW91dCk6IFRpbWVvdXQgY2Fz
ZSBzdGF0ZSB0cmFuc2lzaXRpb24gYW5kIGV2ZW50IGZpcmluZyBhcyBzcGVjJ2VkLgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOiBOZXcgZXZlbnQgbGlzdGVuZXIsIG1lbWJlciBhbmQg
Y2FsbGJhY2sgZm9yIGhhbmRsaW5nIHRpbWVvdXQuCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdDo6dGltZW91dCk6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDogTmV3IGV2ZW50IGxpc3RlbmVyIGFuZCBwcm9wZXJ0eSBh
ZGRlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oOiBBZGRlZCBhbiBleGNlcHRpb24gdmFs
dWUgZm9yIHRoZSB0aW1lb3V0IGNhc2UuCisKKwogMjAxMi0xMC0yMiAgWmVubyBBbGJpc3NlciAg
PHplbm9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdT
dG9yZSBzaG91bGQgY2hlY2sgaWYgR3JhcGhpY3NTdXJmYWNlIGlzIHZhbGlkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA3
MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVjNjkwNzRmLi5hYzY4OTFhZjdjYWYwYjE5
ZDJhODkyNmRlMmM4ZDhlZmZiZTQ4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzA4LDYgKzMwOCw4IEBAIHZvaWQg
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UpCiAgICAgICAgIFJlc291cmNlRXJyb3IgZXJyb3IoIk5ldHdvcmsgUmVxdWVzdCBG
YWlsZWQiLCAwLCBtX3Jlc291cmNlLT51cmwoKSwgIlJlc291cmNlIGZhaWxlZCB0byBsb2FkIik7
CiAgICAgICAgIGlmIChtX3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKQogICAgICAgICAgICAgZXJy
b3Iuc2V0SXNDYW5jZWxsYXRpb24odHJ1ZSk7CisgICAgICAgIGlmIChtX3Jlc291cmNlLT50aW1l
ZE91dCgpKQorICAgICAgICAgICAgZXJyb3Iuc2V0SXNUaW1lb3V0KHRydWUpOwogICAgICAgICBk
aWRGYWlsKGVycm9yKTsKICAgICB9IGVsc2UKICAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jl
c291cmNlLT5pZGVudGlmaWVyKCksIG1fcmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTU3MDE3MTI2
NDVkODM0MTI2ODRmYmJlZDY5MTgyNWE4MDEwZmUyNS4uZTM5YWUyZmIwMjY4NzQ5ZDE1NjA3MjY5
MTExZmIyNGY2ZWQ1M2FkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0yODMsNyArMjgzLDEwIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgUmVmUHRyPFN1YnJlc291cmNl
TG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBwcm90ZWN0UmVzb3VyY2UobV9yZXNvdXJjZSk7CiAgICAgbV9zdGF0ZSA9IEZpbmlz
aGluZzsKLSAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNoZWRSZXNvdXJjZTo6TG9hZEVycm9yKTsK
KyAgICBpZiAoZXJyb3IuaXNUaW1lb3V0KCkpCisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENh
Y2hlZFJlc291cmNlOjpUaW1lb3V0RXJyb3IpOworICAgIGVsc2UKKyAgICAgICAgbV9yZXNvdXJj
ZS0+ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7CiAgICAgaWYgKCFtX3Jlc291cmNl
LT5pc1ByZWxvYWRlZCgpKQogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUobV9yZXNvdXJj
ZSk7CiAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBjM2QwOTNhMmZlNzAzYzgzNDgx
MGEzZTIzYzdmNWNmZmVjNDYyZTkyLi5mYWM4ODQ1MWI1ZmFjYWUwYmViNTlhYTg0NmI4MWFmMjIw
NDEyZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIENhY2hlZCwgICAgICAgLy8gcmVn
dWxhciBjYXNlCiAgICAgICAgIENhbmNlbGVkLAogICAgICAgICBMb2FkRXJyb3IsCisgICAgICAg
IFRpbWVvdXRFcnJvciwKICAgICAgICAgRGVjb2RlRXJyb3IKICAgICB9OwogCkBAIC0yMDcsOCAr
MjA4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWNjZXB0KGNvbnN0IFN0cmluZyYgYWNjZXB0
KSB7IG1fYWNjZXB0ID0gYWNjZXB0OyB9CiAKICAgICBib29sIHdhc0NhbmNlbGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0dXMgPT0gQ2FuY2VsZWQ7IH0KLSAgICBib29sIGVycm9yT2NjdXJyZWQo
KSBjb25zdCB7IHJldHVybiAobV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8IG1fc3RhdHVzID09IERl
Y29kZUVycm9yKTsgfQotICAgIGJvb2wgbG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSB7IHJldHVybiBt
X3N0YXR1cyA9PSBDYW5jZWxlZCB8fCBtX3N0YXR1cyA9PSBMb2FkRXJyb3I7IH0KKyAgICBib29s
IGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiAobV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8
IG1fc3RhdHVzID09IERlY29kZUVycm9yIHx8IG1fc3RhdHVzID09IFRpbWVvdXRFcnJvcik7IH0K
KyAgICBib29sIGxvYWRGYWlsZWRPckNhbmNlbGVkKCkgeyByZXR1cm4gbV9zdGF0dXMgPT0gQ2Fu
Y2VsZWQgfHwgbV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8IG1fc3RhdHVzID09IFRpbWVvdXRFcnJv
cjsgfQorICAgIGJvb2wgdGltZWRPdXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXR1cyA9PSBUaW1l
b3V0RXJyb3I7IH0KIAogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJh
Y2tzOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBmNjE2
OTA4NTRlZjczZTM5YmMwNGZmNjkyOTY2NTFkYWM2YTg3YjBlLi42ODc2MDcyNzRiMTE2OTQ3ZTU4
MmE2MjUyZDFkNDRkOGY5N2MzMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKQEAgLTMsNiArMyw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDcgQWxleGV5IFBy
b3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgg
SnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogICogIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAt
MTc1LDYgKzE3Niw3IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyCiAgICAgOiBBY3RpdmVET01P
YmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKICAgICAsIG1faW5jbHVk
ZUNyZWRlbnRpYWxzKGZhbHNlKQorICAgICwgbV90aW1lb3V0TWlsbGlzZWNvbmRzKDApCiAgICAg
LCBtX3N0YXRlKFVOU0VOVCkKICAgICAsIG1fY3JlYXRlZERvY3VtZW50KGZhbHNlKQogICAgICwg
bV9lcnJvcihmYWxzZSkKQEAgLTMyNiw2ICszMjgsMTkgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVy
biBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuZ2V0KCk7CiB9CiAKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6
OnNldFRpbWVvdXQodW5zaWduZWQgbG9uZyB0aW1lb3V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICAvLyBGSVhNRTogTmVlZCB0byB0cmlnZ2VyIG9yIHVwZGF0ZSB0aGUgdGltZW91dCBUaW1l
ciBoZXJlLCBpZiBuZWVkZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvOTgxNTYKKyAgICAvLyBYSFIy
IHNwZWMsIDQuNy4zLiAiVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHRpbWVvdXQgYXR0cmlidXRlIGNh
biBiZSBzZXQgd2hpbGUgZmV0Y2hpbmcgaXMgaW4gcHJvZ3Jlc3MuIElmIHRoYXQgb2NjdXJzIGl0
IHdpbGwgc3RpbGwgYmUgbWVhc3VyZWQgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIGZldGNoaW5n
LiIKKyAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkgJiYgIW1f
YXN5bmMpIHsKKyAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgIlhNTEh0dHBSZXF1ZXN0LnRpbWVvdXQgY2Fubm90IGJlIHNldCBmb3Igc3luY2hyb25vdXMg
SFRUUChTKSByZXF1ZXN0cyBtYWRlIGZyb20gdGhlIHdpbmRvdyBjb250ZXh0LiIpOworICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBt
X3RpbWVvdXRNaWxsaXNlY29uZHMgPSB0aW1lb3V0OworfQorCisKIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OnNldFJlc3BvbnNlVHlwZShjb25zdCBTdHJpbmcmIHJlc3BvbnNlVHlwZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgaWYgKG1fc3RhdGUgPj0gTE9BRElORykgewpAQCAtNDk1LDYgKzUx
MCwxMyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBj
b25zdCBLVVJMJiB1cmwsIGJvb2wgYXN5bmMsIEV4YwogICAgICAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICAv
LyBTaW1pbGFybHksIHRpbWVvdXRzIGFyZSBkaXNhYmxlZCBmb3Igc3luY2hyb25vdXMgcmVxdWVz
dHMgYXMgd2VsbC4KKyAgICAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcyA+IDApIHsKKyAg
ICAgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJTeW5j
aHJvbm91cyBYTUxIdHRwUmVxdWVzdHMgbXVzdCBub3QgaGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0
LiIpOworICAgICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBtX21ldGhvZCA9IHVwcGVyY2FzZUtub3du
SFRUUE1ldGhvZChtZXRob2QpOwpAQCAtNzQyLDYgKzc2NCw5IEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgb3B0aW9ucy5jcm9zc09y
aWdpblJlcXVlc3RQb2xpY3kgPSBVc2VBY2Nlc3NDb250cm9sOwogICAgIG9wdGlvbnMuc2VjdXJp
dHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbigpOwogCisgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vj
b25kcykKKyAgICAgICAgcmVxdWVzdC5zZXRUaW1lb3V0SW50ZXJ2YWwobV90aW1lb3V0TWlsbGlz
ZWNvbmRzIC8gMTAwMC4wKTsKKwogICAgIG1fZXhjZXB0aW9uQ29kZSA9IDA7CiAgICAgbV9lcnJv
ciA9IGZhbHNlOwogCkBAIC0xMDU4LDYgKzEwODMsMTEgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIGlmIChlcnJvci5pc1RpbWVvdXQoKSkgeworICAgICAgICBkaWRUaW1lb3V0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBOZXR3b3JrIGZhaWx1cmVzIGFyZSBh
bHJlYWR5IHJlcG9ydGVkIHRvIFdlYiBJbnNwZWN0b3IgYnkgUmVzb3VyY2VMb2FkZXIuCiAgICAg
aWYgKGVycm9yLmRvbWFpbigpID09IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwpCiAgICAgICAg
IGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJYTUxIdHRwUmVxdWVz
dCBjYW5ub3QgbG9hZCAiICsgZXJyb3IuZmFpbGluZ1VSTCgpICsgIi4gIiArIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkpOwpAQCAtMTE4Miw2ICsxMjEyLDM0IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4pCiAgICAgfQog
fQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRUaW1lb3V0KCkKK3sKKyAgICAvLyBpbnRlcm5h
bEFib3J0KCkgY2FsbHMgZHJvcFByb3RlY3Rpb24oKSwgd2hpY2ggbWF5IHJlbGVhc2UgdGhlIGxh
c3QgcmVmZXJlbmNlLgorICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVzdD4gcHJvdGVjdCh0aGlzKTsK
KyAgICBpbnRlcm5hbEFib3J0KCk7CisKKyAgICBjbGVhclJlc3BvbnNlKCk7CisgICAgY2xlYXJS
ZXF1ZXN0KCk7CisKKyAgICBtX2Vycm9yID0gdHJ1ZTsKKyAgICBtX2V4Y2VwdGlvbkNvZGUgPSBY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6VElNRU9VVF9FUlI7CisKKyAgICBpZiAoIW1fYXN5bmMp
IHsKKyAgICAgICAgbV9zdGF0ZSA9IERPTkU7CisgICAgICAgIG1fZXhjZXB0aW9uQ29kZSA9IFRJ
TUVPVVRfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2hhbmdlU3RhdGUoRE9O
RSk7CisKKyAgICBpZiAoIW1fdXBsb2FkQ29tcGxldGUpIHsKKyAgICAgICAgbV91cGxvYWRDb21w
bGV0ZSA9IHRydWU7CisgICAgICAgIGlmIChtX3VwbG9hZCAmJiBtX3VwbG9hZEV2ZW50c0FsbG93
ZWQpCisgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hFdmVudEFuZExvYWRFbmQoWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCkp
OworICAgIH0KKyAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaEV2ZW50QW5kTG9h
ZEVuZChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudGlt
ZW91dEV2ZW50KSk7Cit9CisKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmNhblN1c3BlbmQoKSBjb25z
dAogewogICAgIHJldHVybiAhbV9sb2FkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
CmluZGV4IGNjNmNiYzUwYzM2MDE2NTA4OWUyNjU5OTc1Y2QxMGQzMTEyMmVmNWQuLmYyNzc4MmY2
MjZhYWE3NjFhYTc1MzNjMjE4YzIzYmM4MzIzYWExZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5oCkBAIC0yLDYgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNvbT4KICAqICBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY5
LDYgKzcwLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERl
c3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRUaW1lb3V0KCk7CiAgICAgdmlydHVhbCBi
b29sIGNhblN1c3BlbmQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7CkBAIC0xMDQsNiArMTA2
LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiBvcHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgpOyB9CiAgICAgQmxvYiogcmVzcG9uc2VC
bG9iKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBCbG9iKiBvcHRpb25hbFJlc3BvbnNlQmxvYigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdldCgpOyB9CisgICAgdW5zaWduZWQgbG9uZyB0
aW1lb3V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1lb3V0TWlsbGlzZWNvbmRzOyB9CisgICAgdm9p
ZCBzZXRUaW1lb3V0KHVuc2lnbmVkIGxvbmcgdGltZW91dCwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgdm9pZCBzZW5kRnJvbUluc3BlY3RvcihQYXNzUmVmUHRyPEZvcm1EYXRhPiwgRXhjZXB0aW9u
Q29kZSYpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIobG9hZGVuZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihsb2Fkc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
cHJvZ3Jlc3MpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodGltZW91dCk7
CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0Pjo6cmVmOwogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+OjpkZXJlZjsKQEAgLTE5MSw2ICsxOTYsNyBAQCBw
cml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJpZGU7CiAgICAgYm9vbCBtX2FzeW5j
OwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7CisgICAgdW5zaWduZWQgbG9uZyBtX3Rp
bWVvdXRNaWxsaXNlY29uZHM7CiAgICAgUmVmUHRyPEJsb2I+IG1fcmVzcG9uc2VCbG9iOwogCiAg
ICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5pZGwKaW5kZXggMzdjNjk0ZTc1Y2IyNzNiOGFmMjRkMDQ1YWMzNTQyZWRjMzIz
ODMzMi4uYjZhZTIzMmI2YjBjZGFlZjQ1NmYyNzQwNTZjOWY1ZDQxNjFmZDZiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC00Myw2ICs0Myw3IEBACiAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkZW5kOwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ubG9hZHN0YXJ0OwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucHJvZ3Jlc3M7Cisg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1lb3V0OwogCiAgICAgLy8gZXZlbnQgaGFu
ZGxlciBhdHRyaWJ1dGVzCiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRl
Y2hhbmdlOwpAQCAtNTQsNiArNTUsOCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExPQURJ
TkcgPSAzOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERPTkUgPSA0OwogCisgICAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dAorICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7
CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKQEAgLTExNyw0ICsxMjAs
MyBAQAogICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgIHJh
aXNlcyhFdmVudEV4Y2VwdGlvbik7CiB9OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcAppbmRleCBjMDZjMDdjMGRlZTE4ZTQyNzViNjE2ODkzNWRl
OGJjYjVhODU1YmMzLi5iOGNiMmYzOTlkYjBhZTlmYmVmMTE1ZDE3MmZkZjJjYzVjMjA3NWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAKQEAg
LTM2LDcgKzM2LDggQEAgc3RhdGljIHN0cnVjdCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVE
ZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgZGVzY3JpcHRpb247CiB9IGV4Y2Vw
dGlvbnNbXSA9IHsKICAgICB7ICJORVRXT1JLX0VSUiIsICJBIG5ldHdvcmsgZXJyb3Igb2NjdXJy
ZWQgaW4gc3luY2hyb25vdXMgcmVxdWVzdHMuIiB9LAotICAgIHsgIkFCT1JUX0VSUiIsICJUaGUg
dXNlciBhYm9ydGVkIGEgcmVxdWVzdCBpbiBzeW5jaHJvbm91cyByZXF1ZXN0cy4iIH0KKyAgICB7
ICJBQk9SVF9FUlIiLCAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QgaW4gc3luY2hyb25vdXMg
cmVxdWVzdHMuIiB9LAorICAgIHsgIlRJTUVPVVRfRVJSIiwgIkEgdGltZW91dCBlcnJvciBvY2N1
cmVkIGluIHN5bmNocm9ub3VzIHJlcXVlc3RzLiIgfQogfTsKIAogYm9vbCBYTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCmluZGV4IDdjNDM3ZWYyZjg1NDg5NDkxOTNmZDAwMzg1
OGMwZTIxODZlMmQyODkuLjk0MGUzMDEwNzJkZTQ4ZjI1MDZkYzI0MTVjMjAyZWU4OGY4N2NmZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCkBAIC00
NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25D
b2RlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNl
dCArIDEwMSwKLSAgICAgICAgQUJPUlRfRVJSCisgICAgICAgIEFCT1JUX0VSUiwKKyAgICAgICAg
VElNRU9VVF9FUlIKICAgICB9OwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZURlc2NyaXB0
aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiopOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk1
MzhmYzdkYTRjOTE3MDY1MjZiMzA0YjZhNDc3YTBlYmFmZDU1OTYuLjI2YzM2N2YwODZlNjkwNDVi
ZWZlMWU3YzExMDlkMGRlMTkwMDYwMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMi0xMC0y
MiAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwuY29tPgorCisg
ICAgICAgIEFkZCB0aW1lb3V0IHN1cHBvcnQgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWEhSMiB0aW1lb3V0IHRlc3RzIHdl
cmUgaW5pdGlhbGx5IHdyaXR0ZW4gYnkgTW96aWxsYSdzIEFsZXggVmluY2VudCdzLiBIZSBncmFu
dGVkCisgICAgICAgIHBlcm1pc3Npb24gdG8gcmV1c2UgdGhlbSB1bmRlciBQRC9CU0QgbGljZW5z
ZQorICAgICAgICBpbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MjU4MTYjYzg2IC0gYmlnIHRoYW5rcyEKKyAgICAgICAgSSBhZGFwdGVkIHRoZW0gZm9yIFcz
QyB0ZXN0aGFybmVzcy5qcyBhbmQgc3BsaXQgdGhlbSBpbnRvIGdyb3VwcyB3aXRoIHNob3J0ZXIg
dGVzdCBydW5uaW5nIHRpbWUKKyAgICAgICAgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIGFzIFdl
YktpdCBsYXlvdXQgdGVzdHMuIEVhY2ggaW5kaXZpZHVhbCB0ZXN0IHNob3VsZAorICAgICAgICBj
b21wbGV0ZSBpbiBsZXNzIHRoYW4gMjAgc2Vjb25kcy4KKworICAgICAgICBUaGUgY2FzZSBvZiBs
YXRlIHVwZGF0ZXMgdG8gdGhlIHRpbWVvdXQgcHJvcGVydHksIGNoYW5naW5nIHRoZSB0aW1lb3V0
IHZhbHVlIGFmdGVyIHNlbmQoKQorICAgICAgICBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgaGFu
ZGxlZCBzZXBhcmF0ZWx5IGluIGJ1ZyA5ODE1Ni4gVGVzdHMgdGhhdCBhcmUgdGVzdGluZyB0aGlz
IGZlYXR1cmUKKyAgICAgICAgYXJlIGNvbW1lbnRlZCBvdXQgdW50aWwgdGhpcyBidWcgaXMgdGFj
a2xlZC4KKworICAgICAgICBUaGUgc3VmZml4IG9mIHRoZSBodG1sIHRlc3QgZmlsZW5hbWUgbWF0
Y2hlcyB0aGUgZ3JvdXBzIGluIHhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMgd2hpY2ggY29udGFp
bnMKKyAgICAgICAgYWxsIHRlc3RzIHRoYXQgYXJlIHJ1bi4gVGhlIHJlc3VsdCBvZiBhc3NlcnRp
b25zIGlzIHJlcG9ydGVkIGJhY2sgdG8gdGVzdGhhcm5lc3MuanMuCisKKyAgICAgICAgRm9yIGV4
YW1wbGUsIHRoZSAib3ZlcnJpZGVzIiBncm91cCBpcyBjdXJyZW50bHkgbm90IHJ1biB5ZXQgc2lu
Y2UgYWxsIHRlc3RzIGluIHRoYXQgZ3JvdXAgYXJlIGNhc2VzCisgICAgICAgIG9mIGxhdGUgdXBk
YXRlcywgc2VlIGFib3ZlLiBPbmNlIGxhdGUgdXBkYXRlcyBhcmUgc3VwcG9ydGVkIHdlIGNhbiBh
ZGQgYSBmaWxlCisgICAgICAgIHhtbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzLmh0bWwg
dG8gcnVuIHRoZW0uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtYWJvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanM6IEFk
ZGVkLiBEaXN0aW5ndWlzaGVzIHdoaWNoIGdyb3VwIG9mIHRlc3RzIHRvIHJ1biBiYXNlZCBvbiBm
aWxlbmFtZSBzdWZmaXguCisgICAgICAgICh0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyLnJldHVy
bik6CisgICAgICAgIChncm91cEZyb21Mb2NhdGlvbik6CisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1l
b3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXN5bmNvbm1haW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtdHdpY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtl
ci1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXdvcmtlci10d2ljZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10
d2ljZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qczogQWRkZWQuIENvbnRhaW5zIHRlc3QgY2Fz
ZXMgZm9yIGFsbCBpbmRpdmlkdWFsIHRlc3QgaHRtbCBmaWxlcy4KKyAgICAgICAgKG1lc3NhZ2Up
OiBXcmFwcGVyIGZvciBwb3N0TWVzc2FnZSBpbiB3b3JrZXIgYW5kIGRvY3VtZW50IGNvbnRleHQg
Y2FzZS4KKyAgICAgICAgKGlzKSwKKyAgICAgICAgKG9rKTogQXNzZXJ0aW9uIGZ1bmN0aW9ucy4K
KyAgICAgICAgKFJlcXVlc3RUcmFja2VyKTogQ2xhc3MgZm9yIHZhcmlhdGlvbnMgb2YgdGhlIHJl
Z3VsYXIgdGltZW91dCBjYXNlLgorICAgICAgICAoUmVxdWVzdFRyYWNrZXIucHJvdG90eXBlLnN0
YXJ0WEhSLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFJlcXVlc3RUcmFja2VyLnByb3RvdHlwZS5z
dGFydFhIUik6CisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuZ2V0TWVzc2FnZSk6
CisgICAgICAgIChSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAg
ICAoQWJvcnRlZFJlcXVlc3QpOiBDbGFzcyBmb3IgdGVzdGluZyB0aW1lb3V0IGV2ZW50IHZzLiBh
Ym9ydCBldmVudHMuCisgICAgICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUuc3RhcnRYSFIu
aGFuZGxlRXZlbnQpOgorICAgICAgICAoQWJvcnRlZFJlcXVlc3QucHJvdG90eXBlLnN0YXJ0WEhS
LmFib3J0UmVxKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5zdGFydFhIUi5l
bHNlKToKKyAgICAgICAgKEFib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZS5zdGFydFhIUik6CisgICAg
ICAgIChBYm9ydGVkUmVxdWVzdC5wcm90b3R5cGUubm9FdmVudHNGaXJlZCk6CisgICAgICAgIChB
Ym9ydGVkUmVxdWVzdC5wcm90b3R5cGUuZ2V0TWVzc2FnZSk6CisgICAgICAgIChBYm9ydGVkUmVx
dWVzdC5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAoU3luY1JlcXVlc3RTZXR0aW5n
VGltZW91dEFmdGVyT3Blbi5zdGFydFhIUiksCisgICAgICAgIChTeW5jUmVxdWVzdFNldHRpbmdU
aW1lb3V0QmVmb3JlT3Blbi5zdGFydFhIUik6IFRlc3QgY2xhc3NlcyBmb3Igc3luY2hyb25vdXMg
WEhSIGNhc2VzLgorICAgICAgICAoVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKSwKKyAgICAgICAg
KFRlc3RDb3VudGVyLm5leHQpOiBVc2VkIGZvciBjeWNsaW5nIHRocm91Z2ggdGVzdHMuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcgWEhSIHRp
bWVvdXQgY2FzZXMgc2luY2Ugc2V0VGltZW91dEludGVydmFsIGlzIG5vdCBzdXBwb3J0ZWQgaW4g
Q2hyb21pdW0ncyBIVFRQIHN0YWNrLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOiBNYXJraW5nIFhIUiB0aW1lb3V0IGNhc2VzIGFzIHNsb3cgaW4gb3JkZXIgdG8gcnVu
IHRoZW0gd2l0aCBhIGxvbmdlciB0ZXN0IHRpbWVvdXQgdGhyZXNob2xkLgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwaW5nIFhIUiB0aW1lb3V0IGNhc2VzIHNp
bmNlIHNldFRpbWVvdXRJbnRlcnZhbCBpcyBub3Qgc3VwcG9ydGVkIGluIENocm9taXVtJ3MgSFRU
UCBzdGFjay4KKwogMjAxMi0xMC0yMiAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC1hYm9ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgzMTk0MjkwNjUzNGU2MmJlY2NiYTY2OTk2ZDA1YjRjNzk5Y2I2MTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhI
UjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGFzeW5jIGNhc2VzIGlu
IGRvY3VtZW50IChpLmUuIG5vbi13b3JrZXIpIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVv
dXQgUHJvcGVydHkgVGVzdHMgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAxIAor
UEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgMiAKK1BBU1MgWEhSMiBUaW1lb3V0IFBy
b3BlcnR5IFRlc3RzIDMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBk
ZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJv
cnRlZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91
dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNr
SGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0Iiwg
Imdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBvc3RN
ZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+Cisg
ICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkg
YmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24t
d29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzYTZhOTM4MGM5NTUxM2VhNGRmZTU5NDEyNTc2ZDgyY2JjMzE2ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWluLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgg
QEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1l
b3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1l
bnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0
ZWRvbm1haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRl
OTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5o
dG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3
LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxl
cik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0IiwgImdyb3Vw
IjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdl
KHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+
VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZl
cyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5lLiBub24td29ya2Vy
KSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Rp
bWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzYTZhOTM4MGM5NTUxM2VhNGRmZTU5NDEyNTc2ZDgyY2JjMzE2ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0
aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9j
dW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQ
cm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LW92ZXJyaWRlc2V4cGlyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBkZDE4
M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJp
ZGVzZXhwaXJlcy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdFJlc3VsdENh
bGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0
YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd2luZG93
LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNjcmlwdGlvbjwv
aDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJv
cGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1bWVudCAoaS5l
LiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1ydW5uZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0ODUyODdmOTc5YmU0ZjdiMjE5NmE2NmYx
NzBmM2Y4MjgzOGQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcwpA
QCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiB0ZXN0UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKGV2ZW50
KSB7CisgICAgaWYgKGV2ZW50LmRhdGEgPT0gImRvbmUiKSB7CisgICAgICAgIGRvbmUoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQuZGF0YS50eXBlID09ICJpcyIpIHsK
KyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLmdvdCwg
ZXZlbnQuZGF0YS5leHBlY3RlZCwgZXZlbnQuZGF0YS5tc2cpOyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoZXZlbnQuZGF0YS50eXBlID09ICJvayIpIHsKKyAgICAgICAgdGVz
dChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUoZXZlbnQuZGF0YS5ib29sLCBldmVudC5kYXRhLm1z
Zyk7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCitmdW5jdGlvbiBncm91cEZyb21M
b2NhdGlvbigpIHsKKyAgICBzdWZmaXhNYXRjaCA9IC94bWxodHRwcmVxdWVzdC10aW1lb3V0LSgu
KilcLmh0bWwvOworICAgIGdyb3VwID0gc3VmZml4TWF0Y2guZXhlYyhkb2N1bWVudC5sb2NhdGlv
bi5ocmVmKVsxXTsKKyAgICBncm91cCA9IGdyb3VwLnJlcGxhY2UoIndvcmtlci0iLCAiIik7Cisg
ICAgcmV0dXJuIGdyb3VwOworfQorCisvLyBTZXR0aW5nIHVwIHRlc3RoYXJuZXNzLmpzCitzZXR1
cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIHRpbWVvdXQ6IDMgKiA2MCAqIDEwMDAgfSk7CisKKy8v
IEFib3J0IHRlc3QgZXhlY3V0aW9uIGlmIGFuIGluZGl2aWR1YWwgdGVzdCBjYXNlIGZhaWxzLgor
YWRkX3Jlc3VsdF9jYWxsYmFjayhmdW5jdGlvbiAodCkgeworICAgIGlmICh0LnN0YXR1cyA9PSB0
LkZBSUwpCisgICAgICAgIGRvbmUoKTsKK30pOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1z
aW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDA3YjcyMDI0NTBlZDgwNjA1NTY4MzRiOTVmNDBjNzE0NjlkMTZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1l
b3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1l
bnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNTIFhI
UjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1z
aW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTU3MzAx
MmY0ZjNhZjg2MGRkMTgzYTdmZWVmNGU5NmNlZGQ0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5Y
SFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3Ii
IC8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+
CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1
bHRDYWxsYmFja0hhbmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6
ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdp
bmRvdy5wb3N0TWVzc2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRp
b248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0
IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQg
KGkuZS4gbm9uLXdvcmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZjg2YzkzZTU5NTI2Mzg2OTJiOGE3Y2ZiMTk1ODQzOTYzMDkyNjYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdC50aW1lb3V0IGNhbm5vdCBiZSBz
ZXQgZm9yIHN5bmNocm9ub3VzIEhUVFAoUykgcmVxdWVzdHMgbWFkZSBmcm9tIHRoZSB3aW5kb3cg
Y29udGV4dC4KK0NPTlNPTEUgTUVTU0FHRTogU3luY2hyb25vdXMgWE1MSHR0cFJlcXVlc3RzIG11
c3Qgbm90IGhhdmUgYSB0aW1lb3V0IHZhbHVlIHNldC4KK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVz
dCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhw
ZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdvcmtlcikgY29udGV4
dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyAKK1BBU1MgWEhSMiBUaW1l
b3V0IFByb3BlcnR5IFRlc3RzIDEgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1h
aW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMw
MTJmNGYzYWY4NjBkZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtc3luY29ubWFpbi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKyA8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRp
dGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGltZW91dC1l
cnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJuZXNzLmNz
cyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRpbWVvdXQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1
bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFho
cigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVz
dFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0
eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAg
ICAgd2luZG93LnBvc3RNZXNzYWdlKHJ1blRlc3RzLCAiKiIpOworICAgICAgICB9OworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5EZXNj
cmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRp
bWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBhc3luYyBjYXNlcyBpbiBkb2N1
bWVudCAoaS5lLiBub24td29ya2VyKSBjb250ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVv
dXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDQwN2I3MjAyNDUwZWQ4MDYwNTU2ODM0Yjk1ZjQwYzcxNDY5ZDE2YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2Ny
aXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3Bl
cnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4g
bm9uLXdvcmtlcikgY29udGV4dC4KKworCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0
cyAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIDEgCitQQVNTIFhIUjIgVGltZW91
dCBQcm9wZXJ0eSBUZXN0cyAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGE1NzMwMTJmNGYzYWY4NjBk
ZDE4M2E3ZmVlZjRlOTZjZWRkNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdp
Y2UuaHRtbApAQCAtMCwwICsxLDI2IEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQg
UHJvcGVydHkgVGVzdHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFja0hh
bmRsZXIpOworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIsICJn
cm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVz
c2FnZShydW5UZXN0cywgIioiKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAg
IDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJl
aGF2ZXMgYXMgZXhwZWN0ZWQgaW4gYXN5bmMgY2FzZXMgaW4gZG9jdW1lbnQgKGkuZS4gbm9uLXdv
cmtlcikgY29udGV4dC48L3A+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkyN2I0NTI4M2MxYTU2ODg1N2UxMjUwOGFiMDg0MWJlMTIxMTU1ZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRp
bWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0
LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1Mg
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBYSFIyIFRpbWVv
dXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIDIgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0
eSBUZXN0cyBpbiBXb3JrZXIgMyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFi
b3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGEzNDcyMjExMmJhODFhYjg0YzdmMWM1N2QwMzY4ZmNkNzVjYjk2YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIg
Lz4KKyAgICA8dGl0bGU+WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0
bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxI
dHRwUmVxdWVzdC8jdGltZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InRlc3RoYXJuZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Inht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAg
ICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91dC5q
cyIpOworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0
UmVzdWx0Q2FsbGJhY2tIYW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAi
dHlwZSI6ICJzdGFydCIsICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAg
ICAgIHdvcmtlci5wb3N0TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0
aW9uPC9oMT4KKyAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91
dCBwcm9wZXJ0eSBiZWhhdmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9w
PgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNTYxMTcxNDk1NDhkZWY2MjkzOTUwYzUzYmIwZmY4Y2UyYTA3OGFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRo
ZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtl
ciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtl
ciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAxIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTM0NzIyMTEy
YmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAv
PgorICAgIDx0aXRsZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRs
ZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0
dHBSZXF1ZXN0LyN0aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0idGVzdGhhcm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1s
aHR0cHJlcXVlc3QtdGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAg
ICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0Lmpz
Iik7CisgICAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RS
ZXN1bHRDYWxsYmFja0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0
eXBlIjogInN0YXJ0IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAg
ICAgd29ya2VyLnBvc3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRp
b248L2gxPgorICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0
IHByb3BlcnR5IGJlaGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+
CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUyOTdlZWU3OWJjZGE2NTll
YjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitEZXNjcmlwdGlvbgorCitU
aGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhhdmVz
IGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuCisKKworUEFTUyBYSFIyIFRpbWVv
dXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkg
VGVzdHMgaW4gV29ya2VyIDEgCitQQVNTIFhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBX
b3JrZXIgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3MjIxMTJiYTgx
YWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorIDwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICA8dGl0bGU+
WEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlcjwvdGl0bGU+CisgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGlt
ZW91dC1lcnJvciIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlc3RoYXJu
ZXNzLmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQtcnVubmVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHRlc3RYaHIoKSB7CisgICAgICAgICAgICB2YXIgd29y
a2VyID0gbmV3IFdvcmtlcigieG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyIpOworICAgICAgICAg
ICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0UmVzdWx0Q2FsbGJhY2tI
YW5kbGVyKTsKKworICAgICAgICAgICAgdmFyIHJ1blRlc3RzID0geyAidHlwZSI6ICJzdGFydCIs
ICJncm91cCI6IGdyb3VwRnJvbUxvY2F0aW9uKCkgfTsKKyAgICAgICAgICAgIHdvcmtlci5wb3N0
TWVzc2FnZShydW5UZXN0cyk7CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3RYaHIoKSI+CisgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAgICA8
cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIFhIUjIgdGltZW91dCBwcm9wZXJ0eSBiZWhh
dmVzIGFzIGV4cGVjdGVkIGluIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorICAgIDxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LXdvcmtlci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5
bmNvbndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1Mjk3ZWVlNzliY2RhNjU5ZWI5
ZmFjOGQ5YzFjZTc0YmQyYzRjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtl
ci1zeW5jb253b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVzY3JpcHRpb24K
KworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIyIHRpbWVvdXQgcHJvcGVydHkgYmVo
YXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250ZXh0LgorCisKK1BBU1MgWEhSMiBU
aW1lb3V0IFByb3BlcnR5IFRlc3RzIGluIFdvcmtlciAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3Bl
cnR5IFRlc3RzIGluIFdvcmtlciAxIAorUEFTUyBYSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMg
aW4gV29ya2VyIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YTM0NzIyMTEyYmE4MWFiODRjN2YxYzU3ZDAzNjhmY2Q3NWNiOTZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sCkBAIC0wLDAgKzEsMjcg
QEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+CisgICAgPHRpdGxlPlhIUjIgVGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3Jr
ZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvWE1MSHR0cFJlcXVlc3QvI3RpbWVvdXQtZXJyb3IiIC8+CisgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJ0ZXN0aGFybmVzcy5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiB0ZXN0WGhyKCkg
eworICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInhtbGh0dHByZXF1ZXN0LXRp
bWVvdXQuanMiKTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgdGVzdFJlc3VsdENhbGxiYWNrSGFuZGxlcik7CisKKyAgICAgICAgICAgIHZhciBydW5UZXN0
cyA9IHsgInR5cGUiOiAic3RhcnQiLCAiZ3JvdXAiOiBncm91cEZyb21Mb2NhdGlvbigpIH07Cisg
ICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UocnVuVGVzdHMpOworICAgICAgICB9OworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0WGhyKCkiPgorICAgIDxoMT5E
ZXNjcmlwdGlvbjwvaDE+CisgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHRoZSBYSFIy
IHRpbWVvdXQgcHJvcGVydHkgYmVoYXZlcyBhcyBleHBlY3RlZCBpbiBpbiBhIHdvcmtlciBjb250
ZXh0LjwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUyOTdlZWU3OWJj
ZGE2NTllYjlmYWM4ZDljMWNlNzRiZDJjNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtd29ya2VyLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0Rlc2NyaXB0aW9u
CisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJl
aGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC4KKworCitQQVNTIFhIUjIg
VGltZW91dCBQcm9wZXJ0eSBUZXN0cyBpbiBXb3JrZXIgCitQQVNTIFhIUjIgVGltZW91dCBQcm9w
ZXJ0eSBUZXN0cyBpbiBXb3JrZXIgMSAKK1BBU1MgWEhSMiBUaW1lb3V0IFByb3BlcnR5IFRlc3Rz
IGluIFdvcmtlciAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMzQ3MjIxMTJi
YTgxYWI4NGM3ZjFjNTdkMDM2OGZjZDc1Y2I5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItdHdpY2UuaHRtbApAQCAtMCwwICsxLDI3IEBACisgPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRs
ZT5YSFIyIFRpbWVvdXQgUHJvcGVydHkgVGVzdHMgaW4gV29ya2VyPC90aXRsZT4KKyAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0
aW1lb3V0LWVycm9yIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdGhh
cm5lc3MuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ieG1saHR0cHJlcXVlc3Qt
dGltZW91dC1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gdGVzdFhocigpIHsKKyAgICAgICAgICAgIHZhciB3
b3JrZXIgPSBuZXcgV29ya2VyKCJ4bWxodHRwcmVxdWVzdC10aW1lb3V0LmpzIik7CisgICAgICAg
ICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3RSZXN1bHRDYWxsYmFj
a0hhbmRsZXIpOworCisgICAgICAgICAgICB2YXIgcnVuVGVzdHMgPSB7ICJ0eXBlIjogInN0YXJ0
IiwgImdyb3VwIjogZ3JvdXBGcm9tTG9jYXRpb24oKSB9OworICAgICAgICAgICAgd29ya2VyLnBv
c3RNZXNzYWdlKHJ1blRlc3RzKTsKKyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdFhocigpIj4KKyAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAg
IDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB0aGUgWEhSMiB0aW1lb3V0IHByb3BlcnR5IGJl
aGF2ZXMgYXMgZXhwZWN0ZWQgaW4gaW4gYSB3b3JrZXIgY29udGV4dC48L3A+CisgICAgPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1s
aHR0cHJlcXVlc3QtdGltZW91dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjliMzJjMGRiYTlmYjY2YThlMjI2
ODU1NGM3ZTc2YzFmODJkOWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQuanMKQEAg
LTAsMCArMSwzNjggQEAKKy8qIFRlc3QgaW1wb3J0ZWQgZnJvbSBBbGV4IFZpbmNlbnQncyBYSFIy
IHRpbWVvdXQgdGVzdHMsIHdyaXR0ZW4gZm9yIE1vemlsbGEuCisgICBodHRwczovL2hnLm1vemls
bGEub3JnL21vemlsbGEtY2VudHJhbC9maWxlL3RpcC9jb250ZW50L2Jhc2UvdGVzdC8KKyAgIFJl
bGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4sIGFjY29yZGluZyB0bworICAgaHR0cHM6Ly9i
dWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1ODE2I2M4NgorKi8KKworLyog
Tm90ZXM6CisgICAtIEFsbCB0aW1lcyBhcmUgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25kcyBpbiB0
aGlzIHRlc3Qgc3VpdGUuCisgICAtIFRlc3QgaGFybmVzcyBjb2RlIGlzIGF0IHRoZSBlbmQgb2Yg
dGhpcyBmaWxlLgorICAgLSBXZSBnZW5lcmF0ZSBvbmx5IG9uZSByZXF1ZXN0IGF0IGEgdGltZSwg
dG8gYXZvaWQgb3ZlcmxvYWRpbmcgdGhlIEhUVFAKKyAgIHJlcXVlc3QgaGFuZGxlcnMuCisgKi8K
KworLyoKKyAqIFRoaXMgc2hvdWxkIHBvaW50IHRvIGEgcmVzb3VyY2UgdGhhdCByZXNwb25kcyBh
ZnRlciBhIGRlbGF5IG9mIDMgc2Vjb25kcy4KKyAqLwordmFyIFNUQUxMRURfUkVRVUVTVF9VUkwg
PSAiL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5jZ2k/bmFtZT0uLi8uLi8uLi9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC5qcyZzdGFsbEZv
cj0zJnN0YWxsQXQ9MCZtaW1lVHlwZT10ZXh0L3BsYWluIjsKKwordmFyIGluV29ya2VyID0gZmFs
c2U7Cit0cnkgeworICBpbldvcmtlciA9ICEoc2VsZiBpbnN0YW5jZW9mIFdpbmRvdyk7Cit9IGNh
dGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gbWVzc2FnZShvYmop
IHsKKyAgaWYgKGluV29ya2VyKQorICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqKTsKKyAgZWxzZQor
ICAgIHNlbGYucG9zdE1lc3NhZ2Uob2JqLCAiKiIpOworfQorCitmdW5jdGlvbiBpcyhnb3QsIGV4
cGVjdGVkLCBtc2cpIHsKKyAgdmFyIG9iaiA9IHt9OworICBvYmoudHlwZSA9ICJpcyI7CisgIG9i
ai5nb3QgPSBnb3Q7CisgIG9iai5leHBlY3RlZCA9IGV4cGVjdGVkOworICBvYmoubXNnID0gbXNn
OworCisgIG1lc3NhZ2Uob2JqKTsKK30KKworZnVuY3Rpb24gb2soYm9vbCwgbXNnKSB7CisgIHZh
ciBvYmogPSB7fTsKKyAgb2JqLnR5cGUgPSAib2siOworICBvYmouYm9vbCA9IGJvb2w7CisgIG9i
ai5tc2cgPSBtc2c7CisKKyAgbWVzc2FnZShvYmopOworfQorCisvKioKKyAqIEdlbmVyYXRlIGFu
ZCB0cmFjayByZXN1bHRzIGZyb20gYSBYTUxIdHRwUmVxdWVzdCB3aXRoIHJlZ2FyZHMgdG8gdGlt
ZW91dHMuCisgKgorICogQHBhcmFtIHtTdHJpbmd9IGlkICAgICAgICAgVGhlIHRlc3QgZGVzY3Jp
cHRpb24uCisgKiBAcGFyYW0ge051bWJlcn0gdGltZUxpbWl0ICBUaGUgaW5pdGlhbCBzZXR0aW5n
IGZvciB0aGUgcmVxdWVzdCB0aW1lb3V0LgorICogQHBhcmFtIHtOdW1iZXJ9IHJlc2V0QWZ0ZXIg
KE9wdGlvbmFsKSBUaGUgdGltZSBhZnRlciBzZW5kaW5nIHRoZSByZXF1ZXN0LCB0bworICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgdGhlIHRpbWVvdXQuCisgKiBAcGFyYW0ge051
bWJlcn0gcmVzZXRUbyAgICAoT3B0aW9uYWwpIFRoZSBkZWxheSB0byByZXNldCB0aGUgdGltZW91
dCB0by4KKyAqCisgKiBAbm90ZSBUaGUgYWN0dWFsIHRlc3RpbmcgdGFrZXMgcGxhY2UgaW4gaGFu
ZGxlRXZlbnQoZXZlbnQpLgorICogVGhlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQgaW4gc3RhcnRY
SFIoKS4KKyAqCisgKiBAbm90ZSBJZiByZXNldEFmdGVyIGFuZCByZXNldFRvIGFyZSBvbWl0dGVk
LCBvbmx5IHRoZSBpbml0aWFsIHRpbWVvdXQgc2V0dGluZworICogYXBwbGllcy4KKyAqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIERPTUV2ZW50TGlzdGVuZXIKKyAqLworZnVuY3Rp
b24gUmVxdWVzdFRyYWNrZXIoYXN5bmMsIGlkLCB0aW1lTGltaXQgLypbLCByZXNldEFmdGVyLCBy
ZXNldFRvXSovKSB7CisgIHRoaXMuYXN5bmMgPSBhc3luYzsKKyAgdGhpcy5pZCA9IGlkOworICB0
aGlzLnRpbWVMaW1pdCA9IHRpbWVMaW1pdDsKKworICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMp
IHsKKyAgICB0aGlzLm11c3RSZXNldCAgPSB0cnVlOworICAgIHRoaXMucmVzZXRBZnRlciA9IGFy
Z3VtZW50c1szXTsKKyAgICB0aGlzLnJlc2V0VG8gICAgPSBhcmd1bWVudHNbNF07CisgIH0KKwor
ICB0aGlzLmhhc0ZpcmVkID0gZmFsc2U7Cit9CitSZXF1ZXN0VHJhY2tlci5wcm90b3R5cGUgPSB7
CisgIC8qKgorICAgKiBTdGFydCB0aGUgWE1MSHR0cFJlcXVlc3QhCisgICAqLworICBzdGFydFhI
UjogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAg
IHRoaXMucmVxdWVzdCA9IHJlcTsKKyAgICByZXEub3BlbigiR0VUIiwgU1RBTExFRF9SRVFVRVNU
X1VSTCwgdGhpcy5hc3luYyk7CisgICAgdmFyIG1lID0gdGhpczsKKyAgICBmdW5jdGlvbiBoYW5k
bGVFdmVudChlKSB7IHJldHVybiBtZS5oYW5kbGVFdmVudChlKTsgfTsKKyAgICByZXEub25lcnJv
ciA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmxvYWQgPSBoYW5kbGVFdmVudDsKKyAgICByZXEu
b25hYm9ydCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbnRpbWVvdXQgPSBoYW5kbGVFdmVudDsK
KworICAgIHJlcS50aW1lb3V0ID0gdGhpcy50aW1lTGltaXQ7CisgICAgCisgICAgaWYgKHRoaXMu
bXVzdFJlc2V0KSB7CisgICAgICB2YXIgcmVzZXRUbyA9IHRoaXMucmVzZXRUbzsKKyAgICAgIHNl
bGYuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgcmVxLnRpbWVvdXQgPSByZXNldFRv
OworICAgICAgfSwgdGhpcy5yZXNldEFmdGVyKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAg
cmVxLnNlbmQobnVsbCk7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICAvLyBTeW5jaHJv
bm91cyBjYXNlIGluIHdvcmtlcnMuCisgICAgICBvayghdGhpcy5hc3luYyAmJiB0aGlzLnRpbWVM
aW1pdCA8IDMwMDAgJiYgZS5uYW1lID09ICJUSU1FT1VUX0VSUiIsICJVbmV4cGVjdGVkIGVycm9y
OiAiICsgZSk7CisgICAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgICB9CisgIH0s
CisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRlc3QuCisgICAq
CisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgorICAgKi8KKyAg
Z2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgdmFyIHJ2ID0gdGhpcy5pZCArICIsICI7Cisg
ICAgaWYgKHRoaXMubXVzdFJlc2V0KSB7CisgICAgICBydiArPSAib3JpZ2luYWwgdGltZW91dCBh
dCAiICsgdGhpcy50aW1lTGltaXQgKyAiLCAiOworICAgICAgcnYgKz0gInJlc2V0IGF0ICIgKyB0
aGlzLnJlc2V0QWZ0ZXIgKyAiIHRvICIgKyB0aGlzLnJlc2V0VG87CisgICAgfQorICAgIGVsc2Ug
eworICAgICAgcnYgKz0gInRpbWVvdXQgc2NoZWR1bGVkIGF0ICIgKyB0aGlzLnRpbWVMaW1pdDsK
KyAgICB9CisgICAgcmV0dXJuIHJ2OworICB9LAorCisgIC8qKgorICAgKiBDaGVjayB0aGUgZXZl
bnQgcmVjZWl2ZWQsIGFuZCBpZiBpdCdzIHRoZSByaWdodCAoYW5kIG9ubHkpIG9uZSB3ZSBnZXQu
CisgICAqCisgICAqIEBwYXJhbSB7RE9NUHJvZ3Jlc3NFdmVudH0gZXZ0IEFuIGV2ZW50IG9mIHR5
cGUgImxvYWQiIG9yICJ0aW1lb3V0Ii4KKyAgICovCisgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihl
dnQpIHsKKyAgICBpZiAodGhpcy5oYXNGaXJlZCkgeworICAgICAgb2soZmFsc2UsICJPbmx5IG9u
ZSBldmVudCBzaG91bGQgZmlyZTogIiArIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7CisKKyAgICB2YXIgdHlwZSA9IGV2
dC50eXBlLCBleHBlY3RlZFR5cGU7CisgICAgLy8gVGhlIFhIUiByZXNwb25kcyBhZnRlciAzMDAw
IG1pbGxpc2Vjb25kcyB3aXRoIGEgbG9hZCBldmVudC4KKyAgICB2YXIgdGltZUxpbWl0ID0gdGhp
cy5tdXN0UmVzZXQgJiYgKHRoaXMucmVzZXRBZnRlciA8IE1hdGgubWluKDMwMDAsIHRoaXMudGlt
ZUxpbWl0KSkgPworICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VG8gOgorICAgICAgICAg
ICAgICAgICAgICB0aGlzLnRpbWVMaW1pdDsKKyAgICBpZiAoKHRpbWVMaW1pdCA9PSAwKSB8fCAo
dGltZUxpbWl0ID49IDMwMDApKSB7CisgICAgICBleHBlY3RlZFR5cGUgPSAibG9hZCI7CisgICAg
fQorICAgIGVsc2UgeworICAgICAgZXhwZWN0ZWRUeXBlID0gInRpbWVvdXQiOworICAgIH0KKyAg
ICBpcyh0eXBlLCBleHBlY3RlZFR5cGUsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICBUZXN0Q291
bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKworLyoqCisgKiBHZW5lcmF0ZSBhbmQgdHJh
Y2sgWE1MSHR0cFJlcXVlc3RzIHdoaWNoIHdpbGwgaGF2ZSBhYm9ydCgpIGNhbGxlZCBvbi4KKyAq
CisgKiBAcGFyYW0gc2hvdWxkQWJvcnQge0Jvb2xlYW59IFRydWUgaWYgd2Ugc2hvdWxkIGNhbGwg
YWJvcnQgYXQgYWxsLgorICogQHBhcmFtIGFib3J0RGVsYXkgIHtOdW1iZXJ9ICBUaGUgdGltZSBp
biBtcyB0byB3YWl0IGJlZm9yZSBjYWxsaW5nIGFib3J0KCkuCisgKi8KK2Z1bmN0aW9uIEFib3J0
ZWRSZXF1ZXN0KHNob3VsZEFib3J0LCBhYm9ydERlbGF5KSB7CisgIHRoaXMuc2hvdWxkQWJvcnQg
PSBzaG91bGRBYm9ydDsKKyAgdGhpcy5hYm9ydERlbGF5ICA9IGFib3J0RGVsYXk7CisgIHRoaXMu
aGFzRmlyZWQgICAgPSBmYWxzZTsKK30KK0Fib3J0ZWRSZXF1ZXN0LnByb3RvdHlwZSA9IHsKKyAg
LyoqCisgICAqIFN0YXJ0IHRoZSBYTUxIdHRwUmVxdWVzdCEKKyAgICovCisgIHN0YXJ0WEhSOiBm
dW5jdGlvbigpIHsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgdGhp
cy5yZXF1ZXN0ID0gcmVxOworICAgIHJlcS5vcGVuKCJHRVQiLCBTVEFMTEVEX1JFUVVFU1RfVVJM
KTsKKyAgICB2YXIgbWUgPSB0aGlzOworICAgIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsgcmV0
dXJuIG1lLmhhbmRsZUV2ZW50KGUpOyB9OworICAgIHJlcS5vbmVycm9yID0gaGFuZGxlRXZlbnQ7
CisgICAgcmVxLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIHJlcS5vbmFib3J0ID0gaGFuZGxl
RXZlbnQ7CisgICAgcmVxLm9udGltZW91dCA9IGhhbmRsZUV2ZW50OworCisgICAgcmVxLnRpbWVv
dXQgPSAyMDAwOworICAgIHZhciBfdGhpcyA9IHRoaXM7CisKKyAgICBmdW5jdGlvbiBhYm9ydFJl
cSgpIHsKKyAgICAgIHJlcS5hYm9ydCgpOworICAgIH0KKworICAgIGlmICghdGhpcy5zaG91bGRB
Ym9ydCkgeworICAgICAgc2VsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0cnkg
eworICAgICAgICAgIF90aGlzLm5vRXZlbnRzRmlyZWQoKTsKKyAgICAgICAgfQorICAgICAgICBj
YXRjaCAoZSkgeworICAgICAgICAgIG9rKGZhbHNlLCAiVW5leHBlY3RlZCBlcnJvcjogIiArIGUp
OworICAgICAgICAgIFRlc3RDb3VudGVyLnRlc3RDb21wbGV0ZSgpOworICAgICAgICB9CisgICAg
ICB9LCA1MDAwKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAvLyBBYm9ydCBldmVudHMgY2Fu
IG9ubHkgYmUgdHJpZ2dlcmVkIG9uIHNlbnQgcmVxdWVzdHMuCisgICAgICByZXEuc2VuZCgpOwor
ICAgICAgaWYgKHRoaXMuYWJvcnREZWxheSA9PSAtMSkgeworICAgICAgICBhYm9ydFJlcSgpOwor
ICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHNlbGYuc2V0VGltZW91dChhYm9ydFJlcSwg
dGhpcy5hYm9ydERlbGF5KTsKKyAgICAgIH0KKyAgICB9CisgIH0sCisKKyAgLyoqCisgICAqIEVu
c3VyZSB0aGF0IG5vIGV2ZW50cyBmaXJlZCBhdCBhbGwsIGVzcGVjaWFsbHkgbm90IG91ciB0aW1l
b3V0IGV2ZW50LgorICAgKi8KKyAgbm9FdmVudHNGaXJlZDogZnVuY3Rpb24oKSB7CisgICAgb2so
IXRoaXMuaGFzRmlyZWQsICJObyBldmVudHMgc2hvdWxkIGZpcmUgZm9yIGFuIHVuc2VudCwgdW5h
Ym9ydGVkIHJlcXVlc3QiKTsKKyAgICAvLyBXZSdyZSBkb25lOyBpZiB0aW1lb3V0IGhhc24ndCBm
aXJlZCBieSBub3csIGl0IG5ldmVyIHdpbGwuCisgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRl
KCk7CisgIH0sCisKKyAgLyoqCisgICAqIEdldCBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGlzIHRl
c3QuCisgICAqCisgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSB0ZXN0IGRlc2NyaXB0aW9uLgor
ICAgKi8KKyAgZ2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuICJ0aW1lIHRvIGFi
b3J0IGlzICIgKyB0aGlzLmFib3J0RGVsYXkgKyAiLCB0aW1lb3V0IHNldCBhdCAyMDAwIjsKKyAg
fSwKKworICAvKioKKyAgICogQ2hlY2sgdGhlIGV2ZW50IHJlY2VpdmVkLCBhbmQgaWYgaXQncyB0
aGUgcmlnaHQgKGFuZCBvbmx5KSBvbmUgd2UgZ2V0LgorICAgKgorICAgKiBXZWJLaXQgZmlyZXMg
YWJvcnQgZXZlbnRzIGV2ZW4gZm9yIERPTkUgYW5kIFVOU0VOVCBzdGF0ZXMsIHdoaWNoIGlzIAor
ICAgKiBkaXNjdXNzZWQgaW4gaHR0cDovL3dlYmtpdC5vcmcvYi85ODQwNAorICAgKiBUaGF0J3Mg
d2h5IHdlIGNob3NlIHRvIGFjY2VwdCBzZWNvbmRhcnkgImFib3J0IiBldmVudHMgaW4gdGhpcyB0
ZXN0LgorICAgKgorICAgKiBAcGFyYW0ge0RPTVByb2dyZXNzRXZlbnR9IGV2dCBBbiBldmVudCBv
ZiB0eXBlICJsb2FkIiBvciAidGltZW91dCIuCisgICAqLworICBoYW5kbGVFdmVudDogZnVuY3Rp
b24oZXZ0KSB7CisgICAgaWYgKHRoaXMuaGFzRmlyZWQgJiYgZXZ0LnR5cGUgIT0gImFib3J0Iikg
eworICAgICAgb2soZmFsc2UsICJPbmx5IGFib3J0IGV2ZW50IHNob3VsZCBmaXJlOiAiICsgdGhp
cy5nZXRNZXNzYWdlKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBleHBlY3Rl
ZEV2ZW50ID0gKHRoaXMuYWJvcnREZWxheSA+PSAyMDAwICYmICF0aGlzLmhhc0ZpcmVkKSA/ICJ0
aW1lb3V0IiA6ICJhYm9ydCI7CisgICAgdGhpcy5oYXNGaXJlZCA9IHRydWU7CisgICAgaXMoZXZ0
LnR5cGUsIGV4cGVjdGVkRXZlbnQsIHRoaXMuZ2V0TWVzc2FnZSgpKTsKKyAgICBUZXN0Q291bnRl
ci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFyIFN5bmNSZXF1ZXN0U2V0dGluZ1RpbWVv
dXRBZnRlck9wZW4gPSB7CisgIHN0YXJ0WEhSOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcGFzcyA9
IGZhbHNlOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3Bl
bigiR0VUIiwgU1RBTExFRF9SRVFVRVNUX1VSTCwgZmFsc2UpOworICAgIHRyeSB7CisgICAgICBy
ZXEudGltZW91dCA9IDEwMDA7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICBwYXNzID0g
dHJ1ZTsKKyAgICB9CisgICAgb2socGFzcywgIlN5bmNocm9ub3VzIFhIUiBtdXN0IG5vdCBhbGxv
dyBhIHRpbWVvdXQgdG8gYmUgc2V0Iik7CisgICAgVGVzdENvdW50ZXIudGVzdENvbXBsZXRlKCk7
CisgIH0KK307CisKK3ZhciBTeW5jUmVxdWVzdFNldHRpbmdUaW1lb3V0QmVmb3JlT3BlbiA9IHsK
KyAgc3RhcnRYSFI6IGZ1bmN0aW9uKCkgeworICAgIHZhciBwYXNzID0gZmFsc2U7CisgICAgdmFy
IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS50aW1lb3V0ID0gMTAwMDsKKyAg
ICB0cnkgeworICAgICAgcmVxLm9wZW4oIkdFVCIsIFNUQUxMRURfUkVRVUVTVF9VUkwsIGZhbHNl
KTsKKyAgICB9CisgICAgY2F0Y2ggKGUpIHsKKyAgICAgIHBhc3MgPSB0cnVlOworICAgIH0KKyAg
ICBvayhwYXNzLCAiU3luY2hyb25vdXMgWEhSIG11c3Qgbm90IGFsbG93IGEgdGltZW91dCB0byBi
ZSBzZXQiKTsKKyAgICBUZXN0Q291bnRlci50ZXN0Q29tcGxldGUoKTsKKyAgfQorfTsKKwordmFy
IFRlc3RSZXF1ZXN0R3JvdXBzID0geworICAic2ltcGxlIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRy
YWNrZXIodHJ1ZSwgIm5vIHRpbWUgb3V0IHNjaGVkdWxlZCwgbG9hZCBmaXJlcyBub3JtYWxseSIs
IDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSIs
IDUwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBoaXQgYmVmb3Jl
IGxvYWQiLCAyMDAwKQorICBdLAorCisgICJ0d2ljZSIgOiBbCisgICAgIG5ldyBSZXF1ZXN0VHJh
Y2tlcih0cnVlLCAibG9hZCBmaXJlcyBub3JtYWxseSB3aXRoIG5vIHRpbWVvdXQgc2V0LCB0d2lj
ZSIsIDAsIDIwMDAsIDApLAorICAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgImxvYWQgZmly
ZXMgbm9ybWFsbHkgd2l0aCBzYW1lIHRpbWVvdXQgc2V0IHR3aWNlIiwgNTAwMCwgMjAwMCwgNTAw
MCksCisgICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBmaXJlcyBub3JtYWxs
eSB3aXRoIHNhbWUgdGltZW91dCBzZXQgdHdpY2UiLCAyMDAwLCAxMDAwLCAyMDAwKQorICBdLAor
CisgIC8vIEZJWE1FOiBodHRwOi8vd2Via2l0Lm9yZy9iLzk4MTU2IC0gTGF0ZSB1cGRhdGVzIGFy
ZSBub3Qgc3VwcG9ydGVkIHlldCwgdGhlc2UgdGVzdHMgYXJlIG5vdCBydW4uCisgICJvdmVycmlk
ZXMiIDogWworICAgIG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBkaXNhYmxlZCBh
ZnRlciBpbml0aWFsbHkgc2V0IiwgNTAwMCwgMjAwMCwgMCksCisgICAgbmV3IFJlcXVlc3RUcmFj
a2VyKHRydWUsICJ0aW1lb3V0IG92ZXJyaWRlcyBsb2FkIGFmdGVyIGEgZGVsYXkiLCA1MDAwLCAx
MDAwLCAyMDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVvdXQgZW5hYmxl
ZCBhZnRlciBpbml0aWFsbHkgZGlzYWJsZWQiLCAwLCAyMDAwLCA1MDAwKQorICBdLAorCisgICJv
dmVycmlkZXNleHBpcmVzIiA6IFsKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIodHJ1ZSwgInRpbWVv
dXQgc2V0IHRvIGV4cGlyaW5nIHZhbHVlIGFmdGVyIGxvYWQgZmlyZXMiLCA1MDAwLCA0MDAwLCAx
MDAwKSwKKyAgICAvLyBGSVhNRTogaHR0cDovL3dlYmtpdC5vcmcvYi85ODE1NiAtIExhdGUgdXBk
YXRlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHRoaXMgdGVzdCBpcyBub3QgcnVuLgorICAgIC8v
IG5ldyBSZXF1ZXN0VHJhY2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gZXhwaXJlZCB2YWx1ZSBi
ZWZvcmUgbG9hZCBmaXJlcyIsIDUwMDAsIDIwMDAsIDEwMDApLAorICAgIG5ldyBSZXF1ZXN0VHJh
Y2tlcih0cnVlLCAidGltZW91dCBzZXQgdG8gbm9uLWV4cGlyaW5nIHZhbHVlIGFmdGVyIHRpbWVv
dXQgZmlyZXMiLCAxMDAwLCAyMDAwLCA1MDAwKQorICBdLAorCisgICJhYm9ydGVkIiA6IFsKKyAg
ICBuZXcgQWJvcnRlZFJlcXVlc3QoZmFsc2UpLAorICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVl
LCAtMSksCisgICAgbmV3IEFib3J0ZWRSZXF1ZXN0KHRydWUsIDUwMDApCisgIF0sCisKKyAgImFi
b3J0ZWRvbm1haW4iIDogWworICAgIG5ldyBBYm9ydGVkUmVxdWVzdCh0cnVlLCAwKSwKKyAgICBu
ZXcgQWJvcnRlZFJlcXVlc3QodHJ1ZSwgMTAwMCkKKyAgXSwKKworICAic3luY29ubWFpbiIgOiBb
CisgICAgU3luY1JlcXVlc3RTZXR0aW5nVGltZW91dEFmdGVyT3BlbiwKKyAgICBTeW5jUmVxdWVz
dFNldHRpbmdUaW1lb3V0QmVmb3JlT3BlbgorICBdLAorCisgICJzeW5jb253b3JrZXIiIDogWwor
ICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwgIm5vIHRpbWUgb3V0IHNjaGVkdWxlZCwgbG9h
ZCBmaXJlcyBub3JtYWxseSIsIDApLAorICAgIG5ldyBSZXF1ZXN0VHJhY2tlcihmYWxzZSwgImxv
YWQgZmlyZXMgbm9ybWFsbHkiLCA1MDAwKSwKKyAgICBuZXcgUmVxdWVzdFRyYWNrZXIoZmFsc2Us
ICJ0aW1lb3V0IGhpdCBiZWZvcmUgbG9hZCIsIDIwMDApCisgIF0KK307CisKK3ZhciBUZXN0UmVx
dWVzdHMgPSBbXTsKKworLy8gVGhpcyBjb2RlIGNvbnRyb2xzIG1vdmluZyBmcm9tIG9uZSB0ZXN0
IHRvIGFub3RoZXIuCit2YXIgVGVzdENvdW50ZXIgPSB7CisgIHRlc3RDb21wbGV0ZTogZnVuY3Rp
b24oKSB7CisgICAgLy8gQWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGVyZSBhcmUgb3RoZXIg
ZXZlbnRzIGNvbWluZy4KKyAgICBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICBU
ZXN0Q291bnRlci5uZXh0KCk7CisgICAgfSwgNTAwMCk7CisgIH0sCisKKyAgbmV4dDogZnVuY3Rp
b24oKSB7CisgICAgdmFyIHRlc3QgPSBUZXN0UmVxdWVzdHMuc2hpZnQoKTsKKworICAgIGlmICh0
ZXN0KSB7CisgICAgICB0ZXN0LnN0YXJ0WEhSKCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAg
bWVzc2FnZSgiZG9uZSIpOworICAgIH0KKyAgfQorfTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2ZW50KSB7CisgIGlmIChldmVudC5kYXRhLnR5cGUgPT0g
InN0YXJ0IikgeworICAgIFRlc3RSZXF1ZXN0cyA9IFRlc3RSZXF1ZXN0R3JvdXBzW2V2ZW50LmRh
dGEuZ3JvdXBdOworICAgIFRlc3RDb3VudGVyLm5leHQoKTsKKyAgfQorfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MmVlN2MwNWQ5
ZTc3NDdkZTI0NGY1YWRmYjgzMGNlYjI0OTVmMzViLi42ZDMzOTdkY2MzYjUzYWMxM2Y1N2MxNzRi
NzNiZGYxNjFlZWUzZDIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTk4MSw2ICs5ODEsMTkgQEAgd2Via2l0Lm9yZy9iLzU4ODk4IGZh
c3QvYmxvY2svZmxvYXQvb3ZlcmhhbmdpbmctdGFsbC1ibG9jay5odG1sIFsgRmFpbHVyZSBdCiAj
IE5ldyB0ZXN0IGFkZGVkIHRoYXQgbmVlZHMgcGxhdGZvcm0gc3BlY2lmaWMgcmVzdWx0cwogd2Vi
a2l0Lm9yZy9iLzk4NDUyIFsgTGludXggV2luIF0gZmFzdC90ZXh0L3ZlcnRpY2FsLXJsLXJ0bC1s
aW5lYnJlYWsuaHRtbCBbIEZhaWx1cmUgXQogCisjIFJlc291cmNlUmVxdWVzdCBuZWVkcyB0byBz
dXBwb3J0IHNldFRpbWVvdXRJbnRlcnZhbAord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGlt
ZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgz
OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9y
dGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVz
ZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBs
ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtl
ci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwg
WyBGYWlsdXJlIF0KKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBJbnNwZWN0b3IgdGVzdHMKICMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWRlN2FjMGU0
ZTQ4YzU4NjYzYzcxYmYyMDgxMGQwM2U5NDI3ZGI1My4uN2U1MGRkMzE1NDFjMzY2NGQwODExZDZi
YjA3M2Q5YWEyYzVmNzZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTYxMSw2ICs2MTEsMTggQEAgQnVnKEdUSykgWyBEZWJ1ZyBdIHNwdXRuaWsvVW5p
Y29kZS9Vbmljb2RlXzIxOC9TNy42X0E1LjNfVDEuaHRtbCBbIFBhc3MgU2xvdyBdCiBCdWcoR1RL
KSBbIERlYnVnIF0gc3B1dG5pay9Vbmljb2RlL1VuaWNvZGVfMjE4L1M3LjZfQTUuM19UMi5odG1s
IFsgUGFzcyBTbG93IF0KIEJ1ZyhHVEspIHRhYmxlcy9tb3ppbGxhL290aGVyL3NsYXNobG9nby5o
dG1sIFsgUGFzcyBTbG93IF0KIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgUGFzcyBTbG93IF0g
CitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVl
c3QtdGltZW91dC1hYm9ydGVkb25tYWluLmh0bWwgWyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92
ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc2ltcGxlLmh0bWwg
WyBQYXNzIFNsb3cgXSAKK0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCBbIFBhc3MgU2xvdyBdIAor
QnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtdHdpY2UuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLWFib3J0
ZWQuaHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMu
aHRtbCBbIFBhc3MgU2xvdyBdIAorQnVnKEdUSykgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90
aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsgUGFzcyBT
bG93IF0gCitCdWcoR1RLKSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBQYXNzIFNsb3cgXSAK
K0J1ZyhHVEspIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIFsgUGFzcyBTbG93IF0gCisKICMvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBzbG93IHRlc3RzCiAjLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNTRmNzNhMDVjM2ZiYWQyNDU2NmU0ODYwMjA2M2E0NjMyZGRhZmQ1ZC4uNGRhNjE4
ZTQwNGM4NjkwMDc5OGU0ZDMxZDNmZTk2NDkzNmI3N2FhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC03OTAsNiArNzkwLDE5IEBAIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvY2FjaGUtb3ZlcnJpZGUuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODY2MDYKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtY2hlY2stZ2V0LXJlYWR5c3RhdGUtZm9yLTQwNC13aXRob3V0LWJvZHkuaHRtbAog
CisjIFJlc291cmNlUmVxdWVzdCBuZWVkcyB0byBzdXBwb3J0IHNldFRpbWVvdXRJbnRlcnZhbAor
d2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
Lzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0
LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzk4Mzk3IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXNp
bXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29ubWFpbi5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzk4Mzk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdGltZW91dC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi85ODM5NyBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgRmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0
dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvOTgzOTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KKwogIyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwogIyAgICAgICBGYWlsaW5nIGVkaXRpbmcvaW5zZXJ0aW5nIHRlc3RzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
Iwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>