<?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>202109</bug_id>
          
          <creation_ts>2019-09-23 10:06:55 -0700</creation_ts>
          <short_desc>[Web Animations] Coordinate &quot;update animations and send events&quot; procedure across multiple timelines</short_desc>
          <delta_ts>2020-05-06 01:09:53 -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>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211309</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kangil.han</cc>
    
    <cc>Lawrence.j</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573337</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-23 10:06:55 -0700</bug_when>
    <thetext>The test at imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619058</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 10:05:38 -0800</bug_when>
    <thetext>This test is no longer flaky after fixing bug 207364 (r256619).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619205</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-14 14:21:21 -0800</bug_when>
    <thetext>(In reply to Antoine Quint from comment #1)
&gt; This test is no longer flaky after fixing bug 207364 (r256619).
The test is not fixed, as reported in https://bugs.webkit.org/show_bug.cgi?id=207788

https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fweb-animations%2Ftiming-model%2Ftimelines%2Fupdate-and-send-events.html&amp;platform=mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619206</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-14 14:21:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/59470821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619208</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-14 14:21:56 -0800</bug_when>
    <thetext>*** Bug 207788 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619215</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-14 14:27:39 -0800</bug_when>
    <thetext>Marked the test as flaky again in http://trac.webkit.org/r256645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619371</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-02-14 22:46:18 -0800</bug_when>
    <thetext>*** Bug 207790 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631146</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-18 08:15:28 -0700</bug_when>
    <thetext>This is the error I&apos;m seeing:

-FAIL All timelines are updated before running microtasks promise_test: Unhandled rejection with value: object &quot;AbortError: The operation was aborted.&quot;
+TIMEOUT All timelines are updated before running microtasks Test timed out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631150</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-18 08:21:09 -0700</bug_when>
    <thetext>If that failing test runs in isolation over many iterations, it never times out. However, if it&apos;s run with its preceding test, it eventually times out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643474</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-20 09:31:35 -0700</bug_when>
    <thetext>We can simply fix the last test to be a PASS and this will resolve the issue. To do this, we must make sure we run the &quot;update animations and send events&quot; procedure with all timelines in a coordinated fashion such that there is only a single micro task point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644250</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 02:38:56 -0700</bug_when>
    <thetext>Retitling to better capture the scope of the work to unflake this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644253</commentid>
    <comment_count>11</comment_count>
      <attachid>397182</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 02:53:54 -0700</bug_when>
    <thetext>Created attachment 397182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644258</commentid>
    <comment_count>12</comment_count>
      <attachid>397183</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 03:46:59 -0700</bug_when>
    <thetext>Created attachment 397183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644404</commentid>
    <comment_count>13</comment_count>
      <attachid>397183</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-04-22 11:28:39 -0700</bug_when>
    <thetext>Comment on attachment 397183
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        So far, although we did manage multiple animation timelines per document, we mostly operated under the assumption that there really was a single timeline.
&gt; +        In this patch we make the &quot;update animations and send events&quot; procedure, which is central to the lifecycle of animations, work with multiple timelines such
&gt; +        that a single microtask checkpoint is performed even with multiple timelines, whereas we would perform one per timeline before. To do this, we move much of
&gt; +        the logic DocumentTimeline::updateAnimationsAndSendEvents() to DocumentTimelinesController where each step is run across each timeline, rather than running
&gt; +        all steps for each timeline one after the other, respecting the single microtask checkpoint in the middle of the process.

Why are you wrapping the lines at such a high column? I think you want at least half this width.

&gt; Source/WebCore/animation/DocumentTimelinesController.cpp:71
&gt; +    Vector&lt;RefPtr&lt;DocumentTimeline&gt;&gt; protectedTimelines;
&gt; +    for (auto&amp; timeline : m_timelines)
&gt; +        protectedTimelines.append(&amp;timeline);

Vector&lt;RefPtr&lt;DocumentTimeline&gt;&gt; protectedTimelines { m_timelines };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644411</commentid>
    <comment_count>14</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 11:44:42 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #13)
&gt; Comment on attachment 397183 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397183&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; Why are you wrapping the lines at such a high column? I think you want at
&gt; least half this width.

I don&apos;t know! I don&apos;t really understand why we have to wrap them in the first place.

&gt; &gt; Source/WebCore/animation/DocumentTimelinesController.cpp:71
&gt; &gt; +    Vector&lt;RefPtr&lt;DocumentTimeline&gt;&gt; protectedTimelines;
&gt; &gt; +    for (auto&amp; timeline : m_timelines)
&gt; &gt; +        protectedTimelines.append(&amp;timeline);
&gt; 
&gt; Vector&lt;RefPtr&lt;DocumentTimeline&gt;&gt; protectedTimelines { m_timelines };

Note that m_timelines is a WeakHashSet&lt;DocumentTimeline&gt;, so I don&apos;t think that can work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644414</commentid>
    <comment_count>15</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-22 11:47:44 -0700</bug_when>
    <thetext>Committed r260525: &lt;https://trac.webkit.org/changeset/260525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647966</commentid>
    <comment_count>16</comment_count>
      <attachid>397183</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-01 12:15:45 -0700</bug_when>
    <thetext>Comment on attachment 397183
Patch

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

&gt; Source/WebCore/animation/AnimationTimeline.h:53
&gt; +    AnimationCollection relevantAnimations() const { return m_animations; }

OK as-is. Optimal solution is to return const lvalue ref. See bug #211309.

&gt; Source/WebCore/animation/AnimationTimeline.h:54
&gt; +    Vector&lt;WeakPtr&lt;WebAnimation&gt;&gt; allAnimations() const { return m_allAnimations; }

This is unused? Can it be removed? If not then optimal solution is to return const lvalue ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649532</commentid>
    <comment_count>17</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-06 01:09:19 -0700</bug_when>
    <thetext>Committed r261218: &lt;https://trac.webkit.org/changeset/261218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649533</commentid>
    <comment_count>18</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-06 01:09:53 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #16)
&gt; &gt; Source/WebCore/animation/AnimationTimeline.h:54
&gt; &gt; +    Vector&lt;WeakPtr&lt;WebAnimation&gt;&gt; allAnimations() const { return m_allAnimations; }
&gt; 
&gt; This is unused? Can it be removed? If not then optimal solution is to return
&gt; const lvalue ref.

It was removed in r261218.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397182</attachid>
            <date>2020-04-22 02:53:54 -0700</date>
            <delta_ts>2020-04-22 03:46:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202109-20200422115353.patch</filename>
            <type>text/plain</type>
            <size>26704</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ2OGMyNjA2ZTUxOWI0
NDdiOTExZmQwYTExMTUwNTc5ODVlOTczZS4uOGJlOTc4M2ZhNjY2YjRmMDVlY2NiZDk3NDQ2MTkx
YjFmMWI3NzA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA0LTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBDb29yZGluYXRlICJ1cGRhdGUgYW5pbWF0aW9ucyBhbmQgc2VuZCBldmVudHMiIHByb2NlZHVy
ZSBhY3Jvc3MgbXVsdGlwbGUgdGltZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxMDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NDcw
ODIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNv
IGZhciwgYWx0aG91Z2ggd2UgZGlkIG1hbmFnZSBtdWx0aXBsZSBhbmltYXRpb24gdGltZWxpbmVz
IHBlciBkb2N1bWVudCwgd2UgbW9zdGx5IG9wZXJhdGVkIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRo
YXQgdGhlcmUgcmVhbGx5IHdhcyBhIHNpbmdsZSB0aW1lbGluZS4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCB3ZSBtYWtlIHRoZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIiBwcm9j
ZWR1cmUsIHdoaWNoIGlzIGNlbnRyYWwgdG8gdGhlIGxpZmVjeWNsZSBvZiBhbmltYXRpb25zLCB3
b3JrIHdpdGggbXVsdGlwbGUgdGltZWxpbmVzIHN1Y2gKKyAgICAgICAgdGhhdCBhIHNpbmdsZSBt
aWNyb3Rhc2sgY2hlY2twb2ludCBpcyBwZXJmb3JtZWQgZXZlbiB3aXRoIG11bHRpcGxlIHRpbWVs
aW5lcywgd2hlcmVhcyB3ZSB3b3VsZCBwZXJmb3JtIG9uZSBwZXIgdGltZWxpbmUgYmVmb3JlLiBU
byBkbyB0aGlzLCB3ZSBtb3ZlIG11Y2ggb2YKKyAgICAgICAgdGhlIGxvZ2ljIERvY3VtZW50VGlt
ZWxpbmU6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCkgdG8gRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyIHdoZXJlIGVhY2ggc3RlcCBpcyBydW4gYWNyb3NzIGVhY2ggdGltZWxpbmUs
IHJhdGhlciB0aGFuIHJ1bm5pbmcKKyAgICAgICAgYWxsIHN0ZXBzIGZvciBlYWNoIHRpbWVsaW5l
IG9uZSBhZnRlciB0aGUgb3RoZXIsIHJlc3BlY3RpbmcgdGhlIHNpbmdsZSBtaWNyb3Rhc2sgY2hl
Y2twb2ludCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwcm9jZXNzLgorCisgICAgICAgIFRvIG1pbmlt
aXplIGNvZGUgY2h1cm4gYXQgdGhpcyBzdGFnZSwgd2Ugc3RpbGwga2VlcCBhIGZhaXIgYml0IG9m
IGxvZ2ljIGluIERvY3VtZW50VGltZWxpbmUgYW5kLCB3aGlsZSB3ZSByZW1vdmUgdXBkYXRlQW5p
bWF0aW9uc0FuZFNlbmRFdmVudHMoKSwKKyAgICAgICAgaW50ZXJuYWxVcGRhdGVBbmltYXRpb25z
QW5kU2VuZEV2ZW50cygpIGFuZCB1cGRhdGVDdXJyZW50VGltZSgpLCB3ZSBleHBvc2UgdGhyZWUg
bWV0aG9kcyB0aGF0IGFsbG93IHRvIHJ1biB0aGUgcHJlLWZsaWdodCBzZXF1ZW5jZSBpbgorICAg
ICAgICBkb2N1bWVudFdpbGxVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpLCBjb2xsZWN0
IHBlbmRpbmcgZXZlbnRzIGluIHByZXBhcmVGb3JQZW5kaW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0
Y2goKSBhbmQgcnVuIHRoZSBwb3N0LWZsaWdodCBzZXF1ZW5jZQorICAgICAgICBpbiBkb2N1bWVu
dERpZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCkuCisKKyAgICAgICAgTm9uZSBvZiB0
aGUgbG9naWMgY2hhbmdlcywgdGhpcyBpcyBqdXN0IG1vdmluZyBjb2RlIGFyb3VuZC4gSW4gdGhl
IGZ1dHVyZSwgbW9yZSBwYXRjaGVzIHdpbGwgbW92ZSBjb2RlIGZyb20gRG9jdW1lbnRUaW1lbGlu
ZSB1cCB0byBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIKKyAgICAgICAgc3VjaCB0aGF0IGV2
ZW50cyBhcmUgZW5xdWV1ZWQgdGhlcmUsIGFuZCBhbmltYXRpb24gc2NoZWR1bGluZyBhcyB3ZWxs
LiBCdXQgdGhpcyBhbHJlYWR5IGxldHMgdXMgcGFzcyBhIG5ldyB0ZXN0IHRoYXQgdXNlZCB0byBm
bGFraWx5IHJlamVjdCBwcm9taXNlcyBpbiB0aGUgV1BUCisgICAgICAgIHRlc3Qgd2ViLWFuaW1h
dGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRzLmh0bWwu
CisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjpyZWxldmFudEFuaW1hdGlvbnMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGltZWxpbmU6OmFsbEFuaW1hdGlvbnMgY29uc3QpOgor
ICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50V2lsbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50RGlk
VXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRUaW1lbGluZTo6cHJlcGFyZUZvclBlbmRpbmdBbmltYXRpb25FdmVudHNEaXNwYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVDdXJyZW50VGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRp
b25zQW5kU2VuZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjppbnRlcm5hbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oOgorICAgICAgICAqIGFuaW1h
dGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRhdGVB
bmltYXRpb25zQW5kU2VuZEV2ZW50cyk6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb25UeXBl
cy5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6ZW5zdXJlVGltZWxpbmVzQ29udHJvbGxlcik6CisKIDIwMjAtMDQtMjEgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFk
ZCBhIHN1cHBvcnRpbmcgb2JqZWN0IGZvciBEb2N1bWVudCB0byBtYW5hZ2UgdGltZWxpbmVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCmluZGV4IGE0Mjgy
Mzk0NjA1ZTNjZmJkODY3ZjU5NzM1MDY1MzQ5MTQ1YWI5YWIuLjRlZGM1NTM0MmYwMTI4NTUwYjkw
NDM4YTY3MTM2ZjY3MDg1YzBhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25UaW1lbGluZS5oCkBAIC01MCw2ICs1MCw5IEBAIGNsYXNzIEFuaW1hdGlvblRpbWVsaW5l
IDogcHVibGljIFJlZkNvdW50ZWQ8QW5pbWF0aW9uVGltZWxpbmU+LCBwdWJsaWMgQ2FuTWFrZVdl
CiBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnRUaW1lbGluZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKKyAgICBBbmltYXRpb25Db2xsZWN0aW9uIHJlbGV2YW50QW5pbWF0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uczsgfQorICAgIFZlY3RvcjxXZWFrUHRy
PFdlYkFuaW1hdGlvbj4+IGFsbEFuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2FsbEFuaW1h
dGlvbnM7IH0KKwogICAgIHZvaWQgZm9yZ2V0QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiopOwogICAg
IHZpcnR1YWwgdm9pZCBhbmltYXRpb25UaW1pbmdEaWRDaGFuZ2UoV2ViQW5pbWF0aW9uJik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCAxY2MxNDJjZDFl
MDA2YTc1OTUyNGUzMTFjODJkYjhhM2IwOGRjODM5Li41NGM4OWNkYjY1YmU2N2Q5NjYyN2EwZjE0
ZDBhMTMwOTg2YjgzZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50
VGltZWxpbmUuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmlt
YXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVF
ZmZlY3QuaCIKQEAgLTM2MiwzNiArMzYxLDIxIEBAIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6c2hv
dWxkUnVuVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHNJZ25vcmluZ1N1c3BlbnNpb25TCiAg
ICAgcmV0dXJuICFtX2FuaW1hdGlvbnMuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBbmltYXRpb25F
dmVudHMuaXNFbXB0eSgpIHx8ICFtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5n
U3RhdGVDaGFuZ2UuaXNFbXB0eSgpOwogfQogCi12b2lkIERvY3VtZW50VGltZWxpbmU6OnVwZGF0
ZUN1cnJlbnRUaW1lKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wKQorRG9jdW1lbnRUaW1l
bGluZTo6U2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMgRG9jdW1lbnRUaW1lbGlu
ZTo6ZG9jdW1lbnRXaWxsVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoRE9NSGlnaFJlc1Rp
bWVTdGFtcCB0aW1lc3RhbXApCiB7CiAgICAgLy8gV2UgbmVlZCB0byBmcmVlemUgdGhlIGN1cnJl
bnQgdGltZSBldmVuIGlmIG5vIGFuaW1hdGlvbiBpcyBydW5uaW5nLgogICAgIC8vIGRvY3VtZW50
LnRpbWVsaW5lLmN1cnJlbnRUaW1lIG1heSBiZSBjYWxsZWQgZnJvbSBhIHJBRiBjYWxsYmFjayBh
bmQKICAgICAvLyBpdCBoYXMgdG8gbWF0Y2ggdGhlIHJBRiB0aW1lc3RhbXAuCiAgICAgaWYgKCFt
X2lzU3VzcGVuZGVkIHx8ICFzaG91bGRSdW5VcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0ln
bm9yaW5nU3VzcGVuc2lvblN0YXRlKCkpCiAgICAgICAgIGNhY2hlQ3VycmVudFRpbWUodGltZXN0
YW1wKTsKLX0KIAotdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50cygpCi17CiAgICAgLy8gVXBkYXRpbmcgYW5pbWF0aW9ucyBhbmQgc2VuZGluZyBldmVu
dHMgbWF5IGludmFsaWRhdGUgdGhlIHRpbWluZyBvZiBzb21lIGFuaW1hdGlvbnMsIHNvIHdlIG11
c3Qgc2V0IHRoZSBtX2FuaW1hdGlvblJlc29sdXRpb25TY2hlZHVsZWQKICAgICAvLyBmbGFnIHRv
IGZhbHNlIHByaW9yIHRvIHJ1bm5pbmcgdGhhdCBwcm9jZWR1cmUgdG8gYWxsb3cgYW5pbWF0aW9u
IHdpdGggdGltaW5nIG1vZGVsIHVwZGF0ZXMgdG8gc2NoZWR1bGUgdXBkYXRlcy4KLSAgICBtX2Fu
aW1hdGlvblJlc29sdXRpb25TY2hlZHVsZWQgPSBmYWxzZTsKLQotICAgIGlmIChtX2lzU3VzcGVu
ZGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIXNob3VsZFJ1blVwZGF0ZUFuaW1hdGlv
bnNBbmRTZW5kRXZlbnRzSWdub3JpbmdTdXNwZW5zaW9uU3RhdGUoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaW50ZXJuYWxVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOwotICAgIGFw
cGx5UGVuZGluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucygpOworICAgIGJvb2wgd2FzQW5pbWF0aW9u
UmVzb2x1dGlvblNjaGVkdWxlZCA9IHN0ZDo6ZXhjaGFuZ2UobV9hbmltYXRpb25SZXNvbHV0aW9u
U2NoZWR1bGVkLCBmYWxzZSk7CiAKLSAgICBpZiAoIW1fYW5pbWF0aW9uUmVzb2x1dGlvblNjaGVk
dWxlZCkKLSAgICAgICAgc2NoZWR1bGVOZXh0VGljaygpOwotfQorICAgIGlmICghd2FzQW5pbWF0
aW9uUmVzb2x1dGlvblNjaGVkdWxlZCB8fCBtX2lzU3VzcGVuZGVkIHx8ICFzaG91bGRSdW5VcGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0lnbm9yaW5nU3VzcGVuc2lvblN0YXRlKCkpCisgICAg
ICAgIHJldHVybiBEb2N1bWVudFRpbWVsaW5lOjpTaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50czo6Tm87CiAKLXZvaWQgRG9jdW1lbnRUaW1lbGluZTo6aW50ZXJuYWxVcGRhdGVBbmlt
YXRpb25zQW5kU2VuZEV2ZW50cygpCi17CiAgICAgbV9udW1iZXJPZkFuaW1hdGlvblRpbWVsaW5l
SW52YWxpZGF0aW9uc0ZvclRlc3RpbmcrKzsKIAogICAgIC8vIGVucXVldWVBbmltYXRpb25FdmVu
dCgpIGNhbGxzIHNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbigpIHRvIGVuc3VyZSB0aGF0IHRo
ZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIgpAQCAtMzk5LDc3ICszODMsMTUg
QEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjppbnRlcm5hbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzKCkKICAgICAvLyB0aGlzIHByb2NlZHVyZSBpcyBydW5uaW5nIHNob3VsZCBub3Qgc2No
ZWR1bGUgYW5pbWF0aW9uIHJlc29sdXRpb24gdW50aWwgdGhlIGV2ZW50IHF1ZXVlIGhhcyBiZWVu
IGNsZWFyZWQuCiAgICAgbV9zaG91bGRTY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb25Gb3JOZXdQ
ZW5kaW5nRXZlbnRzID0gZmFsc2U7CiAKLSAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
d2ViLWFuaW1hdGlvbnMvI3VwZGF0ZS1hbmltYXRpb25zLWFuZC1zZW5kLWV2ZW50cwotCi0gICAg
Ly8gMS4gVXBkYXRlIHRoZSBjdXJyZW50IHRpbWUgb2YgYWxsIHRpbWVsaW5lcyBhc3NvY2lhdGVk
IHdpdGggZG9jIHBhc3Npbmcgbm93IGFzIHRoZSB0aW1lc3RhbXAuCi0KLSAgICBWZWN0b3I8UmVm
UHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnNUb1JlbW92ZTsKLSAgICBWZWN0b3I8UmVmUHRy
PENTU1RyYW5zaXRpb24+PiBjb21wbGV0ZWRUcmFuc2l0aW9uczsKLQotICAgIGZvciAoYXV0byYg
YW5pbWF0aW9uIDogbV9hbmltYXRpb25zKSB7Ci0gICAgICAgIGlmIChhbmltYXRpb24tPnRpbWVs
aW5lKCkgIT0gdGhpcykgewotICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRpb24tPnRpbWVsaW5l
KCkpOwotICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOwot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUaGlzIHdpbGwg
bm90aWZ5IHRoZSBhbmltYXRpb24gdGhhdCB0aW1pbmcgaGFzIGNoYW5nZWQgYW5kIHdpbGwgY2Fs
bCBhdXRvbWF0aWNhbGx5Ci0gICAgICAgIC8vIHNjaGVkdWxlIGludmFsaWRhdGlvbiBpZiByZXF1
aXJlZCBmb3IgdGhpcyBhbmltYXRpb24uCi0gICAgICAgIGFuaW1hdGlvbi0+dGljaygpOwotCi0g
ICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVlZHNU
aWNrKCkpCi0gICAgICAgICAgICBhbmltYXRpb25zVG9SZW1vdmUuYXBwZW5kKGFuaW1hdGlvbik7
Ci0KLSAgICAgICAgaWYgKCFhbmltYXRpb24tPm5lZWRzVGljaygpICYmIGlzPENTU1RyYW5zaXRp
b24+KGFuaW1hdGlvbikgJiYgYW5pbWF0aW9uLT5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246
OlBsYXlTdGF0ZTo6RmluaXNoZWQpIHsKLSAgICAgICAgICAgIGF1dG8qIHRyYW5zaXRpb24gPSBk
b3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24uZ2V0KCkpOwotICAgICAgICAgICAgaWYg
KHRyYW5zaXRpb24tPm93bmluZ0VsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICBjb21wbGV0ZWRU
cmFuc2l0aW9ucy5hcHBlbmQodHJhbnNpdGlvbik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAv
LyAyLiBSZW1vdmUgcmVwbGFjZWQgYW5pbWF0aW9ucyBmb3IgZG9jLgotICAgIHJlbW92ZVJlcGxh
Y2VkQW5pbWF0aW9ucygpOwotCi0gICAgLy8gMy4gUGVyZm9ybSBhIG1pY3JvdGFzayBjaGVja3Bv
aW50LgotICAgIGlmIChhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5kb2N1bWVudCgp
KSkKLSAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3Bv
aW50KCk7Ci0KLSAgICAvLyA0LiBMZXQgZXZlbnRzIHRvIGRpc3BhdGNoIGJlIGEgY29weSBvZiBk
b2MncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KLSAgICAvLyA1LiBDbGVhciBkb2Mn
cyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KLSAgICBhdXRvIHBlbmRpbmdBbmltYXRp
b25FdmVudHMgPSBXVEZNb3ZlKG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7Ci0gICAgbV9zaG91
bGRTY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb25Gb3JOZXdQZW5kaW5nRXZlbnRzID0gdHJ1ZTsK
LQotICAgIC8vIDYuIFBlcmZvcm0gYSBzdGFibGUgc29ydCBvZiB0aGUgYW5pbWF0aW9uIGV2ZW50
cyBpbiBldmVudHMgdG8gZGlzcGF0Y2ggYXMgZm9sbG93cy4KLSAgICBzdGQ6OnN0YWJsZV9zb3J0
KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5l
bmQoKSwgW10gKGNvbnN0IFJlZjxBbmltYXRpb25FdmVudEJhc2U+JiBsaHMsIGNvbnN0IFJlZjxB
bmltYXRpb25FdmVudEJhc2U+JiByaHMpIHsKLSAgICAgICAgLy8gMS4gU29ydCB0aGUgZXZlbnRz
IGJ5IHRoZWlyIHNjaGVkdWxlZCBldmVudCB0aW1lIHN1Y2ggdGhhdCBldmVudHMgdGhhdCB3ZXJl
IHNjaGVkdWxlZCB0byBvY2N1ciBlYXJsaWVyLCBzb3J0IGJlZm9yZSBldmVudHMgc2NoZWR1bGVk
IHRvIG9jY3VyIGxhdGVyCi0gICAgICAgIC8vIGFuZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2
ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVk
IHNjaGVkdWxlZCBldmVudCB0aW1lLgotICAgICAgICAvLyAyLiBXaXRoaW4gZXZlbnRzIHdpdGgg
ZXF1YWwgc2NoZWR1bGVkIGV2ZW50IHRpbWVzLCBzb3J0IGJ5IHRoZWlyIGNvbXBvc2l0ZSBvcmRl
ci4gRklYTUU6IFdlIGRvbid0IGRvIHRoaXMuCi0gICAgICAgIGlmIChsaHMtPnRpbWVsaW5lVGlt
ZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1lKCkgJiYgcmhzLT50aW1lbGluZVRpbWUoKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1l
KCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVU
aW1lKCkudmFsdWUoKTsKLSAgICB9KTsKLQotICAgIC8vIDcuIERpc3BhdGNoIGVhY2ggb2YgdGhl
IGV2ZW50cyBpbiBldmVudHMgdG8gZGlzcGF0Y2ggYXQgdGhlaXIgY29ycmVzcG9uZGluZyB0YXJn
ZXQgdXNpbmcgdGhlIG9yZGVyIGVzdGFibGlzaGVkIGluIHRoZSBwcmV2aW91cyBzdGVwLgotICAg
IGZvciAoYXV0byYgcGVuZGluZ0FuaW1hdGlvbkV2ZW50IDogcGVuZGluZ0FuaW1hdGlvbkV2ZW50
cykKLSAgICAgICAgcGVuZGluZ0FuaW1hdGlvbkV2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVu
dChwZW5kaW5nQW5pbWF0aW9uRXZlbnQpOworICAgIHJldHVybiBEb2N1bWVudFRpbWVsaW5lOjpT
aG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50czo6WWVzOworfQogCi0gICAgLy8gVGhp
cyB3aWxsIGNhbmNlbCBhbnkgc2NoZWR1bGVkIGludmFsaWRhdGlvbiBpZiB3ZSBlbmQgdXAgcmVt
b3ZpbmcgYWxsIGFuaW1hdGlvbnMuCi0gICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBhbmltYXRp
b25zVG9SZW1vdmUpIHsKLSAgICAgICAgLy8gQW4gYW5pbWF0aW9uIHRoYXQgd2FzIGluaXRpYWxs
eSBtYXJrZWQgYXMgaXJyZWxldmFudCBtYXkgaGF2ZSBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgc2Vu
ZGluZyBldmVudHMsIHNvIHdlIHJ1biB0aGUgc2FtZQotICAgICAgICAvLyBjaGVjayB0aGF0IHdl
IHJhbiB0byBhZGQgaXQgdG8gYW5pbWF0aW9uc1RvUmVtb3ZlIGluIHRoZSBmaXJzdCBwbGFjZS4K
LSAgICAgICAgaWYgKCFhbmltYXRpb24tPmlzUmVsZXZhbnQoKSAmJiAhYW5pbWF0aW9uLT5uZWVk
c1RpY2soKSkKLSAgICAgICAgICAgIHJlbW92ZUFuaW1hdGlvbigqYW5pbWF0aW9uKTsKLSAgICB9
Cit2b2lkIERvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNl
bmRFdmVudHMoKQoreworICAgIGFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucygpOwog
Ci0gICAgLy8gTm93IHRoYXQgYW5pbWF0aW9ucyB0aGF0IG5lZWRlZCByZW1vdmFsIGhhdmUgYmVl
biByZW1vdmVkLCBsZXQncyB1cGRhdGUgdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25z
LgotICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIGRlYWxpbmcgd2l0aCB0aGUgbGlz
dCBvZiBhbmltYXRpb25zIHRvIHJlbW92ZSBhcyB0aGUgYW5pbWF0aW9uIG1heSBoYXZlIGJlZW4K
LSAgICAvLyByZW1vdmVkIGZyb20gdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25zIG90
aGVyd2lzZS4KLSAgICBmb3IgKGF1dG8mIGNvbXBsZXRlZFRyYW5zaXRpb24gOiBjb21wbGV0ZWRU
cmFuc2l0aW9ucykKLSAgICAgICAgdHJhbnNpdGlvbkRpZENvbXBsZXRlKGNvbXBsZXRlZFRyYW5z
aXRpb24pOworICAgIGlmICghbV9hbmltYXRpb25SZXNvbHV0aW9uU2NoZWR1bGVkKQorICAgICAg
ICBzY2hlZHVsZU5leHRUaWNrKCk7CiB9CiAKIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0
aW9uQ2FuQmVSZW1vdmVkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpAQCAtNzM1LDYgKzY1Nywx
MiBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OmVucXVldWVBbmltYXRpb25FdmVudChBbmltYXRp
b25FdmVudEJhc2UmIGV2ZW50KQogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb24o
KTsKIH0KIAorQW5pbWF0aW9uRXZlbnRzIERvY3VtZW50VGltZWxpbmU6OnByZXBhcmVGb3JQZW5k
aW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0Y2goKQoreworICAgIG1fc2hvdWxkU2NoZWR1bGVBbmlt
YXRpb25SZXNvbHV0aW9uRm9yTmV3UGVuZGluZ0V2ZW50cyA9IHRydWU7CisgICAgcmV0dXJuIHN0
ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLCB7IH0pOworfQorCiBWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgZG91YmxlPj4gRG9jdW1lbnRUaW1lbGluZTo6YWNjZWxlcmF0ZWRB
bmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewogICAgIGF1dG8q
IHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmgKaW5kZXggNzVkNzc0OGM1YmY2ZjRiNGU0NTg5OWEzZWViODFm
NGZlNTQwNWYzMi4uNmM1N2FjY2JhMDE1ODY5ZmQwZTlhMTMxZjQ2ODdkMTZmZWZmZjI5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCkBAIC01OCw2ICs1
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFuaW1hdGlvbihXZWJBbmltYXRpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KFdlYkFuaW1hdGlv
biYsIEVsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxl
bWVudChXZWJBbmltYXRpb24mLCBFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCB0cmFuc2l0aW9u
RGlkQ29tcGxldGUoUmVmUHRyPENTU1RyYW5zaXRpb24+KTsKIAogICAgIC8vIElmIHBvc3NpYmxl
LCBjb21wdXRlIHRoZSB2aXN1YWwgZXh0ZW50IG9mIGFueSB0cmFuc2Zvcm0gYW5pbWF0aW9uIG9u
IHRoZSBnaXZlbiByZW5kZXJlcgogICAgIC8vIHVzaW5nIHRoZSBnaXZlbiByZWN0LCByZXR1cm5p
bmcgdGhlIHJlc3VsdCBpbiB0aGUgcmVjdC4gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIHNvbWUK
QEAgLTcyLDkgKzczLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvbkV2
ZW50KEFuaW1hdGlvbkV2ZW50QmFzZSYpOwogICAgIAotICAgIGJvb2wgc2NoZWR1bGVkVXBkYXRl
KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRpb25SZXNvbHV0aW9uU2NoZWR1bGVkOyB9Ci0gICAg
dm9pZCB1cGRhdGVDdXJyZW50VGltZShET01IaWdoUmVzVGltZVN0YW1wIHRpbWVzdGFtcCk7Ci0g
ICAgdm9pZCB1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOworICAgIGVudW0gY2xhc3Mg
U2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMgOiB1aW50OF90IHsgWWVzLCBObyB9
OworICAgIFNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzIGRvY3VtZW50V2lsbFVw
ZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKERPTUhpZ2hSZXNUaW1lU3RhbXApOworICAgIHZv
aWQgcmVtb3ZlUmVwbGFjZWRBbmltYXRpb25zKCk7CisgICAgQW5pbWF0aW9uRXZlbnRzIHByZXBh
cmVGb3JQZW5kaW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0Y2goKTsKKyAgICB2b2lkIGRvY3VtZW50
RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKTsKIAogICAgIHZvaWQgdXBkYXRlVGhy
b3R0bGluZ1N0YXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25kcyBhbmltYXRpb25JbnRl
cnZhbCgpIGNvbnN0OwpAQCAtOTgsOSArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFy
VGlja1NjaGVkdWxlVGltZXIoKTsKICAgICB2b2lkIGludGVybmFsVXBkYXRlQW5pbWF0aW9uc0Fu
ZFNlbmRFdmVudHMoKTsKICAgICB2b2lkIHVwZGF0ZUxpc3RPZkVsZW1lbnRzV2l0aFJ1bm5pbmdB
Y2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKLSAgICB2b2lkIHRyYW5z
aXRpb25EaWRDb21wbGV0ZShSZWZQdHI8Q1NTVHJhbnNpdGlvbj4pOwogICAgIHZvaWQgc2NoZWR1
bGVOZXh0VGljaygpOwotICAgIHZvaWQgcmVtb3ZlUmVwbGFjZWRBbmltYXRpb25zKCk7CiAgICAg
Ym9vbCBhbmltYXRpb25DYW5CZVJlbW92ZWQoV2ViQW5pbWF0aW9uJik7CiAgICAgYm9vbCBzaG91
bGRSdW5VcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0lnbm9yaW5nU3VzcGVuc2lvblN0YXRl
KCkgY29uc3Q7CiAKQEAgLTEwOCw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIEdlbmVyaWNUYXNr
UXVldWU8VGltZXI+IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZTsKICAgICBIYXNoU2V0
PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5u
aW5nU3RhdGVDaGFuZ2U7CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gbV9lbGVtZW50c1dpdGhSdW5u
aW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zOwotICAgIFZlY3RvcjxSZWY8QW5pbWF0aW9uRXZlbnRC
YXNlPj4gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOworICAgIEFuaW1hdGlvbkV2ZW50cyBtX3Bl
bmRpbmdBbmltYXRpb25FdmVudHM7CiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
ICAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV9jYWNoZWRD
dXJyZW50VGltZTsKICAgICBTZWNvbmRzIG1fb3JpZ2luVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKaW5k
ZXggZDZhMDFlNWQ3N2VkN2MzYzlmMzcxYWM4MTIyMmY4MjdjODQ0M2VhYi4uZjg3OTI1ZmRiNzYy
MjYwOWVhZTZiYmI5OGZhZmIwOTU0OTlmNTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKQEAgLTI2LDEx
ICsyNiwxOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisjaW5j
bHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIldl
YkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIldlYkFuaW1hdGlvblR5cGVzLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXIoKQorRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKIHsKIH0KIApAQCAtNTgsMjAgKzY1LDk1IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhET01IaWdoUmVzVGlt
ZVN0CiB7CiAgICAgQVNTRVJUKCFtX3RpbWVsaW5lcy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKIAot
ICAgIC8vIFdlIG5lZWQgdG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIg
aXRzIG1lbWJlcnMgc2luY2UgY2FsbGluZyB1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygp
IG1heSBtdXRhdGUgbV90aW1lbGluZXMuCi0gICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVs
aW5lPj4gdGltZWxpbmVzOwotICAgIGJvb2wgc2hvdWxkVXBkYXRlQW5pbWF0aW9ucyA9IGZhbHNl
OwotICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykgewotICAgICAgICBpZiAo
dGltZWxpbmUuc2NoZWR1bGVkVXBkYXRlKCkpCi0gICAgICAgICAgICBzaG91bGRVcGRhdGVBbmlt
YXRpb25zID0gdHJ1ZTsKLSAgICAgICAgdGltZWxpbmVzLmFwcGVuZCgmdGltZWxpbmUpOworICAg
IC8vIFdlIG5lZWQgdG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgaXRz
IG1lbWJlcnMgc2luY2UgdGhlIHN0ZXBzIGluIHRoaXMgcHJvY2VkdXJlIG1heSBtdXRhdGUgbV90
aW1lbGluZXMuCisgICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVsaW5lPj4gcHJvdGVjdGVk
VGltZWxpbmVzOworICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykKKyAgICAg
ICAgcHJvdGVjdGVkVGltZWxpbmVzLmFwcGVuZCgmdGltZWxpbmUpOworCisgICAgLy8gMS4gVXBk
YXRlIHRoZSBjdXJyZW50IHRpbWUgb2YgYWxsIHRpbWVsaW5lcyBhc3NvY2lhdGVkIHdpdGggZG9j
IHBhc3Npbmcgbm93IGFzIHRoZSB0aW1lc3RhbXAuCisgICAgVmVjdG9yPERvY3VtZW50VGltZWxp
bmUqPiB0aW1lbGluZXNUb1VwZGF0ZTsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+
IGFuaW1hdGlvbnNUb1JlbW92ZTsKKyAgICBWZWN0b3I8UmVmUHRyPENTU1RyYW5zaXRpb24+PiBj
b21wbGV0ZWRUcmFuc2l0aW9uczsKKyAgICBmb3IgKGF1dG8mIHRpbWVsaW5lIDogcHJvdGVjdGVk
VGltZWxpbmVzKSB7CisgICAgICAgIGF1dG8gc2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRF
dmVudHMgPSB0aW1lbGluZS0+ZG9jdW1lbnRXaWxsVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVu
dHModGltZXN0YW1wKTsKKyAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzID09IERvY3VtZW50VGltZWxpbmU6OlNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzOjpObykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHRpbWVsaW5lc1Rv
VXBkYXRlLmFwcGVuZCh0aW1lbGluZS5nZXQoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBhbmlt
YXRpb24gOiB0aW1lbGluZS0+cmVsZXZhbnRBbmltYXRpb25zKCkpIHsKKyAgICAgICAgICAgIGlm
IChhbmltYXRpb24tPnRpbWVsaW5lKCkgIT0gdGltZWxpbmUuZ2V0KCkpIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoIWFuaW1hdGlvbi0+dGltZWxpbmUoKSk7CisgICAgICAgICAgICAgICAgYW5p
bWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGlzIHdpbGwgbm90aWZ5IHRo
ZSBhbmltYXRpb24gdGhhdCB0aW1pbmcgaGFzIGNoYW5nZWQgYW5kIHdpbGwgY2FsbCBhdXRvbWF0
aWNhbGx5CisgICAgICAgICAgICAvLyBzY2hlZHVsZSBpbnZhbGlkYXRpb24gaWYgcmVxdWlyZWQg
Zm9yIHRoaXMgYW5pbWF0aW9uLgorICAgICAgICAgICAgYW5pbWF0aW9uLT50aWNrKCk7CisKKyAg
ICAgICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVl
ZHNUaWNrKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmlt
YXRpb24pOworCisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi0+bmVlZHNUaWNrKCkgJiYgaXM8
Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSAmJiBhbmltYXRpb24tPnBsYXlTdGF0ZSgpID09IFdl
YkFuaW1hdGlvbjo6UGxheVN0YXRlOjpGaW5pc2hlZCkgeworICAgICAgICAgICAgICAgIGF1dG8q
IHRyYW5zaXRpb24gPSBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24uZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uLT5vd25pbmdFbGVtZW50KCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbXBsZXRlZFRyYW5zaXRpb25zLmFwcGVuZCh0cmFuc2l0aW9uKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAotICAgIGZvciAoYXV0byYgdGltZWxpbmUg
OiB0aW1lbGluZXMpIHsKLSAgICAgICAgdGltZWxpbmUtPnVwZGF0ZUN1cnJlbnRUaW1lKHRpbWVz
dGFtcCk7Ci0gICAgICAgIGlmIChzaG91bGRVcGRhdGVBbmltYXRpb25zKQotICAgICAgICAgICAg
dGltZWxpbmUtPnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCk7CisgICAgaWYgKHRpbWVs
aW5lc1RvVXBkYXRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMi4gUmVt
b3ZlIHJlcGxhY2VkIGFuaW1hdGlvbnMgZm9yIGRvYy4KKyAgICBmb3IgKGF1dG8mIHRpbWVsaW5l
IDogdGltZWxpbmVzVG9VcGRhdGUpCisgICAgICAgIHRpbWVsaW5lLT5yZW1vdmVSZXBsYWNlZEFu
aW1hdGlvbnMoKTsKKworICAgIC8vIDMuIFBlcmZvcm0gYSBtaWNyb3Rhc2sgY2hlY2twb2ludC4K
KyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cihtX2RvY3VtZW50KTsKKyAgICBkb2N1bWVu
dC0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKworICAgIC8vIDQu
IExldCBldmVudHMgdG8gZGlzcGF0Y2ggYmUgYSBjb3B5IG9mIGRvYydzIHBlbmRpbmcgYW5pbWF0
aW9uIGV2ZW50IHF1ZXVlLgorICAgIC8vIDUuIENsZWFyIGRvYydzIHBlbmRpbmcgYW5pbWF0aW9u
IGV2ZW50IHF1ZXVlLgorICAgIEFuaW1hdGlvbkV2ZW50cyBldmVudHM7CisgICAgZm9yIChhdXRv
JiB0aW1lbGluZSA6IHRpbWVsaW5lc1RvVXBkYXRlKQorICAgICAgICBldmVudHMuYXBwZW5kVmVj
dG9yKHRpbWVsaW5lLT5wcmVwYXJlRm9yUGVuZGluZ0FuaW1hdGlvbkV2ZW50c0Rpc3BhdGNoKCkp
OworCisgICAgLy8gNi4gUGVyZm9ybSBhIHN0YWJsZSBzb3J0IG9mIHRoZSBhbmltYXRpb24gZXZl
bnRzIGluIGV2ZW50cyB0byBkaXNwYXRjaCBhcyBmb2xsb3dzLgorICAgIHN0ZDo6c3RhYmxlX3Nv
cnQoZXZlbnRzLmJlZ2luKCksIGV2ZW50cy5lbmQoKSwgW10gKGNvbnN0IFJlZjxBbmltYXRpb25F
dmVudEJhc2U+JiBsaHMsIGNvbnN0IFJlZjxBbmltYXRpb25FdmVudEJhc2U+JiByaHMpIHsKKyAg
ICAgICAgLy8gMS4gU29ydCB0aGUgZXZlbnRzIGJ5IHRoZWlyIHNjaGVkdWxlZCBldmVudCB0aW1l
IHN1Y2ggdGhhdCBldmVudHMgdGhhdCB3ZXJlIHNjaGVkdWxlZCB0byBvY2N1ciBlYXJsaWVyLCBz
b3J0IGJlZm9yZSBldmVudHMgc2NoZWR1bGVkIHRvIG9jY3VyIGxhdGVyCisgICAgICAgIC8vIGFu
ZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJl
Zm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAgICAg
ICAvLyAyLiBXaXRoaW4gZXZlbnRzIHdpdGggZXF1YWwgc2NoZWR1bGVkIGV2ZW50IHRpbWVzLCBz
b3J0IGJ5IHRoZWlyIGNvbXBvc2l0ZSBvcmRlci4gRklYTUU6IFdlIGRvbid0IGRvIHRoaXMuCisg
ICAgICAgIGlmIChsaHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1l
KCkgJiYgcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1lKCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1l
KCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKTsKKyAgICB9KTsKKworICAg
IC8vIDcuIERpc3BhdGNoIGVhY2ggb2YgdGhlIGV2ZW50cyBpbiBldmVudHMgdG8gZGlzcGF0Y2gg
YXQgdGhlaXIgY29ycmVzcG9uZGluZyB0YXJnZXQgdXNpbmcgdGhlIG9yZGVyIGVzdGFibGlzaGVk
IGluIHRoZSBwcmV2aW91cyBzdGVwLgorICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHMpCisg
ICAgICAgIGV2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICAvLyBU
aGlzIHdpbGwgY2FuY2VsIGFueSBzY2hlZHVsZWQgaW52YWxpZGF0aW9uIGlmIHdlIGVuZCB1cCBy
ZW1vdmluZyBhbGwgYW5pbWF0aW9ucy4KKyAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1h
dGlvbnNUb1JlbW92ZSkgeworICAgICAgICAvLyBBbiBhbmltYXRpb24gdGhhdCB3YXMgaW5pdGlh
bGx5IG1hcmtlZCBhcyBpcnJlbGV2YW50IG1heSBoYXZlIGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBz
ZW5kaW5nIGV2ZW50cywgc28gd2UgcnVuIHRoZSBzYW1lCisgICAgICAgIC8vIGNoZWNrIHRoYXQg
d2UgcmFuIHRvIGFkZCBpdCB0byBhbmltYXRpb25zVG9SZW1vdmUgaW4gdGhlIGZpcnN0IHBsYWNl
LgorICAgICAgICBpZiAoIWFuaW1hdGlvbi0+aXNSZWxldmFudCgpICYmICFhbmltYXRpb24tPm5l
ZWRzVGljaygpKQorICAgICAgICAgICAgYW5pbWF0aW9uLT50aW1lbGluZSgpLT5yZW1vdmVBbmlt
YXRpb24oKmFuaW1hdGlvbik7CiAgICAgfQorCisgICAgLy8gTm93IHRoYXQgYW5pbWF0aW9ucyB0
aGF0IG5lZWRlZCByZW1vdmFsIGhhdmUgYmVlbiByZW1vdmVkLCBsZXQncyB1cGRhdGUgdGhlIGxp
c3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25zLgorICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVu
IGFmdGVyIGRlYWxpbmcgd2l0aCB0aGUgbGlzdCBvZiBhbmltYXRpb25zIHRvIHJlbW92ZSBhcyB0
aGUgYW5pbWF0aW9uIG1heSBoYXZlIGJlZW4KKyAgICAvLyByZW1vdmVkIGZyb20gdGhlIGxpc3Qg
b2YgY29tcGxldGVkIHRyYW5zaXRpb25zIG90aGVyd2lzZS4KKyAgICBmb3IgKGF1dG8mIGNvbXBs
ZXRlZFRyYW5zaXRpb24gOiBjb21wbGV0ZWRUcmFuc2l0aW9ucykKKyAgICAgICAgZG93bmNhc3Q8
RG9jdW1lbnRUaW1lbGluZT4oKmNvbXBsZXRlZFRyYW5zaXRpb24tPnRpbWVsaW5lKCkpLnRyYW5z
aXRpb25EaWRDb21wbGV0ZShjb21wbGV0ZWRUcmFuc2l0aW9uKTsKKworICAgIGZvciAoYXV0byYg
dGltZWxpbmUgOiB0aW1lbGluZXNUb1VwZGF0ZSkKKyAgICAgICAgdGltZWxpbmUtPmRvY3VtZW50
RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5oCmluZGV4IGI2ZTMwZGYzZTg5YThmY2YwOTc4NjdkYWZkMGJkNDE5
Y2E5MjI4MzAuLmM1ODc0NjBlODU1ODRhMmEwZTkxNmJkNWZjMGJiZjJjNGYxMGY3MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250
cm9sbGVyLmgKQEAgLTMwLDEyICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIENTU1RyYW5zaXRpb247CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERvY3VtZW50VGltZWxp
bmU7CitjbGFzcyBXZWJBbmltYXRpb247CiAKIGNsYXNzIERvY3VtZW50VGltZWxpbmVzQ29udHJv
bGxlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGlj
aXQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKCk7CisgICAgZXhwbGljaXQgRG9jdW1lbnRU
aW1lbGluZXNDb250cm9sbGVyKERvY3VtZW50Jik7CiAgICAgfkRvY3VtZW50VGltZWxpbmVzQ29u
dHJvbGxlcigpOwogCiAgICAgdm9pZCBhZGRUaW1lbGluZShEb2N1bWVudFRpbWVsaW5lJik7CkBA
IC00NCw4ICs0NywxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50cyhET01IaWdoUmVzVGltZVN0YW1wKTsKIAogcHJpdmF0ZToKKyAgICBzdHJ1Y3QgQW5p
bWF0aW9uc1RvUHJvY2VzcyB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4g
YW5pbWF0aW9uc1RvUmVtb3ZlOworICAgICAgICBWZWN0b3I8UmVmUHRyPENTU1RyYW5zaXRpb24+
PiBjb21wbGV0ZWRUcmFuc2l0aW9uczsKKyAgICB9OworCiAgICAgV2Vha0hhc2hTZXQ8RG9jdW1l
bnRUaW1lbGluZT4gbV90aW1lbGluZXM7CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb25UeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvblR5cGVzLmgKaW5kZXggMzY5NTE4MjJkNTU1M2Y4NGUzODA1NDdkYTUwMGMwMDgx
ZDFjZDJjZi4uM2IwODFkMzJmZDUyMzc2YzcyNDlmNDRhNDViM2ZmYzlhNmQ0YTU3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvblR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvblR5cGVzLmgKQEAgLTMyLDYgKzMy
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBbmltYXRpb25FdmVudEJhc2U7
CiBjbGFzcyBBbmltYXRpb25MaXN0OwogY2xhc3MgQ1NTQW5pbWF0aW9uOwogY2xhc3MgQ1NTVHJh
bnNpdGlvbjsKQEAgLTUyLDYgKzUzLDcgQEAgc3RydWN0IFdlYkFuaW1hdGlvbnNNYXJrYWJsZURv
dWJsZVRyYWl0cyB7CiB1c2luZyBNYXJrYWJsZURvdWJsZSA9IE1hcmthYmxlPGRvdWJsZSwgV2Vi
QW5pbWF0aW9uc01hcmthYmxlRG91YmxlVHJhaXRzPjsKIAogdXNpbmcgQW5pbWF0aW9uQ29sbGVj
dGlvbiA9IExpc3RIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+PjsKK3VzaW5nIEFuaW1hdGlv
bkV2ZW50cyA9IFZlY3RvcjxSZWY8QW5pbWF0aW9uRXZlbnRCYXNlPj47CiB1c2luZyBQcm9wZXJ0
eVRvVHJhbnNpdGlvbk1hcCA9IEhhc2hNYXA8Q1NTUHJvcGVydHlJRCwgUmVmUHRyPENTU1RyYW5z
aXRpb24+PjsKIHVzaW5nIENTU0FuaW1hdGlvbkNvbGxlY3Rpb24gPSBMaXN0SGFzaFNldDxSZWZQ
dHI8Q1NTQW5pbWF0aW9uPj47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQzNWFjNDEy
NDJmNzc2OTY0YmM3YjZmNjcxMGM3MDkyYThhYTkyNTMuLjE5NzJhZWQ5MDllMDk3YTY1YjdlYTFl
NGI1ZjkzYWJhNjhlOTRlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA4MCw3ICs4
MDgwLDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihSZWZQdHI8
U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCiBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIm
IERvY3VtZW50OjplbnN1cmVUaW1lbGluZXNDb250cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fdGlt
ZWxpbmVzQ29udHJvbGxlcikKLSAgICAgICAgbV90aW1lbGluZXNDb250cm9sbGVyID0gbWFrZVVu
aXF1ZTxEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI+KCk7CisgICAgICAgIG1fdGltZWxpbmVz
Q29udHJvbGxlciA9IG1ha2VVbmlxdWU8RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyPigqdGhp
cyk7CiAgICAgcmV0dXJuICptX3RpbWVsaW5lc0NvbnRyb2xsZXIuZ2V0KCk7CiB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3NDQ2NTc4Y2FhNDczYzk1ZDc0MjNjNTE2Yjk4N2JlOWJmYTc4MWI4Li4yMmNhOTAxMGYwODhm
MjM5YmIxYWRlMGNiMWQyYjE1ZTFhYTJkNmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAt
MDQtMjIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2Vi
IEFuaW1hdGlvbnNdIENvb3JkaW5hdGUgInVwZGF0ZSBhbmltYXRpb25zIGFuZCBzZW5kIGV2ZW50
cyIgcHJvY2VkdXJlIGFjcm9zcyBtdWx0aXBsZSB0aW1lbGluZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjEwOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTk0NzA4MjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIHRoZSBmbGFreSBleHBlY3RhdGlvbiBmb3IgdGhlIGltcHJvdmVkIHRl
c3QuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTA0LTIyICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gR2FyZGVuaW5n
LCB1cGRhdGUgdGVzdCBleHBlY3RhdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IDY1YzkwYjE5NDA5YTBmOTAwNWNiYzUxMWM2ZDNkYjllMjcxZDgyYjAuLmQyOGQ5YmM3NmEy
MjVlZWM4NzM3YTA4OTdhODU2YThiZmQ0MjQxMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb29yZGluYXRlICJ1cGRh
dGUgYW5pbWF0aW9ucyBhbmQgc2VuZCBldmVudHMiIHByb2NlZHVyZSBhY3Jvc3MgbXVsdGlwbGUg
dGltZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIxMDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NDcwODIxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcmsgYSBuZXcgdGVzdCBhcyBQ
QVNTIHdoaWNoIHNob3dzIHRoYXQgd2UgY29ycmVjdGx5IHBlcmZvcm0gYSBzaW5nbGUgbWljcm9z
dGFzayBjaGVja3BvaW50IHdoZW4gdXBkYXRpbmcgbXVsdGlwbGUgdGltZWxpbmVzLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1l
bGluZXMvdXBkYXRlLWFuZC1zZW5kLWV2ZW50cy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMjEg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1w
b3J0IGxhdGVzdCBjaGFuZ2VzIGZyb20gd2ViLXBsYXRmb3JtLXRlc3Qvd2VieHIvcmVzb3VyY2Vz
IHRvIGVuYWJsZSB0ZXN0aW5nIGluIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDI0NWQy
MjIyMGQ4YTk5MzA3ODRmZDM1OGIwNTIxNmJmNTFmODhiMS4uNTY1YTM2NzVmMTY3MDhiYjRkZmYx
MTM3NmM3N2IyM2YwMGY1N2ZmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MDY0LDggKzQwNjQs
NiBAQCB3ZWJraXQub3JnL2IvMjA3MjYxIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtYmFja2dyb3VuZAogCiB3ZWJraXQub3JnL2IvMjA3MjYyIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2Fu
aW1hdGlvbnMvc3luYy1zdGFydC10aW1lcy5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0K
IAotd2Via2l0Lm9yZy9iLzIwMjEwOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
Yi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGluZXMvdXBkYXRlLWFuZC1zZW5kLWV2ZW50
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogIyBXZWJYUiBpcyBiZWluZyBpbXBsZW1lbnRlZAog
d2Via2l0Lm9yZy9iLzIwODk4OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhy
IFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUt
YW5kLXNlbmQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91
cGRhdGUtYW5kLXNlbmQtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCA0NGUwNjY4ZmRiODQ5NDA1
OTBjNWQxYzllNDM4NDA3ZGJjZDE0OWQyLi5mYmEyNWQxMTc5ZDdjMjc2NWMwNjU5MzgwYTljOTk4
ZTY4OWNkOGI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGluZXMvdXBkYXRlLWFu
ZC1zZW5kLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvdGltZWxpbmVz
L3VwZGF0ZS1hbmQtc2VuZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC02LDUgKzYsNSBAQCBGQUlM
IFNvcnRzIGNhbmNlbCBldmVudHMgYnkgY29tcG9zaXRlIG9yZGVyIGFzc2VydF9hcnJheV9lcXVh
bHM6IGNhbmNlbCBldmVudHMgcwogUEFTUyBRdWV1ZXMgYSBjYW5jZWwgZXZlbnQgaW4gdHJhbnNp
dGlvbnN0YXJ0IGV2ZW50IGNhbGxiYWNrIAogUEFTUyBTb3J0cyBldmVudHMgZm9yIHRoZSBzYW1l
IHRyYW5zaXRpb24gCiBQQVNTIFBsYXliYWNrIGV2ZW50cyB3aXRoIHRoZSBzYW1lIHRpbWVsaW5l
IHJldGFpbiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmVxdWV1ZWQgCi1GQUlMIEFsbCB0aW1l
bGluZXMgYXJlIHVwZGF0ZWQgYmVmb3JlIHJ1bm5pbmcgbWljcm90YXNrcyBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBUaGUg
b3BlcmF0aW9uIHdhcyBhYm9ydGVkLiIKK1BBU1MgQWxsIHRpbWVsaW5lcyBhcmUgdXBkYXRlZCBi
ZWZvcmUgcnVubmluZyBtaWNyb3Rhc2tzIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397183</attachid>
            <date>2020-04-22 03:46:59 -0700</date>
            <delta_ts>2020-04-22 11:28:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202109-20200422124658.patch</filename>
            <type>text/plain</type>
            <size>26697</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ2OGMyNjA2ZTUxOWI0
NDdiOTExZmQwYTExMTUwNTc5ODVlOTczZS4uOGJlOTc4M2ZhNjY2YjRmMDVlY2NiZDk3NDQ2MTkx
YjFmMWI3NzA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA0LTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBDb29yZGluYXRlICJ1cGRhdGUgYW5pbWF0aW9ucyBhbmQgc2VuZCBldmVudHMiIHByb2NlZHVy
ZSBhY3Jvc3MgbXVsdGlwbGUgdGltZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxMDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NDcw
ODIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNv
IGZhciwgYWx0aG91Z2ggd2UgZGlkIG1hbmFnZSBtdWx0aXBsZSBhbmltYXRpb24gdGltZWxpbmVz
IHBlciBkb2N1bWVudCwgd2UgbW9zdGx5IG9wZXJhdGVkIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRo
YXQgdGhlcmUgcmVhbGx5IHdhcyBhIHNpbmdsZSB0aW1lbGluZS4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCB3ZSBtYWtlIHRoZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIiBwcm9j
ZWR1cmUsIHdoaWNoIGlzIGNlbnRyYWwgdG8gdGhlIGxpZmVjeWNsZSBvZiBhbmltYXRpb25zLCB3
b3JrIHdpdGggbXVsdGlwbGUgdGltZWxpbmVzIHN1Y2gKKyAgICAgICAgdGhhdCBhIHNpbmdsZSBt
aWNyb3Rhc2sgY2hlY2twb2ludCBpcyBwZXJmb3JtZWQgZXZlbiB3aXRoIG11bHRpcGxlIHRpbWVs
aW5lcywgd2hlcmVhcyB3ZSB3b3VsZCBwZXJmb3JtIG9uZSBwZXIgdGltZWxpbmUgYmVmb3JlLiBU
byBkbyB0aGlzLCB3ZSBtb3ZlIG11Y2ggb2YKKyAgICAgICAgdGhlIGxvZ2ljIERvY3VtZW50VGlt
ZWxpbmU6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCkgdG8gRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyIHdoZXJlIGVhY2ggc3RlcCBpcyBydW4gYWNyb3NzIGVhY2ggdGltZWxpbmUs
IHJhdGhlciB0aGFuIHJ1bm5pbmcKKyAgICAgICAgYWxsIHN0ZXBzIGZvciBlYWNoIHRpbWVsaW5l
IG9uZSBhZnRlciB0aGUgb3RoZXIsIHJlc3BlY3RpbmcgdGhlIHNpbmdsZSBtaWNyb3Rhc2sgY2hl
Y2twb2ludCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwcm9jZXNzLgorCisgICAgICAgIFRvIG1pbmlt
aXplIGNvZGUgY2h1cm4gYXQgdGhpcyBzdGFnZSwgd2Ugc3RpbGwga2VlcCBhIGZhaXIgYml0IG9m
IGxvZ2ljIGluIERvY3VtZW50VGltZWxpbmUgYW5kLCB3aGlsZSB3ZSByZW1vdmUgdXBkYXRlQW5p
bWF0aW9uc0FuZFNlbmRFdmVudHMoKSwKKyAgICAgICAgaW50ZXJuYWxVcGRhdGVBbmltYXRpb25z
QW5kU2VuZEV2ZW50cygpIGFuZCB1cGRhdGVDdXJyZW50VGltZSgpLCB3ZSBleHBvc2UgdGhyZWUg
bWV0aG9kcyB0aGF0IGFsbG93IHRvIHJ1biB0aGUgcHJlLWZsaWdodCBzZXF1ZW5jZSBpbgorICAg
ICAgICBkb2N1bWVudFdpbGxVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpLCBjb2xsZWN0
IHBlbmRpbmcgZXZlbnRzIGluIHByZXBhcmVGb3JQZW5kaW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0
Y2goKSBhbmQgcnVuIHRoZSBwb3N0LWZsaWdodCBzZXF1ZW5jZQorICAgICAgICBpbiBkb2N1bWVu
dERpZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCkuCisKKyAgICAgICAgTm9uZSBvZiB0
aGUgbG9naWMgY2hhbmdlcywgdGhpcyBpcyBqdXN0IG1vdmluZyBjb2RlIGFyb3VuZC4gSW4gdGhl
IGZ1dHVyZSwgbW9yZSBwYXRjaGVzIHdpbGwgbW92ZSBjb2RlIGZyb20gRG9jdW1lbnRUaW1lbGlu
ZSB1cCB0byBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIKKyAgICAgICAgc3VjaCB0aGF0IGV2
ZW50cyBhcmUgZW5xdWV1ZWQgdGhlcmUsIGFuZCBhbmltYXRpb24gc2NoZWR1bGluZyBhcyB3ZWxs
LiBCdXQgdGhpcyBhbHJlYWR5IGxldHMgdXMgcGFzcyBhIG5ldyB0ZXN0IHRoYXQgdXNlZCB0byBm
bGFraWx5IHJlamVjdCBwcm9taXNlcyBpbiB0aGUgV1BUCisgICAgICAgIHRlc3Qgd2ViLWFuaW1h
dGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRzLmh0bWwu
CisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjpyZWxldmFudEFuaW1hdGlvbnMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGltZWxpbmU6OmFsbEFuaW1hdGlvbnMgY29uc3QpOgor
ICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50V2lsbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50RGlk
VXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRUaW1lbGluZTo6cHJlcGFyZUZvclBlbmRpbmdBbmltYXRpb25FdmVudHNEaXNwYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVDdXJyZW50VGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRp
b25zQW5kU2VuZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjppbnRlcm5hbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oOgorICAgICAgICAqIGFuaW1h
dGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRhdGVB
bmltYXRpb25zQW5kU2VuZEV2ZW50cyk6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb25UeXBl
cy5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6ZW5zdXJlVGltZWxpbmVzQ29udHJvbGxlcik6CisKIDIwMjAtMDQtMjEgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFk
ZCBhIHN1cHBvcnRpbmcgb2JqZWN0IGZvciBEb2N1bWVudCB0byBtYW5hZ2UgdGltZWxpbmVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCmluZGV4IGE0Mjgy
Mzk0NjA1ZTNjZmJkODY3ZjU5NzM1MDY1MzQ5MTQ1YWI5YWIuLjRlZGM1NTM0MmYwMTI4NTUwYjkw
NDM4YTY3MTM2ZjY3MDg1YzBhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25UaW1lbGluZS5oCkBAIC01MCw2ICs1MCw5IEBAIGNsYXNzIEFuaW1hdGlvblRpbWVsaW5l
IDogcHVibGljIFJlZkNvdW50ZWQ8QW5pbWF0aW9uVGltZWxpbmU+LCBwdWJsaWMgQ2FuTWFrZVdl
CiBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnRUaW1lbGluZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKKyAgICBBbmltYXRpb25Db2xsZWN0aW9uIHJlbGV2YW50QW5pbWF0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uczsgfQorICAgIFZlY3RvcjxXZWFrUHRy
PFdlYkFuaW1hdGlvbj4+IGFsbEFuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2FsbEFuaW1h
dGlvbnM7IH0KKwogICAgIHZvaWQgZm9yZ2V0QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiopOwogICAg
IHZpcnR1YWwgdm9pZCBhbmltYXRpb25UaW1pbmdEaWRDaGFuZ2UoV2ViQW5pbWF0aW9uJik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCAxY2MxNDJjZDFl
MDA2YTc1OTUyNGUzMTFjODJkYjhhM2IwOGRjODM5Li41NGM4OWNkYjY1YmU2N2Q5NjYyN2EwZjE0
ZDBhMTMwOTg2YjgzZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50
VGltZWxpbmUuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmlt
YXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVF
ZmZlY3QuaCIKQEAgLTM2MiwzNiArMzYxLDIxIEBAIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6c2hv
dWxkUnVuVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHNJZ25vcmluZ1N1c3BlbnNpb25TCiAg
ICAgcmV0dXJuICFtX2FuaW1hdGlvbnMuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBbmltYXRpb25F
dmVudHMuaXNFbXB0eSgpIHx8ICFtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5n
U3RhdGVDaGFuZ2UuaXNFbXB0eSgpOwogfQogCi12b2lkIERvY3VtZW50VGltZWxpbmU6OnVwZGF0
ZUN1cnJlbnRUaW1lKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wKQorRG9jdW1lbnRUaW1l
bGluZTo6U2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMgRG9jdW1lbnRUaW1lbGlu
ZTo6ZG9jdW1lbnRXaWxsVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoRE9NSGlnaFJlc1Rp
bWVTdGFtcCB0aW1lc3RhbXApCiB7CiAgICAgLy8gV2UgbmVlZCB0byBmcmVlemUgdGhlIGN1cnJl
bnQgdGltZSBldmVuIGlmIG5vIGFuaW1hdGlvbiBpcyBydW5uaW5nLgogICAgIC8vIGRvY3VtZW50
LnRpbWVsaW5lLmN1cnJlbnRUaW1lIG1heSBiZSBjYWxsZWQgZnJvbSBhIHJBRiBjYWxsYmFjayBh
bmQKICAgICAvLyBpdCBoYXMgdG8gbWF0Y2ggdGhlIHJBRiB0aW1lc3RhbXAuCiAgICAgaWYgKCFt
X2lzU3VzcGVuZGVkIHx8ICFzaG91bGRSdW5VcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0ln
bm9yaW5nU3VzcGVuc2lvblN0YXRlKCkpCiAgICAgICAgIGNhY2hlQ3VycmVudFRpbWUodGltZXN0
YW1wKTsKLX0KIAotdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50cygpCi17CiAgICAgLy8gVXBkYXRpbmcgYW5pbWF0aW9ucyBhbmQgc2VuZGluZyBldmVu
dHMgbWF5IGludmFsaWRhdGUgdGhlIHRpbWluZyBvZiBzb21lIGFuaW1hdGlvbnMsIHNvIHdlIG11
c3Qgc2V0IHRoZSBtX2FuaW1hdGlvblJlc29sdXRpb25TY2hlZHVsZWQKICAgICAvLyBmbGFnIHRv
IGZhbHNlIHByaW9yIHRvIHJ1bm5pbmcgdGhhdCBwcm9jZWR1cmUgdG8gYWxsb3cgYW5pbWF0aW9u
IHdpdGggdGltaW5nIG1vZGVsIHVwZGF0ZXMgdG8gc2NoZWR1bGUgdXBkYXRlcy4KLSAgICBtX2Fu
aW1hdGlvblJlc29sdXRpb25TY2hlZHVsZWQgPSBmYWxzZTsKLQotICAgIGlmIChtX2lzU3VzcGVu
ZGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIXNob3VsZFJ1blVwZGF0ZUFuaW1hdGlv
bnNBbmRTZW5kRXZlbnRzSWdub3JpbmdTdXNwZW5zaW9uU3RhdGUoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaW50ZXJuYWxVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOwotICAgIGFw
cGx5UGVuZGluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucygpOworICAgIGJvb2wgd2FzQW5pbWF0aW9u
UmVzb2x1dGlvblNjaGVkdWxlZCA9IHN0ZDo6ZXhjaGFuZ2UobV9hbmltYXRpb25SZXNvbHV0aW9u
U2NoZWR1bGVkLCBmYWxzZSk7CiAKLSAgICBpZiAoIW1fYW5pbWF0aW9uUmVzb2x1dGlvblNjaGVk
dWxlZCkKLSAgICAgICAgc2NoZWR1bGVOZXh0VGljaygpOwotfQorICAgIGlmICghd2FzQW5pbWF0
aW9uUmVzb2x1dGlvblNjaGVkdWxlZCB8fCBtX2lzU3VzcGVuZGVkIHx8ICFzaG91bGRSdW5VcGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0lnbm9yaW5nU3VzcGVuc2lvblN0YXRlKCkpCisgICAg
ICAgIHJldHVybiBEb2N1bWVudFRpbWVsaW5lOjpTaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2Vu
ZEV2ZW50czo6Tm87CiAKLXZvaWQgRG9jdW1lbnRUaW1lbGluZTo6aW50ZXJuYWxVcGRhdGVBbmlt
YXRpb25zQW5kU2VuZEV2ZW50cygpCi17CiAgICAgbV9udW1iZXJPZkFuaW1hdGlvblRpbWVsaW5l
SW52YWxpZGF0aW9uc0ZvclRlc3RpbmcrKzsKIAogICAgIC8vIGVucXVldWVBbmltYXRpb25FdmVu
dCgpIGNhbGxzIHNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbigpIHRvIGVuc3VyZSB0aGF0IHRo
ZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIgpAQCAtMzk5LDc3ICszODMsMTUg
QEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjppbnRlcm5hbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzKCkKICAgICAvLyB0aGlzIHByb2NlZHVyZSBpcyBydW5uaW5nIHNob3VsZCBub3Qgc2No
ZWR1bGUgYW5pbWF0aW9uIHJlc29sdXRpb24gdW50aWwgdGhlIGV2ZW50IHF1ZXVlIGhhcyBiZWVu
IGNsZWFyZWQuCiAgICAgbV9zaG91bGRTY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb25Gb3JOZXdQ
ZW5kaW5nRXZlbnRzID0gZmFsc2U7CiAKLSAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
d2ViLWFuaW1hdGlvbnMvI3VwZGF0ZS1hbmltYXRpb25zLWFuZC1zZW5kLWV2ZW50cwotCi0gICAg
Ly8gMS4gVXBkYXRlIHRoZSBjdXJyZW50IHRpbWUgb2YgYWxsIHRpbWVsaW5lcyBhc3NvY2lhdGVk
IHdpdGggZG9jIHBhc3Npbmcgbm93IGFzIHRoZSB0aW1lc3RhbXAuCi0KLSAgICBWZWN0b3I8UmVm
UHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnNUb1JlbW92ZTsKLSAgICBWZWN0b3I8UmVmUHRy
PENTU1RyYW5zaXRpb24+PiBjb21wbGV0ZWRUcmFuc2l0aW9uczsKLQotICAgIGZvciAoYXV0byYg
YW5pbWF0aW9uIDogbV9hbmltYXRpb25zKSB7Ci0gICAgICAgIGlmIChhbmltYXRpb24tPnRpbWVs
aW5lKCkgIT0gdGhpcykgewotICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRpb24tPnRpbWVsaW5l
KCkpOwotICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOwot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUaGlzIHdpbGwg
bm90aWZ5IHRoZSBhbmltYXRpb24gdGhhdCB0aW1pbmcgaGFzIGNoYW5nZWQgYW5kIHdpbGwgY2Fs
bCBhdXRvbWF0aWNhbGx5Ci0gICAgICAgIC8vIHNjaGVkdWxlIGludmFsaWRhdGlvbiBpZiByZXF1
aXJlZCBmb3IgdGhpcyBhbmltYXRpb24uCi0gICAgICAgIGFuaW1hdGlvbi0+dGljaygpOwotCi0g
ICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVlZHNU
aWNrKCkpCi0gICAgICAgICAgICBhbmltYXRpb25zVG9SZW1vdmUuYXBwZW5kKGFuaW1hdGlvbik7
Ci0KLSAgICAgICAgaWYgKCFhbmltYXRpb24tPm5lZWRzVGljaygpICYmIGlzPENTU1RyYW5zaXRp
b24+KGFuaW1hdGlvbikgJiYgYW5pbWF0aW9uLT5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246
OlBsYXlTdGF0ZTo6RmluaXNoZWQpIHsKLSAgICAgICAgICAgIGF1dG8qIHRyYW5zaXRpb24gPSBk
b3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24uZ2V0KCkpOwotICAgICAgICAgICAgaWYg
KHRyYW5zaXRpb24tPm93bmluZ0VsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICBjb21wbGV0ZWRU
cmFuc2l0aW9ucy5hcHBlbmQodHJhbnNpdGlvbik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAv
LyAyLiBSZW1vdmUgcmVwbGFjZWQgYW5pbWF0aW9ucyBmb3IgZG9jLgotICAgIHJlbW92ZVJlcGxh
Y2VkQW5pbWF0aW9ucygpOwotCi0gICAgLy8gMy4gUGVyZm9ybSBhIG1pY3JvdGFzayBjaGVja3Bv
aW50LgotICAgIGlmIChhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5kb2N1bWVudCgp
KSkKLSAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3Bv
aW50KCk7Ci0KLSAgICAvLyA0LiBMZXQgZXZlbnRzIHRvIGRpc3BhdGNoIGJlIGEgY29weSBvZiBk
b2MncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KLSAgICAvLyA1LiBDbGVhciBkb2Mn
cyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KLSAgICBhdXRvIHBlbmRpbmdBbmltYXRp
b25FdmVudHMgPSBXVEZNb3ZlKG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7Ci0gICAgbV9zaG91
bGRTY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb25Gb3JOZXdQZW5kaW5nRXZlbnRzID0gdHJ1ZTsK
LQotICAgIC8vIDYuIFBlcmZvcm0gYSBzdGFibGUgc29ydCBvZiB0aGUgYW5pbWF0aW9uIGV2ZW50
cyBpbiBldmVudHMgdG8gZGlzcGF0Y2ggYXMgZm9sbG93cy4KLSAgICBzdGQ6OnN0YWJsZV9zb3J0
KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5l
bmQoKSwgW10gKGNvbnN0IFJlZjxBbmltYXRpb25FdmVudEJhc2U+JiBsaHMsIGNvbnN0IFJlZjxB
bmltYXRpb25FdmVudEJhc2U+JiByaHMpIHsKLSAgICAgICAgLy8gMS4gU29ydCB0aGUgZXZlbnRz
IGJ5IHRoZWlyIHNjaGVkdWxlZCBldmVudCB0aW1lIHN1Y2ggdGhhdCBldmVudHMgdGhhdCB3ZXJl
IHNjaGVkdWxlZCB0byBvY2N1ciBlYXJsaWVyLCBzb3J0IGJlZm9yZSBldmVudHMgc2NoZWR1bGVk
IHRvIG9jY3VyIGxhdGVyCi0gICAgICAgIC8vIGFuZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2
ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVk
IHNjaGVkdWxlZCBldmVudCB0aW1lLgotICAgICAgICAvLyAyLiBXaXRoaW4gZXZlbnRzIHdpdGgg
ZXF1YWwgc2NoZWR1bGVkIGV2ZW50IHRpbWVzLCBzb3J0IGJ5IHRoZWlyIGNvbXBvc2l0ZSBvcmRl
ci4gRklYTUU6IFdlIGRvbid0IGRvIHRoaXMuCi0gICAgICAgIGlmIChsaHMtPnRpbWVsaW5lVGlt
ZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1lKCkgJiYgcmhzLT50aW1lbGluZVRpbWUoKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1l
KCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVU
aW1lKCkudmFsdWUoKTsKLSAgICB9KTsKLQotICAgIC8vIDcuIERpc3BhdGNoIGVhY2ggb2YgdGhl
IGV2ZW50cyBpbiBldmVudHMgdG8gZGlzcGF0Y2ggYXQgdGhlaXIgY29ycmVzcG9uZGluZyB0YXJn
ZXQgdXNpbmcgdGhlIG9yZGVyIGVzdGFibGlzaGVkIGluIHRoZSBwcmV2aW91cyBzdGVwLgotICAg
IGZvciAoYXV0byYgcGVuZGluZ0FuaW1hdGlvbkV2ZW50IDogcGVuZGluZ0FuaW1hdGlvbkV2ZW50
cykKLSAgICAgICAgcGVuZGluZ0FuaW1hdGlvbkV2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVu
dChwZW5kaW5nQW5pbWF0aW9uRXZlbnQpOworICAgIHJldHVybiBEb2N1bWVudFRpbWVsaW5lOjpT
aG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50czo6WWVzOworfQogCi0gICAgLy8gVGhp
cyB3aWxsIGNhbmNlbCBhbnkgc2NoZWR1bGVkIGludmFsaWRhdGlvbiBpZiB3ZSBlbmQgdXAgcmVt
b3ZpbmcgYWxsIGFuaW1hdGlvbnMuCi0gICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBhbmltYXRp
b25zVG9SZW1vdmUpIHsKLSAgICAgICAgLy8gQW4gYW5pbWF0aW9uIHRoYXQgd2FzIGluaXRpYWxs
eSBtYXJrZWQgYXMgaXJyZWxldmFudCBtYXkgaGF2ZSBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgc2Vu
ZGluZyBldmVudHMsIHNvIHdlIHJ1biB0aGUgc2FtZQotICAgICAgICAvLyBjaGVjayB0aGF0IHdl
IHJhbiB0byBhZGQgaXQgdG8gYW5pbWF0aW9uc1RvUmVtb3ZlIGluIHRoZSBmaXJzdCBwbGFjZS4K
LSAgICAgICAgaWYgKCFhbmltYXRpb24tPmlzUmVsZXZhbnQoKSAmJiAhYW5pbWF0aW9uLT5uZWVk
c1RpY2soKSkKLSAgICAgICAgICAgIHJlbW92ZUFuaW1hdGlvbigqYW5pbWF0aW9uKTsKLSAgICB9
Cit2b2lkIERvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNl
bmRFdmVudHMoKQoreworICAgIGFwcGx5UGVuZGluZ0FjY2VsZXJhdGVkQW5pbWF0aW9ucygpOwog
Ci0gICAgLy8gTm93IHRoYXQgYW5pbWF0aW9ucyB0aGF0IG5lZWRlZCByZW1vdmFsIGhhdmUgYmVl
biByZW1vdmVkLCBsZXQncyB1cGRhdGUgdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25z
LgotICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIGRlYWxpbmcgd2l0aCB0aGUgbGlz
dCBvZiBhbmltYXRpb25zIHRvIHJlbW92ZSBhcyB0aGUgYW5pbWF0aW9uIG1heSBoYXZlIGJlZW4K
LSAgICAvLyByZW1vdmVkIGZyb20gdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25zIG90
aGVyd2lzZS4KLSAgICBmb3IgKGF1dG8mIGNvbXBsZXRlZFRyYW5zaXRpb24gOiBjb21wbGV0ZWRU
cmFuc2l0aW9ucykKLSAgICAgICAgdHJhbnNpdGlvbkRpZENvbXBsZXRlKGNvbXBsZXRlZFRyYW5z
aXRpb24pOworICAgIGlmICghbV9hbmltYXRpb25SZXNvbHV0aW9uU2NoZWR1bGVkKQorICAgICAg
ICBzY2hlZHVsZU5leHRUaWNrKCk7CiB9CiAKIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0
aW9uQ2FuQmVSZW1vdmVkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpAQCAtNzM1LDYgKzY1Nywx
MiBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OmVucXVldWVBbmltYXRpb25FdmVudChBbmltYXRp
b25FdmVudEJhc2UmIGV2ZW50KQogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb24o
KTsKIH0KIAorQW5pbWF0aW9uRXZlbnRzIERvY3VtZW50VGltZWxpbmU6OnByZXBhcmVGb3JQZW5k
aW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0Y2goKQoreworICAgIG1fc2hvdWxkU2NoZWR1bGVBbmlt
YXRpb25SZXNvbHV0aW9uRm9yTmV3UGVuZGluZ0V2ZW50cyA9IHRydWU7CisgICAgcmV0dXJuIHN0
ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLCB7IH0pOworfQorCiBWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgZG91YmxlPj4gRG9jdW1lbnRUaW1lbGluZTo6YWNjZWxlcmF0ZWRB
bmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewogICAgIGF1dG8q
IHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmgKaW5kZXggNzVkNzc0OGM1YmY2ZjRiNGU0NTg5OWEzZWViODFm
NGZlNTQwNWYzMi4uNmM1N2FjY2JhMDE1ODY5ZmQwZTlhMTMxZjQ2ODdkMTZmZWZmZjI5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCkBAIC01OCw2ICs1
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFuaW1hdGlvbihXZWJBbmltYXRpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KFdlYkFuaW1hdGlv
biYsIEVsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIGFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxl
bWVudChXZWJBbmltYXRpb24mLCBFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCB0cmFuc2l0aW9u
RGlkQ29tcGxldGUoUmVmUHRyPENTU1RyYW5zaXRpb24+KTsKIAogICAgIC8vIElmIHBvc3NpYmxl
LCBjb21wdXRlIHRoZSB2aXN1YWwgZXh0ZW50IG9mIGFueSB0cmFuc2Zvcm0gYW5pbWF0aW9uIG9u
IHRoZSBnaXZlbiByZW5kZXJlcgogICAgIC8vIHVzaW5nIHRoZSBnaXZlbiByZWN0LCByZXR1cm5p
bmcgdGhlIHJlc3VsdCBpbiB0aGUgcmVjdC4gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIHNvbWUK
QEAgLTcyLDkgKzczLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvbkV2
ZW50KEFuaW1hdGlvbkV2ZW50QmFzZSYpOwogICAgIAotICAgIGJvb2wgc2NoZWR1bGVkVXBkYXRl
KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRpb25SZXNvbHV0aW9uU2NoZWR1bGVkOyB9Ci0gICAg
dm9pZCB1cGRhdGVDdXJyZW50VGltZShET01IaWdoUmVzVGltZVN0YW1wIHRpbWVzdGFtcCk7Ci0g
ICAgdm9pZCB1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOworICAgIGVudW0gY2xhc3Mg
U2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMgOiB1aW50OF90IHsgWWVzLCBObyB9
OworICAgIFNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzIGRvY3VtZW50V2lsbFVw
ZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKERPTUhpZ2hSZXNUaW1lU3RhbXApOworICAgIHZv
aWQgcmVtb3ZlUmVwbGFjZWRBbmltYXRpb25zKCk7CisgICAgQW5pbWF0aW9uRXZlbnRzIHByZXBh
cmVGb3JQZW5kaW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0Y2goKTsKKyAgICB2b2lkIGRvY3VtZW50
RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKTsKIAogICAgIHZvaWQgdXBkYXRlVGhy
b3R0bGluZ1N0YXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25kcyBhbmltYXRpb25JbnRl
cnZhbCgpIGNvbnN0OwpAQCAtOTgsOSArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFy
VGlja1NjaGVkdWxlVGltZXIoKTsKICAgICB2b2lkIGludGVybmFsVXBkYXRlQW5pbWF0aW9uc0Fu
ZFNlbmRFdmVudHMoKTsKICAgICB2b2lkIHVwZGF0ZUxpc3RPZkVsZW1lbnRzV2l0aFJ1bm5pbmdB
Y2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKLSAgICB2b2lkIHRyYW5z
aXRpb25EaWRDb21wbGV0ZShSZWZQdHI8Q1NTVHJhbnNpdGlvbj4pOwogICAgIHZvaWQgc2NoZWR1
bGVOZXh0VGljaygpOwotICAgIHZvaWQgcmVtb3ZlUmVwbGFjZWRBbmltYXRpb25zKCk7CiAgICAg
Ym9vbCBhbmltYXRpb25DYW5CZVJlbW92ZWQoV2ViQW5pbWF0aW9uJik7CiAgICAgYm9vbCBzaG91
bGRSdW5VcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50c0lnbm9yaW5nU3VzcGVuc2lvblN0YXRl
KCkgY29uc3Q7CiAKQEAgLTEwOCw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIEdlbmVyaWNUYXNr
UXVldWU8VGltZXI+IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZTsKICAgICBIYXNoU2V0
PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5u
aW5nU3RhdGVDaGFuZ2U7CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gbV9lbGVtZW50c1dpdGhSdW5u
aW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zOwotICAgIFZlY3RvcjxSZWY8QW5pbWF0aW9uRXZlbnRC
YXNlPj4gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOworICAgIEFuaW1hdGlvbkV2ZW50cyBtX3Bl
bmRpbmdBbmltYXRpb25FdmVudHM7CiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
ICAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV9jYWNoZWRD
dXJyZW50VGltZTsKICAgICBTZWNvbmRzIG1fb3JpZ2luVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKaW5k
ZXggZDZhMDFlNWQ3N2VkN2MzYzlmMzcxYWM4MTIyMmY4MjdjODQ0M2VhYi4uNWU5ZDNmMjIyZTYx
MGVlMWU5OGU0NzQyYjAxOTI0MDI4Yzg0ODdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKQEAgLTI2LDEx
ICsyNiwxOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisjaW5j
bHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgIldl
YkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIldlYkFuaW1hdGlvblR5cGVzLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXIoKQorRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjpEb2N1bWVudFRp
bWVsaW5lc0NvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKIHsKIH0KIApAQCAtNTgsMjAgKzY1LDk1IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhET01IaWdoUmVzVGlt
ZVN0CiB7CiAgICAgQVNTRVJUKCFtX3RpbWVsaW5lcy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKIAot
ICAgIC8vIFdlIG5lZWQgdG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIg
aXRzIG1lbWJlcnMgc2luY2UgY2FsbGluZyB1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygp
IG1heSBtdXRhdGUgbV90aW1lbGluZXMuCi0gICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVs
aW5lPj4gdGltZWxpbmVzOwotICAgIGJvb2wgc2hvdWxkVXBkYXRlQW5pbWF0aW9ucyA9IGZhbHNl
OwotICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykgewotICAgICAgICBpZiAo
dGltZWxpbmUuc2NoZWR1bGVkVXBkYXRlKCkpCi0gICAgICAgICAgICBzaG91bGRVcGRhdGVBbmlt
YXRpb25zID0gdHJ1ZTsKLSAgICAgICAgdGltZWxpbmVzLmFwcGVuZCgmdGltZWxpbmUpOworICAg
IC8vIFdlIG5lZWQgdG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgaXRz
IG1lbWJlcnMgc2luY2UgdGhlIHN0ZXBzIGluIHRoaXMgcHJvY2VkdXJlIG1heSBtdXRhdGUgbV90
aW1lbGluZXMuCisgICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVsaW5lPj4gcHJvdGVjdGVk
VGltZWxpbmVzOworICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykKKyAgICAg
ICAgcHJvdGVjdGVkVGltZWxpbmVzLmFwcGVuZCgmdGltZWxpbmUpOworCisgICAgLy8gMS4gVXBk
YXRlIHRoZSBjdXJyZW50IHRpbWUgb2YgYWxsIHRpbWVsaW5lcyBhc3NvY2lhdGVkIHdpdGggZG9j
IHBhc3Npbmcgbm93IGFzIHRoZSB0aW1lc3RhbXAuCisgICAgVmVjdG9yPERvY3VtZW50VGltZWxp
bmUqPiB0aW1lbGluZXNUb1VwZGF0ZTsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+
IGFuaW1hdGlvbnNUb1JlbW92ZTsKKyAgICBWZWN0b3I8UmVmUHRyPENTU1RyYW5zaXRpb24+PiBj
b21wbGV0ZWRUcmFuc2l0aW9uczsKKyAgICBmb3IgKGF1dG8mIHRpbWVsaW5lIDogcHJvdGVjdGVk
VGltZWxpbmVzKSB7CisgICAgICAgIGF1dG8gc2hvdWxkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRF
dmVudHMgPSB0aW1lbGluZS0+ZG9jdW1lbnRXaWxsVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVu
dHModGltZXN0YW1wKTsKKyAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzID09IERvY3VtZW50VGltZWxpbmU6OlNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzOjpObykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHRpbWVsaW5lc1Rv
VXBkYXRlLmFwcGVuZCh0aW1lbGluZS5nZXQoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBhbmlt
YXRpb24gOiB0aW1lbGluZS0+cmVsZXZhbnRBbmltYXRpb25zKCkpIHsKKyAgICAgICAgICAgIGlm
IChhbmltYXRpb24tPnRpbWVsaW5lKCkgIT0gdGltZWxpbmUuZ2V0KCkpIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoIWFuaW1hdGlvbi0+dGltZWxpbmUoKSk7CisgICAgICAgICAgICAgICAgYW5p
bWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGlzIHdpbGwgbm90aWZ5IHRo
ZSBhbmltYXRpb24gdGhhdCB0aW1pbmcgaGFzIGNoYW5nZWQgYW5kIHdpbGwgY2FsbCBhdXRvbWF0
aWNhbGx5CisgICAgICAgICAgICAvLyBzY2hlZHVsZSBpbnZhbGlkYXRpb24gaWYgcmVxdWlyZWQg
Zm9yIHRoaXMgYW5pbWF0aW9uLgorICAgICAgICAgICAgYW5pbWF0aW9uLT50aWNrKCk7CisKKyAg
ICAgICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVl
ZHNUaWNrKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmlt
YXRpb24pOworCisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi0+bmVlZHNUaWNrKCkgJiYgaXM8
Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSAmJiBhbmltYXRpb24tPnBsYXlTdGF0ZSgpID09IFdl
YkFuaW1hdGlvbjo6UGxheVN0YXRlOjpGaW5pc2hlZCkgeworICAgICAgICAgICAgICAgIGF1dG8q
IHRyYW5zaXRpb24gPSBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24uZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uLT5vd25pbmdFbGVtZW50KCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbXBsZXRlZFRyYW5zaXRpb25zLmFwcGVuZCh0cmFuc2l0aW9uKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAotICAgIGZvciAoYXV0byYgdGltZWxpbmUg
OiB0aW1lbGluZXMpIHsKLSAgICAgICAgdGltZWxpbmUtPnVwZGF0ZUN1cnJlbnRUaW1lKHRpbWVz
dGFtcCk7Ci0gICAgICAgIGlmIChzaG91bGRVcGRhdGVBbmltYXRpb25zKQotICAgICAgICAgICAg
dGltZWxpbmUtPnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCk7CisgICAgaWYgKHRpbWVs
aW5lc1RvVXBkYXRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMi4gUmVt
b3ZlIHJlcGxhY2VkIGFuaW1hdGlvbnMgZm9yIGRvYy4KKyAgICBmb3IgKGF1dG8mIHRpbWVsaW5l
IDogbV90aW1lbGluZXMpCisgICAgICAgIHRpbWVsaW5lLnJlbW92ZVJlcGxhY2VkQW5pbWF0aW9u
cygpOworCisgICAgLy8gMy4gUGVyZm9ybSBhIG1pY3JvdGFzayBjaGVja3BvaW50LgorICAgIGF1
dG8gZG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fZG9jdW1lbnQpOworICAgIGRvY3VtZW50LT5ldmVu
dExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gNC4gTGV0IGV2
ZW50cyB0byBkaXNwYXRjaCBiZSBhIGNvcHkgb2YgZG9jJ3MgcGVuZGluZyBhbmltYXRpb24gZXZl
bnQgcXVldWUuCisgICAgLy8gNS4gQ2xlYXIgZG9jJ3MgcGVuZGluZyBhbmltYXRpb24gZXZlbnQg
cXVldWUuCisgICAgQW5pbWF0aW9uRXZlbnRzIGV2ZW50czsKKyAgICBmb3IgKGF1dG8mIHRpbWVs
aW5lIDogdGltZWxpbmVzVG9VcGRhdGUpCisgICAgICAgIGV2ZW50cy5hcHBlbmRWZWN0b3IodGlt
ZWxpbmUtPnByZXBhcmVGb3JQZW5kaW5nQW5pbWF0aW9uRXZlbnRzRGlzcGF0Y2goKSk7CisKKyAg
ICAvLyA2LiBQZXJmb3JtIGEgc3RhYmxlIHNvcnQgb2YgdGhlIGFuaW1hdGlvbiBldmVudHMgaW4g
ZXZlbnRzIHRvIGRpc3BhdGNoIGFzIGZvbGxvd3MuCisgICAgc3RkOjpzdGFibGVfc29ydChldmVu
dHMuYmVnaW4oKSwgZXZlbnRzLmVuZCgpLCBbXSAoY29uc3QgUmVmPEFuaW1hdGlvbkV2ZW50QmFz
ZT4mIGxocywgY29uc3QgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4mIHJocykgeworICAgICAgICAv
LyAxLiBTb3J0IHRoZSBldmVudHMgYnkgdGhlaXIgc2NoZWR1bGVkIGV2ZW50IHRpbWUgc3VjaCB0
aGF0IGV2ZW50cyB0aGF0IHdlcmUgc2NoZWR1bGVkIHRvIG9jY3VyIGVhcmxpZXIsIHNvcnQgYmVm
b3JlIGV2ZW50cyBzY2hlZHVsZWQgdG8gb2NjdXIgbGF0ZXIKKyAgICAgICAgLy8gYW5kIGV2ZW50
cyB3aG9zZSBzY2hlZHVsZWQgZXZlbnQgdGltZSBpcyB1bnJlc29sdmVkIHNvcnQgYmVmb3JlIGV2
ZW50cyB3aXRoIGEgcmVzb2x2ZWQgc2NoZWR1bGVkIGV2ZW50IHRpbWUuCisgICAgICAgIC8vIDIu
IFdpdGhpbiBldmVudHMgd2l0aCBlcXVhbCBzY2hlZHVsZWQgZXZlbnQgdGltZXMsIHNvcnQgYnkg
dGhlaXIgY29tcG9zaXRlIG9yZGVyLiBGSVhNRTogV2UgZG9uJ3QgZG8gdGhpcy4KKyAgICAgICAg
aWYgKGxocy0+dGltZWxpbmVUaW1lKCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUoKSAmJiBy
aHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlm
ICghbGhzLT50aW1lbGluZVRpbWUoKSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbGhzLT50aW1lbGluZVRpbWUoKS52YWx1
ZSgpIDwgcmhzLT50aW1lbGluZVRpbWUoKS52YWx1ZSgpOworICAgIH0pOworCisgICAgLy8gNy4g
RGlzcGF0Y2ggZWFjaCBvZiB0aGUgZXZlbnRzIGluIGV2ZW50cyB0byBkaXNwYXRjaCBhdCB0aGVp
ciBjb3JyZXNwb25kaW5nIHRhcmdldCB1c2luZyB0aGUgb3JkZXIgZXN0YWJsaXNoZWQgaW4gdGhl
IHByZXZpb3VzIHN0ZXAuCisgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50cykKKyAgICAgICAg
ZXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICAgIC8vIFRoaXMgd2ls
bCBjYW5jZWwgYW55IHNjaGVkdWxlZCBpbnZhbGlkYXRpb24gaWYgd2UgZW5kIHVwIHJlbW92aW5n
IGFsbCBhbmltYXRpb25zLgorICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogYW5pbWF0aW9uc1Rv
UmVtb3ZlKSB7CisgICAgICAgIC8vIEFuIGFuaW1hdGlvbiB0aGF0IHdhcyBpbml0aWFsbHkgbWFy
a2VkIGFzIGlycmVsZXZhbnQgbWF5IGhhdmUgY2hhbmdlZCB3aGlsZSB3ZSB3ZXJlIHNlbmRpbmcg
ZXZlbnRzLCBzbyB3ZSBydW4gdGhlIHNhbWUKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB3ZSByYW4g
dG8gYWRkIGl0IHRvIGFuaW1hdGlvbnNUb1JlbW92ZSBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAg
ICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVlZHNUaWNr
KCkpCisgICAgICAgICAgICBhbmltYXRpb24tPnRpbWVsaW5lKCktPnJlbW92ZUFuaW1hdGlvbigq
YW5pbWF0aW9uKTsKICAgICB9CisKKyAgICAvLyBOb3cgdGhhdCBhbmltYXRpb25zIHRoYXQgbmVl
ZGVkIHJlbW92YWwgaGF2ZSBiZWVuIHJlbW92ZWQsIGxldCdzIHVwZGF0ZSB0aGUgbGlzdCBvZiBj
b21wbGV0ZWQgdHJhbnNpdGlvbnMuCisgICAgLy8gVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIg
ZGVhbGluZyB3aXRoIHRoZSBsaXN0IG9mIGFuaW1hdGlvbnMgdG8gcmVtb3ZlIGFzIHRoZSBhbmlt
YXRpb24gbWF5IGhhdmUgYmVlbgorICAgIC8vIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBvZiBjb21w
bGV0ZWQgdHJhbnNpdGlvbnMgb3RoZXJ3aXNlLgorICAgIGZvciAoYXV0byYgY29tcGxldGVkVHJh
bnNpdGlvbiA6IGNvbXBsZXRlZFRyYW5zaXRpb25zKQorICAgICAgICBkb3duY2FzdDxEb2N1bWVu
dFRpbWVsaW5lPigqY29tcGxldGVkVHJhbnNpdGlvbi0+dGltZWxpbmUoKSkudHJhbnNpdGlvbkRp
ZENvbXBsZXRlKGNvbXBsZXRlZFRyYW5zaXRpb24pOworCisgICAgZm9yIChhdXRvJiB0aW1lbGlu
ZSA6IHRpbWVsaW5lc1RvVXBkYXRlKQorICAgICAgICB0aW1lbGluZS0+ZG9jdW1lbnREaWRVcGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXND
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXND
b250cm9sbGVyLmgKaW5kZXggYjZlMzBkZjNlODlhOGZjZjA5Nzg2N2RhZmQwYmQ0MTljYTkyMjgz
MC4uYzU4NzQ2MGU4NTU4NGEyYTBlOTE2YmQ1ZmMwYmJmMmM0ZjEwZjcxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIu
aApAQCAtMzAsMTIgKzMwLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ1NT
VHJhbnNpdGlvbjsKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRUaW1lbGluZTsKK2Ns
YXNzIFdlYkFuaW1hdGlvbjsKIAogY2xhc3MgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIoKTsKKyAgICBleHBsaWNpdCBEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXIoRG9jdW1lbnQmKTsKICAgICB+RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
KCk7CiAKICAgICB2b2lkIGFkZFRpbWVsaW5lKERvY3VtZW50VGltZWxpbmUmKTsKQEAgLTQ0LDgg
KzQ3LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRz
KERPTUhpZ2hSZXNUaW1lU3RhbXApOwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBBbmltYXRpb25z
VG9Qcm9jZXNzIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBhbmltYXRp
b25zVG9SZW1vdmU7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8Q1NTVHJhbnNpdGlvbj4+IGNvbXBs
ZXRlZFRyYW5zaXRpb25zOworICAgIH07CisKICAgICBXZWFrSGFzaFNldDxEb2N1bWVudFRpbWVs
aW5lPiBtX3RpbWVsaW5lczsKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvblR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uVHlwZXMuaAppbmRleCAzNjk1MTgyMmQ1NTUzZjg0ZTM4MDU0N2RhNTAwYzAwODFkMWNkMmNm
Li4zYjA4MWQzMmZkNTIzNzZjNzI0OWY0NGE0NWIzZmZjOWE2ZDRhNTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uVHlwZXMuaApAQCAtMzIsNiArMzIsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFuaW1hdGlvbkV2ZW50QmFzZTsKIGNsYXNz
IEFuaW1hdGlvbkxpc3Q7CiBjbGFzcyBDU1NBbmltYXRpb247CiBjbGFzcyBDU1NUcmFuc2l0aW9u
OwpAQCAtNTIsNiArNTMsNyBAQCBzdHJ1Y3QgV2ViQW5pbWF0aW9uc01hcmthYmxlRG91YmxlVHJh
aXRzIHsKIHVzaW5nIE1hcmthYmxlRG91YmxlID0gTWFya2FibGU8ZG91YmxlLCBXZWJBbmltYXRp
b25zTWFya2FibGVEb3VibGVUcmFpdHM+OwogCiB1c2luZyBBbmltYXRpb25Db2xsZWN0aW9uID0g
TGlzdEhhc2hTZXQ8UmVmUHRyPFdlYkFuaW1hdGlvbj4+OwordXNpbmcgQW5pbWF0aW9uRXZlbnRz
ID0gVmVjdG9yPFJlZjxBbmltYXRpb25FdmVudEJhc2U+PjsKIHVzaW5nIFByb3BlcnR5VG9UcmFu
c2l0aW9uTWFwID0gSGFzaE1hcDxDU1NQcm9wZXJ0eUlELCBSZWZQdHI8Q1NTVHJhbnNpdGlvbj4+
OwogdXNpbmcgQ1NTQW5pbWF0aW9uQ29sbGVjdGlvbiA9IExpc3RIYXNoU2V0PFJlZlB0cjxDU1NB
bmltYXRpb24+PjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDM1YWM0MTI0MmY3NzY5
NjRiYzdiNmY2NzEwYzcwOTJhOGFhOTI1My4uMTk3MmFlZDkwOWUwOTdhNjViN2VhMWU0YjVmOTNh
YmE2OGU5NGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04MDgwLDcgKzgwODAsNyBA
QCB2b2lkIERvY3VtZW50OjpzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdD
YWxsYmFjaz4mJiBsaXN0ZW5lcikKIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlciYgRG9jdW1l
bnQ6OmVuc3VyZVRpbWVsaW5lc0NvbnRyb2xsZXIoKQogewogICAgIGlmICghbV90aW1lbGluZXND
b250cm9sbGVyKQotICAgICAgICBtX3RpbWVsaW5lc0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPERv
Y3VtZW50VGltZWxpbmVzQ29udHJvbGxlcj4oKTsKKyAgICAgICAgbV90aW1lbGluZXNDb250cm9s
bGVyID0gbWFrZVVuaXF1ZTxEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI+KCp0aGlzKTsKICAg
ICByZXR1cm4gKm1fdGltZWxpbmVzQ29udHJvbGxlci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc0NDY1
NzhjYWE0NzNjOTVkNzQyM2M1MTZiOTg3YmU5YmZhNzgxYjguLjIyY2E5MDEwZjA4OGYyMzliYjFh
ZGUwY2IxZDJiMTVlMWFhMmQ2ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0yMiAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgQW5pbWF0
aW9uc10gQ29vcmRpbmF0ZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIiBwcm9j
ZWR1cmUgYWNyb3NzIG11bHRpcGxlIHRpbWVsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
OTQ3MDgyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgdGhlIGZsYWt5IGV4cGVjdGF0aW9uIGZvciB0aGUgaW1wcm92ZWQgdGVzdC4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDQtMjIgIERpZWdvIFBpbm8gR2Fy
Y2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHYXJkZW5pbmcsIHVwZGF0
ZSB0ZXN0IGV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjVj
OTBiMTk0MDlhMGY5MDA1Y2JjNTExYzZkM2RiOWUyNzFkODJiMC4uZDI4ZDliYzc2YTIyNWVlYzg3
MzdhMDg5N2E4NTZhOGJmZDQyNDExNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMjIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIENvb3JkaW5hdGUgInVwZGF0ZSBhbmlt
YXRpb25zIGFuZCBzZW5kIGV2ZW50cyIgcHJvY2VkdXJlIGFjcm9zcyBtdWx0aXBsZSB0aW1lbGlu
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjEw
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk0NzA4MjE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBhIG5ldyB0ZXN0IGFzIFBBU1Mgd2hp
Y2ggc2hvd3MgdGhhdCB3ZSBjb3JyZWN0bHkgcGVyZm9ybSBhIHNpbmdsZSBtaWNyb3N0YXNrIGNo
ZWNrcG9pbnQgd2hlbiB1cGRhdGluZyBtdWx0aXBsZSB0aW1lbGluZXMuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91
cGRhdGUtYW5kLXNlbmQtZXZlbnRzLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNC0yMSAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBvcnQgbGF0
ZXN0IGNoYW5nZXMgZnJvbSB3ZWItcGxhdGZvcm0tdGVzdC93ZWJ4ci9yZXNvdXJjZXMgdG8gZW5h
YmxlIHRlc3RpbmcgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MjQ1ZDIyMjIwZDhh
OTkzMDc4NGZkMzU4YjA1MjE2YmY1MWY4OGIxLi41NjVhMzY3NWYxNjcwOGJiNGRmZjExMzc2Yzc3
YjIzZjAwZjU3ZmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQwNjQsOCArNDA2NCw2IEBAIHdl
YmtpdC5vcmcvYi8yMDcyNjEgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1iYWNrZ3JvdW5kCiAKIHdlYmtpdC5vcmcvYi8yMDcyNjIgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvYW5pbWF0aW9u
cy9zeW5jLXN0YXJ0LXRpbWVzLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMjAyMTA5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1h
dGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiAjIFdlYlhSIGlzIGJlaW5nIGltcGxlbWVudGVkCiB3ZWJraXQu
b3JnL2IvMjA4OTg4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIgWyBTa2lw
IF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvdGltZWxpbmVzL3VwZGF0ZS1hbmQtc2Vu
ZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvdGltZWxpbmVzL3VwZGF0ZS1h
bmQtc2VuZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDQ0ZTA2NjhmZGI4NDk0MDU5MGM1ZDFj
OWU0Mzg0MDdkYmNkMTQ5ZDIuLmZiYTI1ZDExNzlkN2MyNzY1YzA2NTkzODBhOWM5OThlNjg5Y2Q4
YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQt
ZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGluZXMvdXBkYXRl
LWFuZC1zZW5kLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTYsNSArNiw1IEBAIEZBSUwgU29ydHMg
Y2FuY2VsIGV2ZW50cyBieSBjb21wb3NpdGUgb3JkZXIgYXNzZXJ0X2FycmF5X2VxdWFsczogY2Fu
Y2VsIGV2ZW50cyBzCiBQQVNTIFF1ZXVlcyBhIGNhbmNlbCBldmVudCBpbiB0cmFuc2l0aW9uc3Rh
cnQgZXZlbnQgY2FsbGJhY2sgCiBQQVNTIFNvcnRzIGV2ZW50cyBmb3IgdGhlIHNhbWUgdHJhbnNp
dGlvbiAKIFBBU1MgUGxheWJhY2sgZXZlbnRzIHdpdGggdGhlIHNhbWUgdGltZWxpbmUgcmV0YWlu
IHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZXF1ZXVlZCAKLUZBSUwgQWxsIHRpbWVsaW5lcyBh
cmUgdXBkYXRlZCBiZWZvcmUgcnVubmluZyBtaWNyb3Rhc2tzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IFRoZSBvcGVyYXRp
b24gd2FzIGFib3J0ZWQuIgorUEFTUyBBbGwgdGltZWxpbmVzIGFyZSB1cGRhdGVkIGJlZm9yZSBy
dW5uaW5nIG1pY3JvdGFza3MgCiAK
</data>
<flag name="review"
          id="412600"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>