<?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>180657</bug_id>
          
          <creation_ts>2017-12-11 10:07:57 -0800</creation_ts>
          <short_desc>[Web Animations] Enqueue and dispatch animation events</short_desc>
          <delta_ts>2017-12-12 11:01:26 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></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>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380269</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 10:07:57 -0800</bug_when>
    <thetext>We added support for the AnimationPlaybackEvent interface in https://bugs.webkit.org/show_bug.cgi?id=180647. The next step towards dispatching the required event is to add a facility to enqueue and dispatch events as specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380271</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-11 10:08:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/35970103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380285</commentid>
    <comment_count>2</comment_count>
      <attachid>328998</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 10:27:48 -0800</bug_when>
    <thetext>Created attachment 328998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380290</commentid>
    <comment_count>3</comment_count>
      <attachid>328998</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-12-11 10:36:17 -0800</bug_when>
    <thetext>Comment on attachment 328998
Patch

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

&gt; Source/WebCore/animation/WebAnimation.cpp:232
&gt; +    if (m_timeline &amp;&amp; m_timeline-&gt;isDocumentTimeline())
&gt; +        downcast&lt;DocumentTimeline&gt;(*m_timeline).enqueueAnimationPlaybackEvent(WTFMove(event));
&gt; +    // Otherwise, queue a task to dispatch event at animation. The task source for this task is the DOM manipulation task source.
&gt; +    else {

This indentation is weird. Put the comment inside the { }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380295</commentid>
    <comment_count>4</comment_count>
      <attachid>328998</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 10:55:54 -0800</bug_when>
    <thetext>Comment on attachment 328998
Patch

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

&gt; Source/WebCore/animation/WebAnimation.h:85
&gt; +    ScriptExecutionContext* m_scriptExecutionContext;

What makes sure m_scriptExecutionContext is still alive when you use it? Such classes usually subclass ContextDestructionObserver or ActiveDOMObject so they are keep track of when the scriptExecutionContext is getting destroyed. In this case, since you fire events, I believe you want ActiveDOMObject and you want to make sure you hold an ActiveDOMObject::PendingActivity while you can still fire events. You also need to make sure you never fire events *after* ActiveDOMObject::stop() has been called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380325</commentid>
    <comment_count>5</comment_count>
      <attachid>329011</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 11:49:08 -0800</bug_when>
    <thetext>Created attachment 329011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380330</commentid>
    <comment_count>6</comment_count>
      <attachid>329011</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 12:04:57 -0800</bug_when>
    <thetext>Comment on attachment 329011
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        dispatched along with DOM manipulations. In our implementation MutationObserver uses a

MutationOberver is supposed to use Microtasks as per :https://dom.spec.whatwg.org/#queueing-a-mutation-record:
- Queue a mutation observer compound microtask.

The Web Animation spec merely says:
Otherwise, queue a task to dispatch finishEvent at animation. The task source for this task is the DOM manipulation task source.

This looks to me like regular event scheduling, not a micro task. Why do we need to use a MicroTask? The DOM spec does not say that MutationObserver should schedule a task with DOM manipulation task source so it is not obvious to me that your explanation here is correct.

&gt; Source/WebCore/animation/DocumentTimeline.cpp:222
&gt; +static inline bool compareAnimationPlaybackEvents(const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt; lhs, const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt; rhs)

Shouldn&apos;t these be references?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:240
&gt; +    auto pendingAnimationEvents = m_pendingAnimationEvents;

= WTFMove(m_pendingAnimationEvents) ? Then you don&apos;t need to clear() on the next line.

&gt; Source/WebCore/animation/WebAnimation.cpp:244
&gt; +    setPendingActivity(this);

Nowadays, we prefer calling makePendingActivity() and capture the pendingActivity in a lambda, as this is less error-prone.

&gt; Source/WebCore/animation/WebAnimation.cpp:254
&gt; +    unsetPendingActivity(this);

I don&apos;t think you want to do this here as this make cause |this| to get destroyed.

&gt; Source/WebCore/animation/WebAnimation.cpp:322
&gt; +    removeAllEventListeners();

You probably want to clear m_pendingAnimationEvents too. Note that Events ref their target so you have a cycle otherwise (WebAnimation refs its events via m_pendingAnimationEvents and the events ref the WebAnimation via their target).

&gt; Source/WebCore/animation/WebAnimation.h:80
&gt; +    WebAnimation(Document&amp;);

explicit?

&gt; Source/WebCore/animation/WebAnimation.h:90
&gt; +    Vector&lt;RefPtr&lt;AnimationPlaybackEvent&gt;&gt; m_pendingAnimationEvents;

Can this be a Vector of Ref&lt;&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380331</commentid>
    <comment_count>7</comment_count>
      <attachid>329011</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 12:05:34 -0800</bug_when>
    <thetext>Comment on attachment 329011
Patch

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

&gt; Source/WebCore/animation/WebAnimation.cpp:54
&gt;  {

You need to call suspendIfNeeded() in this constructor or you&apos;ll hit assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380360</commentid>
    <comment_count>8</comment_count>
      <attachid>329022</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 13:11:30 -0800</bug_when>
    <thetext>Created attachment 329022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380361</commentid>
    <comment_count>9</comment_count>
      <attachid>329023</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 13:14:00 -0800</bug_when>
    <thetext>Created attachment 329023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380371</commentid>
    <comment_count>10</comment_count>
      <attachid>329023</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 13:37:45 -0800</bug_when>
    <thetext>Comment on attachment 329023
Patch

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

&gt; Source/WebCore/animation/DocumentTimeline.cpp:222
&gt; +static inline bool compareAnimationPlaybackEvents(const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt; lhs, const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt; rhs)

Why isn&apos;t this?
static inline bool compareAnimationPlaybackEvents(const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt;&amp; lhs, const RefPtr&lt;WebCore::AnimationPlaybackEvent&gt;&amp; rhs);

Seems like it would do some refcounting churn otherwise.

&gt; Source/WebCore/animation/DocumentTimeline.h:84
&gt; +    Vector&lt;RefPtr&lt;AnimationPlaybackEvent&gt;&gt; m_pendingAnimationEvents;

Can this be a Vector of Ref&lt;&gt; ?

&gt; Source/WebCore/animation/WebAnimation.cpp:225
&gt; +    if (m_timeline &amp;&amp; m_timeline-&gt;isDocumentTimeline()) {

We prefer if(is&lt;DocumentTimeline&gt;(m_timeline)) {

&gt; Source/WebCore/animation/WebAnimation.cpp:235
&gt; +        if (m_pendingAnimationEvents.size() == 1) {

Is it intentional that if you queue several events then you are going the spin the run loop only once and then fire all the events at once? Doesn&apos;t the spec mandate that each event is a scheduled task?

&gt; Source/WebCore/animation/WebAnimation.cpp:237
&gt; +            callOnMainThread([this, pendingActivity = WTFMove(pendingActivity)]() {

We usually just do [this, pendingActivity = makePendingActivity(*this)] here to avoid the unnecessary local.

&gt; Source/WebCore/animation/WebAnimation.h:88
&gt; +    Vector&lt;RefPtr&lt;AnimationPlaybackEvent&gt;&gt; m_pendingAnimationEvents;

Can this be a Vector of Ref&lt;&gt;?

&gt; Source/WebCore/animation/WebAnimation.h:89
&gt; +    bool m_isStopped;

bool m_isStopped { false };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380386</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 14:00:30 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 329023 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329023&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/WebAnimation.cpp:235
&gt; &gt; +        if (m_pendingAnimationEvents.size() == 1) {
&gt; 
&gt; Is it intentional that if you queue several events then you are going the
&gt; spin the run loop only once and then fire all the events at once? Doesn&apos;t
&gt; the spec mandate that each event is a scheduled task?

You&apos;re right. They only should be dispatched all at once, and sorted, when queued on the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380389</commentid>
    <comment_count>12</comment_count>
      <attachid>329033</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 14:08:27 -0800</bug_when>
    <thetext>Created attachment 329033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380395</commentid>
    <comment_count>13</comment_count>
      <attachid>329033</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 14:18:54 -0800</bug_when>
    <thetext>Comment on attachment 329033
Patch

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

&gt; Source/WebCore/animation/WebAnimation.cpp:233
&gt; +        m_pendingAnimationEvents.append(WTFMove(event));

It looks odd that you queue events in this m_pendingAnimationEvents but schedule a task for every event being appended. Then, when the task is executed, it fires all events queued since last event loop iteration. We may want to get rid of m_pendingAnimationEvents and capture the event in the lambda instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380559</commentid>
    <comment_count>14</comment_count>
      <attachid>329090</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 22:14:50 -0800</bug_when>
    <thetext>Created attachment 329090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380560</commentid>
    <comment_count>15</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-11 22:16:14 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; Comment on attachment 329033 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329033&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/WebAnimation.cpp:233
&gt; &gt; +        m_pendingAnimationEvents.append(WTFMove(event));
&gt; 
&gt; It looks odd that you queue events in this m_pendingAnimationEvents but
&gt; schedule a task for every event being appended. Then, when the task is
&gt; executed, it fires all events queued since last event loop iteration. We may
&gt; want to get rid of m_pendingAnimationEvents and capture the event in the
&gt; lambda instead.

Of course, I was too focused on adopting makePendingActivity() that I forgot to update the logic. The new patch dispatches each event individually with a dedicated task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380718</commentid>
    <comment_count>16</comment_count>
      <attachid>329090</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-12 10:55:43 -0800</bug_when>
    <thetext>Comment on attachment 329090
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380723</commentid>
    <comment_count>17</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-12-12 11:01:26 -0800</bug_when>
    <thetext>Committed r225790: &lt;https://trac.webkit.org/changeset/225790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328998</attachid>
            <date>2017-12-11 10:27:48 -0800</date>
            <delta_ts>2017-12-11 11:49:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171211192747.patch</filename>
            <type>text/plain</type>
            <size>16411</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1NDBiOWNmYTlkYTdm
Mzc4ZTc0NzE3Y2ZkMzc3YjI3ZDY2NmM4MS4uYzNhYWRlMGVmOWUyMzczNjgzNTUyNTkxZjVmZDM4
NjFlMzFhNDEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3Ig
dGhlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVu
cXVldWUKKyAgICAgICAgc3VjaCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUg
dGltZS4gVGhlIFdlYiBBbmltYXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0
byBxdWV1ZSBhbmQgZGlzcGF0Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24g
aGFzIGEgImRvY3VtZW50IGZvciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24g
dGhpcyBkb2N1bWVudC4KKyAgICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5p
bWF0aW9uIHRpbWVsaW5lIGlzIHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMK
KyAgICAgICAgaXQgaGFzIGEgZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9j
dW1lbnRUaW1lbGluZSBlbnF1ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBi
ZSBkaXNwYXRjaGVkIHRocm91Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4u
IFRoZXNlIGV2ZW50cyB3aWxsIGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZl
IHRpbWVsaW5lIHRpbWUgYmVmb3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhl
cmUgaXMgbm8gZG9jdW1lbnQgZm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBlbnF1ZXVlZCBv
biB0aGUgYW5pbWF0aW9uIGl0c2VsZiBhbmQKKyAgICAgICAgZGlzcGF0Y2hlZCBhbG9uZyB3aXRo
IERPTSBtYW5pcHVsYXRpb25zLiBJbiBvdXIgaW1wbGVtZW50YXRpb24gTXV0YXRpb25PYnNlcnZl
ciB1c2VzIGEKKyAgICAgICAgTWljcm90YXNrIHRvIG5vdGlmeSBpdHMgb2JzZXJ2ZXJzLCBzbyB3
ZSBhbHNvIHVzZSBhIE1pY3JvdGFzayB0byBkZWxpdmVyIGV2ZW50cy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6On5Eb2N1bWVu
dFRpbWVsaW5lKTogQ2xvc2UgdGhlIGV2ZW50IGRpc3BhdGNoIHRhc2sgcXVldWUgd2hlbiB0aGUK
KyAgICAgICAgZG9jdW1lbnQgdGltZWxpbmUgaXMgdG9ybiBkb3duLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBBZGQg
dGhlIHByb3ZpZGVkIGV2ZW50IHRvIHRoZQorICAgICAgICBwZW5kaW5nIGFuaW1hdGlvbiBldmVu
dHMgcXVldWUgYW5kLCBpZiBvbmUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGVucXVldWUg
YSB0YXNrIHRvCisgICAgICAgIGRpc3BhdGNoIGV2ZW50cyB1c2luZyBhIEdlbmVyaWNUYXNrUXVl
dWU8VGltZXI+LgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZl
bnRzKTogQ29tcGFyYXRvciB1c2VkIHRvIHNvcnQgZXZlbnRzIGluIHBlcmZvcm1FdmVudERpc3Bh
dGNoVGFzaygpCisgICAgICAgIHdoZXJlIGV2ZW50cyBhcmUgc29ydGVkIHN1Y2ggdGhhdCB1bnJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGNvbWUgZmlyc3QsIGFuZCB0aGVuIGZyb20gdGhlCisgICAg
ICAgIGVhcmxpZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMgdG8gdGhlIGxhdGVyIHJlc29sdmVk
IHRpbWVsaW5lIHRpbWVzLiBFdmVudHMgd2l0aCB1bnJlc29sdmVkCisgICAgICAgIHRpbWVsaW5l
IHRpbWVzIGFuZCBlcXVhbCByZXNvbHZlZCB0aW1lbGluZSB0aW1lcyBhcmUgc29ydGVkIGluIHRo
ZSBvcmRlciB0aGV5IHdlcmUgZW5xdWV1ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2spOiBNYWtlIGEgY29weSBvZiB0aGUgcGVu
ZGluZyBsaXN0IG9mCisgICAgICAgIGFuaW1hdGlvbiBldmVudHMsIGNsZWFyIHRoZSBsaXN0LCBy
dW4gYSBzdGFibGUgc29ydCBvZiB0aGUgbGlzdCBjb3B5IGFuZCBkaXNwYXRjaCB0aGUgZXZlbnRz
CisgICAgICAgIGluZGl2aWR1YWxseSBvbiB0aGVpciByZXNwZWN0aXZlIGFuaW1hdGlvbnMuCisg
ICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3Jl
YXRlKTogUGFzcyBpbiB0aGUgZG9jdW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24pOiBVc2UgdGhlIHByb3ZpZGVkIGRv
Y3VtZW50IGFuZCBzZXQgdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXZhciB0
byBiZSB0aGUgZG9jdW1lbnQncyBzY3JpcHRFeGVjdXRpb25Db250ZXh0LiBXZSBuZWVkIHRvIGtl
ZXAgdGhpcyBhcm91bmQgZm9yIFdlYkFuaW1hdGlvbiB0bworICAgICAgICBiZSBhbiBFdmVudFRh
cmdldC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBs
YXliYWNrRXZlbnQpOiBDcmVhdGUgYW4gQW5pbWF0aW9uUGxheWJhY2tFdmVudCB3aXRoCisgICAg
ICAgIHRoZSBwcm92aWRlZCB0eXBlLCB0aW1lbGluZSB0aW1lIGFuZCBhbmltYXRpb24gdGltZSBh
bmQgZW5xdWV1ZSBpdCBvbiB0aGUgZG9jdW1lbnQgdGltZWxpbmUsCisgICAgICAgIGlmIG9uZSBp
cyBhdmFpbGFibGUsIG9yIG9uIHRoaXMgYW5pbWF0aW9uLCBlbnN1cmluZyBhIG1pY3JvdGFzayB0
byBkaXNwYXRjaCBpdCBpcyBzY2hlZHVsZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRp
b246OnNjaGVkdWxlTWljcm90YXNrSWZOZWVkZWQpOiBTY2hlZHVsZSBhIG1pY3JvdGFzayB0byBk
aXNwYXRjaCBxdWV1ZWQgZXZlbnRzCisgICAgICAgIGlmIG9uZSB3YXNuJ3Qgc2NoZWR1bGVkIGFs
cmVhZHkuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnBlcmZvcm1NaWNyb3Rhc2tz
KTogTWFrZSBhIGNvcHkgb2YgdGhlIGxpc3Qgb2YgcXVldWVkIGV2ZW50cywgY2xlYXIgdGhlCisg
ICAgICAgIG9yaWdpbmFsLCBhbmQgZGlzcGF0Y2ggZWFjaCBldmVudCBpbiB0aGUgcXVldWUgY29w
eS4KKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6IERlZmluZSBXZWJBbmltYXRp
b24gdG8gYmUgYW4gRXZlbnRUYXJnZXQuCisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5pZGw6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKwogMjAxNy0xMi0x
MSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gSW1wbGVtZW50IEFuaW1hdGlvblBsYXliYWNrRXZlbnQgYW5kIEFuaW1hdGlvblBs
YXliYWNrRXZlbnRJbml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZS5jcHAKaW5kZXggYzRkYmE3YmIyOGZlZDA0ZTNiYjM2YmRlYmQ3MWU4YjQ4ZjgzODc2My4u
ZmY2ZjQ3YTc5ZjI3NTIyMDgxZWVmYzNmYTJmMjVjM2JhMzkzMGE3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNTksNiArNTksNyBAQCBE
b2N1bWVudFRpbWVsaW5lOjpEb2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiBkb2N1bWVudCwgUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheQogRG9jdW1lbnRUaW1lbGluZTo6fkRvY3VtZW50VGltZWxp
bmUoKQogewogICAgIG1faW52YWxpZGF0aW9uVGFza1F1ZXVlLmNsb3NlKCk7CisgICAgbV9ldmVu
dERpc3BhdGNoVGFza1F1ZXVlLmNsb3NlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6
ZGV0YWNoRnJvbURvY3VtZW50KCkKQEAgLTIxMCw2ICsyMTEsNDAgQEAgYm9vbCBEb2N1bWVudFRp
bWVsaW5lOjpydW5uaW5nQW5pbWF0aW9uc0ZvckVsZW1lbnRBcmVBbGxBY2NlbGVyYXRlZChFbGVt
ZW50JiBlbGUKICAgICByZXR1cm4gIWFuaW1hdGlvbnMuaXNFbXB0eSgpOwogfQogCit2b2lkIERv
Y3VtZW50VGltZWxpbmU6OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KEFuaW1hdGlvblBs
YXliYWNrRXZlbnQmIGV2ZW50KQoreworICAgIG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5hcHBl
bmQoJmV2ZW50KTsKKworICAgIGlmICghbV9ldmVudERpc3BhdGNoVGFza1F1ZXVlLmhhc1BlbmRp
bmdUYXNrcygpKQorICAgICAgICBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWUuZW5xdWV1ZVRhc2so
c3RkOjpiaW5kKCZEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2ssIHRo
aXMpKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVBbmltYXRpb25QbGF5YmFja0V2
ZW50cyhjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gbGhzLCBj
b25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gcmhzKQoreworICAg
IC8vIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZlbnQgdGltZSBzdWNoIHRo
YXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFybGllciwgc29ydCBiZWZv
cmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgorICAgIC8vIGFuZCBldmVudHMgd2hv
c2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9yZSBldmVudHMg
d2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAgIGlmIChsaHMtPnRpbWVs
aW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmIHJocy0+dGltZWxpbmVUaW1lKCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUoKSAmJiAhcmhz
LT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGxocy0+
dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKTsKK30K
Kwordm9pZCBEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2soKQorewor
ICAgIGlmIChtX3BlbmRpbmdBbmltYXRpb25FdmVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBtX3BlbmRpbmdBbmltYXRp
b25FdmVudHM7CisgICAgbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmNsZWFyKCk7CisKKyAgICBz
dGQ6OnN0YWJsZV9zb3J0KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0Fu
aW1hdGlvbkV2ZW50cy5lbmQoKSwgY29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZlbnRzKTsKKyAg
ICBmb3IgKGF1dG8mIHBlbmRpbmdFdmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVudHMpCisgICAg
ICAgIHBlbmRpbmdFdmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQoKnBlbmRpbmdFdmVudCk7
Cit9CisKIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfRElTUExBWV9NT05JVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmgKaW5kZXggZmYxZTU3NjY2MjA0ODMzYWRjZTYzZWZiYTQ0NDMwYzIwMGQzZTZkYy4u
OTlmN2EyNDg1ODA2NzBhMDA5MmNmYWZiYTgzYjgzZmZkODVhNWIzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCkBAIC0zNyw2ICszNyw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uUGxheWJhY2tFdmVudDsKIGNsYXNz
IFJlbmRlckVsZW1lbnQ7CiAKIGNsYXNzIERvY3VtZW50VGltZWxpbmUgZmluYWwgOiBwdWJsaWMg
QW5pbWF0aW9uVGltZWxpbmUKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIGJvb2wgcnVu
bmluZ0FuaW1hdGlvbnNGb3JFbGVtZW50QXJlQWxsQWNjZWxlcmF0ZWQoRWxlbWVudCYpOwogICAg
IHZvaWQgZGV0YWNoRnJvbURvY3VtZW50KCk7CiAKKyAgICB2b2lkIGVucXVldWVBbmltYXRpb25Q
bGF5YmFja0V2ZW50KEFuaW1hdGlvblBsYXliYWNrRXZlbnQmKTsKKwogcHJpdmF0ZToKICAgICBE
b2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiwgUGxhdGZvcm1EaXNwbGF5SUQpOwogCkBAIC02OCwx
NCArNzEsMTcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGlvblNjaGVkdWxlVGltZXJGaXJl
ZCgpOwogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb25SZXNvbHV0aW9uKCk7CiAgICAgdm9pZCB1
cGRhdGVBbmltYXRpb25zKCk7CisgICAgdm9pZCBwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2soKTsK
IAogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBib29sIG1fcGF1c2VkIHsg
ZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7
CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9pbnZhbGlkYXRpb25UYXNrUXVldWU7Cisg
ICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9ldmVudERpc3BhdGNoVGFza1F1ZXVlOwogICAg
IGJvb2wgbV9uZWVkc1VwZGF0ZUFuaW1hdGlvblNjaGVkdWxlIHsgZmFsc2UgfTsKICAgICBUaW1l
ciBtX2FuaW1hdGlvblNjaGVkdWxlVGltZXI7CiAgICAgSGFzaFNldDxSZWZQdHI8V2ViQW5pbWF0
aW9uPj4gbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlOwor
ICAgIFZlY3RvcjxSZWZQdHI8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4+IG1fcGVuZGluZ0FuaW1h
dGlvbkV2ZW50czsKIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01P
TklUT1IpCiAgICAgLy8gT3ZlcnJpZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCA1ZDY3MGUxZjFj
NDgyYWVlN2UxOTFiYjA2YTY3NDRmMmY2NTFjZDhmLi45YzBjNGIzYjNlMzM3MjE5OWRiNTZlNjc3
YjRjOWMwNjA2ZGM0NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcApAQCAtMjcsMTYgKzI3LDE4IEBACiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAKICNp
bmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKKyNpbmNsdWRlICJBbmltYXRpb25QbGF5YmFja0V2
ZW50LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uVGltZWxpbmUuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiTWljcm90YXNrcy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWVsaW5lKiB0aW1lbGlu
ZSkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKCkpOwor
ICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsK
IAogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAKQEAgLTQ3LDcgKzQ5LDggQEAgUmVm
PFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBB
bmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJBbmltYXRp
b246OldlYkFuaW1hdGlvbigpCitXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoZG9jdW1lbnQuc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQogewogfQogCkBAIC0yMTQsNiArMjE3LDQ0IEBAIHZvaWQgV2Vi
QW5pbWF0aW9uOjpzZXRQbGF5YmFja1JhdGUoZG91YmxlIG5ld1BsYXliYWNrUmF0ZSkKICAgICAg
ICAgc2V0Q3VycmVudFRpbWUocHJldmlvdXNUaW1lKTsKIH0KIAordm9pZCBXZWJBbmltYXRpb246
OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjdXJyZW50VGltZSwgc3RkOjpvcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCit7CisgICAgYXV0byBldmVudCA9IEFuaW1hdGlvblBsYXliYWNrRXZl
bnQ6OmNyZWF0ZSh0eXBlLCBjdXJyZW50VGltZSwgdGltZWxpbmVUaW1lKTsKKyAgICBldmVudC0+
c2V0VGFyZ2V0KHRoaXMpOworCisgICAgLy8gSWYgYW5pbWF0aW9uIGhhcyBhIGRvY3VtZW50IGZv
ciB0aW1pbmcsIHRoZW4gYXBwZW5kIGV2ZW50IHRvIGl0cyBkb2N1bWVudCBmb3IgdGltaW5nJ3Mg
cGVuZGluZyBhbmltYXRpb24gZXZlbnQgcXVldWUgYWxvbmcKKyAgICAvLyB3aXRoIGl0cyB0YXJn
ZXQsIGFuaW1hdGlvbi4gSWYgYW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQgd2l0aCBhbiBhY3RpdmUg
dGltZWxpbmUgdGhhdCBkZWZpbmVzIGEgcHJvY2VkdXJlIHRvIGNvbnZlcnQgdGltZWxpbmUgdGlt
ZXMKKyAgICAvLyB0byBvcmlnaW4tcmVsYXRpdmUgdGltZSwgbGV0IHRoZSBzY2hlZHVsZWQgZXZl
bnQgdGltZSBiZSB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoYXQgcHJvY2VkdXJlIHRvIHRpbWVs
aW5lIHRpbWUuIE90aGVyd2lzZSwgdGhlCisgICAgLy8gc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMg
YW4gdW5yZXNvbHZlZCB0aW1lIHZhbHVlLgorICAgIGlmIChtX3RpbWVsaW5lICYmIG1fdGltZWxp
bmUtPmlzRG9jdW1lbnRUaW1lbGluZSgpKQorICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVs
aW5lPigqbV90aW1lbGluZSkuZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoV1RGTW92ZShl
dmVudCkpOworICAgIC8vIE90aGVyd2lzZSwgcXVldWUgYSB0YXNrIHRvIGRpc3BhdGNoIGV2ZW50
IGF0IGFuaW1hdGlvbi4gVGhlIHRhc2sgc291cmNlIGZvciB0aGlzIHRhc2sgaXMgdGhlIERPTSBt
YW5pcHVsYXRpb24gdGFzayBzb3VyY2UuCisgICAgZWxzZSB7CisgICAgICAgIG1fcGVuZGluZ0Fu
aW1hdGlvbkV2ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkpOworICAgICAgICBzY2hlZHVsZU1p
Y3JvdGFza0lmTmVlZGVkKCk7CisgICAgfQorfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6c2NoZWR1
bGVNaWNyb3Rhc2tJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fc2NoZWR1bGVkTWljcm90YXNrKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3NjaGVkdWxlZE1pY3JvdGFzayA9IHRydWU7CisgICAg
TWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PFZvaWRNaWNyb3Rhc2s+KHN0ZDo6YmluZCgmV2ViQW5pbWF0aW9uOjpwZXJmb3JtTWljcm90YXNr
cywgdGhpcykpKTsKK30KKwordm9pZCBXZWJBbmltYXRpb246OnBlcmZvcm1NaWNyb3Rhc2tzKCkK
K3sKKyAgICBtX3NjaGVkdWxlZE1pY3JvdGFzayA9IGZhbHNlOworCisgICAgYXV0byBwZW5kaW5n
QW5pbWF0aW9uRXZlbnRzID0gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOworICAgIG1fcGVuZGlu
Z0FuaW1hdGlvbkV2ZW50cy5jbGVhcigpOworCisgICAgZm9yIChhdXRvJiBwZW5kaW5nRXZlbnQg
OiBwZW5kaW5nQW5pbWF0aW9uRXZlbnRzKQorICAgICAgICBwZW5kaW5nRXZlbnQtPnRhcmdldCgp
LT5kaXNwYXRjaEV2ZW50KCpwZW5kaW5nRXZlbnQpOworfQorCiBTZWNvbmRzIFdlYkFuaW1hdGlv
bjo6dGltZVRvTmV4dFJlcXVpcmVkVGljayhTZWNvbmRzIHRpbWVsaW5lVGltZSkgY29uc3QKIHsK
ICAgICBpZiAoIW1fdGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lIHx8ICFtX2VmZmVjdCB8fCAhbV9w
bGF5YmFja1JhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXgg
YWU5YzI4ZDkzMGNlZGQzYjE2ZGNlYTY3NTllMTI0NThjOWEzMjBjOS4uNWZhZDg2NDgyYThlM2Y1
M2QwMDliNDgzZTcyODA5OTRmZTAzZGRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtMzYsMTEgKzM3LDEyIEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvbkVmZmVjdDsKK2NsYXNzIEFu
aW1hdGlvblBsYXliYWNrRXZlbnQ7CiBjbGFzcyBBbmltYXRpb25UaW1lbGluZTsKIGNsYXNzIERv
Y3VtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKLWNsYXNzIFdlYkFuaW1hdGlvbiBmaW5hbCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYkFuaW1hdGlvbj4geworY2xhc3MgV2ViQW5pbWF0aW9uIGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQW5pbWF0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBj
cmVhdGUoRG9jdW1lbnQmLCBBbmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGluZSopOwog
ICAgIH5XZWJBbmltYXRpb24oKTsKQEAgLTcwLDEzICs3MiwyOSBAQCBwdWJsaWM6CiAKICAgICBT
dHJpbmcgZGVzY3JpcHRpb24oKTsKIAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1
c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBXZWJBbmltYXRpb24oKTsK
KyAgICBXZWJBbmltYXRpb24oRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlv
blBsYXliYWNrRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxTZWNvbmRz
Piwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPik7CisgICAgdm9pZCBzY2hlZHVsZU1pY3JvdGFza0lm
TmVlZGVkKCk7CisgICAgdm9pZCBwZXJmb3JtTWljcm90YXNrcygpOwogCisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIFJlZlB0cjxBbmlt
YXRpb25FZmZlY3Q+IG1fZWZmZWN0OwogICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90
aW1lbGluZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IG1fc3RhcnRUaW1lOwogICAgIGRv
dWJsZSBtX3BsYXliYWNrUmF0ZSB7IDEgfTsKKyAgICBWZWN0b3I8UmVmUHRyPEFuaW1hdGlvblBs
YXliYWNrRXZlbnQ+PiBtX3BlbmRpbmdBbmltYXRpb25FdmVudHM7CisgICAgYm9vbCBtX3NjaGVk
dWxlZE1pY3JvdGFzazsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXZWJBbmlt
YXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0
KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsg
ZGVyZWYoKTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5pZGwKaW5kZXggZmExYzdmMTVjNjY0MGY1YzNjNTRiZGQxMWMzNGIwZDc4Mzc3
Nzg0NS4uYThkMTA3ZDFhMDEzYTczZWJkZWIxYjkyZDBkMDM5Njk4YjY4ZDE0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKQEAgLTI2LDEwICsyNiw5IEBACiBb
CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBbmltYXRpb25zLAogICAgIEludGVyZmFjZU5hbWU9
QW5pbWF0aW9uLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgQ29uc3RydWN0
b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBDb25zdHJ1Y3RvcihvcHRpb25hbCBBbmltYXRpb25F
ZmZlY3Q/IGVmZmVjdCA9IG51bGwsIG9wdGlvbmFsIEFuaW1hdGlvblRpbWVsaW5lPyB0aW1lbGlu
ZSkKLV0gaW50ZXJmYWNlIFdlYkFuaW1hdGlvbiB7CitdIGludGVyZmFjZSBXZWJBbmltYXRpb24g
OiBFdmVudFRhcmdldCB7CiAgICAgYXR0cmlidXRlIEFuaW1hdGlvbkVmZmVjdD8gZWZmZWN0Owog
ICAgIGF0dHJpYnV0ZSBBbmltYXRpb25UaW1lbGluZT8gdGltZWxpbmU7CiAgICAgW0ltcGxlbWVu
dGVkQXM9YmluZGluZ3NTdGFydFRpbWVdIGF0dHJpYnV0ZSBkb3VibGU/IHN0YXJ0VGltZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDcxMTY4OWI2MDVmMmFi
MWJlNWZmYTc3MDc1OTc1MjU0YjI4ZGUyYWUuLmE4MTQ0ZDgwYjI3YTBlNWZlNWQ2ZjUyOWE4M2Zm
M2QwNDkwZWJmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpA
QCAtNDQsNiArNDQsNyBAQCBUZXh0VHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBW
UkRpc3BsYXkKIFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBWaXN1YWxW
aWV3cG9ydAorV2ViQW5pbWF0aW9uCiBXZWJLaXRNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQQogV2ViU29ja2V0CiBXb3JrZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGMwN2Fm
MmQ5NDhmZjZhYjVmMjdlZjYyODY2NzYxYWVmYzNkOWFjLi5hMDZlOGM2MmRjZTJjZTk5OWJjYzU2
YjBkMGQ5YTI1MjkzZjg1MDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMTEgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlv
bnNdIEVucXVldWUgYW5kIGRpc3BhdGNoIGFuaW1hdGlvbiBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY1NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzU5NzAxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmViYXNlIFdlYiBQbGF0Zm9ybSBUZXN0cyB3aXRoIHNvbWUgcHJvZ3Jlc3Np
b25zIGJhc2VkIG9uIHRoZSBJREwgY2hhbmdlcy4gUHJvZ3Jlc3Npb25zIGR1ZQorICAgICAgICB0
byBkaXNwYXRjaGluZyBldmVudHMgd2lsbCBiZWNvbWUgYXBwYXJlbnQgd2hlbiB0aGUgbmV4dCBw
YXRjaCwgd2hlcmUgd2UgZGlzcGF0Y2ggYWN0dWFsCisgICAgICAgIGFuaW1hdGlvbiBwbGF5YmFj
ayBldmVudHMsIGxhbmRzLgorCisgICAgICAgICogaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50
ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisKIDIwMTctMTItMTEg
IE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEVuYWJsZSBtb3N0
IHdwdCBodG1sIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFu
aW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCA1NzdmZTdmYzc1MWM0N2M0OTAwYjBhZThlMTQ1
MDgxYWJmYzUwOWE0Li4wY2VlMWE4MGM3NmI3ZTNjZGZkOGMyOGExZWYxMjFmNjgyZDgzYzhlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2Vz
L0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4cGVj
dGVkLnR4dApAQCAtMSwxMyArMSw5IEBACiAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBhdXRv
bWF0ZWQgSURMIHRlc3RzIAotRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUg
b2YgQW5pbWF0aW9uIGlzIG5vdCBFdmVudFRhcmdldCBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rp
b24gRXZlbnRUYXJnZXQoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgYnV0IGdvdCBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iCitQQVNTIEFuaW1hdGlvbiBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAog
UEFTUyBBbmltYXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIEFuaW1hdGlvbiBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1GQUlMIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZXF1
YWxzOiBwcm90b3R5cGUgb2YgQW5pbWF0aW9uLnByb3RvdHlwZSBpcyBub3QgRXZlbnRUYXJnZXQu
cHJvdG90eXBlIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBFdmVudFRhcmdldFByb3RvdHlwZV0i
IGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IE9iamVjdF0iCitQQVNTIEFuaW1hdGlvbiBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIEZB
SUwgQW5pbWF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGlkIGFzc2VydF90cnVlOiBUaGUgcHJv
dG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaWQiIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlZmZlY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329011</attachid>
            <date>2017-12-11 11:49:08 -0800</date>
            <delta_ts>2017-12-11 13:11:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171211204907.patch</filename>
            <type>text/plain</type>
            <size>17267</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQyYTNmMTZjYjg4ZjNk
OTVmMWVjYzJkNzY5ZDc5MzExMTIxNDVkYS4uZTM1NzY0YTc0YzEyZmY3MjU2MzFmZmYzNzZjNjMx
Yzg5ZjBmMTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVucXVldWUKKyAgICAgICAgc3Vj
aCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUgdGltZS4gVGhlIFdlYiBBbmlt
YXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0byBxdWV1ZSBhbmQgZGlzcGF0
Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24gaGFzIGEgImRvY3VtZW50IGZv
ciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24gdGhpcyBkb2N1bWVudC4KKyAg
ICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5pbWF0aW9uIHRpbWVsaW5lIGlz
IHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMKKyAgICAgICAgaXQgaGFzIGEg
ZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9jdW1lbnRUaW1lbGluZSBlbnF1
ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBiZSBkaXNwYXRjaGVkIHRocm91
Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uIFRoZXNlIGV2ZW50cyB3aWxs
IGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZlIHRpbWVsaW5lIHRpbWUgYmVm
b3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQg
Zm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBlbnF1ZXVlZCBvbiB0aGUgYW5pbWF0aW9uIGl0
c2VsZiBhbmQKKyAgICAgICAgZGlzcGF0Y2hlZCBhbG9uZyB3aXRoIERPTSBtYW5pcHVsYXRpb25z
LiBJbiBvdXIgaW1wbGVtZW50YXRpb24gTXV0YXRpb25PYnNlcnZlciB1c2VzIGEKKyAgICAgICAg
TWljcm90YXNrIHRvIG5vdGlmeSBpdHMgb2JzZXJ2ZXJzLCBzbyB3ZSBhbHNvIHVzZSBhIE1pY3Jv
dGFzayB0byBkZWxpdmVyIGV2ZW50cy4KKworICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6On5Eb2N1bWVu
dFRpbWVsaW5lKTogQ2xvc2UgdGhlIGV2ZW50IGRpc3BhdGNoIHRhc2sgcXVldWUgd2hlbiB0aGUK
KyAgICAgICAgZG9jdW1lbnQgdGltZWxpbmUgaXMgdG9ybiBkb3duLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBBZGQg
dGhlIHByb3ZpZGVkIGV2ZW50IHRvIHRoZQorICAgICAgICBwZW5kaW5nIGFuaW1hdGlvbiBldmVu
dHMgcXVldWUgYW5kLCBpZiBvbmUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGVucXVldWUg
YSB0YXNrIHRvCisgICAgICAgIGRpc3BhdGNoIGV2ZW50cyB1c2luZyBhIEdlbmVyaWNUYXNrUXVl
dWU8VGltZXI+LgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZl
bnRzKTogQ29tcGFyYXRvciB1c2VkIHRvIHNvcnQgZXZlbnRzIGluIHBlcmZvcm1FdmVudERpc3Bh
dGNoVGFzaygpCisgICAgICAgIHdoZXJlIGV2ZW50cyBhcmUgc29ydGVkIHN1Y2ggdGhhdCB1bnJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGNvbWUgZmlyc3QsIGFuZCB0aGVuIGZyb20gdGhlCisgICAg
ICAgIGVhcmxpZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMgdG8gdGhlIGxhdGVyIHJlc29sdmVk
IHRpbWVsaW5lIHRpbWVzLiBFdmVudHMgd2l0aCB1bnJlc29sdmVkCisgICAgICAgIHRpbWVsaW5l
IHRpbWVzIGFuZCBlcXVhbCByZXNvbHZlZCB0aW1lbGluZSB0aW1lcyBhcmUgc29ydGVkIGluIHRo
ZSBvcmRlciB0aGV5IHdlcmUgZW5xdWV1ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2spOiBNYWtlIGEgY29weSBvZiB0aGUgcGVu
ZGluZyBsaXN0IG9mCisgICAgICAgIGFuaW1hdGlvbiBldmVudHMsIGNsZWFyIHRoZSBsaXN0LCBy
dW4gYSBzdGFibGUgc29ydCBvZiB0aGUgbGlzdCBjb3B5IGFuZCBkaXNwYXRjaCB0aGUgZXZlbnRz
CisgICAgICAgIGluZGl2aWR1YWxseSBvbiB0aGVpciByZXNwZWN0aXZlIGFuaW1hdGlvbnMuCisg
ICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3Jl
YXRlKTogUGFzcyBpbiB0aGUgZG9jdW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24pOiBVc2UgdGhlIHByb3ZpZGVkIGRv
Y3VtZW50IHRvIGluaXRpYWxpemUgQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6
V2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudCk6IENyZWF0ZSBhbiBB
bmltYXRpb25QbGF5YmFja0V2ZW50IHdpdGgKKyAgICAgICAgdGhlIHByb3ZpZGVkIHR5cGUsIHRp
bWVsaW5lIHRpbWUgYW5kIGFuaW1hdGlvbiB0aW1lIGFuZCBlbnF1ZXVlIGl0IG9uIHRoZSBkb2N1
bWVudCB0aW1lbGluZSwKKyAgICAgICAgaWYgb25lIGlzIGF2YWlsYWJsZSwgb3Igb24gdGhpcyBh
bmltYXRpb24sIGVuc3VyaW5nIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIGl0IGlzIHNjaGVkdWxl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2NoZWR1bGVNaWNyb3Rhc2tJZk5l
ZWRlZCk6IFNjaGVkdWxlIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIHF1ZXVlZCBldmVudHMKKyAg
ICAgICAgaWYgb25lIHdhc24ndCBzY2hlZHVsZWQgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFza3MpOiBNYWtlIGEgY29weSBvZiB0aGUgbGlz
dCBvZiBxdWV1ZWQgZXZlbnRzLCBjbGVhciB0aGUKKyAgICAgICAgb3JpZ2luYWwsIGFuZCBkaXNw
YXRjaCBlYWNoIGV2ZW50IGluIHRoZSBxdWV1ZSBjb3B5LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnN0b3ApOgorICAgICAgICAqIGFuaW1hdGlv
bi9XZWJBbmltYXRpb24uaDogRGVmaW5lIFdlYkFuaW1hdGlvbiB0byBiZSBhbiBFdmVudFRhcmdl
dCBhbmQgYW4gQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRp
b24uaWRsOiBEZWZpbmUgV2ViQW5pbWF0aW9uIHRvIGJlIGFuIEV2ZW50VGFyZ2V0IGFuZCBhbiBB
Y3RpdmVET01PYmplY3QuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKwog
MjAxNy0xMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWIgQW5pbWF0aW9uc10gSW1wbGVtZW50IEFuaW1hdGlvblBsYXliYWNrRXZlbnQgYW5kIEFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHAKaW5kZXggYzRkYmE3YmIyOGZlZDA0ZTNiYjM2YmRlYmQ3MWU4YjQ4
ZjgzODc2My4uZmY2ZjQ3YTc5ZjI3NTIyMDgxZWVmYzNmYTJmMjVjM2JhMzkzMGE3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNTksNiAr
NTksNyBAQCBEb2N1bWVudFRpbWVsaW5lOjpEb2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiBkb2N1
bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheQogRG9jdW1lbnRUaW1lbGluZTo6fkRvY3Vt
ZW50VGltZWxpbmUoKQogewogICAgIG1faW52YWxpZGF0aW9uVGFza1F1ZXVlLmNsb3NlKCk7Cisg
ICAgbV9ldmVudERpc3BhdGNoVGFza1F1ZXVlLmNsb3NlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRU
aW1lbGluZTo6ZGV0YWNoRnJvbURvY3VtZW50KCkKQEAgLTIxMCw2ICsyMTEsNDAgQEAgYm9vbCBE
b2N1bWVudFRpbWVsaW5lOjpydW5uaW5nQW5pbWF0aW9uc0ZvckVsZW1lbnRBcmVBbGxBY2NlbGVy
YXRlZChFbGVtZW50JiBlbGUKICAgICByZXR1cm4gIWFuaW1hdGlvbnMuaXNFbXB0eSgpOwogfQog
Cit2b2lkIERvY3VtZW50VGltZWxpbmU6OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KEFu
aW1hdGlvblBsYXliYWNrRXZlbnQmIGV2ZW50KQoreworICAgIG1fcGVuZGluZ0FuaW1hdGlvbkV2
ZW50cy5hcHBlbmQoJmV2ZW50KTsKKworICAgIGlmICghbV9ldmVudERpc3BhdGNoVGFza1F1ZXVl
Lmhhc1BlbmRpbmdUYXNrcygpKQorICAgICAgICBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWUuZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRj
aFRhc2ssIHRoaXMpKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVBbmltYXRpb25Q
bGF5YmFja0V2ZW50cyhjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVu
dD4gbGhzLCBjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gcmhz
KQoreworICAgIC8vIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZlbnQgdGlt
ZSBzdWNoIHRoYXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFybGllciwg
c29ydCBiZWZvcmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgorICAgIC8vIGFuZCBl
dmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9y
ZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAgIGlmIChs
aHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmIHJocy0+dGltZWxpbmVU
aW1lKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUo
KSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCkudmFs
dWUoKTsKK30KKwordm9pZCBEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRh
c2soKQoreworICAgIGlmIChtX3BlbmRpbmdBbmltYXRpb25FdmVudHMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBtX3BlbmRp
bmdBbmltYXRpb25FdmVudHM7CisgICAgbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmNsZWFyKCk7
CisKKyAgICBzdGQ6OnN0YWJsZV9zb3J0KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwg
cGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5lbmQoKSwgY29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZl
bnRzKTsKKyAgICBmb3IgKGF1dG8mIHBlbmRpbmdFdmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVu
dHMpCisgICAgICAgIHBlbmRpbmdFdmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQoKnBlbmRp
bmdFdmVudCk7Cit9CisKIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6d2luZG93U2NyZWVuRGlkQ2hh
bmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKICNpZiBVU0UoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmgKaW5kZXggZmYxZTU3NjY2MjA0ODMzYWRjZTYzZWZiYTQ0NDMwYzIw
MGQzZTZkYy4uOTlmN2EyNDg1ODA2NzBhMDA5MmNmYWZiYTgzYjgzZmZkODVhNWIzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCkBAIC0zNyw2ICszNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uUGxheWJhY2tFdmVu
dDsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKIGNsYXNzIERvY3VtZW50VGltZWxpbmUgZmluYWwg
OiBwdWJsaWMgQW5pbWF0aW9uVGltZWxpbmUKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAg
IGJvb2wgcnVubmluZ0FuaW1hdGlvbnNGb3JFbGVtZW50QXJlQWxsQWNjZWxlcmF0ZWQoRWxlbWVu
dCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbURvY3VtZW50KCk7CiAKKyAgICB2b2lkIGVucXVldWVB
bmltYXRpb25QbGF5YmFja0V2ZW50KEFuaW1hdGlvblBsYXliYWNrRXZlbnQmKTsKKwogcHJpdmF0
ZToKICAgICBEb2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiwgUGxhdGZvcm1EaXNwbGF5SUQpOwog
CkBAIC02OCwxNCArNzEsMTcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGlvblNjaGVkdWxl
VGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb25SZXNvbHV0aW9uKCk7CiAg
ICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKCk7CisgICAgdm9pZCBwZXJmb3JtRXZlbnREaXNwYXRj
aFRhc2soKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBib29sIG1f
cGF1c2VkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVkQ3Vy
cmVudFRpbWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9pbnZhbGlkYXRpb25UYXNr
UXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9ldmVudERpc3BhdGNoVGFza1F1
ZXVlOwogICAgIGJvb2wgbV9uZWVkc1VwZGF0ZUFuaW1hdGlvblNjaGVkdWxlIHsgZmFsc2UgfTsK
ICAgICBUaW1lciBtX2FuaW1hdGlvblNjaGVkdWxlVGltZXI7CiAgICAgSGFzaFNldDxSZWZQdHI8
V2ViQW5pbWF0aW9uPj4gbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRl
Q2hhbmdlOworICAgIFZlY3RvcjxSZWZQdHI8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4+IG1fcGVu
ZGluZ0FuaW1hdGlvbkV2ZW50czsKIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9E
SVNQTEFZX01PTklUT1IpCiAgICAgLy8gT3ZlcnJpZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCA1
ZDY3MGUxZjFjNDgyYWVlN2UxOTFiYjA2YTY3NDRmMmY2NTFjZDhmLi4yOTBhZGJiYzQxMzVhY2Zi
MDI3MWM1NjgxMzJmNzVjZGEwMGIzMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmNwcApAQCAtMjcsMTYgKzI3LDE4IEBACiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9u
LmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKKyNpbmNsdWRlICJBbmltYXRpb25Q
bGF5YmFja0V2ZW50LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uVGltZWxpbmUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiTWlj
cm90YXNrcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWVsaW5l
KiB0aW1lbGluZSkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0
aW9uKCkpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9j
dW1lbnQpKTsKIAogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAKQEAgLTQ3LDcgKzQ5
LDggQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1X
ZWJBbmltYXRpb246OldlYkFuaW1hdGlvbigpCitXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogewog
fQogCkBAIC0yMTQsNiArMjE3LDQ5IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRQbGF5YmFja1Jh
dGUoZG91YmxlIG5ld1BsYXliYWNrUmF0ZSkKICAgICAgICAgc2V0Q3VycmVudFRpbWUocHJldmlv
dXNUaW1lKTsKIH0KIAordm9pZCBXZWJBbmltYXRpb246OmVucXVldWVBbmltYXRpb25QbGF5YmFj
a0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBj
dXJyZW50VGltZSwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCit7CisgICAg
YXV0byBldmVudCA9IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjdXJyZW50
VGltZSwgdGltZWxpbmVUaW1lKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAg
aWYgKG1fdGltZWxpbmUgJiYgbV90aW1lbGluZS0+aXNEb2N1bWVudFRpbWVsaW5lKCkpIHsKKyAg
ICAgICAgLy8gSWYgYW5pbWF0aW9uIGhhcyBhIGRvY3VtZW50IGZvciB0aW1pbmcsIHRoZW4gYXBw
ZW5kIGV2ZW50IHRvIGl0cyBkb2N1bWVudCBmb3IgdGltaW5nJ3MgcGVuZGluZyBhbmltYXRpb24g
ZXZlbnQgcXVldWUgYWxvbmcKKyAgICAgICAgLy8gd2l0aCBpdHMgdGFyZ2V0LCBhbmltYXRpb24u
IElmIGFuaW1hdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggYW4gYWN0aXZlIHRpbWVsaW5lIHRoYXQg
ZGVmaW5lcyBhIHByb2NlZHVyZSB0byBjb252ZXJ0IHRpbWVsaW5lIHRpbWVzCisgICAgICAgIC8v
IHRvIG9yaWdpbi1yZWxhdGl2ZSB0aW1lLCBsZXQgdGhlIHNjaGVkdWxlZCBldmVudCB0aW1lIGJl
IHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhhdCBwcm9jZWR1cmUgdG8gdGltZWxpbmUgdGltZS4g
T3RoZXJ3aXNlLCB0aGUKKyAgICAgICAgLy8gc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgYW4gdW5y
ZXNvbHZlZCB0aW1lIHZhbHVlLgorICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigq
bV90aW1lbGluZSkuZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoV1RGTW92ZShldmVudCkp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE90aGVyd2lzZSwgcXVldWUgYSB0YXNrIHRvIGRp
c3BhdGNoIGV2ZW50IGF0IGFuaW1hdGlvbi4gVGhlIHRhc2sgc291cmNlIGZvciB0aGlzIHRhc2sg
aXMgdGhlIERPTSBtYW5pcHVsYXRpb24gdGFzayBzb3VyY2UuCisgICAgICAgIG1fcGVuZGluZ0Fu
aW1hdGlvbkV2ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkpOworICAgICAgICBzY2hlZHVsZU1p
Y3JvdGFza0lmTmVlZGVkKCk7CisgICAgfQorfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6c2NoZWR1
bGVNaWNyb3Rhc2tJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fc2NoZWR1bGVkTWljcm90YXNrKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3NjaGVkdWxlZE1pY3JvdGFzayA9IHRydWU7CisgICAg
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFk
UXVldWUoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxWb2lkTWljcm90YXNrPihzdGQ6OmJpbmQo
JldlYkFuaW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFza3MsIHRoaXMpKSk7Cit9CisKK3ZvaWQgV2Vi
QW5pbWF0aW9uOjpwZXJmb3JtTWljcm90YXNrcygpCit7CisgICAgaWYgKG1faXNTdG9wcGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3NjaGVkdWxlZE1pY3JvdGFzayA9IGZhbHNlOworICAg
IHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworCisgICAgYXV0byBwZW5kaW5nQW5pbWF0aW9u
RXZlbnRzID0gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOworICAgIG1fcGVuZGluZ0FuaW1hdGlv
bkV2ZW50cy5jbGVhcigpOworCisgICAgZm9yIChhdXRvJiBwZW5kaW5nRXZlbnQgOiBwZW5kaW5n
QW5pbWF0aW9uRXZlbnRzKQorICAgICAgICBwZW5kaW5nRXZlbnQtPnRhcmdldCgpLT5kaXNwYXRj
aEV2ZW50KCpwZW5kaW5nRXZlbnQpOworfQorCiBTZWNvbmRzIFdlYkFuaW1hdGlvbjo6dGltZVRv
TmV4dFJlcXVpcmVkVGljayhTZWNvbmRzIHRpbWVsaW5lVGltZSkgY29uc3QKIHsKICAgICBpZiAo
IW1fdGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lIHx8ICFtX2VmZmVjdCB8fCAhbV9wbGF5YmFja1Jh
dGUpCkBAIC0yNjAsNCArMzA2LDIwIEBAIFN0cmluZyBXZWJBbmltYXRpb246OmRlc2NyaXB0aW9u
KCkKICAgICByZXR1cm4gIkFuaW1hdGlvbiI7CiB9CiAKK2NvbnN0IGNoYXIqIFdlYkFuaW1hdGlv
bjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJBbmltYXRpb24i
OworfQorCitib29sIFdlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuICFoYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9p
ZCBXZWJBbmltYXRpb246OnN0b3AoKQoreworICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKKyAgICBy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggYWU5YzI4ZDkzMGNlZGQz
YjE2ZGNlYTY3NTllMTI0NThjOWEzMjBjOS4uYzYwNjU5NTBhNjNiOWI1Y2QwZDJiODE5MDFkNzU3
ZjY5NWQ4YThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAt
MzYsMTEgKzM4LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvbkVm
ZmVjdDsKK2NsYXNzIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ7CiBjbGFzcyBBbmltYXRpb25UaW1l
bGluZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKLWNsYXNzIFdlYkFu
aW1hdGlvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkFuaW1hdGlvbj4geworY2xhc3Mg
V2ViQW5pbWF0aW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQW5pbWF0aW9uPiwgcHVi
bGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBB
bmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGluZSopOwogICAgIH5XZWJBbmltYXRpb24o
KTsKQEAgLTcwLDEzICs3MywzNCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgZGVzY3JpcHRpb24o
KTsKIAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpk
ZXJlZjsKKwogcHJpdmF0ZToKLSAgICBXZWJBbmltYXRpb24oKTsKKyAgICBXZWJBbmltYXRpb24o
RG9jdW1lbnQmKTsKKworICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgc3RkOjpvcHRpb25hbDxT
ZWNvbmRzPik7CisgICAgdm9pZCBzY2hlZHVsZU1pY3JvdGFza0lmTmVlZGVkKCk7CisgICAgdm9p
ZCBwZXJmb3JtTWljcm90YXNrcygpOwogCiAgICAgUmVmUHRyPEFuaW1hdGlvbkVmZmVjdD4gbV9l
ZmZlY3Q7CiAgICAgUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiBtX3RpbWVsaW5lOwogICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9zdGFydFRpbWU7CiAgICAgZG91YmxlIG1fcGxheWJhY2tS
YXRlIHsgMSB9OworICAgIFZlY3RvcjxSZWZQdHI8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4+IG1f
cGVuZGluZ0FuaW1hdGlvbkV2ZW50czsKKyAgICBib29sIG1faXNTdG9wcGVkOworICAgIGJvb2wg
bV9zY2hlZHVsZWRNaWNyb3Rhc2s7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgY2Fu
U3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3Rv
cCgpIGZpbmFsOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFj
ZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkFuaW1hdGlv
bkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJl
ZigpOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCmluZGV4IGZhMWM3ZjE1YzY2NDBmNWMzYzU0YmRk
MTFjMzRiMGQ3ODM3Nzc4NDUuLjk5NGI0N2U5YmIwOTRmOGY0NzZhMDhiOWJmZTk5YzMyNDc4YTQ5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCkBAIC0yNCwx
MiArMjQsMTIgQEAKICAqLwogCiBbCisgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViQW5pbWF0aW9ucywKICAgICBJbnRlcmZhY2VOYW1lPUFuaW1hdGlvbiwKLSAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9j
dW1lbnQsCiAgICAgQ29uc3RydWN0b3Iob3B0aW9uYWwgQW5pbWF0aW9uRWZmZWN0PyBlZmZlY3Qg
PSBudWxsLCBvcHRpb25hbCBBbmltYXRpb25UaW1lbGluZT8gdGltZWxpbmUpCi1dIGludGVyZmFj
ZSBXZWJBbmltYXRpb24geworXSBpbnRlcmZhY2UgV2ViQW5pbWF0aW9uIDogRXZlbnRUYXJnZXQg
ewogICAgIGF0dHJpYnV0ZSBBbmltYXRpb25FZmZlY3Q/IGVmZmVjdDsKICAgICBhdHRyaWJ1dGUg
QW5pbWF0aW9uVGltZWxpbmU/IHRpbWVsaW5lOwogICAgIFtJbXBsZW1lbnRlZEFzPWJpbmRpbmdz
U3RhcnRUaW1lXSBhdHRyaWJ1dGUgZG91YmxlPyBzdGFydFRpbWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA3MTE2ODliNjA1ZjJhYjFiZTVmZmE3NzA3NTk3
NTI1NGIyOGRlMmFlLi5hODE0NGQ4MGIyN2EwZTVmZTVkNmY1MjlhODNmZjNkMDQ5MGViZmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcg
QEAgVGV4dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVlJEaXNwbGF5CiBWaWRl
b1RyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVmlzdWFsVmlld3BvcnQKK1dlYkFu
aW1hdGlvbgogV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBU
RURfTUVESUEKIFdlYlNvY2tldAogV29ya2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWU5ZTZjYTI4OTAxZGFiMmY0ZTU0
MTg1YzhkMzYwYzkwMWYxN2MxNC4uYzU5NDY2N2RhZGQ3NDAzZjhlYzkyYjgwZWRiZTJmOTA2YjUy
ODkwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEyLTExICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBFbnF1ZXVlIGFu
ZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1OTcw
MTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
YmFzZSBXZWIgUGxhdGZvcm0gVGVzdHMgd2l0aCBzb21lIHByb2dyZXNzaW9ucyBiYXNlZCBvbiB0
aGUgSURMIGNoYW5nZXMuIFByb2dyZXNzaW9ucyBkdWUKKyAgICAgICAgdG8gZGlzcGF0Y2hpbmcg
ZXZlbnRzIHdpbGwgYmVjb21lIGFwcGFyZW50IHdoZW4gdGhlIG5leHQgcGF0Y2gsIHdoZXJlIHdl
IGRpc3BhdGNoIGFjdHVhbAorICAgICAgICBhbmltYXRpb24gcGxheWJhY2sgZXZlbnRzLCBsYW5k
cy4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0
aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTEyLTExICBEYXZpZCBRdWVzYWRh
ICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CiAKICAgICAgICAgVHVybiBvbiBFTkFCTEVfQVBQ
TElDQVRJT05fTUFOSUZFU1QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYi1h
bmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24v
aWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggNTc3ZmU3ZmM3NTFjNDdjNDkwMGIwYWU4ZTE0
NTA4MWFiZmM1MDlhNC4uMGNlZTFhODBjNzZiN2UzY2RmZDhjMjhhMWVmMTIxZjY4MmQ4M2M4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNl
cy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBl
Y3RlZC50eHQKQEAgLTEsMTMgKzEsOSBAQAogCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2UgYXV0
b21hdGVkIElETCB0ZXN0cyAKLUZBSUwgQW5pbWF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90eXBl
IG9mIEFuaW1hdGlvbiBpcyBub3QgRXZlbnRUYXJnZXQgZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0
aW9uIEV2ZW50VGFyZ2V0KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGJ1dCBnb3QgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IgorUEFTUyBBbmltYXRpb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
IFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBBbmltYXRpb24g
aW50ZXJmYWNlIG9iamVjdCBuYW1lIAotRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2Vx
dWFsczogcHJvdG90eXBlIG9mIEFuaW1hdGlvbi5wcm90b3R5cGUgaXMgbm90IEV2ZW50VGFyZ2V0
LnByb3RvdHlwZSBleHBlY3RlZCBvYmplY3QgIltvYmplY3QgRXZlbnRUYXJnZXRQcm90b3R5cGVd
IiBidXQgZ290IG9iamVjdCAiW29iamVjdCBPYmplY3RdIgorUEFTUyBBbmltYXRpb24gaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCiBG
QUlMIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCBhc3NlcnRfdHJ1ZTogVGhlIHBy
b3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImlkIiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZWZmZWN0IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329022</attachid>
            <date>2017-12-11 13:11:30 -0800</date>
            <delta_ts>2017-12-11 13:13:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171211221129.patch</filename>
            <type>text/plain</type>
            <size>17526</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQyYTNmMTZjYjg4ZjNk
OTVmMWVjYzJkNzY5ZDc5MzExMTIxNDVkYS4uZTM1NzY0YTc0YzEyZmY3MjU2MzFmZmYzNzZjNjMx
Yzg5ZjBmMTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVucXVldWUKKyAgICAgICAgc3Vj
aCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUgdGltZS4gVGhlIFdlYiBBbmlt
YXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0byBxdWV1ZSBhbmQgZGlzcGF0
Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24gaGFzIGEgImRvY3VtZW50IGZv
ciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24gdGhpcyBkb2N1bWVudC4KKyAg
ICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5pbWF0aW9uIHRpbWVsaW5lIGlz
IHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMKKyAgICAgICAgaXQgaGFzIGEg
ZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9jdW1lbnRUaW1lbGluZSBlbnF1
ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBiZSBkaXNwYXRjaGVkIHRocm91
Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uIFRoZXNlIGV2ZW50cyB3aWxs
IGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZlIHRpbWVsaW5lIHRpbWUgYmVm
b3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQg
Zm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBlbnF1ZXVlZCBvbiB0aGUgYW5pbWF0aW9uIGl0
c2VsZiBhbmQKKyAgICAgICAgZGlzcGF0Y2hlZCBhbG9uZyB3aXRoIERPTSBtYW5pcHVsYXRpb25z
LiBJbiBvdXIgaW1wbGVtZW50YXRpb24gTXV0YXRpb25PYnNlcnZlciB1c2VzIGEKKyAgICAgICAg
TWljcm90YXNrIHRvIG5vdGlmeSBpdHMgb2JzZXJ2ZXJzLCBzbyB3ZSBhbHNvIHVzZSBhIE1pY3Jv
dGFzayB0byBkZWxpdmVyIGV2ZW50cy4KKworICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6On5Eb2N1bWVu
dFRpbWVsaW5lKTogQ2xvc2UgdGhlIGV2ZW50IGRpc3BhdGNoIHRhc2sgcXVldWUgd2hlbiB0aGUK
KyAgICAgICAgZG9jdW1lbnQgdGltZWxpbmUgaXMgdG9ybiBkb3duLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBBZGQg
dGhlIHByb3ZpZGVkIGV2ZW50IHRvIHRoZQorICAgICAgICBwZW5kaW5nIGFuaW1hdGlvbiBldmVu
dHMgcXVldWUgYW5kLCBpZiBvbmUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGVucXVldWUg
YSB0YXNrIHRvCisgICAgICAgIGRpc3BhdGNoIGV2ZW50cyB1c2luZyBhIEdlbmVyaWNUYXNrUXVl
dWU8VGltZXI+LgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZl
bnRzKTogQ29tcGFyYXRvciB1c2VkIHRvIHNvcnQgZXZlbnRzIGluIHBlcmZvcm1FdmVudERpc3Bh
dGNoVGFzaygpCisgICAgICAgIHdoZXJlIGV2ZW50cyBhcmUgc29ydGVkIHN1Y2ggdGhhdCB1bnJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGNvbWUgZmlyc3QsIGFuZCB0aGVuIGZyb20gdGhlCisgICAg
ICAgIGVhcmxpZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMgdG8gdGhlIGxhdGVyIHJlc29sdmVk
IHRpbWVsaW5lIHRpbWVzLiBFdmVudHMgd2l0aCB1bnJlc29sdmVkCisgICAgICAgIHRpbWVsaW5l
IHRpbWVzIGFuZCBlcXVhbCByZXNvbHZlZCB0aW1lbGluZSB0aW1lcyBhcmUgc29ydGVkIGluIHRo
ZSBvcmRlciB0aGV5IHdlcmUgZW5xdWV1ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2spOiBNYWtlIGEgY29weSBvZiB0aGUgcGVu
ZGluZyBsaXN0IG9mCisgICAgICAgIGFuaW1hdGlvbiBldmVudHMsIGNsZWFyIHRoZSBsaXN0LCBy
dW4gYSBzdGFibGUgc29ydCBvZiB0aGUgbGlzdCBjb3B5IGFuZCBkaXNwYXRjaCB0aGUgZXZlbnRz
CisgICAgICAgIGluZGl2aWR1YWxseSBvbiB0aGVpciByZXNwZWN0aXZlIGFuaW1hdGlvbnMuCisg
ICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3Jl
YXRlKTogUGFzcyBpbiB0aGUgZG9jdW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24pOiBVc2UgdGhlIHByb3ZpZGVkIGRv
Y3VtZW50IHRvIGluaXRpYWxpemUgQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6
V2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudCk6IENyZWF0ZSBhbiBB
bmltYXRpb25QbGF5YmFja0V2ZW50IHdpdGgKKyAgICAgICAgdGhlIHByb3ZpZGVkIHR5cGUsIHRp
bWVsaW5lIHRpbWUgYW5kIGFuaW1hdGlvbiB0aW1lIGFuZCBlbnF1ZXVlIGl0IG9uIHRoZSBkb2N1
bWVudCB0aW1lbGluZSwKKyAgICAgICAgaWYgb25lIGlzIGF2YWlsYWJsZSwgb3Igb24gdGhpcyBh
bmltYXRpb24sIGVuc3VyaW5nIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIGl0IGlzIHNjaGVkdWxl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2NoZWR1bGVNaWNyb3Rhc2tJZk5l
ZWRlZCk6IFNjaGVkdWxlIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIHF1ZXVlZCBldmVudHMKKyAg
ICAgICAgaWYgb25lIHdhc24ndCBzY2hlZHVsZWQgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFza3MpOiBNYWtlIGEgY29weSBvZiB0aGUgbGlz
dCBvZiBxdWV1ZWQgZXZlbnRzLCBjbGVhciB0aGUKKyAgICAgICAgb3JpZ2luYWwsIGFuZCBkaXNw
YXRjaCBlYWNoIGV2ZW50IGluIHRoZSBxdWV1ZSBjb3B5LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnN0b3ApOgorICAgICAgICAqIGFuaW1hdGlv
bi9XZWJBbmltYXRpb24uaDogRGVmaW5lIFdlYkFuaW1hdGlvbiB0byBiZSBhbiBFdmVudFRhcmdl
dCBhbmQgYW4gQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRp
b24uaWRsOiBEZWZpbmUgV2ViQW5pbWF0aW9uIHRvIGJlIGFuIEV2ZW50VGFyZ2V0IGFuZCBhbiBB
Y3RpdmVET01PYmplY3QuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKwog
MjAxNy0xMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWIgQW5pbWF0aW9uc10gSW1wbGVtZW50IEFuaW1hdGlvblBsYXliYWNrRXZlbnQgYW5kIEFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5oCmluZGV4IDQ1ZmJlMmUxY2M1NWM5Y2U5
NDdjYWUzOGE5OTEyNmFiM2I5YmZlOTYuLjNlMmVkNzM5M2VhYWU1OTQyN2I5MzlkMzE0Yjc5NjAy
NGM5NmRkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25Q
bGF5YmFja0V2ZW50SW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25QbGF5YmFja0V2ZW50SW5pdC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkV2ZW50SW5pdC5oIgotI2luY2x1ZGUgIk9wdGlvbmFsLmgiCisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCmluZGV4IGM0ZGJhN2JiMjhmZWQwNGUz
YmIzNmJkZWJkNzFlOGI0OGY4Mzg3NjMuLjg3ZTBjN2Y3YzYyZjk4NThiNDVmNWNmNGY3Nzg0ZjU5
MDVlZmY1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgRG9jdW1lbnRUaW1lbGluZTo6RG9jdW1lbnRUaW1lbGlu
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXkKIERvY3VtZW50
VGltZWxpbmU6On5Eb2N1bWVudFRpbWVsaW5lKCkKIHsKICAgICBtX2ludmFsaWRhdGlvblRhc2tR
dWV1ZS5jbG9zZSgpOworICAgIG1fZXZlbnREaXNwYXRjaFRhc2tRdWV1ZS5jbG9zZSgpOwogfQog
CiB2b2lkIERvY3VtZW50VGltZWxpbmU6OmRldGFjaEZyb21Eb2N1bWVudCgpCkBAIC0yMTAsNiAr
MjExLDM5IEBAIGJvb2wgRG9jdW1lbnRUaW1lbGluZTo6cnVubmluZ0FuaW1hdGlvbnNGb3JFbGVt
ZW50QXJlQWxsQWNjZWxlcmF0ZWQoRWxlbWVudCYgZWxlCiAgICAgcmV0dXJuICFhbmltYXRpb25z
LmlzRW1wdHkoKTsKIH0KIAordm9pZCBEb2N1bWVudFRpbWVsaW5lOjplbnF1ZXVlQW5pbWF0aW9u
UGxheWJhY2tFdmVudChBbmltYXRpb25QbGF5YmFja0V2ZW50JiBldmVudCkKK3sKKyAgICBtX3Bl
bmRpbmdBbmltYXRpb25FdmVudHMuYXBwZW5kKCZldmVudCk7CisKKyAgICBpZiAoIW1fZXZlbnRE
aXNwYXRjaFRhc2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKSkKKyAgICAgICAgbV9ldmVudERpc3Bh
dGNoVGFza1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmRG9jdW1lbnRUaW1lbGluZTo6cGVy
Zm9ybUV2ZW50RGlzcGF0Y2hUYXNrLCB0aGlzKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBj
b21wYXJlQW5pbWF0aW9uUGxheWJhY2tFdmVudHMoY29uc3QgUmVmUHRyPFdlYkNvcmU6OkFuaW1h
dGlvblBsYXliYWNrRXZlbnQ+IGxocywgY29uc3QgUmVmUHRyPFdlYkNvcmU6OkFuaW1hdGlvblBs
YXliYWNrRXZlbnQ+IHJocykKK3sKKyAgICAvLyBTb3J0IHRoZSBldmVudHMgYnkgdGhlaXIgc2No
ZWR1bGVkIGV2ZW50IHRpbWUgc3VjaCB0aGF0IGV2ZW50cyB0aGF0IHdlcmUgc2NoZWR1bGVkIHRv
IG9jY3VyIGVhcmxpZXIsIHNvcnQgYmVmb3JlIGV2ZW50cyBzY2hlZHVsZWQgdG8gb2NjdXIgbGF0
ZXIKKyAgICAvLyBhbmQgZXZlbnRzIHdob3NlIHNjaGVkdWxlZCBldmVudCB0aW1lIGlzIHVucmVz
b2x2ZWQgc29ydCBiZWZvcmUgZXZlbnRzIHdpdGggYSByZXNvbHZlZCBzY2hlZHVsZWQgZXZlbnQg
dGltZS4KKyAgICBpZiAobGhzLT50aW1lbGluZVRpbWUoKSAmJiAhcmhzLT50aW1lbGluZVRpbWUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUoKSAm
JiByaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIWxo
cy0+dGltZWxpbmVUaW1lKCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBsaHMtPnRpbWVsaW5lVGltZSgpLnZhbHVlKCkgPCByaHMtPnRp
bWVsaW5lVGltZSgpLnZhbHVlKCk7Cit9CisKK3ZvaWQgRG9jdW1lbnRUaW1lbGluZTo6cGVyZm9y
bUV2ZW50RGlzcGF0Y2hUYXNrKCkKK3sKKyAgICBpZiAobV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nQW5pbWF0aW9u
RXZlbnRzID0gV1RGTW92ZShtX3BlbmRpbmdBbmltYXRpb25FdmVudHMpOworCisgICAgc3RkOjpz
dGFibGVfc29ydChwZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmJlZ2luKCksIHBlbmRpbmdBbmltYXRp
b25FdmVudHMuZW5kKCksIGNvbXBhcmVBbmltYXRpb25QbGF5YmFja0V2ZW50cyk7CisgICAgZm9y
IChhdXRvJiBwZW5kaW5nRXZlbnQgOiBwZW5kaW5nQW5pbWF0aW9uRXZlbnRzKQorICAgICAgICBw
ZW5kaW5nRXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2ZW50KCpwZW5kaW5nRXZlbnQpOworfQor
CiB2b2lkIERvY3VtZW50VGltZWxpbmU6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJ
U1BMQVlfTU9OSVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1
bWVudFRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5oCmluZGV4IGZmMWU1NzY2NjIwNDgzM2FkY2U2M2VmYmE0NDQzMGMyMDBkM2U2ZGMuLjk5Zjdh
MjQ4NTgwNjcwYTAwOTJjZmFmYmE4M2I4M2ZmZDg1YTViM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ7CiBjbGFzcyBSZW5k
ZXJFbGVtZW50OwogCiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lIGZpbmFsIDogcHVibGljIEFuaW1h
dGlvblRpbWVsaW5lCkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICBib29sIHJ1bm5pbmdB
bmltYXRpb25zRm9yRWxlbWVudEFyZUFsbEFjY2VsZXJhdGVkKEVsZW1lbnQmKTsKICAgICB2b2lk
IGRldGFjaEZyb21Eb2N1bWVudCgpOwogCisgICAgdm9pZCBlbnF1ZXVlQW5pbWF0aW9uUGxheWJh
Y2tFdmVudChBbmltYXRpb25QbGF5YmFja0V2ZW50Jik7CisKIHByaXZhdGU6CiAgICAgRG9jdW1l
bnRUaW1lbGluZShEb2N1bWVudCYsIFBsYXRmb3JtRGlzcGxheUlEKTsKIApAQCAtNjgsMTQgKzcx
LDE3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhbmltYXRpb25TY2hlZHVsZVRpbWVyRmlyZWQoKTsK
ICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbigpOwogICAgIHZvaWQgdXBkYXRl
QW5pbWF0aW9ucygpOworICAgIHZvaWQgcGVyZm9ybUV2ZW50RGlzcGF0Y2hUYXNrKCk7CiAKICAg
ICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgYm9vbCBtX3BhdXNlZCB7IGZhbHNl
IH07CiAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlZEN1cnJlbnRUaW1lOwogICAg
IEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1faW52YWxpZGF0aW9uVGFza1F1ZXVlOworICAgIEdl
bmVyaWNUYXNrUXVldWU8VGltZXI+IG1fZXZlbnREaXNwYXRjaFRhc2tRdWV1ZTsKICAgICBib29s
IG1fbmVlZHNVcGRhdGVBbmltYXRpb25TY2hlZHVsZSB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9h
bmltYXRpb25TY2hlZHVsZVRpbWVyOwogICAgIEhhc2hTZXQ8UmVmUHRyPFdlYkFuaW1hdGlvbj4+
IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25zUGVuZGluZ1J1bm5pbmdTdGF0ZUNoYW5nZTsKKyAgICBW
ZWN0b3I8UmVmUHRyPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+PiBtX3BlbmRpbmdBbmltYXRpb25F
dmVudHM7CiAKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9S
KQogICAgIC8vIE92ZXJyaWRlIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggNWQ2NzBlMWYxYzQ4MmFl
ZTdlMTkxYmIwNmE2NzQ0ZjJmNjUxY2Q4Zi4uNzdlODc5YWQxN2YxYTM3MmIxMDA0ODJlMGE0NjE2
ODYzYjFhNmQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKIAogI2luY2x1ZGUg
IkFuaW1hdGlvbkVmZmVjdC5oIgorI2luY2x1ZGUgIkFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCIK
ICNpbmNsdWRlICJBbmltYXRpb25UaW1lbGluZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKQEAgLTM2LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25UaW1lbGluZSog
dGltZWxpbmUpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFuaW1hdGlv
bigpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKGRvY3Vt
ZW50KSk7CiAKICAgICByZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogCkBAIC00Nyw4ICs0OCwx
MCBAQCBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVdl
YkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKCkKK1dlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKERv
Y3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQpCiB7Cisg
ICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigp
CkBAIC0yMTQsNiArMjE3LDM1IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRQbGF5YmFja1JhdGUo
ZG91YmxlIG5ld1BsYXliYWNrUmF0ZSkKICAgICAgICAgc2V0Q3VycmVudFRpbWUocHJldmlvdXNU
aW1lKTsKIH0KIAordm9pZCBXZWJBbmltYXRpb246OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjdXJy
ZW50VGltZSwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCit7CisgICAgYXV0
byBldmVudCA9IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjdXJyZW50VGlt
ZSwgdGltZWxpbmVUaW1lKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAgaWYg
KG1fdGltZWxpbmUgJiYgbV90aW1lbGluZS0+aXNEb2N1bWVudFRpbWVsaW5lKCkpIHsKKyAgICAg
ICAgLy8gSWYgYW5pbWF0aW9uIGhhcyBhIGRvY3VtZW50IGZvciB0aW1pbmcsIHRoZW4gYXBwZW5k
IGV2ZW50IHRvIGl0cyBkb2N1bWVudCBmb3IgdGltaW5nJ3MgcGVuZGluZyBhbmltYXRpb24gZXZl
bnQgcXVldWUgYWxvbmcKKyAgICAgICAgLy8gd2l0aCBpdHMgdGFyZ2V0LCBhbmltYXRpb24uIElm
IGFuaW1hdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggYW4gYWN0aXZlIHRpbWVsaW5lIHRoYXQgZGVm
aW5lcyBhIHByb2NlZHVyZSB0byBjb252ZXJ0IHRpbWVsaW5lIHRpbWVzCisgICAgICAgIC8vIHRv
IG9yaWdpbi1yZWxhdGl2ZSB0aW1lLCBsZXQgdGhlIHNjaGVkdWxlZCBldmVudCB0aW1lIGJlIHRo
ZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhhdCBwcm9jZWR1cmUgdG8gdGltZWxpbmUgdGltZS4gT3Ro
ZXJ3aXNlLCB0aGUKKyAgICAgICAgLy8gc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgYW4gdW5yZXNv
bHZlZCB0aW1lIHZhbHVlLgorICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigqbV90
aW1lbGluZSkuZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoV1RGTW92ZShldmVudCkpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE90aGVyd2lzZSwgcXVldWUgYSB0YXNrIHRvIGRpc3Bh
dGNoIGV2ZW50IGF0IGFuaW1hdGlvbi4gVGhlIHRhc2sgc291cmNlIGZvciB0aGlzIHRhc2sgaXMg
dGhlIERPTSBtYW5pcHVsYXRpb24gdGFzayBzb3VyY2UuCisgICAgICAgIG1fcGVuZGluZ0FuaW1h
dGlvbkV2ZW50cy5hcHBlbmQoV1RGTW92ZShldmVudCkpOworCisgICAgICAgIGlmIChtX3BlbmRp
bmdBbmltYXRpb25FdmVudHMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgICAgIGF1dG8gcGVuZGlu
Z0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CisgICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rp
dml0eSldKCkgeworICAgICAgICAgICAgICAgIGlmIChtX2lzU3RvcHBlZCkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgYXV0byBwZW5kaW5nQW5pbWF0aW9u
RXZlbnRzID0gV1RGTW92ZShtX3BlbmRpbmdBbmltYXRpb25FdmVudHMpOworICAgICAgICAgICAg
ICAgIGZvciAoYXV0byYgcGVuZGluZ0V2ZW50IDogcGVuZGluZ0FuaW1hdGlvbkV2ZW50cykKKyAg
ICAgICAgICAgICAgICAgICAgcGVuZGluZ0V2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudCgq
cGVuZGluZ0V2ZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorfQorCiBT
ZWNvbmRzIFdlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFJlcXVpcmVkVGljayhTZWNvbmRzIHRpbWVs
aW5lVGltZSkgY29uc3QKIHsKICAgICBpZiAoIW1fdGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lIHx8
ICFtX2VmZmVjdCB8fCAhbV9wbGF5YmFja1JhdGUpCkBAIC0yNjAsNCArMjkyLDIxIEBAIFN0cmlu
ZyBXZWJBbmltYXRpb246OmRlc2NyaXB0aW9uKCkKICAgICByZXR1cm4gIkFuaW1hdGlvbiI7CiB9
CiAKK2NvbnN0IGNoYXIqIFdlYkFuaW1hdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJBbmltYXRpb24iOworfQorCitib29sIFdlYkFuaW1hdGlvbjo6Y2Fu
U3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuICFoYXNQ
ZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBXZWJBbmltYXRpb246OnN0b3AoKQoreworICAg
IG1faXNTdG9wcGVkID0gdHJ1ZTsKKyAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOworICAg
IG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggYWU5YzI4
ZDkzMGNlZGQzYjE2ZGNlYTY3NTllMTI0NThjOWEzMjBjOS4uNWI0ZmYyYWNlM2U1MGRkMTM2ODQz
NzAzNmUxMWQ2ZjJkOWQ1MmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCisjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgpAQCAtMzYsMTEgKzM5LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1h
dGlvbkVmZmVjdDsKK2NsYXNzIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ7CiBjbGFzcyBBbmltYXRp
b25UaW1lbGluZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKLWNsYXNz
IFdlYkFuaW1hdGlvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkFuaW1hdGlvbj4gewor
Y2xhc3MgV2ViQW5pbWF0aW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQW5pbWF0aW9u
PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBjcmVhdGUoRG9jdW1l
bnQmLCBBbmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGluZSopOwogICAgIH5XZWJBbmlt
YXRpb24oKTsKQEAgLTcwLDEzICs3NCwzMSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgZGVzY3Jp
cHRpb24oKTsKIAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3Vu
dGVkOjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBXZWJBbmltYXRpb24oKTsKKyAgICBleHBsaWNp
dCBXZWJBbmltYXRpb24oRG9jdW1lbnQmKTsKIAorICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBs
YXliYWNrRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPik7CisgICAgCiAgICAgUmVmUHRyPEFuaW1hdGlvbkVmZmVj
dD4gbV9lZmZlY3Q7CiAgICAgUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiBtX3RpbWVsaW5lOwog
ICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9zdGFydFRpbWU7CiAgICAgZG91YmxlIG1fcGxh
eWJhY2tSYXRlIHsgMSB9OworICAgIFZlY3RvcjxSZWZQdHI8QW5pbWF0aW9uUGxheWJhY2tFdmVu
dD4+IG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50czsKKyAgICBib29sIG1faXNTdG9wcGVkOworCisg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNp
b24oKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKworICAgIC8vIEV2ZW50
VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBXZWJBbmltYXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7
IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBB
Y3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlk
bAppbmRleCBmYTFjN2YxNWM2NjQwZjVjM2M1NGJkZDExYzM0YjBkNzgzNzc3ODQ1Li45OTRiNDdl
OWJiMDk0ZjhmNDc2YTA4YjliZmU5OWMzMjQ3OGE0OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAgKi8KIAogWworICAg
IEFjdGl2ZURPTU9iamVjdCwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnMsCiAg
ICAgSW50ZXJmYWNlTmFtZT1BbmltYXRpb24sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKICAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPURvY3VtZW50LAogICAgIENvbnN0cnVjdG9yKG9w
dGlvbmFsIEFuaW1hdGlvbkVmZmVjdD8gZWZmZWN0ID0gbnVsbCwgb3B0aW9uYWwgQW5pbWF0aW9u
VGltZWxpbmU/IHRpbWVsaW5lKQotXSBpbnRlcmZhY2UgV2ViQW5pbWF0aW9uIHsKK10gaW50ZXJm
YWNlIFdlYkFuaW1hdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAgICBhdHRyaWJ1dGUgQW5pbWF0aW9u
RWZmZWN0PyBlZmZlY3Q7CiAgICAgYXR0cmlidXRlIEFuaW1hdGlvblRpbWVsaW5lPyB0aW1lbGlu
ZTsKICAgICBbSW1wbGVtZW50ZWRBcz1iaW5kaW5nc1N0YXJ0VGltZV0gYXR0cmlidXRlIGRvdWJs
ZT8gc3RhcnRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5k
ZXggNzExNjg5YjYwNWYyYWIxYmU1ZmZhNzcwNzU5NzUyNTRiMjhkZTJhZS4uYTgxNDRkODBiMjdh
MGU1ZmU1ZDZmNTI5YTgzZmYzZDA0OTBlYmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluCkBAIC00NCw2ICs0NCw3IEBAIFRleHRUcmFja0xpc3QgY29uZGl0aW9u
YWw9VklERU9fVFJBQ0sKIFZSRGlzcGxheQogVmlkZW9UcmFja0xpc3QgY29uZGl0aW9uYWw9VklE
RU9fVFJBQ0sKIFZpc3VhbFZpZXdwb3J0CitXZWJBbmltYXRpb24KIFdlYktpdE1lZGlhS2V5U2Vz
c2lvbiBjb25kaXRpb25hbD1MRUdBQ1lfRU5DUllQVEVEX01FRElBCiBXZWJTb2NrZXQKIFdvcmtl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDllOWU2Y2EyODkwMWRhYjJmNGU1NDE4NWM4ZDM2MGM5MDFmMTdjMTQuLmM1OTQ2
NjdkYWRkNzQwM2Y4ZWM5MmI4MGVkYmUyZjkwNmI1Mjg5MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxNy0xMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWIgQW5pbWF0aW9uc10gRW5xdWV1ZSBhbmQgZGlzcGF0Y2ggYW5pbWF0aW9uIGV2ZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjU3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTk3MDEwMz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2UgV2ViIFBsYXRmb3JtIFRlc3RzIHdp
dGggc29tZSBwcm9ncmVzc2lvbnMgYmFzZWQgb24gdGhlIElETCBjaGFuZ2VzLiBQcm9ncmVzc2lv
bnMgZHVlCisgICAgICAgIHRvIGRpc3BhdGNoaW5nIGV2ZW50cyB3aWxsIGJlY29tZSBhcHBhcmVu
dCB3aGVuIHRoZSBuZXh0IHBhdGNoLCB3aGVyZSB3ZSBkaXNwYXRjaCBhY3R1YWwKKyAgICAgICAg
YW5pbWF0aW9uIHBsYXliYWNrIGV2ZW50cywgbGFuZHMuCisKKyAgICAgICAgKiBodHRwL3dwdC93
ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4
dDoKKwogMjAxNy0xMi0xMSAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29t
PgogCiAgICAgICAgIFR1cm4gb24gRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1h
dGlvbi9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYi1h
bmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDU3N2ZlN2ZjNzUxYzQ3YzQ5MDBiMGFlOGUxNDUwODFhYmZjNTA5YTQuLjBjZWUxYTgwYzc2
YjdlM2NkZmQ4YzI4YTFlZjEyMWY2ODJkODNjOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVy
ZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDkgQEAK
IAogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlIGF1dG9tYXRlZCBJREwgdGVzdHMgCi1GQUlMIEFu
aW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBBbmltYXRpb24gaXMgbm90IEV2ZW50
VGFyZ2V0IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudFRhcmdldCgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIKK1BBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLUZB
SUwgQW5pbWF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBBbmltYXRp
b24ucHJvdG90eXBlIGlzIG5vdCBFdmVudFRhcmdldC5wcm90b3R5cGUgZXhwZWN0ZWQgb2JqZWN0
ICJbb2JqZWN0IEV2ZW50VGFyZ2V0UHJvdG90eXBlXSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3Qg
T2JqZWN0XSIKK1BBU1MgQW5pbWF0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBBbmltYXRpb24gaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogRkFJTCBBbmltYXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBh
IHByb3BlcnR5ICJpZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgQW5pbWF0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIGVmZmVjdCAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329023</attachid>
            <date>2017-12-11 13:14:00 -0800</date>
            <delta_ts>2017-12-11 14:08:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171211221358.patch</filename>
            <type>text/plain</type>
            <size>17000</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQyYTNmMTZjYjg4ZjNk
OTVmMWVjYzJkNzY5ZDc5MzExMTIxNDVkYS4uZTM1NzY0YTc0YzEyZmY3MjU2MzFmZmYzNzZjNjMx
Yzg5ZjBmMTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVucXVldWUKKyAgICAgICAgc3Vj
aCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUgdGltZS4gVGhlIFdlYiBBbmlt
YXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0byBxdWV1ZSBhbmQgZGlzcGF0
Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24gaGFzIGEgImRvY3VtZW50IGZv
ciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24gdGhpcyBkb2N1bWVudC4KKyAg
ICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5pbWF0aW9uIHRpbWVsaW5lIGlz
IHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMKKyAgICAgICAgaXQgaGFzIGEg
ZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9jdW1lbnRUaW1lbGluZSBlbnF1
ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBiZSBkaXNwYXRjaGVkIHRocm91
Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uIFRoZXNlIGV2ZW50cyB3aWxs
IGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZlIHRpbWVsaW5lIHRpbWUgYmVm
b3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQg
Zm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBlbnF1ZXVlZCBvbiB0aGUgYW5pbWF0aW9uIGl0
c2VsZiBhbmQKKyAgICAgICAgZGlzcGF0Y2hlZCBhbG9uZyB3aXRoIERPTSBtYW5pcHVsYXRpb25z
LiBJbiBvdXIgaW1wbGVtZW50YXRpb24gTXV0YXRpb25PYnNlcnZlciB1c2VzIGEKKyAgICAgICAg
TWljcm90YXNrIHRvIG5vdGlmeSBpdHMgb2JzZXJ2ZXJzLCBzbyB3ZSBhbHNvIHVzZSBhIE1pY3Jv
dGFzayB0byBkZWxpdmVyIGV2ZW50cy4KKworICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6On5Eb2N1bWVu
dFRpbWVsaW5lKTogQ2xvc2UgdGhlIGV2ZW50IGRpc3BhdGNoIHRhc2sgcXVldWUgd2hlbiB0aGUK
KyAgICAgICAgZG9jdW1lbnQgdGltZWxpbmUgaXMgdG9ybiBkb3duLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBBZGQg
dGhlIHByb3ZpZGVkIGV2ZW50IHRvIHRoZQorICAgICAgICBwZW5kaW5nIGFuaW1hdGlvbiBldmVu
dHMgcXVldWUgYW5kLCBpZiBvbmUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGVucXVldWUg
YSB0YXNrIHRvCisgICAgICAgIGRpc3BhdGNoIGV2ZW50cyB1c2luZyBhIEdlbmVyaWNUYXNrUXVl
dWU8VGltZXI+LgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZl
bnRzKTogQ29tcGFyYXRvciB1c2VkIHRvIHNvcnQgZXZlbnRzIGluIHBlcmZvcm1FdmVudERpc3Bh
dGNoVGFzaygpCisgICAgICAgIHdoZXJlIGV2ZW50cyBhcmUgc29ydGVkIHN1Y2ggdGhhdCB1bnJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGNvbWUgZmlyc3QsIGFuZCB0aGVuIGZyb20gdGhlCisgICAg
ICAgIGVhcmxpZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMgdG8gdGhlIGxhdGVyIHJlc29sdmVk
IHRpbWVsaW5lIHRpbWVzLiBFdmVudHMgd2l0aCB1bnJlc29sdmVkCisgICAgICAgIHRpbWVsaW5l
IHRpbWVzIGFuZCBlcXVhbCByZXNvbHZlZCB0aW1lbGluZSB0aW1lcyBhcmUgc29ydGVkIGluIHRo
ZSBvcmRlciB0aGV5IHdlcmUgZW5xdWV1ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2spOiBNYWtlIGEgY29weSBvZiB0aGUgcGVu
ZGluZyBsaXN0IG9mCisgICAgICAgIGFuaW1hdGlvbiBldmVudHMsIGNsZWFyIHRoZSBsaXN0LCBy
dW4gYSBzdGFibGUgc29ydCBvZiB0aGUgbGlzdCBjb3B5IGFuZCBkaXNwYXRjaCB0aGUgZXZlbnRz
CisgICAgICAgIGluZGl2aWR1YWxseSBvbiB0aGVpciByZXNwZWN0aXZlIGFuaW1hdGlvbnMuCisg
ICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3Jl
YXRlKTogUGFzcyBpbiB0aGUgZG9jdW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24pOiBVc2UgdGhlIHByb3ZpZGVkIGRv
Y3VtZW50IHRvIGluaXRpYWxpemUgQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6
V2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudCk6IENyZWF0ZSBhbiBB
bmltYXRpb25QbGF5YmFja0V2ZW50IHdpdGgKKyAgICAgICAgdGhlIHByb3ZpZGVkIHR5cGUsIHRp
bWVsaW5lIHRpbWUgYW5kIGFuaW1hdGlvbiB0aW1lIGFuZCBlbnF1ZXVlIGl0IG9uIHRoZSBkb2N1
bWVudCB0aW1lbGluZSwKKyAgICAgICAgaWYgb25lIGlzIGF2YWlsYWJsZSwgb3Igb24gdGhpcyBh
bmltYXRpb24sIGVuc3VyaW5nIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIGl0IGlzIHNjaGVkdWxl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2NoZWR1bGVNaWNyb3Rhc2tJZk5l
ZWRlZCk6IFNjaGVkdWxlIGEgbWljcm90YXNrIHRvIGRpc3BhdGNoIHF1ZXVlZCBldmVudHMKKyAg
ICAgICAgaWYgb25lIHdhc24ndCBzY2hlZHVsZWQgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6cGVyZm9ybU1pY3JvdGFza3MpOiBNYWtlIGEgY29weSBvZiB0aGUgbGlz
dCBvZiBxdWV1ZWQgZXZlbnRzLCBjbGVhciB0aGUKKyAgICAgICAgb3JpZ2luYWwsIGFuZCBkaXNw
YXRjaCBlYWNoIGV2ZW50IGluIHRoZSBxdWV1ZSBjb3B5LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnN0b3ApOgorICAgICAgICAqIGFuaW1hdGlv
bi9XZWJBbmltYXRpb24uaDogRGVmaW5lIFdlYkFuaW1hdGlvbiB0byBiZSBhbiBFdmVudFRhcmdl
dCBhbmQgYW4gQWN0aXZlRE9NT2JqZWN0LgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRp
b24uaWRsOiBEZWZpbmUgV2ViQW5pbWF0aW9uIHRvIGJlIGFuIEV2ZW50VGFyZ2V0IGFuZCBhbiBB
Y3RpdmVET01PYmplY3QuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKwog
MjAxNy0xMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWIgQW5pbWF0aW9uc10gSW1wbGVtZW50IEFuaW1hdGlvblBsYXliYWNrRXZlbnQgYW5kIEFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHAKaW5kZXggYzRkYmE3YmIyOGZlZDA0ZTNiYjM2YmRlYmQ3MWU4YjQ4
ZjgzODc2My4uODdlMGM3ZjdjNjJmOTg1OGI0NWY1Y2Y0Zjc3ODRmNTkwNWVmZjVjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNTksNiAr
NTksNyBAQCBEb2N1bWVudFRpbWVsaW5lOjpEb2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiBkb2N1
bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheQogRG9jdW1lbnRUaW1lbGluZTo6fkRvY3Vt
ZW50VGltZWxpbmUoKQogewogICAgIG1faW52YWxpZGF0aW9uVGFza1F1ZXVlLmNsb3NlKCk7Cisg
ICAgbV9ldmVudERpc3BhdGNoVGFza1F1ZXVlLmNsb3NlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRU
aW1lbGluZTo6ZGV0YWNoRnJvbURvY3VtZW50KCkKQEAgLTIxMCw2ICsyMTEsMzkgQEAgYm9vbCBE
b2N1bWVudFRpbWVsaW5lOjpydW5uaW5nQW5pbWF0aW9uc0ZvckVsZW1lbnRBcmVBbGxBY2NlbGVy
YXRlZChFbGVtZW50JiBlbGUKICAgICByZXR1cm4gIWFuaW1hdGlvbnMuaXNFbXB0eSgpOwogfQog
Cit2b2lkIERvY3VtZW50VGltZWxpbmU6OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KEFu
aW1hdGlvblBsYXliYWNrRXZlbnQmIGV2ZW50KQoreworICAgIG1fcGVuZGluZ0FuaW1hdGlvbkV2
ZW50cy5hcHBlbmQoJmV2ZW50KTsKKworICAgIGlmICghbV9ldmVudERpc3BhdGNoVGFza1F1ZXVl
Lmhhc1BlbmRpbmdUYXNrcygpKQorICAgICAgICBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWUuZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRj
aFRhc2ssIHRoaXMpKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVBbmltYXRpb25Q
bGF5YmFja0V2ZW50cyhjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVu
dD4gbGhzLCBjb25zdCBSZWZQdHI8V2ViQ29yZTo6QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gcmhz
KQoreworICAgIC8vIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZlbnQgdGlt
ZSBzdWNoIHRoYXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFybGllciwg
c29ydCBiZWZvcmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgorICAgIC8vIGFuZCBl
dmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9y
ZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAgIGlmIChs
aHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmIHJocy0+dGltZWxpbmVU
aW1lKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUo
KSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCkudmFs
dWUoKTsKK30KKwordm9pZCBEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNwYXRjaFRh
c2soKQoreworICAgIGlmIChtX3BlbmRpbmdBbmltYXRpb25FdmVudHMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBXVEZNb3Zl
KG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7CisKKyAgICBzdGQ6OnN0YWJsZV9zb3J0KHBlbmRp
bmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5lbmQoKSwg
Y29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZlbnRzKTsKKyAgICBmb3IgKGF1dG8mIHBlbmRpbmdF
dmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVudHMpCisgICAgICAgIHBlbmRpbmdFdmVudC0+dGFy
Z2V0KCktPmRpc3BhdGNoRXZlbnQoKnBlbmRpbmdFdmVudCk7Cit9CisKIHZvaWQgRG9jdW1lbnRU
aW1lbGluZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkKIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKaW5kZXggZmYxZTU3
NjY2MjA0ODMzYWRjZTYzZWZiYTQ0NDMwYzIwMGQzZTZkYy4uOTlmN2EyNDg1ODA2NzBhMDA5MmNm
YWZiYTgzYjgzZmZkODVhNWIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5oCkBAIC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgQW5pbWF0aW9uUGxheWJhY2tFdmVudDsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKIGNs
YXNzIERvY3VtZW50VGltZWxpbmUgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uVGltZWxpbmUKQEAg
LTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIGJvb2wgcnVubmluZ0FuaW1hdGlvbnNGb3JFbGVt
ZW50QXJlQWxsQWNjZWxlcmF0ZWQoRWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbURvY3Vt
ZW50KCk7CiAKKyAgICB2b2lkIGVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KEFuaW1hdGlv
blBsYXliYWNrRXZlbnQmKTsKKwogcHJpdmF0ZToKICAgICBEb2N1bWVudFRpbWVsaW5lKERvY3Vt
ZW50JiwgUGxhdGZvcm1EaXNwbGF5SUQpOwogCkBAIC02OCwxNCArNzEsMTcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGFuaW1hdGlvblNjaGVkdWxlVGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1
bGVBbmltYXRpb25SZXNvbHV0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKCk7Cisg
ICAgdm9pZCBwZXJmb3JtRXZlbnREaXNwYXRjaFRhc2soKTsKIAogICAgIFJlZlB0cjxEb2N1bWVu
dD4gbV9kb2N1bWVudDsKICAgICBib29sIG1fcGF1c2VkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1
ZTxUaW1lcj4gbV9pbnZhbGlkYXRpb25UYXNrUXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxU
aW1lcj4gbV9ldmVudERpc3BhdGNoVGFza1F1ZXVlOwogICAgIGJvb2wgbV9uZWVkc1VwZGF0ZUFu
aW1hdGlvblNjaGVkdWxlIHsgZmFsc2UgfTsKICAgICBUaW1lciBtX2FuaW1hdGlvblNjaGVkdWxl
VGltZXI7CiAgICAgSGFzaFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gbV9hY2NlbGVyYXRlZEFu
aW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlOworICAgIFZlY3RvcjxSZWZQdHI8QW5p
bWF0aW9uUGxheWJhY2tFdmVudD4+IG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50czsKIAogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgLy8gT3ZlcnJp
ZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCA1ZDY3MGUxZjFjNDgyYWVlN2UxOTFiYjA2YTY3NDRm
MmY2NTFjZDhmLi43N2U4NzlhZDE3ZjFhMzcyYjEwMDQ4MmUwYTQ2MTY4NjNiMWE2ZDRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIldlYkFuaW1hdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0
LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIgogI2luY2x1ZGUgIkFuaW1h
dGlvblRpbWVsaW5lLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJLZXlmcmFt
ZUVmZmVjdC5oIgpAQCAtMzYsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxX
ZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5p
bWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWVsaW5lKiB0aW1lbGluZSkKIHsKLSAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKCkpOworICAgIGF1dG8g
cmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsKIAogICAgIHJl
c3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAKQEAgLTQ3LDggKzQ4LDEwIEBAIFJlZjxXZWJBbmlt
YXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5pbWF0aW9u
RWZmZWN0KiBlZmZlCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViQW5pbWF0aW9uOjpXZWJB
bmltYXRpb24oKQorV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsKKyAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKIH0KIAogV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKQEAgLTIxNCw2ICsyMTcs
MzUgQEAgdm9pZCBXZWJBbmltYXRpb246OnNldFBsYXliYWNrUmF0ZShkb3VibGUgbmV3UGxheWJh
Y2tSYXRlKQogICAgICAgICBzZXRDdXJyZW50VGltZShwcmV2aW91c1RpbWUpOwogfQogCit2b2lk
IFdlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSkKK3sKKyAgICBhdXRvIGV2ZW50ID0gQW5pbWF0
aW9uUGxheWJhY2tFdmVudDo6Y3JlYXRlKHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUp
OworICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CisKKyAgICBpZiAobV90aW1lbGluZSAmJiBt
X3RpbWVsaW5lLT5pc0RvY3VtZW50VGltZWxpbmUoKSkgeworICAgICAgICAvLyBJZiBhbmltYXRp
b24gaGFzIGEgZG9jdW1lbnQgZm9yIHRpbWluZywgdGhlbiBhcHBlbmQgZXZlbnQgdG8gaXRzIGRv
Y3VtZW50IGZvciB0aW1pbmcncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZSBhbG9uZwor
ICAgICAgICAvLyB3aXRoIGl0cyB0YXJnZXQsIGFuaW1hdGlvbi4gSWYgYW5pbWF0aW9uIGlzIGFz
c29jaWF0ZWQgd2l0aCBhbiBhY3RpdmUgdGltZWxpbmUgdGhhdCBkZWZpbmVzIGEgcHJvY2VkdXJl
IHRvIGNvbnZlcnQgdGltZWxpbmUgdGltZXMKKyAgICAgICAgLy8gdG8gb3JpZ2luLXJlbGF0aXZl
IHRpbWUsIGxldCB0aGUgc2NoZWR1bGVkIGV2ZW50IHRpbWUgYmUgdGhlIHJlc3VsdCBvZiBhcHBs
eWluZyB0aGF0IHByb2NlZHVyZSB0byB0aW1lbGluZSB0aW1lLiBPdGhlcndpc2UsIHRoZQorICAg
ICAgICAvLyBzY2hlZHVsZWQgZXZlbnQgdGltZSBpcyBhbiB1bnJlc29sdmVkIHRpbWUgdmFsdWUu
CisgICAgICAgIGRvd25jYXN0PERvY3VtZW50VGltZWxpbmU+KCptX3RpbWVsaW5lKS5lbnF1ZXVl
QW5pbWF0aW9uUGxheWJhY2tFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgLy8gT3RoZXJ3aXNlLCBxdWV1ZSBhIHRhc2sgdG8gZGlzcGF0Y2ggZXZlbnQgYXQgYW5p
bWF0aW9uLiBUaGUgdGFzayBzb3VyY2UgZm9yIHRoaXMgdGFzayBpcyB0aGUgRE9NIG1hbmlwdWxh
dGlvbiB0YXNrIHNvdXJjZS4KKyAgICAgICAgbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmFwcGVu
ZChXVEZNb3ZlKGV2ZW50KSk7CisKKyAgICAgICAgaWYgKG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50
cy5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgYXV0byBwZW5kaW5nQWN0aXZpdHkgPSBtYWtl
UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1faXNTdG9wcGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgICAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBXVEZNb3Zl
KG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBw
ZW5kaW5nRXZlbnQgOiBwZW5kaW5nQW5pbWF0aW9uRXZlbnRzKQorICAgICAgICAgICAgICAgICAg
ICBwZW5kaW5nRXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2ZW50KCpwZW5kaW5nRXZlbnQpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIFNlY29uZHMgV2ViQW5pbWF0
aW9uOjp0aW1lVG9OZXh0UmVxdWlyZWRUaWNrKFNlY29uZHMgdGltZWxpbmVUaW1lKSBjb25zdAog
ewogICAgIGlmICghbV90aW1lbGluZSB8fCAhbV9zdGFydFRpbWUgfHwgIW1fZWZmZWN0IHx8ICFt
X3BsYXliYWNrUmF0ZSkKQEAgLTI2MCw0ICsyOTIsMjEgQEAgU3RyaW5nIFdlYkFuaW1hdGlvbjo6
ZGVzY3JpcHRpb24oKQogICAgIHJldHVybiAiQW5pbWF0aW9uIjsKIH0KIAorY29uc3QgY2hhciog
V2ViQW5pbWF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IkFuaW1hdGlvbiI7Cit9CisKK2Jvb2wgV2ViQW5pbWF0aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWhhc1BlbmRpbmdBY3Rpdml0eSgp
OworfQorCit2b2lkIFdlYkFuaW1hdGlvbjo6c3RvcCgpCit7CisgICAgbV9pc1N0b3BwZWQgPSB0
cnVlOworICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisgICAgbV9wZW5kaW5nQW5pbWF0
aW9uRXZlbnRzLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBhZTljMjhkOTMwY2VkZDNiMTZkY2Vh
Njc1OWUxMjQ1OGM5YTMyMGM5Li41Mjk2NjZjYjU4NWIzNGFhZWFjOTQxMThmMTlhMTFhMmJmZWU5
MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0yNSw2ICsy
NSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC0zNiwxMSAr
MzgsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5pbWF0aW9uRWZmZWN0Owor
Y2xhc3MgQW5pbWF0aW9uUGxheWJhY2tFdmVudDsKIGNsYXNzIEFuaW1hdGlvblRpbWVsaW5lOwog
Y2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAotY2xhc3MgV2ViQW5pbWF0aW9u
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQW5pbWF0aW9uPiB7CitjbGFzcyBXZWJBbmlt
YXRpb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJBbmltYXRpb24+LCBwdWJsaWMgRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJBbmltYXRpb24+IGNyZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlv
bkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5lKik7CiAgICAgfldlYkFuaW1hdGlvbigpOwpAQCAt
NzAsMTMgKzczLDMxIEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpOwogCisg
ICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwor
CiBwcml2YXRlOgotICAgIFdlYkFuaW1hdGlvbigpOworICAgIGV4cGxpY2l0IFdlYkFuaW1hdGlv
bihEb2N1bWVudCYpOwogCisgICAgdm9pZCBlbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+LCBzdGQ6Om9wdGlvbmFs
PFNlY29uZHM+KTsKKyAgICAKICAgICBSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiBtX2VmZmVjdDsK
ICAgICBSZWZQdHI8QW5pbWF0aW9uVGltZWxpbmU+IG1fdGltZWxpbmU7CiAgICAgc3RkOjpvcHRp
b25hbDxTZWNvbmRzPiBtX3N0YXJ0VGltZTsKICAgICBkb3VibGUgbV9wbGF5YmFja1JhdGUgeyAx
IH07CisgICAgVmVjdG9yPFJlZlB0cjxBbmltYXRpb25QbGF5YmFja0V2ZW50Pj4gbV9wZW5kaW5n
QW5pbWF0aW9uRXZlbnRzOworICAgIGJvb2wgbV9pc1N0b3BwZWQ7CisKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOworICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFdlYkFuaW1hdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFy
Z2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVj
dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCmluZGV4IGZhMWM3
ZjE1YzY2NDBmNWMzYzU0YmRkMTFjMzRiMGQ3ODM3Nzc4NDUuLjk5NGI0N2U5YmIwOTRmOGY0NzZh
MDhiOWJmZTk5YzMyNDc4YTQ5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9XZWJBbmltYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmlt
YXRpb24uaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKICAqLwogCiBbCisgICAgQWN0aXZlRE9NT2Jq
ZWN0LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQW5pbWF0aW9ucywKICAgICBJbnRlcmZhY2VO
YW1lPUFuaW1hdGlvbiwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIENvbnN0
cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiAgICAgQ29uc3RydWN0b3Iob3B0aW9uYWwgQW5pbWF0
aW9uRWZmZWN0PyBlZmZlY3QgPSBudWxsLCBvcHRpb25hbCBBbmltYXRpb25UaW1lbGluZT8gdGlt
ZWxpbmUpCi1dIGludGVyZmFjZSBXZWJBbmltYXRpb24geworXSBpbnRlcmZhY2UgV2ViQW5pbWF0
aW9uIDogRXZlbnRUYXJnZXQgewogICAgIGF0dHJpYnV0ZSBBbmltYXRpb25FZmZlY3Q/IGVmZmVj
dDsKICAgICBhdHRyaWJ1dGUgQW5pbWF0aW9uVGltZWxpbmU/IHRpbWVsaW5lOwogICAgIFtJbXBs
ZW1lbnRlZEFzPWJpbmRpbmdzU3RhcnRUaW1lXSBhdHRyaWJ1dGUgZG91YmxlPyBzdGFydFRpbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA3MTE2ODliNjA1
ZjJhYjFiZTVmZmE3NzA3NTk3NTI1NGIyOGRlMmFlLi5hODE0NGQ4MGIyN2EwZTVmZTVkNmY1Mjlh
ODNmZjNkMDQ5MGViZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rvcnku
aW4KQEAgLTQ0LDYgKzQ0LDcgQEAgVGV4dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFD
SwogVlJEaXNwbGF5CiBWaWRlb1RyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVmlz
dWFsVmlld3BvcnQKK1dlYkFuaW1hdGlvbgogV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlv
bmFsPUxFR0FDWV9FTkNSWVBURURfTUVESUEKIFdlYlNvY2tldAogV29ya2VyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWU5
ZTZjYTI4OTAxZGFiMmY0ZTU0MTg1YzhkMzYwYzkwMWYxN2MxNC4uYzU5NDY2N2RhZGQ3NDAzZjhl
YzkyYjgwZWRiZTJmOTA2YjUyODkwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEyLTEx
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmlt
YXRpb25zXSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlYmFzZSBXZWIgUGxhdGZvcm0gVGVzdHMgd2l0aCBzb21lIHByb2dy
ZXNzaW9ucyBiYXNlZCBvbiB0aGUgSURMIGNoYW5nZXMuIFByb2dyZXNzaW9ucyBkdWUKKyAgICAg
ICAgdG8gZGlzcGF0Y2hpbmcgZXZlbnRzIHdpbGwgYmVjb21lIGFwcGFyZW50IHdoZW4gdGhlIG5l
eHQgcGF0Y2gsIHdoZXJlIHdlIGRpc3BhdGNoIGFjdHVhbAorICAgICAgICBhbmltYXRpb24gcGxh
eWJhY2sgZXZlbnRzLCBsYW5kcy4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYi1hbmltYXRpb25z
L2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTEy
LTExICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CiAKICAgICAgICAg
VHVybiBvbiBFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5l
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50
ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggNTc3ZmU3ZmM3
NTFjNDdjNDkwMGIwYWU4ZTE0NTA4MWFiZmM1MDlhNC4uMGNlZTFhODBjNzZiN2UzY2RmZDhjMjhh
MWVmMTIxZjY4MmQ4M2M4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFu
aW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRp
b24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOSBAQAogCiBQQVNTIEFuaW1h
dGlvbiBpbnRlcmZhY2UgYXV0b21hdGVkIElETCB0ZXN0cyAKLUZBSUwgQW5pbWF0aW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0
X2VxdWFsczogcHJvdG90eXBlIG9mIEFuaW1hdGlvbiBpcyBub3QgRXZlbnRUYXJnZXQgZXhwZWN0
ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IgorUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IAogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotRkFJTCBBbmltYXRpb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90eXBlIG9mIEFuaW1hdGlvbi5wcm90b3R5cGUg
aXMgbm90IEV2ZW50VGFyZ2V0LnByb3RvdHlwZSBleHBlY3RlZCBvYmplY3QgIltvYmplY3QgRXZl
bnRUYXJnZXRQcm90b3R5cGVdIiBidXQgZ290IG9iamVjdCAiW29iamVjdCBPYmplY3RdIgorUEFT
UyBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkgCiBGQUlMIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCBh
c3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImlk
IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgZWZmZWN0IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329033</attachid>
            <date>2017-12-11 14:08:27 -0800</date>
            <delta_ts>2017-12-11 22:14:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171211230825.patch</filename>
            <type>text/plain</type>
            <size>16664</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQyYTNmMTZjYjg4ZjNk
OTVmMWVjYzJkNzY5ZDc5MzExMTIxNDVkYS4uMDgxYmVmOGMxODdjNTFiMWY3MmExMTYyMzEwZTcz
NjlhZWUxYjdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVucXVldWUKKyAgICAgICAgc3Vj
aCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUgdGltZS4gVGhlIFdlYiBBbmlt
YXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0byBxdWV1ZSBhbmQgZGlzcGF0
Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24gaGFzIGEgImRvY3VtZW50IGZv
ciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24gdGhpcyBkb2N1bWVudC4KKyAg
ICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5pbWF0aW9uIHRpbWVsaW5lIGlz
IHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMKKyAgICAgICAgaXQgaGFzIGEg
ZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9jdW1lbnRUaW1lbGluZSBlbnF1
ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBiZSBkaXNwYXRjaGVkIHRocm91
Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uIFRoZXNlIGV2ZW50cyB3aWxs
IGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZlIHRpbWVsaW5lIHRpbWUgYmVm
b3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQg
Zm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBkaXNwYXRjaGVkIGFzIGEgc3RhbmRhbG9uZSB0
YXNrLgorCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6fkRvY3VtZW50VGltZWxpbmUpOiBDbG9zZSB0
aGUgZXZlbnQgZGlzcGF0Y2ggdGFzayBxdWV1ZSB3aGVuIHRoZQorICAgICAgICBkb2N1bWVudCB0
aW1lbGluZSBpcyB0b3JuIGRvd24uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
OjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudCk6IEFkZCB0aGUgcHJvdmlkZWQgZXZlbnQg
dG8gdGhlCisgICAgICAgIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50cyBxdWV1ZSBhbmQsIGlmIG9u
ZSBoYXNuJ3QgYmVlbiByZWdpc3RlcmVkIHlldCwgZW5xdWV1ZSBhIHRhc2sgdG8KKyAgICAgICAg
ZGlzcGF0Y2ggZXZlbnRzIHVzaW5nIGEgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uCisgICAgICAg
IChXZWJDb3JlOjpjb21wYXJlQW5pbWF0aW9uUGxheWJhY2tFdmVudHMpOiBDb21wYXJhdG9yIHVz
ZWQgdG8gc29ydCBldmVudHMgaW4gcGVyZm9ybUV2ZW50RGlzcGF0Y2hUYXNrKCkKKyAgICAgICAg
d2hlcmUgZXZlbnRzIGFyZSBzb3J0ZWQgc3VjaCB0aGF0IHVucmVzb2x2ZWQgdGltZWxpbmUgdGlt
ZXMgY29tZSBmaXJzdCwgYW5kIHRoZW4gZnJvbSB0aGUKKyAgICAgICAgZWFybGllciByZXNvbHZl
ZCB0aW1lbGluZSB0aW1lcyB0byB0aGUgbGF0ZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMuIEV2
ZW50cyB3aXRoIHVucmVzb2x2ZWQKKyAgICAgICAgdGltZWxpbmUgdGltZXMgYW5kIGVxdWFsIHJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGFyZSBzb3J0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBl
bnF1ZXVlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OnBlcmZvcm1FdmVu
dERpc3BhdGNoVGFzayk6IFJ1biBhIHN0YWJsZSBzb3J0IG9uIGEgY29weSBvZiB0aGUgcGVuZGlu
ZyBsaXN0CisgICAgICAgIG9mIGV2ZW50cyB0byBkaXNwYXRjaCBhbmQgZGlzcGF0Y2ggdGhlIGV2
ZW50cyBpbmRpdmlkdWFsbHkgb24gdGhlaXIgcmVzcGVjdGl2ZSBhbmltYXRpb25zLgorICAgICAg
ICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmNyZWF0ZSk6
IFBhc3MgaW4gdGhlIGRvY3VtZW50IHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKTogVXNlIHRoZSBwcm92aWRlZCBkb2N1bWVu
dCB0byBpbml0aWFsaXplIEFjdGl2ZURPTU9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBDcmVhdGUgYW4gQW5pbWF0
aW9uUGxheWJhY2tFdmVudCB3aXRoCisgICAgICAgIHRoZSBwcm92aWRlZCB0eXBlLCB0aW1lbGlu
ZSB0aW1lIGFuZCBhbmltYXRpb24gdGltZSBhbmQgZW5xdWV1ZSBpdCBvbiB0aGUgZG9jdW1lbnQg
dGltZWxpbmUsCisgICAgICAgIGlmIG9uZSBpcyBhdmFpbGFibGUsIG9yIGRpc3BhdGNoIG9uIHRo
aXMgYW5pbWF0aW9uIGFzIGEgc3RhbmRhbG9uZSB0YXNrLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjphY2NlbGVyYXRlZFJ1bm5pbmdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c3RvcCk6CisgICAgICAg
ICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOiBEZWZpbmUgV2ViQW5pbWF0aW9uIHRvIGJlIGFu
IEV2ZW50VGFyZ2V0IGFuZCBhbiBBY3RpdmVET01PYmplY3QuCisgICAgICAgICogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5pZGw6IERlZmluZSBXZWJBbmltYXRpb24gdG8gYmUgYW4gRXZlbnRUYXJn
ZXQgYW5kIGFuIEFjdGl2ZURPTU9iamVjdC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluOgorCiAyMDE3LTEyLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBJbXBsZW1lbnQgQW5pbWF0aW9uUGxheWJhY2tF
dmVudCBhbmQgQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBjNGRiYTdiYjI4ZmVkMDRlM2JiMzZi
ZGViZDcxZThiNDhmODM4NzYzLi5lZDkxMDRjZWZkYTJjNTFlMzdhMjcxMjE0MGMyNmNkYmZjOGZi
ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3Bw
CkBAIC01OSw2ICs1OSw3IEBAIERvY3VtZW50VGltZWxpbmU6OkRvY3VtZW50VGltZWxpbmUoRG9j
dW1lbnQmIGRvY3VtZW50LCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5CiBEb2N1bWVudFRpbWVs
aW5lOjp+RG9jdW1lbnRUaW1lbGluZSgpCiB7CiAgICAgbV9pbnZhbGlkYXRpb25UYXNrUXVldWUu
Y2xvc2UoKTsKKyAgICBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWUuY2xvc2UoKTsKIH0KIAogdm9p
ZCBEb2N1bWVudFRpbWVsaW5lOjpkZXRhY2hGcm9tRG9jdW1lbnQoKQpAQCAtMjEwLDYgKzIxMSwz
OSBAQCBib29sIERvY3VtZW50VGltZWxpbmU6OnJ1bm5pbmdBbmltYXRpb25zRm9yRWxlbWVudEFy
ZUFsbEFjY2VsZXJhdGVkKEVsZW1lbnQmIGVsZQogICAgIHJldHVybiAhYW5pbWF0aW9ucy5pc0Vt
cHR5KCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXli
YWNrRXZlbnQoQW5pbWF0aW9uUGxheWJhY2tFdmVudCYgZXZlbnQpCit7CisgICAgbV9wZW5kaW5n
QW5pbWF0aW9uRXZlbnRzLmFwcGVuZChldmVudCk7CisKKyAgICBpZiAoIW1fZXZlbnREaXNwYXRj
aFRhc2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKSkKKyAgICAgICAgbV9ldmVudERpc3BhdGNoVGFz
a1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmRG9jdW1lbnRUaW1lbGluZTo6cGVyZm9ybUV2
ZW50RGlzcGF0Y2hUYXNrLCB0aGlzKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJl
QW5pbWF0aW9uUGxheWJhY2tFdmVudHMoY29uc3QgUmVmPFdlYkNvcmU6OkFuaW1hdGlvblBsYXli
YWNrRXZlbnQ+JiBsaHMsIGNvbnN0IFJlZjxXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50
PiYgcmhzKQoreworICAgIC8vIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZl
bnQgdGltZSBzdWNoIHRoYXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFy
bGllciwgc29ydCBiZWZvcmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgorICAgIC8v
IGFuZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0
IGJlZm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAg
IGlmIChsaHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmIHJocy0+dGlt
ZWxpbmVUaW1lKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghbGhzLT50aW1lbGlu
ZVRpbWUoKSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1l
KCkudmFsdWUoKTsKK30KKwordm9pZCBEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNw
YXRjaFRhc2soKQoreworICAgIGlmIChtX3BlbmRpbmdBbmltYXRpb25FdmVudHMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBX
VEZNb3ZlKG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7CisKKyAgICBzdGQ6OnN0YWJsZV9zb3J0
KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5l
bmQoKSwgY29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZlbnRzKTsKKyAgICBmb3IgKGF1dG8mIHBl
bmRpbmdFdmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVudHMpCisgICAgICAgIHBlbmRpbmdFdmVu
dC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50KTsKK30KKwogdm9pZCBEb2N1
bWVudFRpbWVsaW5lOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKQogewogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAppbmRleCBm
ZjFlNTc2NjYyMDQ4MzNhZGNlNjNlZmJhNDQ0MzBjMjAwZDNlNmRjLi4xNzNjM2RlNmNkOTVlYzRi
MTNlNmE2ODhkMDUzODYwN2VmMjRlOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50OwogY2xhc3MgUmVuZGVyRWxlbWVudDsK
IAogY2xhc3MgRG9jdW1lbnRUaW1lbGluZSBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25UaW1lbGlu
ZQpAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBydW5uaW5nQW5pbWF0aW9uc0Zv
ckVsZW1lbnRBcmVBbGxBY2NlbGVyYXRlZChFbGVtZW50Jik7CiAgICAgdm9pZCBkZXRhY2hGcm9t
RG9jdW1lbnQoKTsKIAorICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoQW5p
bWF0aW9uUGxheWJhY2tFdmVudCYpOworCiBwcml2YXRlOgogICAgIERvY3VtZW50VGltZWxpbmUo
RG9jdW1lbnQmLCBQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTY4LDE0ICs3MSwxNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uU2NoZWR1bGVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBz
Y2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMo
KTsKKyAgICB2b2lkIHBlcmZvcm1FdmVudERpc3BhdGNoVGFzaygpOwogCiAgICAgUmVmUHRyPERv
Y3VtZW50PiBtX2RvY3VtZW50OwogICAgIGJvb2wgbV9wYXVzZWQgeyBmYWxzZSB9OwogICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9jYWNoZWRDdXJyZW50VGltZTsKICAgICBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPiBtX2ludmFsaWRhdGlvblRhc2tRdWV1ZTsKKyAgICBHZW5lcmljVGFza1F1
ZXVlPFRpbWVyPiBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWU7CiAgICAgYm9vbCBtX25lZWRzVXBk
YXRlQW5pbWF0aW9uU2NoZWR1bGUgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fYW5pbWF0aW9uU2No
ZWR1bGVUaW1lcjsKICAgICBIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FjY2VsZXJh
dGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7CisgICAgVmVjdG9yPFJlZjxB
bmltYXRpb25QbGF5YmFja0V2ZW50Pj4gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOwogCiAjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICAvLyBPdmVy
cmlkZSBmb3IgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDVkNjcwZTFmMWM0ODJhZWU3ZTE5MWJiMDZhNjc0
NGYyZjY1MWNkOGYuLjJlNmI3Y2ZhMDM1Y2MzMDIxYzNmMmMzYmExNjk4ZjVjODFlYWEzZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25FZmZl
Y3QuaCIKKyNpbmNsdWRlICJBbmltYXRpb25QbGF5YmFja0V2ZW50LmgiCiAjaW5jbHVkZSAiQW5p
bWF0aW9uVGltZWxpbmUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIktleWZy
YW1lRWZmZWN0LmgiCkBAIC0zNiw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVm
PFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBB
bmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5lKQogewot
ICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oKSk7CisgICAgYXV0
byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFuaW1hdGlvbihkb2N1bWVudCkpOwogCiAgICAg
cmVzdWx0LT5zZXRFZmZlY3QoZWZmZWN0KTsKIApAQCAtNDcsOCArNDgsMTAgQEAgUmVmPFdlYkFu
aW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmltYXRp
b25FZmZlY3QqIGVmZmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJBbmltYXRpb246Oldl
YkFuaW1hdGlvbigpCitXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogeworICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQpAQCAtMjE0LDYgKzIx
NywzMiBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBuZXdQbGF5
YmFja1JhdGUpCiAgICAgICAgIHNldEN1cnJlbnRUaW1lKHByZXZpb3VzVGltZSk7CiB9CiAKK3Zv
aWQgV2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQoreworICAgIGF1dG8gZXZlbnQgPSBBbmlt
YXRpb25QbGF5YmFja0V2ZW50OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRpbWVsaW5lVGlt
ZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKKworICAgIGlmIChpczxEb2N1bWVudFRp
bWVsaW5lPihtX3RpbWVsaW5lKSkgeworICAgICAgICAvLyBJZiBhbmltYXRpb24gaGFzIGEgZG9j
dW1lbnQgZm9yIHRpbWluZywgdGhlbiBhcHBlbmQgZXZlbnQgdG8gaXRzIGRvY3VtZW50IGZvciB0
aW1pbmcncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZSBhbG9uZworICAgICAgICAvLyB3
aXRoIGl0cyB0YXJnZXQsIGFuaW1hdGlvbi4gSWYgYW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQgd2l0
aCBhbiBhY3RpdmUgdGltZWxpbmUgdGhhdCBkZWZpbmVzIGEgcHJvY2VkdXJlIHRvIGNvbnZlcnQg
dGltZWxpbmUgdGltZXMKKyAgICAgICAgLy8gdG8gb3JpZ2luLXJlbGF0aXZlIHRpbWUsIGxldCB0
aGUgc2NoZWR1bGVkIGV2ZW50IHRpbWUgYmUgdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGF0IHBy
b2NlZHVyZSB0byB0aW1lbGluZSB0aW1lLiBPdGhlcndpc2UsIHRoZQorICAgICAgICAvLyBzY2hl
ZHVsZWQgZXZlbnQgdGltZSBpcyBhbiB1bnJlc29sdmVkIHRpbWUgdmFsdWUuCisgICAgICAgIGRv
d25jYXN0PERvY3VtZW50VGltZWxpbmU+KCptX3RpbWVsaW5lKS5lbnF1ZXVlQW5pbWF0aW9uUGxh
eWJhY2tFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gT3Ro
ZXJ3aXNlLCBxdWV1ZSBhIHRhc2sgdG8gZGlzcGF0Y2ggZXZlbnQgYXQgYW5pbWF0aW9uLiBUaGUg
dGFzayBzb3VyY2UgZm9yIHRoaXMgdGFzayBpcyB0aGUgRE9NIG1hbmlwdWxhdGlvbiB0YXNrIHNv
dXJjZS4KKyAgICAgICAgbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzLmFwcGVuZChXVEZNb3ZlKGV2
ZW50KSk7CisKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKCkgeworICAgICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBwZW5k
aW5nQW5pbWF0aW9uRXZlbnRzID0gV1RGTW92ZShtX3BlbmRpbmdBbmltYXRpb25FdmVudHMpOwor
ICAgICAgICAgICAgZm9yIChhdXRvJiBwZW5kaW5nRXZlbnQgOiBwZW5kaW5nQW5pbWF0aW9uRXZl
bnRzKQorICAgICAgICAgICAgICAgIHBlbmRpbmdFdmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZl
bnQocGVuZGluZ0V2ZW50KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBTZWNvbmRzIFdlYkFu
aW1hdGlvbjo6dGltZVRvTmV4dFJlcXVpcmVkVGljayhTZWNvbmRzIHRpbWVsaW5lVGltZSkgY29u
c3QKIHsKICAgICBpZiAoIW1fdGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lIHx8ICFtX2VmZmVjdCB8
fCAhbV9wbGF5YmFja1JhdGUpCkBAIC0yNDUsNyArMjc0LDcgQEAgdm9pZCBXZWJBbmltYXRpb246
OnJlc29sdmUoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlKQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6
YWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFuZ2UoKQogewotICAgIGlmIChtX3RpbWVsaW5l
ICYmIG1fdGltZWxpbmUtPmlzRG9jdW1lbnRUaW1lbGluZSgpKQorICAgIGlmIChpczxEb2N1bWVu
dFRpbWVsaW5lPihtX3RpbWVsaW5lKSkKICAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnRUaW1lbGlu
ZT4oKm1fdGltZWxpbmUpLmFuaW1hdGlvbkFjY2VsZXJhdGVkUnVubmluZ1N0YXRlRGlkQ2hhbmdl
KCp0aGlzKTsKIH0KIApAQCAtMjYwLDQgKzI4OSwyMSBAQCBTdHJpbmcgV2ViQW5pbWF0aW9uOjpk
ZXNjcmlwdGlvbigpCiAgICAgcmV0dXJuICJBbmltYXRpb24iOwogfQogCitjb25zdCBjaGFyKiBX
ZWJBbmltYXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
QW5pbWF0aW9uIjsKK30KKworYm9vbCBXZWJBbmltYXRpb246OmNhblN1c3BlbmRGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKSBjb25zdAoreworICAgIHJldHVybiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7
Cit9CisKK3ZvaWQgV2ViQW5pbWF0aW9uOjpzdG9wKCkKK3sKKyAgICBtX2lzU3RvcHBlZCA9IHRy
dWU7CisgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKKyAgICBtX3BlbmRpbmdBbmltYXRp
b25FdmVudHMuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IGFlOWMyOGQ5MzBjZWRkM2IxNmRjZWE2
NzU5ZTEyNDU4YzlhMzIwYzkuLmIxZGJiNWQ1ZDI3MjljNjA0MTE1MzVjNDM4NmI1YjY4MzJkMjE0
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKQEAgLTI1LDYgKzI1
LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTM2LDExICsz
OCwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25FZmZlY3Q7Citj
bGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50OwogY2xhc3MgQW5pbWF0aW9uVGltZWxpbmU7CiBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCi1jbGFzcyBXZWJBbmltYXRpb24g
ZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJBbmltYXRpb24+IHsKK2NsYXNzIFdlYkFuaW1h
dGlvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkFuaW1hdGlvbj4sIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgQW5pbWF0aW9u
RWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKICAgICB+V2ViQW5pbWF0aW9uKCk7CkBAIC03
MCwxMyArNzMsMzEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCk7CiAKKyAg
ICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisK
IHByaXZhdGU6Ci0gICAgV2ViQW5pbWF0aW9uKCk7CisgICAgZXhwbGljaXQgV2ViQW5pbWF0aW9u
KERvY3VtZW50Jik7CiAKKyAgICB2b2lkIGVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4sIHN0ZDo6b3B0aW9uYWw8
U2Vjb25kcz4pOworICAgIAogICAgIFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+IG1fZWZmZWN0Owog
ICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1lbGluZTsKICAgICBzdGQ6Om9wdGlv
bmFsPFNlY29uZHM+IG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZSB7IDEg
fTsKKyAgICBWZWN0b3I8UmVmPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+PiBtX3BlbmRpbmdBbmlt
YXRpb25FdmVudHM7CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CisKKyAgICAvLyBB
Y3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworCisgICAgLy8gRXZlbnRUYXJnZXQK
KyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFdlYkFuaW1hdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCmluZGV4
IGZhMWM3ZjE1YzY2NDBmNWMzYzU0YmRkMTFjMzRiMGQ3ODM3Nzc4NDUuLjk5NGI0N2U5YmIwOTRm
OGY0NzZhMDhiOWJmZTk5YzMyNDc4YTQ5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKICAqLwogCiBbCisgICAgQWN0aXZl
RE9NT2JqZWN0LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQW5pbWF0aW9ucywKICAgICBJbnRl
cmZhY2VOYW1lPUFuaW1hdGlvbiwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAg
IENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiAgICAgQ29uc3RydWN0b3Iob3B0aW9uYWwg
QW5pbWF0aW9uRWZmZWN0PyBlZmZlY3QgPSBudWxsLCBvcHRpb25hbCBBbmltYXRpb25UaW1lbGlu
ZT8gdGltZWxpbmUpCi1dIGludGVyZmFjZSBXZWJBbmltYXRpb24geworXSBpbnRlcmZhY2UgV2Vi
QW5pbWF0aW9uIDogRXZlbnRUYXJnZXQgewogICAgIGF0dHJpYnV0ZSBBbmltYXRpb25FZmZlY3Q/
IGVmZmVjdDsKICAgICBhdHRyaWJ1dGUgQW5pbWF0aW9uVGltZWxpbmU/IHRpbWVsaW5lOwogICAg
IFtJbXBsZW1lbnRlZEFzPWJpbmRpbmdzU3RhcnRUaW1lXSBhdHRyaWJ1dGUgZG91YmxlPyBzdGFy
dFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5
LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA3MTE2
ODliNjA1ZjJhYjFiZTVmZmE3NzA3NTk3NTI1NGIyOGRlMmFlLi5hODE0NGQ4MGIyN2EwZTVmZTVk
NmY1MjlhODNmZjNkMDQ5MGViZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgVGV4dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURF
T19UUkFDSwogVlJEaXNwbGF5CiBWaWRlb1RyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFD
SwogVmlzdWFsVmlld3BvcnQKK1dlYkFuaW1hdGlvbgogV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGNv
bmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBURURfTUVESUEKIFdlYlNvY2tldAogV29ya2VyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggOWU5ZTZjYTI4OTAxZGFiMmY0ZTU0MTg1YzhkMzYwYzkwMWYxN2MxNC4uYzU5NDY2N2RhZGQ3
NDAzZjhlYzkyYjgwZWRiZTJmOTA2YjUyODkwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3
LTEyLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YiBBbmltYXRpb25zXSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZSBXZWIgUGxhdGZvcm0gVGVzdHMgd2l0aCBzb21l
IHByb2dyZXNzaW9ucyBiYXNlZCBvbiB0aGUgSURMIGNoYW5nZXMuIFByb2dyZXNzaW9ucyBkdWUK
KyAgICAgICAgdG8gZGlzcGF0Y2hpbmcgZXZlbnRzIHdpbGwgYmVjb21lIGFwcGFyZW50IHdoZW4g
dGhlIG5leHQgcGF0Y2gsIHdoZXJlIHdlIGRpc3BhdGNoIGFjdHVhbAorICAgICAgICBhbmltYXRp
b24gcGxheWJhY2sgZXZlbnRzLCBsYW5kcy4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYi1hbmlt
YXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0OgorCiAy
MDE3LTEyLTExICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVHVybiBvbiBFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2lk
bGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlv
bnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggNTc3
ZmU3ZmM3NTFjNDdjNDkwMGIwYWU4ZTE0NTA4MWFiZmM1MDlhNC4uMGNlZTFhODBjNzZiN2UzY2Rm
ZDhjMjhhMWVmMTIxZjY4MmQ4M2M4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9B
bmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOSBAQAogCiBQQVNT
IEFuaW1hdGlvbiBpbnRlcmZhY2UgYXV0b21hdGVkIElETCB0ZXN0cyAKLUZBSUwgQW5pbWF0aW9u
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3Qg
YXNzZXJ0X2VxdWFsczogcHJvdG90eXBlIG9mIEFuaW1hdGlvbiBpcyBub3QgRXZlbnRUYXJnZXQg
ZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IgorUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIAogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lIAotRkFJTCBBbmlt
YXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90eXBlIG9mIEFuaW1hdGlvbi5wcm90
b3R5cGUgaXMgbm90IEV2ZW50VGFyZ2V0LnByb3RvdHlwZSBleHBlY3RlZCBvYmplY3QgIltvYmpl
Y3QgRXZlbnRUYXJnZXRQcm90b3R5cGVdIiBidXQgZ290IG9iamVjdCAiW29iamVjdCBPYmplY3Rd
IgorUEFTUyBBbmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgCiBGQUlMIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpZCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgImlkIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgZWZmZWN0IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329090</attachid>
            <date>2017-12-11 22:14:50 -0800</date>
            <delta_ts>2017-12-12 10:55:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180657-20171212071449.patch</filename>
            <type>text/plain</type>
            <size>16330</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQyYTNmMTZjYjg4ZjNk
OTVmMWVjYzJkNzY5ZDc5MzExMTIxNDVkYS4uMDgxYmVmOGMxODdjNTFiMWY3MmExMTYyMzEwZTcz
NjlhZWUxYjdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTEyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnF1ZXVlIGFuZCBkaXNwYXRjaCBhbmltYXRpb24gZXZlbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1OTcwMTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQgaW50ZXJmYWNlLCB3ZSBuZWVkIGEgd2F5IHRvIGVucXVldWUKKyAgICAgICAgc3Vj
aCBldmVudHMgZm9yIGRpc3BhdGNoIGF0IHRoZSBvcHBvcnR1bmUgdGltZS4gVGhlIFdlYiBBbmlt
YXRpb25zIHNwZWMgZGVmaW5lcyB0d28gd2F5cworICAgICAgICB0byBxdWV1ZSBhbmQgZGlzcGF0
Y2ggZXZlbnRzLgorCisgICAgICAgIElmIHRoZSBhbmltYXRpb24gaGFzIGEgImRvY3VtZW50IGZv
ciB0aW1pbmciLCBpdCBzaG91bGQgZW5xdWV1ZSBldmVudHMgb24gdGhpcyBkb2N1bWVudC4KKyAg
ICAgICAgSW4gb3VyIGltcGxlbWVudGF0aW9uLCBpZiB0aGUgYW5pbWF0aW9uIHRpbWVsaW5lIGlz
IHNldCB0byBhIERvY3VtZW50VGltZWxpbmUsIHRoYXQgbWVhbnMKKyAgICAgICAgaXQgaGFzIGEg
ZG9jdW1lbnQgZm9yIHRpbWluZywgYW5kIHdlIGxldCB0aGUgRG9jdW1lbnRUaW1lbGluZSBlbnF1
ZXVlIHRob3NlIGV2ZW50cywgd2hpY2gKKyAgICAgICAgd2lsbCBiZSBkaXNwYXRjaGVkIHRocm91
Z2ggYSBkZWRpY2F0ZWQgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uIFRoZXNlIGV2ZW50cyB3aWxs
IGJlIHNvcnRlZAorICAgICAgICBieSB0aGVpciByZXNwZWN0aXZlIHRpbWVsaW5lIHRpbWUgYmVm
b3JlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQg
Zm9yIHRpbWluZywgZXZlbnRzIHNob3VsZCBiZSBkaXNwYXRjaGVkIGFzIGEgc3RhbmRhbG9uZSB0
YXNrLgorCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6fkRvY3VtZW50VGltZWxpbmUpOiBDbG9zZSB0
aGUgZXZlbnQgZGlzcGF0Y2ggdGFzayBxdWV1ZSB3aGVuIHRoZQorICAgICAgICBkb2N1bWVudCB0
aW1lbGluZSBpcyB0b3JuIGRvd24uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
OjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudCk6IEFkZCB0aGUgcHJvdmlkZWQgZXZlbnQg
dG8gdGhlCisgICAgICAgIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50cyBxdWV1ZSBhbmQsIGlmIG9u
ZSBoYXNuJ3QgYmVlbiByZWdpc3RlcmVkIHlldCwgZW5xdWV1ZSBhIHRhc2sgdG8KKyAgICAgICAg
ZGlzcGF0Y2ggZXZlbnRzIHVzaW5nIGEgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4uCisgICAgICAg
IChXZWJDb3JlOjpjb21wYXJlQW5pbWF0aW9uUGxheWJhY2tFdmVudHMpOiBDb21wYXJhdG9yIHVz
ZWQgdG8gc29ydCBldmVudHMgaW4gcGVyZm9ybUV2ZW50RGlzcGF0Y2hUYXNrKCkKKyAgICAgICAg
d2hlcmUgZXZlbnRzIGFyZSBzb3J0ZWQgc3VjaCB0aGF0IHVucmVzb2x2ZWQgdGltZWxpbmUgdGlt
ZXMgY29tZSBmaXJzdCwgYW5kIHRoZW4gZnJvbSB0aGUKKyAgICAgICAgZWFybGllciByZXNvbHZl
ZCB0aW1lbGluZSB0aW1lcyB0byB0aGUgbGF0ZXIgcmVzb2x2ZWQgdGltZWxpbmUgdGltZXMuIEV2
ZW50cyB3aXRoIHVucmVzb2x2ZWQKKyAgICAgICAgdGltZWxpbmUgdGltZXMgYW5kIGVxdWFsIHJl
c29sdmVkIHRpbWVsaW5lIHRpbWVzIGFyZSBzb3J0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBl
bnF1ZXVlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OnBlcmZvcm1FdmVu
dERpc3BhdGNoVGFzayk6IFJ1biBhIHN0YWJsZSBzb3J0IG9uIGEgY29weSBvZiB0aGUgcGVuZGlu
ZyBsaXN0CisgICAgICAgIG9mIGV2ZW50cyB0byBkaXNwYXRjaCBhbmQgZGlzcGF0Y2ggdGhlIGV2
ZW50cyBpbmRpdmlkdWFsbHkgb24gdGhlaXIgcmVzcGVjdGl2ZSBhbmltYXRpb25zLgorICAgICAg
ICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmNyZWF0ZSk6
IFBhc3MgaW4gdGhlIGRvY3VtZW50IHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKTogVXNlIHRoZSBwcm92aWRlZCBkb2N1bWVu
dCB0byBpbml0aWFsaXplIEFjdGl2ZURPTU9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOiBDcmVhdGUgYW4gQW5pbWF0
aW9uUGxheWJhY2tFdmVudCB3aXRoCisgICAgICAgIHRoZSBwcm92aWRlZCB0eXBlLCB0aW1lbGlu
ZSB0aW1lIGFuZCBhbmltYXRpb24gdGltZSBhbmQgZW5xdWV1ZSBpdCBvbiB0aGUgZG9jdW1lbnQg
dGltZWxpbmUsCisgICAgICAgIGlmIG9uZSBpcyBhdmFpbGFibGUsIG9yIGRpc3BhdGNoIG9uIHRo
aXMgYW5pbWF0aW9uIGFzIGEgc3RhbmRhbG9uZSB0YXNrLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjphY2NlbGVyYXRlZFJ1bm5pbmdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c3RvcCk6CisgICAgICAg
ICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOiBEZWZpbmUgV2ViQW5pbWF0aW9uIHRvIGJlIGFu
IEV2ZW50VGFyZ2V0IGFuZCBhbiBBY3RpdmVET01PYmplY3QuCisgICAgICAgICogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5pZGw6IERlZmluZSBXZWJBbmltYXRpb24gdG8gYmUgYW4gRXZlbnRUYXJn
ZXQgYW5kIGFuIEFjdGl2ZURPTU9iamVjdC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluOgorCiAyMDE3LTEyLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBJbXBsZW1lbnQgQW5pbWF0aW9uUGxheWJhY2tF
dmVudCBhbmQgQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBjNGRiYTdiYjI4ZmVkMDRlM2JiMzZi
ZGViZDcxZThiNDhmODM4NzYzLi5lZDkxMDRjZWZkYTJjNTFlMzdhMjcxMjE0MGMyNmNkYmZjOGZi
ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3Bw
CkBAIC01OSw2ICs1OSw3IEBAIERvY3VtZW50VGltZWxpbmU6OkRvY3VtZW50VGltZWxpbmUoRG9j
dW1lbnQmIGRvY3VtZW50LCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5CiBEb2N1bWVudFRpbWVs
aW5lOjp+RG9jdW1lbnRUaW1lbGluZSgpCiB7CiAgICAgbV9pbnZhbGlkYXRpb25UYXNrUXVldWUu
Y2xvc2UoKTsKKyAgICBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWUuY2xvc2UoKTsKIH0KIAogdm9p
ZCBEb2N1bWVudFRpbWVsaW5lOjpkZXRhY2hGcm9tRG9jdW1lbnQoKQpAQCAtMjEwLDYgKzIxMSwz
OSBAQCBib29sIERvY3VtZW50VGltZWxpbmU6OnJ1bm5pbmdBbmltYXRpb25zRm9yRWxlbWVudEFy
ZUFsbEFjY2VsZXJhdGVkKEVsZW1lbnQmIGVsZQogICAgIHJldHVybiAhYW5pbWF0aW9ucy5pc0Vt
cHR5KCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnRUaW1lbGluZTo6ZW5xdWV1ZUFuaW1hdGlvblBsYXli
YWNrRXZlbnQoQW5pbWF0aW9uUGxheWJhY2tFdmVudCYgZXZlbnQpCit7CisgICAgbV9wZW5kaW5n
QW5pbWF0aW9uRXZlbnRzLmFwcGVuZChldmVudCk7CisKKyAgICBpZiAoIW1fZXZlbnREaXNwYXRj
aFRhc2tRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKSkKKyAgICAgICAgbV9ldmVudERpc3BhdGNoVGFz
a1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmRG9jdW1lbnRUaW1lbGluZTo6cGVyZm9ybUV2
ZW50RGlzcGF0Y2hUYXNrLCB0aGlzKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJl
QW5pbWF0aW9uUGxheWJhY2tFdmVudHMoY29uc3QgUmVmPFdlYkNvcmU6OkFuaW1hdGlvblBsYXli
YWNrRXZlbnQ+JiBsaHMsIGNvbnN0IFJlZjxXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50
PiYgcmhzKQoreworICAgIC8vIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZl
bnQgdGltZSBzdWNoIHRoYXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFy
bGllciwgc29ydCBiZWZvcmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgorICAgIC8v
IGFuZCBldmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0
IGJlZm9yZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgorICAg
IGlmIChsaHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmIHJocy0+dGlt
ZWxpbmVUaW1lKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghbGhzLT50aW1lbGlu
ZVRpbWUoKSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1l
KCkudmFsdWUoKTsKK30KKwordm9pZCBEb2N1bWVudFRpbWVsaW5lOjpwZXJmb3JtRXZlbnREaXNw
YXRjaFRhc2soKQoreworICAgIGlmIChtX3BlbmRpbmdBbmltYXRpb25FdmVudHMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHBlbmRpbmdBbmltYXRpb25FdmVudHMgPSBX
VEZNb3ZlKG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50cyk7CisKKyAgICBzdGQ6OnN0YWJsZV9zb3J0
KHBlbmRpbmdBbmltYXRpb25FdmVudHMuYmVnaW4oKSwgcGVuZGluZ0FuaW1hdGlvbkV2ZW50cy5l
bmQoKSwgY29tcGFyZUFuaW1hdGlvblBsYXliYWNrRXZlbnRzKTsKKyAgICBmb3IgKGF1dG8mIHBl
bmRpbmdFdmVudCA6IHBlbmRpbmdBbmltYXRpb25FdmVudHMpCisgICAgICAgIHBlbmRpbmdFdmVu
dC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50KTsKK30KKwogdm9pZCBEb2N1
bWVudFRpbWVsaW5lOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKQogewogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAppbmRleCBm
ZjFlNTc2NjYyMDQ4MzNhZGNlNjNlZmJhNDQ0MzBjMjAwZDNlNmRjLi4xNzNjM2RlNmNkOTVlYzRi
MTNlNmE2ODhkMDUzODYwN2VmMjRlOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRG9jdW1lbnRUaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50OwogY2xhc3MgUmVuZGVyRWxlbWVudDsK
IAogY2xhc3MgRG9jdW1lbnRUaW1lbGluZSBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25UaW1lbGlu
ZQpAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBydW5uaW5nQW5pbWF0aW9uc0Zv
ckVsZW1lbnRBcmVBbGxBY2NlbGVyYXRlZChFbGVtZW50Jik7CiAgICAgdm9pZCBkZXRhY2hGcm9t
RG9jdW1lbnQoKTsKIAorICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoQW5p
bWF0aW9uUGxheWJhY2tFdmVudCYpOworCiBwcml2YXRlOgogICAgIERvY3VtZW50VGltZWxpbmUo
RG9jdW1lbnQmLCBQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTY4LDE0ICs3MSwxNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uU2NoZWR1bGVUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBz
Y2hlZHVsZUFuaW1hdGlvblJlc29sdXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMo
KTsKKyAgICB2b2lkIHBlcmZvcm1FdmVudERpc3BhdGNoVGFzaygpOwogCiAgICAgUmVmUHRyPERv
Y3VtZW50PiBtX2RvY3VtZW50OwogICAgIGJvb2wgbV9wYXVzZWQgeyBmYWxzZSB9OwogICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9jYWNoZWRDdXJyZW50VGltZTsKICAgICBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPiBtX2ludmFsaWRhdGlvblRhc2tRdWV1ZTsKKyAgICBHZW5lcmljVGFza1F1
ZXVlPFRpbWVyPiBtX2V2ZW50RGlzcGF0Y2hUYXNrUXVldWU7CiAgICAgYm9vbCBtX25lZWRzVXBk
YXRlQW5pbWF0aW9uU2NoZWR1bGUgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fYW5pbWF0aW9uU2No
ZWR1bGVUaW1lcjsKICAgICBIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FjY2VsZXJh
dGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7CisgICAgVmVjdG9yPFJlZjxB
bmltYXRpb25QbGF5YmFja0V2ZW50Pj4gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOwogCiAjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICAvLyBPdmVy
cmlkZSBmb3IgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDVkNjcwZTFmMWM0ODJhZWU3ZTE5MWJiMDZhNjc0
NGYyZjY1MWNkOGYuLjJlM2EyZjNlYmQ2ZDBlMzRmZmMzZDAyZmQzZGQ2Y2MxNjMyNzAzMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25FZmZl
Y3QuaCIKKyNpbmNsdWRlICJBbmltYXRpb25QbGF5YmFja0V2ZW50LmgiCiAjaW5jbHVkZSAiQW5p
bWF0aW9uVGltZWxpbmUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIktleWZy
YW1lRWZmZWN0LmgiCkBAIC0zNiw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVm
PFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBB
bmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5lKQogewot
ICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oKSk7CisgICAgYXV0
byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFuaW1hdGlvbihkb2N1bWVudCkpOwogCiAgICAg
cmVzdWx0LT5zZXRFZmZlY3QoZWZmZWN0KTsKIApAQCAtNDcsOCArNDgsMTAgQEAgUmVmPFdlYkFu
aW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmltYXRp
b25FZmZlY3QqIGVmZmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJBbmltYXRpb246Oldl
YkFuaW1hdGlvbigpCitXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmRvY3VtZW50KQogeworICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQpAQCAtMjE0LDYgKzIx
NywyNiBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBuZXdQbGF5
YmFja1JhdGUpCiAgICAgICAgIHNldEN1cnJlbnRUaW1lKHByZXZpb3VzVGltZSk7CiB9CiAKK3Zv
aWQgV2ViQW5pbWF0aW9uOjplbnF1ZXVlQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQoreworICAgIGF1dG8gZXZlbnQgPSBBbmlt
YXRpb25QbGF5YmFja0V2ZW50OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRpbWVsaW5lVGlt
ZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKKworICAgIGlmIChpczxEb2N1bWVudFRp
bWVsaW5lPihtX3RpbWVsaW5lKSkgeworICAgICAgICAvLyBJZiBhbmltYXRpb24gaGFzIGEgZG9j
dW1lbnQgZm9yIHRpbWluZywgdGhlbiBhcHBlbmQgZXZlbnQgdG8gaXRzIGRvY3VtZW50IGZvciB0
aW1pbmcncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZSBhbG9uZworICAgICAgICAvLyB3
aXRoIGl0cyB0YXJnZXQsIGFuaW1hdGlvbi4gSWYgYW5pbWF0aW9uIGlzIGFzc29jaWF0ZWQgd2l0
aCBhbiBhY3RpdmUgdGltZWxpbmUgdGhhdCBkZWZpbmVzIGEgcHJvY2VkdXJlIHRvIGNvbnZlcnQg
dGltZWxpbmUgdGltZXMKKyAgICAgICAgLy8gdG8gb3JpZ2luLXJlbGF0aXZlIHRpbWUsIGxldCB0
aGUgc2NoZWR1bGVkIGV2ZW50IHRpbWUgYmUgdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGF0IHBy
b2NlZHVyZSB0byB0aW1lbGluZSB0aW1lLiBPdGhlcndpc2UsIHRoZQorICAgICAgICAvLyBzY2hl
ZHVsZWQgZXZlbnQgdGltZSBpcyBhbiB1bnJlc29sdmVkIHRpbWUgdmFsdWUuCisgICAgICAgIGRv
d25jYXN0PERvY3VtZW50VGltZWxpbmU+KCptX3RpbWVsaW5lKS5lbnF1ZXVlQW5pbWF0aW9uUGxh
eWJhY2tFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gT3Ro
ZXJ3aXNlLCBxdWV1ZSBhIHRhc2sgdG8gZGlzcGF0Y2ggZXZlbnQgYXQgYW5pbWF0aW9uLiBUaGUg
dGFzayBzb3VyY2UgZm9yIHRoaXMgdGFzayBpcyB0aGUgRE9NIG1hbmlwdWxhdGlvbiB0YXNrIHNv
dXJjZS4KKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0g
bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIGV2ZW50ID0gV1RGTW92ZShldmVudCldKCkgewor
ICAgICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkKKyAgICAgICAgICAgICAgICB0aGlzLT5kaXNw
YXRjaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBTZWNvbmRzIFdlYkFu
aW1hdGlvbjo6dGltZVRvTmV4dFJlcXVpcmVkVGljayhTZWNvbmRzIHRpbWVsaW5lVGltZSkgY29u
c3QKIHsKICAgICBpZiAoIW1fdGltZWxpbmUgfHwgIW1fc3RhcnRUaW1lIHx8ICFtX2VmZmVjdCB8
fCAhbV9wbGF5YmFja1JhdGUpCkBAIC0yNDUsNyArMjY4LDcgQEAgdm9pZCBXZWJBbmltYXRpb246
OnJlc29sdmUoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlKQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6
YWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFuZ2UoKQogewotICAgIGlmIChtX3RpbWVsaW5l
ICYmIG1fdGltZWxpbmUtPmlzRG9jdW1lbnRUaW1lbGluZSgpKQorICAgIGlmIChpczxEb2N1bWVu
dFRpbWVsaW5lPihtX3RpbWVsaW5lKSkKICAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnRUaW1lbGlu
ZT4oKm1fdGltZWxpbmUpLmFuaW1hdGlvbkFjY2VsZXJhdGVkUnVubmluZ1N0YXRlRGlkQ2hhbmdl
KCp0aGlzKTsKIH0KIApAQCAtMjYwLDQgKzI4MywyMCBAQCBTdHJpbmcgV2ViQW5pbWF0aW9uOjpk
ZXNjcmlwdGlvbigpCiAgICAgcmV0dXJuICJBbmltYXRpb24iOwogfQogCitjb25zdCBjaGFyKiBX
ZWJBbmltYXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
QW5pbWF0aW9uIjsKK30KKworYm9vbCBXZWJBbmltYXRpb246OmNhblN1c3BlbmRGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKSBjb25zdAoreworICAgIHJldHVybiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7
Cit9CisKK3ZvaWQgV2ViQW5pbWF0aW9uOjpzdG9wKCkKK3sKKyAgICBtX2lzU3RvcHBlZCA9IHRy
dWU7CisgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IGFlOWMy
OGQ5MzBjZWRkM2IxNmRjZWE2NzU5ZTEyNDU4YzlhMzIwYzkuLjQzNjMyYzY1MmFlMTA3NjI0NmZk
NDk1OTRiNTJjMjliMWNlZDYwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KQEAgLTM2LDExICszOCwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
bmltYXRpb25FZmZlY3Q7CitjbGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50OwogY2xhc3MgQW5p
bWF0aW9uVGltZWxpbmU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCi1j
bGFzcyBXZWJBbmltYXRpb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJBbmltYXRpb24+
IHsKK2NsYXNzIFdlYkFuaW1hdGlvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkFuaW1h
dGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4gY3JlYXRlKERv
Y3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKICAgICB+V2Vi
QW5pbWF0aW9uKCk7CkBAIC03MCwxMyArNzMsMzAgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRl
c2NyaXB0aW9uKCk7CiAKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CisKIHByaXZhdGU6Ci0gICAgV2ViQW5pbWF0aW9uKCk7CisgICAgZXhw
bGljaXQgV2ViQW5pbWF0aW9uKERvY3VtZW50Jik7CiAKKyAgICB2b2lkIGVucXVldWVBbmltYXRp
b25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIHN0ZDo6b3B0aW9uYWw8U2Vjb25k
cz4sIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOworICAgIAogICAgIFJlZlB0cjxBbmltYXRpb25F
ZmZlY3Q+IG1fZWZmZWN0OwogICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1lbGlu
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBt
X3BsYXliYWNrUmF0ZSB7IDEgfTsKKyAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKKwor
ICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5z
aW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisKKyAgICAvLyBFdmVu
dFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gV2ViQW5pbWF0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5p
ZGwKaW5kZXggZmExYzdmMTVjNjY0MGY1YzNjNTRiZGQxMWMzNGIwZDc4Mzc3Nzg0NS4uOTk0YjQ3
ZTliYjA5NGY4ZjQ3NmEwOGI5YmZlOTljMzI0NzhhNDk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKQEAgLTI0LDEyICsyNCwxMiBAQAogICovCiAKIFsKKyAg
ICBBY3RpdmVET01PYmplY3QsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBbmltYXRpb25zLAog
ICAgIEludGVyZmFjZU5hbWU9QW5pbWF0aW9uLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCiAgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBDb25zdHJ1Y3Rvcihv
cHRpb25hbCBBbmltYXRpb25FZmZlY3Q/IGVmZmVjdCA9IG51bGwsIG9wdGlvbmFsIEFuaW1hdGlv
blRpbWVsaW5lPyB0aW1lbGluZSkKLV0gaW50ZXJmYWNlIFdlYkFuaW1hdGlvbiB7CitdIGludGVy
ZmFjZSBXZWJBbmltYXRpb24gOiBFdmVudFRhcmdldCB7CiAgICAgYXR0cmlidXRlIEFuaW1hdGlv
bkVmZmVjdD8gZWZmZWN0OwogICAgIGF0dHJpYnV0ZSBBbmltYXRpb25UaW1lbGluZT8gdGltZWxp
bmU7CiAgICAgW0ltcGxlbWVudGVkQXM9YmluZGluZ3NTdGFydFRpbWVdIGF0dHJpYnV0ZSBkb3Vi
bGU/IHN0YXJ0VGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmlu
ZGV4IDcxMTY4OWI2MDVmMmFiMWJlNWZmYTc3MDc1OTc1MjU0YjI4ZGUyYWUuLmE4MTQ0ZDgwYjI3
YTBlNWZlNWQ2ZjUyOWE4M2ZmM2QwNDkwZWJmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNDQsNiArNDQsNyBAQCBUZXh0VHJhY2tMaXN0IGNvbmRpdGlv
bmFsPVZJREVPX1RSQUNLCiBWUkRpc3BsYXkKIFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJ
REVPX1RSQUNLCiBWaXN1YWxWaWV3cG9ydAorV2ViQW5pbWF0aW9uCiBXZWJLaXRNZWRpYUtleVNl
c3Npb24gY29uZGl0aW9uYWw9TEVHQUNZX0VOQ1JZUFRFRF9NRURJQQogV2ViU29ja2V0CiBXb3Jr
ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5ZTllNmNhMjg5MDFkYWIyZjRlNTQxODVjOGQzNjBjOTAxZjE3YzE0Li5jNTk0
NjY3ZGFkZDc0MDNmOGVjOTJiODBlZGJlMmY5MDZiNTI4OTAwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTctMTItMTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAg
ICAgICBbV2ViIEFuaW1hdGlvbnNdIEVucXVldWUgYW5kIGRpc3BhdGNoIGFuaW1hdGlvbiBldmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY1
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU5NzAxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlIFdlYiBQbGF0Zm9ybSBUZXN0cyB3
aXRoIHNvbWUgcHJvZ3Jlc3Npb25zIGJhc2VkIG9uIHRoZSBJREwgY2hhbmdlcy4gUHJvZ3Jlc3Np
b25zIGR1ZQorICAgICAgICB0byBkaXNwYXRjaGluZyBldmVudHMgd2lsbCBiZWNvbWUgYXBwYXJl
bnQgd2hlbiB0aGUgbmV4dCBwYXRjaCwgd2hlcmUgd2UgZGlzcGF0Y2ggYWN0dWFsCisgICAgICAg
IGFuaW1hdGlvbiBwbGF5YmFjayBldmVudHMsIGxhbmRzLgorCisgICAgICAgICogaHR0cC93cHQv
d2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50
eHQ6CisKIDIwMTctMTItMTEgIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNv
bT4KIAogICAgICAgICBUdXJuIG9uIEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Bbmlt
YXRpb24vaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWIt
YW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApp
bmRleCA1NzdmZTdmYzc1MWM0N2M0OTAwYjBhZThlMTQ1MDgxYWJmYzUwOWE0Li4wY2VlMWE4MGM3
NmI3ZTNjZGZkOGMyOGExZWYxMjFmNjgyZDgzYzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWItYW5pbWF0aW9ucy9pbnRl
cmZhY2VzL0FuaW1hdGlvbi9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSw5IEBA
CiAKIFBBU1MgQW5pbWF0aW9uIGludGVyZmFjZSBhdXRvbWF0ZWQgSURMIHRlc3RzIAotRkFJTCBB
bmltYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgQW5pbWF0aW9uIGlzIG5vdCBFdmVu
dFRhcmdldCBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gRXZlbnRUYXJnZXQoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iCitQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBBbmltYXRpb24gaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggCiBQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCi1G
QUlMIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgQW5pbWF0
aW9uLnByb3RvdHlwZSBpcyBub3QgRXZlbnRUYXJnZXQucHJvdG90eXBlIGV4cGVjdGVkIG9iamVj
dCAiW29iamVjdCBFdmVudFRhcmdldFByb3RvdHlwZV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0
IE9iamVjdF0iCitQQVNTIEFuaW1hdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgQW5pbWF0aW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIEZBSUwgQW5pbWF0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIGlkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUg
YSBwcm9wZXJ0eSAiaWQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIEFuaW1hdGlvbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBlZmZlY3QgCg==
</data>
<flag name="review"
          id="348196"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>