<?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>37025</bug_id>
          
          <creation_ts>2010-04-02 09:01:08 -0700</creation_ts>
          <short_desc>Web Inspector: GC Run event should be added to Timeline Panel</short_desc>
          <delta_ts>2010-04-09 09:15:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jaimeyap</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>207878</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-02 09:01:08 -0700</bug_when>
    <thetext>The JS code can be not optimal from memory usage point of view. As example generate a lot of garbage.
js engine will free that garbage and with GC Run event we will see information about this internal work of js engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208262</commentid>
    <comment_count>1</comment_count>
      <attachid>52489</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-03 01:58:23 -0700</bug_when>
    <thetext>Created attachment 52489
Screenshot of Popup with Heap Size property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208263</commentid>
    <comment_count>2</comment_count>
      <attachid>52490</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-03 02:03:56 -0700</bug_when>
    <thetext>Created attachment 52490
Screenshot of GCRun event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208264</commentid>
    <comment_count>3</comment_count>
      <attachid>52491</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-03 02:09:23 -0700</bug_when>
    <thetext>Created attachment 52491
[patch] Initial version.

GC Run event and heap usage info can be added to Safari.
The only thing required for that is a non empty implementation of GCEventHelper class methods in WebCore/bindings/js/GCEventHelper.h

1) new class GCEventHelper is introduced in bindings;
2) new type of events GCRun was added to Timeline;
3) minor changes in Timeline panel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208265</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-03 02:10:07 -0700</bug_when>
    <thetext>patch has binary changes in localizedStrings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208278</commentid>
    <comment_count>5</comment_count>
      <attachid>52491</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-03 08:38:54 -0700</bug_when>
    <thetext>Comment on attachment 52491
[patch] Initial version.

&gt; +            recordContentTable.appendChild(this._createRow(WebInspector.UIString(&quot;Heap Size&quot;), Number.bytesToString(this.usedHeapSize) + &quot;(&quot; + Number.bytesToString(this.totalHeapSize) + &quot;)&quot;));

Consider spliting there onto two lines, I didn&apos;t know what the two numbers where telling me until I looked at the patch. At least put a space befor the open paren &quot; (&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208279</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-03 08:39:56 -0700</bug_when>
    <thetext>To clarify, I mean split them in the UI not the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208283</commentid>
    <comment_count>7</comment_count>
      <attachid>52491</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-03 09:46:12 -0700</bug_when>
    <thetext>Comment on attachment 52491
[patch] Initial version.

- GCEventHelper.* are missing in the patch.
- Files that abstract us from the engine should start with Script* in case they do not inherit common interface. It could be that ScriptDebugServer or ScriptController should have the new methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208293</commentid>
    <comment_count>8</comment_count>
      <attachid>52498</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-03 12:07:44 -0700</bug_when>
    <thetext>Created attachment 52498
[patch] second iteration.

1) Used Heap Size and Total Heap Size properties were added instead of single Heap Size property;
2) GCEventHelper.* were renamed and added to the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208331</commentid>
    <comment_count>9</comment_count>
      <attachid>52498</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-03 22:49:59 -0700</bug_when>
    <thetext>Comment on attachment 52498
[patch] second iteration.

&gt; +        static void pushCollectedGCEvents(InspectorTimelineAgent*) {}
&gt; +        static void getHeapSize(size_t&amp;, size_t&amp;) {}

- The fact that same tests are passing for JSC and V8 with no instrumentation for JSC is confusing. What would WebKit user see in the UI?
- If we anyways create an instance of this ScriptGCEventHelper object, then these methods should probably be instance methods. In fact, I can see pushCollectedGCEvents being invoked on the instance already.
- Bi-directional dependency between InspectorTimelineAgent and ScriptGCEventHelper bothers me. In theory, it should exist: you query for heap size and push gc events (i.e. pass control both ways). But I can see that your push is not really a push - it is accumulating events and timeline is actually queryign for them. So there really is a TimelineAgent -&gt; ScriptGCEventHelper dependency only.

&gt; +        v8::V8::AddGCPrologueCallback(gcPrologueCallback);
&gt; +        v8::V8::AddGCEpilogueCallback(gcEpilogueCallback);

How expensive is being a callback?

&gt; +
&gt; +void ScriptGCEventHelper::pushCollectedGCEvents(InspectorTimelineAgent* agent)
&gt; +{
&gt; +    if (s_gcRunEvents.size()) {
&gt; +        for (GCRunEvents::iterator i = s_gcRunEvents.begin(); i != s_gcRunEvents.end(); ++i)
&gt; +            agent-&gt;didGCRun(i-&gt;startTime, i-&gt;endTime, i-&gt;collectedBytes);
&gt; +        s_gcRunEvents.clear();
&gt; +    }

So you are polling for gc runs, not pushing them actually. So your GC events are not in line with other records time-wise. Is that a problem? Another thing is that you are polling for GC records in random places to my taste: on willSendResourceRequest, didFinishLoadingResource, addRecordToTimeline, pushCurrentRecord. I realize that it might be related to the helper method structure in the timeline agent, but I&apos;d like to see it fixed since it really start looking random to me.
&gt; +
&gt; +namespace WebCore {
&gt; +    class InspectorTimelineAgent;
&gt; +

We should not indent class declarations according to new style.

FYI: some time ago we agreed that we should create jsc and v8 folders under WebCore/inspector where we would put things like ScriptGCEventHelper. Unlike bindings, in our case, they would share same interface header located under WebCore/inspector. You can be the first guy to do that. Or we will move these guys at once, so not a strict requirement to do it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208352</commentid>
    <comment_count>10</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-04 04:17:11 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt;&gt; +        static void pushCollectedGCEvents(InspectorTimelineAgent*) {}
&gt;&gt; +        static void getHeapSize(size_t&amp;, size_t&amp;) {}

&gt; - The fact that same tests are passing for JSC and V8 with no instrumentation
&gt; for JSC is confusing. What would WebKit user see in the UI?

The users will see standard popups without Heap Size info. Also GC Run event will not appear until somebody write an implementation of these methods for JSC. The usedHeapSize/totalHeapSize properties at frontend side are defined but zero in JSC case.

&gt; - Bi-directional dependency between InspectorTimelineAgent and
&gt; ScriptGCEventHelper bothers me. In theory, it should exist: you query for heap
&gt; size and push gc events (i.e. pass control both ways). But I can see that your
&gt; push is not really a push - it is accumulating events and timeline is actually
&gt; queryign for them. So there really is a TimelineAgent -&gt; ScriptGCEventHelper
&gt; dependency only.

It is not possible to call TimelineAgent from GC directly but I can push GCRun events to the agent 
each time when agent ask GCEventHelper about HeapSize info.
In case of pull design scheme, the agent will have to know about internal structure of GCEventHelper.

&gt;&gt; +        v8::V8::AddGCPrologueCallback(gcPrologueCallback);
&gt;&gt; +        v8::V8::AddGCEpilogueCallback(gcEpilogueCallback);

&gt; How expensive is being a callback?

These callbacks will be called once per garbage collector run if TimelineAgent is in operation.
Helper for V8 is using vector for events data. Usually it will be small constant time. 

&gt; So you are polling for gc runs, not pushing them actually. So your GC events
&gt; are not in line with other records time-wise. Is that a problem? Another thing
&gt; is that you are polling for GC records in random places to my taste: on
&gt; willSendResourceRequest, didFinishLoadingResource, addRecordToTimeline,
&gt; pushCurrentRecord. I realize that it might be related to the helper method
&gt; structure in the timeline agent, but I&apos;d like to see it fixed since it really
&gt; start looking random to me.

As far as GC run is happening more or less randomly I&apos;m trying to push gc events into to timeline each time when TimelineAgent is called via will or did methods.
It is enough to do that at pushCurrentRecord and addRecordToTimeline but some events like SendRequest are propagating event record to the frontend directly.

&gt; FYI: some time ago we agreed that we should create jsc and v8 folders under
&gt; WebCore/inspector where we would put things like ScriptGCEventHelper. Unlike
&gt; bindings, in our case, they would share same interface header located under
&gt; WebCore/inspector. You can be the first guy to do that. Or we will move these
&gt; guys at once, so not a strict requirement to do it now.

I think it is not so many chances to use JSC and V8 at the some time and there is no special reason to have an abstract class and implementation with virtual functions.

&gt; (From update of attachment 52498 [details])
&gt; &gt; +        static void pushCollectedGCEvents(InspectorTimelineAgent*) {}
&gt; &gt; +        static void getHeapSize(size_t&amp;, size_t&amp;) {}
&gt; 
&gt; - The fact that same tests are passing for JSC and V8 with no instrumentation
&gt; for JSC is confusing. What would WebKit user see in the UI?
&gt; - If we anyways create an instance of this ScriptGCEventHelper object, then
&gt; these methods should probably be instance methods. In fact, I can see
&gt; pushCollectedGCEvents being invoked on the instance already.
&gt; - Bi-directional dependency between InspectorTimelineAgent and
&gt; ScriptGCEventHelper bothers me. In theory, it should exist: you query for heap
&gt; size and push gc events (i.e. pass control both ways). But I can see that your
&gt; push is not really a push - it is accumulating events and timeline is actually
&gt; queryign for them. So there really is a TimelineAgent -&gt; ScriptGCEventHelper
&gt; dependency only.
&gt; 
&gt; &gt; +        v8::V8::AddGCPrologueCallback(gcPrologueCallback);
&gt; &gt; +        v8::V8::AddGCEpilogueCallback(gcEpilogueCallback);
&gt; 
&gt; How expensive is being a callback?
&gt; 
&gt; &gt; +
&gt; &gt; +void ScriptGCEventHelper::pushCollectedGCEvents(InspectorTimelineAgent* agent)
&gt; &gt; +{
&gt; &gt; +    if (s_gcRunEvents.size()) {
&gt; &gt; +        for (GCRunEvents::iterator i = s_gcRunEvents.begin(); i != s_gcRunEvents.end(); ++i)
&gt; &gt; +            agent-&gt;didGCRun(i-&gt;startTime, i-&gt;endTime, i-&gt;collectedBytes);
&gt; &gt; +        s_gcRunEvents.clear();
&gt; &gt; +    }
&gt; 
&gt; So you are polling for gc runs, not pushing them actually. So your GC events
&gt; are not in line with other records time-wise. Is that a problem? Another thing
&gt; is that you are polling for GC records in random places to my taste: on
&gt; willSendResourceRequest, didFinishLoadingResource, addRecordToTimeline,
&gt; pushCurrentRecord. I realize that it might be related to the helper method
&gt; structure in the timeline agent, but I&apos;d like to see it fixed since it really
&gt; start looking random to me.
&gt; &gt; +
&gt; &gt; +namespace WebCore {
&gt; &gt; +    class InspectorTimelineAgent;
&gt; &gt; +
&gt; 
&gt; We should not indent class declarations according to new style.
&gt; 
&gt; FYI: some time ago we agreed that we should create jsc and v8 folders under
&gt; WebCore/inspector where we would put things like ScriptGCEventHelper. Unlike
&gt; bindings, in our case, they would share same interface header located under
&gt; WebCore/inspector. You can be the first guy to do that. Or we will move these
&gt; guys at once, so not a strict requirement to do it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208359</commentid>
    <comment_count>11</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-04 06:51:37 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; The users will see standard popups without Heap Size info. Also GC Run event
&gt; will not appear until somebody write an implementation of these methods for
&gt; JSC. The usedHeapSize/totalHeapSize properties at frontend side are defined but
&gt; zero in JSC case.
&gt;

Ok, sounds reasonable.
 
&gt; It is not possible to call TimelineAgent from GC directly but I can push GCRun
&gt; events to the agent 
&gt; each time when agent ask GCEventHelper about HeapSize info.
&gt; In case of pull design scheme, the agent will have to know about internal
&gt; structure of GCEventHelper.
&gt; 

It does not need to know about internal structure of GCEvenHelper in case you expose a GCRecord struct and return a vector of these in getGCRunRecords.

&gt; As far as GC run is happening more or less randomly I&apos;m trying to push gc
&gt; events into to timeline each time when TimelineAgent is called via will or did
&gt; methods.
&gt; It is enough to do that at pushCurrentRecord and addRecordToTimeline but some
&gt; events like SendRequest are propagating event record to the frontend directly.
&gt; 

That&apos;s what I a talking about - there is no single place in the code that would allow  adding an instrumentation flavor (such as memory state) to each of the records. There should be a single generic method every record is going through, so that you could put your heap snapshotting there. Single place.

&gt; I think it is not so many chances to use JSC and V8 at the some time and there
&gt; is no special reason to have an abstract class and implementation with virtual
&gt; functions.
&gt; 

That&apos;s not about it. That&apos;s about knowing when you break v8 while editing jsc and such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208622</commentid>
    <comment_count>12</comment_count>
      <attachid>52555</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-05 12:08:20 -0700</bug_when>
    <thetext>Created attachment 52555
[patch] Third iteration.

1) GCRun events data container was moved from ScriptGCEventHelper to InspectorTimelineAgent;
2) all active Timeline agents will receive GCRun events data when GCRun event happen;
3) as far as we can&apos;t use ScriptObject when GC Run event happen TimelineAgent will use Vector to store GC Run event data
4) Bug with Epilogue/Prologue deregistration was fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208636</commentid>
    <comment_count>13</comment_count>
      <attachid>52555</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-05 12:18:52 -0700</bug_when>
    <thetext>Comment on attachment 52555
[patch] Third iteration.

Looks better, but bi-directional dependency is still there. Could you introduce a ScriptGCHelperListener (as ScriptDebugServerListener in WebCore/inspector) to resolve that?

Rest of the nits below. 


&gt; +namespace WebCore {
&gt; +class ScriptGCEventHelper
&gt; +{

Ad blank line here.

&gt; +public:
&gt; +    ScriptGCEventHelper(InspectorTimelineAgent*){}
&gt; +    static void getHeapSize(size_t&amp;, size_t&amp;) {}
&gt; +};

Ad blank line here.

&gt; +} // namespace WebCore

&gt; +namespace WebCore {

Ad blank line here.

&gt; +    static int s_helpersCounter;

I guess this one is no longer needed.

&gt; -    : m_frontend(frontend)
&gt; +    : m_frontend(frontend), m_gcEventHelper(this)

Move &quot;, m_gcEventHelper&quot; to the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208946</commentid>
    <comment_count>14</comment_count>
      <attachid>52617</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-06 02:12:01 -0700</bug_when>
    <thetext>Created attachment 52617
[patch] Fourth iteration.

obsolete counter was removed.
style was fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208992</commentid>
    <comment_count>15</comment_count>
      <attachid>52621</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-06 05:13:12 -0700</bug_when>
    <thetext>Created attachment 52621
[patch] Fifth iteration.

listener implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209000</commentid>
    <comment_count>16</comment_count>
      <attachid>52621</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-06 05:39:46 -0700</bug_when>
    <thetext>Comment on attachment 52621
[patch] Fifth iteration.

r- for iterating over original and for poor &apos;helper&apos; name.

ScriptGCEventHelper is no longer a good name since you can&apos;t add listeners to the helper.

&gt; +public:
&gt; +    static void addEventListener(ScriptGCEventListener*){}
&gt; +    static void removeEventListener(ScriptGCEventListener*){}
&gt; +    static void getHeapSize(size_t&amp;, size_t&amp;){}

should be &quot;) { }&quot;

&gt; +    double endTime = WTF::currentTimeMS();
&gt; +    size_t collectedBytes = s_usedHeapSize - getUsedHeapSize();
&gt; +    for (GCEventListeners::iterator i = s_eventListeners.begin(); i != s_eventListeners.end(); ++i)
&gt; +        (*i)-&gt;didGCRun(s_startTime, endTime, collectedBytes);

You should iterate over copy in case client wants to unregister listener after the first event or something similar.

&gt; +    typedef Vector&lt; ScriptGCEventListener* &gt; GCEventListeners;

Vector&lt;ScriptGCEventListener*&gt;

&gt; +    virtual void didGCRun(double startTime, double endTime, size_t collectedBytes) = 0;

didGC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209023</commentid>
    <comment_count>17</comment_count>
      <attachid>52629</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-06 06:47:26 -0700</bug_when>
    <thetext>Created attachment 52629
[patch] Sixth iteration. :)

ScriptGCEventHelper was renamed to ScriptGCEvent;
GCRun was renamed to GCEvent;
Cometic coding style changes;
didGCRun was renamed to didGC,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209038</commentid>
    <comment_count>18</comment_count>
      <attachid>52629</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-06 07:18:45 -0700</bug_when>
    <thetext>Comment on attachment 52629
[patch] Sixth iteration. :)

Nit: I&apos;d use public inheritance here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209043</commentid>
    <comment_count>19</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-06 07:46:12 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/inspector/timeline-enum-stability-expected.txt
	M	LayoutTests/inspector/timeline-event-dispatch-expected.txt
	M	LayoutTests/inspector/timeline-layout-expected.txt
	M	LayoutTests/inspector/timeline-mark-timeline-expected.txt
	M	LayoutTests/inspector/timeline-network-resource-expected.txt
	M	LayoutTests/inspector/timeline-paint-expected.txt
	M	LayoutTests/inspector/timeline-parse-html-expected.txt
	M	LayoutTests/inspector/timeline-recalculate-styles-expected.txt
	M	LayoutTests/inspector/timeline-script-tag-1-expected.txt
	M	LayoutTests/inspector/timeline-script-tag-2-expected.txt
	M	LayoutTests/inspector/timeline-test.js
	M	LayoutTests/platform/chromium-win/inspector/timeline-event-dispatch-expected.txt
	M	LayoutTests/platform/chromium-win/inspector/timeline-mark-timeline-expected.txt
	M	LayoutTests/platform/chromium-win/inspector/timeline-network-resource-expected.txt
	M	LayoutTests/platform/chromium-win/inspector/timeline-paint-expected.txt
	M	LayoutTests/platform/chromium-win/inspector/timeline-parse-html-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/English.lproj/localizedStrings.js
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.pro
	M	WebCore/inspector/InspectorTimelineAgent.cpp
	M	WebCore/inspector/InspectorTimelineAgent.h
	M	WebCore/inspector/TimelineRecordFactory.cpp
	M	WebCore/inspector/TimelineRecordFactory.h
	M	WebCore/inspector/front-end/Popover.js
	M	WebCore/inspector/front-end/TimelineAgent.js
	M	WebCore/inspector/front-end/TimelinePanel.js
Committed r57150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209048</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 07:53:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57150 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210395</commentid>
    <comment_count>21</comment_count>
    <who name="">jaimeyap</who>
    <bug_when>2010-04-08 14:45:23 -0700</bug_when>
    <thetext>I have a bit of an issue with the way these GCEvents are represented in the event tree structure.

All nodes in the tree up until now represented a start and end time where the UI thread was blocked. Unless I am missing something, in situations where the GCEvent nests in the event tree (where it is not a top level event), the GCEvent&apos;s start and end times can sometimes overlap its peers in the event tree!

I have confirmed by looking at the data that you can have GCEvents that claim to happen between X to Y, and when in fact some other peer node claims to occupy times between X to Y. I would have to assume that in these situations, the GCEvent simply needs to be a child of this overlapping thing... or else these GCEvents should not be nodes at all.

This violates a fundamental property of the event tree datastructure. That is,

time in self for a node = my duration - duration of all my children.

If the timings that you are measuring all happen on the UI thread, then in order to maintain the sanity of the tree structure (non-overlapping peers), they need to be stuck to the appropriate parent node, or simply recorded as some kind of aggregate information on a node and not as a node itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210453</commentid>
    <comment_count>22</comment_count>
    <who name="">jaimeyap</who>
    <bug_when>2010-04-08 15:58:50 -0700</bug_when>
    <thetext>It does not happen very often, but I managed to reproduce. Here is a snippet of the timeline record stream that demonstrates things coming out of order. Here we get a data received event, followed by two small GCEvents, and then an EvalScript event. The GC&apos;s here should be children of this EvalScript event, but they are not. They are top level and are actually emitted before the EvalScript event even though their timestamps indicate they come after:

{&quot;data&quot;:{&quot;identifier&quot;:22},&quot;children&quot;:[],&quot;type&quot;:16,&quot;usedHeapSize&quot;:2962736,&quot;totalHeapSize&quot;:5148672,&quot;duration&quot;:1,&quot;time&quot;:36294.000244140625,&quot;sequence&quot;:1408}

{&quot;data&quot;:{&quot;usedHeapSizeDelta&quot;:1334504},&quot;type&quot;:17,&quot;usedHeapSize&quot;:8056076,&quot;totalHeapSize&quot;:10981376,&quot;duration&quot;:15,&quot;time&quot;:36405.000244140625,&quot;sequence&quot;:1409}

{&quot;data&quot;:{&quot;usedHeapSizeDelta&quot;:1058044},&quot;type&quot;:17,&quot;usedHeapSize&quot;:8064820,&quot;totalHeapSize&quot;:10981376,&quot;duration&quot;:2,&quot;time&quot;:36423.000244140625,&quot;sequence&quot;:1410}

{&quot;data&quot;:{&quot;url&quot;:&quot;https://wave.google.com/a/google.com/static/F4CDD1840C43DA658FB4E6CC8625D245.cache.js&quot;,&quot;lineNumber&quot;:1},&quot;children&quot;:[{&quot;data&quot;:{&quot;timerId&quot;:3,&quot;timeout&quot;:50,&quot;singleShot&quot;:false},&quot;type&quot;:5,&quot;usedHeapSize&quot;:6437768,&quot;totalHeapSize&quot;:8245248,&quot;time&quot;:36403.000244140625}],&quot;type&quot;:10,&quot;usedHeapSize&quot;:8070336,&quot;totalHeapSize&quot;:10981376,&quot;duration&quot;:131.999755859375,&quot;time&quot;:36302.000244140625,&quot;sequence&quot;:1411}

Out of order top level events are not so bad. But here we have some children of an HTML parse node that displays the same out of orderness, thus violating the self time property. We see a GCEvent come before an EvalScript event inside a node, when this GCEvent should really be a child of the EvalScript event, not its peer.:

&quot;children&quot;:[
 {&quot;data&quot;:{},&quot;children&quot;:[],&quot;type&quot;:2,&quot;usedHeapSize&quot;:11760936,&quot;totalHeapSize&quot;:14364672,&quot;duration&quot;:0,&quot;time&quot;:36647.000244140625},

 {&quot;data&quot;:{&quot;usedHeapSizeDelta&quot;:3969088},&quot;type&quot;:17,&quot;usedHeapSize&quot;:7986124,&quot;totalHeapSize&quot;:17584128,&quot;duration&quot;:21,&quot;time&quot;:36649.000244140625},{&quot;data&quot;:{&quot;url&quot;:&quot;https://wave.google.com/a/google.com/?pli=1&quot;,&quot;lineNumber&quot;:55},&quot;children&quot;:[],&quot;type&quot;:10,&quot;usedHeapSize&quot;:7986264,&quot;totalHeapSize&quot;:17584128,&quot;duration&quot;:23.999755859375,&quot;time&quot;:36647.000244140625}
]

I know how this happens. If ScriptGCEvent::gcEpilogueCallback() gets called AFTER the correct node&apos;s parent has already closed and popped from the record stack, then the GCEvents will incorrectly be attributed to the parent of the node that they should have been attributed to.

I am not sure what guarantees you have about V8 calling you back in time. It seems like sometimes it doesnt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210464</commentid>
    <comment_count>23</comment_count>
    <who name="">jaimeyap</who>
    <bug_when>2010-04-08 16:16:35 -0700</bug_when>
    <thetext>Sorry. I made a mistake in my diagnosis.

The problem is simpler.

InspectorTimelineAgent::didCompleteRecord() pops the record stack and then calls addRecordToTimeline()

addRecordToTimeline() pushes the GCEvents. This then attributes the GCEvents to whatever is currently last on the record stack. Too bad the real parent has already been popped :).

This means that the only time GCEvents are correctly parented are when they happen to get pushed by some other peer node closing BEFORE their parent tries to pop. This is the common case so the data looks mostly correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210559</commentid>
    <comment_count>24</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-08 22:24:10 -0700</bug_when>
    <thetext>Your findings are correct. Shortly speaking, GC events are never reported synchronously. The reason is that we can&apos;t run JavaScript code from within GC event, while front-end push is implemented using javascript code. All the calls into ScriptObject are JS calls in fact.

The only good way of handling this (and we&apos;ve been considering it for a long time + it was the original implementation in Chromium downstream) is to use native structures in place of ScriptValue/Object/Array that would natively serialize into JSON. They are called Value in Chromium (see base/values.h). They can be serialized to JSON using not that much code: http://src.chromium.org/viewvc/chrome/trunk/src/base/json/json_writer.cc.  Unfortunately, json_reader.cc is much larger and more complex, but I think we could work out solution that does not require it - stuff will still be parsed in the js environment. I would do it all right away if I had resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210757</commentid>
    <comment_count>25</comment_count>
    <who name="">jaimeyap</who>
    <bug_when>2010-04-09 09:15:07 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Your findings are correct. Shortly speaking, GC events are never reported
&gt; synchronously. The reason is that we can&apos;t run JavaScript code from within GC
&gt; event, while front-end push is implemented using javascript code. All the calls
&gt; into ScriptObject are JS calls in fact.
&gt; 
&gt; The only good way of handling this (and we&apos;ve been considering it for a long
&gt; time + it was the original implementation in Chromium downstream) is to use
&gt; native structures in place of ScriptValue/Object/Array that would natively
&gt; serialize into JSON. They are called Value in Chromium (see base/values.h).
&gt; They can be serialized to JSON using not that much code:
&gt; http://src.chromium.org/viewvc/chrome/trunk/src/base/json/json_writer.cc. 
&gt; Unfortunately, json_reader.cc is much larger and more complex, but I think we
&gt; could work out solution that does not require it - stuff will still be parsed
&gt; in the js environment. I would do it all right away if I had resources.

I understand the not being able to send a record synchronously from the GC callback. But I am not certain that we need to in order to fix the wrong parent bug. I have a patch that I believe resolves the issue:

https://bugs.webkit.org/show_bug.cgi?id=37340</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52489</attachid>
            <date>2010-04-03 01:58:23 -0700</date>
            <delta_ts>2010-04-03 01:58:23 -0700</delta_ts>
            <desc>Screenshot of Popup with Heap Size property.</desc>
            <filename>Picture 11.png</filename>
            <type>image/png</type>
            <size>19398</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">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
b1KbPVCIAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52490</attachid>
            <date>2010-04-03 02:03:56 -0700</date>
            <delta_ts>2010-04-03 02:03:56 -0700</delta_ts>
            <desc>Screenshot of GCRun event</desc>
            <filename>Picture 13.png</filename>
            <type>image/png</type>
            <size>48246</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">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
UQT+H2QsA/szjDjAAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52491</attachid>
            <date>2010-04-03 02:09:23 -0700</date>
            <delta_ts>2010-04-03 12:07:44 -0700</delta_ts>
            <desc>[patch] Initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28009</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNmRhZWExLi44NWMyOWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMiAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcmVzcG9uc2Utd2l0aC1ib2R5Lmh0bWwgd2FzIGlu
dHJvZHVjZWQgaW4gcjU2OTU1LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggMjIxOTNiYi4uOGIy
YzQ3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWVudW0tc3Rh
YmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0xOSw0ICsxOSw1IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgOiAxMwog
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZUZpbmlzaCA6IDE0
CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkZ1bmN0aW9uQ2FsbCA6IDE1
CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlUmVjZWl2ZURh
dGEgOiAxNgorV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5HQ1J1biA6IDE3
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNw
YXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQt
ZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CmluZGV4IGE1MjgxMTMuLmRjZDcwMTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dApAQCAtOSw0ICs5LDYgQEAgRXZlbnREaXNwYXRjaCBQcm9wZXJ0aWVzOgogKyBj
aGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDog
MAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJ
TkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4
cGVjdGVkLnR4dAppbmRleCAwMzBhZTU5Li5jYmM4ZDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtNyw0ICs3LDYgQEAg
TGF5b3V0IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6
ICogREVGSU5FRCAqCiArIHR5cGUgOiAxCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisr
IHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQK
aW5kZXggMzExYTQzZC4uNjc1MDM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dApAQCAtNiw0ICs2LDYg
QEAgTWFya1RpbWVsaW5lIFByb3BlcnRpZXM6CiArLSBtZXNzYWdlIDogTUFSSyBUSU1FTElORQog
KyB9CiArIHR5cGUgOiAxMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhl
YXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IGUzMGMw
MGMuLmMyNTBmNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1u
ZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDggQEAg
UmVzb3VyY2VTZW5kUmVxdWVzdCBQcm9wZXJ0aWVzOgogKy0gaXNNYWluUmVzb3VyY2UgOiBmYWxz
ZQogKyB9CiArIHR5cGUgOiAxMgorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVy
dGllczoKICsgc3RhcnRUaW1lIDogKiBERUZJTkVEICoKQEAgLTIzLDYgKzI1LDggQEAgUmVzb3Vy
Y2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgog
KyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDEzCisrIHVzZWRIZWFwU2l6ZSA6ICog
REVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZUZpbmlz
aCBQcm9wZXJ0aWVzOgogKyBzdGFydFRpbWUgOiAqIERFRklORUQgKgpAQCAtMzIsNCArMzYsNiBA
QCBSZXNvdXJjZUZpbmlzaCBQcm9wZXJ0aWVzOgogKy0gdXJsIDogKiBERUZJTkVEICoKICsgfQog
KyB0eXBlIDogMTQKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6
ZSA6ICogREVGSU5FRCAqCiBTY3JpcHQgcmVzb3VyY2UgbG9hZGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAppbmRleCBjMWEwZTQ1Li42
YjM5M2ZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1l
eHBlY3RlZC50eHQKQEAgLTExLDQgKzExLDYgQEAgUGFpbnQgUHJvcGVydGllczoKICsgY2hpbGRy
ZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDMKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1s
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1s
LWV4cGVjdGVkLnR4dAppbmRleCA1NzlkM2MxLi41MGE0MzViIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0x
MCw0ICsxMCw2IEBAIFBhcnNlSFRNTCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5F
RCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogNAorKyB1c2VkSGVhcFNpemUg
OiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2FsY3VsYXRlLXN0
eWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxj
dWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCAwMzA0ZDM2Li5hMzVjNWNiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxh
dGUtc3R5bGVzLWV4cGVjdGVkLnR4dApAQCAtNyw0ICs3LDYgQEAgUmVjYWxjdWxhdGVTdHlsZXMg
UHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJ
TkVEICoKICsgdHlwZSA6IDIKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKaW5kZXggYmRm
YTViNC4uZWY4MGZiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKQEAgLTEyLDQgKzEyLDYgQEAgRXZhbHVh
dGVTY3JpcHQgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1l
IDogKiBERUZJTkVEICoKICsgdHlwZSA6IDEwCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CmluZGV4IGFj
ZDdmMTcuLjg3ZDc1NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CkBAIC05LDQgKzksNiBAQCBFdmFsdWF0
ZVNjcmlwdCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUg
OiAqIERFRklORUQgKgogKyB0eXBlIDogMTAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoK
KysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLXRlc3QuanMKaW5kZXggODExMDMxMi4uZDNjNzBiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLXRlc3QuanMKQEAgLTExLDYgKzExLDggQEAgdmFyIHRpbWVsaW5lTm9uRGV0ZXJt
aW5pc3RpY1Byb3BzID0gewogICAgIGNhbGxlclNjcmlwdE5hbWU6IDEsCiAgICAgY2FsbGVyU2Ny
aXB0TGluZTogMSwKICAgICB1cmwgOiAxLAorICAgIHVzZWRIZWFwU2l6ZTogMSwKKyAgICB0b3Rh
bEhlYXBTaXplOiAxLAogICAgIG1pbWVUeXBlIDogMQogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNw
YXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5z
cGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAppbmRleCAxYWZkMmI5
Li40MzFlYWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
aW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRp
c3BhdGNoLWV4cGVjdGVkLnR4dApAQCAtMTEsNCArMTEsNiBAQCBFdmVudERpc3BhdGNoIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAwCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1tYXJr
LXRpbWVsaW5lLWV4cGVjdGVkLnR4dAppbmRleCBkZjI4NGQ4Li40MjEzYTVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKQEAg
LTgsNCArOCw2IEBAIE1hcmtUaW1lbGluZSBQcm9wZXJ0aWVzOgogKy0gbWVzc2FnZSA6IE1BUksg
VElNRUxJTkUKICsgfQogKyB0eXBlIDogMTEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoK
KysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJj
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVj
dG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDMwNmUzOGMu
LjY1NTNhYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9p
bnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1uZXR3b3Jr
LXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOCBAQCBSZXNvdXJjZVNlbmRSZXF1
ZXN0IFByb3BlcnRpZXM6CiArLSBpc01haW5SZXNvdXJjZSA6IGZhbHNlCiArIH0KICsgdHlwZSA6
IDEyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERF
RklORUQgKgogCiBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgogKyBzdGFydFRp
bWUgOiAqIERFRklORUQgKgpAQCAtMjUsNiArMjcsOCBAQCBSZXNvdXJjZVJlY2VpdmVSZXNwb25z
ZSBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMTMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90
YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlRmluaXNoIFByb3BlcnRpZXM6CiAr
IHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0zNCw0ICszOCw2IEBAIFJlc291cmNlRmluaXNo
IFByb3BlcnRpZXM6CiArLSB1cmwgOiAqIERFRklORUQgKgogKyB9CiArIHR5cGUgOiAxNAorKyB1
c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoK
IFNjcmlwdCByZXNvdXJjZSBsb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1l
eHBlY3RlZC50eHQKaW5kZXggMjAyYmVlOC4uYjU2OGJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90
aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQKQEAgLTEzLDQgKzEzLDYgQEAgUGFpbnQgUHJvcGVy
dGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoK
ICsgdHlwZSA6IDMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6
ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0
bWwtZXhwZWN0ZWQudHh0CmluZGV4IDg4MmM5NzUuLmQ0Zjc0YTIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2lu
c3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBA
QCBQYXJzZUhUTUwgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRU
aW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDQKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVE
ICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU4ZDlhNC4uODIw
NWFiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNC0wMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNs
b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogVGhlIEpTIGNvZGUgY2FuIGJlIG5vdCBvcHRpbWFsIGZy
b20gbWVtb3J5IHVzYWdlIHBvaW50IG9mIHZpZXcuCisgICAgICAgIEFzIGV4YW1wbGUgaXQgY2Fu
IGdlbmVyYXRlIGEgbG90IG9mIHRlbXAgb2JqZWN0cyBhbmQgR0Mgd2lsbCBzcGVuZCBzaWduaWZp
Y2FudCB0aW1lIHRvIGNvbGxlY3QgdGhlc2Ugb2JqZWN0cy4KKyAgICAgICAgR0NSdW4gZXZlbnQg
d2lsbCBzaG93IHVzIHRoZXNlIG1vbWVudHMuIEFsc28gZWFjaCBldmVudCBjYW4gc2hvdyB1cyBo
b3cgbXVjaCBtZW1vcnkgaXMgaW4gdXNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzcwMjUKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmhlYXBTdGF0aXN0aWNzKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZWNhbGNTdHlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6cHVzaEdDUnVuUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRHQ1J1bik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1l
bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNv
cmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6Cisg
ICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YSk6CisgICAgICAg
ICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUG9wb3Zlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVs
cGVyLnByb3RvdHlwZS5fbW91c2VIb3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlw
ZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
Rm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJhdGVQb3B1cENvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5f
Z2V0UmVjb3JkRGV0YWlscyk6CisKIDIwMTAtMDQtMDIgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IHdoZW4g
YnVpbGRpbmcgLS1uby1zdmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDczZjA3NDliOWI4M2JhNzVmN2Y5YTliMTliM2M4NDk4ZDUyM2NlNzIuLjJlODlh
MDhiNzhhNGU1N2FlMjU2MDJlOTM2NTcyNmU2YWVlYjIwNjMgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0
Y2gKZGVsdGEgMTYwCnpjbWNieW5DWndlclZUZUhQUFAkS25TNCleamskbjlWUkY4XkQ3eXprRG5s
WWUhUX1JdnJqc3ZsdnZEVWc8VEs7fAp6VkpidU48Y2x1Q2xQN1NxQGdqKmFsdVR3Yyg0VStqIz0/
JUlpcXsjVDMhKn5Mb3h6endmZ3k7WWxwJjhuaTZJdXEKUXdncUEoMjJeb3QxfS1vSjBBaDZ8ZiZj
JmoKCmRlbHRhIDkKUmNtWEBJak9vVD1yVlRlSDBzdDdwMXBAIzgKCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQzMGYxNTQuLjIx
N2ZjMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC03OTgsNiArNzk4LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9E
T01EYXRhU3RvcmUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxk
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgnLAorICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L0dDRXZlbnRIZWxwZXIuY3BwJywKKyAgICAgICAgICAgICdi
aW5kaW5ncy92OC9HQ0V2ZW50SGVscGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0lz
b2xhdGVkV29ybGQuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9Jc29sYXRlZFdvcmxk
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L01haW5UaHJlYWRET01EYXRhLmNwcCcsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCBlYWY5N2E5Li44ZjQ5NzM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwMjQsNiArMTAyNCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKICAgICBiaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIFwKICAgICBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIu
aCBcCisgICAgYmluZGluZ3MvanMvR0NFdmVudEhlbHBlci5oIFwKICAgICBiaW5kaW5ncy9qcy9E
T01PYmplY3RIYXNoVGFibGVNYXAuaCBcCiAgICAgYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxk
LmggXAogICAgIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAyYmY2NmVlLi4yZjUyZjlkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNTMs
NiArNTMsMTkgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgQVNTRVJUKG1fZnJvbnRlbmQpOwog
fQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ1J1blJlY29yZHMoKQorewor
ICAgIG1fZ2NFdmVudEhlbHBlci5wdXNoQ29sbGVjdGVkR0NFdmVudHModGhpcyk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkR0NSdW4oZG91YmxlIHN0YXJ0VGltZSwgZG91
YmxlIGVuZFRpbWUsIHNpemVfdCBjb2xsZWN0ZWRCeXRlc0NvdW50KQoreworICAgIFNjcmlwdE9i
amVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
bV9mcm9udGVuZCwgc3RhcnRUaW1lKTsKKyAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ1J1bkRhdGEobV9mcm9udGVuZCwgY29sbGVjdGVkQnl0ZXND
b3VudCkpOworICAgIHJlY29yZC5zZXQoImVuZFRpbWUiLCBlbmRUaW1lKTsKKyAgICBhZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCwgR0NSdW5UaW1lbGluZVJlY29yZFR5cGUpOworfQorCiBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpCiB7CiAgICAgQVNT
RVJUKHNfaW5zdGFuY2VDb3VudCk7CkBAIC0xMjYsMTQgKzEzOSwxNCBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGlu
dCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBj
dXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RG
OjpjdXJyZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEobV9mcm9udGVuZCwgdGltZXJJZCwgdGlt
ZW91dCwgc2luZ2xlU2hvdCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1l
ckluc3RhbGxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKQogewotICAgIFNjcmlwdE9iamVjdCBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9u
dGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKG1fZnJvbnRlbmQsIHRpbWVy
SWQpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgVGltZXJSZW1vdmVUaW1lbGlu
ZVJlY29yZFR5cGUpOwogfQpAQCAtMTgxLDkgKzE5NCwxMSBAQCB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KCkKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29s
IGlzTWFpblJlc291cmNlLAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
ZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7Cisg
ICAgcHVzaEdDUnVuUmVjb3JkcygpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJy
ZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIs
IGlzTWFpblJlc291cmNlLCByZXF1ZXN0KSk7CiAgICAgcmVjb3JkLnNldCgidHlwZSIsIFJlc291
cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHNldEhlYXBTaXplU3RhdGlz
dGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQp
OwogfQogCkBAIC0yMDksMTUgKzIyNCwxNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBi
b29sIGRpZEZhaWwpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWls
bGlzZWNvbmRzKCkpOworICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKKyAgICBTY3JpcHRPYmplY3Qg
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJv
bnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEobV9mcm9udGVuZCwg
aWRlbnRpZmllciwgZGlkRmFpbCkpOwogICAgIHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJjZUZp
bmlzaFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3Jk
KTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya1RpbWVsaW5lKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNl
Y29uZHMoKSk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7
CiAgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFy
a1RpbWVsaW5lRGF0YShtX2Zyb250ZW5kLCBtZXNzYWdlKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQsIE1hcmtUaW1lbGluZVJlY29yZFR5cGUpOwogfQpAQCAtMjM1LDggKzI1Miwx
MSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVj
dChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbgogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0IHJlY29yZCwgVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGUpCi17Cit7ICAKKyAgICBpZiAodHlwZSAhPSBHQ1J1blRpbWVsaW5lUmVj
b3JkVHlwZSkKKyAgICAgICAgcHVzaEdDUnVuUmVjb3JkcygpOwogICAgIHJlY29yZC5zZXQoInR5
cGUiLCB0eXBlKTsKKyAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIGlmICht
X3JlY29yZFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9U
aW1lbGluZShyZWNvcmQpOwogICAgIGVsc2UgewpAQCAtMjQ1LDYgKzI2NSwxNSBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0IHJl
Y29yZCwgVGltZWxpbmVSZQogICAgIH0KIH0KIAordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKQoreworICAgIHNpemVf
dCB1c2VkSGVhcFNpemUgPSAwOworICAgIHNpemVfdCB0b3RhbEhlYXBTaXplID0gMDsKKyAgICBH
Q0V2ZW50SGVscGVyOjpnZXRIZWFwU2l6ZSh1c2VkSGVhcFNpemUsIHRvdGFsSGVhcFNpemUpOwor
ICAgIHJlY29yZC5zZXQoInVzZWRIZWFwU2l6ZSIsIHVzZWRIZWFwU2l6ZSk7CisgICAgcmVjb3Jk
LnNldCgidG90YWxIZWFwU2l6ZSIsIHRvdGFsSGVhcFNpemUpOworfQorCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5
cGUgdHlwZSkKIHsKICAgICAvLyBBbiBlbXB0eSBzdGFjayBjb3VsZCBtZXJlbHkgbWVhbiB0aGF0
IHRoZSB0aW1lbGluZSBhZ2VudCB3YXMgdHVybmVkIG9uIGluIHRoZSBtaWRkbGUgb2YKQEAgLTI1
NSwxOSArMjg0LDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAgICBBU1NFUlQoZW50
cnkudHlwZSA9PSB0eXBlKTsKICAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZGF0YSIsIGVudHJ5
LmRhdGEpOwogICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxk
cmVuKTsKLSAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZW5kVGltZSIsIGN1cnJlbnRUaW1lSW5N
aWxsaXNlY29uZHMoKSk7CisgICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImVuZFRpbWUiLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUoZW50cnkucmVj
b3JkLCB0eXBlKTsKICAgICB9CiB9CiAKLWRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpj
dXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkKLXsKLSAgICByZXR1cm4gY3VycmVudFRpbWUoKSAq
IDEwMDAuMDsKLX0KLQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJl
Y29yZChTY3JpcHRPYmplY3QgZGF0YSwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiB7Ci0gICAg
U2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIHB1
c2hHQ1J1blJlY29yZHMoKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRp
bWVNUygpKTsKICAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJl
Y29yZCwgZGF0YSwgbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSwgdHlwZSkpOwogfQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCmluZGV4IDU2YzkxOGMuLjkxN2I3ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHQ0V2ZW50SGVscGVyLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdE9i
amVjdC5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCkBAIC02NSw2ICs2Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUg
PSAxNCwKICAgICAgICAgRnVuY3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCiAgICAg
ICAgIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUgPSAxNiwKKyAgICAgICAg
R0NSdW5UaW1lbGluZVJlY29yZFR5cGUgPSAxNywKICAgICB9OwogCiAgICAgY2xhc3MgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC0xMTYsNiArMTE4LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VE
YXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c291cmNlRGF0YSgpOwogICAgICAgICAKKyAgICAgICAgdm9pZCBkaWRHQ1J1bihkb3VibGUsIGRv
dWJsZSwgc2l6ZV90KTsKKwogICAgICAgICBzdGF0aWMgaW50IGluc3RhbmNlQ291bnQoKSB7IHJl
dHVybiBzX2luc3RhbmNlQ291bnQ7IH0KICAgICAgICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIApAQCAtMTI5LDE0ICsx
MzMsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9OwogICAgICAgICAKICAgICAg
ICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CisgICAgICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29y
ZCk7CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgZG91YmxlIGN1cnJlbnRUaW1lSW5NaWxsaXNl
Y29uZHMoKTsKLQogICAgICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZFR5cGUpOwogCiAgICAgICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRP
YmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKKyAgICAgICAgdm9pZCBwdXNoR0NSdW5SZWNv
cmRzKCk7CisKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgICAg
IEdDRXZlbnRIZWxwZXIgbV9nY0V2ZW50SGVscGVyOwogCiAgICAgICAgIFZlY3RvcjwgVGltZWxp
bmVSZWNvcmRFbnRyeSA+IG1fcmVjb3JkU3RhY2s7CiAgICAgICAgIHN0YXRpYyBpbnQgc19pbnN0
YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAK
aW5kZXggMmFkMDg5ZC4uMWZhMDVlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwCkBAIC01OCw2ICs1OCwxMyBAQCBTY3JpcHRPYmplY3QgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dAogICAgIHJldHVybiByZWNvcmQ7CiB9CiAKK1NjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0
IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkKK3sKKyAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZy
b250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKKyAgICBkYXRhLnNldCgidXNlZEhlYXBTaXplRGVs
dGEiLCB1c2VkSGVhcFNpemVEZWx0YSk7CisgICAgcmV0dXJuIGRhdGE7Cit9CisKIFNjcmlwdE9i
amVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKQogewogICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9i
amVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmggYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAppbmRleCA4
ZGFmOTE1Li4yMjA1MDAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaApAQCAtNDYsNiArNDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgog
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdlbmVyaWNSZWNvcmQoSW5zcGVjdG9y
RnJvbnRlbmQqLCBkb3VibGUgc3RhcnRUaW1lKTsKIAorICAgICAgICBzdGF0aWMgU2NyaXB0T2Jq
ZWN0IGNyZWF0ZUdDUnVuRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNp
emVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CisKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBj
cmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiBz
Y3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVj
dCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2ZW50
Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCmluZGV4IDQ2NDQxNmQuLjg0
OGM5OWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCkBAIC0yMjEsNyAr
MjIxLDggQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlID0gewogICAgICAg
ICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAogICAgICAgICB0aGlzLl9wb3B1cCA9IHRoaXMu
X3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJp
bmQodGhpcyksIHRydWUpOworICAgICAgICBpZiAodGhpcy5fcG9wdXApCisgICAgICAgICAgICB0
aGlzLl9wb3B1cC5jb250ZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0
aGlzLl9raWxsSGlkZVBvcHVwVGltZXIuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgfSwKIAogICAg
IF9raWxsSGlkZVBvcHVwVGltZXI6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKaW5kZXggMTNmOTM3Zi4uZDNlOGIyZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKQEAgLTUwLDcgKzUwLDgg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZSA9IHsKICAgICBSZXNvdXJj
ZVJlY2VpdmVSZXNwb25zZSA6IDEzLAogICAgIFJlc291cmNlRmluaXNoIDogMTQsCiAgICAgRnVu
Y3Rpb25DYWxsIDogMTUsCi0gICAgUmVzb3VyY2VSZWNlaXZlRGF0YTogMTYKKyAgICBSZXNvdXJj
ZVJlY2VpdmVEYXRhOiAxNiwKKyAgICBHQ1J1biA6IDE3CiB9OwogCiBXZWJJbnNwZWN0b3IuYWRk
UmVjb3JkVG9UaW1lbGluZSA9IGZ1bmN0aW9uKHJlY29yZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCAwMTdmM2FhLi4zMTlmNzMxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMTUxLDYg
KzE1MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaF0gPSB7IHRpdGxl
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbmlzaCBMb2FkaW5nIiksIGNhdGVnb3J5OiB0aGlz
LmNhdGVnb3JpZXMubG9hZGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5
cGVzLkZ1bmN0aW9uQ2FsbF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0
aW9uIENhbGwiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAgICAg
ICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVEYXRhXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjZWl2ZSBEYXRhIiksIGNhdGVnb3J5OiB0
aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLkdDUnVuXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR0MgUnVuIiks
IGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07CiAgICAgICAgICAgICB0aGlz
Ll9yZWNvcmRTdHlsZXNBcnJheSA9IHJlY29yZFN0eWxlczsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVzQXJyYXk7CkBAIC03MjUsNiArNzI2LDggQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBw
YXJlbnRSZWNvcmQsIHJlY28KICAgICB0aGlzLm9yaWdpbmFsUmVjb3JkRm9yVGVzdHMgPSByZWNv
cmQ7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHROYW1lID0gcmVjb3JkLmNhbGxlclNjcmlwdE5hbWU7
CiAgICAgdGhpcy5jYWxsZXJTY3JpcHRMaW5lID0gcmVjb3JkLmNhbGxlclNjcmlwdExpbmU7Cisg
ICAgdGhpcy50b3RhbEhlYXBTaXplID0gcmVjb3JkLnRvdGFsSGVhcFNpemU7CisgICAgdGhpcy51
c2VkSGVhcFNpemUgPSByZWNvcmQudXNlZEhlYXBTaXplOwogCiAgICAgLy8gTWFrZSByZXNvdXJj
ZSByZWNlaXZlIHJlY29yZCBsYXN0IHNpbmNlIHJlcXVlc3Qgd2FzIHNlbnQ7IG1ha2UgZmluaXNo
IHJlY29yZCBsYXN0IHNpbmNlIHJlc3BvbnNlIHJlY2VpdmVkLgogICAgIGlmIChyZWNvcmQudHlw
ZSA9PT0gcmVjb3JkVHlwZXMuUmVzb3VyY2VTZW5kUmVxdWVzdCkgewpAQCAtODE3LDcgKzgyMCw5
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgY29uc3QgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVB
Z2VudC5SZWNvcmRUeXBlOwogICAgICAgICBpZiAodGhpcy5kZXRhaWxzKSB7Ci0gICAgICAgICAg
ICBpZiAodGhpcy50eXBlID09PSByZWNvcmRUeXBlcy5UaW1lckluc3RhbGwgfHwKKyAgICAgICAg
ICAgIGlmICh0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLkdDUnVuICkKKyAgICAgICAgICAgICAg
ICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ29sbGVjdGVkIiksIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0
YS51c2VkSGVhcFNpemVEZWx0YSkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHlwZSA9
PT0gcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsIHx8CiAgICAgICAgICAgICAgICAgdGhpcy50eXBl
ID09PSByZWNvcmRUeXBlcy5UaW1lckZpcmUgfHwKICAgICAgICAgICAgICAgICB0aGlzLnR5cGUg
PT09IHJlY29yZFR5cGVzLlRpbWVyUmVtb3ZlKSB7CiAgICAgICAgICAgICAgICAgcmVjb3JkQ29u
dGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlRpbWVyIElkIiksIHRoaXMuZGF0YS50aW1lcklkKSk7CkBAIC04NTYsMTYgKzg2MSwyMCBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9j
cmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZXRhaWxzIiksIHRoaXMuZGV0YWlscykp
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuY2FsbGVyU2NyaXB0TmFtZSkgeworICAg
ICAgICBpZiAodGhpcy50eXBlICE9PSByZWNvcmRUeXBlcy5HQ1J1biAmJiB0aGlzLmNhbGxlclNj
cmlwdE5hbWUpIHsKICAgICAgICAgICAgIHZhciBsaW5rID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlS
ZXNvdXJjZUFzTm9kZSh0aGlzLmNhbGxlclNjcmlwdE5hbWUsICJzY3JpcHRzIiwgdGhpcy5jYWxs
ZXJTY3JpcHRMaW5lKTsKICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVMaW5rUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbGVyIiksIGxp
bmspKTsKICAgICAgICAgfQorICAgICAgICBpZiAodGhpcy51c2VkSGVhcFNpemUpCisgICAgICAg
ICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYklu
c3BlY3Rvci5VSVN0cmluZygiSGVhcCBTaXplIiksIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMu
dXNlZEhlYXBTaXplKSArICIoIiArIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMudG90YWxIZWFw
U2l6ZSkgKyAiKSIpKTsKICAgICAgICAgcmV0dXJuIHJlY29yZENvbnRlbnRUYWJsZTsKICAgICB9
LAogCiAgICAgX2dldFJlY29yZERldGFpbHM6IGZ1bmN0aW9uKHJlY29yZCwgc2VuZFJlcXVlc3RS
ZWNvcmRzKQogICAgIHsKICAgICAgICAgc3dpdGNoIChyZWNvcmQudHlwZSkgeworICAgICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuOgorICAg
ICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGNvbGxlY3RlZCIs
IE51bWJlci5ieXRlc1RvU3RyaW5nKHJlY29yZC5kYXRhLnVzZWRIZWFwU2l6ZURlbHRhKSk7CiAg
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVu
Y3Rpb25DYWxsOgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGlzcGxheU5h
bWVGb3JVUkwocmVjb3JkLmRhdGEuc2NyaXB0TmFtZSkgKyAiOiIgKyByZWNvcmQuZGF0YS5zY3Jp
cHRMaW5lOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNv
cmRUeXBlLkV2ZW50RGlzcGF0Y2g6Cg==
</data>
<flag name="review"
          id="35988"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52498</attachid>
            <date>2010-04-03 12:07:44 -0700</date>
            <delta_ts>2010-04-05 12:08:20 -0700</delta_ts>
            <desc>[patch] second iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>37439</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNmRhZWExLi5lOWM4Mjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMiAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcmVzcG9uc2Utd2l0aC1ib2R5Lmh0bWwgd2FzIGlu
dHJvZHVjZWQgaW4gcjU2OTU1LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggMjIxOTNiYi4uOGIy
YzQ3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWVudW0tc3Rh
YmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0xOSw0ICsxOSw1IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgOiAxMwog
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZUZpbmlzaCA6IDE0
CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkZ1bmN0aW9uQ2FsbCA6IDE1
CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlUmVjZWl2ZURh
dGEgOiAxNgorV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5HQ1J1biA6IDE3
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNw
YXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQt
ZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CmluZGV4IGE1MjgxMTMuLmRjZDcwMTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dApAQCAtOSw0ICs5LDYgQEAgRXZlbnREaXNwYXRjaCBQcm9wZXJ0aWVzOgogKyBj
aGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDog
MAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJ
TkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4
cGVjdGVkLnR4dAppbmRleCAwMzBhZTU5Li5jYmM4ZDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtNyw0ICs3LDYgQEAg
TGF5b3V0IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6
ICogREVGSU5FRCAqCiArIHR5cGUgOiAxCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisr
IHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQK
aW5kZXggMzExYTQzZC4uNjc1MDM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dApAQCAtNiw0ICs2LDYg
QEAgTWFya1RpbWVsaW5lIFByb3BlcnRpZXM6CiArLSBtZXNzYWdlIDogTUFSSyBUSU1FTElORQog
KyB9CiArIHR5cGUgOiAxMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhl
YXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IGUzMGMw
MGMuLmMyNTBmNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1u
ZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDggQEAg
UmVzb3VyY2VTZW5kUmVxdWVzdCBQcm9wZXJ0aWVzOgogKy0gaXNNYWluUmVzb3VyY2UgOiBmYWxz
ZQogKyB9CiArIHR5cGUgOiAxMgorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVy
dGllczoKICsgc3RhcnRUaW1lIDogKiBERUZJTkVEICoKQEAgLTIzLDYgKzI1LDggQEAgUmVzb3Vy
Y2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgog
KyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDEzCisrIHVzZWRIZWFwU2l6ZSA6ICog
REVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZUZpbmlz
aCBQcm9wZXJ0aWVzOgogKyBzdGFydFRpbWUgOiAqIERFRklORUQgKgpAQCAtMzIsNCArMzYsNiBA
QCBSZXNvdXJjZUZpbmlzaCBQcm9wZXJ0aWVzOgogKy0gdXJsIDogKiBERUZJTkVEICoKICsgfQog
KyB0eXBlIDogMTQKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6
ZSA6ICogREVGSU5FRCAqCiBTY3JpcHQgcmVzb3VyY2UgbG9hZGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAppbmRleCBjMWEwZTQ1Li42
YjM5M2ZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1l
eHBlY3RlZC50eHQKQEAgLTExLDQgKzExLDYgQEAgUGFpbnQgUHJvcGVydGllczoKICsgY2hpbGRy
ZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDMKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1s
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1s
LWV4cGVjdGVkLnR4dAppbmRleCA1NzlkM2MxLi41MGE0MzViIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0x
MCw0ICsxMCw2IEBAIFBhcnNlSFRNTCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5F
RCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogNAorKyB1c2VkSGVhcFNpemUg
OiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2FsY3VsYXRlLXN0
eWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxj
dWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCAwMzA0ZDM2Li5hMzVjNWNiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxh
dGUtc3R5bGVzLWV4cGVjdGVkLnR4dApAQCAtNyw0ICs3LDYgQEAgUmVjYWxjdWxhdGVTdHlsZXMg
UHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJ
TkVEICoKICsgdHlwZSA6IDIKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKaW5kZXggYmRm
YTViNC4uZWY4MGZiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQKQEAgLTEyLDQgKzEyLDYgQEAgRXZhbHVh
dGVTY3JpcHQgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1l
IDogKiBERUZJTkVEICoKICsgdHlwZSA6IDEwCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CmluZGV4IGFj
ZDdmMTcuLjg3ZDc1NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0CkBAIC05LDQgKzksNiBAQCBFdmFsdWF0
ZVNjcmlwdCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUg
OiAqIERFRklORUQgKgogKyB0eXBlIDogMTAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoK
KysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLXRlc3QuanMKaW5kZXggODExMDMxMi4uZDNjNzBiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLXRlc3QuanMKQEAgLTExLDYgKzExLDggQEAgdmFyIHRpbWVsaW5lTm9uRGV0ZXJt
aW5pc3RpY1Byb3BzID0gewogICAgIGNhbGxlclNjcmlwdE5hbWU6IDEsCiAgICAgY2FsbGVyU2Ny
aXB0TGluZTogMSwKICAgICB1cmwgOiAxLAorICAgIHVzZWRIZWFwU2l6ZTogMSwKKyAgICB0b3Rh
bEhlYXBTaXplOiAxLAogICAgIG1pbWVUeXBlIDogMQogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNw
YXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5z
cGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAppbmRleCAxYWZkMmI5
Li40MzFlYWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
aW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRp
c3BhdGNoLWV4cGVjdGVkLnR4dApAQCAtMTEsNCArMTEsNiBAQCBFdmVudERpc3BhdGNoIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAwCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1tYXJr
LXRpbWVsaW5lLWV4cGVjdGVkLnR4dAppbmRleCBkZjI4NGQ4Li40MjEzYTVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKQEAg
LTgsNCArOCw2IEBAIE1hcmtUaW1lbGluZSBQcm9wZXJ0aWVzOgogKy0gbWVzc2FnZSA6IE1BUksg
VElNRUxJTkUKICsgfQogKyB0eXBlIDogMTEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoK
KysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJj
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVj
dG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDMwNmUzOGMu
LjY1NTNhYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9p
bnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1uZXR3b3Jr
LXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOCBAQCBSZXNvdXJjZVNlbmRSZXF1
ZXN0IFByb3BlcnRpZXM6CiArLSBpc01haW5SZXNvdXJjZSA6IGZhbHNlCiArIH0KICsgdHlwZSA6
IDEyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERF
RklORUQgKgogCiBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgogKyBzdGFydFRp
bWUgOiAqIERFRklORUQgKgpAQCAtMjUsNiArMjcsOCBAQCBSZXNvdXJjZVJlY2VpdmVSZXNwb25z
ZSBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMTMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90
YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlRmluaXNoIFByb3BlcnRpZXM6CiAr
IHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0zNCw0ICszOCw2IEBAIFJlc291cmNlRmluaXNo
IFByb3BlcnRpZXM6CiArLSB1cmwgOiAqIERFRklORUQgKgogKyB9CiArIHR5cGUgOiAxNAorKyB1
c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoK
IFNjcmlwdCByZXNvdXJjZSBsb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1l
eHBlY3RlZC50eHQKaW5kZXggMjAyYmVlOC4uYjU2OGJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90
aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQKQEAgLTEzLDQgKzEzLDYgQEAgUGFpbnQgUHJvcGVy
dGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoK
ICsgdHlwZSA6IDMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6
ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0
bWwtZXhwZWN0ZWQudHh0CmluZGV4IDg4MmM5NzUuLmQ0Zjc0YTIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2lu
c3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBA
QCBQYXJzZUhUTUwgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRU
aW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDQKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVE
ICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU4ZDlhNC4uNTRm
ZmE4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMC0wNC0wMyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNs
b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogVGhlIEpTIGNvZGUgY2FuIGJlIG5vdCBvcHRpbWFsIGZy
b20gbWVtb3J5IHVzYWdlIHBvaW50IG9mIHZpZXcuCisgICAgICAgIEFzIGV4YW1wbGUgaXQgY2Fu
IGdlbmVyYXRlIGEgbG90IG9mIHRlbXAgb2JqZWN0cyBhbmQgR0Mgd2lsbCBzcGVuZCBzaWduaWZp
Y2FudCB0aW1lIHRvIGNvbGxlY3QgdGhlc2Ugb2JqZWN0cy4KKyAgICAgICAgR0NSdW4gZXZlbnQg
d2lsbCBzaG93IHVzIHRoZXNlIG1vbWVudHMuIEFsc28gZWFjaCBldmVudCBjYW4gc2hvdyB1cyBo
b3cgbXVjaCBtZW1vcnkgaXMgaW4gdXNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzcwMjUKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEdD
RXZlbnRIZWxwZXIuaAorICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVu
dEhlbHBlci5oCisgICAgICAgICogV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVs
cGVyLmNwcAorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ1J1blJlY29y
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkR0NSdW4p
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92
ZVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxT
ZW5kUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVz
aEN1cnJlbnRSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHQ1J1bkRhdGEpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29y
ZEZhY3RvcnkuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUuX21vdXNlSG92ZXIp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2VudC5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IF9yZWNvcmRTdHlsZXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUu
X2dlbmVyYXRlUG9wdXBDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUuX2dldFJlY29yZERldGFpbHMpOgorCiAyMDEw
LTA0LTAyICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCB3aGVuIGJ1aWxkaW5nIC0tbm8tc3ZnLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3M2YwNzQ5YjliODNiYTc1
ZjdmOWE5YjE5YjNjODQ5OGQ1MjNjZTcyLi5kMjNmMDgxMjhhMzM5YjczZGUyMTk5YWJmMDgxNWFk
ZjZhYWE3NzE2IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDIyNgp6Y21jYnluQ2FBVnJW
VGVIUFBQJEs1ZXtXMlc9TGc3Vk5oVzMwTWR5SjFxPSQ0Xlc4LVNGfmxkSV9jUnBeVmFSN0YKejBq
a1BEUzNofUhBUXZheDQzT0glN3I1RURsWSMxVWZIMExJZEdiWFU7bUglWSo/NXR9NyltQkg4dDZ8
PjVNeUNTCm9RcE18eCY7P1BVPWchfl52QHdYR2xwJjhuaTZJdXF3Z3FBKDIyXm90MX0tb0owN1Qz
KHcqVVlECgpkZWx0YSA5ClJjbVhATG9heDQ1clZUZUgwc3Q4UzFxdUtGCgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkMzBmMTU0
Li5lNDM4YjNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtODI0LDYgKzgyNCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3Jp
cHRGdW5jdGlvbkNhbGwuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5j
dGlvbkNhbGwuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBl
ci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuaCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0SW5zdGFuY2UuY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9TY3JpcHRJbnN0YW5jZS5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9TY3JpcHRPYmplY3QuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGVhZjk3YTkuLjdmOTAwZTggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTA4MSw2
ICsxMDgxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmggXAogICAgIGJpbmRp
bmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oIFwKKyAgICBiaW5kaW5ncy9qcy9TY3JpcHRHQ0V2
ZW50SGVscGVyLmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5oIFwKICAgICBiaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJj
ZVByb3ZpZGVyLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2
ZW50SGVscGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnRIZWxwZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjExYmQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmgKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU2NyaXB0R0NFdmVudEhlbHBlcl9oCisjZGVmaW5lIFNjcmlwdEdDRXZl
bnRIZWxwZXJfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIGNsYXNzIFNjcmlwdEdDRXZlbnRIZWxwZXIKKyAgICB7CisgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgdm9pZCBwdXNoQ29sbGVjdGVkR0NFdmVudHMoSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCopIHt9CisgICAgICAgIHN0YXRpYyB2b2lkIGdldEhlYXBTaXplKHNpemVfdCYsIHNpemVf
dCYpIHt9CisgICAgfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICFFTkFC
TEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVkKFNjcmlwdEdDRXZlbnRIZWxwZXJfaCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ODg0NGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3BwCkBAIC0wLDAgKzEsMTAyIEBA
CisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1
dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiU2NyaXB0R0NFdmVudEhlbHBlci5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitTY3JpcHRHQ0V2ZW50SGVscGVyOjpHQ1J1
bkV2ZW50cyBTY3JpcHRHQ0V2ZW50SGVscGVyOjpzX2djUnVuRXZlbnRzOworaW50IFNjcmlwdEdD
RXZlbnRIZWxwZXI6OnNfaGVscGVyc0NvdW50ZXIgPSAwOworCitTY3JpcHRHQ0V2ZW50SGVscGVy
OjpTY3JpcHRHQ0V2ZW50SGVscGVyKCkKK3sKKyAgICArK3NfaGVscGVyc0NvdW50ZXI7CisgICAg
aWYgKHNfaGVscGVyc0NvdW50ZXIgPT0gMSkgeworICAgICAgICB2ODo6Vjg6OkFkZEdDUHJvbG9n
dWVDYWxsYmFjayhnY1Byb2xvZ3VlQ2FsbGJhY2spOworICAgICAgICB2ODo6Vjg6OkFkZEdDRXBp
bG9ndWVDYWxsYmFjayhnY0VwaWxvZ3VlQ2FsbGJhY2spOworICAgIH0KK30KKworU2NyaXB0R0NF
dmVudEhlbHBlcjo6flNjcmlwdEdDRXZlbnRIZWxwZXIoKQoreworICAgIEFTU0VSVChzX2hlbHBl
cnNDb3VudGVyKTsKKyAgICAtLXNfaGVscGVyc0NvdW50ZXI7CisgICAgaWYgKCFzX2hlbHBlcnND
b3VudGVyKSB7CisgICAgICAgIHY4OjpWODo6UmVtb3ZlR0NFcGlsb2d1ZUNhbGxiYWNrKGdjUHJv
bG9ndWVDYWxsYmFjayk7CisgICAgICAgIHY4OjpWODo6UmVtb3ZlR0NQcm9sb2d1ZUNhbGxiYWNr
KGdjRXBpbG9ndWVDYWxsYmFjayk7CisgICAgfQorfQorCit2b2lkIFNjcmlwdEdDRXZlbnRIZWxw
ZXI6OnB1c2hDb2xsZWN0ZWRHQ0V2ZW50cyhJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBhZ2VudCkK
K3sKKyAgICBpZiAoc19nY1J1bkV2ZW50cy5zaXplKCkpIHsKKyAgICAgICAgZm9yIChHQ1J1bkV2
ZW50czo6aXRlcmF0b3IgaSA9IHNfZ2NSdW5FdmVudHMuYmVnaW4oKTsgaSAhPSBzX2djUnVuRXZl
bnRzLmVuZCgpOyArK2kpCisgICAgICAgICAgICBhZ2VudC0+ZGlkR0NSdW4oaS0+c3RhcnRUaW1l
LCBpLT5lbmRUaW1lLCBpLT5jb2xsZWN0ZWRCeXRlcyk7CisgICAgICAgIHNfZ2NSdW5FdmVudHMu
Y2xlYXIoKTsKKyAgICB9Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2V0SGVhcFNp
emUoc2l6ZV90JiB1c2VkSGVhcFNpemUsIHNpemVfdCYgdG90YWxIZWFwU2l6ZSkKK3sKKyAgICB2
ODo6SGVhcFN0YXRpc3RpY3MgaGVhcFN0YXRpc3RpY3M7CisgICAgdjg6OlY4OjpHZXRIZWFwU3Rh
dGlzdGljcygmaGVhcFN0YXRpc3RpY3MpOworICAgIHVzZWRIZWFwU2l6ZSA9IGhlYXBTdGF0aXN0
aWNzLnVzZWRfaGVhcF9zaXplKCk7CisgICAgdG90YWxIZWFwU2l6ZSA9IGhlYXBTdGF0aXN0aWNz
LnRvdGFsX2hlYXBfc2l6ZSgpOworfQorCitzaXplX3QgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2V0
VXNlZEhlYXBTaXplKCkKK3sKKyAgICB2ODo6SGVhcFN0YXRpc3RpY3MgaGVhcFN0YXRpc3RpY3M7
CisgICAgdjg6OlY4OjpHZXRIZWFwU3RhdGlzdGljcygmaGVhcFN0YXRpc3RpY3MpOworICAgIHJl
dHVybiBoZWFwU3RhdGlzdGljcy51c2VkX2hlYXBfc2l6ZSgpOworfQorCit2b2lkIFNjcmlwdEdD
RXZlbnRIZWxwZXI6OmdjRXBpbG9ndWVDYWxsYmFjayh2ODo6R0NUeXBlIHR5cGUsIHY4OjpHQ0Nh
bGxiYWNrRmxhZ3MgZmxhZ3MpCit7CisgICAgQVNTRVJUKHNfZ2NSdW5FdmVudHMuc2l6ZSgpKTsK
KyAgICBpbnQgbGFzdEV2ZW50SW5kZXggPSBzX2djUnVuRXZlbnRzLnNpemUoKSAtIDE7CisgICAg
c19nY1J1bkV2ZW50c1tsYXN0RXZlbnRJbmRleF0uZW5kVGltZSA9IFdURjo6Y3VycmVudFRpbWVN
UygpOworICAgIHNfZ2NSdW5FdmVudHNbbGFzdEV2ZW50SW5kZXhdLmNvbGxlY3RlZEJ5dGVzIC09
IGdldFVzZWRIZWFwU2l6ZSgpOworfQorCit2b2lkIFNjcmlwdEdDRXZlbnRIZWxwZXI6OmdjUHJv
bG9ndWVDYWxsYmFjayh2ODo6R0NUeXBlIHR5cGUsIHY4OjpHQ0NhbGxiYWNrRmxhZ3MgZmxhZ3Mp
Cit7CisgICAgc19nY1J1bkV2ZW50cy5wdXNoX2JhY2soR0NSdW5FdmVudChXVEY6OmN1cnJlbnRU
aW1lTVMoKSwgMC4wLCBnZXRVc2VkSGVhcFNpemUoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdEdDRXZlbnRIZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wMTQ2ZjAxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRH
Q0V2ZW50SGVscGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2lmbmRlZiBTY3JpcHRHQ0V2ZW50SGVscGVyX2gKKyNkZWZpbmUgU2NyaXB0R0NFdmVudEhl
bHBlcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAidjguaCIKKyNpbmNs
dWRlIDx2ZWN0b3I+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OworCisgICAgY2xhc3MgU2NyaXB0R0NFdmVudEhlbHBlcgorICAgIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFNjcmlwdEdDRXZlbnRIZWxwZXIoKTsKKyAgICAgICAgflNjcmlw
dEdDRXZlbnRIZWxwZXIoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcHVzaENvbGxlY3RlZEdDRXZl
bnRzKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZ2V0SGVh
cFNpemUoc2l6ZV90Jiwgc2l6ZV90Jik7CisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RydWN0IEdD
UnVuRXZlbnQgeworICAgICAgICAgICAgR0NSdW5FdmVudChkb3VibGUgc3RhcnRUaW1lLCBkb3Vi
bGUgZW5kVGltZSwgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzKSAKKyAgICAgICAgICAgICAgOiBzdGFy
dFRpbWUoc3RhcnRUaW1lKSwgZW5kVGltZShlbmRUaW1lKSwgY29sbGVjdGVkQnl0ZXMoY29sbGVj
dGVkQnl0ZXMpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvdWJsZSBzdGFydFRpbWU7
CisgICAgICAgICAgICBkb3VibGUgZW5kVGltZTsKKyAgICAgICAgICAgIHNpemVfdCBjb2xsZWN0
ZWRCeXRlczsKKyAgICAgICAgfTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxHQ1J1bkV2
ZW50PiBHQ1J1bkV2ZW50czsKKyAgICAgICAgc3RhdGljIEdDUnVuRXZlbnRzIHNfZ2NSdW5FdmVu
dHM7CisgICAgICAgIHN0YXRpYyBpbnQgc19oZWxwZXJzQ291bnRlcjsKKyAgICAgICAgc3RhdGlj
IHNpemVfdCBzX3Byb2xvZ3VlQ2FsbGJhY2tJZDsKKyAgICAgICAgc3RhdGljIHNpemVfdCBzX2Vw
aWxvZ3VlQ2FsbGJhY2tJZDsKKyAgICAgICAgc3RhdGljIHZvaWQgZ2NFcGlsb2d1ZUNhbGxiYWNr
KHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncyk7CisgICAgICAgIHN0
YXRpYyB2b2lkIGdjUHJvbG9ndWVDYWxsYmFjayh2ODo6R0NUeXBlIHR5cGUsIHY4OjpHQ0NhbGxi
YWNrRmxhZ3MgZmxhZ3MpOworICAgICAgICBzdGF0aWMgc2l6ZV90IGdldFVzZWRIZWFwU2l6ZSgp
OworICAgfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICFFTkFCTEUoSU5T
UEVDVE9SKQorI2VuZGlmIC8vICFkZWZpbmVkKFNjcmlwdEdDRXZlbnRIZWxwZXJfaCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMmJmNjZlZS4u
MmZlNGI1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKQEAgLTUzLDYgKzUzLDE5IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAgIEFTU0VSVChtX2Zy
b250ZW5kKTsKIH0KIAordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NSdW5SZWNv
cmRzKCkKK3sKKyAgICBtX2djRXZlbnRIZWxwZXIucHVzaENvbGxlY3RlZEdDRXZlbnRzKHRoaXMp
OworfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEdDUnVuKGRvdWJsZSBzdGFy
dFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBzaXplX3QgY29sbGVjdGVkQnl0ZXNDb3VudCkKK3sKKyAg
ICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKG1fZnJvbnRlbmQsIHN0YXJ0VGltZSk7CisgICAgcmVjb3JkLnNldCgiZGF0YSIs
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NSdW5EYXRhKG1fZnJvbnRlbmQsIGNvbGxl
Y3RlZEJ5dGVzQ291bnQpKTsKKyAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwgZW5kVGltZSk7Cisg
ICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIEdDUnVuVGltZWxpbmVSZWNvcmRUeXBlKTsK
K30KKwogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKQog
ewogICAgIEFTU0VSVChzX2luc3RhbmNlQ291bnQpOwpAQCAtMTI2LDE0ICsxMzksMTQgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExp
bmUpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0
aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewotICAgIFNjcmlwdE9iamVj
dCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9m
cm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBTY3JpcHRPYmplY3Qg
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJv
bnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKG1fZnJvbnRlbmQsIHRp
bWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJl
Y29yZCwgVGltZXJJbnN0YWxsVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCkKIHsKLSAgICBTY3Jp
cHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVj
b3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAgU2NyaXB0
T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0
YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250
ZW5kLCB0aW1lcklkKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVyUmVt
b3ZlVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTE4MSw5ICsxOTQsMTEgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgYm9vbCBpc01haW5SZXNvdXJjZSwKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNv
bmRzKCkpOworICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3Jk
ID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQs
IFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCBp
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSwgcmVxdWVzdCkpOwogICAgIHJlY29yZC5zZXQoInR5
cGUiLCBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBzZXRIZWFw
U2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxp
bmUocmVjb3JkKTsKIH0KIApAQCAtMjA5LDE1ICsyMjQsMTcgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCiAKIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgYm9vbCBkaWRGYWlsKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVu
dFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2Ny
aXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKG1f
ZnJvbnRlbmQsIGlkZW50aWZpZXIsIGRpZEZhaWwpKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwg
UmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHNldEhlYXBTaXplU3RhdGlz
dGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQp
OwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGlt
ZUluTWlsbGlzZWNvbmRzKCkpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50
VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobV9mcm9udGVuZCwgbWVzc2FnZSkpOwogICAgIGFkZFJl
Y29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTIz
NSw4ICsyNTIsMTEgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5k
UHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW4KIH0KIAogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQs
IFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQoteworeyAgCisgICAgaWYgKHR5cGUgIT0gR0NSdW5U
aW1lbGluZVJlY29yZFR5cGUpCisgICAgICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKICAgICByZWNv
cmQuc2V0KCJ0eXBlIiwgdHlwZSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsK
ICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPmFk
ZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKICAgICBlbHNlIHsKQEAgLTI0NSw2ICsyNjUsMTUg
QEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlw
dE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmUKICAgICB9CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29yZCkKK3sK
KyAgICBzaXplX3QgdXNlZEhlYXBTaXplID0gMDsKKyAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9
IDA7CisgICAgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2V0SGVhcFNpemUodXNlZEhlYXBTaXplLCB0
b3RhbEhlYXBTaXplKTsKKyAgICByZWNvcmQuc2V0KCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNp
emUpOworICAgIHJlY29yZC5zZXQoInRvdGFsSGVhcFNpemUiLCB0b3RhbEhlYXBTaXplKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiB7CiAgICAgLy8gQW4gZW1wdHkgc3RhY2sgY291bGQg
bWVyZWx5IG1lYW4gdGhhdCB0aGUgdGltZWxpbmUgYWdlbnQgd2FzIHR1cm5lZCBvbiBpbiB0aGUg
bWlkZGxlIG9mCkBAIC0yNTUsMTkgKzI4NCwxNSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKICAg
ICAgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7CiAgICAgICAgIGVudHJ5LnJlY29yZC5z
ZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKICAgICAgICAgZW50cnkucmVjb3JkLnNldCgiY2hpbGRy
ZW4iLCBlbnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImVuZFRpbWUi
LCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgICAgICBlbnRyeS5yZWNvcmQuc2V0
KCJlbmRUaW1lIiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgICAgICBhZGRSZWNvcmRUb1Rp
bWVsaW5lKGVudHJ5LnJlY29yZCwgdHlwZSk7CiAgICAgfQogfQogCi1kb3VibGUgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6Y3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpCi17Ci0gICAgcmV0dXJu
IGN1cnJlbnRUaW1lKCkgKiAxMDAwLjA7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6cHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlw
ZSB0eXBlKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vj
b25kcygpKTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29y
ZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5k
LCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxp
bmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCks
IHR5cGUpKTsKIH0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA1NmM5MThjLi5lZTBjNTQ2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0zNSw2ICszNSw3IEBACiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKyNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50SGVscGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CkBAIC02NSw2ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVzb3VyY2VG
aW5pc2hUaW1lbGluZVJlY29yZFR5cGUgPSAxNCwKICAgICAgICAgRnVuY3Rpb25DYWxsVGltZWxp
bmVSZWNvcmRUeXBlID0gMTUsCiAgICAgICAgIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJl
Y29yZFR5cGUgPSAxNiwKKyAgICAgICAgR0NSdW5UaW1lbGluZVJlY29yZFR5cGUgPSAxNywKICAg
ICB9OwogCiAgICAgY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CkBAIC0xMTYsNiArMTE4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAg
ICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpOwogICAgICAgICAKKyAgICAgICAg
dm9pZCBkaWRHQ1J1bihkb3VibGUsIGRvdWJsZSwgc2l6ZV90KTsKKwogICAgICAgICBzdGF0aWMg
aW50IGluc3RhbmNlQ291bnQoKSB7IHJldHVybiBzX2luc3RhbmNlQ291bnQ7IH0KICAgICAgICAg
c3RhdGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKIApAQCAtMTI5LDE0ICsxMzMsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB9OwogICAgICAgICAKICAgICAgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChTY3JpcHRP
YmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0
aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29yZCk7CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgZG91
YmxlIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKTsKLQogICAgICAgICB2b2lkIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUpOwogCiAgICAgICAgIHZvaWQgYWRk
UmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKKyAg
ICAgICAgdm9pZCBwdXNoR0NSdW5SZWNvcmRzKCk7CisKICAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmQqIG1fZnJvbnRlbmQ7CisgICAgICAgIFNjcmlwdEdDRXZlbnRIZWxwZXIgbV9nY0V2ZW50SGVs
cGVyOwogCiAgICAgICAgIFZlY3RvcjwgVGltZWxpbmVSZWNvcmRFbnRyeSA+IG1fcmVjb3JkU3Rh
Y2s7CiAgICAgICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggMmFkMDg5ZC4uMWZhMDVlYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC01OCw2ICs1
OCwxMyBAQCBTY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiBmcm9udAogICAgIHJldHVybiByZWNvcmQ7CiB9CiAK
K1NjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkK
K3sKKyAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsK
KyAgICBkYXRhLnNldCgidXNlZEhlYXBTaXplRGVsdGEiLCB1c2VkSGVhcFNpemVEZWx0YSk7Cisg
ICAgcmV0dXJuIGRhdGE7Cit9CisKIFNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25z
dCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewogICAgIFNjcmlwdE9iamVj
dCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9XZWJDb3JlL2luc3BlY3Rvci9U
aW1lbGluZVJlY29yZEZhY3RvcnkuaAppbmRleCA4ZGFmOTE1Li4yMjA1MDAwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAtNDYsNiArNDYsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZUdlbmVyaWNSZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqLCBkb3VibGUgc3RhcnRUaW1l
KTsKIAorICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdDUnVuRGF0YShJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CisK
ICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7
CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJ
bnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2ZW50Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qb3BvdmVyLmpzCmluZGV4IDQ2NDQxNmQuLjg0OGM5OWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qb3BvdmVyLmpzCkBAIC0yMjEsNyArMjIxLDggQEAgV2ViSW5zcGVjdG9yLlBvcG92
ZXJIZWxwZXIucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsK
IAogICAgICAgICB0aGlzLl9wb3B1cCA9IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAg
ICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3Zl
IiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICBp
ZiAodGhpcy5fcG9wdXApCisgICAgICAgICAgICB0aGlzLl9wb3B1cC5jb250ZW50RWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIuYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIF9raWxsSGlkZVBvcHVwVGltZXI6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFn
ZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKaW5k
ZXggMTNmOTM3Zi4uZDNlOGIyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lQWdlbnQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lQWdlbnQuanMKQEAgLTUwLDcgKzUwLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdl
bnQuUmVjb3JkVHlwZSA9IHsKICAgICBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzLAogICAg
IFJlc291cmNlRmluaXNoIDogMTQsCiAgICAgRnVuY3Rpb25DYWxsIDogMTUsCi0gICAgUmVzb3Vy
Y2VSZWNlaXZlRGF0YTogMTYKKyAgICBSZXNvdXJjZVJlY2VpdmVEYXRhOiAxNiwKKyAgICBHQ1J1
biA6IDE3CiB9OwogCiBXZWJJbnNwZWN0b3IuYWRkUmVjb3JkVG9UaW1lbGluZSA9IGZ1bmN0aW9u
KHJlY29yZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cwppbmRleCAwMTdmM2FhLi5jMzk2YWI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMTUxLDYgKzE1MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRU
eXBlcy5SZXNvdXJjZUZpbmlzaF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZp
bmlzaCBMb2FkaW5nIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OwogICAg
ICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZ1bmN0aW9uQ2FsbF0gPSB7IHRpdGxl
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENhbGwiKSwgY2F0ZWdvcnk6IHRoaXMu
Y2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRU
eXBlcy5SZXNvdXJjZVJlY2VpdmVEYXRhXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUmVjZWl2ZSBEYXRhIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9Owor
ICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkdDUnVuXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiR0MgUnVuIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMu
c2NyaXB0aW5nIH07CiAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNBcnJheSA9IHJlY29y
ZFN0eWxlczsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVzQXJy
YXk7CkBAIC03MjUsNiArNzI2LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0
dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY28KICAgICB0aGlz
Lm9yaWdpbmFsUmVjb3JkRm9yVGVzdHMgPSByZWNvcmQ7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHRO
YW1lID0gcmVjb3JkLmNhbGxlclNjcmlwdE5hbWU7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHRMaW5l
ID0gcmVjb3JkLmNhbGxlclNjcmlwdExpbmU7CisgICAgdGhpcy50b3RhbEhlYXBTaXplID0gcmVj
b3JkLnRvdGFsSGVhcFNpemU7CisgICAgdGhpcy51c2VkSGVhcFNpemUgPSByZWNvcmQudXNlZEhl
YXBTaXplOwogCiAgICAgLy8gTWFrZSByZXNvdXJjZSByZWNlaXZlIHJlY29yZCBsYXN0IHNpbmNl
IHJlcXVlc3Qgd2FzIHNlbnQ7IG1ha2UgZmluaXNoIHJlY29yZCBsYXN0IHNpbmNlIHJlc3BvbnNl
IHJlY2VpdmVkLgogICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuUmVzb3VyY2VT
ZW5kUmVxdWVzdCkgewpAQCAtODE3LDcgKzgyMCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgY29uc3QgcmVjb3Jk
VHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlOwogICAgICAgICBp
ZiAodGhpcy5kZXRhaWxzKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSByZWNvcmRU
eXBlcy5UaW1lckluc3RhbGwgfHwKKyAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IHJlY29y
ZFR5cGVzLkdDUnVuICkKKyAgICAgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5k
Q2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29sbGVjdGVkIiks
IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0YS51c2VkSGVhcFNpemVEZWx0YSkpKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxs
IHx8CiAgICAgICAgICAgICAgICAgdGhpcy50eXBlID09PSByZWNvcmRUeXBlcy5UaW1lckZpcmUg
fHwKICAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVyUmVtb3Zl
KSB7CiAgICAgICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVyIElkIiksIHRoaXMuZGF0YS50
aW1lcklkKSk7CkBAIC04NTYsMTYgKzg2MSwyMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJlY29yZENv
bnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJEZXRhaWxzIiksIHRoaXMuZGV0YWlscykpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KHRoaXMuY2FsbGVyU2NyaXB0TmFtZSkgeworICAgICAgICBpZiAodGhpcy50eXBlICE9PSByZWNv
cmRUeXBlcy5HQ1J1biAmJiB0aGlzLmNhbGxlclNjcmlwdE5hbWUpIHsKICAgICAgICAgICAgIHZh
ciBsaW5rID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLmNhbGxlclNj
cmlwdE5hbWUsICJzY3JpcHRzIiwgdGhpcy5jYWxsZXJTY3JpcHRMaW5lKTsKICAgICAgICAgICAg
IHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVMaW5rUm93KFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQ2FsbGVyIiksIGxpbmspKTsKICAgICAgICAgfQorICAgICAgICBp
ZiAodGhpcy51c2VkSGVhcFNpemUpIHsKKyAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5h
cHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVc2VkIEhl
YXAgU2l6ZSIpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnVzZWRIZWFwU2l6ZSkpKTsKKyAg
ICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3co
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUb3RhbCBIZWFwIFNpemUiKSwgTnVtYmVyLmJ5dGVzVG9T
dHJpbmcodGhpcy50b3RhbEhlYXBTaXplKSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBy
ZWNvcmRDb250ZW50VGFibGU7CiAgICAgfSwKIAogICAgIF9nZXRSZWNvcmREZXRhaWxzOiBmdW5j
dGlvbihyZWNvcmQsIHNlbmRSZXF1ZXN0UmVjb3JkcykKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
cmVjb3JkLnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdl
bnQuUmVjb3JkVHlwZS5HQ1J1bjoKKyAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlcyBjb2xsZWN0ZWQiLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyhyZWNvcmQuZGF0
YS51c2VkSGVhcFNpemVEZWx0YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkZ1bmN0aW9uQ2FsbDoKICAgICAgICAgICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHJlY29yZC5kYXRhLnNjcmlwdE5hbWUp
ICsgIjoiICsgcmVjb3JkLmRhdGEuc2NyaXB0TGluZTsKICAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5FdmVudERpc3BhdGNoOgo=
</data>
<flag name="review"
          id="35991"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52555</attachid>
            <date>2010-04-05 12:08:20 -0700</date>
            <delta_ts>2010-04-06 02:12:01 -0700</delta_ts>
            <desc>[patch] Third iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>43796</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYjMyYTk4Li41YjJjYTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMyAgQW50b25pbyBHb21l
cyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0ZWQg
cmVzdWx0cyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCAyMjE5M2JiLi44YjJjNDcxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTE5LDQgKzE5LDUgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlRmluaXNoIDogMTQKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rpb25DYWxsIDogMTUKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlRGF0YSA6IDE2
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuIDogMTcKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRj
aC1leHBlY3RlZC50eHQKaW5kZXggYTUyODExMy4uZGNkNzAxMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQu
dHh0CkBAIC05LDQgKzksNiBAQCBFdmVudERpc3BhdGNoIFByb3BlcnRpZXM6CiArIGNoaWxkcmVu
IDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiAwCisrIHVz
ZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQu
dHh0CmluZGV4IDAzMGFlNTkuLmNiYzhkNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBMYXlvdXQg
UHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJ
TkVEICoKICsgdHlwZSA6IDEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dAppbmRleCAz
MTFhNDNkLi42NzUwMzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CkBAIC02LDQgKzYsNiBAQCBNYXJr
VGltZWxpbmUgUHJvcGVydGllczoKICstIG1lc3NhZ2UgOiBNQVJLIFRJTUVMSU5FCiArIH0KICsg
dHlwZSA6IDExCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUg
OiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggZTMwYzAwYy4uYzI1
MGY0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsOCBAQCBSZXNvdXJj
ZVNlbmRSZXF1ZXN0IFByb3BlcnRpZXM6CiArLSBpc01haW5SZXNvdXJjZSA6IGZhbHNlCiArIH0K
ICsgdHlwZSA6IDEyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgog
KyBzdGFydFRpbWUgOiAqIERFRklORUQgKgpAQCAtMjMsNiArMjUsOCBAQCBSZXNvdXJjZVJlY2Vp
dmVSZXNwb25zZSBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRp
bWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMTMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVE
ICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlRmluaXNoIFByb3Bl
cnRpZXM6CiArIHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0zMiw0ICszNiw2IEBAIFJlc291
cmNlRmluaXNoIFByb3BlcnRpZXM6CiArLSB1cmwgOiAqIERFRklORUQgKgogKyB9CiArIHR5cGUg
OiAxNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIFNjcmlwdCByZXNvdXJjZSBsb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IGMxYTBlNDUuLjZiMzkzZmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dApAQCAtMTEsNCArMTEsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICog
REVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMworKyB1c2VkSGVh
cFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0CmluZGV4IDU3OWQzYzEuLjUwYTQzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKQEAgLTEwLDQgKzEw
LDYgQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsg
ZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiA0CisrIHVzZWRIZWFwU2l6ZSA6ICogREVG
SU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1z
dHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAzMDRkMzYuLmEzNWM1Y2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHls
ZXMtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBSZWNhbGN1bGF0ZVN0eWxlcyBQcm9wZXJ0
aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgog
KyB0eXBlIDogMgorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXpl
IDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAppbmRleCBiZGZhNWI0Li5l
ZjgwZmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0
LXRhZy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBAQCBFdmFsdWF0ZVNjcmlw
dCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMTAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90
YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKaW5kZXggYWNkN2YxNy4u
ODdkNzU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlw
dC10YWctMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKQEAgLTksNCArOSw2IEBAIEV2YWx1YXRlU2NyaXB0
IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVG
SU5FRCAqCiArIHR5cGUgOiAxMAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVz
dC5qcwppbmRleCA4MTEwMzEyLi5kM2M3MGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtdGVzdC5qcwpAQCAtMTEsNiArMTEsOCBAQCB2YXIgdGltZWxpbmVOb25EZXRlcm1pbmlzdGlj
UHJvcHMgPSB7CiAgICAgY2FsbGVyU2NyaXB0TmFtZTogMSwKICAgICBjYWxsZXJTY3JpcHRMaW5l
OiAxLAogICAgIHVybCA6IDEsCisgICAgdXNlZEhlYXBTaXplOiAxLAorICAgIHRvdGFsSGVhcFNp
emU6IDEsCiAgICAgbWltZVR5cGUgOiAxCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3Iv
dGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CmluZGV4IDFhZmQyYjkuLjQzMWVh
YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0
b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0CkBAIC0xMSw0ICsxMSw2IEBAIEV2ZW50RGlzcGF0Y2ggUHJvcGVydGllczoK
ICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlw
ZSA6IDAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICog
REVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxp
bmUtZXhwZWN0ZWQudHh0CmluZGV4IGRmMjg0ZDguLjQyMTNhNWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1l
bGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4
LDYgQEAgTWFya1RpbWVsaW5lIFByb3BlcnRpZXM6CiArLSBtZXNzYWdlIDogTUFSSyBUSU1FTElO
RQogKyB9CiArIHR5cGUgOiAxMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGlt
ZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggMzA2ZTM4Yy4uNjU1M2Fh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rv
ci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0CkBAIC0xMiw2ICsxMiw4IEBAIFJlc291cmNlU2VuZFJlcXVlc3QgUHJv
cGVydGllczoKICstIGlzTWFpblJlc291cmNlIDogZmFsc2UKICsgfQogKyB0eXBlIDogMTIKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3BlcnRpZXM6CiArIHN0YXJ0VGltZSA6ICog
REVGSU5FRCAqCkBAIC0yNSw2ICsyNyw4IEBAIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAxMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBT
aXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VGaW5pc2ggUHJvcGVydGllczoKICsgc3RhcnRU
aW1lIDogKiBERUZJTkVEICoKQEAgLTM0LDQgKzM4LDYgQEAgUmVzb3VyY2VGaW5pc2ggUHJvcGVy
dGllczoKICstIHVybCA6ICogREVGSU5FRCAqCiArIH0KICsgdHlwZSA6IDE0CisrIHVzZWRIZWFw
U2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogU2NyaXB0
IHJlc291cmNlIGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dAppbmRleCAyMDJiZWU4Li5iNTY4YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5l
LXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMTMsNCArMTMsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgog
KyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBl
IDogMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggODgyYzk3NS4uZDRmNzRhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9y
L3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0xMiw0ICsxMiw2IEBAIFBhcnNl
SFRNTCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAq
IERFRklORUQgKgogKyB0eXBlIDogNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0
b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjcxMTBmLi45MTQ4MzUyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDEwLTA0LTA1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBUaGUgSlMgY29kZSBjYW4gYmUgbm90IG9wdGltYWwgZnJvbSBtZW1v
cnkgdXNhZ2UgcG9pbnQgb2Ygdmlldy4KKyAgICAgICAgQXMgZXhhbXBsZSBpdCBjYW4gZ2VuZXJh
dGUgYSBsb3Qgb2YgdGVtcCBvYmplY3RzIGFuZCBHQyB3aWxsIHNwZW5kIHNpZ25pZmljYW50IHRp
bWUgdG8gY29sbGVjdCB0aGVzZSBvYmplY3RzLgorICAgICAgICBHQ1J1biBldmVudCB3aWxsIHNo
b3cgdXMgdGhlc2UgbW9tZW50cy4gQWxzbyBlYWNoIGV2ZW50IGNhbiBzaG93IHVzIGhvdyBtdWNo
IG1lbW9yeSBpcyBpbiB1c2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzAyNQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudEhl
bHBlci5oCisgICAgICAgICogV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVy
LmgKKyAgICAgICAgKiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3Bw
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDUnVuUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRHQ1J1bik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVu
dFJlY29yZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdDUnVuRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5fbW91c2VIb3Zlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJh
dGVQb3B1cENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2V0UmVjb3JkRGV0YWlscyk6CisKIDIwMTAtMDMtMjkg
IEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDczZjA3NDliOWI4M2JhNzVmN2Y5YTliMTliM2M4NDk4ZDUyM2NlNzIuLjJkOGVi
N2VkMGQzNjMxZjdhOTgwN2I1MGEwZDA0MjM2Njg3MGJkMjUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0
Y2gKZGVsdGEgMjIyCnpjbWNieW5DYU1aclZUZUhQUFAkSzVle1cyVz1MZzdWTmhXMzBNZHlKMXE9
JDReVzgtU0Z+bGRJX2NScF5WYVI3Rgp6MGprUERTM2h9SEFRdmF4NDNPSCU3cjVFRGxZIzFVZkgw
TElkR2JYVTttSCVZKj81dH03KW1CSDh0Nnw+NU15Q1MKblFwTXx4Jjs/UFU8PDgmP3ZAd1hHbHAm
OG5pNkl1cXdncUEoMjJeb3QxfSs4d2I9QCtYCgpkZWx0YSA5ClJjbVhATW9heDQ1clZUZUgwc3Q3
QDFxSntCCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAyMzE2ODQ0Li4xZTU2NTJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIwLDYgKzgyMCw4IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnRIZWxwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0SW5z
dGFuY2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRJbnN0YW5jZS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQzYWZmOTEu
LjdjMjk5YTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtMTA4Miw2ICsxMDgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRFdmVudExp
c3RlbmVyLmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oIFwKKyAgICBi
aW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmggXAogICAgIGJpbmRpbmdzL2pzL1Njcmlw
dE9iamVjdC5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggXAogICAgIGJp
bmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdEdDRXZlbnRIZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
OTQwYjI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2
ZW50SGVscGVyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0R0NFdmVudEhlbHBlcl9o
CisjZGVmaW5lIFNjcmlwdEdDRXZlbnRIZWxwZXJfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2NyaXB0R0NFdmVudEhlbHBlcgoreworcHVi
bGljOgorICAgIFNjcmlwdEdDRXZlbnRIZWxwZXIoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCope30K
KyAgICBzdGF0aWMgdm9pZCBnZXRIZWFwU2l6ZShzaXplX3QmLCBzaXplX3QmKSB7fQorfTsKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQorI2Vu
ZGlmIC8vICFkZWZpbmVkKFNjcmlwdEdDRXZlbnRIZWxwZXJfaCkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI2YWI5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnRIZWxwZXIuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjaW5jbHVkZSAiU2NyaXB0R0NFdmVudEhlbHBlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitTY3JpcHRHQ0V2ZW50SGVscGVyOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
cyBTY3JpcHRHQ0V2ZW50SGVscGVyOjpzX3RpbWVsaW5lQWdlbnRzOworaW50IFNjcmlwdEdDRXZl
bnRIZWxwZXI6OnNfaGVscGVyc0NvdW50ZXIgPSAwOworZG91YmxlIFNjcmlwdEdDRXZlbnRIZWxw
ZXI6OnNfc3RhcnRUaW1lID0gMC4wOworc2l6ZV90IFNjcmlwdEdDRXZlbnRIZWxwZXI6OnNfdXNl
ZEhlYXBTaXplID0gMDsKKworU2NyaXB0R0NFdmVudEhlbHBlcjo6U2NyaXB0R0NFdmVudEhlbHBl
cihJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50KQoreworICAgIG1fdGltZWxp
bmVBZ2VudCA9IHRpbWVsaW5lQWdlbnQ7CisgICAgc190aW1lbGluZUFnZW50cy5hcHBlbmQodGlt
ZWxpbmVBZ2VudCk7CisgICAgKytzX2hlbHBlcnNDb3VudGVyOworICAgIGlmIChzX2hlbHBlcnND
b3VudGVyID09IDEpIHsKKyAgICAgICAgdjg6OlY4OjpBZGRHQ1Byb2xvZ3VlQ2FsbGJhY2soZ2NQ
cm9sb2d1ZUNhbGxiYWNrKTsKKyAgICAgICAgdjg6OlY4OjpBZGRHQ0VwaWxvZ3VlQ2FsbGJhY2so
Z2NFcGlsb2d1ZUNhbGxiYWNrKTsKKyAgICB9Cit9CisKK1NjcmlwdEdDRXZlbnRIZWxwZXI6On5T
Y3JpcHRHQ0V2ZW50SGVscGVyKCkKK3sKKyAgICBBU1NFUlQoc19oZWxwZXJzQ291bnRlcik7Cisg
ICAgLS1zX2hlbHBlcnNDb3VudGVyOworICAgIGlmICghc19oZWxwZXJzQ291bnRlcikgeworICAg
ICAgICB2ODo6Vjg6OlJlbW92ZUdDUHJvbG9ndWVDYWxsYmFjayhnY1Byb2xvZ3VlQ2FsbGJhY2sp
OworICAgICAgICB2ODo6Vjg6OlJlbW92ZUdDRXBpbG9ndWVDYWxsYmFjayhnY0VwaWxvZ3VlQ2Fs
bGJhY2spOworICAgIH0KKyAgICBzaXplX3QgaSA9IHNfdGltZWxpbmVBZ2VudHMuZmluZChtX3Rp
bWVsaW5lQWdlbnQpOworICAgIEFTU0VSVChpICE9IG5vdEZvdW5kKTsKKyAgICBzX3RpbWVsaW5l
QWdlbnRzLnJlbW92ZShpKTsKK30KKwordm9pZCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpnZXRIZWFw
U2l6ZShzaXplX3QmIHVzZWRIZWFwU2l6ZSwgc2l6ZV90JiB0b3RhbEhlYXBTaXplKQoreworICAg
IHY4OjpIZWFwU3RhdGlzdGljcyBoZWFwU3RhdGlzdGljczsKKyAgICB2ODo6Vjg6OkdldEhlYXBT
dGF0aXN0aWNzKCZoZWFwU3RhdGlzdGljcyk7CisgICAgdXNlZEhlYXBTaXplID0gaGVhcFN0YXRp
c3RpY3MudXNlZF9oZWFwX3NpemUoKTsKKyAgICB0b3RhbEhlYXBTaXplID0gaGVhcFN0YXRpc3Rp
Y3MudG90YWxfaGVhcF9zaXplKCk7Cit9CisKK3NpemVfdCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpn
ZXRVc2VkSGVhcFNpemUoKQoreworICAgIHY4OjpIZWFwU3RhdGlzdGljcyBoZWFwU3RhdGlzdGlj
czsKKyAgICB2ODo6Vjg6OkdldEhlYXBTdGF0aXN0aWNzKCZoZWFwU3RhdGlzdGljcyk7CisgICAg
cmV0dXJuIGhlYXBTdGF0aXN0aWNzLnVzZWRfaGVhcF9zaXplKCk7Cit9CisKK3ZvaWQgU2NyaXB0
R0NFdmVudEhlbHBlcjo6Z2NFcGlsb2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdD
Q2FsbGJhY2tGbGFncyBmbGFncykKK3sKKyAgICBkb3VibGUgZW5kVGltZSA9IFdURjo6Y3VycmVu
dFRpbWVNUygpOworICAgIHNpemVfdCBjb2xsZWN0ZWRCeXRlcyA9IHNfdXNlZEhlYXBTaXplIC0g
Z2V0VXNlZEhlYXBTaXplKCk7CisgICAgZm9yIChJbnNwZWN0b3JUaW1lbGluZUFnZW50czo6aXRl
cmF0b3IgaSA9IHNfdGltZWxpbmVBZ2VudHMuYmVnaW4oKTsgaSAhPSBzX3RpbWVsaW5lQWdlbnRz
LmVuZCgpOyArK2kpCisgICAgICAgICgqaSktPmRpZEdDUnVuKHNfc3RhcnRUaW1lLCBlbmRUaW1l
LCBjb2xsZWN0ZWRCeXRlcyk7Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2NQcm9s
b2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncykK
K3sKKyAgICBzX3N0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWVNUygpOworICAgIHNfdXNlZEhl
YXBTaXplID0gZ2V0VXNlZEhlYXBTaXplKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
R0NFdmVudEhlbHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NmY1
ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRI
ZWxwZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgor
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZu
ZGVmIFNjcmlwdEdDRXZlbnRIZWxwZXJfaAorI2RlZmluZSBTY3JpcHRHQ0V2ZW50SGVscGVyX2gK
KworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJ2OC5oIgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDsKKworY2xhc3MgU2NyaXB0R0NFdmVudEhlbHBlcgoreworcHVibGljOgorICAgIFNj
cmlwdEdDRXZlbnRIZWxwZXIoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCopOworICAgIH5TY3JpcHRH
Q0V2ZW50SGVscGVyKCk7CisgICAgc3RhdGljIHZvaWQgZ2V0SGVhcFNpemUoc2l6ZV90Jiwgc2l6
ZV90Jik7Citwcml2YXRlOgorICAgIHR5cGVkZWYgVmVjdG9yPCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KiA+IEluc3BlY3RvclRpbWVsaW5lQWdlbnRzOworICAgIHN0YXRpYyBJbnNwZWN0b3JUaW1l
bGluZUFnZW50cyBzX3RpbWVsaW5lQWdlbnRzOworICAgIHN0YXRpYyBkb3VibGUgc19zdGFydFRp
bWU7CisgICAgc3RhdGljIHNpemVfdCBzX3VzZWRIZWFwU2l6ZTsKKyAgICBzdGF0aWMgaW50IHNf
aGVscGVyc0NvdW50ZXI7CisKKyAgICBzdGF0aWMgdm9pZCBnY0VwaWxvZ3VlQ2FsbGJhY2sodjg6
OkdDVHlwZSB0eXBlLCB2ODo6R0NDYWxsYmFja0ZsYWdzIGZsYWdzKTsKKyAgICBzdGF0aWMgdm9p
ZCBnY1Byb2xvZ3VlQ2FsbGJhY2sodjg6OkdDVHlwZSB0eXBlLCB2ODo6R0NDYWxsYmFja0ZsYWdz
IGZsYWdzKTsKKyAgICBzdGF0aWMgc2l6ZV90IGdldFVzZWRIZWFwU2l6ZSgpOworICAgIAorICAg
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fdGltZWxpbmVBZ2VudDsKK307Cit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhRU5BQkxFKElOU1BFQ1RPUikKKyNlbmRpZiAvLyAh
ZGVmaW5lZChTY3JpcHRHQ0V2ZW50SGVscGVyX2gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDJiZjY2ZWUuLjYwNTYzMGYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC00NywxMiArNDcsMjgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogaW50IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNfaW5z
dGFuY2VDb3VudCA9IDA7CiAKIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQotICAgIDogbV9mcm9udGVuZChm
cm9udGVuZCkKKyAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpLCBtX2djRXZlbnRIZWxwZXIodGhp
cykKIHsKICAgICArK3NfaW5zdGFuY2VDb3VudDsKICAgICBBU1NFUlQobV9mcm9udGVuZCk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDUnVuUmVjb3JkcygpCit7Cisg
ICAgZm9yIChHQ1J1bkV2ZW50czo6aXRlcmF0b3IgaSA9IG1fZ2NSdW5FdmVudHMuYmVnaW4oKTsg
aSAhPSBtX2djUnVuRXZlbnRzLmVuZCgpOyArK2kpIHsKKyAgICAgICAgU2NyaXB0T2JqZWN0IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250
ZW5kLCBpLT5zdGFydFRpbWUpOworICAgICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ1J1bkRhdGEobV9mcm9udGVuZCwgaS0+Y29sbGVjdGVkQnl0
ZXMpKTsKKyAgICAgICAgcmVjb3JkLnNldCgiZW5kVGltZSIsIGktPmVuZFRpbWUpOworICAgICAg
ICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgR0NSdW5UaW1lbGluZVJlY29yZFR5cGUpOwor
ICAgIH0KKyAgICBtX2djUnVuRXZlbnRzLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkR0NSdW4oZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIHNp
emVfdCBjb2xsZWN0ZWRCeXRlc0NvdW50KQoreworICAgIG1fZ2NSdW5FdmVudHMuYXBwZW5kKEdD
UnVuRXZlbnQoc3RhcnRUaW1lLCBlbmRUaW1lLCBjb2xsZWN0ZWRCeXRlc0NvdW50KSk7Cit9CisK
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6On5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCkKIHsKICAg
ICBBU1NFUlQoc19pbnN0YW5jZUNvdW50KTsKQEAgLTEyNiwxNCArMTQyLDE0IEBAIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5lKQog
CiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJ
ZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29y
ZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5k
LCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShtX2Zyb250ZW5kLCB0aW1lcklk
LCB0aW1lb3V0LCBzaW5nbGVTaG90KSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQs
IFRpbWVySW5zdGFsbFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpCiB7Ci0gICAgU2NyaXB0T2Jq
ZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCht
X2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIFNjcmlwdE9iamVj
dCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9m
cm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEobV9mcm9udGVuZCwg
dGltZXJJZCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lclJlbW92ZVRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CkBAIC0xODEsOSArMTk3LDExIEBAIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGJvb2wgaXNNYWluUmVzb3VyY2UsCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygp
KTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEobV9mcm9udGVuZCwgaWRlbnRp
ZmllciwgaXNNYWluUmVzb3VyY2UsIHJlcXVlc3QpKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwg
UmVzb3VyY2VTZW5kUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgc2V0SGVhcFNpemVT
dGF0aXN0aWMocmVjb3JkKTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJl
Y29yZCk7CiB9CiAKQEAgLTIwOSwxNSArMjI3LDE3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoKQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGJvb2wgZGlkRmFpbCkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1l
SW5NaWxsaXNlY29uZHMoKSk7CisgICAgcHVzaEdDUnVuUmVjb3JkcygpOworICAgIFNjcmlwdE9i
amVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
bV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEi
LCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShtX2Zyb250
ZW5kLCBpZGVudGlmaWVyLCBkaWRGYWlsKSk7CiAgICAgcmVjb3JkLnNldCgidHlwZSIsIFJlc291
cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhy
ZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1p
bGxpc2Vjb25kcygpKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVN
UygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVNYXJrVGltZWxpbmVEYXRhKG1fZnJvbnRlbmQsIG1lc3NhZ2UpKTsKICAgICBhZGRSZWNvcmRU
b1RpbWVsaW5lKHJlY29yZCwgTWFya1RpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CkBAIC0yMzUsOCAr
MjU1LDExIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5
T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuCiB9CiAKIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3QgcmVjb3JkLCBUaW1l
bGluZVJlY29yZFR5cGUgdHlwZSkKLXsKK3sgIAorICAgIGlmICh0eXBlICE9IEdDUnVuVGltZWxp
bmVSZWNvcmRUeXBlKQorICAgICAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CiAgICAgcmVjb3JkLnNl
dCgidHlwZSIsIHR5cGUpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAg
aWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQogICAgICAgICBtX2Zyb250ZW5kLT5hZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCk7CiAgICAgZWxzZSB7CkBAIC0yNDUsNiArMjY4LDE1IEBAIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmpl
Y3QgcmVjb3JkLCBUaW1lbGluZVJlCiAgICAgfQogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpCit7CisgICAg
c2l6ZV90IHVzZWRIZWFwU2l6ZSA9IDA7CisgICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwor
ICAgIFNjcmlwdEdDRXZlbnRIZWxwZXI6OmdldEhlYXBTaXplKHVzZWRIZWFwU2l6ZSwgdG90YWxI
ZWFwU2l6ZSk7CisgICAgcmVjb3JkLnNldCgidXNlZEhlYXBTaXplIiwgdXNlZEhlYXBTaXplKTsK
KyAgICByZWNvcmQuc2V0KCJ0b3RhbEhlYXBTaXplIiwgdG90YWxIZWFwU2l6ZSk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkVHlwZSB0eXBlKQogewogICAgIC8vIEFuIGVtcHR5IHN0YWNrIGNvdWxkIG1lcmVs
eSBtZWFuIHRoYXQgdGhlIHRpbWVsaW5lIGFnZW50IHdhcyB0dXJuZWQgb24gaW4gdGhlIG1pZGRs
ZSBvZgpAQCAtMjU1LDE5ICsyODcsMTUgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAgICAgICAg
IEFTU0VSVChlbnRyeS50eXBlID09IHR5cGUpOwogICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJk
YXRhIiwgZW50cnkuZGF0YSk7CiAgICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImNoaWxkcmVuIiwg
ZW50cnkuY2hpbGRyZW4pOwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1lIiwgY3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZW5k
VGltZSIsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGlu
ZShlbnRyeS5yZWNvcmQsIHR5cGUpOwogICAgIH0KIH0KIAotZG91YmxlIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKQotewotICAgIHJldHVybiBjdXJy
ZW50VGltZSgpICogMTAwMC4wOwotfQotCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1
c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCBkYXRhLCBUaW1lbGluZVJlY29yZFR5cGUgdHlw
ZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMo
KSk7CisgICAgcHVzaEdDUnVuUmVjb3JkcygpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RG
OjpjdXJyZW50VGltZU1TKCkpOwogICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVj
b3JkRW50cnkocmVjb3JkLCBkYXRhLCBtX2Zyb250ZW5kLT5uZXdTY3JpcHRBcnJheSgpLCB0eXBl
KSk7CiB9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmgKaW5kZXggNTZjOTE4Yy4uZGYxMmI3YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMzUsMTEyICszNSwxMzIgQEAKIAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgorI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRIZWxwZXIuaCIKICNpbmNsdWRlICJTY3JpcHRPYmpl
Y3QuaCIKICNpbmNsdWRlICJTY3JpcHRBcnJheS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEV2ZW50OwotICAgIGNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kOwotICAgIGNsYXNzIEludFJlY3Q7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci0KLSAgICAvLyBNdXN0IGJlIGtlcHQg
aW4gc3luYyB3aXRoIFRpbWVsaW5lQWdlbnQuanMKLSAgICBlbnVtIFRpbWVsaW5lUmVjb3JkVHlw
ZSB7Ci0gICAgICAgIEV2ZW50RGlzcGF0Y2hUaW1lbGluZVJlY29yZFR5cGUgPSAwLAotICAgICAg
ICBMYXlvdXRUaW1lbGluZVJlY29yZFR5cGUgPSAxLAotICAgICAgICBSZWNhbGN1bGF0ZVN0eWxl
c1RpbWVsaW5lUmVjb3JkVHlwZSA9IDIsCi0gICAgICAgIFBhaW50VGltZWxpbmVSZWNvcmRUeXBl
ID0gMywKLSAgICAgICAgUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBlID0gNCwKLSAgICAgICAg
VGltZXJJbnN0YWxsVGltZWxpbmVSZWNvcmRUeXBlID0gNSwKLSAgICAgICAgVGltZXJSZW1vdmVU
aW1lbGluZVJlY29yZFR5cGUgPSA2LAotICAgICAgICBUaW1lckZpcmVUaW1lbGluZVJlY29yZFR5
cGUgPSA3LAotICAgICAgICBYSFJSZWFkeVN0YXRlQ2hhbmdlUmVjb3JkVHlwZSA9IDgsCi0gICAg
ICAgIFhIUkxvYWRSZWNvcmRUeXBlID0gOSwKLSAgICAgICAgRXZhbHVhdGVTY3JpcHRUaW1lbGlu
ZVJlY29yZFR5cGUgPSAxMCwKLSAgICAgICAgTWFya1RpbWVsaW5lUmVjb3JkVHlwZSA9IDExLAot
ICAgICAgICBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlID0gMTIsCi0gICAg
ICAgIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlVGltZWxpbmVSZWNvcmRUeXBlID0gMTMsCi0gICAg
ICAgIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlID0gMTQsCi0gICAgICAgIEZ1bmN0
aW9uQ2FsbFRpbWVsaW5lUmVjb3JkVHlwZSA9IDE1LAotICAgICAgICBSZWNlaXZlUmVzb3VyY2VE
YXRhVGltZWxpbmVSZWNvcmRUeXBlID0gMTYsCi0gICAgfTsKLQotICAgIGNsYXNzIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQgOiBwdWJsaWMgTm9uY29weWFibGUgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOwot
ICAgICAgICB+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwotCi0gICAgICAgIHZvaWQgcmVzZXQo
KTsKLSAgICAgICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRl
bmQqKTsKLQotICAgICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCi0gICAgICAg
IHZvaWQgd2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKTsKLSAgICAgICAgdm9pZCBkaWRDYWxsRnVuY3Rpb24oKTsKLQotICAgICAgICB2b2lk
IHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50Jik7Ci0gICAgICAgIHZvaWQgZGlkRGlzcGF0
Y2hFdmVudCgpOwotCi0gICAgICAgIHZvaWQgd2lsbExheW91dCgpOwotICAgICAgICB2b2lkIGRp
ZExheW91dCgpOwotCi0gICAgICAgIHZvaWQgd2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKLSAgICAg
ICAgdm9pZCBkaWRSZWNhbGN1bGF0ZVN0eWxlKCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsUGFpbnQo
Y29uc3QgSW50UmVjdCYpOwotICAgICAgICB2b2lkIGRpZFBhaW50KCk7Ci0KLSAgICAgICAgdm9p
ZCB3aWxsV3JpdGVIVE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExp
bmUpOwotICAgICAgICB2b2lkIGRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSk7Citj
bGFzcyBFdmVudDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW50UmVjdDsKK2Ns
YXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CisKKy8vIE11c3Qg
YmUga2VwdCBpbiBzeW5jIHdpdGggVGltZWxpbmVBZ2VudC5qcworZW51bSBUaW1lbGluZVJlY29y
ZFR5cGUgeworICAgIEV2ZW50RGlzcGF0Y2hUaW1lbGluZVJlY29yZFR5cGUgPSAwLAorICAgIExh
eW91dFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEsCisgICAgUmVjYWxjdWxhdGVTdHlsZXNUaW1lbGlu
ZVJlY29yZFR5cGUgPSAyLAorICAgIFBhaW50VGltZWxpbmVSZWNvcmRUeXBlID0gMywKKyAgICBQ
YXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUgPSA0LAorICAgIFRpbWVySW5zdGFsbFRpbWVsaW5l
UmVjb3JkVHlwZSA9IDUsCisgICAgVGltZXJSZW1vdmVUaW1lbGluZVJlY29yZFR5cGUgPSA2LAor
ICAgIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDcsCisgICAgWEhSUmVhZHlTdGF0ZUNo
YW5nZVJlY29yZFR5cGUgPSA4LAorICAgIFhIUkxvYWRSZWNvcmRUeXBlID0gOSwKKyAgICBFdmFs
dWF0ZVNjcmlwdFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEwLAorICAgIE1hcmtUaW1lbGluZVJlY29y
ZFR5cGUgPSAxMSwKKyAgICBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlID0g
MTIsCisgICAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUgPSAxMywK
KyAgICBSZXNvdXJjZUZpbmlzaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDE0LAorICAgIEZ1bmN0aW9u
Q2FsbFRpbWVsaW5lUmVjb3JkVHlwZSA9IDE1LAorICAgIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1l
bGluZVJlY29yZFR5cGUgPSAxNiwKKyAgICBHQ1J1blRpbWVsaW5lUmVjb3JkVHlwZSA9IDE3LAor
fTsKKworY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7
CitwdWJsaWM6CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpOworICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CisKKyAgICB2b2lkIHJl
c2V0KCk7CisgICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRl
bmQqKTsKKworICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KKyAgICB2b2lkIHdp
bGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7
CisgICAgdm9pZCBkaWRDYWxsRnVuY3Rpb24oKTsKKworICAgIHZvaWQgd2lsbERpc3BhdGNoRXZl
bnQoY29uc3QgRXZlbnQmKTsKKyAgICB2b2lkIGRpZERpc3BhdGNoRXZlbnQoKTsKKworICAgIHZv
aWQgd2lsbExheW91dCgpOworICAgIHZvaWQgZGlkTGF5b3V0KCk7CisKKyAgICB2b2lkIHdpbGxS
ZWNhbGN1bGF0ZVN0eWxlKCk7CisgICAgdm9pZCBkaWRSZWNhbGN1bGF0ZVN0eWxlKCk7CisKKyAg
ICB2b2lkIHdpbGxQYWludChjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBkaWRQYWludCgpOwor
CisgICAgdm9pZCB3aWxsV3JpdGVIVE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGlu
dCBzdGFydExpbmUpOworICAgIHZvaWQgZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5l
KTsKICAgICAgICAgCi0gICAgICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBp
bnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKLSAgICAgICAgdm9pZCBkaWRSZW1vdmVUaW1l
cihpbnQgdGltZXJJZCk7Ci0gICAgICAgIHZvaWQgd2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCk7
Ci0gICAgICAgIHZvaWQgZGlkRmlyZVRpbWVyKCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsQ2hhbmdl
WEhSUmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmLCBpbnQpOwotICAgICAgICB2b2lkIGRpZENoYW5n
ZVhIUlJlYWR5U3RhdGUoKTsKLSAgICAgICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcm
KTsKLSAgICAgICAgdm9pZCBkaWRMb2FkWEhSKCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsRXZhbHVh
dGVTY3JpcHQoY29uc3QgU3RyaW5nJiwgaW50KTsKLSAgICAgICAgdm9pZCBkaWRFdmFsdWF0ZVNj
cmlwdCgpOwotCi0gICAgICAgIHZvaWQgZGlkTWFya1RpbWVsaW5lKGNvbnN0IFN0cmluZyYpOwot
Ci0gICAgICAgIHZvaWQgd2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZywgYm9v
bCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgICAgIHZvaWQg
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpOwot
ICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nLCBib29s
IGRpZEZhaWwpOwotICAgICAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllcik7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgp
OworICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9v
bCBzaW5nbGVTaG90KTsKKyAgICB2b2lkIGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKTsKKyAg
ICB2b2lkIHdpbGxGaXJlVGltZXIoaW50IHRpbWVySWQpOworICAgIHZvaWQgZGlkRmlyZVRpbWVy
KCk7CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYsIGlu
dCk7CisgICAgdm9pZCBkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCk7CisgICAgdm9pZCB3aWxsTG9h
ZFhIUihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZExvYWRYSFIoKTsKKworICAgIHZvaWQg
d2lsbEV2YWx1YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYsIGludCk7CisgICAgdm9pZCBkaWRFdmFs
dWF0ZVNjcmlwdCgpOworCisgICAgdm9pZCBkaWRNYXJrVGltZWxpbmUoY29uc3QgU3RyaW5nJik7
CisKKyAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIGJvb2wg
aXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgd2lsbFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCk7CisgICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZywgYm9vbCBkaWRGYWlsKTsKKyAg
ICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiAgICAgICAgIAotICAgICAgICBz
dGF0aWMgaW50IGluc3RhbmNlQ291bnQoKSB7IHJldHVybiBzX2luc3RhbmNlQ291bnQ7IH0KLSAg
ICAgICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0cnVjdCBUaW1lbGluZVJl
Y29yZEVudHJ5IHsKLSAgICAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoU2NyaXB0T2JqZWN0
IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNoaWxkcmVuLCBUaW1lbGlu
ZVJlY29yZFR5cGUgdHlwZSkgOiByZWNvcmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hpbGRyZW4o
Y2hpbGRyZW4pLCB0eXBlKHR5cGUpIHsgfQotICAgICAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29y
ZDsKLSAgICAgICAgICAgIFNjcmlwdE9iamVjdCBkYXRhOwotICAgICAgICAgICAgU2NyaXB0QXJy
YXkgY2hpbGRyZW47Ci0gICAgICAgICAgICBUaW1lbGluZVJlY29yZFR5cGUgdHlwZTsKLSAgICAg
ICAgfTsKKyAgICB2b2lkIGRpZEdDUnVuKGRvdWJsZSwgZG91YmxlLCBzaXplX3QpOworCisgICAg
c3RhdGljIGludCBpbnN0YW5jZUNvdW50KCkgeyByZXR1cm4gc19pbnN0YW5jZUNvdW50OyB9Cisg
ICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7
CisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoU2NyaXB0T2JqZWN0IHJlY29yZCwgU2NyaXB0
T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNoaWxkcmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlw
ZSkKKyAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNo
aWxkcmVuKSwgdHlwZSh0eXBlKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgU2NyaXB0
T2JqZWN0IHJlY29yZDsKKyAgICAgICAgU2NyaXB0T2JqZWN0IGRhdGE7CisgICAgICAgIFNjcmlw
dEFycmF5IGNoaWxkcmVuOworICAgICAgICBUaW1lbGluZVJlY29yZFR5cGUgdHlwZTsKKyAgICB9
OwogICAgICAgICAKLSAgICAgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3Qs
IFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChTY3JpcHRP
YmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3Rp
YyhTY3JpcHRPYmplY3QgcmVjb3JkKTsKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBkb3VibGUg
Y3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpOworICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKLSAgICAgICAgdm9pZCBkaWRDb21wbGV0ZUN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIGFkZFJlY29yZFRvVGlt
ZWxpbmUoU2NyaXB0T2JqZWN0LCBUaW1lbGluZVJlY29yZFR5cGUpOwogCi0gICAgICAgIHZvaWQg
YWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7Cisg
ICAgdm9pZCBwdXNoR0NSdW5SZWNvcmRzKCk7CiAKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQq
IG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgU2Ny
aXB0R0NFdmVudEhlbHBlciBtX2djRXZlbnRIZWxwZXI7CiAKLSAgICAgICAgVmVjdG9yPCBUaW1l
bGluZVJlY29yZEVudHJ5ID4gbV9yZWNvcmRTdGFjazsKLSAgICAgICAgc3RhdGljIGludCBzX2lu
c3RhbmNlQ291bnQ7CisgICAgVmVjdG9yPCBUaW1lbGluZVJlY29yZEVudHJ5ID4gbV9yZWNvcmRT
dGFjazsKKyAgICBzdGF0aWMgaW50IHNfaW5zdGFuY2VDb3VudDsKKyAgICBzdHJ1Y3QgR0NSdW5F
dmVudCB7CisgICAgICAgIEdDUnVuRXZlbnQoZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRp
bWUsIHNpemVfdCBjb2xsZWN0ZWRCeXRlcykKKyAgICAgICAgICAgIDogc3RhcnRUaW1lKHN0YXJ0
VGltZSksIGVuZFRpbWUoZW5kVGltZSksIGNvbGxlY3RlZEJ5dGVzKGNvbGxlY3RlZEJ5dGVzKQor
ICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICAgICAg
ZG91YmxlIGVuZFRpbWU7CisgICAgICAgIHNpemVfdCBjb2xsZWN0ZWRCeXRlczsKICAgICB9Owor
ICAgIHR5cGVkZWYgVmVjdG9yPCBHQ1J1bkV2ZW50ID4gR0NSdW5FdmVudHM7CisgICAgR0NSdW5F
dmVudHMgbV9nY1J1bkV2ZW50czsKK307CiAKIGlubGluZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXRyaWV2ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAKaW5kZXggMmFkMDg5ZC4uMWZhMDVlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwCkBAIC01OCw2ICs1OCwxMyBAQCBTY3JpcHRPYmplY3QgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiBm
cm9udAogICAgIHJldHVybiByZWNvcmQ7CiB9CiAKK1NjcmlwdE9iamVjdCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNv
bnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkKK3sKKyAgICBTY3JpcHRPYmplY3QgZGF0YSA9
IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKKyAgICBkYXRhLnNldCgidXNlZEhlYXBTaXpl
RGVsdGEiLCB1c2VkSGVhcFNpemVEZWx0YSk7CisgICAgcmV0dXJuIGRhdGE7Cit9CisKIFNjcmlw
dE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBz
Y3JpcHRMaW5lKQogewogICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Njcmlw
dE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAppbmRl
eCA4ZGFmOTE1Li4yMjA1MDAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuaApAQCAtNDYsNiArNDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGlj
OgogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdlbmVyaWNSZWNvcmQoSW5zcGVj
dG9yRnJvbnRlbmQqLCBkb3VibGUgc3RhcnRUaW1lKTsKIAorICAgICAgICBzdGF0aWMgU2NyaXB0
T2JqZWN0IGNyZWF0ZUdDUnVuRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0
IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CisKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVj
dCBjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5n
JiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2
ZW50Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCmluZGV4IDQ2NDQxNmQu
Ljg0OGM5OWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVy
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCkBAIC0yMjEs
NyArMjIxLDggQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlID0gewogICAg
ICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAogICAgICAgICB0aGlzLl9wb3B1cCA9IHRo
aXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVy
LmJpbmQodGhpcyksIHRydWUpOworICAgICAgICBpZiAodGhpcy5fcG9wdXApCisgICAgICAgICAg
ICB0aGlzLl9wb3B1cC5jb250ZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUi
LCB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgfSwKIAog
ICAgIF9raWxsSGlkZVBvcHVwVGltZXI6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKaW5kZXggMTNmOTM3Zi4uZDNlOGIyZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKQEAgLTUwLDcgKzUw
LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZSA9IHsKICAgICBSZXNv
dXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzLAogICAgIFJlc291cmNlRmluaXNoIDogMTQsCiAgICAg
RnVuY3Rpb25DYWxsIDogMTUsCi0gICAgUmVzb3VyY2VSZWNlaXZlRGF0YTogMTYKKyAgICBSZXNv
dXJjZVJlY2VpdmVEYXRhOiAxNiwKKyAgICBHQ1J1biA6IDE3CiB9OwogCiBXZWJJbnNwZWN0b3Iu
YWRkUmVjb3JkVG9UaW1lbGluZSA9IGZ1bmN0aW9uKHJlY29yZCkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCAwMTdmM2FhLi5jMzk2YWI5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMTUx
LDYgKzE1MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaF0gPSB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbmlzaCBMb2FkaW5nIiksIGNhdGVnb3J5OiB0
aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLkZ1bmN0aW9uQ2FsbF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1
bmN0aW9uIENhbGwiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAg
ICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVEYXRhXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjZWl2ZSBEYXRhIiksIGNhdGVnb3J5
OiB0aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3Jl
Y29yZFR5cGVzLkdDUnVuXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR0MgUnVu
IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07CiAgICAgICAgICAgICB0
aGlzLl9yZWNvcmRTdHlsZXNBcnJheSA9IHJlY29yZFN0eWxlczsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVzQXJyYXk7CkBAIC03MjUsNiArNzI2LDggQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3Jk
LCBwYXJlbnRSZWNvcmQsIHJlY28KICAgICB0aGlzLm9yaWdpbmFsUmVjb3JkRm9yVGVzdHMgPSBy
ZWNvcmQ7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHROYW1lID0gcmVjb3JkLmNhbGxlclNjcmlwdE5h
bWU7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHRMaW5lID0gcmVjb3JkLmNhbGxlclNjcmlwdExpbmU7
CisgICAgdGhpcy50b3RhbEhlYXBTaXplID0gcmVjb3JkLnRvdGFsSGVhcFNpemU7CisgICAgdGhp
cy51c2VkSGVhcFNpemUgPSByZWNvcmQudXNlZEhlYXBTaXplOwogCiAgICAgLy8gTWFrZSByZXNv
dXJjZSByZWNlaXZlIHJlY29yZCBsYXN0IHNpbmNlIHJlcXVlc3Qgd2FzIHNlbnQ7IG1ha2UgZmlu
aXNoIHJlY29yZCBsYXN0IHNpbmNlIHJlc3BvbnNlIHJlY2VpdmVkLgogICAgIGlmIChyZWNvcmQu
dHlwZSA9PT0gcmVjb3JkVHlwZXMuUmVzb3VyY2VTZW5kUmVxdWVzdCkgewpAQCAtODE3LDcgKzgy
MCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgY29uc3QgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVBZ2VudC5SZWNvcmRUeXBlOwogICAgICAgICBpZiAodGhpcy5kZXRhaWxzKSB7Ci0gICAgICAg
ICAgICBpZiAodGhpcy50eXBlID09PSByZWNvcmRUeXBlcy5UaW1lckluc3RhbGwgfHwKKyAgICAg
ICAgICAgIGlmICh0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLkdDUnVuICkKKyAgICAgICAgICAg
ICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQ29sbGVjdGVkIiksIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMu
ZGF0YS51c2VkSGVhcFNpemVEZWx0YSkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHlw
ZSA9PT0gcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsIHx8CiAgICAgICAgICAgICAgICAgdGhpcy50
eXBlID09PSByZWNvcmRUeXBlcy5UaW1lckZpcmUgfHwKICAgICAgICAgICAgICAgICB0aGlzLnR5
cGUgPT09IHJlY29yZFR5cGVzLlRpbWVyUmVtb3ZlKSB7CiAgICAgICAgICAgICAgICAgcmVjb3Jk
Q29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlRpbWVyIElkIiksIHRoaXMuZGF0YS50aW1lcklkKSk7CkBAIC04NTYsMTYgKzg2MSwy
MiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlz
Ll9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZXRhaWxzIiksIHRoaXMuZGV0YWls
cykpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuY2FsbGVyU2NyaXB0TmFtZSkgewor
ICAgICAgICBpZiAodGhpcy50eXBlICE9PSByZWNvcmRUeXBlcy5HQ1J1biAmJiB0aGlzLmNhbGxl
clNjcmlwdE5hbWUpIHsKICAgICAgICAgICAgIHZhciBsaW5rID0gV2ViSW5zcGVjdG9yLmxpbmtp
ZnlSZXNvdXJjZUFzTm9kZSh0aGlzLmNhbGxlclNjcmlwdE5hbWUsICJzY3JpcHRzIiwgdGhpcy5j
YWxsZXJTY3JpcHRMaW5lKTsKICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRD
aGlsZCh0aGlzLl9jcmVhdGVMaW5rUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbGVyIiks
IGxpbmspKTsKICAgICAgICAgfQorICAgICAgICBpZiAodGhpcy51c2VkSGVhcFNpemUpIHsKKyAg
ICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3co
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVc2VkIEhlYXAgU2l6ZSIpLCBOdW1iZXIuYnl0ZXNUb1N0
cmluZyh0aGlzLnVzZWRIZWFwU2l6ZSkpKTsKKyAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJs
ZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUb3Rh
bCBIZWFwIFNpemUiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy50b3RhbEhlYXBTaXplKSkp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybiByZWNvcmRDb250ZW50VGFibGU7CiAgICAgfSwK
IAogICAgIF9nZXRSZWNvcmREZXRhaWxzOiBmdW5jdGlvbihyZWNvcmQsIHNlbmRSZXF1ZXN0UmVj
b3JkcykKICAgICB7CiAgICAgICAgIHN3aXRjaCAocmVjb3JkLnR5cGUpIHsKKyAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5HQ1J1bjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyBjb2xsZWN0ZWQiLCBO
dW1iZXIuYnl0ZXNUb1N0cmluZyhyZWNvcmQuZGF0YS51c2VkSGVhcFNpemVEZWx0YSkpOwogICAg
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkZ1bmN0
aW9uQ2FsbDoKICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1l
Rm9yVVJMKHJlY29yZC5kYXRhLnNjcmlwdE5hbWUpICsgIjoiICsgcmVjb3JkLmRhdGEuc2NyaXB0
TGluZTsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3Jk
VHlwZS5FdmVudERpc3BhdGNoOgo=
</data>
<flag name="review"
          id="36057"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52617</attachid>
            <date>2010-04-06 02:12:01 -0700</date>
            <delta_ts>2010-04-06 05:13:12 -0700</delta_ts>
            <desc>[patch] Fourth iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>43681</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYjMyYTk4Li41YjJjYTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMyAgQW50b25pbyBHb21l
cyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0ZWQg
cmVzdWx0cyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCAyMjE5M2JiLi44YjJjNDcxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTE5LDQgKzE5LDUgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlRmluaXNoIDogMTQKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rpb25DYWxsIDogMTUKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlRGF0YSA6IDE2
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuIDogMTcKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRj
aC1leHBlY3RlZC50eHQKaW5kZXggYTUyODExMy4uZGNkNzAxMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQu
dHh0CkBAIC05LDQgKzksNiBAQCBFdmVudERpc3BhdGNoIFByb3BlcnRpZXM6CiArIGNoaWxkcmVu
IDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiAwCisrIHVz
ZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQu
dHh0CmluZGV4IDAzMGFlNTkuLmNiYzhkNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBMYXlvdXQg
UHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJ
TkVEICoKICsgdHlwZSA6IDEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dAppbmRleCAz
MTFhNDNkLi42NzUwMzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CkBAIC02LDQgKzYsNiBAQCBNYXJr
VGltZWxpbmUgUHJvcGVydGllczoKICstIG1lc3NhZ2UgOiBNQVJLIFRJTUVMSU5FCiArIH0KICsg
dHlwZSA6IDExCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUg
OiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggZTMwYzAwYy4uYzI1
MGY0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsOCBAQCBSZXNvdXJj
ZVNlbmRSZXF1ZXN0IFByb3BlcnRpZXM6CiArLSBpc01haW5SZXNvdXJjZSA6IGZhbHNlCiArIH0K
ICsgdHlwZSA6IDEyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgog
KyBzdGFydFRpbWUgOiAqIERFRklORUQgKgpAQCAtMjMsNiArMjUsOCBAQCBSZXNvdXJjZVJlY2Vp
dmVSZXNwb25zZSBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRp
bWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMTMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVE
ICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlRmluaXNoIFByb3Bl
cnRpZXM6CiArIHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0zMiw0ICszNiw2IEBAIFJlc291
cmNlRmluaXNoIFByb3BlcnRpZXM6CiArLSB1cmwgOiAqIERFRklORUQgKgogKyB9CiArIHR5cGUg
OiAxNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIFNjcmlwdCByZXNvdXJjZSBsb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IGMxYTBlNDUuLjZiMzkzZmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dApAQCAtMTEsNCArMTEsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICog
REVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMworKyB1c2VkSGVh
cFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0CmluZGV4IDU3OWQzYzEuLjUwYTQzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKQEAgLTEwLDQgKzEw
LDYgQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsg
ZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiA0CisrIHVzZWRIZWFwU2l6ZSA6ICogREVG
SU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1z
dHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAzMDRkMzYuLmEzNWM1Y2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHls
ZXMtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBSZWNhbGN1bGF0ZVN0eWxlcyBQcm9wZXJ0
aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgog
KyB0eXBlIDogMgorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXpl
IDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAppbmRleCBiZGZhNWI0Li5l
ZjgwZmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0
LXRhZy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBAQCBFdmFsdWF0ZVNjcmlw
dCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMTAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90
YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKaW5kZXggYWNkN2YxNy4u
ODdkNzU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlw
dC10YWctMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKQEAgLTksNCArOSw2IEBAIEV2YWx1YXRlU2NyaXB0
IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVG
SU5FRCAqCiArIHR5cGUgOiAxMAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVz
dC5qcwppbmRleCA4MTEwMzEyLi5kM2M3MGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtdGVzdC5qcwpAQCAtMTEsNiArMTEsOCBAQCB2YXIgdGltZWxpbmVOb25EZXRlcm1pbmlzdGlj
UHJvcHMgPSB7CiAgICAgY2FsbGVyU2NyaXB0TmFtZTogMSwKICAgICBjYWxsZXJTY3JpcHRMaW5l
OiAxLAogICAgIHVybCA6IDEsCisgICAgdXNlZEhlYXBTaXplOiAxLAorICAgIHRvdGFsSGVhcFNp
emU6IDEsCiAgICAgbWltZVR5cGUgOiAxCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3Iv
dGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CmluZGV4IDFhZmQyYjkuLjQzMWVh
YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0
b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0CkBAIC0xMSw0ICsxMSw2IEBAIEV2ZW50RGlzcGF0Y2ggUHJvcGVydGllczoK
ICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlw
ZSA6IDAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICog
REVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxp
bmUtZXhwZWN0ZWQudHh0CmluZGV4IGRmMjg0ZDguLjQyMTNhNWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1l
bGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4
LDYgQEAgTWFya1RpbWVsaW5lIFByb3BlcnRpZXM6CiArLSBtZXNzYWdlIDogTUFSSyBUSU1FTElO
RQogKyB9CiArIHR5cGUgOiAxMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGlt
ZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggMzA2ZTM4Yy4uNjU1M2Fh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rv
ci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0CkBAIC0xMiw2ICsxMiw4IEBAIFJlc291cmNlU2VuZFJlcXVlc3QgUHJv
cGVydGllczoKICstIGlzTWFpblJlc291cmNlIDogZmFsc2UKICsgfQogKyB0eXBlIDogMTIKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3BlcnRpZXM6CiArIHN0YXJ0VGltZSA6ICog
REVGSU5FRCAqCkBAIC0yNSw2ICsyNyw4IEBAIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAxMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBT
aXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VGaW5pc2ggUHJvcGVydGllczoKICsgc3RhcnRU
aW1lIDogKiBERUZJTkVEICoKQEAgLTM0LDQgKzM4LDYgQEAgUmVzb3VyY2VGaW5pc2ggUHJvcGVy
dGllczoKICstIHVybCA6ICogREVGSU5FRCAqCiArIH0KICsgdHlwZSA6IDE0CisrIHVzZWRIZWFw
U2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogU2NyaXB0
IHJlc291cmNlIGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dAppbmRleCAyMDJiZWU4Li5iNTY4YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5l
LXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMTMsNCArMTMsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgog
KyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBl
IDogMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggODgyYzk3NS4uZDRmNzRhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9y
L3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0xMiw0ICsxMiw2IEBAIFBhcnNl
SFRNTCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAq
IERFRklORUQgKgogKyB0eXBlIDogNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0
b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjcxMTBmLi45MTQ4MzUyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDEwLTA0LTA1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBUaGUgSlMgY29kZSBjYW4gYmUgbm90IG9wdGltYWwgZnJvbSBtZW1v
cnkgdXNhZ2UgcG9pbnQgb2Ygdmlldy4KKyAgICAgICAgQXMgZXhhbXBsZSBpdCBjYW4gZ2VuZXJh
dGUgYSBsb3Qgb2YgdGVtcCBvYmplY3RzIGFuZCBHQyB3aWxsIHNwZW5kIHNpZ25pZmljYW50IHRp
bWUgdG8gY29sbGVjdCB0aGVzZSBvYmplY3RzLgorICAgICAgICBHQ1J1biBldmVudCB3aWxsIHNo
b3cgdXMgdGhlc2UgbW9tZW50cy4gQWxzbyBlYWNoIGV2ZW50IGNhbiBzaG93IHVzIGhvdyBtdWNo
IG1lbW9yeSBpcyBpbiB1c2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzAyNQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudEhl
bHBlci5oCisgICAgICAgICogV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVy
LmgKKyAgICAgICAgKiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3Bw
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDUnVuUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRHQ1J1bik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVu
dFJlY29yZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdDUnVuRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5fbW91c2VIb3Zlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJh
dGVQb3B1cENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2V0UmVjb3JkRGV0YWlscyk6CisKIDIwMTAtMDMtMjkg
IEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDczZjA3NDliOWI4M2JhNzVmN2Y5YTliMTliM2M4NDk4ZDUyM2NlNzIuLjJkOGVi
N2VkMGQzNjMxZjdhOTgwN2I1MGEwZDA0MjM2Njg3MGJkMjUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0
Y2gKZGVsdGEgMjIyCnpjbWNieW5DYU1aclZUZUhQUFAkSzVle1cyVz1MZzdWTmhXMzBNZHlKMXE9
JDReVzgtU0Z+bGRJX2NScF5WYVI3Rgp6MGprUERTM2h9SEFRdmF4NDNPSCU3cjVFRGxZIzFVZkgw
TElkR2JYVTttSCVZKj81dH03KW1CSDh0Nnw+NU15Q1MKblFwTXx4Jjs/UFU8PDgmP3ZAd1hHbHAm
OG5pNkl1cXdncUEoMjJeb3QxfSs4d2I9QCtYCgpkZWx0YSA5ClJjbVhATW9heDQ1clZUZUgwc3Q3
QDFxSntCCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAyMzE2ODQ0Li4xZTU2NTJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIwLDYgKzgyMCw4IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnRIZWxwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0SW5z
dGFuY2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRJbnN0YW5jZS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQzYWZmOTEu
LjdjMjk5YTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtMTA4Miw2ICsxMDgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRFdmVudExp
c3RlbmVyLmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oIFwKKyAgICBi
aW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmggXAogICAgIGJpbmRpbmdzL2pzL1Njcmlw
dE9iamVjdC5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggXAogICAgIGJp
bmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdEdDRXZlbnRIZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
OTQwYjI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2
ZW50SGVscGVyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0R0NFdmVudEhlbHBlcl9o
CisjZGVmaW5lIFNjcmlwdEdDRXZlbnRIZWxwZXJfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2NyaXB0R0NFdmVudEhlbHBlcgoreworcHVi
bGljOgorICAgIFNjcmlwdEdDRXZlbnRIZWxwZXIoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCope30K
KyAgICBzdGF0aWMgdm9pZCBnZXRIZWFwU2l6ZShzaXplX3QmLCBzaXplX3QmKSB7fQorfTsKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQorI2Vu
ZGlmIC8vICFkZWZpbmVkKFNjcmlwdEdDRXZlbnRIZWxwZXJfaCkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM1NzZmODUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnRIZWxwZXIuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjaW5jbHVkZSAiU2NyaXB0R0NFdmVudEhlbHBlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1NjcmlwdEdDRXZlbnRIZWxwZXI6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnRzIFNjcmlwdEdDRXZlbnRIZWxwZXI6OnNfdGltZWxpbmVBZ2VudHM7Citkb3VibGUgU2NyaXB0
R0NFdmVudEhlbHBlcjo6c19zdGFydFRpbWUgPSAwLjA7CitzaXplX3QgU2NyaXB0R0NFdmVudEhl
bHBlcjo6c191c2VkSGVhcFNpemUgPSAwOworCitTY3JpcHRHQ0V2ZW50SGVscGVyOjpTY3JpcHRH
Q0V2ZW50SGVscGVyKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQpCit7Cisg
ICAgQVNTRVJUKHRpbWVsaW5lQWdlbnQpOworICAgIGlmIChzX3RpbWVsaW5lQWdlbnRzLmlzRW1w
dHkoKSkgeworICAgICAgICB2ODo6Vjg6OkFkZEdDUHJvbG9ndWVDYWxsYmFjayhnY1Byb2xvZ3Vl
Q2FsbGJhY2spOworICAgICAgICB2ODo6Vjg6OkFkZEdDRXBpbG9ndWVDYWxsYmFjayhnY0VwaWxv
Z3VlQ2FsbGJhY2spOworICAgIH0KKyAgICBtX3RpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFnZW50
OworICAgIHNfdGltZWxpbmVBZ2VudHMuYXBwZW5kKHRpbWVsaW5lQWdlbnQpOworfQorCitTY3Jp
cHRHQ0V2ZW50SGVscGVyOjp+U2NyaXB0R0NFdmVudEhlbHBlcigpCit7CisgICAgQVNTRVJUKCFz
X3RpbWVsaW5lQWdlbnRzLmlzRW1wdHkoKSk7CisgICAgc2l6ZV90IGkgPSBzX3RpbWVsaW5lQWdl
bnRzLmZpbmQobV90aW1lbGluZUFnZW50KTsKKyAgICBBU1NFUlQoaSAhPSBub3RGb3VuZCk7Cisg
ICAgc190aW1lbGluZUFnZW50cy5yZW1vdmUoaSk7CisgICAgaWYgKHNfdGltZWxpbmVBZ2VudHMu
aXNFbXB0eSgpKSB7CisgICAgICAgIHY4OjpWODo6UmVtb3ZlR0NQcm9sb2d1ZUNhbGxiYWNrKGdj
UHJvbG9ndWVDYWxsYmFjayk7CisgICAgICAgIHY4OjpWODo6UmVtb3ZlR0NFcGlsb2d1ZUNhbGxi
YWNrKGdjRXBpbG9ndWVDYWxsYmFjayk7CisgICAgfQorfQorCit2b2lkIFNjcmlwdEdDRXZlbnRI
ZWxwZXI6OmdldEhlYXBTaXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBzaXplX3QmIHRvdGFsSGVh
cFNpemUpCit7CisgICAgdjg6OkhlYXBTdGF0aXN0aWNzIGhlYXBTdGF0aXN0aWNzOworICAgIHY4
OjpWODo6R2V0SGVhcFN0YXRpc3RpY3MoJmhlYXBTdGF0aXN0aWNzKTsKKyAgICB1c2VkSGVhcFNp
emUgPSBoZWFwU3RhdGlzdGljcy51c2VkX2hlYXBfc2l6ZSgpOworICAgIHRvdGFsSGVhcFNpemUg
PSBoZWFwU3RhdGlzdGljcy50b3RhbF9oZWFwX3NpemUoKTsKK30KKworc2l6ZV90IFNjcmlwdEdD
RXZlbnRIZWxwZXI6OmdldFVzZWRIZWFwU2l6ZSgpCit7CisgICAgdjg6OkhlYXBTdGF0aXN0aWNz
IGhlYXBTdGF0aXN0aWNzOworICAgIHY4OjpWODo6R2V0SGVhcFN0YXRpc3RpY3MoJmhlYXBTdGF0
aXN0aWNzKTsKKyAgICByZXR1cm4gaGVhcFN0YXRpc3RpY3MudXNlZF9oZWFwX3NpemUoKTsKK30K
Kwordm9pZCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpnY0VwaWxvZ3VlQ2FsbGJhY2sodjg6OkdDVHlw
ZSB0eXBlLCB2ODo6R0NDYWxsYmFja0ZsYWdzIGZsYWdzKQoreworICAgIGRvdWJsZSBlbmRUaW1l
ID0gV1RGOjpjdXJyZW50VGltZU1TKCk7CisgICAgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzID0gc191
c2VkSGVhcFNpemUgLSBnZXRVc2VkSGVhcFNpemUoKTsKKyAgICBmb3IgKEluc3BlY3RvclRpbWVs
aW5lQWdlbnRzOjppdGVyYXRvciBpID0gc190aW1lbGluZUFnZW50cy5iZWdpbigpOyBpICE9IHNf
dGltZWxpbmVBZ2VudHMuZW5kKCk7ICsraSkKKyAgICAgICAgKCppKS0+ZGlkR0NSdW4oc19zdGFy
dFRpbWUsIGVuZFRpbWUsIGNvbGxlY3RlZEJ5dGVzKTsKK30KKwordm9pZCBTY3JpcHRHQ0V2ZW50
SGVscGVyOjpnY1Byb2xvZ3VlQ2FsbGJhY2sodjg6OkdDVHlwZSB0eXBlLCB2ODo6R0NDYWxsYmFj
a0ZsYWdzIGZsYWdzKQoreworICAgIHNfc3RhcnRUaW1lID0gV1RGOjpjdXJyZW50VGltZU1TKCk7
CisgICAgc191c2VkSGVhcFNpemUgPSBnZXRVc2VkSGVhcFNpemUoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBlci5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZGJkOWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0R0NFdmVudEhlbHBlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNpZm5kZWYgU2NyaXB0R0NFdmVudEhlbHBlcl9oCisjZGVmaW5lIFNjcmlwdEdD
RXZlbnRIZWxwZXJfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgInY4Lmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CisKK2NsYXNzIFNjcmlwdEdDRXZlbnRIZWxwZXIKK3sK
K3B1YmxpYzoKKyAgICBTY3JpcHRHQ0V2ZW50SGVscGVyKEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
KTsKKyAgICB+U2NyaXB0R0NFdmVudEhlbHBlcigpOworICAgIHN0YXRpYyB2b2lkIGdldEhlYXBT
aXplKHNpemVfdCYsIHNpemVfdCYpOworcHJpdmF0ZToKKyAgICB0eXBlZGVmIFZlY3RvcjwgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogPiBJbnNwZWN0b3JUaW1lbGluZUFnZW50czsKKyAgICBzdGF0
aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudHMgc190aW1lbGluZUFnZW50czsKKyAgICBzdGF0aWMg
ZG91YmxlIHNfc3RhcnRUaW1lOworICAgIHN0YXRpYyBzaXplX3Qgc191c2VkSGVhcFNpemU7Cisg
CisgICAgc3RhdGljIHZvaWQgZ2NFcGlsb2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6
OkdDQ2FsbGJhY2tGbGFncyBmbGFncyk7CisgICAgc3RhdGljIHZvaWQgZ2NQcm9sb2d1ZUNhbGxi
YWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncyk7CisgICAgc3Rh
dGljIHNpemVfdCBnZXRVc2VkSGVhcFNpemUoKTsKKyAgICAKKyAgICBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KiBtX3RpbWVsaW5lQWdlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyAhRU5BQkxFKElOU1BFQ1RPUikKKyNlbmRpZiAvLyAhZGVmaW5lZChTY3JpcHRH
Q0V2ZW50SGVscGVyX2gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCmluZGV4IDJiZjY2ZWUuLmI2YjNlYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC00OCwxMSArNDgsMjggQEAgaW50IEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnNfaW5zdGFuY2VDb3VudCA9IDA7CiAKIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
KQogICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKKyAgICAsIG1fZ2NFdmVudEhlbHBlcih0aGlz
KQogewogICAgICsrc19pbnN0YW5jZUNvdW50OwogICAgIEFTU0VSVChtX2Zyb250ZW5kKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NSdW5SZWNvcmRzKCkKK3sKKyAg
ICBmb3IgKEdDUnVuRXZlbnRzOjppdGVyYXRvciBpID0gbV9nY1J1bkV2ZW50cy5iZWdpbigpOyBp
ICE9IG1fZ2NSdW5FdmVudHMuZW5kKCk7ICsraSkgeworICAgICAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIGktPnN0YXJ0VGltZSk7CisgICAgICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YShtX2Zyb250ZW5kLCBpLT5jb2xsZWN0ZWRCeXRl
cykpOworICAgICAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CisgICAgICAg
IGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBHQ1J1blRpbWVsaW5lUmVjb3JkVHlwZSk7Cisg
ICAgfQorICAgIG1fZ2NSdW5FdmVudHMuY2xlYXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRHQ1J1bihkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgc2l6
ZV90IGNvbGxlY3RlZEJ5dGVzQ291bnQpCit7CisgICAgbV9nY1J1bkV2ZW50cy5hcHBlbmQoR0NS
dW5FdmVudChzdGFydFRpbWUsIGVuZFRpbWUsIGNvbGxlY3RlZEJ5dGVzQ291bnQpKTsKK30KKwog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKQogewogICAg
IEFTU0VSVChzX2luc3RhbmNlQ291bnQpOwpAQCAtMTI2LDE0ICsxNDMsMTQgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklk
LCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewotICAgIFNjcmlwdE9iamVjdCByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVu
ZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3Jk
ID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQs
IFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKG1fZnJvbnRlbmQsIHRpbWVySWQs
IHRpbWVvdXQsIHNpbmdsZVNob3QpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwg
VGltZXJJbnN0YWxsVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCkKIHsKLSAgICBTY3JpcHRPYmpl
Y3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1f
ZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAgU2NyaXB0T2JqZWN0
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zy
b250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0
aW1lcklkKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVyUmVtb3ZlVGlt
ZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTE4MSw5ICsxOTgsMTEgQEAgdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Ym9vbCBpc01haW5SZXNvdXJjZSwKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkp
OworICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6
Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCBpZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSwgcmVxdWVzdCkpOwogICAgIHJlY29yZC5zZXQoInR5cGUiLCBS
ZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBzZXRIZWFwU2l6ZVN0
YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVj
b3JkKTsKIH0KIApAQCAtMjA5LDE1ICsyMjgsMTcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgYm9vbCBkaWRGYWlsKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJ
bk1pbGxpc2Vjb25kcygpKTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2NyaXB0T2Jq
ZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCht
X2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0YSIs
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKG1fZnJvbnRl
bmQsIGlkZW50aWZpZXIsIGRpZEZhaWwpKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3Vy
Y2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJl
Y29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQog
CiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWls
bGlzZWNvbmRzKCkpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1T
KCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZU1hcmtUaW1lbGluZURhdGEobV9mcm9udGVuZCwgbWVzc2FnZSkpOwogICAgIGFkZFJlY29yZFRv
VGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTIzNSw4ICsy
NTYsMTEgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlP
YmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW4KIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVs
aW5lUmVjb3JkVHlwZSB0eXBlKQoteworeyAgCisgICAgaWYgKHR5cGUgIT0gR0NSdW5UaW1lbGlu
ZVJlY29yZFR5cGUpCisgICAgICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKICAgICByZWNvcmQuc2V0
KCJ0eXBlIiwgdHlwZSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsKICAgICBp
ZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPmFkZFJlY29y
ZFRvVGltZWxpbmUocmVjb3JkKTsKICAgICBlbHNlIHsKQEAgLTI0NSw2ICsyNjksMTUgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVj
dCByZWNvcmQsIFRpbWVsaW5lUmUKICAgICB9CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29yZCkKK3sKKyAgICBz
aXplX3QgdXNlZEhlYXBTaXplID0gMDsKKyAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7Cisg
ICAgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2V0SGVhcFNpemUodXNlZEhlYXBTaXplLCB0b3RhbEhl
YXBTaXplKTsKKyAgICByZWNvcmQuc2V0KCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUpOwor
ICAgIHJlY29yZC5zZXQoInRvdGFsSGVhcFNpemUiLCB0b3RhbEhlYXBTaXplKTsKK30KKwogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRUeXBlIHR5cGUpCiB7CiAgICAgLy8gQW4gZW1wdHkgc3RhY2sgY291bGQgbWVyZWx5
IG1lYW4gdGhhdCB0aGUgdGltZWxpbmUgYWdlbnQgd2FzIHR1cm5lZCBvbiBpbiB0aGUgbWlkZGxl
IG9mCkBAIC0yNTUsMTkgKzI4OCwxNSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAg
QVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7CiAgICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImRh
dGEiLCBlbnRyeS5kYXRhKTsKICAgICAgICAgZW50cnkucmVjb3JkLnNldCgiY2hpbGRyZW4iLCBl
bnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImVuZFRpbWUiLCBjdXJy
ZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRU
aW1lIiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5l
KGVudHJ5LnJlY29yZCwgdHlwZSk7CiAgICAgfQogfQogCi1kb3VibGUgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6Y3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpCi17Ci0gICAgcmV0dXJuIGN1cnJl
bnRUaW1lKCkgKiAxMDAwLjA7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVz
aEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBl
KQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygp
KTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNv
cmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCksIHR5cGUp
KTsKIH0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaAppbmRleCA1NmM5MThjLi5kZjEyYjdhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0zNSwxMTIgKzM1LDEzMiBAQAogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSAiU2NyaXB0R0NFdmVudEhlbHBlci5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVj
dC5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgRXZlbnQ7Ci0gICAgY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAgICBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLQotICAgIC8vIE11c3QgYmUga2VwdCBp
biBzeW5jIHdpdGggVGltZWxpbmVBZ2VudC5qcwotICAgIGVudW0gVGltZWxpbmVSZWNvcmRUeXBl
IHsKLSAgICAgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAsCi0gICAgICAg
IExheW91dFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEsCi0gICAgICAgIFJlY2FsY3VsYXRlU3R5bGVz
VGltZWxpbmVSZWNvcmRUeXBlID0gMiwKLSAgICAgICAgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUg
PSAzLAotICAgICAgICBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUgPSA0LAotICAgICAgICBU
aW1lckluc3RhbGxUaW1lbGluZVJlY29yZFR5cGUgPSA1LAotICAgICAgICBUaW1lclJlbW92ZVRp
bWVsaW5lUmVjb3JkVHlwZSA9IDYsCi0gICAgICAgIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlw
ZSA9IDcsCi0gICAgICAgIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlID0gOCwKLSAgICAg
ICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAotICAgICAgICBFdmFsdWF0ZVNjcmlwdFRpbWVsaW5l
UmVjb3JkVHlwZSA9IDEwLAotICAgICAgICBNYXJrVGltZWxpbmVSZWNvcmRUeXBlID0gMTEsCi0g
ICAgICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUgPSAxMiwKLSAgICAg
ICAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUgPSAxMywKLSAgICAg
ICAgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUgPSAxNCwKLSAgICAgICAgRnVuY3Rp
b25DYWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCi0gICAgICAgIFJlY2VpdmVSZXNvdXJjZURh
dGFUaW1lbGluZVJlY29yZFR5cGUgPSAxNiwKLSAgICB9OwotCi0gICAgY2xhc3MgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGljOgotICAgICAg
ICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7Ci0g
ICAgICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7Ci0KLSAgICAgICAgdm9pZCByZXNldCgp
OwotICAgICAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVu
ZCopOwotCi0gICAgICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KLSAgICAgICAg
dm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlw
dExpbmUpOwotICAgICAgICB2b2lkIGRpZENhbGxGdW5jdGlvbigpOwotCi0gICAgICAgIHZvaWQg
d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmKTsKLSAgICAgICAgdm9pZCBkaWREaXNwYXRj
aEV2ZW50KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsTGF5b3V0KCk7Ci0gICAgICAgIHZvaWQgZGlk
TGF5b3V0KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOwotICAgICAg
ICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKLQotICAgICAgICB2b2lkIHdpbGxQYWludChj
b25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIHZvaWQgZGlkUGFpbnQoKTsKLQotICAgICAgICB2b2lk
IHdpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGlu
ZSk7Ci0gICAgICAgIHZvaWQgZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5lKTsKK2Ns
YXNzIEV2ZW50OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnRSZWN0OworY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKworLy8gTXVzdCBi
ZSBrZXB0IGluIHN5bmMgd2l0aCBUaW1lbGluZUFnZW50LmpzCitlbnVtIFRpbWVsaW5lUmVjb3Jk
VHlwZSB7CisgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAsCisgICAgTGF5
b3V0VGltZWxpbmVSZWNvcmRUeXBlID0gMSwKKyAgICBSZWNhbGN1bGF0ZVN0eWxlc1RpbWVsaW5l
UmVjb3JkVHlwZSA9IDIsCisgICAgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUgPSAzLAorICAgIFBh
cnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSA9IDQsCisgICAgVGltZXJJbnN0YWxsVGltZWxpbmVS
ZWNvcmRUeXBlID0gNSwKKyAgICBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDYsCisg
ICAgVGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlID0gNywKKyAgICBYSFJSZWFkeVN0YXRlQ2hh
bmdlUmVjb3JkVHlwZSA9IDgsCisgICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAorICAgIEV2YWx1
YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlID0gMTAsCisgICAgTWFya1RpbWVsaW5lUmVjb3Jk
VHlwZSA9IDExLAorICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUgPSAx
MiwKKyAgICBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDEzLAor
ICAgIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlID0gMTQsCisgICAgRnVuY3Rpb25D
YWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCisgICAgUmVjZWl2ZVJlc291cmNlRGF0YVRpbWVs
aW5lUmVjb3JkVHlwZSA9IDE2LAorICAgIEdDUnVuVGltZWxpbmVSZWNvcmRUeXBlID0gMTcsCit9
OworCitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogcHVibGljIE5vbmNvcHlhYmxlIHsK
K3B1YmxpYzoKKyAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCk7CisgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKKworICAgIHZvaWQgcmVz
ZXQoKTsKKyAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVu
ZCopOworCisgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgorICAgIHZvaWQgd2ls
bENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsK
KyAgICB2b2lkIGRpZENhbGxGdW5jdGlvbigpOworCisgICAgdm9pZCB3aWxsRGlzcGF0Y2hFdmVu
dChjb25zdCBFdmVudCYpOworICAgIHZvaWQgZGlkRGlzcGF0Y2hFdmVudCgpOworCisgICAgdm9p
ZCB3aWxsTGF5b3V0KCk7CisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKworICAgIHZvaWQgd2lsbFJl
Y2FsY3VsYXRlU3R5bGUoKTsKKyAgICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKKworICAg
IHZvaWQgd2lsbFBhaW50KGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIGRpZFBhaW50KCk7CisK
KyAgICB2b2lkIHdpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50
IHN0YXJ0TGluZSk7CisgICAgdm9pZCBkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUp
OwogICAgICAgICAKLSAgICAgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGlu
dCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwotICAgICAgICB2b2lkIGRpZFJlbW92ZVRpbWVy
KGludCB0aW1lcklkKTsKLSAgICAgICAgdm9pZCB3aWxsRmlyZVRpbWVyKGludCB0aW1lcklkKTsK
LSAgICAgICAgdm9pZCBkaWRGaXJlVGltZXIoKTsKLQotICAgICAgICB2b2lkIHdpbGxDaGFuZ2VY
SFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYsIGludCk7Ci0gICAgICAgIHZvaWQgZGlkQ2hhbmdl
WEhSUmVhZHlTdGF0ZSgpOwotICAgICAgICB2b2lkIHdpbGxMb2FkWEhSKGNvbnN0IFN0cmluZyYp
OwotICAgICAgICB2b2lkIGRpZExvYWRYSFIoKTsKLQotICAgICAgICB2b2lkIHdpbGxFdmFsdWF0
ZVNjcmlwdChjb25zdCBTdHJpbmcmLCBpbnQpOwotICAgICAgICB2b2lkIGRpZEV2YWx1YXRlU2Ny
aXB0KCk7Ci0KLSAgICAgICAgdm9pZCBkaWRNYXJrVGltZWxpbmUoY29uc3QgU3RyaW5nJik7Ci0K
LSAgICAgICAgdm9pZCB3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nLCBib29s
IGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICAgICAgdm9pZCB3
aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCk7Ci0g
ICAgICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcsIGJvb2wg
ZGlkRmFpbCk7Ci0gICAgICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7
CisgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpOworICAgIHZvaWQgZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpOworICAg
IHZvaWQgd2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCk7CisgICAgdm9pZCBkaWRGaXJlVGltZXIo
KTsKKworICAgIHZvaWQgd2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50
KTsKKyAgICB2b2lkIGRpZENoYW5nZVhIUlJlYWR5U3RhdGUoKTsKKyAgICB2b2lkIHdpbGxMb2Fk
WEhSKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkTG9hZFhIUigpOworCisgICAgdm9pZCB3
aWxsRXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2b2lkIGRpZEV2YWx1
YXRlU2NyaXB0KCk7CisKKyAgICB2b2lkIGRpZE1hcmtUaW1lbGluZShjb25zdCBTdHJpbmcmKTsK
KworICAgIHZvaWQgd2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZywgYm9vbCBp
c01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCB3aWxsUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoKTsKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nLCBib29sIGRpZEZhaWwpOworICAg
IHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGEoKTsKICAgICAgICAgCi0gICAgICAgIHN0
YXRpYyBpbnQgaW5zdGFuY2VDb3VudCgpIHsgcmV0dXJuIHNfaW5zdGFuY2VDb3VudDsgfQotICAg
ICAgICBzdGF0aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogcmV0cmlldmUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgc3RydWN0IFRpbWVsaW5lUmVj
b3JkRW50cnkgewotICAgICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShTY3JpcHRPYmplY3Qg
cmVjb3JkLCBTY3JpcHRPYmplY3QgZGF0YSwgU2NyaXB0QXJyYXkgY2hpbGRyZW4sIFRpbWVsaW5l
UmVjb3JkVHlwZSB0eXBlKSA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRhdGEpLCBjaGlsZHJlbihj
aGlsZHJlbiksIHR5cGUodHlwZSkgeyB9Ci0gICAgICAgICAgICBTY3JpcHRPYmplY3QgcmVjb3Jk
OwotICAgICAgICAgICAgU2NyaXB0T2JqZWN0IGRhdGE7Ci0gICAgICAgICAgICBTY3JpcHRBcnJh
eSBjaGlsZHJlbjsKLSAgICAgICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlOwotICAgICAg
ICB9OworICAgIHZvaWQgZGlkR0NSdW4oZG91YmxlLCBkb3VibGUsIHNpemVfdCk7CisKKyAgICBz
dGF0aWMgaW50IGluc3RhbmNlQ291bnQoKSB7IHJldHVybiBzX2luc3RhbmNlQ291bnQ7IH0KKyAg
ICBzdGF0aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogcmV0cmlldmUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCitwcml2YXRlOgorICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsK
KyAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShTY3JpcHRPYmplY3QgcmVjb3JkLCBTY3JpcHRP
YmplY3QgZGF0YSwgU2NyaXB0QXJyYXkgY2hpbGRyZW4sIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBl
KQorICAgICAgICAgICAgOiByZWNvcmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hpbGRyZW4oY2hp
bGRyZW4pLCB0eXBlKHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBTY3JpcHRP
YmplY3QgcmVjb3JkOworICAgICAgICBTY3JpcHRPYmplY3QgZGF0YTsKKyAgICAgICAgU2NyaXB0
QXJyYXkgY2hpbGRyZW47CisgICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlOworICAgIH07
CiAgICAgICAgIAotICAgICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCwg
VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9i
amVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGlj
KFNjcmlwdE9iamVjdCByZWNvcmQpOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIGRvdWJsZSBj
dXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCk7CisgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlKTsKIAotICAgICAgICB2b2lkIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1l
bGluZShTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKLSAgICAgICAgdm9pZCBh
ZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAg
ICB2b2lkIHB1c2hHQ1J1blJlY29yZHMoKTsKIAotICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCog
bV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBTY3Jp
cHRHQ0V2ZW50SGVscGVyIG1fZ2NFdmVudEhlbHBlcjsKIAotICAgICAgICBWZWN0b3I8IFRpbWVs
aW5lUmVjb3JkRW50cnkgPiBtX3JlY29yZFN0YWNrOwotICAgICAgICBzdGF0aWMgaW50IHNfaW5z
dGFuY2VDb3VudDsKKyAgICBWZWN0b3I8IFRpbWVsaW5lUmVjb3JkRW50cnkgPiBtX3JlY29yZFN0
YWNrOworICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OworICAgIHN0cnVjdCBHQ1J1bkV2
ZW50IHsKKyAgICAgICAgR0NSdW5FdmVudChkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGlt
ZSwgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzKQorICAgICAgICAgICAgOiBzdGFydFRpbWUoc3RhcnRU
aW1lKSwgZW5kVGltZShlbmRUaW1lKSwgY29sbGVjdGVkQnl0ZXMoY29sbGVjdGVkQnl0ZXMpCisg
ICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgc3RhcnRUaW1lOworICAgICAgICBk
b3VibGUgZW5kVGltZTsKKyAgICAgICAgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzOwogICAgIH07Cisg
ICAgdHlwZWRlZiBWZWN0b3I8IEdDUnVuRXZlbnQgPiBHQ1J1bkV2ZW50czsKKyAgICBHQ1J1bkV2
ZW50cyBtX2djUnVuRXZlbnRzOworfTsKIAogaW5saW5lIEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJldHJpZXZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29y
ZEZhY3RvcnkuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cAppbmRleCAyYWQwODlkLi4xZmEwNWViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9U
aW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIFNjcmlwdE9iamVjdCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250CiAgICAgcmV0dXJuIHJlY29yZDsKIH0KIAorU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR0NSdW5EYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29u
c3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKQoreworICAgIFNjcmlwdE9iamVjdCBkYXRhID0g
ZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOworICAgIGRhdGEuc2V0KCJ1c2VkSGVhcFNpemVE
ZWx0YSIsIHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwogU2NyaXB0
T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNj
cmlwdExpbmUpCiB7CiAgICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0
T2JqZWN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4
IDhkYWY5MTUuLjIyMDUwMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5oCkBAIC00Niw2ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0
b3JGcm9udGVuZCosIGRvdWJsZSBzdGFydFRpbWUpOwogCisgICAgICAgIHN0YXRpYyBTY3JpcHRP
YmplY3QgY3JlYXRlR0NSdW5EYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qg
c2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKTsKKwogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcm
IHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKIAogICAgICAgICBzdGF0aWMgU2NyaXB0T2Jq
ZWN0IGNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgRXZl
bnQmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMKaW5kZXggNDY0NDE2ZC4u
ODQ4Yzk5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMKQEAgLTIyMSw3
ICsyMjEsOCBAQCBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9ob3ZlclRpbWVyOwogCiAgICAgICAgIHRoaXMuX3BvcHVwID0gdGhp
cy5fc2hvd1BvcHVwKGVsZW1lbnQpOwotICAgICAgICB0aGlzLl9wb3B1cC5jb250ZW50RWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIu
YmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgICAgIGlmICh0aGlzLl9wb3B1cCkKKyAgICAgICAgICAg
IHRoaXMuX3BvcHVwLmNvbnRlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIs
IHRoaXMuX2tpbGxIaWRlUG9wdXBUaW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICB9LAogCiAg
ICAgX2tpbGxIaWRlUG9wdXBUaW1lcjogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVBZ2VudC5qcwppbmRleCAxM2Y5MzdmLi5kM2U4YjJmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2VudC5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2VudC5qcwpAQCAtNTAsNyArNTAs
OCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlID0gewogICAgIFJlc291
cmNlUmVjZWl2ZVJlc3BvbnNlIDogMTMsCiAgICAgUmVzb3VyY2VGaW5pc2ggOiAxNCwKICAgICBG
dW5jdGlvbkNhbGwgOiAxNSwKLSAgICBSZXNvdXJjZVJlY2VpdmVEYXRhOiAxNgorICAgIFJlc291
cmNlUmVjZWl2ZURhdGE6IDE2LAorICAgIEdDUnVuIDogMTcKIH07CiAKIFdlYkluc3BlY3Rvci5h
ZGRSZWNvcmRUb1RpbWVsaW5lID0gZnVuY3Rpb24ocmVjb3JkKSB7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDAxN2YzYWEuLmMzOTZhYjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0xNTEs
NiArMTUxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlRmluaXNoXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmluaXNoIExvYWRpbmciKSwgY2F0ZWdvcnk6IHRo
aXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3Jk
VHlwZXMuRnVuY3Rpb25DYWxsXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnVu
Y3Rpb24gQ2FsbCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwogICAg
ICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZURhdGFdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNlaXZlIERhdGEiKSwgY2F0ZWdvcnk6
IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVj
b3JkVHlwZXMuR0NSdW5dID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHQyBSdW4i
KSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAgICAgICAgICAgIHRo
aXMuX3JlY29yZFN0eWxlc0FycmF5ID0gcmVjb3JkU3R5bGVzOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiB0aGlzLl9yZWNvcmRTdHlsZXNBcnJheTsKQEAgLTcyNSw2ICs3MjYsOCBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQs
IHBhcmVudFJlY29yZCwgcmVjbwogICAgIHRoaXMub3JpZ2luYWxSZWNvcmRGb3JUZXN0cyA9IHJl
Y29yZDsKICAgICB0aGlzLmNhbGxlclNjcmlwdE5hbWUgPSByZWNvcmQuY2FsbGVyU2NyaXB0TmFt
ZTsKICAgICB0aGlzLmNhbGxlclNjcmlwdExpbmUgPSByZWNvcmQuY2FsbGVyU2NyaXB0TGluZTsK
KyAgICB0aGlzLnRvdGFsSGVhcFNpemUgPSByZWNvcmQudG90YWxIZWFwU2l6ZTsKKyAgICB0aGlz
LnVzZWRIZWFwU2l6ZSA9IHJlY29yZC51c2VkSGVhcFNpemU7CiAKICAgICAvLyBNYWtlIHJlc291
cmNlIHJlY2VpdmUgcmVjb3JkIGxhc3Qgc2luY2UgcmVxdWVzdCB3YXMgc2VudDsgbWFrZSBmaW5p
c2ggcmVjb3JkIGxhc3Qgc2luY2UgcmVzcG9uc2UgcmVjZWl2ZWQuCiAgICAgaWYgKHJlY29yZC50
eXBlID09PSByZWNvcmRUeXBlcy5SZXNvdXJjZVNlbmRSZXF1ZXN0KSB7CkBAIC04MTcsNyArODIw
LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICBjb25zdCByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZUFnZW50LlJlY29yZFR5cGU7CiAgICAgICAgIGlmICh0aGlzLmRldGFpbHMpIHsKLSAgICAgICAg
ICAgIGlmICh0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVySW5zdGFsbCB8fAorICAgICAg
ICAgICAgaWYgKHRoaXMudHlwZSA9PT0gcmVjb3JkVHlwZXMuR0NSdW4gKQorICAgICAgICAgICAg
ICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJDb2xsZWN0ZWQiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5k
YXRhLnVzZWRIZWFwU2l6ZURlbHRhKSkpOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50eXBl
ID09PSByZWNvcmRUeXBlcy5UaW1lckluc3RhbGwgfHwKICAgICAgICAgICAgICAgICB0aGlzLnR5
cGUgPT09IHJlY29yZFR5cGVzLlRpbWVyRmlyZSB8fAogICAgICAgICAgICAgICAgIHRoaXMudHlw
ZSA9PT0gcmVjb3JkVHlwZXMuVGltZXJSZW1vdmUpIHsKICAgICAgICAgICAgICAgICByZWNvcmRD
b250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0
cmluZygiVGltZXIgSWQiKSwgdGhpcy5kYXRhLnRpbWVySWQpKTsKQEAgLTg1NiwxNiArODYxLDIy
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRldGFpbHMiKSwgdGhpcy5kZXRhaWxz
KSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5jYWxsZXJTY3JpcHROYW1lKSB7Cisg
ICAgICAgIGlmICh0aGlzLnR5cGUgIT09IHJlY29yZFR5cGVzLkdDUnVuICYmIHRoaXMuY2FsbGVy
U2NyaXB0TmFtZSkgewogICAgICAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lm
eVJlc291cmNlQXNOb2RlKHRoaXMuY2FsbGVyU2NyaXB0TmFtZSwgInNjcmlwdHMiLCB0aGlzLmNh
bGxlclNjcmlwdExpbmUpOwogICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZUxpbmtSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYWxsZXIiKSwg
bGluaykpOwogICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnVzZWRIZWFwU2l6ZSkgeworICAg
ICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzZWQgSGVhcCBTaXplIiksIE51bWJlci5ieXRlc1RvU3Ry
aW5nKHRoaXMudXNlZEhlYXBTaXplKSkpOworICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxl
LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRvdGFs
IEhlYXAgU2l6ZSIpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnRvdGFsSGVhcFNpemUpKSk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHJlY29yZENvbnRlbnRUYWJsZTsKICAgICB9LAog
CiAgICAgX2dldFJlY29yZERldGFpbHM6IGZ1bmN0aW9uKHJlY29yZCwgc2VuZFJlcXVlc3RSZWNv
cmRzKQogICAgIHsKICAgICAgICAgc3dpdGNoIChyZWNvcmQudHlwZSkgeworICAgICAgICAgICAg
Y2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuOgorICAgICAg
ICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGNvbGxlY3RlZCIsIE51
bWJlci5ieXRlc1RvU3RyaW5nKHJlY29yZC5kYXRhLnVzZWRIZWFwU2l6ZURlbHRhKSk7CiAgICAg
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rp
b25DYWxsOgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JVUkwocmVjb3JkLmRhdGEuc2NyaXB0TmFtZSkgKyAiOiIgKyByZWNvcmQuZGF0YS5zY3JpcHRM
aW5lOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRU
eXBlLkV2ZW50RGlzcGF0Y2g6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52621</attachid>
            <date>2010-04-06 05:13:12 -0700</date>
            <delta_ts>2010-04-06 06:47:26 -0700</delta_ts>
            <desc>[patch] Fifth iteration.</desc>
            <filename>patch2</filename>
            <type>text/plain</type>
            <size>46852</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYjMyYTk4Li4yMGI0ZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMyAgQW50b25pbyBHb21l
cyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0ZWQg
cmVzdWx0cyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCAyMjE5M2JiLi44YjJjNDcxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTE5LDQgKzE5LDUgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlRmluaXNoIDogMTQKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rpb25DYWxsIDogMTUKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlRGF0YSA6IDE2
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuIDogMTcKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRj
aC1leHBlY3RlZC50eHQKaW5kZXggYTUyODExMy4uZGNkNzAxMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQu
dHh0CkBAIC05LDQgKzksNiBAQCBFdmVudERpc3BhdGNoIFByb3BlcnRpZXM6CiArIGNoaWxkcmVu
IDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiAwCisrIHVz
ZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQu
dHh0CmluZGV4IDAzMGFlNTkuLmNiYzhkNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBMYXlvdXQg
UHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJ
TkVEICoKICsgdHlwZSA6IDEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dAppbmRleCAz
MTFhNDNkLi42NzUwMzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CkBAIC02LDQgKzYsNiBAQCBNYXJr
VGltZWxpbmUgUHJvcGVydGllczoKICstIG1lc3NhZ2UgOiBNQVJLIFRJTUVMSU5FCiArIH0KICsg
dHlwZSA6IDExCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUg
OiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggZTMwYzAwYy4uYzI1
MGY0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsOCBAQCBSZXNvdXJj
ZVNlbmRSZXF1ZXN0IFByb3BlcnRpZXM6CiArLSBpc01haW5SZXNvdXJjZSA6IGZhbHNlCiArIH0K
ICsgdHlwZSA6IDEyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgog
KyBzdGFydFRpbWUgOiAqIERFRklORUQgKgpAQCAtMjMsNiArMjUsOCBAQCBSZXNvdXJjZVJlY2Vp
dmVSZXNwb25zZSBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRp
bWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMTMKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVE
ICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlRmluaXNoIFByb3Bl
cnRpZXM6CiArIHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0zMiw0ICszNiw2IEBAIFJlc291
cmNlRmluaXNoIFByb3BlcnRpZXM6CiArLSB1cmwgOiAqIERFRklORUQgKgogKyB9CiArIHR5cGUg
OiAxNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIFNjcmlwdCByZXNvdXJjZSBsb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IGMxYTBlNDUuLjZiMzkzZmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dApAQCAtMTEsNCArMTEsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICog
REVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBlIDogMworKyB1c2VkSGVh
cFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0CmluZGV4IDU3OWQzYzEuLjUwYTQzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKQEAgLTEwLDQgKzEw
LDYgQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsg
ZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiA0CisrIHVzZWRIZWFwU2l6ZSA6ICogREVG
SU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1z
dHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAzMDRkMzYuLmEzNWM1Y2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHls
ZXMtZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcsNiBAQCBSZWNhbGN1bGF0ZVN0eWxlcyBQcm9wZXJ0
aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgog
KyB0eXBlIDogMgorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXpl
IDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAppbmRleCBiZGZhNWI0Li5l
ZjgwZmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0
LXRhZy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBAQCBFdmFsdWF0ZVNjcmlw
dCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMTAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90
YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKaW5kZXggYWNkN2YxNy4u
ODdkNzU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlw
dC10YWctMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKQEAgLTksNCArOSw2IEBAIEV2YWx1YXRlU2NyaXB0
IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVG
SU5FRCAqCiArIHR5cGUgOiAxMAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVz
dC5qcwppbmRleCA4MTEwMzEyLi5kM2M3MGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtdGVzdC5qcwpAQCAtMTEsNiArMTEsOCBAQCB2YXIgdGltZWxpbmVOb25EZXRlcm1pbmlzdGlj
UHJvcHMgPSB7CiAgICAgY2FsbGVyU2NyaXB0TmFtZTogMSwKICAgICBjYWxsZXJTY3JpcHRMaW5l
OiAxLAogICAgIHVybCA6IDEsCisgICAgdXNlZEhlYXBTaXplOiAxLAorICAgIHRvdGFsSGVhcFNp
emU6IDEsCiAgICAgbWltZVR5cGUgOiAxCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3Iv
dGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CmluZGV4IDFhZmQyYjkuLjQzMWVh
YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0
b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0CkBAIC0xMSw0ICsxMSw2IEBAIEV2ZW50RGlzcGF0Y2ggUHJvcGVydGllczoK
ICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlw
ZSA6IDAKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICog
REVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxp
bmUtZXhwZWN0ZWQudHh0CmluZGV4IGRmMjg0ZDguLjQyMTNhNWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1l
bGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4
LDYgQEAgTWFya1RpbWVsaW5lIFByb3BlcnRpZXM6CiArLSBtZXNzYWdlIDogTUFSSyBUSU1FTElO
RQogKyB9CiArIHR5cGUgOiAxMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGlt
ZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggMzA2ZTM4Yy4uNjU1M2Fh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rv
ci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0CkBAIC0xMiw2ICsxMiw4IEBAIFJlc291cmNlU2VuZFJlcXVlc3QgUHJv
cGVydGllczoKICstIGlzTWFpblJlc291cmNlIDogZmFsc2UKICsgfQogKyB0eXBlIDogMTIKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3BlcnRpZXM6CiArIHN0YXJ0VGltZSA6ICog
REVGSU5FRCAqCkBAIC0yNSw2ICsyNyw4IEBAIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAxMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBT
aXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VGaW5pc2ggUHJvcGVydGllczoKICsgc3RhcnRU
aW1lIDogKiBERUZJTkVEICoKQEAgLTM0LDQgKzM4LDYgQEAgUmVzb3VyY2VGaW5pc2ggUHJvcGVy
dGllczoKICstIHVybCA6ICogREVGSU5FRCAqCiArIH0KICsgdHlwZSA6IDE0CisrIHVzZWRIZWFw
U2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogU2NyaXB0
IHJlc291cmNlIGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dAppbmRleCAyMDJiZWU4Li5iNTY4YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5l
LXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMTMsNCArMTMsNiBAQCBQYWludCBQcm9wZXJ0aWVzOgog
KyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0eXBl
IDogMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBE
RUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggODgyYzk3NS4uZDRmNzRhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9y
L3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0xMiw0ICsxMiw2IEBAIFBhcnNl
SFRNTCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAq
IERFRklORUQgKgogKyB0eXBlIDogNAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0
b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjcxMTBmLi43YmNjOGY4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDEwLTA0LTA2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBUaGUgSlMgY29kZSBjYW4gYmUgbm90IG9wdGltYWwgZnJvbSBtZW1v
cnkgdXNhZ2UgcG9pbnQgb2Ygdmlldy4KKyAgICAgICAgQXMgZXhhbXBsZSBpdCBjYW4gZ2VuZXJh
dGUgYSBsb3Qgb2YgdGVtcCBvYmplY3RzIGFuZCBHQyB3aWxsIHNwZW5kIHNpZ25pZmljYW50IHRp
bWUgdG8gY29sbGVjdCB0aGVzZSBvYmplY3RzLgorICAgICAgICBHQ1J1biBldmVudCB3aWxsIHNo
b3cgdXMgdGhlc2UgbW9tZW50cy4gQWxzbyBlYWNoIGV2ZW50IGNhbiBzaG93IHVzIGhvdyBtdWNo
IG1lbW9yeSBpcyBpbiB1c2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzAyNQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudEhl
bHBlci5oCisgICAgICAgICogV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVy
LmgKKyAgICAgICAgKiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3Bw
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDUnVuUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRHQ1J1bik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVu
dFJlY29yZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdDUnVuRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5fbW91c2VIb3Zlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJh
dGVQb3B1cENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2V0UmVjb3JkRGV0YWlscyk6CisKIDIwMTAtMDMtMjkg
IEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDczZjA3NDliOWI4M2JhNzVmN2Y5YTliMTliM2M4NDk4ZDUyM2NlNzIuLjJkOGVi
N2VkMGQzNjMxZjdhOTgwN2I1MGEwZDA0MjM2Njg3MGJkMjUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0
Y2gKZGVsdGEgMjIyCnpjbWNieW5DYU1aclZUZUhQUFAkSzVle1cyVz1MZzdWTmhXMzBNZHlKMXE9
JDReVzgtU0Z+bGRJX2NScF5WYVI3Rgp6MGprUERTM2h9SEFRdmF4NDNPSCU3cjVFRGxZIzFVZkgw
TElkR2JYVTttSCVZKj81dH03KW1CSDh0Nnw+NU15Q1MKblFwTXx4Jjs/UFU8PDgmP3ZAd1hHbHAm
OG5pNkl1cXdncUEoMjJeb3QxfSs4d2I9QCtYCgpkZWx0YSA5ClJjbVhATW9heDQ1clZUZUgwc3Q3
QDFxSntCCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAyMzE2ODQ0Li45NWQwOWM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIwLDYgKzgyMCw4IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvU2NyaXB0R0NFdmVudEhlbHBlci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Nj
cmlwdEdDRXZlbnRIZWxwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0SW5z
dGFuY2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRJbnN0YW5jZS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwJywKQEAgLTE2NDYsNiAr
MTY0OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaCcsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oJywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KaW5kZXggZDNhZmY5MS4uNWU2YzNmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMDgyLDYgKzEwODIsNyBA
QCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogICAg
IGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgYmluZGluZ3MvanMvU2Ny
aXB0RnVuY3Rpb25DYWxsLmggXAorICAgIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnRIZWxwZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmggXAogICAgIGJpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZUNvZGUuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIu
aCBcCkBAIC0xNDI4LDYgKzE0MjksNyBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2UuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCBcCiAgICAgaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisgICAgaW5zcGVjdG9y
L1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggXAogICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBc
CiAgICAgbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmggXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50SGVscGVyLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdEdDRXZlbnRIZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kNTkxYjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRHQ0V2ZW50SGVscGVyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0R0NF
dmVudEhlbHBlcl9oCisjZGVmaW5lIFNjcmlwdEdDRXZlbnRIZWxwZXJfaAorCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRHQ0V2ZW50
TGlzdGVuZXI7CisKK2NsYXNzIFNjcmlwdEdDRXZlbnRIZWxwZXIKK3sKK3B1YmxpYzoKKyAgICBz
dGF0aWMgdm9pZCBhZGRFdmVudExpc3RlbmVyKFNjcmlwdEdDRXZlbnRMaXN0ZW5lciope30KKyAg
ICBzdGF0aWMgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKFNjcmlwdEdDRXZlbnRMaXN0ZW5lciop
e30KKyAgICBzdGF0aWMgdm9pZCBnZXRIZWFwU2l6ZShzaXplX3QmLCBzaXplX3QmKXt9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhRU5BQkxFKElOU1BFQ1RPUikK
KyNlbmRpZiAvLyAhZGVmaW5lZChTY3JpcHRHQ0V2ZW50SGVscGVyX2gpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRHQ0V2ZW50SGVscGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kZDZhNTI5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRHQ0V2ZW50SGVscGVyLmNwcApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRIZWxwZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRH
Q0V2ZW50TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1NjcmlwdEdDRXZlbnRIZWxwZXI6OkdDRXZlbnRMaXN0ZW5lcnMg
U2NyaXB0R0NFdmVudEhlbHBlcjo6c19ldmVudExpc3RlbmVyczsKK2RvdWJsZSBTY3JpcHRHQ0V2
ZW50SGVscGVyOjpzX3N0YXJ0VGltZSA9IDAuMDsKK3NpemVfdCBTY3JpcHRHQ0V2ZW50SGVscGVy
OjpzX3VzZWRIZWFwU2l6ZSA9IDA7CisKK3ZvaWQgU2NyaXB0R0NFdmVudEhlbHBlcjo6YWRkRXZl
bnRMaXN0ZW5lcihTY3JpcHRHQ0V2ZW50TGlzdGVuZXIqIGV2ZW50TGlzdGVuZXIpCit7CisgICAg
QVNTRVJUKGV2ZW50TGlzdGVuZXIpOworICAgIGlmIChzX2V2ZW50TGlzdGVuZXJzLmlzRW1wdHko
KSkgeworICAgICAgICB2ODo6Vjg6OkFkZEdDUHJvbG9ndWVDYWxsYmFjayhnY1Byb2xvZ3VlQ2Fs
bGJhY2spOworICAgICAgICB2ODo6Vjg6OkFkZEdDRXBpbG9ndWVDYWxsYmFjayhnY0VwaWxvZ3Vl
Q2FsbGJhY2spOworICAgIH0KKyAgICBzX2V2ZW50TGlzdGVuZXJzLmFwcGVuZChldmVudExpc3Rl
bmVyKTsKK30KKwordm9pZCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpyZW1vdmVFdmVudExpc3RlbmVy
KFNjcmlwdEdDRXZlbnRMaXN0ZW5lciogZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBBU1NFUlQoZXZl
bnRMaXN0ZW5lcik7CisgICAgQVNTRVJUKCFzX2V2ZW50TGlzdGVuZXJzLmlzRW1wdHkoKSk7Cisg
ICAgc2l6ZV90IGkgPSBzX2V2ZW50TGlzdGVuZXJzLmZpbmQoZXZlbnRMaXN0ZW5lcik7CisgICAg
QVNTRVJUKGkgIT0gbm90Rm91bmQpOworICAgIHNfZXZlbnRMaXN0ZW5lcnMucmVtb3ZlKGkpOwor
ICAgIGlmIChzX2V2ZW50TGlzdGVuZXJzLmlzRW1wdHkoKSkgeworICAgICAgICB2ODo6Vjg6OlJl
bW92ZUdDUHJvbG9ndWVDYWxsYmFjayhnY1Byb2xvZ3VlQ2FsbGJhY2spOworICAgICAgICB2ODo6
Vjg6OlJlbW92ZUdDRXBpbG9ndWVDYWxsYmFjayhnY0VwaWxvZ3VlQ2FsbGJhY2spOworICAgIH0K
K30KKwordm9pZCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpnZXRIZWFwU2l6ZShzaXplX3QmIHVzZWRI
ZWFwU2l6ZSwgc2l6ZV90JiB0b3RhbEhlYXBTaXplKQoreworICAgIHY4OjpIZWFwU3RhdGlzdGlj
cyBoZWFwU3RhdGlzdGljczsKKyAgICB2ODo6Vjg6OkdldEhlYXBTdGF0aXN0aWNzKCZoZWFwU3Rh
dGlzdGljcyk7CisgICAgdXNlZEhlYXBTaXplID0gaGVhcFN0YXRpc3RpY3MudXNlZF9oZWFwX3Np
emUoKTsKKyAgICB0b3RhbEhlYXBTaXplID0gaGVhcFN0YXRpc3RpY3MudG90YWxfaGVhcF9zaXpl
KCk7Cit9CisKK3NpemVfdCBTY3JpcHRHQ0V2ZW50SGVscGVyOjpnZXRVc2VkSGVhcFNpemUoKQor
eworICAgIHY4OjpIZWFwU3RhdGlzdGljcyBoZWFwU3RhdGlzdGljczsKKyAgICB2ODo6Vjg6Okdl
dEhlYXBTdGF0aXN0aWNzKCZoZWFwU3RhdGlzdGljcyk7CisgICAgcmV0dXJuIGhlYXBTdGF0aXN0
aWNzLnVzZWRfaGVhcF9zaXplKCk7Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2NQ
cm9sb2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFn
cykKK3sKKyAgICBzX3N0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWVNUygpOworICAgIHNfdXNl
ZEhlYXBTaXplID0gZ2V0VXNlZEhlYXBTaXplKCk7Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudEhl
bHBlcjo6Z2NFcGlsb2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tG
bGFncyBmbGFncykKK3sKKyAgICBkb3VibGUgZW5kVGltZSA9IFdURjo6Y3VycmVudFRpbWVNUygp
OworICAgIHNpemVfdCBjb2xsZWN0ZWRCeXRlcyA9IHNfdXNlZEhlYXBTaXplIC0gZ2V0VXNlZEhl
YXBTaXplKCk7CisgICAgZm9yIChHQ0V2ZW50TGlzdGVuZXJzOjppdGVyYXRvciBpID0gc19ldmVu
dExpc3RlbmVycy5iZWdpbigpOyBpICE9IHNfZXZlbnRMaXN0ZW5lcnMuZW5kKCk7ICsraSkKKyAg
ICAgICAgKCppKS0+ZGlkR0NSdW4oc19zdGFydFRpbWUsIGVuZFRpbWUsIGNvbGxlY3RlZEJ5dGVz
KTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRI
ZWxwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudEhlbHBlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MjJlYzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnRIZWxwZXIuaApAQCAtMCwwICsxLDYz
IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgorKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisqIGRpc3Ry
aWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFNjcmlwdEdDRXZlbnRIZWxw
ZXJfaAorI2RlZmluZSBTY3JpcHRHQ0V2ZW50SGVscGVyX2gKKworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisKKyNpbmNsdWRlICJ2OC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRHQ0V2ZW50TGlzdGVuZXI7CisKK2NsYXNzIFNj
cmlwdEdDRXZlbnRIZWxwZXIKK3sKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhZGRFdmVudExp
c3RlbmVyKFNjcmlwdEdDRXZlbnRMaXN0ZW5lciopOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUV2
ZW50TGlzdGVuZXIoU2NyaXB0R0NFdmVudExpc3RlbmVyKik7CisgICAgc3RhdGljIHZvaWQgZ2V0
SGVhcFNpemUoc2l6ZV90Jiwgc2l6ZV90Jik7Citwcml2YXRlOgorICAgIHR5cGVkZWYgVmVjdG9y
PCBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIqID4gR0NFdmVudExpc3RlbmVyczsKKyAgICBzdGF0aWMg
R0NFdmVudExpc3RlbmVycyBzX2V2ZW50TGlzdGVuZXJzOworICAgIHN0YXRpYyBkb3VibGUgc19z
dGFydFRpbWU7CisgICAgc3RhdGljIHNpemVfdCBzX3VzZWRIZWFwU2l6ZTsKKyAKKyAgICBzdGF0
aWMgdm9pZCBnY0VwaWxvZ3VlQ2FsbGJhY2sodjg6OkdDVHlwZSB0eXBlLCB2ODo6R0NDYWxsYmFj
a0ZsYWdzIGZsYWdzKTsKKyAgICBzdGF0aWMgdm9pZCBnY1Byb2xvZ3VlQ2FsbGJhY2sodjg6OkdD
VHlwZSB0eXBlLCB2ODo6R0NDYWxsYmFja0ZsYWdzIGZsYWdzKTsKKyAgICBzdGF0aWMgc2l6ZV90
IGdldFVzZWRIZWFwU2l6ZSgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gIUVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8gIWRlZmluZWQoU2NyaXB0R0NFdmVu
dEhlbHBlcl9oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cAppbmRleCAyYmY2NmVlLi40ZmM1Yzg0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNTAsMTMgKzUwLDMxIEBAIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
KQogICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKIHsKICAgICArK3NfaW5zdGFuY2VDb3VudDsK
KyAgICBTY3JpcHRHQ0V2ZW50SGVscGVyOjphZGRFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIEFT
U0VSVChtX2Zyb250ZW5kKTsKIH0KIAordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNo
R0NSdW5SZWNvcmRzKCkKK3sKKyAgICBmb3IgKEdDUnVuRXZlbnRzOjppdGVyYXRvciBpID0gbV9n
Y1J1bkV2ZW50cy5iZWdpbigpOyBpICE9IG1fZ2NSdW5FdmVudHMuZW5kKCk7ICsraSkgeworICAg
ICAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
ZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGktPnN0YXJ0VGltZSk7CisgICAgICAgIHJlY29yZC5z
ZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDUnVuRGF0YShtX2Zyb250
ZW5kLCBpLT5jb2xsZWN0ZWRCeXRlcykpOworICAgICAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwg
aS0+ZW5kVGltZSk7CisgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBHQ1J1blRp
bWVsaW5lUmVjb3JkVHlwZSk7CisgICAgfQorICAgIG1fZ2NSdW5FdmVudHMuY2xlYXIoKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRHQ1J1bihkb3VibGUgc3RhcnRUaW1l
LCBkb3VibGUgZW5kVGltZSwgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzQ291bnQpCit7CisgICAgbV9n
Y1J1bkV2ZW50cy5hcHBlbmQoR0NSdW5FdmVudChzdGFydFRpbWUsIGVuZFRpbWUsIGNvbGxlY3Rl
ZEJ5dGVzQ291bnQpKTsKK30KKwogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRp
bWVsaW5lQWdlbnQoKQogewogICAgIEFTU0VSVChzX2luc3RhbmNlQ291bnQpOwogICAgIC0tc19p
bnN0YW5jZUNvdW50OworICAgIFNjcmlwdEdDRXZlbnRIZWxwZXI6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIodGhpcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5j
dGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQpAQCAtMTI2LDE0
ICsxNDQsMTQgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0ZUhUTUwodW5z
aWduZWQgaW50IGVuZExpbmUpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5z
dGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewot
ICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAg
ICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQu
c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRh
KG1fZnJvbnRlbmQsIHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpKTsKICAgICBhZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCwgVGltZXJJbnN0YWxsVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJ
ZCkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMo
KSk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAg
cmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Rp
bWVyRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShy
ZWNvcmQsIFRpbWVyUmVtb3ZlVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTE4MSw5ICsxOTks
MTEgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBpc01haW5SZXNvdXJjZSwKICAgICBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50
VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIHB1c2hHQ1J1blJlY29yZHMoKTsKKyAgICBTY3Jp
cHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVj
b3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICByZWNvcmQuc2V0KCJk
YXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0
YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSwgcmVxdWVzdCkpOwogICAg
IHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBl
KTsKKyAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFk
ZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKIH0KIApAQCAtMjA5LDE1ICsyMjksMTcgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQogewotICAgIFNjcmlwdE9iamVj
dCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9m
cm9udGVuZCwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBwdXNoR0NSdW5SZWNv
cmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAg
ICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3Vy
Y2VGaW5pc2hEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIGRpZEZhaWwpKTsKICAgICByZWNv
cmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHNl
dEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9U
aW1lbGluZShyZWNvcmQpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1h
cmtUaW1lbGluZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250
ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIFNjcmlwdE9iamVjdCByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVu
ZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobV9mcm9udGVuZCwgbWVzc2Fn
ZSkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KQEAgLTIzNSw4ICsyNTcsMTEgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW4KIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlw
dE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQoteworeyAgCisgICAgaWYg
KHR5cGUgIT0gR0NSdW5UaW1lbGluZVJlY29yZFR5cGUpCisgICAgICAgIHB1c2hHQ1J1blJlY29y
ZHMoKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwgdHlwZSk7CisgICAgc2V0SGVhcFNpemVTdGF0
aXN0aWMocmVjb3JkKTsKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCiAgICAgICAg
IG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKICAgICBlbHNlIHsKQEAg
LTI0NSw2ICsyNzAsMTUgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRU
b1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmUKICAgICB9CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2Jq
ZWN0IHJlY29yZCkKK3sKKyAgICBzaXplX3QgdXNlZEhlYXBTaXplID0gMDsKKyAgICBzaXplX3Qg
dG90YWxIZWFwU2l6ZSA9IDA7CisgICAgU2NyaXB0R0NFdmVudEhlbHBlcjo6Z2V0SGVhcFNpemUo
dXNlZEhlYXBTaXplLCB0b3RhbEhlYXBTaXplKTsKKyAgICByZWNvcmQuc2V0KCJ1c2VkSGVhcFNp
emUiLCB1c2VkSGVhcFNpemUpOworICAgIHJlY29yZC5zZXQoInRvdGFsSGVhcFNpemUiLCB0b3Rh
bEhlYXBTaXplKTsKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0
ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiB7CiAgICAgLy8gQW4gZW1w
dHkgc3RhY2sgY291bGQgbWVyZWx5IG1lYW4gdGhhdCB0aGUgdGltZWxpbmUgYWdlbnQgd2FzIHR1
cm5lZCBvbiBpbiB0aGUgbWlkZGxlIG9mCkBAIC0yNTUsMTkgKzI4OSwxNSBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29y
ZFR5cGUgdHlwZSkKICAgICAgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7CiAgICAgICAg
IGVudHJ5LnJlY29yZC5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKICAgICAgICAgZW50cnkucmVj
b3JkLnNldCgiY2hpbGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29y
ZC5zZXQoImVuZFRpbWUiLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgICAgICBl
bnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1lIiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgICAg
ICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZCwgdHlwZSk7CiAgICAgfQogfQogCi1k
b3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygp
Ci17Ci0gICAgcmV0dXJuIGN1cnJlbnRUaW1lKCkgKiAxMDAwLjA7Ci19Ci0KIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRp
bWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVu
dFRpbWVJbk1pbGxpc2Vjb25kcygpKTsKKyAgICBwdXNoR0NSdW5SZWNvcmRzKCk7CisgICAgU2Ny
aXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgbV9yZWNvcmRTdGFj
ay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5l
d1NjcmlwdEFycmF5KCksIHR5cGUpKTsKIH0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA1NmM5MThjLi41NGZh
NjcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0z
NSwxMTIgKzM1LDEzMiBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2NyaXB0R0NFdmVudEhlbHBlci5oIgor
I2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVj
dC5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgRXZlbnQ7Ci0gICAgY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAgICBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLQotICAgIC8vIE11c3QgYmUga2VwdCBp
biBzeW5jIHdpdGggVGltZWxpbmVBZ2VudC5qcwotICAgIGVudW0gVGltZWxpbmVSZWNvcmRUeXBl
IHsKLSAgICAgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAsCi0gICAgICAg
IExheW91dFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEsCi0gICAgICAgIFJlY2FsY3VsYXRlU3R5bGVz
VGltZWxpbmVSZWNvcmRUeXBlID0gMiwKLSAgICAgICAgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUg
PSAzLAotICAgICAgICBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUgPSA0LAotICAgICAgICBU
aW1lckluc3RhbGxUaW1lbGluZVJlY29yZFR5cGUgPSA1LAotICAgICAgICBUaW1lclJlbW92ZVRp
bWVsaW5lUmVjb3JkVHlwZSA9IDYsCi0gICAgICAgIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlw
ZSA9IDcsCi0gICAgICAgIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlID0gOCwKLSAgICAg
ICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAotICAgICAgICBFdmFsdWF0ZVNjcmlwdFRpbWVsaW5l
UmVjb3JkVHlwZSA9IDEwLAotICAgICAgICBNYXJrVGltZWxpbmVSZWNvcmRUeXBlID0gMTEsCi0g
ICAgICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUgPSAxMiwKLSAgICAg
ICAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUgPSAxMywKLSAgICAg
ICAgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUgPSAxNCwKLSAgICAgICAgRnVuY3Rp
b25DYWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCi0gICAgICAgIFJlY2VpdmVSZXNvdXJjZURh
dGFUaW1lbGluZVJlY29yZFR5cGUgPSAxNiwKLSAgICB9OwotCi0gICAgY2xhc3MgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGljOgotICAgICAg
ICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7Ci0g
ICAgICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7Ci0KLSAgICAgICAgdm9pZCByZXNldCgp
OwotICAgICAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVu
ZCopOwotCi0gICAgICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KLSAgICAgICAg
dm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlw
dExpbmUpOwotICAgICAgICB2b2lkIGRpZENhbGxGdW5jdGlvbigpOwotCi0gICAgICAgIHZvaWQg
d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmKTsKLSAgICAgICAgdm9pZCBkaWREaXNwYXRj
aEV2ZW50KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsTGF5b3V0KCk7Ci0gICAgICAgIHZvaWQgZGlk
TGF5b3V0KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOwotICAgICAg
ICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKLQotICAgICAgICB2b2lkIHdpbGxQYWludChj
b25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIHZvaWQgZGlkUGFpbnQoKTsKLQotICAgICAgICB2b2lk
IHdpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGlu
ZSk7Ci0gICAgICAgIHZvaWQgZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5lKTsKK2Ns
YXNzIEV2ZW50OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnRSZWN0OworY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKworLy8gTXVzdCBi
ZSBrZXB0IGluIHN5bmMgd2l0aCBUaW1lbGluZUFnZW50LmpzCitlbnVtIFRpbWVsaW5lUmVjb3Jk
VHlwZSB7CisgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAsCisgICAgTGF5
b3V0VGltZWxpbmVSZWNvcmRUeXBlID0gMSwKKyAgICBSZWNhbGN1bGF0ZVN0eWxlc1RpbWVsaW5l
UmVjb3JkVHlwZSA9IDIsCisgICAgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUgPSAzLAorICAgIFBh
cnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSA9IDQsCisgICAgVGltZXJJbnN0YWxsVGltZWxpbmVS
ZWNvcmRUeXBlID0gNSwKKyAgICBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDYsCisg
ICAgVGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlID0gNywKKyAgICBYSFJSZWFkeVN0YXRlQ2hh
bmdlUmVjb3JkVHlwZSA9IDgsCisgICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAorICAgIEV2YWx1
YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlID0gMTAsCisgICAgTWFya1RpbWVsaW5lUmVjb3Jk
VHlwZSA9IDExLAorICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUgPSAx
MiwKKyAgICBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDEzLAor
ICAgIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlID0gMTQsCisgICAgRnVuY3Rpb25D
YWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCisgICAgUmVjZWl2ZVJlc291cmNlRGF0YVRpbWVs
aW5lUmVjb3JkVHlwZSA9IDE2LAorICAgIEdDUnVuVGltZWxpbmVSZWNvcmRUeXBlID0gMTcsCit9
OworCitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2NyaXB0R0NFdmVudExpc3RlbmVy
LCBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICB+SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpOworCisgICAgdm9pZCByZXNldCgpOworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb3h5
T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKik7CisKKyAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9t
IFdlYkNvcmUuCisgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0
TmFtZSwgaW50IHNjcmlwdExpbmUpOworICAgIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uKCk7CisKKyAg
ICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50Jik7CisgICAgdm9pZCBkaWREaXNw
YXRjaEV2ZW50KCk7CisKKyAgICB2b2lkIHdpbGxMYXlvdXQoKTsKKyAgICB2b2lkIGRpZExheW91
dCgpOworCisgICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOworICAgIHZvaWQgZGlkUmVj
YWxjdWxhdGVTdHlsZSgpOworCisgICAgdm9pZCB3aWxsUGFpbnQoY29uc3QgSW50UmVjdCYpOwor
ICAgIHZvaWQgZGlkUGFpbnQoKTsKKworICAgIHZvaWQgd2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBp
bnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICB2b2lkIGRpZFdyaXRlSFRN
TCh1bnNpZ25lZCBpbnQgZW5kTGluZSk7CiAgICAgICAgIAotICAgICAgICB2b2lkIGRpZEluc3Rh
bGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7Ci0gICAg
ICAgIHZvaWQgZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpOwotICAgICAgICB2b2lkIHdpbGxG
aXJlVGltZXIoaW50IHRpbWVySWQpOwotICAgICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwotCi0g
ICAgICAgIHZvaWQgd2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50KTsK
LSAgICAgICAgdm9pZCBkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCk7Ci0gICAgICAgIHZvaWQgd2ls
bExvYWRYSFIoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIHZvaWQgZGlkTG9hZFhIUigpOwotCi0g
ICAgICAgIHZvaWQgd2lsbEV2YWx1YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYsIGludCk7Ci0gICAg
ICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoKTsKLQotICAgICAgICB2b2lkIGRpZE1hcmtUaW1l
bGluZShjb25zdCBTdHJpbmcmKTsKLQotICAgICAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYpOwotICAgICAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2UoKTsKLSAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nUmVzb3Vy
Y2UodW5zaWduZWQgbG9uZywgYm9vbCBkaWRGYWlsKTsKLSAgICAgICAgdm9pZCB3aWxsUmVjZWl2
ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwotICAgICAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNvdXJjZURhdGEoKTsKKyAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGlt
ZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CisgICAgdm9pZCBkaWRSZW1vdmVU
aW1lcihpbnQgdGltZXJJZCk7CisgICAgdm9pZCB3aWxsRmlyZVRpbWVyKGludCB0aW1lcklkKTsK
KyAgICB2b2lkIGRpZEZpcmVUaW1lcigpOworCisgICAgdm9pZCB3aWxsQ2hhbmdlWEhSUmVhZHlT
dGF0ZShjb25zdCBTdHJpbmcmLCBpbnQpOworICAgIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0
ZSgpOworICAgIHZvaWQgd2lsbExvYWRYSFIoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRM
b2FkWEhSKCk7CisKKyAgICB2b2lkIHdpbGxFdmFsdWF0ZVNjcmlwdChjb25zdCBTdHJpbmcmLCBp
bnQpOworICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoKTsKKworICAgIHZvaWQgZGlkTWFya1Rp
bWVsaW5lKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCB3aWxsU2VuZFJlc291cmNlUmVxdWVz
dCh1bnNpZ25lZCBsb25nLCBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZSgpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxv
bmcsIGJvb2wgZGlkRmFpbCk7CisgICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgp
OwogICAgICAgICAKLSAgICAgICAgc3RhdGljIGludCBpbnN0YW5jZUNvdW50KCkgeyByZXR1cm4g
c19pbnN0YW5jZUNvdW50OyB9Ci0gICAgICAgIHN0YXRpYyBJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiByZXRyaWV2ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7Ci0gICAgICAgICAgICBUaW1lbGluZVJl
Y29yZEVudHJ5KFNjcmlwdE9iamVjdCByZWNvcmQsIFNjcmlwdE9iamVjdCBkYXRhLCBTY3JpcHRB
cnJheSBjaGlsZHJlbiwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpIDogcmVjb3JkKHJlY29yZCks
IGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKSB7IH0KLSAgICAgICAg
ICAgIFNjcmlwdE9iamVjdCByZWNvcmQ7Ci0gICAgICAgICAgICBTY3JpcHRPYmplY3QgZGF0YTsK
LSAgICAgICAgICAgIFNjcmlwdEFycmF5IGNoaWxkcmVuOwotICAgICAgICAgICAgVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGU7Ci0gICAgICAgIH07CisgICAgdmlydHVhbCB2b2lkIGRpZEdDUnVuKGRv
dWJsZSwgZG91YmxlLCBzaXplX3QpOworCisgICAgc3RhdGljIGludCBpbnN0YW5jZUNvdW50KCkg
eyByZXR1cm4gc19pbnN0YW5jZUNvdW50OyB9CisgICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAg
ICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50
cnkoU2NyaXB0T2JqZWN0IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNo
aWxkcmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKKyAgICAgICAgICAgIDogcmVjb3JkKHJl
Y29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZDsKKyAgICAgICAgU2Ny
aXB0T2JqZWN0IGRhdGE7CisgICAgICAgIFNjcmlwdEFycmF5IGNoaWxkcmVuOworICAgICAgICBU
aW1lbGluZVJlY29yZFR5cGUgdHlwZTsKKyAgICB9OwogICAgICAgICAKLSAgICAgICAgdm9pZCBw
dXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAg
dm9pZCBwdXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7
CisgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKTsKICAg
ICAgICAgCi0gICAgICAgIHN0YXRpYyBkb3VibGUgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygp
OworICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSk7
CiAKLSAgICAgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRU
eXBlKTsKKyAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0LCBUaW1lbGlu
ZVJlY29yZFR5cGUpOwogCi0gICAgICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRP
YmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBwdXNoR0NSdW5SZWNvcmRzKCk7
CiAKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9y
RnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiAKLSAgICAgICAgVmVjdG9yPCBUaW1lbGluZVJlY29yZEVu
dHJ5ID4gbV9yZWNvcmRTdGFjazsKLSAgICAgICAgc3RhdGljIGludCBzX2luc3RhbmNlQ291bnQ7
CisgICAgVmVjdG9yPCBUaW1lbGluZVJlY29yZEVudHJ5ID4gbV9yZWNvcmRTdGFjazsKKyAgICBz
dGF0aWMgaW50IHNfaW5zdGFuY2VDb3VudDsKKyAgICBzdHJ1Y3QgR0NSdW5FdmVudCB7CisgICAg
ICAgIEdDUnVuRXZlbnQoZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIHNpemVfdCBj
b2xsZWN0ZWRCeXRlcykKKyAgICAgICAgICAgIDogc3RhcnRUaW1lKHN0YXJ0VGltZSksIGVuZFRp
bWUoZW5kVGltZSksIGNvbGxlY3RlZEJ5dGVzKGNvbGxlY3RlZEJ5dGVzKQorICAgICAgICB7Cisg
ICAgICAgIH0KKyAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGVuZFRp
bWU7CisgICAgICAgIHNpemVfdCBjb2xsZWN0ZWRCeXRlczsKICAgICB9OworICAgIHR5cGVkZWYg
VmVjdG9yPCBHQ1J1bkV2ZW50ID4gR0NSdW5FdmVudHM7CisgICAgR0NSdW5FdmVudHMgbV9nY1J1
bkV2ZW50czsKK307CiAKIGlubGluZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpyZXRyaWV2ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0R0NFdmVudExpc3RlbmVyLmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmNkZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvU2NyaXB0R0NFdmVudExpc3RlbmVyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU2NyaXB0R0NFdmVudExpc3RlbmVyX2gKKyNkZWZpbmUgU2NyaXB0R0NFdmVudExpc3RlbmVy
X2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0R0NFdmVudExpc3RlbmVyCit7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGRp
ZEdDUnVuKGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBzaXplX3QgY29sbGVjdGVk
Qnl0ZXMpID0gMDsKKyAgICB2aXJ0dWFsIH5TY3JpcHRHQ0V2ZW50TGlzdGVuZXIoKXt9Cit9Owor
ICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIUVOQUJMRShJTlNQRUNU
T1IpCisjZW5kaWYgLy8gIWRlZmluZWQoU2NyaXB0R0NFdmVudExpc3RlbmVyX2gpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCAyYWQwODlkLi4xZmEw
NWViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rvcnku
Y3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAg
LTU4LDYgKzU4LDEzIEBAIFNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNSZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250CiAgICAgcmV0dXJuIHJlY29y
ZDsKIH0KIAorU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NSdW5E
YXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6
ZURlbHRhKQoreworICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9i
amVjdCgpOworICAgIGRhdGEuc2V0KCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFwU2l6ZURl
bHRhKTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwogU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQsIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7CiAgICAgU2Ny
aXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBiL1dlYkNvcmUvaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IDhkYWY5MTUuLjIyMDUwMDAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCkBAIC00Niw2ICs0Niw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBTY3Jp
cHRPYmplY3QgY3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9udGVuZCosIGRvdWJsZSBz
dGFydFRpbWUpOwogCisgICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR0NSdW5EYXRh
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURl
bHRhKTsKKwogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUZ1bmN0aW9uQ2FsbERh
dGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKTsKIAogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUV2ZW50RGlzcGF0
Y2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1BvcG92ZXIuanMKaW5kZXggNDY0NDE2ZC4uODQ4Yzk5ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMKQEAgLTIyMSw3ICsyMjEsOCBAQCBXZWJJbnNwZWN0
b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9ob3Zl
clRpbWVyOwogCiAgICAgICAgIHRoaXMuX3BvcHVwID0gdGhpcy5fc2hvd1BvcHVwKGVsZW1lbnQp
OwotICAgICAgICB0aGlzLl9wb3B1cC5jb250ZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZW1vdmUiLCB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIuYmluZCh0aGlzKSwgdHJ1ZSk7Cisg
ICAgICAgIGlmICh0aGlzLl9wb3B1cCkKKyAgICAgICAgICAgIHRoaXMuX3BvcHVwLmNvbnRlbnRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX2tpbGxIaWRlUG9wdXBU
aW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICB9LAogCiAgICAgX2tpbGxIaWRlUG9wdXBUaW1l
cjogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lQWdlbnQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2Vu
dC5qcwppbmRleCAxM2Y5MzdmLi5kM2U4YjJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVBZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVBZ2VudC5qcwpAQCAtNTAsNyArNTAsOCBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVBZ2VudC5SZWNvcmRUeXBlID0gewogICAgIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIDog
MTMsCiAgICAgUmVzb3VyY2VGaW5pc2ggOiAxNCwKICAgICBGdW5jdGlvbkNhbGwgOiAxNSwKLSAg
ICBSZXNvdXJjZVJlY2VpdmVEYXRhOiAxNgorICAgIFJlc291cmNlUmVjZWl2ZURhdGE6IDE2LAor
ICAgIEdDUnVuIDogMTcKIH07CiAKIFdlYkluc3BlY3Rvci5hZGRSZWNvcmRUb1RpbWVsaW5lID0g
ZnVuY3Rpb24ocmVjb3JkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCmluZGV4IDAxN2YzYWEuLmMzOTZhYjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0xNTEsNiArMTUxLDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVjb3JkU3R5bGVz
W3JlY29yZFR5cGVzLlJlc291cmNlRmluaXNoXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRmluaXNoIExvYWRpbmciKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5n
IH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRnVuY3Rpb25DYWxsXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnVuY3Rpb24gQ2FsbCIpLCBjYXRlZ29y
eTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVz
W3JlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZURhdGFdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJSZWNlaXZlIERhdGEiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2Fk
aW5nIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuR0NSdW5dID0geyB0
aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHQyBSdW4iKSwgY2F0ZWdvcnk6IHRoaXMuY2F0
ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc0FycmF5
ID0gcmVjb3JkU3R5bGVzOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmRT
dHlsZXNBcnJheTsKQEAgLTcyNSw2ICs3MjYsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCwgcmVjbwog
ICAgIHRoaXMub3JpZ2luYWxSZWNvcmRGb3JUZXN0cyA9IHJlY29yZDsKICAgICB0aGlzLmNhbGxl
clNjcmlwdE5hbWUgPSByZWNvcmQuY2FsbGVyU2NyaXB0TmFtZTsKICAgICB0aGlzLmNhbGxlclNj
cmlwdExpbmUgPSByZWNvcmQuY2FsbGVyU2NyaXB0TGluZTsKKyAgICB0aGlzLnRvdGFsSGVhcFNp
emUgPSByZWNvcmQudG90YWxIZWFwU2l6ZTsKKyAgICB0aGlzLnVzZWRIZWFwU2l6ZSA9IHJlY29y
ZC51c2VkSGVhcFNpemU7CiAKICAgICAvLyBNYWtlIHJlc291cmNlIHJlY2VpdmUgcmVjb3JkIGxh
c3Qgc2luY2UgcmVxdWVzdCB3YXMgc2VudDsgbWFrZSBmaW5pc2ggcmVjb3JkIGxhc3Qgc2luY2Ug
cmVzcG9uc2UgcmVjZWl2ZWQuCiAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5S
ZXNvdXJjZVNlbmRSZXF1ZXN0KSB7CkBAIC04MTcsNyArODIwLDkgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBjb25z
dCByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGU7CiAg
ICAgICAgIGlmICh0aGlzLmRldGFpbHMpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09
IHJlY29yZFR5cGVzLlRpbWVySW5zdGFsbCB8fAorICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9
PT0gcmVjb3JkVHlwZXMuR0NSdW4gKQorICAgICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJs
ZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xs
ZWN0ZWQiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5kYXRhLnVzZWRIZWFwU2l6ZURlbHRh
KSkpOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50eXBlID09PSByZWNvcmRUeXBlcy5UaW1l
ckluc3RhbGwgfHwKICAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLlRp
bWVyRmlyZSB8fAogICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGlt
ZXJSZW1vdmUpIHsKICAgICAgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hp
bGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgSWQiKSwgdGhp
cy5kYXRhLnRpbWVySWQpKTsKQEAgLTg1NiwxNiArODYxLDIyIEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
cmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkRldGFpbHMiKSwgdGhpcy5kZXRhaWxzKSk7CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAodGhpcy5jYWxsZXJTY3JpcHROYW1lKSB7CisgICAgICAgIGlmICh0aGlzLnR5cGUg
IT09IHJlY29yZFR5cGVzLkdDUnVuICYmIHRoaXMuY2FsbGVyU2NyaXB0TmFtZSkgewogICAgICAg
ICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRoaXMu
Y2FsbGVyU2NyaXB0TmFtZSwgInNjcmlwdHMiLCB0aGlzLmNhbGxlclNjcmlwdExpbmUpOwogICAg
ICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUxpbmtS
b3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYWxsZXIiKSwgbGluaykpOwogICAgICAgICB9Cisg
ICAgICAgIGlmICh0aGlzLnVzZWRIZWFwU2l6ZSkgeworICAgICAgICAgICAgcmVjb3JkQ29udGVu
dFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlVzZWQgSGVhcCBTaXplIiksIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMudXNlZEhlYXBTaXpl
KSkpOworICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2Ny
ZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRvdGFsIEhlYXAgU2l6ZSIpLCBOdW1iZXIu
Ynl0ZXNUb1N0cmluZyh0aGlzLnRvdGFsSGVhcFNpemUpKSk7CisgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIHJlY29yZENvbnRlbnRUYWJsZTsKICAgICB9LAogCiAgICAgX2dldFJlY29yZERldGFp
bHM6IGZ1bmN0aW9uKHJlY29yZCwgc2VuZFJlcXVlc3RSZWNvcmRzKQogICAgIHsKICAgICAgICAg
c3dpdGNoIChyZWNvcmQudHlwZSkgeworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDUnVuOgorICAgICAgICAgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIiVzIGNvbGxlY3RlZCIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHJl
Y29yZC5kYXRhLnVzZWRIZWFwU2l6ZURlbHRhKSk7CiAgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rpb25DYWxsOgogICAgICAgICAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwocmVjb3JkLmRhdGEuc2Ny
aXB0TmFtZSkgKyAiOiIgKyByZWNvcmQuZGF0YS5zY3JpcHRMaW5lOwogICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2ZW50RGlzcGF0Y2g6Cg==
</data>
<flag name="review"
          id="36146"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52629</attachid>
            <date>2010-04-06 06:47:26 -0700</date>
            <delta_ts>2010-04-06 07:18:45 -0700</delta_ts>
            <desc>[patch] Sixth iteration. :)</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>46910</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYjMyYTk4Li4yMGI0ZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MDYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBK
UyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1lbW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3
LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5lcmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVj
dHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQgdGltZSB0byBjb2xsZWN0IHRoZXNlIG9i
amVjdHMuCisgICAgICAgIEdDUnVuIGV2ZW50IHdpbGwgc2hvdyB1cyB0aGVzZSBtb21lbnRzLiBB
bHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2ggbWVtb3J5IGlzIGluIHVzZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MDI1CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1h
cmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYWludC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0wMyAgQW50b25pbyBHb21l
cyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0ZWQg
cmVzdWx0cyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCAyMjE5M2JiLi5hMzQ5MDA4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTE5LDQgKzE5LDUgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlRmluaXNoIDogMTQKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuRnVuY3Rpb25DYWxsIDogMTUKIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VSZWNlaXZlRGF0YSA6IDE2
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdDRXZlbnQgOiAxNwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3Bh
dGNoLWV4cGVjdGVkLnR4dAppbmRleCBhNTI4MTEzLi5kY2Q3MDExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3Rl
ZC50eHQKQEAgLTksNCArOSw2IEBAIEV2ZW50RGlzcGF0Y2ggUHJvcGVydGllczoKICsgY2hpbGRy
ZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDAKKysg
dXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAq
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1sYXlvdXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3Rl
ZC50eHQKaW5kZXggMDMwYWU1OS4uY2JjOGQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQKQEAgLTcsNCArNyw2IEBAIExheW91
dCBQcm9wZXJ0aWVzOgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERF
RklORUQgKgogKyB0eXBlIDogMQorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3Rh
bEhlYXBTaXplIDogKiBERUZJTkVEICoKIFRlc3QgZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CmluZGV4
IDMxMWE0M2QuLjY3NTAzOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKQEAgLTYsNCArNiw2IEBAIE1h
cmtUaW1lbGluZSBQcm9wZXJ0aWVzOgogKy0gbWVzc2FnZSA6IE1BUksgVElNRUxJTkUKICsgfQog
KyB0eXBlIDogMTEKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6
ZSA6ICogREVGSU5FRCAqCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAppbmRleCBlMzBjMDBjLi5j
MjUwZjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29y
ay1yZXNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw4IEBAIFJlc291
cmNlU2VuZFJlcXVlc3QgUHJvcGVydGllczoKICstIGlzTWFpblJlc291cmNlIDogZmFsc2UKICsg
fQogKyB0eXBlIDogMTIKKysgdXNlZEhlYXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFw
U2l6ZSA6ICogREVGSU5FRCAqCiAKIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIFByb3BlcnRpZXM6
CiArIHN0YXJ0VGltZSA6ICogREVGSU5FRCAqCkBAIC0yMyw2ICsyNSw4IEBAIFJlc291cmNlUmVj
ZWl2ZVJlc3BvbnNlIFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5k
VGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiAxMworKyB1c2VkSGVhcFNpemUgOiAqIERFRklO
RUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIAogUmVzb3VyY2VGaW5pc2ggUHJv
cGVydGllczoKICsgc3RhcnRUaW1lIDogKiBERUZJTkVEICoKQEAgLTMyLDQgKzM2LDYgQEAgUmVz
b3VyY2VGaW5pc2ggUHJvcGVydGllczoKICstIHVybCA6ICogREVGSU5FRCAqCiArIH0KICsgdHlw
ZSA6IDE0CisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAq
IERFRklORUQgKgogU2NyaXB0IHJlc291cmNlIGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQKaW5kZXggYzFhMGU0NS4uNmIzOTNm
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0
ZWQudHh0CkBAIC0xMSw0ICsxMSw2IEBAIFBhaW50IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDog
KiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5cGUgOiAzCisrIHVzZWRI
ZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggNTc5ZDNjMS4uNTBhNDM1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApAQCAtMTAsNCAr
MTAsNiBAQCBQYXJzZUhUTUwgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgog
KyBlbmRUaW1lIDogKiBERUZJTkVEICoKICsgdHlwZSA6IDQKKysgdXNlZEhlYXBTaXplIDogKiBE
RUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2FsY3VsYXRl
LXN0eWxlcy1leHBlY3RlZC50eHQKaW5kZXggMDMwNGQzNi4uYTM1YzVjYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2FsY3VsYXRlLXN0eWxlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2FsY3VsYXRlLXN0
eWxlcy1leHBlY3RlZC50eHQKQEAgLTcsNCArNyw2IEBAIFJlY2FsY3VsYXRlU3R5bGVzIFByb3Bl
cnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAq
CiArIHR5cGUgOiAyCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNp
emUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0CmluZGV4IGJkZmE1YjQu
LmVmODBmYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1zY3Jp
cHQtdGFnLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0CkBAIC0xMiw0ICsxMiw2IEBAIEV2YWx1YXRlU2Ny
aXB0IFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICog
REVGSU5FRCAqCiArIHR5cGUgOiAxMAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0
b3RhbEhlYXBTaXplIDogKiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dAppbmRleCBhY2Q3ZjE3
Li44N2Q3NTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtc2Ny
aXB0LXRhZy0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dApAQCAtOSw0ICs5LDYgQEAgRXZhbHVhdGVTY3Jp
cHQgUHJvcGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBE
RUZJTkVEICoKICsgdHlwZSA6IDEwCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRv
dGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS10
ZXN0LmpzCmluZGV4IDgxMTAzMTIuLmQzYzcwYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS10ZXN0LmpzCkBAIC0xMSw2ICsxMSw4IEBAIHZhciB0aW1lbGluZU5vbkRldGVybWluaXN0
aWNQcm9wcyA9IHsKICAgICBjYWxsZXJTY3JpcHROYW1lOiAxLAogICAgIGNhbGxlclNjcmlwdExp
bmU6IDEsCiAgICAgdXJsIDogMSwKKyAgICB1c2VkSGVhcFNpemU6IDEsCisgICAgdG90YWxIZWFw
U2l6ZTogMSwKICAgICBtaW1lVHlwZSA6IDEKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rv
ci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKaW5kZXggMWFmZDJiOS4uNDMx
ZWFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3Bl
Y3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRj
aC1leHBlY3RlZC50eHQKQEAgLTExLDQgKzExLDYgQEAgRXZlbnREaXNwYXRjaCBQcm9wZXJ0aWVz
OgogKyBjaGlsZHJlbiA6ICogREVGSU5FRCAqCiArIGVuZFRpbWUgOiAqIERFRklORUQgKgogKyB0
eXBlIDogMAorKyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDog
KiBERUZJTkVEICoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1l
bGluZS1leHBlY3RlZC50eHQKaW5kZXggZGYyODRkOC4uNDIxM2E1YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1tYXJrLXRp
bWVsaW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CkBAIC04LDQg
KzgsNiBAQCBNYXJrVGltZWxpbmUgUHJvcGVydGllczoKICstIG1lc3NhZ2UgOiBNQVJLIFRJTUVM
SU5FCiArIH0KICsgdHlwZSA6IDExCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRv
dGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90
aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAppbmRleCAzMDZlMzhjLi42NTUz
YWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVj
dG9yL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNv
dXJjZS1leHBlY3RlZC50eHQKQEAgLTEyLDYgKzEyLDggQEAgUmVzb3VyY2VTZW5kUmVxdWVzdCBQ
cm9wZXJ0aWVzOgogKy0gaXNNYWluUmVzb3VyY2UgOiBmYWxzZQogKyB9CiArIHR5cGUgOiAxMgor
KyB1c2VkSGVhcFNpemUgOiAqIERFRklORUQgKgorKyB0b3RhbEhlYXBTaXplIDogKiBERUZJTkVE
ICoKIAogUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVydGllczoKICsgc3RhcnRUaW1lIDog
KiBERUZJTkVEICoKQEAgLTI1LDYgKzI3LDggQEAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgUHJv
cGVydGllczoKICsgY2hpbGRyZW4gOiAqIERFRklORUQgKgogKyBlbmRUaW1lIDogKiBERUZJTkVE
ICoKICsgdHlwZSA6IDEzCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVh
cFNpemUgOiAqIERFRklORUQgKgogCiBSZXNvdXJjZUZpbmlzaCBQcm9wZXJ0aWVzOgogKyBzdGFy
dFRpbWUgOiAqIERFRklORUQgKgpAQCAtMzQsNCArMzgsNiBAQCBSZXNvdXJjZUZpbmlzaCBQcm9w
ZXJ0aWVzOgogKy0gdXJsIDogKiBERUZJTkVEICoKICsgfQogKyB0eXBlIDogMTQKKysgdXNlZEhl
YXBTaXplIDogKiBERUZJTkVEICoKKysgdG90YWxIZWFwU2l6ZSA6ICogREVGSU5FRCAqCiBTY3Jp
cHQgcmVzb3VyY2UgbG9hZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0
ZWQudHh0CmluZGV4IDIwMmJlZTguLmI1NjhiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0b3IvdGltZWxp
bmUtcGFpbnQtZXhwZWN0ZWQudHh0CkBAIC0xMyw0ICsxMyw2IEBAIFBhaW50IFByb3BlcnRpZXM6
CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6ICogREVGSU5FRCAqCiArIHR5
cGUgOiAzCisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisrIHRvdGFsSGVhcFNpemUgOiAq
IERFRklORUQgKgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWV4
cGVjdGVkLnR4dAppbmRleCA4ODJjOTc1Li5kNGY3NGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9pbnNwZWN0
b3IvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKQEAgLTEyLDQgKzEyLDYgQEAgUGFy
c2VIVE1MIFByb3BlcnRpZXM6CiArIGNoaWxkcmVuIDogKiBERUZJTkVEICoKICsgZW5kVGltZSA6
ICogREVGSU5FRCAqCiArIHR5cGUgOiA0CisrIHVzZWRIZWFwU2l6ZSA6ICogREVGSU5FRCAqCisr
IHRvdGFsSGVhcFNpemUgOiAqIERFRklORUQgKgogVGVzdCBkYXRhCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmNzExMGYuLmYxYzFiNGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDQtMDYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRoZSBKUyBjb2RlIGNhbiBiZSBub3Qgb3B0aW1hbCBmcm9tIG1l
bW9yeSB1c2FnZSBwb2ludCBvZiB2aWV3LgorICAgICAgICBBcyBleGFtcGxlIGl0IGNhbiBnZW5l
cmF0ZSBhIGxvdCBvZiB0ZW1wIG9iamVjdHMgYW5kIEdDIHdpbGwgc3BlbmQgc2lnbmlmaWNhbnQg
dGltZSB0byBjb2xsZWN0IHRoZXNlIG9iamVjdHMuCisgICAgICAgIEdDIGV2ZW50IHdpbGwgc2hv
dyB1cyB0aGVzZSBtb21lbnRzLiBBbHNvIGVhY2ggZXZlbnQgY2FuIHNob3cgdXMgaG93IG11Y2gg
bWVtb3J5IGlzIGluIHVzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM3MDI1CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpw
dXNoR0NFdmVudFJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkR0MpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
fkluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3Jk
VG9UaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpz
ZXRIZWFwU2l6ZVN0YXRpc3RpYyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5zdGFuY2VDb3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpUaW1lbGluZVJlY29yZEVu
dHJ5OjpUaW1lbGluZVJlY29yZEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OkdDRXZlbnQ6OkdDRXZlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5fbW91c2VI
b3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3Rv
dHlwZS5fZ2VuZXJhdGVQb3B1cENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2V0UmVjb3JkRGV0YWlscyk6CisK
IDIwMTAtMDMtMjkgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDczZjA3NDliOWI4M2JhNzVmN2Y5YTliMTliM2M4NDk4ZDUy
M2NlNzIuLjYyYmEyZDE5ZDcwODVkNzU0OTU1ZGU1ZjAyODcyNTI2NWJmNDZkMDMgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjEyCnpjbWNieW5DYVlkclZUZUhQUFAkSzVle1cyVz1MZzdW
TmhXMzBNZHlKMXE9JDReVzgtU0Z+bGRJX2NScF5WYVI3Rgp6MGprUERTM2h9SEFRdmF4NDNPSCU3
cjVFRGxZIzFVZkgwTElkR2JYVTttSCVZKj81dH03KW1CSDh0Nnw+NU15Q1MKblFwTXx4Jjs/UCE+
ZHhRe2JlQz9meEVQcWw7TDE9MkcmMndBNzl8RjIxfSs4d21uYnEpCgpkZWx0YSA5ClJjbVhATm9h
eDQ1clZUZUgwc3Q4JDFyN2lKCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMzE2ODQ0Li5iNTU3MDg4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIwLDYg
KzgyMCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuaCcsCisgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvU2NyaXB0R0NFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1NjcmlwdEdDRXZlbnQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvU2NyaXB0SW5z
dGFuY2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRJbnN0YW5jZS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwJywKQEAgLTE2NDYsNiAr
MTY0OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaCcsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oJywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KaW5kZXggZDNhZmY5MS4uNmM0OTVlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMDgyLDYgKzEwODIsNyBA
QCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogICAg
IGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgYmluZGluZ3MvanMvU2Ny
aXB0RnVuY3Rpb25DYWxsLmggXAorICAgIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnQuaCBcCiAg
ICAgYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdFNv
dXJjZUNvZGUuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBA
IC0xNDI4LDYgKzE0MjksNyBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2UuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBcCiAg
ICAgaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisgICAgaW5zcGVjdG9yL1Njcmlw
dEdDRXZlbnRMaXN0ZW5lci5oIFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggXAogICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBcCiAgICAg
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmggXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdEdDRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Nzg5MmU3
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmgK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0R0NFdmVudF9oCisjZGVmaW5lIFNjcmlwdEdD
RXZlbnRfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTY3JpcHRHQ0V2ZW50TGlzdGVuZXI7CisKK2NsYXNzIFNjcmlwdEdDRXZlbnQKK3sK
K3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhZGRFdmVudExpc3RlbmVyKFNjcmlwdEdDRXZlbnRM
aXN0ZW5lciopIHsgfQorICAgIHN0YXRpYyB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoU2NyaXB0
R0NFdmVudExpc3RlbmVyKikgeyB9CisgICAgc3RhdGljIHZvaWQgZ2V0SGVhcFNpemUoc2l6ZV90
Jiwgc2l6ZV90JikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyAhRU5BQkxFKElOU1BFQ1RPUikKKyNlbmRpZiAvLyAhZGVmaW5lZChTY3JpcHRHQ0V2ZW50X2gp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdDRXZlbnQuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hNThhMGNkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRHQ0V2ZW50LmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50TGlz
dGVuZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1NjcmlwdEdDRXZlbnQ6OkdDRXZlbnRMaXN0ZW5lcnMgU2NyaXB0R0NFdmVudDo6
c19ldmVudExpc3RlbmVyczsKK2RvdWJsZSBTY3JpcHRHQ0V2ZW50OjpzX3N0YXJ0VGltZSA9IDAu
MDsKK3NpemVfdCBTY3JpcHRHQ0V2ZW50OjpzX3VzZWRIZWFwU2l6ZSA9IDA7CisKK3ZvaWQgU2Ny
aXB0R0NFdmVudDo6YWRkRXZlbnRMaXN0ZW5lcihTY3JpcHRHQ0V2ZW50TGlzdGVuZXIqIGV2ZW50
TGlzdGVuZXIpCit7CisgICAgQVNTRVJUKGV2ZW50TGlzdGVuZXIpOworICAgIGlmIChzX2V2ZW50
TGlzdGVuZXJzLmlzRW1wdHkoKSkgeworICAgICAgICB2ODo6Vjg6OkFkZEdDUHJvbG9ndWVDYWxs
YmFjayhTY3JpcHRHQ0V2ZW50OjpnY1Byb2xvZ3VlQ2FsbGJhY2spOworICAgICAgICB2ODo6Vjg6
OkFkZEdDRXBpbG9ndWVDYWxsYmFjayhTY3JpcHRHQ0V2ZW50OjpnY0VwaWxvZ3VlQ2FsbGJhY2sp
OworICAgIH0KKyAgICBzX2V2ZW50TGlzdGVuZXJzLmFwcGVuZChldmVudExpc3RlbmVyKTsKK30K
Kwordm9pZCBTY3JpcHRHQ0V2ZW50OjpyZW1vdmVFdmVudExpc3RlbmVyKFNjcmlwdEdDRXZlbnRM
aXN0ZW5lciogZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBBU1NFUlQoZXZlbnRMaXN0ZW5lcik7Cisg
ICAgQVNTRVJUKCFzX2V2ZW50TGlzdGVuZXJzLmlzRW1wdHkoKSk7CisgICAgc2l6ZV90IGkgPSBz
X2V2ZW50TGlzdGVuZXJzLmZpbmQoZXZlbnRMaXN0ZW5lcik7CisgICAgQVNTRVJUKGkgIT0gbm90
Rm91bmQpOworICAgIHNfZXZlbnRMaXN0ZW5lcnMucmVtb3ZlKGkpOworICAgIGlmIChzX2V2ZW50
TGlzdGVuZXJzLmlzRW1wdHkoKSkgeworICAgICAgICB2ODo6Vjg6OlJlbW92ZUdDUHJvbG9ndWVD
YWxsYmFjayhTY3JpcHRHQ0V2ZW50OjpnY1Byb2xvZ3VlQ2FsbGJhY2spOworICAgICAgICB2ODo6
Vjg6OlJlbW92ZUdDRXBpbG9ndWVDYWxsYmFjayhTY3JpcHRHQ0V2ZW50OjpnY0VwaWxvZ3VlQ2Fs
bGJhY2spOworICAgIH0KK30KKwordm9pZCBTY3JpcHRHQ0V2ZW50OjpnZXRIZWFwU2l6ZShzaXpl
X3QmIHVzZWRIZWFwU2l6ZSwgc2l6ZV90JiB0b3RhbEhlYXBTaXplKQoreworICAgIHY4OjpIZWFw
U3RhdGlzdGljcyBoZWFwU3RhdGlzdGljczsKKyAgICB2ODo6Vjg6OkdldEhlYXBTdGF0aXN0aWNz
KCZoZWFwU3RhdGlzdGljcyk7CisgICAgdXNlZEhlYXBTaXplID0gaGVhcFN0YXRpc3RpY3MudXNl
ZF9oZWFwX3NpemUoKTsKKyAgICB0b3RhbEhlYXBTaXplID0gaGVhcFN0YXRpc3RpY3MudG90YWxf
aGVhcF9zaXplKCk7Cit9CisKK3NpemVfdCBTY3JpcHRHQ0V2ZW50OjpnZXRVc2VkSGVhcFNpemUo
KQoreworICAgIHY4OjpIZWFwU3RhdGlzdGljcyBoZWFwU3RhdGlzdGljczsKKyAgICB2ODo6Vjg6
OkdldEhlYXBTdGF0aXN0aWNzKCZoZWFwU3RhdGlzdGljcyk7CisgICAgcmV0dXJuIGhlYXBTdGF0
aXN0aWNzLnVzZWRfaGVhcF9zaXplKCk7Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudDo6Z2NQcm9s
b2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFncykK
K3sKKyAgICBzX3N0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWVNUygpOworICAgIHNfdXNlZEhl
YXBTaXplID0gZ2V0VXNlZEhlYXBTaXplKCk7Cit9CisKK3ZvaWQgU2NyaXB0R0NFdmVudDo6Z2NF
cGlsb2d1ZUNhbGxiYWNrKHY4OjpHQ1R5cGUgdHlwZSwgdjg6OkdDQ2FsbGJhY2tGbGFncyBmbGFn
cykKK3sKKyAgICBkb3VibGUgZW5kVGltZSA9IFdURjo6Y3VycmVudFRpbWVNUygpOworICAgIHNp
emVfdCBjb2xsZWN0ZWRCeXRlcyA9IHNfdXNlZEhlYXBTaXplIC0gZ2V0VXNlZEhlYXBTaXplKCk7
CisgICAgR0NFdmVudExpc3RlbmVycyBsaXN0ZW5lcnMoc19ldmVudExpc3RlbmVycyk7CisgICAg
Zm9yIChHQ0V2ZW50TGlzdGVuZXJzOjppdGVyYXRvciBpID0gbGlzdGVuZXJzLmJlZ2luKCk7IGkg
IT0gbGlzdGVuZXJzLmVuZCgpOyArK2kpCisgICAgICAgICgqaSktPmRpZEdDKHNfc3RhcnRUaW1l
LCBlbmRUaW1lLCBjb2xsZWN0ZWRCeXRlcyk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEdD
RXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGE1YTM4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRHQ0V2ZW50LmgKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoK
KyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
KiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBTY3JpcHRHQ0V2
ZW50X2gKKyNkZWZpbmUgU2NyaXB0R0NFdmVudF9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjaW5jbHVkZSAidjguaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0R0NFdmVudExpc3RlbmVyOworCitjbGFzcyBTY3JpcHRH
Q0V2ZW50Cit7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihTY3Jp
cHRHQ0V2ZW50TGlzdGVuZXIqKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KFNjcmlwdEdDRXZlbnRMaXN0ZW5lciopOworICAgIHN0YXRpYyB2b2lkIGdldEhlYXBTaXplKHNp
emVfdCYsIHNpemVfdCYpOworcHJpdmF0ZToKKyAgICB0eXBlZGVmIFZlY3RvcjxTY3JpcHRHQ0V2
ZW50TGlzdGVuZXIqPiBHQ0V2ZW50TGlzdGVuZXJzOworICAgIHN0YXRpYyBHQ0V2ZW50TGlzdGVu
ZXJzIHNfZXZlbnRMaXN0ZW5lcnM7CisgICAgc3RhdGljIGRvdWJsZSBzX3N0YXJ0VGltZTsKKyAg
ICBzdGF0aWMgc2l6ZV90IHNfdXNlZEhlYXBTaXplOworIAorICAgIHN0YXRpYyB2b2lkIGdjRXBp
bG9ndWVDYWxsYmFjayh2ODo6R0NUeXBlIHR5cGUsIHY4OjpHQ0NhbGxiYWNrRmxhZ3MgZmxhZ3Mp
OworICAgIHN0YXRpYyB2b2lkIGdjUHJvbG9ndWVDYWxsYmFjayh2ODo6R0NUeXBlIHR5cGUsIHY4
OjpHQ0NhbGxiYWNrRmxhZ3MgZmxhZ3MpOworICAgIHN0YXRpYyBzaXplX3QgZ2V0VXNlZEhlYXBT
aXplKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhRU5BQkxF
KElOU1BFQ1RPUikKKyNlbmRpZiAvLyAhZGVmaW5lZChTY3JpcHRHQ0V2ZW50X2gpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDJiZjY2ZWUuLjU4
YzYzN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CkBAIC01MCwxMyArNTAsMzEgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBtX2Zyb250ZW5k
KGZyb250ZW5kKQogewogICAgICsrc19pbnN0YW5jZUNvdW50OworICAgIFNjcmlwdEdDRXZlbnQ6
OmFkZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgQVNTRVJUKG1fZnJvbnRlbmQpOwogfQogCit2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCit7CisgICAg
Zm9yIChHQ0V2ZW50czo6aXRlcmF0b3IgaSA9IG1fZ2NFdmVudHMuYmVnaW4oKTsgaSAhPSBtX2dj
RXZlbnRzLmVuZCgpOyArK2kpIHsKKyAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBpLT5zdGFy
dFRpbWUpOworICAgICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHQ0V2ZW50RGF0YShtX2Zyb250ZW5kLCBpLT5jb2xsZWN0ZWRCeXRlcykpOworICAg
ICAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CisgICAgICAgIGFkZFJlY29y
ZFRvVGltZWxpbmUocmVjb3JkLCBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB9Cisg
ICAgbV9nY0V2ZW50cy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZEdDKGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBzaXplX3QgY29sbGVjdGVk
Qnl0ZXNDb3VudCkKK3sKKyAgICBtX2djRXZlbnRzLmFwcGVuZChHQ0V2ZW50KHN0YXJ0VGltZSwg
ZW5kVGltZSwgY29sbGVjdGVkQnl0ZXNDb3VudCkpOworfQorCiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpCiB7CiAgICAgQVNTRVJUKHNfaW5zdGFuY2VD
b3VudCk7CiAgICAgLS1zX2luc3RhbmNlQ291bnQ7CisgICAgU2NyaXB0R0NFdmVudDo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcih0aGlzKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUp
CkBAIC0xMjYsMTQgKzE0NCwxNCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdy
aXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmds
ZVNob3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNv
bmRzKCkpOworICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwog
ICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVy
SW5zdGFsbERhdGEobV9mcm9udGVuZCwgdGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCkpOwog
ICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lckluc3RhbGxUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVy
KGludCB0aW1lcklkKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgY3VycmVudFRpbWVJbk1p
bGxpc2Vjb25kcygpKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVN
UygpKTsKICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljVGltZXJEYXRhKG1fZnJvbnRlbmQsIHRpbWVySWQpKTsKICAgICBhZGRSZWNvcmRU
b1RpbWVsaW5lKHJlY29yZCwgVGltZXJSZW1vdmVUaW1lbGluZVJlY29yZFR5cGUpOwogfQpAQCAt
MTgxLDkgKzE5OSwxMSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1YXRl
U2NyaXB0KCkKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGlzTWFpblJlc291cmNlLAogICAg
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAgcHVzaEdDRXZlbnRSZWNvcmRz
KCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAg
cmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VT
ZW5kUmVxdWVzdERhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UsIHJl
cXVlc3QpKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VTZW5kUmVxdWVzdFRpbWVs
aW5lUmVjb3JkVHlwZSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsKICAgICBt
X2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9CiAKQEAgLTIwOSwxNSAr
MjI5LDE3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNl
UmVzcG9uc2UoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRp
bmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkKIHsKLSAg
ICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKG1fZnJvbnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAg
cHVzaEdDRXZlbnRSZWNvcmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJl
bnRUaW1lTVMoKSk7CiAgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIGRpZEZh
aWwpKTsKICAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29y
ZFR5cGUpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVu
ZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAg
U2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZChtX2Zyb250ZW5kLCBjdXJyZW50VGltZUluTWlsbGlzZWNvbmRzKCkpOworICAgIFNj
cmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNS
ZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIHJlY29yZC5zZXQo
ImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobV9m
cm9udGVuZCwgbWVzc2FnZSkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJr
VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KQEAgLTIzNSw4ICsyNTcsMTEgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW4KIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRU
b1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQot
eworeyAgCisgICAgaWYgKHR5cGUgIT0gR0NFdmVudFRpbWVsaW5lUmVjb3JkVHlwZSkKKyAgICAg
ICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAgICAgcmVjb3JkLnNldCgidHlwZSIsIHR5cGUpOwor
ICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgaWYgKG1fcmVjb3JkU3RhY2su
aXNFbXB0eSgpKQogICAgICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29y
ZCk7CiAgICAgZWxzZSB7CkBAIC0yNDUsNiArMjcwLDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3QgcmVjb3JkLCBUaW1lbGlu
ZVJlCiAgICAgfQogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXpl
U3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpCit7CisgICAgc2l6ZV90IHVzZWRIZWFwU2l6
ZSA9IDA7CisgICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOworICAgIFNjcmlwdEdDRXZlbnQ6
OmdldEhlYXBTaXplKHVzZWRIZWFwU2l6ZSwgdG90YWxIZWFwU2l6ZSk7CisgICAgcmVjb3JkLnNl
dCgidXNlZEhlYXBTaXplIiwgdXNlZEhlYXBTaXplKTsKKyAgICByZWNvcmQuc2V0KCJ0b3RhbEhl
YXBTaXplIiwgdG90YWxIZWFwU2l6ZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogewog
ICAgIC8vIEFuIGVtcHR5IHN0YWNrIGNvdWxkIG1lcmVseSBtZWFuIHRoYXQgdGhlIHRpbWVsaW5l
IGFnZW50IHdhcyB0dXJuZWQgb24gaW4gdGhlIG1pZGRsZSBvZgpAQCAtMjU1LDE5ICsyODksMTUg
QEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAgICAgICAgIEFTU0VSVChlbnRyeS50eXBlID09IHR5
cGUpOwogICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJkYXRhIiwgZW50cnkuZGF0YSk7CiAgICAg
ICAgIGVudHJ5LnJlY29yZC5zZXQoImNoaWxkcmVuIiwgZW50cnkuY2hpbGRyZW4pOwotICAgICAg
ICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1lIiwgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcygp
KTsKKyAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZW5kVGltZSIsIFdURjo6Y3VycmVudFRpbWVN
UygpKTsKICAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5yZWNvcmQsIHR5cGUpOwog
ICAgIH0KIH0KIAotZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmN1cnJlbnRUaW1lSW5N
aWxsaXNlY29uZHMoKQotewotICAgIHJldHVybiBjdXJyZW50VGltZSgpICogMTAwMC4wOwotfQot
CiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9i
amVjdCBkYXRhLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKIHsKLSAgICBTY3JpcHRPYmplY3Qg
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJv
bnRlbmQsIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMoKSk7CisgICAgcHVzaEdDRXZlbnRSZWNv
cmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAg
ICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEs
IG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCksIHR5cGUpKTsKIH0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCA1NmM5MThjLi4yZmU4NDAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC0zNSwxMTIgKzM1LDEzMiBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2NyaXB0R0NF
dmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNj
cmlwdE9iamVjdC5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgRXZlbnQ7Ci0gICAgY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAgICBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLQotICAgIC8vIE11c3Qg
YmUga2VwdCBpbiBzeW5jIHdpdGggVGltZWxpbmVBZ2VudC5qcwotICAgIGVudW0gVGltZWxpbmVS
ZWNvcmRUeXBlIHsKLSAgICAgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAs
Ci0gICAgICAgIExheW91dFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEsCi0gICAgICAgIFJlY2FsY3Vs
YXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlID0gMiwKLSAgICAgICAgUGFpbnRUaW1lbGluZVJl
Y29yZFR5cGUgPSAzLAotICAgICAgICBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUgPSA0LAot
ICAgICAgICBUaW1lckluc3RhbGxUaW1lbGluZVJlY29yZFR5cGUgPSA1LAotICAgICAgICBUaW1l
clJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSA9IDYsCi0gICAgICAgIFRpbWVyRmlyZVRpbWVsaW5l
UmVjb3JkVHlwZSA9IDcsCi0gICAgICAgIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlID0g
OCwKLSAgICAgICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAotICAgICAgICBFdmFsdWF0ZVNjcmlw
dFRpbWVsaW5lUmVjb3JkVHlwZSA9IDEwLAotICAgICAgICBNYXJrVGltZWxpbmVSZWNvcmRUeXBl
ID0gMTEsCi0gICAgICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUgPSAx
MiwKLSAgICAgICAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUgPSAx
MywKLSAgICAgICAgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUgPSAxNCwKLSAgICAg
ICAgRnVuY3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCi0gICAgICAgIFJlY2VpdmVS
ZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUgPSAxNiwKLSAgICB9OwotCi0gICAgY2xhc3Mg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGlj
OgotICAgICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCk7Ci0gICAgICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7Ci0KLSAgICAgICAgdm9p
ZCByZXNldCgpOwotICAgICAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0
b3JGcm9udGVuZCopOwotCi0gICAgICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4K
LSAgICAgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwg
aW50IHNjcmlwdExpbmUpOwotICAgICAgICB2b2lkIGRpZENhbGxGdW5jdGlvbigpOwotCi0gICAg
ICAgIHZvaWQgd2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmKTsKLSAgICAgICAgdm9pZCBk
aWREaXNwYXRjaEV2ZW50KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsTGF5b3V0KCk7Ci0gICAgICAg
IHZvaWQgZGlkTGF5b3V0KCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgp
OwotICAgICAgICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKLQotICAgICAgICB2b2lkIHdp
bGxQYWludChjb25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIHZvaWQgZGlkUGFpbnQoKTsKLQotICAg
ICAgICB2b2lkIHdpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50
IHN0YXJ0TGluZSk7Ci0gICAgICAgIHZvaWQgZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRM
aW5lKTsKK2NsYXNzIEV2ZW50OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnRS
ZWN0OworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKwor
Ly8gTXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCBUaW1lbGluZUFnZW50LmpzCitlbnVtIFRpbWVs
aW5lUmVjb3JkVHlwZSB7CisgICAgRXZlbnREaXNwYXRjaFRpbWVsaW5lUmVjb3JkVHlwZSA9IDAs
CisgICAgTGF5b3V0VGltZWxpbmVSZWNvcmRUeXBlID0gMSwKKyAgICBSZWNhbGN1bGF0ZVN0eWxl
c1RpbWVsaW5lUmVjb3JkVHlwZSA9IDIsCisgICAgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUgPSAz
LAorICAgIFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSA9IDQsCisgICAgVGltZXJJbnN0YWxs
VGltZWxpbmVSZWNvcmRUeXBlID0gNSwKKyAgICBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlw
ZSA9IDYsCisgICAgVGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlID0gNywKKyAgICBYSFJSZWFk
eVN0YXRlQ2hhbmdlUmVjb3JkVHlwZSA9IDgsCisgICAgWEhSTG9hZFJlY29yZFR5cGUgPSA5LAor
ICAgIEV2YWx1YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlID0gMTAsCisgICAgTWFya1RpbWVs
aW5lUmVjb3JkVHlwZSA9IDExLAorICAgIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29y
ZFR5cGUgPSAxMiwKKyAgICBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlw
ZSA9IDEzLAorICAgIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlID0gMTQsCisgICAg
RnVuY3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBlID0gMTUsCisgICAgUmVjZWl2ZVJlc291cmNl
RGF0YVRpbWVsaW5lUmVjb3JkVHlwZSA9IDE2LAorICAgIEdDRXZlbnRUaW1lbGluZVJlY29yZFR5
cGUgPSAxNywKK307CisKK2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBTY3JpcHRHQ0V2
ZW50TGlzdGVuZXIsIHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOworICAgIH5JbnNwZWN0
b3JUaW1lbGluZUFnZW50KCk7CisKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCByZXNldEZy
b250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKworICAgIC8vIE1ldGhvZHMg
Y2FsbGVkIGZyb20gV2ViQ29yZS4KKyAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CisgICAgdm9pZCBkaWRDYWxsRnVuY3Rp
b24oKTsKKworICAgIHZvaWQgd2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmKTsKKyAgICB2
b2lkIGRpZERpc3BhdGNoRXZlbnQoKTsKKworICAgIHZvaWQgd2lsbExheW91dCgpOworICAgIHZv
aWQgZGlkTGF5b3V0KCk7CisKKyAgICB2b2lkIHdpbGxSZWNhbGN1bGF0ZVN0eWxlKCk7CisgICAg
dm9pZCBkaWRSZWNhbGN1bGF0ZVN0eWxlKCk7CisKKyAgICB2b2lkIHdpbGxQYWludChjb25zdCBJ
bnRSZWN0Jik7CisgICAgdm9pZCBkaWRQYWludCgpOworCisgICAgdm9pZCB3aWxsV3JpdGVIVE1M
KHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOworICAgIHZvaWQg
ZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5lKTsKICAgICAgICAgCi0gICAgICAgIHZv
aWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVT
aG90KTsKLSAgICAgICAgdm9pZCBkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCk7Ci0gICAgICAg
IHZvaWQgd2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCk7Ci0gICAgICAgIHZvaWQgZGlkRmlyZVRp
bWVyKCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJp
bmcmLCBpbnQpOwotICAgICAgICB2b2lkIGRpZENoYW5nZVhIUlJlYWR5U3RhdGUoKTsKLSAgICAg
ICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgdm9pZCBkaWRMb2Fk
WEhSKCk7Ci0KLSAgICAgICAgdm9pZCB3aWxsRXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiwg
aW50KTsKLSAgICAgICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdCgpOwotCi0gICAgICAgIHZvaWQg
ZGlkTWFya1RpbWVsaW5lKGNvbnN0IFN0cmluZyYpOwotCi0gICAgICAgIHZvaWQgd2lsbFNlbmRS
ZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZywgYm9vbCBpc01haW5SZXNvdXJjZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdm9p
ZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpOwotICAgICAgICB2b2lkIGRpZEZpbmlzaExv
YWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nLCBib29sIGRpZEZhaWwpOwotICAgICAgICB2b2lk
IHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpOworICAgIHZvaWQgZGlkSW5zdGFsbFRp
bWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICB2b2lk
IGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKTsKKyAgICB2b2lkIHdpbGxGaXJlVGltZXIoaW50
IHRpbWVySWQpOworICAgIHZvaWQgZGlkRmlyZVRpbWVyKCk7CisKKyAgICB2b2lkIHdpbGxDaGFu
Z2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYsIGludCk7CisgICAgdm9pZCBkaWRDaGFuZ2VY
SFJSZWFkeVN0YXRlKCk7CisgICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIGRpZExvYWRYSFIoKTsKKworICAgIHZvaWQgd2lsbEV2YWx1YXRlU2NyaXB0KGNvbnN0
IFN0cmluZyYsIGludCk7CisgICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdCgpOworCisgICAgdm9p
ZCBkaWRNYXJrVGltZWxpbmUoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIHdpbGxTZW5kUmVz
b3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVSZXNvdXJjZVJlc3BvbnNlKCk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2Uo
dW5zaWduZWQgbG9uZywgYm9vbCBkaWRGYWlsKTsKKyAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3Vy
Y2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
b3VyY2VEYXRhKCk7CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgaW50IGluc3RhbmNlQ291bnQo
KSB7IHJldHVybiBzX2luc3RhbmNlQ291bnQ7IH0KLSAgICAgICAgc3RhdGljIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQqIHJldHJpZXZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKLSAgICAgICAgICAg
IFRpbWVsaW5lUmVjb3JkRW50cnkoU2NyaXB0T2JqZWN0IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRh
dGEsIFNjcmlwdEFycmF5IGNoaWxkcmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkgOiByZWNv
cmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpIHsg
fQotICAgICAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZDsKLSAgICAgICAgICAgIFNjcmlwdE9i
amVjdCBkYXRhOwotICAgICAgICAgICAgU2NyaXB0QXJyYXkgY2hpbGRyZW47Ci0gICAgICAgICAg
ICBUaW1lbGluZVJlY29yZFR5cGUgdHlwZTsKLSAgICAgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkR0MoZG91YmxlLCBkb3VibGUsIHNpemVfdCk7CisKKyAgICBzdGF0aWMgaW50IGluc3RhbmNl
Q291bnQoKSB7IHJldHVybiBzX2luc3RhbmNlQ291bnQ7IH0KKyAgICBzdGF0aWMgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogcmV0cmlldmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcml2
YXRlOgorICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKKyAgICAgICAgVGltZWxpbmVS
ZWNvcmRFbnRyeShTY3JpcHRPYmplY3QgcmVjb3JkLCBTY3JpcHRPYmplY3QgZGF0YSwgU2NyaXB0
QXJyYXkgY2hpbGRyZW4sIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQorICAgICAgICAgICAgOiBy
ZWNvcmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUp
CisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBTY3JpcHRPYmplY3QgcmVjb3JkOworICAg
ICAgICBTY3JpcHRPYmplY3QgZGF0YTsKKyAgICAgICAgU2NyaXB0QXJyYXkgY2hpbGRyZW47Cisg
ICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlOworICAgIH07CiAgICAgICAgIAotICAgICAg
ICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBl
KTsKKyAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNv
cmRUeXBlKTsKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNv
cmQpOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIGRvdWJsZSBjdXJyZW50VGltZUluTWlsbGlz
ZWNvbmRzKCk7CisgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNv
cmRUeXBlKTsKIAotICAgICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZFR5cGUpOworICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3Qs
IFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKLSAgICAgICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5l
KFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIHB1c2hHQ0V2ZW50
UmVjb3JkcygpOwogCi0gICAgICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAg
IEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwogCi0gICAgICAgIFZlY3RvcjwgVGltZWxp
bmVSZWNvcmRFbnRyeSA+IG1fcmVjb3JkU3RhY2s7Ci0gICAgICAgIHN0YXRpYyBpbnQgc19pbnN0
YW5jZUNvdW50OworICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3JlY29yZFN0YWNr
OworICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OworICAgIHN0cnVjdCBHQ0V2ZW50IHsK
KyAgICAgICAgR0NFdmVudChkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgc2l6ZV90
IGNvbGxlY3RlZEJ5dGVzKQorICAgICAgICAgICAgOiBzdGFydFRpbWUoc3RhcnRUaW1lKSwgZW5k
VGltZShlbmRUaW1lKSwgY29sbGVjdGVkQnl0ZXMoY29sbGVjdGVkQnl0ZXMpCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgICAgICBkb3VibGUgc3RhcnRUaW1lOworICAgICAgICBkb3VibGUgZW5k
VGltZTsKKyAgICAgICAgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzOwogICAgIH07CisgICAgdHlwZWRl
ZiBWZWN0b3I8R0NFdmVudD4gR0NFdmVudHM7CisgICAgR0NFdmVudHMgbV9nY0V2ZW50czsKK307
CiAKIGlubGluZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpyZXRyaWV2ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0R0NFdmVudExpc3RlbmVyLmggYi9XZWJDb3JlL2lu
c3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wODUwZjBjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
U2NyaXB0R0NFdmVudExpc3RlbmVyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0R0NF
dmVudExpc3RlbmVyX2gKKyNkZWZpbmUgU2NyaXB0R0NFdmVudExpc3RlbmVyX2gKKworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0R0NF
dmVudExpc3RlbmVyCit7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGRpZEdDKGRvdWJsZSBz
dGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBzaXplX3QgY29sbGVjdGVkQnl0ZXMpID0gMDsKKyAg
ICB2aXJ0dWFsIH5TY3JpcHRHQ0V2ZW50TGlzdGVuZXIoKXt9Cit9OworICAgIAorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIUVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8g
IWRlZmluZWQoU2NyaXB0R0NFdmVudExpc3RlbmVyX2gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCAyYWQwODlkLi5mOGIzOTI5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBA
IFNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250CiAgICAgcmV0dXJuIHJlY29yZDsKIH0KIAorU2NyaXB0
T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpCit7Cisg
ICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7CisgICAg
ZGF0YS5zZXQoInVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEpOworICAgIHJl
dHVybiBkYXRhOworfQorCiBTY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkKIHsKICAgICBTY3JpcHRPYmplY3QgZGF0
YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggOGRhZjkxNS4uMmY0ODVkMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTQ2LDYgKzQ2LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVh
dGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiwgZG91YmxlIHN0YXJ0VGltZSk7CiAK
KyAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVHQ0V2ZW50RGF0YShJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CisKICAg
ICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3Rv
ckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAK
ICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2ZW50Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
b3BvdmVyLmpzCmluZGV4IDQ2NDQxNmQuLjg0OGM5OWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qb3BvdmVyLmpzCkBAIC0yMjEsNyArMjIxLDggQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXJI
ZWxwZXIucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAog
ICAgICAgICB0aGlzLl9wb3B1cCA9IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAg
dGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
dGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICBpZiAo
dGhpcy5fcG9wdXApCisgICAgICAgICAgICB0aGlzLl9wb3B1cC5jb250ZW50RWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIuYmluZCh0
aGlzKSwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIF9raWxsSGlkZVBvcHVwVGltZXI6IGZ1bmN0aW9u
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lQWdlbnQuanMKaW5kZXgg
MTNmOTM3Zi4uOTg2YmM2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lQWdlbnQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lQWdlbnQuanMKQEAgLTUwLDcgKzUwLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQu
UmVjb3JkVHlwZSA9IHsKICAgICBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSA6IDEzLAogICAgIFJl
c291cmNlRmluaXNoIDogMTQsCiAgICAgRnVuY3Rpb25DYWxsIDogMTUsCi0gICAgUmVzb3VyY2VS
ZWNlaXZlRGF0YTogMTYKKyAgICBSZXNvdXJjZVJlY2VpdmVEYXRhOiAxNiwKKyAgICBHQ0V2ZW50
IDogMTcKIH07CiAKIFdlYkluc3BlY3Rvci5hZGRSZWNvcmRUb1RpbWVsaW5lID0gZnVuY3Rpb24o
cmVjb3JkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
CmluZGV4IDAxN2YzYWEuLmNjZTljMTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0xNTEsNiArMTUxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5
cGVzLlJlc291cmNlRmluaXNoXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlu
aXNoIExvYWRpbmciKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07CiAgICAg
ICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRnVuY3Rpb25DYWxsXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnVuY3Rpb24gQ2FsbCIpLCBjYXRlZ29yeTogdGhpcy5j
YXRlZ29yaWVzLnNjcmlwdGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5
cGVzLlJlc291cmNlUmVjZWl2ZURhdGFdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJSZWNlaXZlIERhdGEiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07Cisg
ICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuR0NFdmVudF0gPSB7IHRpdGxlOiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdDIEV2ZW50IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3Jp
ZXMuc2NyaXB0aW5nIH07CiAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNBcnJheSA9IHJl
Y29yZFN0eWxlczsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVz
QXJyYXk7CkBAIC03MjUsNiArNzI2LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY28KICAgICB0
aGlzLm9yaWdpbmFsUmVjb3JkRm9yVGVzdHMgPSByZWNvcmQ7CiAgICAgdGhpcy5jYWxsZXJTY3Jp
cHROYW1lID0gcmVjb3JkLmNhbGxlclNjcmlwdE5hbWU7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHRM
aW5lID0gcmVjb3JkLmNhbGxlclNjcmlwdExpbmU7CisgICAgdGhpcy50b3RhbEhlYXBTaXplID0g
cmVjb3JkLnRvdGFsSGVhcFNpemU7CisgICAgdGhpcy51c2VkSGVhcFNpemUgPSByZWNvcmQudXNl
ZEhlYXBTaXplOwogCiAgICAgLy8gTWFrZSByZXNvdXJjZSByZWNlaXZlIHJlY29yZCBsYXN0IHNp
bmNlIHJlcXVlc3Qgd2FzIHNlbnQ7IG1ha2UgZmluaXNoIHJlY29yZCBsYXN0IHNpbmNlIHJlc3Bv
bnNlIHJlY2VpdmVkLgogICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuUmVzb3Vy
Y2VTZW5kUmVxdWVzdCkgewpAQCAtODE3LDcgKzgyMCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgY29uc3QgcmVj
b3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlOwogICAgICAg
ICBpZiAodGhpcy5kZXRhaWxzKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSByZWNv
cmRUeXBlcy5UaW1lckluc3RhbGwgfHwKKyAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IHJl
Y29yZFR5cGVzLkdDRXZlbnQgKQorICAgICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5h
cHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xsZWN0
ZWQiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5kYXRhLnVzZWRIZWFwU2l6ZURlbHRhKSkp
OworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50eXBlID09PSByZWNvcmRUeXBlcy5UaW1lcklu
c3RhbGwgfHwKICAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVy
RmlyZSB8fAogICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZXJS
ZW1vdmUpIHsKICAgICAgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQo
dGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgSWQiKSwgdGhpcy5k
YXRhLnRpbWVySWQpKTsKQEAgLTg1NiwxNiArODYxLDIyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmVj
b3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkRldGFpbHMiKSwgdGhpcy5kZXRhaWxzKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAodGhpcy5jYWxsZXJTY3JpcHROYW1lKSB7CisgICAgICAgIGlmICh0aGlzLnR5cGUgIT09
IHJlY29yZFR5cGVzLkdDRXZlbnQgJiYgdGhpcy5jYWxsZXJTY3JpcHROYW1lKSB7CiAgICAgICAg
ICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy5j
YWxsZXJTY3JpcHROYW1lLCAic2NyaXB0cyIsIHRoaXMuY2FsbGVyU2NyaXB0TGluZSk7CiAgICAg
ICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlTGlua1Jv
dyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGxlciIpLCBsaW5rKSk7CiAgICAgICAgIH0KKyAg
ICAgICAgaWYgKHRoaXMudXNlZEhlYXBTaXplKSB7CisgICAgICAgICAgICByZWNvcmRDb250ZW50
VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygi
VXNlZCBIZWFwIFNpemUiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy51c2VkSGVhcFNpemUp
KSk7CisgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3Jl
YXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVG90YWwgSGVhcCBTaXplIiksIE51bWJlci5i
eXRlc1RvU3RyaW5nKHRoaXMudG90YWxIZWFwU2l6ZSkpKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gcmVjb3JkQ29udGVudFRhYmxlOwogICAgIH0sCiAKICAgICBfZ2V0UmVjb3JkRGV0YWls
czogZnVuY3Rpb24ocmVjb3JkLCBzZW5kUmVxdWVzdFJlY29yZHMpCiAgICAgewogICAgICAgICBz
d2l0Y2ggKHJlY29yZC50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1l
bGluZUFnZW50LlJlY29yZFR5cGUuR0NFdmVudDoKKyAgICAgICAgICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlcyBjb2xsZWN0ZWQiLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyhy
ZWNvcmQuZGF0YS51c2VkSGVhcFNpemVEZWx0YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkZ1bmN0aW9uQ2FsbDoKICAgICAgICAgICAg
ICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHJlY29yZC5kYXRhLnNj
cmlwdE5hbWUpICsgIjoiICsgcmVjb3JkLmRhdGEuc2NyaXB0TGluZTsKICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5FdmVudERpc3BhdGNoOgo=
</data>
<flag name="review"
          id="36150"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>