<?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>180743</bug_id>
          
          <creation_ts>2017-12-13 02:07:00 -0800</creation_ts>
          <short_desc>[Web Animations] Implement the &quot;updating the finished state&quot; procedure</short_desc>
          <delta_ts>2017-12-13 12:01:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381082</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-13 02:07:00 -0800</bug_when>
    <thetext>Now that we expose the playState, and prior to implement play()/pause()/finish()/cancel(), we need to implement the &quot;updating the finished state&quot; procedure as defined in https://drafts.csswg.org/web-animations-1/#updating-the-finished-state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381083</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-13 02:07:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/36017232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381086</commentid>
    <comment_count>2</comment_count>
      <attachid>329215</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-13 02:23:33 -0800</bug_when>
    <thetext>Created attachment 329215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381198</commentid>
    <comment_count>3</comment_count>
      <attachid>329215</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-13 11:01:56 -0800</bug_when>
    <thetext>Comment on attachment 329215
Patch

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

&gt; Source/WebCore/animation/DocumentTimeline.cpp:176
&gt; +        animation-&gt;updateFinishedState(false, false);

false, false is unreadable.

&gt; Source/WebCore/animation/WebAnimation.cpp:202
&gt; +    // Otherwise, current time = (timeline time - start time) Ã playback rate

Maybe don&apos;t use non-ASCII in the comment.

&gt; Source/WebCore/animation/WebAnimation.cpp:203
&gt; +    return (m_timeline-&gt;currentTime().value() - m_startTime.value()) * m_playbackRate;

I&apos;m not sure you need the value(); this computation should be doable in Seconds.

&gt; Source/WebCore/animation/WebAnimation.h:86
&gt; +    void updateFinishedState(bool, bool);

Please use enum params here.

&gt; Source/WebCore/animation/WebAnimation.h:100
&gt; +    std::optional&lt;Seconds&gt; currentTime(bool) const;

It&apos;s really unclear what the bool parameter means. Use an enum.

&gt; LayoutTests/ChangeLog:9
&gt; +        Rebase some WPT expectations with minor progressions due to exposing the &quot;onfinish&quot; property.

Do these WPT contain sufficient coverage of the logic you added? Seems like there would be many more behavior changes than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381214</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-13 11:25:35 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 329215 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329215&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/WebAnimation.cpp:203
&gt; &gt; +    return (m_timeline-&gt;currentTime().value() - m_startTime.value()) * m_playbackRate;
&gt; 
&gt; I&apos;m not sure you need the value(); this computation should be doable in
&gt; Seconds.

These are std::optional&lt;Seconds&gt;, value() in this case returns Seconds. So we are working on Seconds, not doubles.

&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        Rebase some WPT expectations with minor progressions due to exposing the &quot;onfinish&quot; property.
&gt; 
&gt; Do these WPT contain sufficient coverage of the logic you added? Seems like
&gt; there would be many more behavior changes than this.

They do, BUT, the vast majority of tests use Element.animate() and so are almost all FAILs. This patch is one of a series to build up to implementing pause() and play(), where play() is a requirement before we can turn on Element.animate(). At this stage, there will be a lot more tests showing the correct behaviour of our implementation.

I will update the code to use enums for the play() variant and updateFinishedState().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381224</commentid>
    <comment_count>5</comment_count>
      <attachid>329239</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-13 11:44:43 -0800</bug_when>
    <thetext>Created attachment 329239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381227</commentid>
    <comment_count>6</comment_count>
      <attachid>329239</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-13 11:53:44 -0800</bug_when>
    <thetext>Comment on attachment 329239
Patch

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

&gt; Source/WebCore/animation/WebAnimation.h:99
&gt; +    enum class IgnoreHoldTime { Yes, No };

IgnoreHoldTime::No is a double negative. Might be better as RespectHoldTime { Yes, No }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381231</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-13 12:01:57 -0800</bug_when>
    <thetext>Committed r225862: &lt;https://trac.webkit.org/changeset/225862&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329215</attachid>
            <date>2017-12-13 02:23:33 -0800</date>
            <delta_ts>2017-12-13 11:44:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180743-20171213112331.patch</filename>
            <type>text/plain</type>
            <size>18250</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZmZTFmY2U1MjNjMzc4
OTVlYTJhNzIzZjYxMDEyMjUwM2IwMmI4Ny4uNDFkOTliYzNlMDEyMGY5M2JjMWRlMTJlZGMyMmQz
NDlhZTJhNjFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTEyLTEzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBJbXBsZW1lbnQgdGhlICJ1cGRhdGluZyB0aGUgZmluaXNoZWQgc3RhdGUiIHByb2NlZHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNzQzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAxNzIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlYyBkZWZpbmVz
IGEgcHJvY2VkdXJlIGZvciAidXBkYXRpbmcgdGhlIGZpbmlzaGVkIHN0YXRlIiwgd2hpY2ggc2hv
dWxkIHJ1biBhcyB0aGUgdGltZWxpbmUgdGltZQorICAgICAgICBjaGFuZ2VzIGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgdWx0aW1hdGVseSB0cmlnZ2VyaW5nIGZpbmlzaCBldmVudHMgYW5kIGZ1bGZp
bCB0aGUgImZpbmlzaGVkIiBwcm9taXNlLiBUaGUgcHJvY2VkdXJlCisgICAgICAgIGFsbG93cyBm
b3IgdHdvIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOiBkaWRTZWVrIGFuZCBzeW5jaHJv
bm91c2x5Tm90aWZ5LiBXaGVuIHN5bmNocm9ub3VzbHlOb3RpZnkgaXMgdHJ1ZSwgdGhlCisgICAg
ICAgICJmaW5pc2ggbm90aWZpY2F0aW9uIHN0ZXBzIiBwcm9jZWR1cmUgaXMgcmFuIHJpZ2h0IGF3
YXksIG90aGVyd2lzZSBpdCdzIHF1ZXVlZCBhcyBhIG1pY3JvdGFzay4KKworICAgICAgICBJbiB0
aGlzIHBhdGNoIHdlIGludHJvZHVjZSB0aGUgbm90aW9uIG9mICJob2xkIHRpbWUiLCB3aGljaCBp
cyB0aGUgdGltZSBoZWxkIHdoaWxlIGFuIGFuaW1hdGlvbiBpcyBwYXVzZWQuIEl0IHdpbGwgYmUK
KyAgICAgICAgc2V0IGJ5IHRoZSBwYXVzZSgpIGFuZCBwbGF5KCkgbWV0aG9kIGluIGZ1dHVyZSBw
YXRjaGVzLgorCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlQW5pbWF0aW9ucyk6IFVwZGF0
ZSB0aGUgZmluaXNoZWQgc3RhdGUgYXMgdGhlIHRpbWVsaW5lIHRpbWUgY2hhbmdlcyB3aXRoIGJv
dGggZmxhZ3MKKyAgICAgICAgc2V0IHRvIGZhbHNlLgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjdXJyZW50VGlt
ZSBjb25zdCk6IEFkZCBhIHByaXZhdGUgY3VycmVudFRpbWUoYm9vbCkgdmFyaWFudCB3aGljaCBh
bGxvd3MgZm9yIHRoZSBob2xkIHRpbWUgdG8KKyAgICAgICAgYmUgaWdub3JlZCBpbiBjYXNlIHVw
ZGF0ZUZpbmlzaGVkU3RhdGUoKSB3YXMgY2FsbGVkIHdpdGggdGhlIGRpZFNlZWsgZmxhZyBzZXQg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnVwZGF0ZUZpbmlzaGVk
U3RhdGUpOiBJbXBsZW1lbnQgdGhlIHByb2NlZHVyZSBhcyBzcGVjaWZpZWQgd2l0aCBhbGwgc3Bl
Yy1tYW5kYXRlZCBzdGVwcyBpbmxpbmUuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
OnNjaGVkdWxlTWljcm90YXNrSWZOZWVkZWQpOiBTY2hlZHVsZSBhIG1pY3JvdGFzayB0byBjb21w
bGV0ZSB0aGUgImZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMiCisgICAgICAgIGlmIHdlIGhhdmVu
J3Qgc2NoZWR1bGVkIGEgbWljcm90YXNrIGJlZm9yZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFzayk6IFBlcmZvcm0gdGhlIG1pY3JvdGFzayBpZiB0aGUg
ImZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMiIHByb2NlZHVyZSBoYXNuJ3QKKyAgICAgICAgYmVl
biBjYW5jZWxlZCBhZnRlciBpdCB3YXMgb3JpZ2luYWxseSBzY2hlZHVsZWQsIGFzIHRyYWNrZWQg
YnkgdGhlIG1fZmluaXNoTm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nIGZsYWcsIHNp
bmNlCisgICAgICAgIG1pY3JvdGFza3MgYXJlIG5vdCBwcmVzZW50bHkgY2FuY2VsYWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZmluaXNoTm90aWZpY2F0aW9uU3RlcHMpOiBJ
bXBsZW1lbnQgdGhlIHByb2NlZHVyZSBhcyBzcGVjaWZpZWQgd2l0aCBhbGwgc3BlYy1tYW5kYXRl
ZCBzdGVwcyBpbmxpbmUsCisgICAgICAgIGRpc3BhdGNoaW5nIGEgImZpbmlzaCIgZXZlbnRzIGFu
ZCBmdWxmaWxsaW5nIHRoZSAiZmluaXNoZWQiIHByb21pc2UuCisgICAgICAgICogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisKIDIwMTctMTItMTIgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBpczxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dD4gcmVwb3J0cyB0aGUgaW5wdXQgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBlZDkxMDRjZWZkYTJjNTFlMzdhMjcxMjE0MGMyNmNk
YmZjOGZiZWI3Li45YmMxYzkxNTFlMDA0MjEzY2VhMWJmYjRhOTdiMzMxYWMyM2I0YTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC0xNzIs
NiArMTcyLDkgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRpb25zKCkKICAg
ICAgICAgYW5pbWF0aW9uLT5zdGFydE9yU3RvcEFjY2VsZXJhdGVkKCk7CiAgICAgbV9hY2NlbGVy
YXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlLmNsZWFyKCk7CiAKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnMoKSkKKyAgICAgICAgYW5pbWF0
aW9uLT51cGRhdGVGaW5pc2hlZFN0YXRlKGZhbHNlLCBmYWxzZSk7CisKICAgICAvLyBUaW1lIGhh
cyBhZHZhbmNlZCwgdGhlIHRpbWluZyBtb2RlbCByZXF1aXJlcyBpbnZhbGlkYXRpb24gbm93Lgog
ICAgIGFuaW1hdGlvblRpbWluZ01vZGVsRGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDE2NzllOGI3YTMxYTljZDBjNjBmNWRkMGZi
ZTkyM2ZkNzc4N2EwMTAuLmE0OGY2MzgzMmY2OGViNzhjNGM3NjY1MmUyMmJiOWZjMjU1MWViYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0zMCw4ICsz
MCwxMCBAQAogI2luY2x1ZGUgIkFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCIKICNpbmNsdWRlICJB
bmltYXRpb25UaW1lbGluZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIkpTV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJh
bWVFZmZlY3QuaCIKKyNpbmNsdWRlICJNaWNyb3Rhc2tzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NSwxNiArMTc3LDMwIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYkFuaW1hdGlvbjo6c2V0QmluZGluZ3NDdXJyZW50VGltZShz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gY3VyCiAKIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gV2ViQW5p
bWF0aW9uOjpjdXJyZW50VGltZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IHJldHVybiB0aGUg
aG9sZCB0aW1lIHdoZW4gd2Ugc3VwcG9ydCBwYXVzaW5nICh3ZWJraXQub3JnL2IvMTc4OTMyKS4K
KyAgICByZXR1cm4gY3VycmVudFRpbWUoZmFsc2UpOworfQogCi0gICAgaWYgKCFtX3RpbWVsaW5l
IHx8ICFtX3N0YXJ0VGltZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK3N0ZDo6b3B0
aW9uYWw8U2Vjb25kcz4gV2ViQW5pbWF0aW9uOjpjdXJyZW50VGltZShib29sIGlnbm9yZUhvbGRU
aW1lKSBjb25zdAoreworICAgIC8vIDMuNC40LiBUaGUgY3VycmVudCB0aW1lIG9mIGFuIGFuaW1h
dGlvbgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy93ZWItYW5pbWF0aW9ucy0xLyN0
aGUtY3VycmVudC10aW1lLW9mLWFuLWFuaW1hdGlvbgogCi0gICAgYXV0byB0aW1lbGluZVRpbWUg
PSBtX3RpbWVsaW5lLT5jdXJyZW50VGltZSgpOwotICAgIGlmICghdGltZWxpbmVUaW1lKQorICAg
IC8vIFRoZSBjdXJyZW50IHRpbWUgaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBtYXRjaGlu
ZyBjb25kaXRpb24gZnJvbSBiZWxvdzoKKworICAgIC8vIElmIHRoZSBhbmltYXRpb24ncyBob2xk
IHRpbWUgaXMgcmVzb2x2ZWQsIHRoZSBjdXJyZW50IHRpbWUgaXMgdGhlIGFuaW1hdGlvbidzIGhv
bGQgdGltZS4KKyAgICBpZiAoIWlnbm9yZUhvbGRUaW1lICYmIG1faG9sZFRpbWUpCisgICAgICAg
IHJldHVybiBtX2hvbGRUaW1lOworCisgICAgLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJl
IHRydWU6CisgICAgLy8gICAgIDEuIHRoZSBhbmltYXRpb24gaGFzIG5vIGFzc29jaWF0ZWQgdGlt
ZWxpbmUsIG9yCisgICAgLy8gICAgIDIuIHRoZSBhc3NvY2lhdGVkIHRpbWVsaW5lIGlzIGluYWN0
aXZlLCBvcgorICAgIC8vICAgICAzLiB0aGUgYW5pbWF0aW9uJ3Mgc3RhcnQgdGltZSBpcyB1bnJl
c29sdmVkLgorICAgIC8vIFRoZSBjdXJyZW50IHRpbWUgaXMgYW4gdW5yZXNvbHZlZCB0aW1lIHZh
bHVlLgorICAgIGlmICghbV90aW1lbGluZSB8fCAhbV90aW1lbGluZS0+Y3VycmVudFRpbWUoKSB8
fCAhbV9zdGFydFRpbWUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1
cm4gKHRpbWVsaW5lVGltZS52YWx1ZSgpIC0gbV9zdGFydFRpbWUudmFsdWUoKSkgKiBtX3BsYXli
YWNrUmF0ZTsKKyAgICAvLyBPdGhlcndpc2UsIGN1cnJlbnQgdGltZSA9ICh0aW1lbGluZSB0aW1l
IC0gc3RhcnQgdGltZSkgw5cgcGxheWJhY2sgcmF0ZQorICAgIHJldHVybiAobV90aW1lbGluZS0+
Y3VycmVudFRpbWUoKS52YWx1ZSgpIC0gbV9zdGFydFRpbWUudmFsdWUoKSkgKiBtX3BsYXliYWNr
UmF0ZTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldEN1cnJlbnRUaW1lKHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gc2Vla1RpbWUpCkBAIC0yNzMsNiArMjg5LDEyNSBAQCB2b2lkIFdlYkFuaW1h
dGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBzdGQ6OgogICAgIH0KIH0KIAordm9pZCBXZWJBbmltYXRpb246OnVwZGF0ZUZpbmlzaGVk
U3RhdGUoYm9vbCBkaWRTZWVrLCBib29sIHN5bmNocm9ub3VzbHlOb3RpZnkpCit7CisgICAgLy8g
My40LjE0LiBVcGRhdGluZyB0aGUgZmluaXNoZWQgc3RhdGUKKyAgICAvLyBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvd2ViLWFuaW1hdGlvbnMtMS8jdXBkYXRpbmctdGhlLWZpbmlzaGVkLXN0YXRl
CisKKyAgICAvLyAxLiBMZXQgdGhlIHVuY29uc3RyYWluZWQgY3VycmVudCB0aW1lIGJlIHRoZSBy
ZXN1bHQgb2YgY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgdGltZSBzdWJzdGl0dXRpbmcgYW4gdW5y
ZXNvbHZlZCB0aW1lIHZhbHVlCisgICAgLy8gZm9yIHRoZSBob2xkIHRpbWUgaWYgZGlkIHNlZWsg
aXMgZmFsc2UuIElmIGRpZCBzZWVrIGlzIHRydWUsIHRoZSB1bmNvbnN0cmFpbmVkIGN1cnJlbnQg
dGltZSBpcyBlcXVhbCB0byB0aGUgY3VycmVudCB0aW1lLgorICAgIGF1dG8gdW5jb25zdHJhaW5l
ZEN1cnJlbnRUaW1lID0gY3VycmVudFRpbWUoIWRpZFNlZWspOworICAgIGF1dG8gZW5kVGltZSA9
IGVmZmVjdEVuZFRpbWUoKTsKKworICAgIC8vIDIuIElmIGFsbCB0aHJlZSBvZiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIHRydWUsCisgICAgLy8gICAgLSB0aGUgdW5jb25zdHJhaW5lZCBj
dXJyZW50IHRpbWUgaXMgcmVzb2x2ZWQsIGFuZAorICAgIC8vICAgIC0gYW5pbWF0aW9uJ3Mgc3Rh
cnQgdGltZSBpcyByZXNvbHZlZCwgYW5kCisgICAgLy8gICAgLSBhbmltYXRpb24gZG9lcyBub3Qg
aGF2ZSBhIHBlbmRpbmcgcGxheSB0YXNrIG9yIGEgcGVuZGluZyBwYXVzZSB0YXNrLAorICAgIGlm
ICh1bmNvbnN0cmFpbmVkQ3VycmVudFRpbWUgJiYgc3RhcnRUaW1lKCkgJiYgIXBlbmRpbmcoKSkg
eworICAgICAgICAvLyB0aGVuIHVwZGF0ZSBhbmltYXRpb24ncyBob2xkIHRpbWUgYmFzZWQgb24g
dGhlIGZpcnN0IG1hdGNoaW5nIGNvbmRpdGlvbiBmb3IgYW5pbWF0aW9uIGZyb20gYmVsb3csIGlm
IGFueToKKyAgICAgICAgaWYgKG1fcGxheWJhY2tSYXRlID4gMCAmJiB1bmNvbnN0cmFpbmVkQ3Vy
cmVudFRpbWUgPj0gZW5kVGltZSkgeworICAgICAgICAgICAgLy8gSWYgYW5pbWF0aW9uIHBsYXli
YWNrIHJhdGUgPiAwIGFuZCB1bmNvbnN0cmFpbmVkIGN1cnJlbnQgdGltZSBpcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gdGFyZ2V0IGVmZmVjdCBlbmQsCisgICAgICAgICAgICAvLyBJZiBkaWQg
c2VlayBpcyB0cnVlLCBsZXQgdGhlIGhvbGQgdGltZSBiZSB0aGUgdmFsdWUgb2YgdW5jb25zdHJh
aW5lZCBjdXJyZW50IHRpbWUuCisgICAgICAgICAgICBpZiAoZGlkU2VlaykKKyAgICAgICAgICAg
ICAgICBtX2hvbGRUaW1lID0gdW5jb25zdHJhaW5lZEN1cnJlbnRUaW1lOworICAgICAgICAgICAg
Ly8gSWYgZGlkIHNlZWsgaXMgZmFsc2UsIGxldCB0aGUgaG9sZCB0aW1lIGJlIHRoZSBtYXhpbXVt
IHZhbHVlIG9mIHByZXZpb3VzIGN1cnJlbnQgdGltZSBhbmQgdGFyZ2V0IGVmZmVjdCBlbmQuIElm
IHRoZSBwcmV2aW91cyBjdXJyZW50IHRpbWUgaXMgdW5yZXNvbHZlZCwgbGV0IHRoZSBob2xkIHRp
bWUgYmUgdGFyZ2V0IGVmZmVjdCBlbmQuCisgICAgICAgICAgICBlbHNlIGlmICghbV9wcmV2aW91
c0N1cnJlbnRUaW1lKQorICAgICAgICAgICAgICAgIG1faG9sZFRpbWUgPSBlbmRUaW1lOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1faG9sZFRpbWUgPSBzdGQ6Om1heChtX3By
ZXZpb3VzQ3VycmVudFRpbWUudmFsdWUoKSwgZW5kVGltZSk7CisgICAgICAgIH0gZWxzZSBpZiAo
bV9wbGF5YmFja1JhdGUgPCAwICYmIHVuY29uc3RyYWluZWRDdXJyZW50VGltZSA8PSAwX3MpIHsK
KyAgICAgICAgICAgIC8vIElmIGFuaW1hdGlvbiBwbGF5YmFjayByYXRlIDwgMCBhbmQgdW5jb25z
dHJhaW5lZCBjdXJyZW50IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAsCisgICAgICAg
ICAgICAvLyBJZiBkaWQgc2VlayBpcyB0cnVlLCBsZXQgdGhlIGhvbGQgdGltZSBiZSB0aGUgdmFs
dWUgb2YgdW5jb25zdHJhaW5lZCBjdXJyZW50IHRpbWUuCisgICAgICAgICAgICBpZiAoZGlkU2Vl
aykKKyAgICAgICAgICAgICAgICBtX2hvbGRUaW1lID0gdW5jb25zdHJhaW5lZEN1cnJlbnRUaW1l
OworICAgICAgICAgICAgLy8gSWYgZGlkIHNlZWsgaXMgZmFsc2UsIGxldCB0aGUgaG9sZCB0aW1l
IGJlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHByZXZpb3VzIGN1cnJlbnQgdGltZSBhbmQgemVyby4g
SWYgdGhlIHByZXZpb3VzIGN1cnJlbnQgdGltZSBpcyB1bnJlc29sdmVkLCBsZXQgdGhlIGhvbGQg
dGltZSBiZSB6ZXJvLgorICAgICAgICAgICAgZWxzZSBpZiAoIW1fcHJldmlvdXNDdXJyZW50VGlt
ZSkKKyAgICAgICAgICAgICAgICBtX2hvbGRUaW1lID0gMF9zOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG1faG9sZFRpbWUgPSBzdGQ6Om1pbihtX3ByZXZpb3VzQ3VycmVudFRp
bWUudmFsdWUoKSwgMF9zKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX3BsYXliYWNrUmF0ZSAmJiBt
X3RpbWVsaW5lICYmIG1fdGltZWxpbmUtPmN1cnJlbnRUaW1lKCkpIHsKKyAgICAgICAgICAgIC8v
IElmIGFuaW1hdGlvbiBwbGF5YmFjayByYXRlIOKJoCAwLCBhbmQgYW5pbWF0aW9uIGlzIGFzc29j
aWF0ZWQgd2l0aCBhbiBhY3RpdmUgdGltZWxpbmUsCisgICAgICAgICAgICAvLyBQZXJmb3JtIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgICAgICAgICAvLyAxLiBJZiBkaWQgc2VlayBpcyB0cnVl
IGFuZCB0aGUgaG9sZCB0aW1lIGlzIHJlc29sdmVkLCBsZXQgYW5pbWF0aW9uJ3Mgc3RhcnQgdGlt
ZSBiZSBlcXVhbCB0byB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcgdGltZWxpbmUgdGltZSAtICho
b2xkIHRpbWUgLyBwbGF5YmFjayByYXRlKQorICAgICAgICAgICAgLy8gICAgd2hlcmUgdGltZWxp
bmUgdGltZSBpcyB0aGUgY3VycmVudCB0aW1lIHZhbHVlIG9mIHRpbWVsaW5lIGFzc29jaWF0ZWQg
d2l0aCBhbmltYXRpb24uCisgICAgICAgICAgICBpZiAoZGlkU2VlayAmJiBtX2hvbGRUaW1lKQor
ICAgICAgICAgICAgICAgIHNldFN0YXJ0VGltZShtX3RpbWVsaW5lLT5jdXJyZW50VGltZSgpLnZh
bHVlKCkgLSAobV9ob2xkVGltZS52YWx1ZSgpIC8gbV9wbGF5YmFja1JhdGUpKTsKKyAgICAgICAg
ICAgIC8vIDIuIExldCB0aGUgaG9sZCB0aW1lIGJlIHVucmVzb2x2ZWQuCisgICAgICAgICAgICBt
X2hvbGRUaW1lID0gc3RkOjpudWxsb3B0OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gMy4g
U2V0IHRoZSBwcmV2aW91cyBjdXJyZW50IHRpbWUgb2YgYW5pbWF0aW9uIGJlIHRoZSByZXN1bHQg
b2YgY2FsY3VsYXRpbmcgaXRzIGN1cnJlbnQgdGltZS4KKyAgICBtX3ByZXZpb3VzQ3VycmVudFRp
bWUgPSBjdXJyZW50VGltZSgpOworCisgICAgLy8gNC4gTGV0IGN1cnJlbnQgZmluaXNoZWQgc3Rh
dGUgYmUgdHJ1ZSBpZiB0aGUgcGxheSBzdGF0ZSBvZiBhbmltYXRpb24gaXMgZmluaXNoZWQuIE90
aGVyd2lzZSwgbGV0IGl0IGJlIGZhbHNlLgorICAgIGF1dG8gY3VycmVudEZpbmlzaGVkU3RhdGUg
PSBwbGF5U3RhdGUoKSA9PSBQbGF5U3RhdGU6OkZpbmlzaGVkOworCisgICAgLy8gNS4gSWYgY3Vy
cmVudCBmaW5pc2hlZCBzdGF0ZSBpcyB0cnVlIGFuZCB0aGUgY3VycmVudCBmaW5pc2hlZCBwcm9t
aXNlIGlzIG5vdCB5ZXQgcmVzb2x2ZWQsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAg
ICBpZiAoY3VycmVudEZpbmlzaGVkU3RhdGUgJiYgIW1fZmluaXNoZWRQcm9taXNlLmlzRnVsZmls
bGVkKCkpIHsKKyAgICAgICAgaWYgKHN5bmNocm9ub3VzbHlOb3RpZnkpIHsKKyAgICAgICAgICAg
IC8vIElmIHN5bmNocm9ub3VzbHkgbm90aWZ5IGlzIHRydWUsIGNhbmNlbCBhbnkgcXVldWVkIG1p
Y3JvdGFzayB0byBydW4gdGhlIGZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMgZm9yIHRoaXMgYW5p
bWF0aW9uLAorICAgICAgICAgICAgLy8gYW5kIHJ1biB0aGUgZmluaXNoIG5vdGlmaWNhdGlvbiBz
dGVwcyBpbW1lZGlhdGVseS4KKyAgICAgICAgICAgIG1fZmluaXNoTm90aWZpY2F0aW9uU3RlcHNN
aWNyb3Rhc2tQZW5kaW5nID0gZmFsc2U7CisgICAgICAgICAgICBmaW5pc2hOb3RpZmljYXRpb25T
dGVwcygpOworICAgICAgICB9IGVsc2UgaWYgKCFtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWlj
cm90YXNrUGVuZGluZykgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiBzeW5jaHJvbm91
c2x5IG5vdGlmeSBpcyBmYWxzZSwgcXVldWUgYSBtaWNyb3Rhc2sgdG8gcnVuIGZpbmlzaCBub3Rp
ZmljYXRpb24gc3RlcHMgZm9yIGFuaW1hdGlvbiB1bmxlc3MgdGhlcmUKKyAgICAgICAgICAgIC8v
IGlzIGFscmVhZHkgYSBtaWNyb3Rhc2sgcXVldWVkIHRvIHJ1biB0aG9zZSBzdGVwcyBmb3IgYW5p
bWF0aW9uLgorICAgICAgICAgICAgbV9maW5pc2hOb3RpZmljYXRpb25TdGVwc01pY3JvdGFza1Bl
bmRpbmcgPSB0cnVlOworICAgICAgICAgICAgc2NoZWR1bGVNaWNyb3Rhc2tJZk5lZWRlZCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gNi4gSWYgY3VycmVudCBmaW5pc2hlZCBzdGF0ZSBp
cyBmYWxzZSBhbmQgYW5pbWF0aW9uJ3MgY3VycmVudCBmaW5pc2hlZCBwcm9taXNlIGlzIGFscmVh
ZHkgcmVzb2x2ZWQsIHNldCBhbmltYXRpb24ncyBjdXJyZW50CisgICAgLy8gZmluaXNoZWQgcHJv
bWlzZSB0byBhIG5ldyAocGVuZGluZykgUHJvbWlzZSBvYmplY3QuCisgICAgaWYgKCFjdXJyZW50
RmluaXNoZWRTdGF0ZSAmJiBtX2ZpbmlzaGVkUHJvbWlzZS5pc0Z1bGZpbGxlZCgpKQorICAgICAg
ICBtX2ZpbmlzaGVkUHJvbWlzZS5jbGVhcigpOworfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6c2No
ZWR1bGVNaWNyb3Rhc2tJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fc2NoZWR1bGVkTWljcm90YXNr
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NjaGVkdWxlZE1pY3JvdGFzayA9IHRydWU7Cisg
ICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPFZvaWRNaWNyb3Rhc2s+KHN0ZDo6YmluZCgmV2ViQW5pbWF0aW9uOjpwZXJmb3JtTWljcm90
YXNrLCB0aGlzKSkpOworfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFzaygp
Cit7CisgICAgbV9zY2hlZHVsZWRNaWNyb3Rhc2sgPSBmYWxzZTsKKyAgICBpZiAoIW1fZmluaXNo
Tm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWljcm90YXNrUGVuZGluZyA9IGZhbHNlOworICAg
IGZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzKCk7Cit9CisKK3ZvaWQgV2ViQW5pbWF0aW9uOjpmaW5p
c2hOb3RpZmljYXRpb25TdGVwcygpCit7CisgICAgLy8gMy40LjE0LiBVcGRhdGluZyB0aGUgZmlu
aXNoZWQgc3RhdGUKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvd2ViLWFuaW1hdGlv
bnMtMS8jZmluaXNoLW5vdGlmaWNhdGlvbi1zdGVwcworCisgICAgLy8gTGV0IGZpbmlzaCBub3Rp
ZmljYXRpb24gc3RlcHMgcmVmZXIgdG8gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6CisgICAgLy8g
MS4gSWYgYW5pbWF0aW9uJ3MgcGxheSBzdGF0ZSBpcyBub3QgZXF1YWwgdG8gZmluaXNoZWQsIGFi
b3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChwbGF5U3RhdGUoKSAhPSBQbGF5U3RhdGU6OkZpbmlz
aGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAyLiBSZXNvbHZlIGFuaW1hdGlvbidzIGN1
cnJlbnQgZmluaXNoZWQgcHJvbWlzZSBvYmplY3Qgd2l0aCBhbmltYXRpb24uCisgICAgbV9maW5p
c2hlZFByb21pc2UucmVzb2x2ZSgqdGhpcyk7CisKKyAgICAvLyAzLiBDcmVhdGUgYW4gQW5pbWF0
aW9uUGxheWJhY2tFdmVudCwgZmluaXNoRXZlbnQuCisgICAgLy8gNC4gU2V0IGZpbmlzaEV2ZW50
J3MgdHlwZSBhdHRyaWJ1dGUgdG8gZmluaXNoLgorICAgIC8vIDUuIFNldCBmaW5pc2hFdmVudCdz
IGN1cnJlbnRUaW1lIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCB0aW1lIG9mIGFuaW1hdGlvbi4K
KyAgICAvLyA2LiBTZXQgZmluaXNoRXZlbnQncyB0aW1lbGluZVRpbWUgYXR0cmlidXRlIHRvIHRo
ZSBjdXJyZW50IHRpbWUgb2YgdGhlIHRpbWVsaW5lIHdpdGggd2hpY2ggYW5pbWF0aW9uIGlzIGFz
c29jaWF0ZWQuCisgICAgLy8gICAgSWYgYW5pbWF0aW9uIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgg
YSB0aW1lbGluZSwgb3IgdGhlIHRpbWVsaW5lIGlzIGluYWN0aXZlLCBsZXQgdGltZWxpbmVUaW1l
IGJlIG51bGwuCisgICAgLy8gNy4gSWYgYW5pbWF0aW9uIGhhcyBhIGRvY3VtZW50IGZvciB0aW1p
bmcsIHRoZW4gYXBwZW5kIGZpbmlzaEV2ZW50IHRvIGl0cyBkb2N1bWVudCBmb3IgdGltaW5nJ3Mg
cGVuZGluZyBhbmltYXRpb24gZXZlbnQKKyAgICAvLyAgICBxdWV1ZSBhbG9uZyB3aXRoIGl0cyB0
YXJnZXQsIGFuaW1hdGlvbi4gRm9yIHRoZSBzY2hlZHVsZWQgZXZlbnQgdGltZSwgdXNlIHRoZSBy
ZXN1bHQgb2YgY29udmVydGluZyBhbmltYXRpb24ncyB0YXJnZXQKKyAgICAvLyAgICBlZmZlY3Qg
ZW5kIHRvIGFuIG9yaWdpbi1yZWxhdGl2ZSB0aW1lLgorICAgIC8vICAgIE90aGVyd2lzZSwgcXVl
dWUgYSB0YXNrIHRvIGRpc3BhdGNoIGZpbmlzaEV2ZW50IGF0IGFuaW1hdGlvbi4gVGhlIHRhc2sg
c291cmNlIGZvciB0aGlzIHRhc2sgaXMgdGhlIERPTSBtYW5pcHVsYXRpb24gdGFzayBzb3VyY2Uu
CisgICAgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoZXZlbnROYW1lcygpLmZpbmlzaEV2
ZW50LCBjdXJyZW50VGltZSgpLCBtX3RpbWVsaW5lID8gbV90aW1lbGluZS0+Y3VycmVudFRpbWUo
KSA6IHN0ZDo6bnVsbG9wdCk7Cit9CisKIFNlY29uZHMgV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0
UmVxdWlyZWRUaWNrKFNlY29uZHMgdGltZWxpbmVUaW1lKSBjb25zdAogewogICAgIGlmICghbV90
aW1lbGluZSB8fCAhbV9zdGFydFRpbWUgfHwgIW1fZWZmZWN0IHx8ICFtX3BsYXliYWNrUmF0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCA2NTM2OWY1ZWM3NDQ2
ZGFiNWMyYWNmMzU3YjI3OTFjZmYzMzg5NjA4Li40ZTliYTI5MDE4NjNiMWY2YjJiZTUxMjM5NmEz
ZjRkYzZlNzVjM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBA
IC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc29sdmUoUmVuZGVyU3R5bGUmKTsK
ICAgICB2b2lkIGFjY2VsZXJhdGVkUnVubmluZ1N0YXRlRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCBz
dGFydE9yU3RvcEFjY2VsZXJhdGVkKCk7CisgICAgdm9pZCB1cGRhdGVGaW5pc2hlZFN0YXRlKGJv
b2wsIGJvb2wpOwogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCk7CiAKQEAgLTk2LDEyICs5Nywy
MCBAQCBwcml2YXRlOgogICAgIFNlY29uZHMgZWZmZWN0RW5kVGltZSgpIGNvbnN0OwogICAgIFdl
YkFuaW1hdGlvbiYgcmVhZHlQcm9taXNlUmVzb2x2ZSgpOwogICAgIFdlYkFuaW1hdGlvbiYgZmlu
aXNoZWRQcm9taXNlUmVzb2x2ZSgpOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gY3VycmVu
dFRpbWUoYm9vbCkgY29uc3Q7CisgICAgdm9pZCBmaW5pc2hOb3RpZmljYXRpb25TdGVwcygpOwor
ICAgIHZvaWQgc2NoZWR1bGVNaWNyb3Rhc2tJZk5lZWRlZCgpOworICAgIHZvaWQgcGVyZm9ybU1p
Y3JvdGFzaygpOwogICAgIAogICAgIFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+IG1fZWZmZWN0Owog
ICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1lbGluZTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFNlY29uZHM+IG1fcHJldmlvdXNDdXJyZW50VGltZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IG1fc3RhcnRUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9ob2xkVGlt
ZTsKICAgICBkb3VibGUgbV9wbGF5YmFja1JhdGUgeyAxIH07CiAgICAgYm9vbCBtX2lzU3RvcHBl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWljcm90YXNr
UGVuZGluZzsKKyAgICBib29sIG1fc2NoZWR1bGVkTWljcm90YXNrOwogICAgIFJlYWR5UHJvbWlz
ZSBtX3JlYWR5UHJvbWlzZTsKICAgICBGaW5pc2hlZFByb21pc2UgbV9maW5pc2hlZFByb21pc2U7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKaW5kZXggNmZhZGY3
NmNiMWFkMTgwOTNlZjRkMmUyOWMwNmFkYTgyMjJmYzVmNi4uYTNhOGQ0NTkyYWFiY2JlMmMwY2Nm
ZTY5NTQyYjYwN2YzOWVhMTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgZW51bSBBbmltYXRpb25QbGF5U3RhdGUgewogICAg
IGF0dHJpYnV0ZSBkb3VibGUgcGxheWJhY2tSYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
bmltYXRpb25QbGF5U3RhdGUgcGxheVN0YXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHBlbmRpbmc7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZpbmlzaDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTxXZWJBbmltYXRpb24+IHJlYWR5OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBQcm9taXNlPFdlYkFuaW1hdGlvbj4gZmluaXNoZWQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKaW5kZXggOWZiMDQ1ZGUxNDZlZmMxZWQ5OWM4NDg1ZTQ1ZjkxOTIxZTUx
MjE3ZC4uYjYxNDg5YTRhNjA4ZTgyY2U0NzY3MDZmZTZhZTE1MWYzOTg0N2U2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oCkBAIC0xMTcsNiArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIG1hY3JvKGVycm9yKSBcCiAgICAgbWFjcm8oZXhpdCkgXAogICAgIG1hY3JvKGZldGNoKSBc
CisgICAgbWFjcm8oZmluaXNoKSBcCiAgICAgbWFjcm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1
c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3N2E5Y2E1MzJjMzMxOWY5MTcx
M2IzZTIwN2NmNTBmN2FhMzJjMTUxLi42MTdkMTkyNTBmN2VjNmIxMzYwMGVmZjZjZWQzMmVhNjBi
MjBkODFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTItMTMgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEltcGxlbWVu
dCB0aGUgInVwZGF0aW5nIHRoZSBmaW5pc2hlZCBzdGF0ZSIgcHJvY2VkdXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3NDMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM2MDE3MjMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlYmFzZSBzb21lIFdQVCBleHBlY3RhdGlvbnMgd2l0aCBtaW5vciBw
cm9ncmVzc2lvbnMgZHVlIHRvIGV4cG9zaW5nIHRoZSAib25maW5pc2giIHByb3BlcnR5LgorCisg
ICAgICAgICogaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRs
aGFybmVzcy1leHBlY3RlZC50eHQ6CisKIDIwMTctMTItMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSBpcyByZXNvbHZpbmcgYmVmb3Jl
IHRoZSBkb2N1bWVudCBrbm93cyBpdCBpcyBjYXB0dXJpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5l
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50
ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggMWFhMDg0Yzk0
MWJhMTg2MDA2YzNlMDcyODE2ZTEyMjMyYTdlNmFkZi4uY2FiYTcyYTc2YjFjOGViZWE4ZGNjMTBi
ZmFjNGNjNGZmZTM3ODVmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFu
aW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRp
b24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTE0LDcgKzE0LDcgQEAgUEFTUyBBbmltYXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGxheWJhY2tSYXRlCiBQQVNTIEFuaW1hdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBwbGF5U3RhdGUgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSByZWFkeSAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGZpbmlz
aGVkIAotRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25maW5pc2ggYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJvbmZpbmlz
aCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIG9uZmluaXNoIAogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25j
YW5jZWwgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3Bl
cnR5ICJvbmNhbmNlbCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgQW5pbWF0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGNhbmNlbCgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQg
cHJvcGVydHkgImNhbmNlbCIgbWlzc2luZwogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBvcGVy
YXRpb24gZmluaXNoKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZmlu
aXNoIiBtaXNzaW5nCkBAIC0zMiw3ICszMiw3IEBAIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTog
bmV3IEFuaW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGxheWJhY2tSYXRlIiB3CiBQ
QVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IG5ldyBBbmltYXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInBsYXlTdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEFuaW1hdGlvbiBp
bnRlcmZhY2U6IG5ldyBBbmltYXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlYWR5IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogbmV3IEFuaW1h
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZmluaXNoZWQiIHdpdGggdGhlIHByb3BlciB0
eXBlIAotRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBuZXcgQW5pbWF0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbmZpbmlzaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAib25maW5pc2giIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BB
U1MgQW5pbWF0aW9uIGludGVyZmFjZTogbmV3IEFuaW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib25maW5pc2giIHdpdGggdGhlIHByb3BlciB0eXBlIAogRkFJTCBBbmltYXRpb24gaW50
ZXJmYWNlOiBuZXcgQW5pbWF0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmNhbmNlbCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib25jYW5jZWwi
IG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIEZBSUwgQW5pbWF0aW9uIGludGVyZmFjZTog
bmV3IEFuaW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNhbmNlbCIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBuZXcgQW5pbWF0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmaW5pc2goKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZmluaXNoIiBub3QgZm91bmQgaW4gcHJvdG90
eXBlIGNoYWluCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329239</attachid>
            <date>2017-12-13 11:44:43 -0800</date>
            <delta_ts>2017-12-13 11:53:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180743-20171213204441.patch</filename>
            <type>text/plain</type>
            <size>18814</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZmZTFmY2U1MjNjMzc4
OTVlYTJhNzIzZjYxMDEyMjUwM2IwMmI4Ny4uNDFkOTliYzNlMDEyMGY5M2JjMWRlMTJlZGMyMmQz
NDlhZTJhNjFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTEyLTEzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBJbXBsZW1lbnQgdGhlICJ1cGRhdGluZyB0aGUgZmluaXNoZWQgc3RhdGUiIHByb2NlZHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNzQzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAxNzIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlYyBkZWZpbmVz
IGEgcHJvY2VkdXJlIGZvciAidXBkYXRpbmcgdGhlIGZpbmlzaGVkIHN0YXRlIiwgd2hpY2ggc2hv
dWxkIHJ1biBhcyB0aGUgdGltZWxpbmUgdGltZQorICAgICAgICBjaGFuZ2VzIGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgdWx0aW1hdGVseSB0cmlnZ2VyaW5nIGZpbmlzaCBldmVudHMgYW5kIGZ1bGZp
bCB0aGUgImZpbmlzaGVkIiBwcm9taXNlLiBUaGUgcHJvY2VkdXJlCisgICAgICAgIGFsbG93cyBm
b3IgdHdvIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOiBkaWRTZWVrIGFuZCBzeW5jaHJv
bm91c2x5Tm90aWZ5LiBXaGVuIHN5bmNocm9ub3VzbHlOb3RpZnkgaXMgdHJ1ZSwgdGhlCisgICAg
ICAgICJmaW5pc2ggbm90aWZpY2F0aW9uIHN0ZXBzIiBwcm9jZWR1cmUgaXMgcmFuIHJpZ2h0IGF3
YXksIG90aGVyd2lzZSBpdCdzIHF1ZXVlZCBhcyBhIG1pY3JvdGFzay4KKworICAgICAgICBJbiB0
aGlzIHBhdGNoIHdlIGludHJvZHVjZSB0aGUgbm90aW9uIG9mICJob2xkIHRpbWUiLCB3aGljaCBp
cyB0aGUgdGltZSBoZWxkIHdoaWxlIGFuIGFuaW1hdGlvbiBpcyBwYXVzZWQuIEl0IHdpbGwgYmUK
KyAgICAgICAgc2V0IGJ5IHRoZSBwYXVzZSgpIGFuZCBwbGF5KCkgbWV0aG9kIGluIGZ1dHVyZSBw
YXRjaGVzLgorCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlQW5pbWF0aW9ucyk6IFVwZGF0
ZSB0aGUgZmluaXNoZWQgc3RhdGUgYXMgdGhlIHRpbWVsaW5lIHRpbWUgY2hhbmdlcyB3aXRoIGJv
dGggZmxhZ3MKKyAgICAgICAgc2V0IHRvIGZhbHNlLgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjdXJyZW50VGlt
ZSBjb25zdCk6IEFkZCBhIHByaXZhdGUgY3VycmVudFRpbWUoYm9vbCkgdmFyaWFudCB3aGljaCBh
bGxvd3MgZm9yIHRoZSBob2xkIHRpbWUgdG8KKyAgICAgICAgYmUgaWdub3JlZCBpbiBjYXNlIHVw
ZGF0ZUZpbmlzaGVkU3RhdGUoKSB3YXMgY2FsbGVkIHdpdGggdGhlIGRpZFNlZWsgZmxhZyBzZXQg
dG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnVwZGF0ZUZpbmlzaGVk
U3RhdGUpOiBJbXBsZW1lbnQgdGhlIHByb2NlZHVyZSBhcyBzcGVjaWZpZWQgd2l0aCBhbGwgc3Bl
Yy1tYW5kYXRlZCBzdGVwcyBpbmxpbmUuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
OnNjaGVkdWxlTWljcm90YXNrSWZOZWVkZWQpOiBTY2hlZHVsZSBhIG1pY3JvdGFzayB0byBjb21w
bGV0ZSB0aGUgImZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMiCisgICAgICAgIGlmIHdlIGhhdmVu
J3Qgc2NoZWR1bGVkIGEgbWljcm90YXNrIGJlZm9yZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFzayk6IFBlcmZvcm0gdGhlIG1pY3JvdGFzayBpZiB0aGUg
ImZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMiIHByb2NlZHVyZSBoYXNuJ3QKKyAgICAgICAgYmVl
biBjYW5jZWxlZCBhZnRlciBpdCB3YXMgb3JpZ2luYWxseSBzY2hlZHVsZWQsIGFzIHRyYWNrZWQg
YnkgdGhlIG1fZmluaXNoTm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nIGZsYWcsIHNp
bmNlCisgICAgICAgIG1pY3JvdGFza3MgYXJlIG5vdCBwcmVzZW50bHkgY2FuY2VsYWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZmluaXNoTm90aWZpY2F0aW9uU3RlcHMpOiBJ
bXBsZW1lbnQgdGhlIHByb2NlZHVyZSBhcyBzcGVjaWZpZWQgd2l0aCBhbGwgc3BlYy1tYW5kYXRl
ZCBzdGVwcyBpbmxpbmUsCisgICAgICAgIGRpc3BhdGNoaW5nIGEgImZpbmlzaCIgZXZlbnRzIGFu
ZCBmdWxmaWxsaW5nIHRoZSAiZmluaXNoZWQiIHByb21pc2UuCisgICAgICAgICogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisKIDIwMTctMTItMTIgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBpczxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dD4gcmVwb3J0cyB0aGUgaW5wdXQgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBlZDkxMDRjZWZkYTJjNTFlMzdhMjcxMjE0MGMyNmNk
YmZjOGZiZWI3Li5lZTkwMDRjZmQ3ZDc0ODI5YzU1ODMyMDFmZWJiM2Q5Y2FiNTE3NTEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC0xNzIs
NiArMTcyLDkgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRpb25zKCkKICAg
ICAgICAgYW5pbWF0aW9uLT5zdGFydE9yU3RvcEFjY2VsZXJhdGVkKCk7CiAgICAgbV9hY2NlbGVy
YXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlLmNsZWFyKCk7CiAKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnMoKSkKKyAgICAgICAgYW5pbWF0
aW9uLT51cGRhdGVGaW5pc2hlZFN0YXRlKFdlYkFuaW1hdGlvbjo6RGlkU2Vlazo6Tm8sIFdlYkFu
aW1hdGlvbjo6U3luY2hyb25vdXNseU5vdGlmeTo6Tm8pOworCiAgICAgLy8gVGltZSBoYXMgYWR2
YW5jZWQsIHRoZSB0aW1pbmcgbW9kZWwgcmVxdWlyZXMgaW52YWxpZGF0aW9uIG5vdy4KICAgICBh
bmltYXRpb25UaW1pbmdNb2RlbERpZENoYW5nZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCAxNjc5ZThiN2EzMWE5Y2QwYzYwZjVkZDBmYmU5MjNm
ZDc3ODdhMDEwLi4zZGM3ZjgzYWQ0M2FhY2UzYzhkOWVmZjkzNWYzOTg4NTA0MzVjNGVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtMzAsOCArMzAsMTAg
QEAKICNpbmNsdWRlICJBbmltYXRpb25QbGF5YmFja0V2ZW50LmgiCiAjaW5jbHVkZSAiQW5pbWF0
aW9uVGltZWxpbmUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJKU1dlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZm
ZWN0LmgiCisjaW5jbHVkZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzUsMTYgKzE3NywzMCBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJBbmltYXRpb246OnNldEJpbmRpbmdzQ3VycmVudFRpbWUoc3RkOjpv
cHRpb25hbDxkb3VibGU+IGN1cgogCiBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IFdlYkFuaW1hdGlv
bjo6Y3VycmVudFRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiByZXR1cm4gdGhlIGhvbGQg
dGltZSB3aGVuIHdlIHN1cHBvcnQgcGF1c2luZyAod2Via2l0Lm9yZy9iLzE3ODkzMikuCisgICAg
cmV0dXJuIGN1cnJlbnRUaW1lKElnbm9yZUhvbGRUaW1lOjpObyk7Cit9CiAKLSAgICBpZiAoIW1f
dGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBXZWJBbmltYXRpb246OmN1cnJlbnRUaW1lKElnbm9yZUhv
bGRUaW1lIGlnbm9yZUhvbGRUaW1lKSBjb25zdAoreworICAgIC8vIDMuNC40LiBUaGUgY3VycmVu
dCB0aW1lIG9mIGFuIGFuaW1hdGlvbgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy93
ZWItYW5pbWF0aW9ucy0xLyN0aGUtY3VycmVudC10aW1lLW9mLWFuLWFuaW1hdGlvbgogCi0gICAg
YXV0byB0aW1lbGluZVRpbWUgPSBtX3RpbWVsaW5lLT5jdXJyZW50VGltZSgpOwotICAgIGlmICgh
dGltZWxpbmVUaW1lKQorICAgIC8vIFRoZSBjdXJyZW50IHRpbWUgaXMgY2FsY3VsYXRlZCBmcm9t
IHRoZSBmaXJzdCBtYXRjaGluZyBjb25kaXRpb24gZnJvbSBiZWxvdzoKKworICAgIC8vIElmIHRo
ZSBhbmltYXRpb24ncyBob2xkIHRpbWUgaXMgcmVzb2x2ZWQsIHRoZSBjdXJyZW50IHRpbWUgaXMg
dGhlIGFuaW1hdGlvbidzIGhvbGQgdGltZS4KKyAgICBpZiAoaWdub3JlSG9sZFRpbWUgPT0gSWdu
b3JlSG9sZFRpbWU6Ok5vICYmIG1faG9sZFRpbWUpCisgICAgICAgIHJldHVybiBtX2hvbGRUaW1l
OworCisgICAgLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6CisgICAgLy8gICAg
IDEuIHRoZSBhbmltYXRpb24gaGFzIG5vIGFzc29jaWF0ZWQgdGltZWxpbmUsIG9yCisgICAgLy8g
ICAgIDIuIHRoZSBhc3NvY2lhdGVkIHRpbWVsaW5lIGlzIGluYWN0aXZlLCBvcgorICAgIC8vICAg
ICAzLiB0aGUgYW5pbWF0aW9uJ3Mgc3RhcnQgdGltZSBpcyB1bnJlc29sdmVkLgorICAgIC8vIFRo
ZSBjdXJyZW50IHRpbWUgaXMgYW4gdW5yZXNvbHZlZCB0aW1lIHZhbHVlLgorICAgIGlmICghbV90
aW1lbGluZSB8fCAhbV90aW1lbGluZS0+Y3VycmVudFRpbWUoKSB8fCAhbV9zdGFydFRpbWUpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gKHRpbWVsaW5lVGltZS52
YWx1ZSgpIC0gbV9zdGFydFRpbWUudmFsdWUoKSkgKiBtX3BsYXliYWNrUmF0ZTsKKyAgICAvLyBP
dGhlcndpc2UsIGN1cnJlbnQgdGltZSA9ICh0aW1lbGluZSB0aW1lIC0gc3RhcnQgdGltZSkgKiBw
bGF5YmFjayByYXRlCisgICAgcmV0dXJuIChtX3RpbWVsaW5lLT5jdXJyZW50VGltZSgpLnZhbHVl
KCkgLSBtX3N0YXJ0VGltZS52YWx1ZSgpKSAqIG1fcGxheWJhY2tSYXRlOwogfQogCiB2b2lkIFdl
YkFuaW1hdGlvbjo6c2V0Q3VycmVudFRpbWUoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWVrVGlt
ZSkKQEAgLTI3Myw2ICsyODksMTI1IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0
aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIHN0ZDo6CiAgICAgfQog
fQogCit2b2lkIFdlYkFuaW1hdGlvbjo6dXBkYXRlRmluaXNoZWRTdGF0ZShEaWRTZWVrIGRpZFNl
ZWssIFN5bmNocm9ub3VzbHlOb3RpZnkgc3luY2hyb25vdXNseU5vdGlmeSkKK3sKKyAgICAvLyAz
LjQuMTQuIFVwZGF0aW5nIHRoZSBmaW5pc2hlZCBzdGF0ZQorICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy93ZWItYW5pbWF0aW9ucy0xLyN1cGRhdGluZy10aGUtZmluaXNoZWQtc3RhdGUK
KworICAgIC8vIDEuIExldCB0aGUgdW5jb25zdHJhaW5lZCBjdXJyZW50IHRpbWUgYmUgdGhlIHJl
c3VsdCBvZiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCB0aW1lIHN1YnN0aXR1dGluZyBhbiB1bnJl
c29sdmVkIHRpbWUgdmFsdWUKKyAgICAvLyBmb3IgdGhlIGhvbGQgdGltZSBpZiBkaWQgc2VlayBp
cyBmYWxzZS4gSWYgZGlkIHNlZWsgaXMgdHJ1ZSwgdGhlIHVuY29uc3RyYWluZWQgY3VycmVudCB0
aW1lIGlzIGVxdWFsIHRvIHRoZSBjdXJyZW50IHRpbWUuCisgICAgYXV0byB1bmNvbnN0cmFpbmVk
Q3VycmVudFRpbWUgPSBjdXJyZW50VGltZShkaWRTZWVrID09IERpZFNlZWs6Ok5vID8gSWdub3Jl
SG9sZFRpbWU6OlllcyA6IElnbm9yZUhvbGRUaW1lOjpObyk7CisgICAgYXV0byBlbmRUaW1lID0g
ZWZmZWN0RW5kVGltZSgpOworCisgICAgLy8gMi4gSWYgYWxsIHRocmVlIG9mIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgdHJ1ZSwKKyAgICAvLyAgICAtIHRoZSB1bmNvbnN0cmFpbmVkIGN1
cnJlbnQgdGltZSBpcyByZXNvbHZlZCwgYW5kCisgICAgLy8gICAgLSBhbmltYXRpb24ncyBzdGFy
dCB0aW1lIGlzIHJlc29sdmVkLCBhbmQKKyAgICAvLyAgICAtIGFuaW1hdGlvbiBkb2VzIG5vdCBo
YXZlIGEgcGVuZGluZyBwbGF5IHRhc2sgb3IgYSBwZW5kaW5nIHBhdXNlIHRhc2ssCisgICAgaWYg
KHVuY29uc3RyYWluZWRDdXJyZW50VGltZSAmJiBzdGFydFRpbWUoKSAmJiAhcGVuZGluZygpKSB7
CisgICAgICAgIC8vIHRoZW4gdXBkYXRlIGFuaW1hdGlvbidzIGhvbGQgdGltZSBiYXNlZCBvbiB0
aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0aW9uIGZvciBhbmltYXRpb24gZnJvbSBiZWxvdywgaWYg
YW55OgorICAgICAgICBpZiAobV9wbGF5YmFja1JhdGUgPiAwICYmIHVuY29uc3RyYWluZWRDdXJy
ZW50VGltZSA+PSBlbmRUaW1lKSB7CisgICAgICAgICAgICAvLyBJZiBhbmltYXRpb24gcGxheWJh
Y2sgcmF0ZSA+IDAgYW5kIHVuY29uc3RyYWluZWQgY3VycmVudCB0aW1lIGlzIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byB0YXJnZXQgZWZmZWN0IGVuZCwKKyAgICAgICAgICAgIC8vIElmIGRpZCBz
ZWVrIGlzIHRydWUsIGxldCB0aGUgaG9sZCB0aW1lIGJlIHRoZSB2YWx1ZSBvZiB1bmNvbnN0cmFp
bmVkIGN1cnJlbnQgdGltZS4KKyAgICAgICAgICAgIGlmIChkaWRTZWVrID09IERpZFNlZWs6Olll
cykKKyAgICAgICAgICAgICAgICBtX2hvbGRUaW1lID0gdW5jb25zdHJhaW5lZEN1cnJlbnRUaW1l
OworICAgICAgICAgICAgLy8gSWYgZGlkIHNlZWsgaXMgZmFsc2UsIGxldCB0aGUgaG9sZCB0aW1l
IGJlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHByZXZpb3VzIGN1cnJlbnQgdGltZSBhbmQgdGFyZ2V0
IGVmZmVjdCBlbmQuIElmIHRoZSBwcmV2aW91cyBjdXJyZW50IHRpbWUgaXMgdW5yZXNvbHZlZCwg
bGV0IHRoZSBob2xkIHRpbWUgYmUgdGFyZ2V0IGVmZmVjdCBlbmQuCisgICAgICAgICAgICBlbHNl
IGlmICghbV9wcmV2aW91c0N1cnJlbnRUaW1lKQorICAgICAgICAgICAgICAgIG1faG9sZFRpbWUg
PSBlbmRUaW1lOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1faG9sZFRpbWUg
PSBzdGQ6Om1heChtX3ByZXZpb3VzQ3VycmVudFRpbWUudmFsdWUoKSwgZW5kVGltZSk7CisgICAg
ICAgIH0gZWxzZSBpZiAobV9wbGF5YmFja1JhdGUgPCAwICYmIHVuY29uc3RyYWluZWRDdXJyZW50
VGltZSA8PSAwX3MpIHsKKyAgICAgICAgICAgIC8vIElmIGFuaW1hdGlvbiBwbGF5YmFjayByYXRl
IDwgMCBhbmQgdW5jb25zdHJhaW5lZCBjdXJyZW50IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDAsCisgICAgICAgICAgICAvLyBJZiBkaWQgc2VlayBpcyB0cnVlLCBsZXQgdGhlIGhvbGQg
dGltZSBiZSB0aGUgdmFsdWUgb2YgdW5jb25zdHJhaW5lZCBjdXJyZW50IHRpbWUuCisgICAgICAg
ICAgICBpZiAoZGlkU2VlayA9PSBEaWRTZWVrOjpZZXMpCisgICAgICAgICAgICAgICAgbV9ob2xk
VGltZSA9IHVuY29uc3RyYWluZWRDdXJyZW50VGltZTsKKyAgICAgICAgICAgIC8vIElmIGRpZCBz
ZWVrIGlzIGZhbHNlLCBsZXQgdGhlIGhvbGQgdGltZSBiZSB0aGUgbWluaW11bSB2YWx1ZSBvZiBw
cmV2aW91cyBjdXJyZW50IHRpbWUgYW5kIHplcm8uIElmIHRoZSBwcmV2aW91cyBjdXJyZW50IHRp
bWUgaXMgdW5yZXNvbHZlZCwgbGV0IHRoZSBob2xkIHRpbWUgYmUgemVyby4KKyAgICAgICAgICAg
IGVsc2UgaWYgKCFtX3ByZXZpb3VzQ3VycmVudFRpbWUpCisgICAgICAgICAgICAgICAgbV9ob2xk
VGltZSA9IDBfczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2hvbGRUaW1l
ID0gc3RkOjptaW4obV9wcmV2aW91c0N1cnJlbnRUaW1lLnZhbHVlKCksIDBfcyk7CisgICAgICAg
IH0gZWxzZSBpZiAobV9wbGF5YmFja1JhdGUgJiYgbV90aW1lbGluZSAmJiBtX3RpbWVsaW5lLT5j
dXJyZW50VGltZSgpKSB7CisgICAgICAgICAgICAvLyBJZiBhbmltYXRpb24gcGxheWJhY2sgcmF0
ZSDiiaAgMCwgYW5kIGFuaW1hdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggYW4gYWN0aXZlIHRpbWVs
aW5lLAorICAgICAgICAgICAgLy8gUGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgICAg
ICAgICAgLy8gMS4gSWYgZGlkIHNlZWsgaXMgdHJ1ZSBhbmQgdGhlIGhvbGQgdGltZSBpcyByZXNv
bHZlZCwgbGV0IGFuaW1hdGlvbidzIHN0YXJ0IHRpbWUgYmUgZXF1YWwgdG8gdGhlIHJlc3VsdCBv
ZiBldmFsdWF0aW5nIHRpbWVsaW5lIHRpbWUgLSAoaG9sZCB0aW1lIC8gcGxheWJhY2sgcmF0ZSkK
KyAgICAgICAgICAgIC8vICAgIHdoZXJlIHRpbWVsaW5lIHRpbWUgaXMgdGhlIGN1cnJlbnQgdGlt
ZSB2YWx1ZSBvZiB0aW1lbGluZSBhc3NvY2lhdGVkIHdpdGggYW5pbWF0aW9uLgorICAgICAgICAg
ICAgaWYgKGRpZFNlZWsgPT0gRGlkU2Vlazo6WWVzICYmIG1faG9sZFRpbWUpCisgICAgICAgICAg
ICAgICAgc2V0U3RhcnRUaW1lKG1fdGltZWxpbmUtPmN1cnJlbnRUaW1lKCkudmFsdWUoKSAtICht
X2hvbGRUaW1lLnZhbHVlKCkgLyBtX3BsYXliYWNrUmF0ZSkpOworICAgICAgICAgICAgLy8gMi4g
TGV0IHRoZSBob2xkIHRpbWUgYmUgdW5yZXNvbHZlZC4KKyAgICAgICAgICAgIG1faG9sZFRpbWUg
PSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAzLiBTZXQgdGhlIHBy
ZXZpb3VzIGN1cnJlbnQgdGltZSBvZiBhbmltYXRpb24gYmUgdGhlIHJlc3VsdCBvZiBjYWxjdWxh
dGluZyBpdHMgY3VycmVudCB0aW1lLgorICAgIG1fcHJldmlvdXNDdXJyZW50VGltZSA9IGN1cnJl
bnRUaW1lKCk7CisKKyAgICAvLyA0LiBMZXQgY3VycmVudCBmaW5pc2hlZCBzdGF0ZSBiZSB0cnVl
IGlmIHRoZSBwbGF5IHN0YXRlIG9mIGFuaW1hdGlvbiBpcyBmaW5pc2hlZC4gT3RoZXJ3aXNlLCBs
ZXQgaXQgYmUgZmFsc2UuCisgICAgYXV0byBjdXJyZW50RmluaXNoZWRTdGF0ZSA9IHBsYXlTdGF0
ZSgpID09IFBsYXlTdGF0ZTo6RmluaXNoZWQ7CisKKyAgICAvLyA1LiBJZiBjdXJyZW50IGZpbmlz
aGVkIHN0YXRlIGlzIHRydWUgYW5kIHRoZSBjdXJyZW50IGZpbmlzaGVkIHByb21pc2UgaXMgbm90
IHlldCByZXNvbHZlZCwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIGlmIChjdXJy
ZW50RmluaXNoZWRTdGF0ZSAmJiAhbV9maW5pc2hlZFByb21pc2UuaXNGdWxmaWxsZWQoKSkgewor
ICAgICAgICBpZiAoc3luY2hyb25vdXNseU5vdGlmeSA9PSBTeW5jaHJvbm91c2x5Tm90aWZ5OjpZ
ZXMpIHsKKyAgICAgICAgICAgIC8vIElmIHN5bmNocm9ub3VzbHkgbm90aWZ5IGlzIHRydWUsIGNh
bmNlbCBhbnkgcXVldWVkIG1pY3JvdGFzayB0byBydW4gdGhlIGZpbmlzaCBub3RpZmljYXRpb24g
c3RlcHMgZm9yIHRoaXMgYW5pbWF0aW9uLAorICAgICAgICAgICAgLy8gYW5kIHJ1biB0aGUgZmlu
aXNoIG5vdGlmaWNhdGlvbiBzdGVwcyBpbW1lZGlhdGVseS4KKyAgICAgICAgICAgIG1fZmluaXNo
Tm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nID0gZmFsc2U7CisgICAgICAgICAgICBm
aW5pc2hOb3RpZmljYXRpb25TdGVwcygpOworICAgICAgICB9IGVsc2UgaWYgKCFtX2ZpbmlzaE5v
dGlmaWNhdGlvblN0ZXBzTWljcm90YXNrUGVuZGluZykgeworICAgICAgICAgICAgLy8gT3RoZXJ3
aXNlLCBpZiBzeW5jaHJvbm91c2x5IG5vdGlmeSBpcyBmYWxzZSwgcXVldWUgYSBtaWNyb3Rhc2sg
dG8gcnVuIGZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMgZm9yIGFuaW1hdGlvbiB1bmxlc3MgdGhl
cmUKKyAgICAgICAgICAgIC8vIGlzIGFscmVhZHkgYSBtaWNyb3Rhc2sgcXVldWVkIHRvIHJ1biB0
aG9zZSBzdGVwcyBmb3IgYW5pbWF0aW9uLgorICAgICAgICAgICAgbV9maW5pc2hOb3RpZmljYXRp
b25TdGVwc01pY3JvdGFza1BlbmRpbmcgPSB0cnVlOworICAgICAgICAgICAgc2NoZWR1bGVNaWNy
b3Rhc2tJZk5lZWRlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gNi4gSWYgY3VycmVu
dCBmaW5pc2hlZCBzdGF0ZSBpcyBmYWxzZSBhbmQgYW5pbWF0aW9uJ3MgY3VycmVudCBmaW5pc2hl
ZCBwcm9taXNlIGlzIGFscmVhZHkgcmVzb2x2ZWQsIHNldCBhbmltYXRpb24ncyBjdXJyZW50Cisg
ICAgLy8gZmluaXNoZWQgcHJvbWlzZSB0byBhIG5ldyAocGVuZGluZykgUHJvbWlzZSBvYmplY3Qu
CisgICAgaWYgKCFjdXJyZW50RmluaXNoZWRTdGF0ZSAmJiBtX2ZpbmlzaGVkUHJvbWlzZS5pc0Z1
bGZpbGxlZCgpKQorICAgICAgICBtX2ZpbmlzaGVkUHJvbWlzZS5jbGVhcigpOworfQorCit2b2lk
IFdlYkFuaW1hdGlvbjo6c2NoZWR1bGVNaWNyb3Rhc2tJZk5lZWRlZCgpCit7CisgICAgaWYgKG1f
c2NoZWR1bGVkTWljcm90YXNrKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NjaGVkdWxlZE1p
Y3JvdGFzayA9IHRydWU7CisgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLmFw
cGVuZChzdGQ6Om1ha2VfdW5pcXVlPFZvaWRNaWNyb3Rhc2s+KHN0ZDo6YmluZCgmV2ViQW5pbWF0
aW9uOjpwZXJmb3JtTWljcm90YXNrLCB0aGlzKSkpOworfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6
cGVyZm9ybU1pY3JvdGFzaygpCit7CisgICAgbV9zY2hlZHVsZWRNaWNyb3Rhc2sgPSBmYWxzZTsK
KyAgICBpZiAoIW1fZmluaXNoTm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWljcm90YXNrUGVu
ZGluZyA9IGZhbHNlOworICAgIGZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzKCk7Cit9CisKK3ZvaWQg
V2ViQW5pbWF0aW9uOjpmaW5pc2hOb3RpZmljYXRpb25TdGVwcygpCit7CisgICAgLy8gMy40LjE0
LiBVcGRhdGluZyB0aGUgZmluaXNoZWQgc3RhdGUKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvd2ViLWFuaW1hdGlvbnMtMS8jZmluaXNoLW5vdGlmaWNhdGlvbi1zdGVwcworCisgICAg
Ly8gTGV0IGZpbmlzaCBub3RpZmljYXRpb24gc3RlcHMgcmVmZXIgdG8gdGhlIGZvbGxvd2luZyBw
cm9jZWR1cmU6CisgICAgLy8gMS4gSWYgYW5pbWF0aW9uJ3MgcGxheSBzdGF0ZSBpcyBub3QgZXF1
YWwgdG8gZmluaXNoZWQsIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChwbGF5U3RhdGUoKSAh
PSBQbGF5U3RhdGU6OkZpbmlzaGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAyLiBSZXNv
bHZlIGFuaW1hdGlvbidzIGN1cnJlbnQgZmluaXNoZWQgcHJvbWlzZSBvYmplY3Qgd2l0aCBhbmlt
YXRpb24uCisgICAgbV9maW5pc2hlZFByb21pc2UucmVzb2x2ZSgqdGhpcyk7CisKKyAgICAvLyAz
LiBDcmVhdGUgYW4gQW5pbWF0aW9uUGxheWJhY2tFdmVudCwgZmluaXNoRXZlbnQuCisgICAgLy8g
NC4gU2V0IGZpbmlzaEV2ZW50J3MgdHlwZSBhdHRyaWJ1dGUgdG8gZmluaXNoLgorICAgIC8vIDUu
IFNldCBmaW5pc2hFdmVudCdzIGN1cnJlbnRUaW1lIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCB0
aW1lIG9mIGFuaW1hdGlvbi4KKyAgICAvLyA2LiBTZXQgZmluaXNoRXZlbnQncyB0aW1lbGluZVRp
bWUgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhlIHRpbWVsaW5lIHdpdGggd2hp
Y2ggYW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQuCisgICAgLy8gICAgSWYgYW5pbWF0aW9uIGlzIG5v
dCBhc3NvY2lhdGVkIHdpdGggYSB0aW1lbGluZSwgb3IgdGhlIHRpbWVsaW5lIGlzIGluYWN0aXZl
LCBsZXQgdGltZWxpbmVUaW1lIGJlIG51bGwuCisgICAgLy8gNy4gSWYgYW5pbWF0aW9uIGhhcyBh
IGRvY3VtZW50IGZvciB0aW1pbmcsIHRoZW4gYXBwZW5kIGZpbmlzaEV2ZW50IHRvIGl0cyBkb2N1
bWVudCBmb3IgdGltaW5nJ3MgcGVuZGluZyBhbmltYXRpb24gZXZlbnQKKyAgICAvLyAgICBxdWV1
ZSBhbG9uZyB3aXRoIGl0cyB0YXJnZXQsIGFuaW1hdGlvbi4gRm9yIHRoZSBzY2hlZHVsZWQgZXZl
bnQgdGltZSwgdXNlIHRoZSByZXN1bHQgb2YgY29udmVydGluZyBhbmltYXRpb24ncyB0YXJnZXQK
KyAgICAvLyAgICBlZmZlY3QgZW5kIHRvIGFuIG9yaWdpbi1yZWxhdGl2ZSB0aW1lLgorICAgIC8v
ICAgIE90aGVyd2lzZSwgcXVldWUgYSB0YXNrIHRvIGRpc3BhdGNoIGZpbmlzaEV2ZW50IGF0IGFu
aW1hdGlvbi4gVGhlIHRhc2sgc291cmNlIGZvciB0aGlzIHRhc2sgaXMgdGhlIERPTSBtYW5pcHVs
YXRpb24gdGFzayBzb3VyY2UuCisgICAgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoZXZl
bnROYW1lcygpLmZpbmlzaEV2ZW50LCBjdXJyZW50VGltZSgpLCBtX3RpbWVsaW5lID8gbV90aW1l
bGluZS0+Y3VycmVudFRpbWUoKSA6IHN0ZDo6bnVsbG9wdCk7Cit9CisKIFNlY29uZHMgV2ViQW5p
bWF0aW9uOjp0aW1lVG9OZXh0UmVxdWlyZWRUaWNrKFNlY29uZHMgdGltZWxpbmVUaW1lKSBjb25z
dAogewogICAgIGlmICghbV90aW1lbGluZSB8fCAhbV9zdGFydFRpbWUgfHwgIW1fZWZmZWN0IHx8
ICFtX3BsYXliYWNrUmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApp
bmRleCA2NTM2OWY1ZWM3NDQ2ZGFiNWMyYWNmMzU3YjI3OTFjZmYzMzg5NjA4Li44NzgwYTg1MWNk
MjI0ZGI4ODMzMjY4ZTVkY2Y0MjYyYTRkYTQyMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oCkBAIC04NCw2ICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY2Nl
bGVyYXRlZFJ1bm5pbmdTdGF0ZURpZENoYW5nZSgpOwogICAgIHZvaWQgc3RhcnRPclN0b3BBY2Nl
bGVyYXRlZCgpOwogCisgICAgZW51bSBjbGFzcyBEaWRTZWVrIHsgWWVzLCBObyB9OworICAgIGVu
dW0gY2xhc3MgU3luY2hyb25vdXNseU5vdGlmeSB7IFllcywgTm8gfTsKKyAgICB2b2lkIHVwZGF0
ZUZpbmlzaGVkU3RhdGUoRGlkU2VlaywgU3luY2hyb25vdXNseU5vdGlmeSk7CisKICAgICBTdHJp
bmcgZGVzY3JpcHRpb24oKTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKQEAgLTkyLDE2
ICs5NiwyNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkFuaW1hdGlvbihE
b2N1bWVudCYpOwogCisgICAgZW51bSBjbGFzcyBJZ25vcmVIb2xkVGltZSB7IFllcywgTm8gfTsK
KwogICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPik7CiAg
ICAgU2Vjb25kcyBlZmZlY3RFbmRUaW1lKCkgY29uc3Q7CiAgICAgV2ViQW5pbWF0aW9uJiByZWFk
eVByb21pc2VSZXNvbHZlKCk7CiAgICAgV2ViQW5pbWF0aW9uJiBmaW5pc2hlZFByb21pc2VSZXNv
bHZlKCk7CisgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjdXJyZW50VGltZShJZ25vcmVIb2xk
VGltZSkgY29uc3Q7CisgICAgdm9pZCBmaW5pc2hOb3RpZmljYXRpb25TdGVwcygpOworICAgIHZv
aWQgc2NoZWR1bGVNaWNyb3Rhc2tJZk5lZWRlZCgpOworICAgIHZvaWQgcGVyZm9ybU1pY3JvdGFz
aygpOwogICAgIAogICAgIFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+IG1fZWZmZWN0OwogICAgIFJl
ZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1lbGluZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IG1fcHJldmlvdXNDdXJyZW50VGltZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+
IG1fc3RhcnRUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9ob2xkVGltZTsKICAg
ICBkb3VibGUgbV9wbGF5YmFja1JhdGUgeyAxIH07CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWljcm90YXNrUGVuZGlu
ZzsKKyAgICBib29sIG1fc2NoZWR1bGVkTWljcm90YXNrOwogICAgIFJlYWR5UHJvbWlzZSBtX3Jl
YWR5UHJvbWlzZTsKICAgICBGaW5pc2hlZFByb21pc2UgbV9maW5pc2hlZFByb21pc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKaW5kZXggNmZhZGY3NmNiMWFk
MTgwOTNlZjRkMmUyOWMwNmFkYTgyMjJmYzVmNi4uYTNhOGQ0NTkyYWFiY2JlMmMwY2NmZTY5NTQy
YjYwN2YzOWVhMTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5p
ZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgZW51bSBBbmltYXRpb25QbGF5U3RhdGUgewogICAgIGF0dHJp
YnV0ZSBkb3VibGUgcGxheWJhY2tSYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBbmltYXRp
b25QbGF5U3RhdGUgcGxheVN0YXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBl
bmRpbmc7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmZpbmlzaDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUHJvbWlzZTxXZWJBbmltYXRpb24+IHJlYWR5OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBQcm9taXNlPFdlYkFuaW1hdGlvbj4gZmluaXNoZWQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKaW5kZXggOWZiMDQ1ZGUxNDZlZmMxZWQ5OWM4NDg1ZTQ1ZjkxOTIxZTUxMjE3ZC4u
YjYxNDg5YTRhNjA4ZTgyY2U0NzY3MDZmZTZhZTE1MWYzOTg0N2U2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCkBAIC0xMTcsNiArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1h
Y3JvKGVycm9yKSBcCiAgICAgbWFjcm8oZXhpdCkgXAogICAgIG1hY3JvKGZldGNoKSBcCisgICAg
bWFjcm8oZmluaXNoKSBcCiAgICAgbWFjcm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1c2luKSBc
CiAgICAgbWFjcm8oZm9jdXNvdXQpIFwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3N2E5Y2E1MzJjMzMxOWY5MTcxM2IzZTIw
N2NmNTBmN2FhMzJjMTUxLi42MTdkMTkyNTBmN2VjNmIxMzYwMGVmZjZjZWQzMmVhNjBiMjBkODFl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTItMTMgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEltcGxlbWVudCB0aGUg
InVwZGF0aW5nIHRoZSBmaW5pc2hlZCBzdGF0ZSIgcHJvY2VkdXJlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3NDMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM2MDE3MjMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlYmFzZSBzb21lIFdQVCBleHBlY3RhdGlvbnMgd2l0aCBtaW5vciBwcm9ncmVz
c2lvbnMgZHVlIHRvIGV4cG9zaW5nIHRoZSAib25maW5pc2giIHByb3BlcnR5LgorCisgICAgICAg
ICogaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVz
cy1leHBlY3RlZC50eHQ6CisKIDIwMTctMTItMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSBpcyByZXNvbHZpbmcgYmVmb3JlIHRoZSBk
b2N1bWVudCBrbm93cyBpdCBpcyBjYXB0dXJpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNl
cy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggMWFhMDg0Yzk0MWJhMTg2
MDA2YzNlMDcyODE2ZTEyMjMyYTdlNmFkZi4uY2FiYTcyYTc2YjFjOGViZWE4ZGNjMTBiZmFjNGNj
NGZmZTM3ODVmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlv
bnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRs
aGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTE0LDcgKzE0LDcgQEAgUEFTUyBBbmltYXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcGxheWJhY2tSYXRlCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBwbGF5U3RhdGUgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSByZWFkeSAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGZpbmlzaGVkIAot
RkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25maW5pc2ggYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJvbmZpbmlzaCIgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG9uZmluaXNoIAogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25jYW5jZWwg
YXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJv
bmNhbmNlbCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgQW5pbWF0aW9uIGludGVyZmFj
ZTogb3BlcmF0aW9uIGNhbmNlbCgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVy
dHkgImNhbmNlbCIgbWlzc2luZwogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
ZmluaXNoKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZmluaXNoIiBt
aXNzaW5nCkBAIC0zMiw3ICszMiw3IEBAIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogbmV3IEFu
aW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGxheWJhY2tSYXRlIiB3CiBQQVNTIEFu
aW1hdGlvbiBpbnRlcmZhY2U6IG5ldyBBbmltYXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InBsYXlTdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZh
Y2U6IG5ldyBBbmltYXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlYWR5IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogbmV3IEFuaW1hdGlvbigp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZmluaXNoZWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
RkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBuZXcgQW5pbWF0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbmZpbmlzaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBw
cm9wZXJ0eSAib25maW5pc2giIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQW5p
bWF0aW9uIGludGVyZmFjZTogbmV3IEFuaW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
b25maW5pc2giIHdpdGggdGhlIHByb3BlciB0eXBlIAogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNl
OiBuZXcgQW5pbWF0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmNhbmNlbCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib25jYW5jZWwiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIEZBSUwgQW5pbWF0aW9uIGludGVyZmFjZTogbmV3IEFu
aW1hdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNhbmNlbCIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBuZXcgQW5pbWF0aW9uKCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJmaW5pc2goKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZmluaXNoIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCg==
</data>
<flag name="review"
          id="348346"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>