<?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>177449</bug_id>
          
          <creation_ts>2017-09-25 11:50:50 -0700</creation_ts>
          <short_desc>REGRESSION(r222392): [WPE][GTK] Many forms tests are failing due to broken event timestamps</short_desc>
          <delta_ts>2020-05-24 22:21:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177444</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=154246</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=212338</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>PlatformOnly, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352293</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 11:50:50 -0700</bug_when>
    <thetext>r222392 &quot;Use high resolution timestamp for event time&quot; broke the following layout tests for GTK:

  fast/forms/ValidityState-valueMissing-002.html
  fast/forms/listbox-selection-after-typeahead.html
  fast/forms/listbox-typeahead-scroll.html
  fast/forms/onchange-select-check-validity.html
  fast/forms/select-double-onchange.html
  fast/forms/select-script-onchange.html
  fast/forms/select/menulist-oninput-fired.html
  fast/forms/select/select-disabled.html

That&apos;s in addition to bug #177444 and bug #177447. Updating expectations accordingly.

The failures all look different and weird:

--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/ValidityState-valueMissing-002-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/ValidityState-valueMissing-002-actual.txt
@@ -15,8 +15,8 @@
 PASS valueMissingFor(&quot;select-without-fake-placeholder-size2-multiple&quot;) is false
 Updating valueMissing state by a key input:
 PASS valueMissingFor(&quot;select-selecting-by-key&quot;) is true
-PASS select.value is &quot;a&quot;
-PASS valueMissingFor(&quot;select-selecting-by-key&quot;) is false
+FAIL select.value should be a. Was .
+FAIL valueMissingFor(&quot;select-selecting-by-key&quot;) should be false. Was true.
 PASS valueMissingFor(&quot;select-selecting-by-key-2&quot;) is true
 PASS select.value is &quot;a&quot;
 PASS valueMissingFor(&quot;select-selecting-by-key-2&quot;) is false


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/listbox-selection-after-typeahead-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/listbox-selection-after-typeahead-actual.txt
@@ -4,8 +4,8 @@
 
 
 PASS mouseDownAtOption(1);               bitPatternForSelectedOptions() is &quot;0100000&quot;
-PASS sendkeyDown(&quot;5&quot;);                   bitPatternForSelectedOptions() is &quot;0000010&quot;
-PASS sendkeyDown(&quot;upArrow&quot;, &quot;shiftKey&quot;); bitPatternForSelectedOptions() is &quot;0000110&quot;
+FAIL sendkeyDown(&quot;5&quot;);                   bitPatternForSelectedOptions() should be 0000010. Was 0100000.
+FAIL sendkeyDown(&quot;upArrow&quot;, &quot;shiftKey&quot;); bitPatternForSelectedOptions() should be 0000110. Was 1100000.
 PASS successfullyParsed is true
 
 TEST COMPLETE


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/listbox-typeahead-scroll-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/listbox-typeahead-scroll-actual.txt
@@ -1,4 +1,4 @@
 Test for http://bugs.webkit.org/show_bug.cgi?id=13013 REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key.
 
 
-SUCCESS
+FAIL


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/onchange-select-check-validity-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/onchange-select-check-validity-actual.txt
@@ -1,4 +1,4 @@
 
 The select&apos;s validity was initially false
-The select&apos;s validity was changed to true
+The select&apos;s validity was changed to false
 

--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select-double-onchange-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select-double-onchange-actual.txt
@@ -1,5 +1,5 @@
 Test for http://bugs.webkit.org/show_bug.cgi?id=13857 REGRESSION: onChange function applied to select element executes twice when focus is set.
 
-SUCCESS
+To test interactively, select the other option in the pop up. This text should change to SUCCESS.
 
 
--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select-script-onchange-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select-script-onchange-actual.txt
@@ -1,6 +1,7 @@
 Test for http://bugs.webkit.org/show_bug.cgi?id=23721 Changing dropdown&apos;s selectedIndex within onchange handler fires another onchange.
 
-SUCCESS
+
+FAILURE: onchange(2) called 0 times.
 
 This select changes on focus: should not fire onchange.  
 This select changes on change: should only fire onchange once.  


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select/menulist-oninput-fired-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select/menulist-oninput-fired-actual.txt
@@ -2,7 +2,6 @@
 
 
 Pressing 2 key
-PASS
 PASS successfullyParsed is true
 
 TEST COMPLETE


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select/select-disabled-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/forms/select/select-disabled-actual.txt
@@ -8,9 +8,9 @@
 PASS select1.value is &quot;b&quot;
 PASS select1.value is &quot;b&quot;
 PASS select2.value is &quot;a&quot;
-PASS select2.value is &quot;b&quot;
-PASS select2.value is &quot;b&quot;
-PASS select2.value is &quot;b&quot;
+FAIL select2.value should be b. Was a.
+FAIL select2.value should be b. Was a.
+FAIL select2.value should be b. Was a.
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352345</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 12:47:16 -0700</bug_when>
    <thetext>I suspect eventSender.keyDown() stopped working for some reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352353</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 12:53:00 -0700</bug_when>
    <thetext>*** Bug 177444 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352355</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 12:54:19 -0700</bug_when>
    <thetext>Also: fast/events/popup-when-select-change.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352371</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 13:13:37 -0700</bug_when>
    <thetext>I wonder if setting the event&apos;s time field to GDK_CURRENT_TIME in EventSenderProxy::keyDown() would help (similarly to what is done in EventSenderProxy::createMouseButtonEvent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352372</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 13:17:02 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; I wonder if setting the event&apos;s time field to GDK_CURRENT_TIME in
&gt; EventSenderProxy::keyDown() would help (similarly to what is done in
&gt; EventSenderProxy::createMouseButtonEvent().

My bet is that this is caused by GTK&apos;s EventSenderProxy failing to set simulated key/mouse event&apos;s timestamp in some cases. I need to look into this more but my patch might have changed behavior here because the native event&apos;s WallTime now gets converted into a MonotonicTime and I do not know what it does when the WallTime is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352374</commentid>
    <comment_count>6</comment_count>
      <attachid>321731</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 13:23:43 -0700</bug_when>
    <thetext>Created attachment 321731
Proposed patch

Would you mind testing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352387</commentid>
    <comment_count>7</comment_count>
      <attachid>321731</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 13:48:32 -0700</bug_when>
    <thetext>Comment on attachment 321731
Proposed patch

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

&gt; Source/WTF/wtf/WallTime.cpp:43
&gt; +    if (!m_value)

I talked to Phil and we probably would not want to land this. I would still like to know if it fixes the issue for the GTK port to help me understand.
Chances are the right fix will be to properly set the event&apos;s time in EventSenderProxy (assuming this fixes the issue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352394</commentid>
    <comment_count>8</comment_count>
      <attachid>321736</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 13:56:30 -0700</bug_when>
    <thetext>Created attachment 321736
GTK-specific fix

Proposed GTK-specific fix. Please feel free to land this one if it works (I cannot test myself).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352400</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 14:01:52 -0700</bug_when>
    <thetext>Unfortunately I think that patch is a no-op because GDK_CURRENT_TIME is an alias for 0 (actually 0L) and gdk_event_new() ensures the struct is initially zeroed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352440</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 14:49:55 -0700</bug_when>
    <thetext>Ok, I think that the simulated PlatformEvents from GTK may be 0 as timestamp (WallTime). When it gets converted to a MonotonicTime, we may end with a negative value when calling WallTime::approximateMonotonicTime().

If we get a negative MonotonicTime value, the following check in TypeAhead::handleEvent() will always be true:
    if (event-&gt;timeStamp() &lt; m_lastTypeTime)
        return -1;

.. because m_lastTypeTime is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352441</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 14:53:22 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Ok, I think that the simulated PlatformEvents from GTK may be 0 as timestamp
&gt; (WallTime). When it gets converted to a MonotonicTime, we may end with a
&gt; negative value when calling WallTime::approximateMonotonicTime().
&gt; 
&gt; If we get a negative MonotonicTime value, the following check in
&gt; TypeAhead::handleEvent() will always be true:
&gt;     if (event-&gt;timeStamp() &lt; m_lastTypeTime)
&gt;         return -1;
&gt; 
&gt; .. because m_lastTypeTime is 0.

I will propose a fix making the code more robust against having PlatformEvent::timestamp() returning 0. However, if this is really the problem, I think the GTK port should make sure to to initialize it with WallTime::now() when it is 0.

I think this may be observable by firing an event using eventSender.keyDown() then checking event.timeStamp in JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352442</commentid>
    <comment_count>12</comment_count>
      <attachid>321746</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 14:54:22 -0700</bug_when>
    <thetext>Created attachment 321746
Proposed change

Could someone please let me know if this fixes the issue for GTK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352444</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-25 14:55:48 -0700</bug_when>
    <thetext>Attachment 321746 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformEvent.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352563</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 20:01:16 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; Created attachment 321746 [details]
&gt; Proposed change
&gt; 
&gt; Could someone please let me know if this fixes the issue for GTK?

Confirmed fixed. Nice, thank you!

Will you handle landing it?

Note that I added failure expectations for these tests in r222461.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352565</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 20:13:43 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; Created attachment 321746 [details]
&gt; &gt; Proposed change
&gt; &gt; 
&gt; &gt; Could someone please let me know if this fixes the issue for GTK?
&gt; 
&gt; Confirmed fixed. Nice, thank you!
&gt; 
&gt; Will you handle landing it?
&gt; 
&gt; Note that I added failure expectations for these tests in r222461.

I can land it tomorrow but if you’re in a hurry, feel free to land earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352566</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 20:22:00 -0700</bug_when>
    <thetext>No hurry. Thanks.

(In reply to Chris Dumez from comment #11)
&gt; I will propose a fix making the code more robust against having
&gt; PlatformEvent::timestamp() returning 0. However, if this is really the
&gt; problem, I think the GTK port should make sure to to initialize it with
&gt; WallTime::now() when it is 0.

I did a bit of digging. It looks like this already occurs for PlatformKeyboardEvent and PlatformWheelEvent in the constructors for those events (in PlatformKeyboardEventGtk.cpp and PlatformWheelEventGtk.cpp). So not sure what has gone wrong there.

PlatformMouseEvent&apos;s GTK constructor takes the time instead from the underlying GdkEventMotion using WallTime::fromRawSeconds, which looks wrong because it&apos;s passing *milliseconds* into that function. But it looks like these broken tests involved keyboard events, not mouse events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352678</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:08:52 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #16)
&gt; No hurry. Thanks.
&gt; 
&gt; (In reply to Chris Dumez from comment #11)
&gt; &gt; I will propose a fix making the code more robust against having
&gt; &gt; PlatformEvent::timestamp() returning 0. However, if this is really the
&gt; &gt; problem, I think the GTK port should make sure to to initialize it with
&gt; &gt; WallTime::now() when it is 0.
&gt; 
&gt; I did a bit of digging. It looks like this already occurs for
&gt; PlatformKeyboardEvent and PlatformWheelEvent in the constructors for those
&gt; events (in PlatformKeyboardEventGtk.cpp and PlatformWheelEventGtk.cpp). So
&gt; not sure what has gone wrong there.
&gt; 
&gt; PlatformMouseEvent&apos;s GTK constructor takes the time instead from the
&gt; underlying GdkEventMotion using WallTime::fromRawSeconds, which looks wrong
&gt; because it&apos;s passing *milliseconds* into that function. But it looks like
&gt; these broken tests involved keyboard events, not mouse events.

I believe the issue could be in WebEventFactory::createWebKeyboardEvent(). The GTK version does:
WallTime::fromRawSeconds(gdk_event_get_time(event))

I guess gdk_event_get_time(event) may return 0, which for GTK means current time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352681</commentid>
    <comment_count>18</comment_count>
      <attachid>321823</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:24:52 -0700</bug_when>
    <thetext>Created attachment 321823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352682</commentid>
    <comment_count>19</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-26 09:25:53 -0700</bug_when>
    <thetext>Attachment 321823 did not pass style-queue:


ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:151:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352686</commentid>
    <comment_count>20</comment_count>
      <attachid>321825</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:29:39 -0700</bug_when>
    <thetext>Created attachment 321825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352687</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:30:34 -0700</bug_when>
    <thetext>What about wpe_input_keyboard_event&apos;s time. Is it in seconds or milliseconds? Is there a special value meaning CURRENT_TIME? My patch only fixes GTK for now, not WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352688</commentid>
    <comment_count>22</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-26 09:31:51 -0700</bug_when>
    <thetext>Attachment 321825 did not pass style-queue:


ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:151:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352689</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 09:36:24 -0700</bug_when>
    <thetext>Thanks a bunch for taking a stab at this, Chris. It&apos;s a big help.

(In reply to Chris Dumez from comment #21)
&gt; What about wpe_input_keyboard_event&apos;s time. Is it in seconds or
&gt; milliseconds? Is there a special value meaning CURRENT_TIME? My patch only
&gt; fixes GTK for now, not WPE.

I bet we didn&apos;t notice that WPE was broken simply because WPE only runs a small subset of the layout tests. I will ask around to get an answer for WPE.

For GTK, I fear that the event timestamp is just some monotonic millisecond timestamp that does not have any relation to real-world time (it&apos;s not time since the epoch), so passing it into WallTime will never be right. This is going to need a total rethink. We&apos;ll take care of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352693</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:43:07 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #23)
&gt; Thanks a bunch for taking a stab at this, Chris. It&apos;s a big help.
&gt; 
&gt; (In reply to Chris Dumez from comment #21)
&gt; &gt; What about wpe_input_keyboard_event&apos;s time. Is it in seconds or
&gt; &gt; milliseconds? Is there a special value meaning CURRENT_TIME? My patch only
&gt; &gt; fixes GTK for now, not WPE.
&gt; 
&gt; I bet we didn&apos;t notice that WPE was broken simply because WPE only runs a
&gt; small subset of the layout tests. I will ask around to get an answer for WPE.
&gt; 
&gt; For GTK, I fear that the event timestamp is just some monotonic millisecond
&gt; timestamp that does not have any relation to real-world time (it&apos;s not time
&gt; since the epoch), so passing it into WallTime will never be right. This is
&gt; going to need a total rethink. We&apos;ll take care of it.

Ok, some more work will be needed to be completely correct if event-&gt;time is not a number of ms since Epoch.

What&apos;s causing the tests failing though seems to be not dealing with GDK_CURRENT_TIME and converting it to WallTime::now() which my patch takes care of.

Note that NSEvents on Mac/iOS also do not use a number of seconds since Epoch but rather a number of seconds since the computer booted. Our code deals with this because constructing WebKit&apos;s event types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352696</commentid>
    <comment_count>25</comment_count>
      <attachid>321825</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 09:54:25 -0700</bug_when>
    <thetext>Comment on attachment 321825
Patch

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

&gt; Source/WebKit/Shared/gtk/WebEventFactory.cpp:49
&gt; +static inline WallTime eventTime(const GdkEvent* event)

We&apos;ll also want to move this to some shared location (maybe PlatformEvent) to avoid the code duplication.

&gt; Source/WebKit/Shared/gtk/WebEventFactory.cpp:54
&gt; +    return WallTime::fromRawSeconds(timeInMilliseconds / 1000.);

And then here we could add a FIXME to figure out how to convert properly from the event timestamp to wall time. It&apos;s probably not possible. We might need to just always set the event timestamps to WallTime::now(). I&apos;ll wait and see if any of our other developers have a suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352703</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 10:01:10 -0700</bug_when>
    <thetext>Yes, maybe you&apos;d want to use WallTime::now() consistently until the event&apos;s timestamps can properly be converted. Seems the event&apos;s timestamps was already being ignored in a lot of cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354803</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-29 18:11:56 -0700</bug_when>
    <thetext>Still looking into the best approach to this problem. Turns out the timestamps *can* be converted under certain conditions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355348</commentid>
    <comment_count>28</comment_count>
      <attachid>322399</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-02 11:25:33 -0700</bug_when>
    <thetext>Created attachment 322399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355353</commentid>
    <comment_count>29</comment_count>
      <attachid>322399</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-02 11:33:18 -0700</bug_when>
    <thetext>Comment on attachment 322399
Patch

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

&gt; Source/WebCore/platform/gtk/GtkUtilities.h:32
&gt; +WallTime wallTimeForEvent(const GdkEvent*);

To avoid having to reinterpret_cast at call sites, it seems like we could use templating no?:
WallTime wallTimeForEvent(const GdkEvent*);
template&lt;typename GdkEventType&gt; WallTime wallTimeForEvent(const GdkEventType* event) { return MonotonicTime::fromRawSeconds(event-&gt;time / 1000.).approximateWallTime(); }

// in cpp.
WallTime wallTimeForEvent(const GdkEvent* event)
{
    // This works if and only if the X server or Wayland compositor happens to
    // be using CLOCK_MONOTONIC for its monotonic time, and so long as
    // g_get_monotonic_time() continues to do so as well, and so long as
    // WTF::MonotonicTime continues to use g_get_monotonic_time().
    return MonotonicTime::fromRawSeconds(gdk_event_get_time(event) / 1000.).approximateWallTime();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355358</commentid>
    <comment_count>30</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-02 11:39:48 -0700</bug_when>
    <thetext>Good point, that would indeed be nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355415</commentid>
    <comment_count>31</comment_count>
      <attachid>322413</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-02 12:50:05 -0700</bug_when>
    <thetext>Created attachment 322413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355573</commentid>
    <comment_count>32</comment_count>
      <attachid>322413</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-02 15:32:32 -0700</bug_when>
    <thetext>Comment on attachment 322413
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355762</commentid>
    <comment_count>33</comment_count>
      <attachid>322413</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-03 02:50:10 -0700</bug_when>
    <thetext>Comment on attachment 322413
Patch

Clearing flags on attachment: 322413

Committed r222776: &lt;http://trac.webkit.org/changeset/222776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355763</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-03 02:50:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355773</commentid>
    <comment_count>35</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-03 03:50:57 -0700</bug_when>
    <thetext>This patch was correct and should not be reverted, but it didn&apos;t fix the tests like your second patch did. We might need that too. I&apos;m starting a build that will allow me to run layout tests locally to see what&apos;s going on in those tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355815</commentid>
    <comment_count>36</comment_count>
      <attachid>322399</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-03 08:09:34 -0700</bug_when>
    <thetext>Comment on attachment 322399
Patch

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

&gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:65
&gt; +    return MonotonicTime::fromRawSeconds(gdk_event_get_time(event) / 1000.).approximateWallTime();

You probably need to deal with the time stamp being 0 here and use WallTime::now() then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355828</commentid>
    <comment_count>37</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-03 08:30:09 -0700</bug_when>
    <thetext>I&apos;ll try that. And prepare for another sad rebuild. Stupid header files....

Anyway, the tests all pass if I revert my patch and use yours instead, but they still fail when I apply your patch on top of mine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355859</commentid>
    <comment_count>38</comment_count>
      <attachid>322534</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-03 09:32:55 -0700</bug_when>
    <thetext>Created attachment 322534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355861</commentid>
    <comment_count>39</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-03 09:37:43 -0700</bug_when>
    <thetext>You were right. This is tested on the layout tests and actually works. :)

I tried to skip that responsibility this morning due to an unusual build setup that made building WebKit in a manner suitable for running layout tests a bit difficult....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355870</commentid>
    <comment_count>40</comment_count>
      <attachid>322534</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-03 10:03:55 -0700</bug_when>
    <thetext>Comment on attachment 322534
Patch

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

&gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:64
&gt; +    auto time = gdk_event_get_time(event) / 1000.;

I think this would read better as:

auto gdkEventTime = gdk_event_get_time(event);
if (gdkEventTime == GDK_CURRENT_TIME)
    return WallTime::now();
return MonotonicTime::fromRawSeconds(gdkEventTime).approximateWallTime();

but it is your call.

&gt; Source/WebCore/platform/gtk/GtkUtilities.h:37
&gt; +    return time ? MonotonicTime::fromRawSeconds(time).approximateWallTime() : WallTime::now();

ditto.

&gt; Source/WebKit/Shared/wpe/WebEventFactory.cpp:83
&gt; +    return seconds ? MonotonicTime::fromRawSeconds(seconds).approximateWallTime() : WallTime::now();

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355871</commentid>
    <comment_count>41</comment_count>
      <attachid>322534</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-03 10:04:41 -0700</bug_when>
    <thetext>Comment on attachment 322534
Patch

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

&gt;&gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:64
&gt;&gt; +    auto time = gdk_event_get_time(event) / 1000.;
&gt; 
&gt; I think this would read better as:
&gt; 
&gt; auto gdkEventTime = gdk_event_get_time(event);
&gt; if (gdkEventTime == GDK_CURRENT_TIME)
&gt;     return WallTime::now();
&gt; return MonotonicTime::fromRawSeconds(gdkEventTime).approximateWallTime();
&gt; 
&gt; but it is your call.

sorry, should have been:

auto gdkEventTime = gdk_event_get_time(event);
if (gdkEventTime == GDK_CURRENT_TIME)
    return WallTime::now();
return MonotonicTime::fromRawSeconds(gdkEventTime / 1000.).approximateWallTime();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356275</commentid>
    <comment_count>42</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-04 00:43:55 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #41) 
&gt; auto gdkEventTime = gdk_event_get_time(event);
&gt; if (gdkEventTime == GDK_CURRENT_TIME)
&gt;     return WallTime::now();
&gt; return MonotonicTime::fromRawSeconds(gdkEventTime /
&gt; 1000.).approximateWallTime();

Ah yes, much better! Thanks Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356290</commentid>
    <comment_count>43</comment_count>
      <attachid>322639</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-04 02:08:31 -0700</bug_when>
    <thetext>Created attachment 322639
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356305</commentid>
    <comment_count>44</comment_count>
      <attachid>322639</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 02:49:28 -0700</bug_when>
    <thetext>Comment on attachment 322639
Patch for landing

Clearing flags on attachment: 322639

Committed r222837: &lt;http://trac.webkit.org/changeset/222837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356306</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 02:49:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356375</commentid>
    <comment_count>46</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-04 06:15:04 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356376</commentid>
    <comment_count>47</comment_count>
      <attachid>322662</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-04 06:15:07 -0700</bug_when>
    <thetext>Created attachment 322662
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356397</commentid>
    <comment_count>48</comment_count>
      <attachid>322662</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 07:24:44 -0700</bug_when>
    <thetext>Comment on attachment 322662
Patch for landing

Clearing flags on attachment: 322662

Committed r222846: &lt;http://trac.webkit.org/changeset/222846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356398</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 07:24:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321731</attachid>
            <date>2017-09-25 13:23:43 -0700</date>
            <delta_ts>2017-09-25 14:54:22 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>WallTime_approximateMonotonicTime_fix.patch</filename>
            <type>text/plain</type>
            <size>380</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1dhbGxUaW1lLmNwcAppbmRleCAxNjIyYWIzYzZjMi4uODVhOTA0ZjFkNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGlt
ZS5jcHAKQEAgLTQwLDYgKzQwLDkgQEAgV2FsbFRpbWUgV2FsbFRpbWU6Om5vdygpCiAKIE1vbm90
b25pY1RpbWUgV2FsbFRpbWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0CiB7Cisg
ICAgaWYgKCFtX3ZhbHVlKQorICAgICAgICByZXR1cm4geyB9OworCiAgICAgcmV0dXJuICp0aGlz
IC0gbm93KCkgKyBNb25vdG9uaWNUaW1lOjpub3coKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321736</attachid>
            <date>2017-09-25 13:56:30 -0700</date>
            <delta_ts>2017-09-25 14:54:22 -0700</delta_ts>
            <desc>GTK-specific fix</desc>
            <filename>keyDown_GTK_fix.patch</filename>
            <type>text/plain</type>
            <size>816</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlH
dGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5j
cHAKaW5kZXggMzc4MTQxZDJjY2MuLjQwYTI4YmUzNWU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApAQCAtMzEwLDYgKzMxMCw3
IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBrZXlSZWYsIFdL
RXZlbnRNb2RpZmllcnMgd2tNb2RpZmllcnMsCiAgICAgcHJlc3NFdmVudC0+a2V5LmtleXZhbCA9
IGdka0tleVN5bTsKICAgICBwcmVzc0V2ZW50LT5rZXkuc3RhdGUgPSBtb2RpZmllcnM7CiAgICAg
cHJlc3NFdmVudC0+a2V5LndpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VU
KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkpKTsKKyAg
ICBwcmVzc0V2ZW50LT5rZXkudGltZSA9IEdES19DVVJSRU5UX1RJTUU7CiAgICAgZ19vYmplY3Rf
cmVmKHByZXNzRXZlbnQtPmtleS53aW5kb3cpOwogICAgIGdka19ldmVudF9zZXRfZGV2aWNlKHBy
ZXNzRXZlbnQsIGdka19kZXZpY2VfbWFuYWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2RrX2Rpc3Bs
YXlfZ2V0X2RldmljZV9tYW5hZ2VyKGdka193aW5kb3dfZ2V0X2Rpc3BsYXkocHJlc3NFdmVudC0+
a2V5LndpbmRvdykpKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321746</attachid>
            <date>2017-09-25 14:54:22 -0700</date>
            <delta_ts>2017-10-03 09:32:50 -0700</delta_ts>
            <desc>Proposed change</desc>
            <filename>gtk_timestamp_fix.patch</filename>
            <type>text/plain</type>
            <size>3963</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCA0ODA0YzFkMDVlNS4uOWNlNmU5
OTA1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcg
QEAgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRF
dmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9N
V2luZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXli
b2FyZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1l
c3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXko
KSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQorICAgICAgICAsIHRydWUsIHRydWUsIGtl
eS50aW1lc3RhbXBBc01vbm90b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5
LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNl
LCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNM
b2NrS2V5KSkKICAgICAsIG1fa2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ+KGtleSkpCiAjaWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggM2M3ODVhN2E0NDYuLjc0ZjkzOTk2ZGU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdp
bmRvdyogdmllCiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1l
cygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2Fu
QnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFt
cCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCB2aWV3LAorICAgIHJldHVybiBNb3VzZUV2
ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGlt
ZXN0YW1wQXNNb25vdG9uaWNUaW1lKCksIHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3Np
dGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0
YSgpLnkoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAppbmRleCA4MGRiMDVhMTU1Mi4uOTYz
ZDk0MmYwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
V2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IElu
aXQmIGluaXRpYWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3Vz
ZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3Rh
bXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9z
aXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCku
d2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wQXNNb25vdG9uaWNUaW1lKCks
IHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZWYwNjljNDdlNzQuLjlhY2NiYTJhMDExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5n
VGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3VzZUV2ZW50PiBtZSA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRp
bWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCkt
PmRlZmF1bHRWaWV3KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcEFzTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50
LmgKaW5kZXggNTJjYjljODc0MDIuLmUxNTY1M2Q1YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1FdmVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgog
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCw2
ICs4OSw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNv
bnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKICAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1w
QXNNb25vdG9uaWNUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXAgPyBtX3RpbWVzdGFt
cC5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSA6IE1vbm90b25pY1RpbWUgeyB9OyB9CiAKIHBy
b3RlY3RlZDoKICAgICBQbGF0Zm9ybUV2ZW50KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321823</attachid>
            <date>2017-09-26 09:24:52 -0700</date>
            <delta_ts>2017-09-26 09:29:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177449-20170926092451.patch</filename>
            <type>text/plain</type>
            <size>10460</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRmZjAxMTM4OGUzY2Zk
MDQyYTQzYWMxOTgxZDQ0MjdlMjU1NTQ5MC4uY2U3YWQ3OGMxOGRjODM2NjVmYjRkMjBlNDlmYjE2
MzMwOWNkMGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjIyMzky
KTogW0dUS10gTWFueSBmb3JtcyB0ZXN0cyBhcmUgZmFpbGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIGV2ZW50cycgdGltZXN0YW1w
IGFyZSBwcm9wZXJseSBpbml0aWFsaXplZCBmb3IgdGhlIEdUSyBwb3J0LgorICAgICAgICBHREtF
dmVudCdzIHRpbWUgaXMgYWN0dWFsbHkgaW4gbWlsbGlzZWNvbmRzLCBub3Qgc2Vjb25kcyBhbmQg
d2UgbmVlZAorICAgICAgICB0byBkZWFsIHdpdGggdGhlIEdES19DVVJSRU5UX1RJTUUgc3BlY2lh
bCB2YWx1ZSB0byBhdm9pZCBlbmRpbmcgdXAKKyAgICAgICAgd2l0aCBhIDAtdmFsdWUgV2FsbFRp
bWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
dmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9y
bU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKwogMjAxNy0wOS0yNSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4g
V2ViQ29yZTo6VHJlZVNjb3BlOjpkb2N1bWVudFNjb3BlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkODU2ODUzYjIx
YjgzNjQyMWE0NDhlZDkwZjY1MzNjZmE4OTg5ZjEuLjNhYjQzYTFmZGQzNmRjNjUwOTVlZGFmMmYx
NDI2NmM0ZmEzNzY0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDktMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjIz
OTIpOiBbR1RLXSBNYW55IGZvcm1zIHRlc3RzIGFyZSBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgZXZlbnRzJyB0aW1lc3Rh
bXAgYXJlIHByb3Blcmx5IGluaXRpYWxpemVkIGZvciB0aGUgR1RLIHBvcnQuCisgICAgICAgIEdE
S0V2ZW50J3MgdGltZSBpcyBhY3R1YWxseSBpbiBtaWxsaXNlY29uZHMsIG5vdCBzZWNvbmRzIGFu
ZCB3ZSBuZWVkCisgICAgICAgIHRvIGRlYWwgd2l0aCB0aGUgR0RLX0NVUlJFTlRfVElNRSBzcGVj
aWFsIHZhbHVlIHRvIGF2b2lkIGVuZGluZyB1cAorICAgICAgICB3aXRoIGEgMC12YWx1ZSBXYWxs
VGltZS4KKworICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZXZlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKwogMjAxNy0wOS0yNSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgQXR0cmlidXRlIGFu
IGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0Yjlm
ZThjMmExNzE4ZTBmMWYxNi4uZjAzMWU3MzMyYzY2NTI4ZmJkYWFlZTM5MTUxNDViNWUxNjBmNjM4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEyNTcsOSArMTI1NywxNyBAQCBzdGF0aWMgT3B0aW9u
U2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtF
dmVudEtleSogZQogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgV2Fs
bFRpbWUgZXZlbnRUaW1lKGNvbnN0IEdka0V2ZW50S2V5KiBldmVudCkKK3sKKyAgICBhdXRvIHRp
bWVJbk1pbGxpc2Vjb25kcyA9IGdka19ldmVudF9nZXRfdGltZShldmVudCk7CisgICAgaWYgKHRp
bWVJbk1pbGxpc2Vjb25kcyA9PSBHREtfQ1VSUkVOVF9USU1FKQorICAgICAgICByZXR1cm4gV2Fs
bFRpbWU6Om5vdygpOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZUlu
TWlsbGlzZWNvbmRzIC8gMTAwMC4pOworfQorCiAvLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRo
ZSBvdGhlciBwbGF0Zm9ybSBldmVudCBjb25zdHJ1Y3RvcnMKIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwgY29uc3QgQ29tcG9z
aXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KGV2
ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoZXZl
bnQpLCBXYWxsVGltZTo6bm93KCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdk
a0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBldmVudFRp
bWUoZXZlbnQpKQogICAgICwgbV90ZXh0KGNvbXBvc2l0aW9uUmVzdWx0cy5zaW1wbGVTdHJpbmcu
bGVuZ3RoKCkgPyBjb21wb3NpdGlvblJlc3VsdHMuc2ltcGxlU3RyaW5nIDogc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nKGV2ZW50LT5rZXl2YWwpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dChtX3RleHQp
CiAgICAgLCBtX2tleShrZXlWYWx1ZUZvckdka0tleUNvZGUoZXZlbnQtPmtleXZhbCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsu
Y3BwCmluZGV4IGVjOTFhZmVlZjdhNWJmMWRhMDVlOTQ5MmJhYjAyNmM0ZGQwYTlhODAuLmZkZGNm
MTkzNmUxOGY1M2VhMDI5NzExNDExNjJiMTMxOGQ1NzA1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwCkBAIC0zMywx
MiArMzMsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW5saW5lIFdhbGxU
aW1lIGV2ZW50VGltZShjb25zdCBHZGtFdmVudEJ1dHRvbiogZXZlbnQpCit7CisgICAgYXV0byB0
aW1lSW5NaWxsaXNlY29uZHMgPSBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpOworICAgIGlmICh0
aW1lSW5NaWxsaXNlY29uZHMgPT0gR0RLX0NVUlJFTlRfVElNRSkKKyAgICAgICAgcmV0dXJuIFdh
bGxUaW1lOjpub3coKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVJ
bk1pbGxpc2Vjb25kcyAvIDEwMDAuKTsKK30KKwogLy8gRklYTUU6IFdvdWxkIGJlIGV2ZW4gYmV0
dGVyIHRvIGZpZ3VyZSBvdXQgd2hpY2ggbW9kaWZpZXIgaXMgQWx0IGluc3RlYWQgb2YgYWx3YXlz
IHVzaW5nIEdES19NT0QxX01BU0suCiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90
aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9ycwogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0
Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogewotICAgIG1fdGltZXN0YW1w
ID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKTsKKyAgICBtX3RpbWVzdGFt
cCA9IGV2ZW50VGltZShldmVudCk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZl
bnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgo
aW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZlbnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBO
b0J1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVdoZWVsRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
V2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNGU2ZDc5MjUyMGM0ODQ3MTc3OGM5OTMzZWE2MjU0OTIx
NDcwYWY3MC4uYTZmYzMzZmVlZDE1NTdmNDgyMTdmNDZhZDlhNTBiMTY4ZjI5NWZiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0
ay5jcHAKQEAgLTM3LDEzICszNywyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRp
YyBpbmxpbmUgV2FsbFRpbWUgZXZlbnRUaW1lKGNvbnN0IEdka0V2ZW50U2Nyb2xsKiBldmVudCkK
K3sKKyAgICBhdXRvIHRpbWVJbk1pbGxpc2Vjb25kcyA9IGdka19ldmVudF9nZXRfdGltZShldmVu
dCk7CisgICAgaWYgKHRpbWVJbk1pbGxpc2Vjb25kcyA9PSBHREtfQ1VSUkVOVF9USU1FKQorICAg
ICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHModGltZUluTWlsbGlzZWNvbmRzIC8gMTAwMC4pOworfQorCiAvLyBLZWVwIHRoaXMg
aW4gc3luYyB3aXRoIHRoZSBvdGhlciBwbGF0Zm9ybSBldmVudCBjb25zdHJ1Y3RvcnMKIFBsYXRm
b3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkK
IHsKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7Cisg
ICAgbV90aW1lc3RhbXAgPSBldmVudFRpbWUoZXZlbnQpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0
ZSAmIEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hp
ZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCmlu
ZGV4IGJjZWEzMjlkMjI4M2NhOTg0NTY2NjM3YTFkOGQ3NWQ1MTYwODRhOGMuLmMyMmVhYzY4YTky
YjQ0OTZlYTQzMWY5MmFjMmMxNDdlY2ViODcyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC00Niw2ICs0NiwxNCBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaXNHZGtLZXlDb2RlRnJvbUtleVBhZCh1bnNpZ25lZCBrZXl2YWwpCiAgICAgcmV0dXJu
IGtleXZhbCA+PSBHREtfS1BfU3BhY2UgJiYga2V5dmFsIDw9IEdES19LUF85OwogfQogCitzdGF0
aWMgaW5saW5lIFdhbGxUaW1lIGV2ZW50VGltZShjb25zdCBHZGtFdmVudCogZXZlbnQpCit7Cisg
ICAgYXV0byB0aW1lSW5NaWxsaXNlY29uZHMgPSBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpOwor
ICAgIGlmICh0aW1lSW5NaWxsaXNlY29uZHMgPT0gR0RLX0NVUlJFTlRfVElNRSkKKyAgICAgICAg
cmV0dXJuIFdhbGxUaW1lOjpub3coKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKHRpbWVJbk1pbGxpc2Vjb25kcyAvIDEwMDAuKTsKK30KKwogc3RhdGljIGlubGluZSBXZWJF
dmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkK
IHsKICAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOwpAQCAtMTQwLDcgKzE0OCw3IEBAIFdlYk1v
dXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGNvbnN0IEdka0V2
ZW50KiBldmVudCwgaW50IGN1CiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBkZWx0YVog
Ki8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENsaWNrQ291bnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUo
ZXZlbnQpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRUaW1lKGV2ZW50KSk7CiB9
CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNv
bnN0IEdka0V2ZW50KiBldmVudCkKQEAgLTIxMCw3ICsyMTgsNyBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IFdlYldoZQogICAgICAgICBtb21lbnR1bVBoYXNlLAogICAgICAgICBXZWJXaGVlbEV2ZW50OjpT
Y3JvbGxCeVBpeGVsV2hlZWxFdmVudCwKICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
LAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2
ZW50KSkpOworICAgICAgICBldmVudFRpbWUoZXZlbnQpKTsKIH0KIAogV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVz
dWx0cywgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcykKQEAgLTIyNyw3ICsyMzUsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQsCiAgICAgICAgIFdURk1vdmUoY29tbWFuZHMpLAogICAgICAgICBp
c0dka0tleUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXkua2V5dmFsKSwKICAgICAgICAgbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2Rr
X2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOworICAgICAgICBldmVudFRpbWUoZXZlbnQpKTsKIH0K
IAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNDksNyArMjU3LDcgQEAgV2ViVG91Y2hF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBWZWN0b3IKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9n
ZXRfdGltZShldmVudCkpKTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3Zl
KHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudFRpbWUoZXZlbnQp
KTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQoKTsKICNlbmRpZiAvLyBHVEtfQVBJ
X1ZFUlNJT05fMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDc3YTVjNzkxODcyOTNlNzZkZDhhZmZiNzI2YTRhY2I3NjE1ZTJm
NGQuLjcxZjdhZGExNGU4OWU1YTFjMTJmYzgwNmFlZWMzZmI1YzkxYzQxMTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04ocjIyMjM5Mik6IFtHVEtdIE1hbnkgZm9ybXMgdGVzdHMgYXJl
IGZhaWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVuc2tpcCB0ZXN0cyB0aGF0IHdlcmUgZmFpbGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE3LTA5LTI1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBXZWJDb3JlOjpUcmVlU2NvcGU6OmRv
Y3VtZW50U2NvcGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNzAxNWU2NjBmZmU3MWI1Mjg2MWE1ZjdlNDI2YWE0NmYxY2Y5Njc5MS4uNGY4MjgyMTliODU2
YWEzNTgyMGIyMGY5NWExNGY5NDFiY2U1NWMxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0MzAsMTYgKzM0MzAsNiBAQCB3ZWJraXQub3JnL2IvMTc1
NjYxIGluc3BlY3Rvci93b3JrZXIvcmVzb3VyY2VzLWluLXdvcmtlci5odG1sIFsgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xNzU2NjIgaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQuaHRt
bCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0
NDkgZmFzdC9mb3Jtcy9saXN0Ym94LXNlbGVjdGlvbi1hZnRlci10eXBlYWhlYWQuaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zvcm1zL2xpc3Rib3gtdHlwZWFoZWFk
LXNjcm9sbC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZm9ybXMv
b25jaGFuZ2Utc2VsZWN0LWNoZWNrLXZhbGlkaXR5Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3QtZG91YmxlLW9uY2hhbmdlLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3Qtc2NyaXB0LW9uY2hh
bmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxl
Y3QvbWVudWxpc3Qtb25pbnB1dC1maXJlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MTc3NDQ5IGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1kaXNhYmxlZC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZXZlbnRzL3BvcHVwLXdoZW4tc2VsZWN0LWNoYW5n
ZS5odG1sIFsgVGltZW91dCBDcmFzaCBdCi0KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAjIEVuZCBvZiBub24tY3Jhc2hpbmcsIG5vbi1mbGFreSB0ZXN0cyBmYWlsaW5nCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321825</attachid>
            <date>2017-09-26 09:29:39 -0700</date>
            <delta_ts>2017-10-02 11:15:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177449-20170926092938.patch</filename>
            <type>text/plain</type>
            <size>10418</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRmZjAxMTM4OGUzY2Zk
MDQyYTQzYWMxOTgxZDQ0MjdlMjU1NTQ5MC4uY2U3YWQ3OGMxOGRjODM2NjVmYjRkMjBlNDlmYjE2
MzMwOWNkMGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjIyMzky
KTogW0dUS10gTWFueSBmb3JtcyB0ZXN0cyBhcmUgZmFpbGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIGV2ZW50cycgdGltZXN0YW1w
IGFyZSBwcm9wZXJseSBpbml0aWFsaXplZCBmb3IgdGhlIEdUSyBwb3J0LgorICAgICAgICBHREtF
dmVudCdzIHRpbWUgaXMgYWN0dWFsbHkgaW4gbWlsbGlzZWNvbmRzLCBub3Qgc2Vjb25kcyBhbmQg
d2UgbmVlZAorICAgICAgICB0byBkZWFsIHdpdGggdGhlIEdES19DVVJSRU5UX1RJTUUgc3BlY2lh
bCB2YWx1ZSB0byBhdm9pZCBlbmRpbmcgdXAKKyAgICAgICAgd2l0aCBhIDAtdmFsdWUgV2FsbFRp
bWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
dmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9y
bU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKwogMjAxNy0wOS0yNSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4g
V2ViQ29yZTo6VHJlZVNjb3BlOjpkb2N1bWVudFNjb3BlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkODU2ODUzYjIx
YjgzNjQyMWE0NDhlZDkwZjY1MzNjZmE4OTg5ZjEuLjNhYjQzYTFmZGQzNmRjNjUwOTVlZGFmMmYx
NDI2NmM0ZmEzNzY0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDktMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjIz
OTIpOiBbR1RLXSBNYW55IGZvcm1zIHRlc3RzIGFyZSBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgZXZlbnRzJyB0aW1lc3Rh
bXAgYXJlIHByb3Blcmx5IGluaXRpYWxpemVkIGZvciB0aGUgR1RLIHBvcnQuCisgICAgICAgIEdE
S0V2ZW50J3MgdGltZSBpcyBhY3R1YWxseSBpbiBtaWxsaXNlY29uZHMsIG5vdCBzZWNvbmRzIGFu
ZCB3ZSBuZWVkCisgICAgICAgIHRvIGRlYWwgd2l0aCB0aGUgR0RLX0NVUlJFTlRfVElNRSBzcGVj
aWFsIHZhbHVlIHRvIGF2b2lkIGVuZGluZyB1cAorICAgICAgICB3aXRoIGEgMC12YWx1ZSBXYWxs
VGltZS4KKworICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZXZlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKwogMjAxNy0wOS0yNSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgQXR0cmlidXRlIGFu
IGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0Yjlm
ZThjMmExNzE4ZTBmMWYxNi4uOWMyMjg0NGE2ZjhiNTU3NzM2MGZlOTYxMGQ3YzJhMjI5MDdjZGY4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEyNTcsOSArMTI1NywxNyBAQCBzdGF0aWMgT3B0aW9u
U2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtF
dmVudEtleSogZQogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgV2Fs
bFRpbWUgZXZlbnRUaW1lKGNvbnN0IEdka0V2ZW50S2V5KiBldmVudCkKK3sKKyAgICBhdXRvIHRp
bWVJbk1pbGxpc2Vjb25kcyA9IGV2ZW50LT50aW1lOworICAgIGlmICh0aW1lSW5NaWxsaXNlY29u
ZHMgPT0gR0RLX0NVUlJFTlRfVElNRSkKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsK
KyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVJbk1pbGxpc2Vjb25kcyAv
IDEwMDAuKTsKK30KKwogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZv
cm0gZXZlbnQgY29uc3RydWN0b3JzCiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudChHZGtFdmVudEtleSogZXZlbnQsIGNvbnN0IENvbXBvc2l0aW9uUmVzdWx0cyYg
Y29tcG9zaXRpb25SZXN1bHRzKQotICAgIDogUGxhdGZvcm1FdmVudChldmVudFR5cGVGb3JHZGtL
ZXlFdmVudChldmVudCksIG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6
Om5vdygpKQorICAgIDogUGxhdGZvcm1FdmVudChldmVudFR5cGVGb3JHZGtLZXlFdmVudChldmVu
dCksIG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KGV2ZW50KSwgZXZlbnRUaW1lKGV2ZW50KSkKICAg
ICAsIG1fdGV4dChjb21wb3NpdGlvblJlc3VsdHMuc2ltcGxlU3RyaW5nLmxlbmd0aCgpID8gY29t
cG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZyA6IHNpbmdsZUNoYXJhY3RlclN0cmluZyhldmVu
dC0+a2V5dmFsKSkKICAgICAsIG1fdW5tb2RpZmllZFRleHQobV90ZXh0KQogICAgICwgbV9rZXko
a2V5VmFsdWVGb3JHZGtLZXlDb2RlKGV2ZW50LT5rZXl2YWwpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAppbmRleCBlYzkx
YWZlZWY3YTViZjFkYTA1ZTk0OTJiYWIwMjZjNGRkMGE5YTgwLi43NjllZTk0NDRjOTc3YTI1Nzk2
ZmIzMzhmNjliYWJmYTBmYzdjNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcApAQCAtMzMsMTIgKzMzLDIwIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGlubGluZSBXYWxsVGltZSBldmVudFRpbWUo
Y29uc3QgR2RrRXZlbnRCdXR0b24qIGV2ZW50KQoreworICAgIGF1dG8gdGltZUluTWlsbGlzZWNv
bmRzID0gZXZlbnQtPnRpbWU7CisgICAgaWYgKHRpbWVJbk1pbGxpc2Vjb25kcyA9PSBHREtfQ1VS
UkVOVF9USU1FKQorICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpOworICAgIHJldHVybiBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZUluTWlsbGlzZWNvbmRzIC8gMTAwMC4pOworfQor
CiAvLyBGSVhNRTogV291bGQgYmUgZXZlbiBiZXR0ZXIgdG8gZmlndXJlIG91dCB3aGljaCBtb2Rp
ZmllciBpcyBBbHQgaW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgR0RLX01PRDFfTUFTSy4KIAogLy8g
S2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29uc3RydWN0
b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1dHRv
biogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
ZXZlbnQtPnRpbWUpOworICAgIG1fdGltZXN0YW1wID0gZXZlbnRUaW1lKGV2ZW50KTsKICAgICBt
X3Bvc2l0aW9uID0gSW50UG9pbnQoKGludClldmVudC0+eCwgKGludClldmVudC0+eSk7CiAgICAg
bV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQtPnhfcm9vdCwgKGludClldmVu
dC0+eV9yb290KTsKICAgICBtX2J1dHRvbiA9IE5vQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcAppbmRleCA0ZTZk
NzkyNTIwYzQ4NDcxNzc4Yzk5MzNlYTYyNTQ5MjE0NzBhZjcwLi5mMzEwNjc5ZDgyYTc1NGNlZjg3
NjA0ZWJlMmM1MDJkMTRlZjhhYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcApAQCAtMzcsMTMgKzM3LDIxIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGlubGluZSBXYWxsVGltZSBldmVudFRpbWUo
Y29uc3QgR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQoreworICAgIGF1dG8gdGltZUluTWlsbGlzZWNv
bmRzID0gZXZlbnQtPnRpbWU7CisgICAgaWYgKHRpbWVJbk1pbGxpc2Vjb25kcyA9PSBHREtfQ1VS
UkVOVF9USU1FKQorICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpOworICAgIHJldHVybiBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZUluTWlsbGlzZWNvbmRzIC8gMTAwMC4pOworfQor
CiAvLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBvdGhlciBwbGF0Zm9ybSBldmVudCBjb25z
dHJ1Y3RvcnMKIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50
U2Nyb2xsKiBldmVudCkKIHsKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAg
ICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBXYWxs
VGltZTo6bm93KCk7CisgICAgbV90aW1lc3RhbXAgPSBldmVudFRpbWUoZXZlbnQpOwogCiAgICAg
aWYgKGV2ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8
PSBNb2RpZmllcjo6U2hpZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9n
dGsvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVu
dEZhY3RvcnkuY3BwCmluZGV4IGJjZWEzMjlkMjI4M2NhOTg0NTY2NjM3YTFkOGQ3NWQ1MTYwODRh
OGMuLmMyMmVhYzY4YTkyYjQ0OTZlYTQzMWY5MmFjMmMxNDdlY2ViODcyYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC00Niw2ICs0NiwxNCBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNHZGtLZXlDb2RlRnJvbUtleVBhZCh1bnNpZ25lZCBrZXl2
YWwpCiAgICAgcmV0dXJuIGtleXZhbCA+PSBHREtfS1BfU3BhY2UgJiYga2V5dmFsIDw9IEdES19L
UF85OwogfQogCitzdGF0aWMgaW5saW5lIFdhbGxUaW1lIGV2ZW50VGltZShjb25zdCBHZGtFdmVu
dCogZXZlbnQpCit7CisgICAgYXV0byB0aW1lSW5NaWxsaXNlY29uZHMgPSBnZGtfZXZlbnRfZ2V0
X3RpbWUoZXZlbnQpOworICAgIGlmICh0aW1lSW5NaWxsaXNlY29uZHMgPT0gR0RLX0NVUlJFTlRf
VElNRSkKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKKyAgICByZXR1cm4gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKHRpbWVJbk1pbGxpc2Vjb25kcyAvIDEwMDAuKTsKK30KKwogc3Rh
dGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KGNvbnN0IEdk
a0V2ZW50KiBldmVudCkKIHsKICAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOwpAQCAtMTQwLDcg
KzE0OCw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2
ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgaW50IGN1CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCAvKiBkZWx0YVogKi8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENsaWNr
Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
LAotICAgICAgICAgICAgICAgICAgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtf
ZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRU
aW1lKGV2ZW50KSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkKQEAgLTIxMCw3ICsyMTgsNyBAQCBX
ZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBH
ZGtFdmVudCogZXZlbnQsIFdlYldoZQogICAgICAgICBtb21lbnR1bVBoYXNlLAogICAgICAgICBX
ZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwKICAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2
ZW50X2dldF90aW1lKGV2ZW50KSkpOworICAgICAgICBldmVudFRpbWUoZXZlbnQpKTsKIH0KIAog
V2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQo
Y29uc3QgR2RrRXZlbnQqIGV2ZW50LCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMm
IGNvbXBvc2l0aW9uUmVzdWx0cywgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcykKQEAgLTIyNyw3
ICsyMzUsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsCiAgICAgICAgIFdURk1vdmUoY29tbWFu
ZHMpLAogICAgICAgICBpc0dka0tleUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXkua2V5dmFsKSwK
ICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOworICAgICAgICBldmVudFRp
bWUoZXZlbnQpKTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNDksNyArMjU3
LDcgQEAgV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQo
Y29uc3QgR2RrRXZlbnQqIGV2ZW50LCBWZWN0b3IKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVu
dCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBl
dmVudFRpbWUoZXZlbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQoKTsKICNl
bmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc3YTVjNzkxODcyOTNlNzZkZDhhZmZi
NzI2YTRhY2I3NjE1ZTJmNGQuLjcxZjdhZGExNGU4OWU1YTFjMTJmYzgwNmFlZWMzZmI1YzkxYzQx
MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyMjM5Mik6IFtHVEtdIE1hbnkg
Zm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0IHdlcmUgZmFpbGluZy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE3LTA5LTI1ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBXZWJDb3Jl
OjpUcmVlU2NvcGU6OmRvY3VtZW50U2NvcGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNzAxNWU2NjBmZmU3MWI1Mjg2MWE1ZjdlNDI2YWE0NmYxY2Y5Njc5
MS4uNGY4MjgyMTliODU2YWEzNTgyMGIyMGY5NWExNGY5NDFiY2U1NWMxYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0MzAsMTYgKzM0MzAsNiBAQCB3
ZWJraXQub3JnL2IvMTc1NjYxIGluc3BlY3Rvci93b3JrZXIvcmVzb3VyY2VzLWluLXdvcmtlci5o
dG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzU2NjIgaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctMmQuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9saXN0Ym94LXNlbGVjdGlvbi1hZnRlci10eXBl
YWhlYWQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zvcm1zL2xp
c3Rib3gtdHlwZWFoZWFkLXNjcm9sbC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc3
NDQ5IGZhc3QvZm9ybXMvb25jaGFuZ2Utc2VsZWN0LWNoZWNrLXZhbGlkaXR5Lmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3QtZG91YmxlLW9uY2hh
bmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxl
Y3Qtc2NyaXB0LW9uY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkg
ZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3Qtb25pbnB1dC1maXJlZC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1kaXNhYmxlZC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZXZlbnRzL3BvcHVwLXdo
ZW4tc2VsZWN0LWNoYW5nZS5odG1sIFsgVGltZW91dCBDcmFzaCBdCi0KICMvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hpbmcsIG5vbi1mbGFreSB0ZXN0
cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
</data>
<flag name="commit-queue"
          id="341779"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322399</attachid>
            <date>2017-10-02 11:25:33 -0700</date>
            <delta_ts>2017-10-02 12:50:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177449-20171002202532.patch</filename>
            <type>text/plain</type>
            <size>15964</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmZmNmYjBlY2QyZTRm
ZmJlNmEwYjIzN2QwNDMyYzI2YWIzOWExNy4uNGQxZGZmNmQ1NTI5NjNjMzNkZWNiNjYwNDkzYmUx
YWQ5ODAwMTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTEwLTAyICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OKHIyMjIzOTIpOiBbV1BFXVtHVEtdIE1hbnkgZm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcgZHVl
IHRvIGJyb2tlbiBldmVudCB0aW1lc3RhbXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L0d0a1V0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybU1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQ
bGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVs
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0
Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDE3LTA5LTMwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIERvbid0IHJldmVhbCBmaWxlIFVSTCB3aGVuIHBhc3RpbmcgYW4g
aW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZWQwODNjN2Y4YzU2ODA5MjM4NzFjZGI1NjA0Y2QxOWM4NTZhOWE3
MC4uOTA0NTM3YjE3YjJiNTEwMGZlZmIwMTkxYTVkZjU4NjA2MjBmODAwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxNy0xMC0wMiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RLXSBN
YW55IGZvcm1zIHRlc3RzIGFyZSBmYWlsaW5nIGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0YW1w
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFy
ZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL3dwZS9XZWJF
dmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3YWxsVGltZUZvckV2ZW50VGltZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVu
dCk6CisKIDIwMTctMDktMzAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEhhdmUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgb2JqZWN0cyBjb25zaXN0ZW50bHkgaW52
YWxpZGF0ZSB0aGUgY29ubmVjdGlvbiB3aGVuIGRlc3Ryb3llZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCAxZGMwYzE0YzVlOWRiYWNhMTNiNmZl
MGZjZjkzNTViOTQwZjI3MGY3Li4xZmEwNDIxNDg2NGM2NmRlODUzYTU0ZjIwNmM4ODlhNzE2ZDI3
ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApA
QCAtMjEsNiArMjEsOCBAQAogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlIDxndGsv
Z3RrLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2Fs
bFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCkBAIC01NCw2ICs1NiwxNSBAQCBib29sIHdpZGdldElz
T25zY3JlZW5Ub3BsZXZlbFdpbmRvdyhHdGtXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gd2lk
Z2V0ICYmIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwod2lkZ2V0KSAmJiBHVEtfSVNfV0lORE9XKHdp
ZGdldCkgJiYgIUdUS19JU19PRkZTQ1JFRU5fV0lORE9XKHdpZGdldCk7CiB9CiAKK1dhbGxUaW1l
IHdhbGxUaW1lRm9yRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQoreworICAgIC8vIFRoaXMg
d29ya3MgaWYgYW5kIG9ubHkgaWYgdGhlIFggc2VydmVyIG9yIFdheWxhbmQgY29tcG9zaXRvciBo
YXBwZW5zIHRvCisgICAgLy8gYmUgdXNpbmcgQ0xPQ0tfTU9OT1RPTklDIGZvciBpdHMgbW9ub3Rv
bmljIHRpbWUsIGFuZCBzbyBsb25nIGFzCisgICAgLy8gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSBj
b250aW51ZXMgdG8gZG8gc28gYXMgd2VsbCwgYW5kIHNvIGxvbmcgYXMKKyAgICAvLyBXVEY6Ok1v
bm90b25pY1RpbWUgY29udGludWVzIHRvIHVzZSBnX2dldF9tb25vdG9uaWNfdGltZSgpLgorICAg
IHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUo
ZXZlbnQpIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKK30KKwogI2lmIEVOQUJMRShE
RVZFTE9QRVJfTU9ERSkKIHN0YXRpYyBDU3RyaW5nIHRvcExldmVsUGF0aCgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgKaW5kZXggMDMyZGZkMzFhODg3MjQw
MTg5OTdkZmI2MTVlYzg2MzBlNTc1NGVmOS4uNjZjNmI0ZDk1Njk5MzYxZTVhMzc3MmUwMzk2MjIy
MGRiMTU4Yzc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0
aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMu
aApAQCAtMTksNiArMTksNyBAQAogI2lmbmRlZiBHdGtVdGlsaXRpZXNfaCAKICNkZWZpbmUgR3Rr
VXRpbGl0aWVzX2ggCiAKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI4LDYgKzI5LDggQEAg
Y2xhc3MgSW50UG9pbnQ7CiBJbnRQb2ludCBjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50
KEd0a1dpZGdldCosIGNvbnN0IEludFBvaW50Jik7CiBib29sIHdpZGdldElzT25zY3JlZW5Ub3Bs
ZXZlbFdpbmRvdyhHdGtXaWRnZXQqKTsKIAorV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25z
dCBHZGtFdmVudCopOworCiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQogQ1N0cmluZyB3ZWJr
aXRCdWlsZERpcmVjdG9yeSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDRmYzEzYmVj
YzNhYjJkNjFhZWQ0NGI5ZmU4YzJhMTcxOGUwZjFmMTYuLmYyYTIwN2YxMTdhMDYzZmNjM2RlMTFk
ZjRmMTBmZDQxOGJhMWQwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAK
KyNpbmNsdWRlICJHdGtVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKQEAg
LTEyNTksNyArMTI2MCw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI+IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBlCiAKIC8vIEtlZXAgdGhp
cyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9ycwogUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoR2RrRXZlbnRLZXkqIGV2
ZW50LCBjb25zdCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVzdWx0cykKLSAgICA6
IFBsYXRmb3JtRXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBtb2RpZmllcnNG
b3JHZGtLZXlFdmVudChldmVudCksIFdhbGxUaW1lOjpub3coKSkKKyAgICA6IFBsYXRmb3JtRXZl
bnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVu
dChldmVudCksIHdhbGxUaW1lRm9yRXZlbnQocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2
ZW50KSkpCiAgICAgLCBtX3RleHQoY29tcG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5n
dGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmcoZXZlbnQtPmtleXZhbCkpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAg
ICAsIG1fa2V5KGtleVZhbHVlRm9yR2RrS2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAK
aW5kZXggZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRkZDBhOWE4MC4uODgwN2Q1YzI3
OWI5YWI2NDAzZmI0YmFlYTk5OTczZWFjYmU0ZGU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKIAorI2luY2x1ZGUgIkd0a1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgpAQCAtMzgsNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBLZWVwIHRoaXMg
aW4gc3luYyB3aXRoIHRoZSBvdGhlciBwbGF0Zm9ybSBldmVudCBjb25zdHJ1Y3RvcnMKIFBsYXRm
b3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEdka0V2ZW50QnV0dG9uKiBldmVudCkK
IHsKLSAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGlt
ZSk7CisgICAgbV90aW1lc3RhbXAgPSB3YWxsVGltZUZvckV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8
R2RrRXZlbnQqPihldmVudCkpOwogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50
LT54LCAoaW50KWV2ZW50LT55KTsKICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQoKGlu
dClldmVudC0+eF9yb290LCAoaW50KWV2ZW50LT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9C
dXR0b247CkBAIC04Nyw3ICs4OCw3IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50KEdka0V2ZW50QnV0dG9uKiBldmVudCkKIAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0
Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRNb3Rpb24qIG1vdGlvbikKIHsKLSAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtb3Rpb24tPnRpbWUpOworICAgIG1fdGltZXN0
YW1wID0gd2FsbFRpbWVGb3JFdmVudChyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4obW90aW9u
KSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlv
bi0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jv
b3QsIChpbnQpbW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsu
Y3BwCmluZGV4IDRlNmQ3OTI1MjBjNDg0NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAuLmUxMTUw
MmU4YWFkNmJjNTFhZWFhYjFjNTE5NzNiMDBhNTc5NTNmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAKICNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCisjaW5jbHVkZSAiR3RrVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgpAQCAtNDMsNyArNDQsNyBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hl
ZWxFdmVudChHZGtFdmVudFNjcm9sbCogZXZlbnQpCiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRl
bHRhID0gMTsKIAogICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOwotICAgIG1fdGlt
ZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOworICAgIG1fdGltZXN0YW1wID0gd2FsbFRpbWVGb3JF
dmVudChyZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpKTsKIAogICAgIGlmIChldmVu
dC0+c3RhdGUgJiBHREtfU0hJRlRfTUFTSykKICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZp
ZXI6OlNoaWZ0S2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5
LmNwcAppbmRleCBiY2VhMzI5ZDIyODNjYTk4NDU2NjYzN2ExZDhkNzVkNTE2MDg0YThjLi5jMTli
MTkyYzEzZDkyNThhZTY2YzRhNmU3MTYxNzUyMmU0OGFiMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2lu
Y2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGls
aXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNsdWRlIDxn
ZGsvZ2RrLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KQEAgLTEzMiwxNSArMTMzLDE1
IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGNv
bnN0IEdka0V2ZW50KiBldmVudCwgaW50IGN1CiAgICAgfQogCiAgICAgcmV0dXJuIFdlYk1vdXNl
RXZlbnQodHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25Gb3JFdmVudChldmVu
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQoeCwgeSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgSW50UG9pbnQoeFJvb3QsIHlSb290KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAwIC8qIGRlbHRhWCAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRl
bHRhWSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbHRhWiAqLywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2xpY2tDb3VudCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsK
KyAgICAgICAgYnV0dG9uRm9yRXZlbnQoZXZlbnQpLAorICAgICAgICBJbnRQb2ludCh4LCB5KSwK
KyAgICAgICAgSW50UG9pbnQoeFJvb3QsIHlSb290KSwKKyAgICAgICAgMCAvKiBkZWx0YVggKi8s
CisgICAgICAgIDAgLyogZGVsdGFZICovLAorICAgICAgICAwIC8qIGRlbHRhWiAqLywKKyAgICAg
ICAgY3VycmVudENsaWNrQ291bnQsCisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwK
KyAgICAgICAgd2FsbFRpbWVGb3JFdmVudChldmVudCkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQp
CkBAIC0yMTAsNyArMjExLDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAgICAgbW9t
ZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZl
bnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKKyAgICAgICAgd2Fs
bFRpbWVGb3JFdmVudChldmVudCkpOwogfQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGNvbnN0
IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29tcG9zaXRpb25SZXN1bHRzLCBWZWN0b3I8
U3RyaW5nPiYmIGNvbW1hbmRzKQpAQCAtMjI3LDcgKzIyOCw3IEBAIFdlYktleWJvYXJkRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBl
dmVudCwKICAgICAgICAgV1RGTW92ZShjb21tYW5kcyksCiAgICAgICAgIGlzR2RrS2V5Q29kZUZy
b21LZXlQYWQoZXZlbnQtPmtleS5rZXl2YWwpLAogICAgICAgICBtb2RpZmllcnNGb3JFdmVudChl
dmVudCksCi0gICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3Rp
bWUoZXZlbnQpKSk7CisgICAgICAgIHdhbGxUaW1lRm9yRXZlbnQoZXZlbnQpKTsKIH0KIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNDksNyArMjUwLDcgQEAgV2ViVG91Y2hFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50
LCBWZWN0b3IKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgcmV0
dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIG1vZGlmaWVyc0Zv
ckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGlt
ZShldmVudCkpKTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNo
UG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCB3YWxsVGltZUZvckV2ZW50KGV2ZW50
KSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQ
SV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5j
cHAKaW5kZXggOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdhNC4uY2MxNTVh
NTU4M2NmMDA4ODQzNTdmM2ViODMwZDEwNWUyOGU2MjdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTcyLDYgKzcyLDE2IEBAIHN0YXRpYyBT
dHJpbmcgaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9h
cmRfZXZlbnQqIGV2ZW50CiAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJVKyUwNFgiLCBldmVu
dC0+dW5pY29kZSk7CiB9CiAKK1dhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnRUaW1lKHVpbnQ2NF90
IHRpbWVzdGFtcCkKK3sKKyAgICAvLyBUaGlzIHdvcmtzIGlmIGFuZCBvbmx5IGlmIHRoZSBXUEUg
YmFja2VuZCB1c2VzIENMT0NLX01PTk9UT05JQyBmb3IgaXRzCisgICAgLy8gZXZlbnQgdGltZXN0
YW1wcywgYW5kIHNvIGxvbmcgYXMgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSBjb250aW51ZXMgdG8g
ZG8KKyAgICAvLyBzbyBhcyB3ZWxsLCBhbmQgc28gbG9uZyBhcyBXVEY6Ok1vbm90b25pY1RpbWUg
Y29udGludWVzIHRvIHVzZQorICAgIC8vIGdfZ2V0X21vbm90b25pY190aW1lKCkuIEl0IGFsc28g
YXNzdW1lcyB0aGUgZXZlbnQgdGltZXN0YW1wIGlzIGluCisgICAgLy8gbWlsbGlzZWNvbmRzLgor
ICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXAgLyAxMDAw
LikuYXBwcm94aW1hdGVXYWxsVGltZSgpOworfQorCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJk
X2V2ZW50KiBldmVudCkKIHsKICAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOwpAQCAtODEsNyArOTEsNyBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYQogICAgICAgICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNp
bmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmllclN0cmluZywKICAgICAgICAgd3BlX2lucHV0
X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRf
c2luZ2xldG9uKCksIGV2ZW50KSwKICAgICAgICAgZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsCi0gICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50
KGV2ZW50KSwgd2FsbFRpbWVGb3JFdmVudFRpbWUoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91
c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0x
MTksNyArMTI5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1v
dXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQ
b2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEg
LyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0
dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0
YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoZXZlbnQtPnRpbWUpKTsKKyAgICAgICAgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nh
c3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIHdhbGxUaW1lRm9yRXZlbnRUaW1lKGV2ZW50LT50
aW1lKSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQpAQCAtMTU0LDcgKzE2NCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCoKICAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYldoZWVs
RXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIGRlbHRh
LCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3Rh
dGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCB3YWxsVGltZUZvckV2ZW50VGltZShldmVudC0+dGltZSkpOwogfQogCiBzdGF0aWMg
V2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRTdGF0ZSBzdGF0ZUZvclRv
dWNoUG9pbnQoaW50IG1haW5FdmVudElkLCBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3JhdyogcG9pbnQpCkBAIC0yMDksNyArMjE5LDcgQEAgV2ViVG91Y2hFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVu
dCoKICAgICAgICAgICAgICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBv
aW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhl
dmVudC0+dGltZSkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCB3YWxsVGltZUZvckV2ZW50VGltZShl
dmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZTgyNmFk
Mzc2NGFiMWFkNjVjZWUxNmNmYzFiMzY1NmI0NGM3NTEyLi43NmE5ODJhM2YxMDhmOGQ2NTE4MWUw
NDY4YWZmZDY4N2E0MGMyNzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMTAtMDIgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04ocjIyMjM5Mik6IFtXUEVdW0dUS10gTWFueSBmb3JtcyB0ZXN0cyBhcmUgZmFpbGluZyBk
dWUgdG8gYnJva2VuIGV2ZW50IHRpbWVzdGFtcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMTctMDktMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
RG9uJ3QgcmV2ZWFsIGZpbGUgVVJMIHdoZW4gcGFzdGluZyBhbiBpbWFnZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzMmM3N2IwMDZlZWM0MDE2OWU3YjMx
YmRiNDI4NWNlMjg3YzIxMzIwLi45NDI4Y2Q3M2E1NGFkZDU5YzAxY2RkMmFkNTBhM2U0ODRhNGE0
NGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQ0
OSwxNiArMzQ0OSw2IEBAIHdlYmtpdC5vcmcvYi8xNzU2NjEgaW5zcGVjdG9yL3dvcmtlci9yZXNv
dXJjZXMtaW4td29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3NTY2MiBp
bnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zvcm1zL2xpc3Rib3gtc2Vs
ZWN0aW9uLWFmdGVyLXR5cGVhaGVhZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc3
NDQ5IGZhc3QvZm9ybXMvbGlzdGJveC10eXBlYWhlYWQtc2Nyb2xsLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9vbmNoYW5nZS1zZWxlY3QtY2hlY2stdmFs
aWRpdHkuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zvcm1zL3Nl
bGVjdC1kb3VibGUtb25jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0
OSBmYXN0L2Zvcm1zL3NlbGVjdC1zY3JpcHQtb25jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zvcm1zL3NlbGVjdC9tZW51bGlzdC1vbmlucHV0LWZpcmVk
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3Qv
c2VsZWN0LWRpc2FibGVkLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFz
dC9ldmVudHMvcG9wdXAtd2hlbi1zZWxlY3QtY2hhbmdlLmh0bWwgWyBUaW1lb3V0IENyYXNoIF0K
LQogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIG5vbi1jcmFzaGlu
Zywgbm9uLWZsYWt5IHRlc3RzIGZhaWxpbmcKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322413</attachid>
            <date>2017-10-02 12:50:05 -0700</date>
            <delta_ts>2017-10-03 07:54:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177449-20171002215004.patch</filename>
            <type>text/plain</type>
            <size>15953</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkwMjg1MmM5NjJhMDBi
MzM2YTlhZTIxZWRjNjEwMTU2ZGJmNDMyYy4uODUwYjExNjU2YTRkNDZhMjZmNmNjMTE1MTI0ZDky
ZGUyOGFlNDY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTEwLTAyICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OKHIyMjIzOTIpOiBbV1BFXVtHVEtdIE1hbnkgZm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcgZHVl
IHRvIGJyb2tlbiBldmVudCB0aW1lc3RhbXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L0d0a1V0aWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisK
IDIwMTctMTAtMDIgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAg
IENyYXNoZXMgd2l0aCBndWFyZCBtYWxsb2MgdW5kZXIgUmVuZGVyRnVsbFNjcmVlbjo6dW53cmFw
UmVuZGVyZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMmI5N2U3MDUwYWIyYzc4N2Q2MTU4NTBhMmU5NTUwMjQ2N2Vm
MzRiZS4uMTJkMzYxMmNlOGVmZDJkYjlkMGZkNTYzZjA2NWJiZjIwZGEwNzZmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNy0xMC0wMiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56
YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RL
XSBNYW55IGZvcm1zIHRlc3RzIGFyZSBmYWlsaW5nIGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0
YW1wcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3
NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
aGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL3dwZS9X
ZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3YWxsVGltZUZvckV2ZW50VGlt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRF
dmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VF
dmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxF
dmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hF
dmVudCk6CisKIDIwMTctMTAtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBFeHBvc2UgbW9yZSBXS1ByZWZlcmVuY2VzIFNQSSB0byBtYXRj
aCBDIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApp
bmRleCAxZGMwYzE0YzVlOWRiYWNhMTNiNmZlMGZjZjkzNTViOTQwZjI3MGY3Li40YzQ4YmQxZDNl
YzI5YjBjZGRkMjJjODIzMTA2NGIzOGEzNjdiOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApAQCAtNTQsNiArNTQsMTYgQEAgYm9vbCB3aWRnZXRJ
c09uc2NyZWVuVG9wbGV2ZWxXaW5kb3coR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIHdp
ZGdldCAmJiBndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHdpZGdldCkgJiYgR1RLX0lTX1dJTkRPVyh3
aWRnZXQpICYmICFHVEtfSVNfT0ZGU0NSRUVOX1dJTkRPVyh3aWRnZXQpOwogfQogCit0ZW1wbGF0
ZTw+CitXYWxsVGltZSB3YWxsVGltZUZvckV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCkKK3sK
KyAgICAvLyBUaGlzIHdvcmtzIGlmIGFuZCBvbmx5IGlmIHRoZSBYIHNlcnZlciBvciBXYXlsYW5k
IGNvbXBvc2l0b3IgaGFwcGVucyB0bworICAgIC8vIGJlIHVzaW5nIENMT0NLX01PTk9UT05JQyBm
b3IgaXRzIG1vbm90b25pYyB0aW1lLCBhbmQgc28gbG9uZyBhcworICAgIC8vIGdfZ2V0X21vbm90
b25pY190aW1lKCkgY29udGludWVzIHRvIGRvIHNvIGFzIHdlbGwsIGFuZCBzbyBsb25nIGFzCisg
ICAgLy8gV1RGOjpNb25vdG9uaWNUaW1lIGNvbnRpbnVlcyB0byB1c2UgZ19nZXRfbW9ub3Rvbmlj
X3RpbWUoKS4KKyAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2
ZW50X2dldF90aW1lKGV2ZW50KSAvIDEwMDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7Cit9CisK
ICNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCiBzdGF0aWMgQ1N0cmluZyB0b3BMZXZlbFBhdGgo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCmluZGV4IDAz
MmRmZDMxYTg4NzI0MDE4OTk3ZGZiNjE1ZWM4NjMwZTU3NTRlZjkuLjUxMWU2MDE0ZmViMzAzZWRm
YzllN2IzNjg4OWEzZDQwZjg0NDYwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HdGtVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmgKQEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgR3RrVXRpbGl0aWVzX2gg
CiAjZGVmaW5lIEd0a1V0aWxpdGllc19oIAogCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI4LDYgKzMwLDEyIEBAIGNsYXNzIEludFBv
aW50OwogSW50UG9pbnQgY29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludChHdGtXaWRnZXQq
LCBjb25zdCBJbnRQb2ludCYpOwogYm9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3co
R3RrV2lkZ2V0Kik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEdka0V2ZW50VHlwZT4KK1dhbGxUaW1l
IHdhbGxUaW1lRm9yRXZlbnQoY29uc3QgR2RrRXZlbnRUeXBlKiBldmVudCkgeyByZXR1cm4gTW9u
b3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUgLyAxMDAwLikuYXBwcm94aW1h
dGVXYWxsVGltZSgpOyB9CisKK3RlbXBsYXRlPD4KK1dhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnQo
Y29uc3QgR2RrRXZlbnQqKTsKKwogI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKIENTdHJpbmcg
d2Via2l0QnVpbGREaXJlY3RvcnkoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcAppbmRleCA0ZmMx
M2JlY2MzYWIyZDYxYWVkNDRiOWZlOGMyYTE3MThlMGYxZjE2Li4yM2U3YzNjMDNjODRmY2ZkMDcx
NmQyMGZkYzNhZTIzZTA3N2NkMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgogCisjaW5jbHVkZSAiR3RrVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgi
CkBAIC0xMjU5LDcgKzEyNjAsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZQogCiAvLyBLZWVw
IHRoaXMgaW4gc3luYyB3aXRoIHRoZSBvdGhlciBwbGF0Zm9ybSBldmVudCBjb25zdHJ1Y3RvcnMK
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEdka0V2ZW50S2V5
KiBldmVudCwgY29uc3QgQ29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMpCi0g
ICAgOiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZp
ZXJzRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6bm93KCkpCisgICAgOiBQbGF0Zm9y
bUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5
RXZlbnQoZXZlbnQpLCB3YWxsVGltZUZvckV2ZW50KGV2ZW50KSkKICAgICAsIG1fdGV4dChjb21w
b3NpdGlvblJlc3VsdHMuc2ltcGxlU3RyaW5nLmxlbmd0aCgpID8gY29tcG9zaXRpb25SZXN1bHRz
LnNpbXBsZVN0cmluZyA6IHNpbmdsZUNoYXJhY3RlclN0cmluZyhldmVudC0+a2V5dmFsKSkKICAg
ICAsIG1fdW5tb2RpZmllZFRleHQobV90ZXh0KQogICAgICwgbV9rZXkoa2V5VmFsdWVGb3JHZGtL
ZXlDb2RlKGV2ZW50LT5rZXl2YWwpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAppbmRleCBlYzkxYWZlZWY3YTViZjFkYTA1
ZTk0OTJiYWIwMjZjNGRkMGE5YTgwLi5lOTAyMDRhZWY2MWQ2M2ZkNDEyZGY1NDQzNDM0MWVhMTc4
ZWIyY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1N
b3VzZUV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZv
cm1Nb3VzZUV2ZW50R3RrLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogCisjaW5jbHVkZSAiR3RrVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSA8Z2Rr
L2dkay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0zOCw3ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBs
YXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9ycwogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1v
dXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogewotICAgIG1fdGltZXN0YW1wID0gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKTsKKyAgICBtX3RpbWVzdGFtcCA9IHdh
bGxUaW1lRm9yRXZlbnQoZXZlbnQpOwogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2
ZW50LT54LCAoaW50KWV2ZW50LT55KTsKICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQo
KGludClldmVudC0+eF9yb290LCAoaW50KWV2ZW50LT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0g
Tm9CdXR0b247CkBAIC04Nyw3ICs4OCw3IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KEdka0V2ZW50QnV0dG9uKiBldmVudCkKIAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQ
bGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRNb3Rpb24qIG1vdGlvbikKIHsKLSAgICBtX3RpbWVz
dGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtb3Rpb24tPnRpbWUpOworICAgIG1fdGlt
ZXN0YW1wID0gd2FsbFRpbWVGb3JFdmVudChtb3Rpb24pOwogICAgIG1fcG9zaXRpb24gPSBJbnRQ
b2ludCgoaW50KW1vdGlvbi0+eCwgKGludCltb3Rpb24tPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRp
b24gPSBJbnRQb2ludCgoaW50KW1vdGlvbi0+eF9yb290LCAoaW50KW1vdGlvbi0+eV9yb290KTsK
ICAgICBtX2J1dHRvbiA9IE5vQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcAppbmRleCA0ZTZkNzkyNTIwYzQ4NDcx
Nzc4Yzk5MzNlYTYyNTQ5MjE0NzBhZjcwLi4zYWUxZGFkYmVlNGNhNWY4N2RlNWUxYjE5ODFiMzY2
NzhhYTk3N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZv
cm1XaGVlbEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1XaGVlbEV2ZW50R3RrLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkd0
a1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KQEAgLTQzLDcgKzQ0LDcgQEAg
UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2
ZW50KQogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAKICAgICBtX3R5cGUgPSBQ
bGF0Zm9ybUV2ZW50OjpXaGVlbDsKLSAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsK
KyAgICBtX3RpbWVzdGFtcCA9IHdhbGxUaW1lRm9yRXZlbnQoZXZlbnQpOwogCiAgICAgaWYgKGV2
ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2Rp
Zmllcjo6U2hpZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2Vi
RXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwCmluZGV4IGJjZWEzMjlkMjI4M2NhOTg0NTY2NjM3YTFkOGQ3NWQ1MTYwODRhOGMuLmMx
OWIxOTJjMTNkOTI1OGFlNjZjNGE2ZTcxNjE3NTIyZTQ4YWIzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAj
aW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0
aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVmVyc2lvbmluZy5oPgogI2luY2x1ZGUg
PGdkay9nZGsuaD4KICNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgpAQCAtMTMyLDE1ICsxMzMs
MTUgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
Y29uc3QgR2RrRXZlbnQqIGV2ZW50LCBpbnQgY3UKICAgICB9CiAKICAgICByZXR1cm4gV2ViTW91
c2VFdmVudCh0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbkZvckV2ZW50KGV2
ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludCh4LCB5KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBJbnRQb2ludCh4Um9vdCwgeVJvb3QpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIDAgLyogZGVsdGFYICovLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyog
ZGVsdGFZICovLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkp
OworICAgICAgICBidXR0b25Gb3JFdmVudChldmVudCksCisgICAgICAgIEludFBvaW50KHgsIHkp
LAorICAgICAgICBJbnRQb2ludCh4Um9vdCwgeVJvb3QpLAorICAgICAgICAwIC8qIGRlbHRhWCAq
LywKKyAgICAgICAgMCAvKiBkZWx0YVkgKi8sCisgICAgICAgIDAgLyogZGVsdGFaICovLAorICAg
ICAgICBjdXJyZW50Q2xpY2tDb3VudCwKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
LAorICAgICAgICB3YWxsVGltZUZvckV2ZW50KGV2ZW50KSk7CiB9CiAKIFdlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVu
dCkKQEAgLTIxMCw3ICsyMTEsNyBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIFdlYldoZQogICAgICAgICBt
b21lbnR1bVBoYXNlLAogICAgICAgICBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxF
dmVudCwKICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOworICAgICAgICB3
YWxsVGltZUZvckV2ZW50KGV2ZW50KSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29u
c3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMsIFZlY3Rv
cjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI4LDcgQEAgV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQq
IGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtLZXlDb2Rl
RnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50
KGV2ZW50KSwKLSAgICAgICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRf
dGltZShldmVudCkpKTsKKyAgICAgICAgd2FsbFRpbWVGb3JFdmVudChldmVudCkpOwogfQogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTI0OSw3ICsyNTAsNyBAQCBXZWJUb3VjaEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChjb25zdCBHZGtFdmVudCogZXZl
bnQsIFZlY3RvcgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90
aW1lKGV2ZW50KSkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIHdhbGxUaW1lRm9yRXZlbnQoZXZl
bnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQoKTsKICNlbmRpZiAvLyBHVEtf
QVBJX1ZFUlNJT05fMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcAppbmRleCA5NDc0MTMwNjYzM2E4M2E5NGU0MGRjODBlNDViOTlkOTllNWIxN2E0Li5jYzE1
NWE1NTgzY2YwMDg4NDM1N2YzZWI4MzBkMTA1ZTI4ZTYyN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtNzIsNiArNzIsMTYgQEAgc3RhdGlj
IFN0cmluZyBpZGVudGlmaWVyU3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXli
b2FyZF9ldmVudCogZXZlbnQKICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2
ZW50LT51bmljb2RlKTsKIH0KIAorV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudFRpbWUodWludDY0
X3QgdGltZXN0YW1wKQoreworICAgIC8vIFRoaXMgd29ya3MgaWYgYW5kIG9ubHkgaWYgdGhlIFdQ
RSBiYWNrZW5kIHVzZXMgQ0xPQ0tfTU9OT1RPTklDIGZvciBpdHMKKyAgICAvLyBldmVudCB0aW1l
c3RhbXBzLCBhbmQgc28gbG9uZyBhcyBnX2dldF9tb25vdG9uaWNfdGltZSgpIGNvbnRpbnVlcyB0
byBkbworICAgIC8vIHNvIGFzIHdlbGwsIGFuZCBzbyBsb25nIGFzIFdURjo6TW9ub3RvbmljVGlt
ZSBjb250aW51ZXMgdG8gdXNlCisgICAgLy8gZ19nZXRfbW9ub3RvbmljX3RpbWUoKS4gSXQgYWxz
byBhc3N1bWVzIHRoZSBldmVudCB0aW1lc3RhbXAgaXMgaW4KKyAgICAvLyBtaWxsaXNlY29uZHMu
CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVzdGFtcCAvIDEw
MDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCk7Cit9CisKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9h
cmRfZXZlbnQqIGV2ZW50KQogewogICAgIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcgPSBz
aW5nbGVDaGFyYWN0ZXJTdHJpbmdGb3JLZXlFdmVudChldmVudCk7CkBAIC04MSw3ICs5MSw3IEBA
IFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hCiAgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywg
c2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAogICAgICAgICB3cGVfaW5w
dXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dl
dF9zaW5nbGV0b24oKSwgZXZlbnQpLAogICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwKLSAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZl
bnQoZXZlbnQpLCB3YWxsVGltZUZvckV2ZW50VGltZShldmVudC0+dGltZSkpOwogfQogCiBXZWJN
b3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKQEAg
LTExOSw3ICsxMjksNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
TW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbgogICAgIFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUo
MSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBi
dXR0b24sIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgMCwgMCwgMCwgY2xpY2tDb3VudCwg
c3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhldmVudC0+dGltZSkpOworICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNf
Y2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgd2FsbFRpbWVGb3JFdmVudFRpbWUoZXZlbnQt
PnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTY0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Kgog
ICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAg
cG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hl
ZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVs
dGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKGV2ZW50LT50aW1lKSk7CisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2
ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlm
aWVycz4oMCksIHdhbGxUaW1lRm9yRXZlbnRUaW1lKGV2ZW50LT50aW1lKSk7CiB9CiAKIHN0YXRp
YyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9y
VG91Y2hQb2ludChpbnQgbWFpbkV2ZW50SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfcmF3KiBwb2ludCkKQEAgLTIwOSw3ICsyMTksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50KgogICAgICAgICAgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNo
UG9pbnRzKSwgV2ViRXZlbnQ6Ok1vZGlmaWVycygwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KGV2ZW50LT50aW1lKSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0
b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIHdhbGxUaW1lRm9yRXZlbnRUaW1l
KGV2ZW50LT50aW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg3ZWJj
YTBhYTRjYTgyOWFkNGZmNDk3YTFhYWFjMzc3ZWQ5YzQzODkuLjJhYzRmNWFkNzdlMzJhMDgwMGFk
NGI4N2IyY2MxMjQ4ZTI1ZjMyYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMC0wMiAg
TWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RLXSBNYW55IGZvcm1zIHRlc3RzIGFyZSBmYWlsaW5n
IGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0YW1wcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxNy0xMC0wMiAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlYmFzZWxpbmUgb2YganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRp
Y2F0ZWQtd29ya2VyLmh0bWwgYWZ0ZXIgcjIyMjY5Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzJjNzdiMDA2ZWVjNDAxNjllN2IzMWJkYjQyODVjZTI4
N2MyMTMyMC4uOTQyOGNkNzNhNTRhZGQ1OWMwMWNkZDJhZDUwYTNlNDg0YTRhNDRhYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0NDksMTYgKzM0NDks
NiBAQCB3ZWJraXQub3JnL2IvMTc1NjYxIGluc3BlY3Rvci93b3JrZXIvcmVzb3VyY2VzLWluLXdv
cmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzU2NjIgaW5zcGVjdG9yL2Nh
bnZhcy9yZWNvcmRpbmctMmQuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc3NDQ5
IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9saXN0Ym94LXNlbGVjdGlvbi1hZnRl
ci10eXBlYWhlYWQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NzQ0OSBmYXN0L2Zv
cm1zL2xpc3Rib3gtdHlwZWFoZWFkLXNjcm9sbC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMTc3NDQ5IGZhc3QvZm9ybXMvb25jaGFuZ2Utc2VsZWN0LWNoZWNrLXZhbGlkaXR5Lmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3QtZG91Ymxl
LW9uY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzc0NDkgZmFzdC9mb3Jt
cy9zZWxlY3Qtc2NyaXB0LW9uY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
Nzc0NDkgZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3Qtb25pbnB1dC1maXJlZC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1kaXNh
YmxlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc3NDQ5IGZhc3QvZXZlbnRzL3Bv
cHVwLXdoZW4tc2VsZWN0LWNoYW5nZS5odG1sIFsgVGltZW91dCBDcmFzaCBdCi0KICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hpbmcsIG5vbi1mbGFr
eSB0ZXN0cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322534</attachid>
            <date>2017-10-03 09:32:55 -0700</date>
            <delta_ts>2017-10-04 02:08:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177449-20171003183254.patch</filename>
            <type>text/plain</type>
            <size>4330</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZkZDQxNmRhNWQ4NGJl
NTYwNTc5ZGMwYmViZDM3ZWM1MWEzNGFlNC4uM2M1ZThiMmZhNzZiYzI0OTdmZjc2ZGJhMTNiMWQ3
NTQ4Zjk2ZmVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDE4IEBACiAgICAgICAgIFJFR1JFU1NJ
T04ocjIyMjM5Mik6IFtXUEVdW0dUS10gTWFueSBmb3JtcyB0ZXN0cyBhcmUgZmFpbGluZyBkdWUg
dG8gYnJva2VuIGV2ZW50IHRpbWVzdGFtcHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzQ0OQogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp3YWxsVGltZUZvckV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjp3YWxsVGltZUZvckV2ZW50KToKKwor
MjAxNy0xMC0wMyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RLXSBNYW55IGZvcm1zIHRlc3Rz
IGFyZSBmYWlsaW5nIGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0YW1wcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5CisKICAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCiAKICAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVXRpbGl0
aWVzLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMmEwZDhhMTE0NDljYmJhMDc0M2MxZTYxNzFhMDAyN2U1OTE0
MzU1Ni4uNGQ4MWVhYmM3OGRkZWQ5MDAxNDAwMjJjOTU2YTJkMTg3NzhmODcyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTMsNiArMywxNiBAQAogICAgICAgICBSRUdSRVNTSU9OKHIyMjIzOTIpOiBbV1BFXVtHVEtd
IE1hbnkgZm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcgZHVlIHRvIGJyb2tlbiBldmVudCB0aW1lc3Rh
bXBzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0
NDkKIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2FsbFRpbWVG
b3JFdmVudFRpbWUpOgorCisyMDE3LTEwLTAzICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjIzOTIpOiBbV1BFXVtHVEtd
IE1hbnkgZm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcgZHVlIHRvIGJyb2tlbiBldmVudCB0aW1lc3Rh
bXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0
NDkKKwogICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KIAogICAgICAgICAqIFNoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1V0aWxpdGllcy5jcHAKaW5kZXggNGM0OGJkMWQzZWMyOWIwY2RkZDIyYzgyMzEwNjRiMzhh
MzY3YjhhNy4uMTRhZjBlYTJjYzhmMzhkMDkwYTBiNzJmOWMxZDU1M2VjN2JlMmIyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAKQEAgLTYxLDcgKzYx
LDggQEAgV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCiAg
ICAgLy8gYmUgdXNpbmcgQ0xPQ0tfTU9OT1RPTklDIGZvciBpdHMgbW9ub3RvbmljIHRpbWUsIGFu
ZCBzbyBsb25nIGFzCiAgICAgLy8gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSBjb250aW51ZXMgdG8g
ZG8gc28gYXMgd2VsbCwgYW5kIHNvIGxvbmcgYXMKICAgICAvLyBXVEY6Ok1vbm90b25pY1RpbWUg
Y29udGludWVzIHRvIHVzZSBnX2dldF9tb25vdG9uaWNfdGltZSgpLgotICAgIHJldHVybiBNb25v
dG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpIC8gMTAw
MC4pLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKKyAgICBhdXRvIHRpbWUgPSBnZGtfZXZlbnRfZ2V0
X3RpbWUoZXZlbnQpIC8gMTAwMC47CisgICAgcmV0dXJuIHRpbWUgPyBNb25vdG9uaWNUaW1lOjpm
cm9tUmF3U2Vjb25kcyh0aW1lKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCkgOiBXYWxsVGltZTo6bm93
KCk7CiB9CiAKICNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgKaW5kZXggNTExZTYwMTRmZWIzMDNlZGZjOWU3YjM2ODg5
YTNkNDBmODQ0NjAxYS4uNzYxYzRlODI5NWYwYWRkMjk4MjczNmEwZWRjNDA4ZDFlMDMyMzhjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaApAQCAtMzEsNyAr
MzEsMTEgQEAgSW50UG9pbnQgY29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludChHdGtXaWRn
ZXQqLCBjb25zdCBJbnRQb2ludCYpOwogYm9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5k
b3coR3RrV2lkZ2V0Kik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEdka0V2ZW50VHlwZT4KLVdhbGxU
aW1lIHdhbGxUaW1lRm9yRXZlbnQoY29uc3QgR2RrRXZlbnRUeXBlKiBldmVudCkgeyByZXR1cm4g
TW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUgLyAxMDAwLikuYXBwcm94
aW1hdGVXYWxsVGltZSgpOyB9CitXYWxsVGltZSB3YWxsVGltZUZvckV2ZW50KGNvbnN0IEdka0V2
ZW50VHlwZSogZXZlbnQpCit7CisgICAgYXV0byB0aW1lID0gZXZlbnQtPnRpbWUgLyAxMDAwLjsK
KyAgICByZXR1cm4gdGltZSA/IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpLmFw
cHJveGltYXRlV2FsbFRpbWUoKSA6IFdhbGxUaW1lOjpub3coKTsKK30KIAogdGVtcGxhdGU8Pgog
V2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtFdmVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCBjYzE1NWE1NTgzY2YwMDg4
NDM1N2YzZWI4MzBkMTA1ZTI4ZTYyN2E5Li4xMjAxNGUwNmUwNDY3YzdmYjVhZmNiOGM1NDBlZGNh
MDIzYjZmM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRG
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcApAQCAtNzksNyArNzksOCBAQCBXYWxsVGltZSB3YWxsVGltZUZvckV2ZW50VGltZSh1aW50
NjRfdCB0aW1lc3RhbXApCiAgICAgLy8gc28gYXMgd2VsbCwgYW5kIHNvIGxvbmcgYXMgV1RGOjpN
b25vdG9uaWNUaW1lIGNvbnRpbnVlcyB0byB1c2UKICAgICAvLyBnX2dldF9tb25vdG9uaWNfdGlt
ZSgpLiBJdCBhbHNvIGFzc3VtZXMgdGhlIGV2ZW50IHRpbWVzdGFtcCBpcyBpbgogICAgIC8vIG1p
bGxpc2Vjb25kcy4KLSAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHModGlt
ZXN0YW1wIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKKyAgICBhdXRvIHNlY29uZHMg
PSB0aW1lc3RhbXAgLyAxMDAwLjsKKyAgICByZXR1cm4gc2Vjb25kcyA/IE1vbm90b25pY1RpbWU6
OmZyb21SYXdTZWNvbmRzKHNlY29uZHMpLmFwcHJveGltYXRlV2FsbFRpbWUoKSA6IFdhbGxUaW1l
Ojpub3coKTsKIH0KIAogV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322639</attachid>
            <date>2017-10-04 02:08:31 -0700</date>
            <delta_ts>2017-10-04 06:14:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177449-20171004110829.patch</filename>
            <type>text/plain</type>
            <size>4379</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZkZDQxNmRhNWQ4NGJl
NTYwNTc5ZGMwYmViZDM3ZWM1MWEzNGFlNC4uMmY3NTNiNTMwMTFkNzE1OWY1ZjgwNTUyY2NkMTU5
M2Q1ZWJiNmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTA0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OKHIyMjIzOTIpOiBbV1BFXVtHVEtdIE1hbnkgZm9ybXMgdGVzdHMgYXJlIGZhaWxpbmcgZHVl
IHRvIGJyb2tlbiBldmVudCB0aW1lc3RhbXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBE
dW1lei4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0
a1V0aWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6d2FsbFRpbWVGb3JFdmVudCk6CisKIDIw
MTctMTAtMDMgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjIyMjM5Mik6IFtXUEVdW0dUS10gTWFueSBmb3JtcyB0ZXN0cyBh
cmUgZmFpbGluZyBkdWUgdG8gYnJva2VuIGV2ZW50IHRpbWVzdGFtcHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmEw
ZDhhMTE0NDljYmJhMDc0M2MxZTYxNzFhMDAyN2U1OTE0MzU1Ni4uMGU4YjQxZjdmZGU4ZWUzNGE5
Njk3OWE0YjAyNmM0MTAyZWM0NDUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0x
MC0wNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RLXSBNYW55IGZvcm1zIHRlc3RzIGFyZSBm
YWlsaW5nIGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0YW1wcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OndhbGxUaW1lRm9yRXZlbnRUaW1lKToKKwogMjAxNy0xMC0w
MyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMjIyMzkyKTogW1dQRV1bR1RLXSBNYW55IGZvcm1zIHRlc3RzIGFyZSBmYWls
aW5nIGR1ZSB0byBicm9rZW4gZXZlbnQgdGltZXN0YW1wcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA0YzQ4YmQxZDNlYzI5YjBjZGRkMjJjODIz
MTA2NGIzOGEzNjdiOGE3Li4zY2QxNmNjYzhmNGZiNGY0NWRkNDMwNzZkMDIzN2FiMWIyOGFhOGZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApAQCAt
NjEsNyArNjEsMTAgQEAgV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtFdmVudCog
ZXZlbnQpCiAgICAgLy8gYmUgdXNpbmcgQ0xPQ0tfTU9OT1RPTklDIGZvciBpdHMgbW9ub3Rvbmlj
IHRpbWUsIGFuZCBzbyBsb25nIGFzCiAgICAgLy8gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSBjb250
aW51ZXMgdG8gZG8gc28gYXMgd2VsbCwgYW5kIHNvIGxvbmcgYXMKICAgICAvLyBXVEY6Ok1vbm90
b25pY1RpbWUgY29udGludWVzIHRvIHVzZSBnX2dldF9tb25vdG9uaWNfdGltZSgpLgotICAgIHJl
dHVybiBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUoKTsKKyAgICBhdXRvIHRpbWUgPSBnZGtf
ZXZlbnRfZ2V0X3RpbWUoZXZlbnQpOworICAgIGlmICh0aW1lID09IEdES19DVVJSRU5UX1RJTUUp
CisgICAgICAgIHJldHVybiBXYWxsVGltZTo6bm93KCk7CisgICAgcmV0dXJuIE1vbm90b25pY1Rp
bWU6OmZyb21SYXdTZWNvbmRzKHRpbWUgLyAxMDAwLikuYXBwcm94aW1hdGVXYWxsVGltZSgpOwog
fQogCiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0d0a1V0aWxpdGllcy5oCmluZGV4IDUxMWU2MDE0ZmViMzAzZWRmYzllN2IzNjg4OWEzZDQw
Zjg0NDYwMWEuLmViNGIyYmQxZjdjODcwMWY3NDFhZTU2MTU3NDViNmQ4ZjdjMzgwZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgKQEAgLTMxLDcgKzMxLDE1
IEBAIEludFBvaW50IGNvbnZlcnRXaWRnZXRQb2ludFRvU2NyZWVuUG9pbnQoR3RrV2lkZ2V0Kiwg
Y29uc3QgSW50UG9pbnQmKTsKIGJvb2wgd2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KEd0
a1dpZGdldCopOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBHZGtFdmVudFR5cGU+Ci1XYWxsVGltZSB3
YWxsVGltZUZvckV2ZW50KGNvbnN0IEdka0V2ZW50VHlwZSogZXZlbnQpIHsgcmV0dXJuIE1vbm90
b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lIC8gMTAwMC4pLmFwcHJveGltYXRl
V2FsbFRpbWUoKTsgfQorV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtFdmVudFR5
cGUqIGV2ZW50KQoreworICAgIC8vIEZJWE1FOiAwIGlzIEdES19DVVJSRU5UX1RJTUUuIFdlIHNo
b3VsZCBzdG9wIGluY2x1ZGluZyB0aGlzIGhlYWRlciBmcm9tCisgICAgLy8gSHlwaGVuYXRpb25M
aWJIeXBoZW4uY3BwIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUgZ3RrL2d0ay5oIGhlcmUgYW5kIHVz
ZQorICAgIC8vIEdES19DVVJSRU5UX1RJTUUuCisgICAgaWYgKGV2ZW50LT50aW1lID09IDApCisg
ICAgICAgIHJldHVybiBXYWxsVGltZTo6bm93KCk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6
OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUo
KTsKK30KIAogdGVtcGxhdGU8PgogV2FsbFRpbWUgd2FsbFRpbWVGb3JFdmVudChjb25zdCBHZGtF
dmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApp
bmRleCBjYzE1NWE1NTgzY2YwMDg4NDM1N2YzZWI4MzBkMTA1ZTI4ZTYyN2E5Li41N2YzNTRmZGJm
OGE5MmZiOWZiYzhkZDEwNDY2MDAwN2E5NTA3NzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtNzksNyArNzksNyBAQCBXYWxsVGltZSB3YWxs
VGltZUZvckV2ZW50VGltZSh1aW50NjRfdCB0aW1lc3RhbXApCiAgICAgLy8gc28gYXMgd2VsbCwg
YW5kIHNvIGxvbmcgYXMgV1RGOjpNb25vdG9uaWNUaW1lIGNvbnRpbnVlcyB0byB1c2UKICAgICAv
LyBnX2dldF9tb25vdG9uaWNfdGltZSgpLiBJdCBhbHNvIGFzc3VtZXMgdGhlIGV2ZW50IHRpbWVz
dGFtcCBpcyBpbgogICAgIC8vIG1pbGxpc2Vjb25kcy4KLSAgICByZXR1cm4gTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHModGltZXN0YW1wIC8gMTAwMC4pLmFwcHJveGltYXRlV2FsbFRpbWUo
KTsKKyAgICByZXR1cm4gdGltZXN0YW1wID8gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHMo
c2Vjb25kcyAvIDEwMDAuKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCkgOiBXYWxsVGltZTo6bm93KCk7
CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322662</attachid>
            <date>2017-10-04 06:15:07 -0700</date>
            <delta_ts>2017-10-04 07:24:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177449-20171004151506.patch</filename>
            <type>text/plain</type>
            <size>1506</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxNDdjNjFiYjk4YzQwZDU0
YWU1ZDBkOWNiYTA4ZDUyYjg4NDQxYTkuLjFmMTRlMTZhMGZkYTRhMDJkZTIwMGQ3YWJjNGZjY2Qz
MDAzY2Y4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTctMTAtMDQgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQg
V1BFIGJ1aWxkIGZpeCBhZnRlciByMjIyODM3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NDkKKworICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZl
bnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6d2FsbFRpbWVGb3JFdmVudFRpbWUpOgor
CiAyMDE3LTEwLTA0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVzZSBibG9iIFVSTCB3aGVuIHBhc3RpbmcgUlRGRCBpbnN0ZWFkIG9mIG92ZXJyaWRpbmcgRG9j
dW1lbnRMb2FkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5j
cHAKaW5kZXggNTdmMzU0ZmRiZjhhOTJmYjlmYmM4ZGQxMDQ2NjAwMDdhOTUwNzc4Yy4uNGU5OTUw
NDhhYjFhYzdhMGNkNzgxYTVkMGQ5MDkxODIxMGQ0ZmY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgV2FsbFRpbWUg
d2FsbFRpbWVGb3JFdmVudFRpbWUodWludDY0X3QgdGltZXN0YW1wKQogICAgIC8vIHNvIGFzIHdl
bGwsIGFuZCBzbyBsb25nIGFzIFdURjo6TW9ub3RvbmljVGltZSBjb250aW51ZXMgdG8gdXNlCiAg
ICAgLy8gZ19nZXRfbW9ub3RvbmljX3RpbWUoKS4gSXQgYWxzbyBhc3N1bWVzIHRoZSBldmVudCB0
aW1lc3RhbXAgaXMgaW4KICAgICAvLyBtaWxsaXNlY29uZHMuCi0gICAgcmV0dXJuIHRpbWVzdGFt
cCA/IE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKHNlY29uZHMgLyAxMDAwLikuYXBwcm94
aW1hdGVXYWxsVGltZSgpIDogV2FsbFRpbWU6Om5vdygpOworICAgIHJldHVybiB0aW1lc3RhbXAg
PyBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXAgLyAxMDAwLikuYXBwcm94
aW1hdGVXYWxsVGltZSgpIDogV2FsbFRpbWU6Om5vdygpOwogfQogCiBXZWJLZXlib2FyZEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50KiBldmVudCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>