<?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>128684</bug_id>
          
          <creation_ts>2014-02-12 13:31:24 -0800</creation_ts>
          <short_desc>Implement hasLiveStreamingContent property in WebAVPlayerController</short_desc>
          <delta_ts>2015-02-02 18:05:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>127017</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>philipj</cc>
    
    <cc>reyndersbrian</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979988</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-12 13:31:24 -0800</bug_when>
    <thetext>Implementing hasLiveStreamingContent will enable the live streaming UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991873</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-03-18 14:26:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/16358957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993275</commentid>
    <comment_count>2</comment_count>
      <attachid>227474</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-21 12:54:33 -0700</bug_when>
    <thetext>Created attachment 227474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993278</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-21 12:57:51 -0700</bug_when>
    <thetext>Simon,
One question, in the IPC interface I convert a TimeRange to a Vector instead of creating an encoder/decoder for TimeRange. Would it be preferable to create the encoder/decoder?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993295</commentid>
    <comment_count>4</comment_count>
      <attachid>227474</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-21 13:31:12 -0700</bug_when>
    <thetext>Comment on attachment 227474
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:56
&gt; +    virtual void setSeekableRangesVector(Vector&lt;std::pair&lt;double, double&gt;&gt;);

Pass a reference unless you&apos;re using std::move.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:70
&gt; +    

Blank space.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:71
&gt; +    for (auto range : ranges)

const auto&amp;

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:72
&gt; +        timeRanges-&gt;add(range.first, range.second);

You should add some basic validity checking here (check that range end is &gt; range start, and any other invariants). Basically you should assume that data coming over IPC is unsafe.

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:73
&gt; +    virtual void setSeekableRanges(WebCore::TimeRanges&amp;) override;

const WebCore::TimeRanges&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993382</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-21 17:07:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 227474 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227474&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:56
&gt; &gt; +    virtual void setSeekableRangesVector(Vector&lt;std::pair&lt;double, double&gt;&gt;);
&gt; 
&gt; Pass a reference unless you&apos;re using std::move.

Passing Vector&lt;&gt; by reference is unprecedented in IPC interface, so I&apos;ll change the one call site to use std::move.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:70
&gt; &gt; +    
&gt; 
&gt; Blank space.

Removed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:71
&gt; &gt; +    for (auto range : ranges)
&gt; 
&gt; const auto&amp;

Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:72
&gt; &gt; +        timeRanges-&gt;add(range.first, range.second);
&gt; 
&gt; You should add some basic validity checking here (check that range end is &gt; range start, and any other invariants). Basically you should assume that data coming over IPC is unsafe.

Done

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:73
&gt; &gt; +    virtual void setSeekableRanges
(WebCore::TimeRanges&amp;) override;
&gt; 
&gt; const WebCore::TimeRanges&amp;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993383</commentid>
    <comment_count>6</comment_count>
      <attachid>227512</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-21 17:14:22 -0700</bug_when>
    <thetext>Created attachment 227512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994061</commentid>
    <comment_count>7</comment_count>
      <attachid>227512</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-24 19:18:35 -0700</bug_when>
    <thetext>Comment on attachment 227512
Patch

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

This looks OK to me modulo my minor comments, but I am now a WK2 reviewer.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:113
&gt; +        m_videoFullscreenInterface-&gt;setSeekableRanges(*m_mediaElement-&gt;seekable());

This is OK for now, but please add a FIXME and file a bug about coming up with a more efficient method of updating ranges than polling 3 times per second.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:79
&gt; +    setSeekableRanges(*timeRanges);

Could you pass the Vector&lt;&gt; directly instead of creating a temporary TimeRanges?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994062</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-24 19:20:11 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 227512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227512&amp;action=review
&gt; 
&gt; This looks OK to me modulo my minor comments, but I am now a WK2 reviewer.
&gt; 
By which I meant I am *not* a WK2 reviewer, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994097</commentid>
    <comment_count>9</comment_count>
      <attachid>227512</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-24 23:29:38 -0700</bug_when>
    <thetext>Comment on attachment 227512
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterface.h:33
&gt; +#import &lt;WebCore/TimeRanges.h&gt;

Don&apos;t include the header unless you need the implementation. Instead, forward-declare the class. Same with PlatformLayer.h if that&apos;s fixable.

We have huge build time problems because of over-eager #includes.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:365
&gt; +void WebVideoFullscreenInterfaceAVKit::setSeekableRanges(const WebCore::TimeRanges&amp; timeRanges)

Need the WebCore::?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:112
&gt;          m_videoFullscreenInterface-&gt;setCurrentTime(m_mediaElement-&gt;currentTime(), [[NSProcessInfo processInfo] systemUptime]);

What is the [[NSProcessInfo processInfo] systemUptime] thing for? Weird.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:56
&gt; +    virtual void setSeekableRangesVector(Vector&lt;std::pair&lt;double, double&gt;&gt;);

Vector&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994643</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-26 11:21:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 227512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227512&amp;action=review
&gt; 
&gt; This looks OK to me modulo my minor comments, but I am now a WK2 reviewer.
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:113
&gt; &gt; +        m_videoFullscreenInterface-&gt;setSeekableRanges(*m_mediaElement-&gt;seekable());
&gt; 
&gt; This is OK for now, but please add a FIXME and file a bug about coming up with a more efficient method of updating ranges than polling 3 times per second.

I added a change to use the progressEvent.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:79
&gt; &gt; +    setSeekableRanges(*timeRanges);
&gt; 
&gt; Could you pass the Vector&lt;&gt; directly instead of creating a temporary TimeRanges?

The is one of a couple solutions.
1) Create an encoder/decoder for TimeRanges to they can cross IPC boundary. Thus removing the vector.
2) Pass Vector&lt;&gt; directly, which will unnecessarily convert TimeRanges to a Vector&lt;&gt; in WK1.

I wrote https://bugs.webkit.org/show_bug.cgi?id=130784 to follow up on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994654</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-26 11:33:00 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 227512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227512&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterface.h:33
&gt; &gt; +#import &lt;WebCore/TimeRanges.h&gt;
&gt; 
&gt; Don&apos;t include the header unless you need the implementation. Instead, forward-declare the class. Same with PlatformLayer.h if that&apos;s fixable.
&gt; 
&gt; We have huge build time problems because of over-eager #includes.


Removed include of TimeRanges.h and added it to the appropriate .m files.
Removed include of PlatformLayer.h

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:365
&gt; &gt; +void WebVideoFullscreenInterfaceAVKit::setSeekableRanges(const WebCore::TimeRanges&amp; timeRanges)
&gt; 
&gt; Need the WebCore::?

Removed.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:112
&gt; &gt;          m_videoFullscreenInterface-&gt;setCurrentTime(m_mediaElement-&gt;currentTime(), [[NSProcessInfo processInfo] systemUptime]);
&gt; 
&gt; What is the [[NSProcessInfo processInfo] systemUptime] thing for? Weird.

It means, currentTime was X when systemUptime was Y. You can use this and the current rate to extrapolate the current time more accurately and continuously. Then you just periodically update this to minimize drift.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:56
&gt; &gt; +    virtual void setSeekableRangesVector(Vector&lt;std::pair&lt;double, double&gt;&gt;);
&gt; 
&gt; Vector&amp;?

Aha! The IPC interface can be declared without the reference, but this implementation can still use a reference because the call syntax is the same.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994666</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-26 12:06:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 227512 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227512&amp;action=review
&gt; &gt; 
&gt; &gt; This looks OK to me modulo my minor comments, but I am now a WK2 reviewer.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:113
&gt; &gt; &gt; +        m_videoFullscreenInterface-&gt;setSeekableRanges(*m_mediaElement-&gt;seekable());
&gt; &gt; 
&gt; &gt; This is OK for now, but please add a FIXME and file a bug about coming up with a more efficient method of updating ranges than polling 3 times per second.
&gt; 
&gt; I added a change to use the progressEvent.

progressEvent isn&apos;t the correct event. I&apos;ve added a FIXME, and filed https://bugs.webkit.org/show_bug.cgi?id=130788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994667</commentid>
    <comment_count>13</comment_count>
      <attachid>227871</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-26 12:09:12 -0700</bug_when>
    <thetext>Created attachment 227871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994671</commentid>
    <comment_count>14</comment_count>
      <attachid>227871</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 12:14:21 -0700</bug_when>
    <thetext>Comment on attachment 227871
Patch

Rejecting attachment 227871 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 227871, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/6248663194009600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994673</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-26 12:15:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; progressEvent isn&apos;t the correct event. I&apos;ve added a FIXME, and filed https://bugs.webkit.org/show_bug.cgi?id=130788

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994675</commentid>
    <comment_count>16</comment_count>
      <attachid>227875</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-03-26 12:24:43 -0700</bug_when>
    <thetext>Created attachment 227875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994690</commentid>
    <comment_count>17</comment_count>
      <attachid>227875</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 13:18:09 -0700</bug_when>
    <thetext>Comment on attachment 227875
Patch

Clearing flags on attachment: 227875

Committed r166312: &lt;http://trac.webkit.org/changeset/166312&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227474</attachid>
            <date>2014-03-21 12:54:33 -0700</date>
            <delta_ts>2014-03-21 17:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128684-20140321125412.patch</filename>
            <type>text/plain</type>
            <size>17907</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE0ZWY4NWJmYTU1NjYw
MzEwOWY0MDVjZmNiOWZkM2YyM2UyNmNhMC4uN2FmMDFhZWJjNGYxNzhjNzg4NmM1YjI4YTlkMDg2
Y2NlOTgzMDMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTAzLTIxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaGFzTGl2
ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2ViQVZQbGF5ZXJDb250cm9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICBBZGQgZXhwb3J0IGZvciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0U2Vla2FibGVSYW5nZXMoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaDoKKyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2Vz
KCkKKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICBBZGQgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICBS
ZW1vdmUgdmVzdGlnaWFsIHBsYXllckxheWVyIHByb3BlcnR5LiBBZGQgc2Vla2FibGVUaW1lUmFu
Z2VzIHByb3BlcnR5LgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBkZWFsbG9j
XSk6CisgICAgICAgIFJlbGVhc2UgX3NlZWthYmxlVGltZVJhbmdlcy4KKyAgICAgICAgUmVtb3Zl
IHJlZmVyZW5jZXMgdG8gX3BsYXllckxheWVyLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29u
dHJvbGxlciBoYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBJbXBsZW1lbnQgYmFz
ZWQgb24gZHVyYXRpb24uIExpdmUgc3RyZWFtIGhhcyBhbiBpbmZpbml0ZSBkdXJhdGlvbi4KKwor
ICAgICAgICAoK1tXZWJBVlBsYXllckNvbnRyb2xsZXIga2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3Rp
bmdIYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBEZXNjcmliZSBkZXBlbmRlbnQg
a2V5cyBmb3IgY29tcHV0ZWQgcHJvcGVydHkgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQuCisKKyAg
ICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNraXBCYWNrd2FyZFRoaXJ0eVNlY29uZHM6
XSk6CisgICAgICAgIFNlZWsgYmFjayAzMCBzZWNvbmRzIGlmIHRoYXQgdGltZSBpcyBpbiB0aGUg
c2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBnb3Rv
RW5kT2ZTZWVrYWJsZVJhbmdlczpdKToKKyAgICAgICAgSnVtcCB0byBsaXZlIGJ5IGdvaW5nIHRv
IHRoZSBvZiB0aGUgc2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5nZXMpOgorICAgICAgICBDb252ZXJ0IFRp
bWVSYW5nZSB0byBDTVRpbWVSYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBTZXQgaW5p
dGlhbCBzZWVrYWJsZSByYW5nZXMuCisKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50OjpoYW5kbGVFdmVudCk6CisgICAgICAgIFVwZGF0ZSBzZWVrYWJsZSByYW5n
ZXMgd2hlbiB0aW1lIGNoYW5nZXMuCisKIDIwMTQtMDMtMjAgIExhc3psbyBWaWRhY3MgIDxsdmlk
YWNzLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUmVu
ZGVyVGFibGU6OmNvbFRvRWZmQ29sKCkgZm9yIHRhYmxlcyB3aXRob3V0IGNvbHNwYW5zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZmFhNzZiNTcwMWQ5NWU5NGYyY2EyMTViNzU1OTZiOTYyNTMzOGYxYy4uYTVhZTE5
YmIxZmRmYjY0NWMxODE2OTE0OTU3MDIzYjQxMjBmOTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDE0LTAzLTIxICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2Vi
QVZQbGF5ZXJDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQbHVtYiB0aHJvdWdoIHRoZSBzZWVrYWJsZSByYW5nZXMgdG8gdGhlIGZ1bGxz
Y3JlZW4gaW50ZXJmYWNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzZXRTZWVr
YWJsZVJhbmdlc1ZlY3RvcigpCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIGludGVyZmFjZSBT
ZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcigpCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVrYWJsZVJhbmdlc1ZlY3Rvcik6CisgICAgICAg
IEFkZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvciB0aGF0IHRyYW5zbGF0ZXMgdGhlIHZlY3RvciBp
bnRvIGEgVGltZVJhbmdlcyBhbmQgY2FsbHMgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICBB
ZGQgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0U2Vla2FibGVSYW5nZXMpOgorICAgICAgICBzZXRTZWVrYWJsZVJhbmdl
cygpIGNvbnZlcnRzIFRpbWVSYW5nZXMgdG8gVmVjdG9yIGFuZCBjYWxscyBTZXRTZWVrYWJsZVJh
bmdlc1ZlY3RvcigpCisKIDIwMTQtMDMtMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggMzItYml0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCA0MTc3MzM3NTAwZGEyNWM5M2U2NDRmZmMxZjQ2NWE0YWZhYzM0OTQ1Li4zYmM1NTExYjMw
MjkyN2IwMzkwODJjZGZmNTZjNGM5NjgxNDcxNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MzI2NCw2ICszMjY0LDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkVSN0NBTGF5
ZXIKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNl
ZWthYmxlUmFuZ2VzRVJOU18xMFRpbWVSYW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZmCiBfX1pON1dlYkNv
cmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbEVQTlNfMjNXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEUKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQzNXNldFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyRVBOU18zMldlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZS5oCmluZGV4IGYzZTkxZmI1YmQxYTk0YzE5NjlhMWVhNjQxMWIyMDRkODM5MGM1MTIu
LjEyNGRlMTRkZmYzMjJjNzkzNDBjMDIyMDlhMWYwYjNkYzQzMjY0YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgPFdl
YkNvcmUvUGxhdGZvcm1MYXllci5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTQwLDYgKzQxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBh
bmNob3JUaW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlpbmcs
IGZsb2F0IHBsYXliYWNrUmF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVu
c2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlcyhUaW1lUmFuZ2VzJikgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCBjNDRjMDUxNTZlM2RlMmVhNjA1N2U1
YmNiYTU0ZGZiMDRjYzA0ZDdjLi5hZTkxODgyN2Q3YTQ2YWY0MjcxYmYyNzg4NzlhZmJlMWRjZWMw
M2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODAsNiArODAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwg
ZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJv
b2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKFRp
bWVSYW5nZXMmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4o
UGxhdGZvcm1MYXllciYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDJkNDQ1ODZmZGU0Zjk0ZjYyZmFlNzAwM2Rh
ZDMzZDhiYmQ4ZDMwMjkuLjZjZWJlN2JjOGIwNzQzMGVhNzlmM2E0NTNlNmYyZThiMDA5M2VjOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTMyLDYgKzMyLDcgQEAKIAogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCIKKyNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVlRpbWUuaD4KICNpbXBvcnQgPEFWS2l0L0FWS2l0Lmg+CiAj
aW1wb3J0IDxBVktpdC9BVlBsYXllckNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPEFWS2l0L0FWUGxh
eWVyVmlld0NvbnRyb2xsZXJfUHJpdmF0ZS5oPgpAQCAtNjQsMTEgKzY1LDE0IEBAIFNPRlRfTElO
S19DTEFTUyhVSUtpdCwgVUlDb2xvcikKIFNPRlRfTElOS19GUkFNRVdPUksoQ29yZU1lZGlhKQog
U09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9h
dDY0IHNlY29uZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZl
cnJlZFRpbWVTY2FsZSkpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBG
bG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCitTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRp
bWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1
ZSwgdGltZXNjYWxlKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNU
aW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0
aW1lKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVJhbmdlTWFrZSwgQ01UaW1lUmFuZ2Us
IChDTVRpbWUgc3RhcnQsIENNVGltZSBkdXJhdGlvbiksIChzdGFydCwgZHVyYXRpb24pKQorU09G
VF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGltZSBtaW51ZW5k
LCBDTVRpbWUgc3VidHJhaGVuZCksIChtaW51ZW5kLCBzdWJ0cmFoZW5kKSkKIAogQGludGVyZmFj
ZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxl
ckRlbGVnYXRlPgogCiBAcHJvcGVydHkocmV0YWluKSBBVlBsYXllckNvbnRyb2xsZXIqIHBsYXll
ckNvbnRyb2xsZXJQcm94eTsKLUBwcm9wZXJ0eShyZXRhaW4pIENBTGF5ZXI8QVZWaWRlb0xheWVy
PiAqcGxheWVyTGF5ZXI7CiBAcHJvcGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bCogZGVsZWdhdGU7CiAKIEBwcm9wZXJ0eSBCT09MIGNhblBsYXk7CkBAIC04Nyw2ICs5MSw3IEBA
IFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUg
dGltZSksICh0aW1lKSkKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKmxvYWRlZFRpbWVSYW5n
ZXM7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzIHN0YXR1czsKIEBwcm9wZXJ0
eShyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRpbWluZzsKK0Bwcm9wZXJ0eShyZXRhaW4pIE5TQXJy
YXkgKnNlZWthYmxlVGltZVJhbmdlczsKIAogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjoo
QVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZERpc21p
c3NXaXRoUmVhc29uOihBVlBsYXllclZpZXdDb250cm9sbGVyRGlzbWlzc2FsUmVhc29uKXJlYXNv
bjsKIEBlbmQKQEAgLTEwNiw4ICsxMTEsOCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVH
ZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiAtICh2b2lkKWRlYWxs
b2MKIHsKICAgICBbX3BsYXllckNvbnRyb2xsZXJQcm94eSByZWxlYXNlXTsKLSAgICBbX3BsYXll
ckxheWVyIHJlbGVhc2VdOwogICAgIFtfbG9hZGVkVGltZVJhbmdlcyByZWxlYXNlXTsKKyAgICBb
X3NlZWthYmxlVGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3RpbWluZyByZWxlYXNlXTsKICAg
ICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0xNzQsNiArMTc5LDUyIEBAIFNPRlRfTElOSyhDb3Jl
TWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkK
ICAgICBzZWxmLmRlbGVnYXRlLT5zZWVrVG9UaW1lKHRpbWUpOwogfQogCistIChCT09MKWhhc0xp
dmVTdHJlYW1pbmdDb250ZW50Cit7CisgICAgaWYgKFtzZWxmIHN0YXR1c10gPT0gQVZQbGF5ZXJD
b250cm9sbGVyU3RhdHVzUmVhZHlUb1BsYXkpCisgICAgICAgIHJldHVybiBbc2VsZiBjb250ZW50
RHVyYXRpb25dID09IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOworICAg
IHJldHVybiBOTzsKK30KKworKyAoTlNTZXQgKilrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hh
c0xpdmVTdHJlYW1pbmdDb250ZW50Cit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0
czpAImNvbnRlbnREdXJhdGlvbiIsIEAic3RhdHVzIiwgbmlsXTsKK30KKworLSAodm9pZClza2lw
QmFja3dhcmRUaGlydHlTZWNvbmRzOihpZClzZW5kZXIKK3sKKyAgICBVTlVTRURfUEFSQU0oc2Vu
ZGVyKTsKKyAgICBCT09MIGlzVGltZVdpdGhpblNlZWthYmxlVGltZVJhbmdlcyA9IE5POworICAg
IENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyhbW3NlbGYgdGltaW5n
XSBjdXJyZW50VmFsdWVdLCAxMDAwKTsKKyAgICBDTVRpbWUgdGhpcnR5U2Vjb25kc0JlZm9yZUN1
cnJlbnRUaW1lID0gQ01UaW1lU3VidHJhY3QoY3VycmVudFRpbWUsIENNVGltZU1ha2UoMzAsIDEp
KTsKKyAgICAKKyAgICBmb3IgKE5TVmFsdWUgKnNlZWthYmxlVGltZVJhbmdlVmFsdWUgaW4gW3Nl
bGYgc2Vla2FibGVUaW1lUmFuZ2VzXSkgeworICAgICAgICBpZiAoQ01UaW1lUmFuZ2VDb250YWlu
c1RpbWUoW3NlZWthYmxlVGltZVJhbmdlVmFsdWUgQ01UaW1lUmFuZ2VWYWx1ZV0sIHRoaXJ0eVNl
Y29uZHNCZWZvcmVDdXJyZW50VGltZSkpIHsKKyAgICAgICAgICAgIGlzVGltZVdpdGhpblNlZWth
YmxlVGltZVJhbmdlcyA9IFlFUzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIAorICAgIGlmIChpc1RpbWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5nZXMpCisgICAgICAg
IFtzZWxmIHNlZWtUb1RpbWU6Q01UaW1lR2V0U2Vjb25kcyh0aGlydHlTZWNvbmRzQmVmb3JlQ3Vy
cmVudFRpbWUpXTsKK30KKworLSAodm9pZClnb3RvRW5kT2ZTZWVrYWJsZVJhbmdlczooaWQpc2Vu
ZGVyCit7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CisgICAgTlNUaW1lSW50ZXJ2YWwgdGlt
ZUF0RW5kT2ZTZWVrYWJsZVRpbWVSYW5nZXMgPSBOQU47CisgICAgCisgICAgZm9yIChOU1ZhbHVl
ICpzZWVrYWJsZVRpbWVSYW5nZVZhbHVlIGluIFtzZWxmIHNlZWthYmxlVGltZVJhbmdlc10pIHsK
KyAgICAgICAgQ01UaW1lUmFuZ2Ugc2Vla2FibGVUaW1lUmFuZ2UgPSBbc2Vla2FibGVUaW1lUmFu
Z2VWYWx1ZSBDTVRpbWVSYW5nZVZhbHVlXTsKKyAgICAgICAgTlNUaW1lSW50ZXJ2YWwgZW5kT2ZT
ZWVrYWJsZVRpbWVSYW5nZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lUmFuZ2VHZXRFbmQoc2Vl
a2FibGVUaW1lUmFuZ2UpKTsKKyAgICAgICAgaWYgKGlzbmFuKHRpbWVBdEVuZE9mU2Vla2FibGVU
aW1lUmFuZ2VzKSB8fCBlbmRPZlNlZWthYmxlVGltZVJhbmdlID4gdGltZUF0RW5kT2ZTZWVrYWJs
ZVRpbWVSYW5nZXMpCisgICAgICAgICAgICB0aW1lQXRFbmRPZlNlZWthYmxlVGltZVJhbmdlcyA9
IGVuZE9mU2Vla2FibGVUaW1lUmFuZ2U7CisgICAgfQorICAgIAorICAgIGlmICghaXNuYW4odGlt
ZUF0RW5kT2ZTZWVrYWJsZVRpbWVSYW5nZXMpKQorICAgICAgICBbc2VsZiBzZWVrVG9UaW1lOnRp
bWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzXTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFdl
YkFWVmlkZW9MYXllciA6IENBTGF5ZXIgPEFWVmlkZW9MYXllcj4KQEAgLTMxMSw2ICszNjIsMjIg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0VmlkZW9EaW1lbnNp
b25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHcKICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY29udGVu
dERpbWVuc2lvbnMgPSBDR1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpOwogfQogCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRTZWVrYWJsZVJhbmdlcyhXZWJDb3JlOjpU
aW1lUmFuZ2VzJiB0aW1lUmFuZ2VzKQoreworICAgIE5TTXV0YWJsZUFycmF5KiBzZWVrYWJsZVJh
bmdlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRp
b25Db2RlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRpbWVSYW5nZXMubGVuZ3Ro
KCk7IGkrKykgeworICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGksIGV4
Y2VwdGlvbkNvZGUpOworICAgICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSwgZXhj
ZXB0aW9uQ29kZSk7CisgICAgICAgIAorICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IENNVGlt
ZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBDTVRpbWVNYWtl
V2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAgIFtzZWVrYWJsZVJhbmdlcyBh
ZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKKyAgICB9Cisg
ICAgCisgICAgcGxheWVyQ29udHJvbGxlcigpLnNlZWthYmxlVGltZVJhbmdlcyA9IHNlZWthYmxl
UmFuZ2VzOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRl
ckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcikKIHsKICAgICBfX2Jsb2NrIFJl
ZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBhYWMzNDZhZDEyZDU3NzRiMzU3
M2NlYTZhYjdiMDgxZmExNDUxM2JhLi43MDJjY2RjMGM4OTQyM2FmZDlkNjUxZTA2NDg1NDI0MjNl
YTllZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC04Myw2ICs4
Myw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlh
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgbV9pc0xpc3RlbmluZyA9IHRydWU7
CiAKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0RHVyYXRpb24obV9tZWRpYUVs
ZW1lbnQtPmR1cmF0aW9uKCkpOworICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRT
ZWVrYWJsZVJhbmdlcygqbV9tZWRpYUVsZW1lbnQtPnNlZWthYmxlKCkpOwogICAgIG1fdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRlKG1fbWVkaWFFbGVtZW50LT5pc1BsYXlpbmcoKSwg
bV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0ZSgpKTsKIAogICAgIG1fdmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlLT5zZXRDdXJyZW50VGltZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSwg
W1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdKTsKQEAgLTEwNyw4ICsx
MDgsMTAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6aGFuZGxl
RXZlbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ28KICAgICAgICAgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkucGxheUV2ZW50CiAgICAgICAgIHx8IGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UtPnNldFJhdGUobV9tZWRpYUVsZW1lbnQtPmlzUGxheWluZygpLCBtX21lZGlhRWxl
bWVudC0+cGxheWJhY2tSYXRlKCkpOwotICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLnRpbWV1cGRhdGVFdmVudCkKKyAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS50aW1ldXBkYXRlRXZlbnQpIHsKICAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgp
LCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGltZV0pOworICAgICAgICBt
X3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1fbWVkaWFFbGVt
ZW50LT5zZWVrYWJsZSgpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqIHZp
ZGVvTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA1NDMyYjIxOTA4ZDgzNmM1
ODhhMGEzNWEwYTUzYzlhYjYxMDk5ZWMzLi5iMjhkMDJkNDRmODkxNjVhYmFjZWEyNTBmYTE1YmVk
ODQ1NjZjYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTUzLDYgKzUzLDcgQEAg
cHJpdmF0ZToKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBGdWxsc2NyZWVuSW50ZXJmYWNlCiAgICAg
dmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCk7CisgICAgdmlydHVh
bCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBk
b3VibGU+Pik7CiAKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwpAQCAtNjYsNyArNjcsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZWVrVG9UaW1lKGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5KSBvdmVycmlkZTsKLQorICAgIAogICAg
IFdlYlBhZ2VQcm94eSogbV9wYWdlOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2xh
eWVySG9zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDNlY2EyMTgzMGU3ZTk1ODY2MTFjYTI0ZDFkNjM1ZDg0MDg3ODZlZDkuLmQzZTE1Zjlm
OTIwY2QzNDM0YTlmMDM2ODdjNjA0YjAyNDAwNTE5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw2ICsyNCw3IEBACiBtZXNzYWdlcyAtPiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEN1cnJlbnRUaW1lKGRvdWJs
ZSBjdXJyZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKQogICAgIFNldFZpZGVvRGltZW5zaW9ucyhi
b29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQorICAgIFNldFNl
ZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiByYW5n
ZXMpOwogICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wg
aXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKICAgICBFbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMy
X3QgdmlkZW9MYXllcklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBiNWFlZTVl
NjJhNWQwZjkxNTBiYjhiYWRmNTY3M2QyZmNhNGQ0ZWE1Li41ZGMxMzMwZTQ3YmIwZWNiZTQxOWE4
NTg5YmQxZmEyODQxZTljOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02Myw2ICs2NCwxNSBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuV2l0aElEKHVpbnQz
Ml90IHZpZGVvTGF5ZXJJRAogICAgIG1fbGF5ZXJIb3N0ID0gV0tNYWtlUmVuZGVyTGF5ZXIodmlk
ZW9MYXllcklEKTsKICAgICBlbnRlckZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpKTsKIH0K
KyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVrYWJsZVJh
bmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFuZ2VzKQorewor
ICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7
CisgICAgZm9yIChhdXRvIHJhbmdlIDogcmFuZ2VzKQorICAgICAgICB0aW1lUmFuZ2VzLT5hZGQo
cmFuZ2UuZmlyc3QsIHJhbmdlLnNlY29uZCk7CisKKyAgICBzZXRTZWVrYWJsZVJhbmdlcygqdGlt
ZVJhbmdlcyk7Cit9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDQ2NmQ3MjQwMDEx
NTc5NjU3ZWI1NTVkMTJjODczNWQ1OGM2ZmRiNWUuLjQ0YzczNjdhZjc0MGMwZDMyNzA3MDAxZTM5
NzI5OTk0MmY0YzFmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRp
bWUsIGRvdWJsZSBhbmNob3JUaW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0
ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdl
cyhXZWJDb3JlOjpUaW1lUmFuZ2VzJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gYWRkaXRpb25h
bCBpbmNvbWluZwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCmluZGV4IDRlNGU4ODBiZTcwYzI4MWRkNGI5ZjkzNDI0MmEzMWU4MTdhZGJk
Y2QuLmQ5ODQyNWYxMzhmYWU5ZTM5ZDExNzAxYmViZTJjNjU4MzNkMzdkZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbQpAQCAtMTE5LDYgKzExOSwyMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZgog
ewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoaGFzVmlkZW8sIHdpZHRoLCBoZWlnaHQpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0
U2Vla2FibGVSYW5nZXMoV2ViQ29yZTo6VGltZVJhbmdlcyYgdGltZVJhbmdlcykKK3sKKyAgICBW
ZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFuZ2VzVmVjdG9yOworICAgIAorICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aW1lUmFuZ2VzLmxlbmd0aCgpOyBpKyspIHsKKyAg
ICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOworICAgICAgICBkb3VibGUgc3RhcnQg
PSB0aW1lUmFuZ2VzLnN0YXJ0KGksIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICBkb3VibGUgZW5k
ID0gdGltZVJhbmdlcy5lbmQoaSwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgIHJhbmdlc1ZlY3Rv
ci5hcHBlbmQoc3RkOjpwYWlyPGRvdWJsZSxkb3VibGU+KHN0YXJ0LCBlbmQpKTsKKyAgICB9CisK
KyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6U2V0U2Vla2FibGVSYW5nZXNWZWN0b3IocmFuZ2VzVmVjdG9yKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2Ny
ZWVuKCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227512</attachid>
            <date>2014-03-21 17:14:22 -0700</date>
            <delta_ts>2014-03-24 23:29:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128684-20140321171400.patch</filename>
            <type>text/plain</type>
            <size>17777</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE0ZWY4NWJmYTU1NjYw
MzEwOWY0MDVjZmNiOWZkM2YyM2UyNmNhMC4uN2FmMDFhZWJjNGYxNzhjNzg4NmM1YjI4YTlkMDg2
Y2NlOTgzMDMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTAzLTIxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaGFzTGl2
ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2ViQVZQbGF5ZXJDb250cm9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICBBZGQgZXhwb3J0IGZvciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0U2Vla2FibGVSYW5nZXMoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaDoKKyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2Vz
KCkKKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICBBZGQgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICBS
ZW1vdmUgdmVzdGlnaWFsIHBsYXllckxheWVyIHByb3BlcnR5LiBBZGQgc2Vla2FibGVUaW1lUmFu
Z2VzIHByb3BlcnR5LgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBkZWFsbG9j
XSk6CisgICAgICAgIFJlbGVhc2UgX3NlZWthYmxlVGltZVJhbmdlcy4KKyAgICAgICAgUmVtb3Zl
IHJlZmVyZW5jZXMgdG8gX3BsYXllckxheWVyLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29u
dHJvbGxlciBoYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBJbXBsZW1lbnQgYmFz
ZWQgb24gZHVyYXRpb24uIExpdmUgc3RyZWFtIGhhcyBhbiBpbmZpbml0ZSBkdXJhdGlvbi4KKwor
ICAgICAgICAoK1tXZWJBVlBsYXllckNvbnRyb2xsZXIga2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3Rp
bmdIYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBEZXNjcmliZSBkZXBlbmRlbnQg
a2V5cyBmb3IgY29tcHV0ZWQgcHJvcGVydHkgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQuCisKKyAg
ICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNraXBCYWNrd2FyZFRoaXJ0eVNlY29uZHM6
XSk6CisgICAgICAgIFNlZWsgYmFjayAzMCBzZWNvbmRzIGlmIHRoYXQgdGltZSBpcyBpbiB0aGUg
c2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBnb3Rv
RW5kT2ZTZWVrYWJsZVJhbmdlczpdKToKKyAgICAgICAgSnVtcCB0byBsaXZlIGJ5IGdvaW5nIHRv
IHRoZSBvZiB0aGUgc2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5nZXMpOgorICAgICAgICBDb252ZXJ0IFRp
bWVSYW5nZSB0byBDTVRpbWVSYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBTZXQgaW5p
dGlhbCBzZWVrYWJsZSByYW5nZXMuCisKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50OjpoYW5kbGVFdmVudCk6CisgICAgICAgIFVwZGF0ZSBzZWVrYWJsZSByYW5n
ZXMgd2hlbiB0aW1lIGNoYW5nZXMuCisKIDIwMTQtMDMtMjAgIExhc3psbyBWaWRhY3MgIDxsdmlk
YWNzLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUmVu
ZGVyVGFibGU6OmNvbFRvRWZmQ29sKCkgZm9yIHRhYmxlcyB3aXRob3V0IGNvbHNwYW5zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZmFhNzZiNTcwMWQ5NWU5NGYyY2EyMTViNzU1OTZiOTYyNTMzOGYxYy4uYTVhZTE5
YmIxZmRmYjY0NWMxODE2OTE0OTU3MDIzYjQxMjBmOTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDE0LTAzLTIxICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2Vi
QVZQbGF5ZXJDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQbHVtYiB0aHJvdWdoIHRoZSBzZWVrYWJsZSByYW5nZXMgdG8gdGhlIGZ1bGxz
Y3JlZW4gaW50ZXJmYWNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzZXRTZWVr
YWJsZVJhbmdlc1ZlY3RvcigpCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIGludGVyZmFjZSBT
ZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcigpCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVrYWJsZVJhbmdlc1ZlY3Rvcik6CisgICAgICAg
IEFkZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvciB0aGF0IHRyYW5zbGF0ZXMgdGhlIHZlY3RvciBp
bnRvIGEgVGltZVJhbmdlcyBhbmQgY2FsbHMgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICBB
ZGQgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0U2Vla2FibGVSYW5nZXMpOgorICAgICAgICBzZXRTZWVrYWJsZVJhbmdl
cygpIGNvbnZlcnRzIFRpbWVSYW5nZXMgdG8gVmVjdG9yIGFuZCBjYWxscyBTZXRTZWVrYWJsZVJh
bmdlc1ZlY3RvcigpCisKIDIwMTQtMDMtMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggMzItYml0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCA0MTc3MzM3NTAwZGEyNWM5M2U2NDRmZmMxZjQ2NWE0YWZhYzM0OTQ1Li5kOGE1OGRkZGU4
MDE2Yzg4NDk0Y2JlMjJlMTZkNzI3ZWUxZWMyNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MzI2NCw2ICszMjY0LDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkVSN0NBTGF5
ZXIKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNl
ZWthYmxlUmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2c2V0V2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxFUE5TXzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFCiBfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzVzZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlckVQTlNfMzJXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UuaAppbmRleCBmM2U5MWZiNWJkMWE5NGMxOTY5YTFlYTY0MTFiMjA0ZDgzOTBjNTEy
Li43ZGNhY2E5MzhlOGYxNTRkNTJiYTRkM2I4MWNhNjBiNGI4ZWFkNjg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogCiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC00MCw2ICs0MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUg
YW5jaG9yVGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5n
LCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1l
bnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJhbmdlcyYpID0gMDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggYzQ0YzA1MTU2ZTNkZTJl
YTYwNTdlNWJjYmE1NGRmYjA0Y2MwNGQ3Yy4uNzZkMWY3NzkzYjliMmI3ODg3ZDQ0NzA4N2I5NDgx
MzI3MTk2MjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTgwLDYgKzgwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVu
dFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJh
bmdlcyhjb25zdCBUaW1lUmFuZ2VzJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW50
ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAyZDQ0NTg2ZmRlNGY5
NGY2MmZhZTcwMDNkYWQzM2Q4YmJkOGQzMDI5Li5jMWE5NjI2MzNmMGY0YTEwM2ZlMDI1YTNhNDBk
MmRhNWZhOWQ4NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC0zMiw2ICsz
Miw3IEBACiAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsLmgiCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZUaW1lLmg+CiAjaW1wb3J0IDxBVktp
dC9BVktpdC5oPgogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+CiAjaW1wb3J0
IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KQEAgLTY0LDExICs2NSwx
NCBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCiBTT0ZUX0xJTktfRlJBTUVXT1JL
KENvcmVNZWRpYSkKIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywg
Q01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChz
ZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1l
R2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQorU09GVF9MSU5LKENv
cmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJfdCB0aW1l
c2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCitTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVS
YW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGlt
ZSksIChyYW5nZSwgdGltZSkpCitTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2Us
IENNVGltZVJhbmdlLCAoQ01UaW1lIHN0YXJ0LCBDTVRpbWUgZHVyYXRpb24pLCAoc3RhcnQsIGR1
cmF0aW9uKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVN1YnRyYWN0LCBDTVRpbWUsIChD
TVRpbWUgbWludWVuZCwgQ01UaW1lIHN1YnRyYWhlbmQpLCAobWludWVuZCwgc3VidHJhaGVuZCkp
CiAKIEBpbnRlcmZhY2UgV2ViQVZQbGF5ZXJDb250cm9sbGVyIDogTlNPYmplY3QgPEFWUGxheWVy
Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KIAogQHByb3BlcnR5KHJldGFpbikgQVZQbGF5ZXJDb250
cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7Ci1AcHJvcGVydHkocmV0YWluKSBDQUxheWVy
PEFWVmlkZW9MYXllcj4gKnBsYXllckxheWVyOwogQHByb3BlcnR5KGFzc2lnbikgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWwqIGRlbGVnYXRlOwogCiBAcHJvcGVydHkgQk9PTCBjYW5QbGF5OwpAQCAt
ODcsNiArOTEsNyBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9h
dDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAcHJvcGVydHkocmV0YWluKSBOU0FycmF5ICps
b2FkZWRUaW1lUmFuZ2VzOwogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlclN0YXR1cyBzdGF0
dXM7CiBAcHJvcGVydHkocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CitAcHJvcGVydHko
cmV0YWluKSBOU0FycmF5ICpzZWVrYWJsZVRpbWVSYW5nZXM7CiAKIC0gKEJPT0wpcGxheWVyVmll
d0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxl
ciBzaG91bGREaXNtaXNzV2l0aFJlYXNvbjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlckRpc21pc3Nh
bFJlYXNvbilyZWFzb247CiBAZW5kCkBAIC0xMDYsOCArMTExLDggQEAgU09GVF9MSU5LKENvcmVN
ZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQog
LSAodm9pZClkZWFsbG9jCiB7CiAgICAgW19wbGF5ZXJDb250cm9sbGVyUHJveHkgcmVsZWFzZV07
Ci0gICAgW19wbGF5ZXJMYXllciByZWxlYXNlXTsKICAgICBbX2xvYWRlZFRpbWVSYW5nZXMgcmVs
ZWFzZV07CisgICAgW19zZWVrYWJsZVRpbWVSYW5nZXMgcmVsZWFzZV07CiAgICAgW190aW1pbmcg
cmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpAQCAtMTc0LDYgKzE3OSw1MiBAQCBT
T0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRp
bWUpLCAodGltZSkpCiAgICAgc2VsZi5kZWxlZ2F0ZS0+c2Vla1RvVGltZSh0aW1lKTsKIH0KIAor
LSAoQk9PTCloYXNMaXZlU3RyZWFtaW5nQ29udGVudAoreworICAgIGlmIChbc2VsZiBzdGF0dXNd
ID09IEFWUGxheWVyQ29udHJvbGxlclN0YXR1c1JlYWR5VG9QbGF5KQorICAgICAgICByZXR1cm4g
W3NlbGYgY29udGVudER1cmF0aW9uXSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5m
aW5pdHkoKTsKKyAgICByZXR1cm4gTk87Cit9CisKKysgKE5TU2V0ICopa2V5UGF0aHNGb3JWYWx1
ZXNBZmZlY3RpbmdIYXNMaXZlU3RyZWFtaW5nQ29udGVudAoreworICAgIHJldHVybiBbTlNTZXQg
c2V0V2l0aE9iamVjdHM6QCJjb250ZW50RHVyYXRpb24iLCBAInN0YXR1cyIsIG5pbF07Cit9CisK
Ky0gKHZvaWQpc2tpcEJhY2t3YXJkVGhpcnR5U2Vjb25kczooaWQpc2VuZGVyCit7CisgICAgVU5V
U0VEX1BBUkFNKHNlbmRlcik7CisgICAgQk9PTCBpc1RpbWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5n
ZXMgPSBOTzsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMo
W1tzZWxmIHRpbWluZ10gY3VycmVudFZhbHVlXSwgMTAwMCk7CisgICAgQ01UaW1lIHRoaXJ0eVNl
Y29uZHNCZWZvcmVDdXJyZW50VGltZSA9IENNVGltZVN1YnRyYWN0KGN1cnJlbnRUaW1lLCBDTVRp
bWVNYWtlKDMwLCAxKSk7CisgICAgCisgICAgZm9yIChOU1ZhbHVlICpzZWVrYWJsZVRpbWVSYW5n
ZVZhbHVlIGluIFtzZWxmIHNlZWthYmxlVGltZVJhbmdlc10pIHsKKyAgICAgICAgaWYgKENNVGlt
ZVJhbmdlQ29udGFpbnNUaW1lKFtzZWVrYWJsZVRpbWVSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFs
dWVdLCB0aGlydHlTZWNvbmRzQmVmb3JlQ3VycmVudFRpbWUpKSB7CisgICAgICAgICAgICBpc1Rp
bWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5nZXMgPSBZRVM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoaXNUaW1lV2l0aGluU2Vla2FibGVUaW1lUmFu
Z2VzKQorICAgICAgICBbc2VsZiBzZWVrVG9UaW1lOkNNVGltZUdldFNlY29uZHModGhpcnR5U2Vj
b25kc0JlZm9yZUN1cnJlbnRUaW1lKV07Cit9CisKKy0gKHZvaWQpZ290b0VuZE9mU2Vla2FibGVS
YW5nZXM6KGlkKXNlbmRlcgoreworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOworICAgIE5TVGlt
ZUludGVydmFsIHRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzID0gTkFOOworICAgIAorICAg
IGZvciAoTlNWYWx1ZSAqc2Vla2FibGVUaW1lUmFuZ2VWYWx1ZSBpbiBbc2VsZiBzZWVrYWJsZVRp
bWVSYW5nZXNdKSB7CisgICAgICAgIENNVGltZVJhbmdlIHNlZWthYmxlVGltZVJhbmdlID0gW3Nl
ZWthYmxlVGltZVJhbmdlVmFsdWUgQ01UaW1lUmFuZ2VWYWx1ZV07CisgICAgICAgIE5TVGltZUlu
dGVydmFsIGVuZE9mU2Vla2FibGVUaW1lUmFuZ2UgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVJh
bmdlR2V0RW5kKHNlZWthYmxlVGltZVJhbmdlKSk7CisgICAgICAgIGlmIChpc25hbih0aW1lQXRF
bmRPZlNlZWthYmxlVGltZVJhbmdlcykgfHwgZW5kT2ZTZWVrYWJsZVRpbWVSYW5nZSA+IHRpbWVB
dEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzKQorICAgICAgICAgICAgdGltZUF0RW5kT2ZTZWVrYWJs
ZVRpbWVSYW5nZXMgPSBlbmRPZlNlZWthYmxlVGltZVJhbmdlOworICAgIH0KKyAgICAKKyAgICBp
ZiAoIWlzbmFuKHRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzKSkKKyAgICAgICAgW3NlbGYg
c2Vla1RvVGltZTp0aW1lQXRFbmRPZlNlZWthYmxlVGltZVJhbmdlc107Cit9CisKIEBlbmQKIAog
QGludGVyZmFjZSBXZWJBVlZpZGVvTGF5ZXIgOiBDQUxheWVyIDxBVlZpZGVvTGF5ZXI+CkBAIC0z
MTEsNiArMzYyLDIyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3CiAgICAgcGxheWVyQ29udHJv
bGxlcigpLmNvbnRlbnREaW1lbnNpb25zID0gQ0dTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KTsKIH0K
IAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5n
ZXMoY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYgdGltZVJhbmdlcykKK3sKKyAgICBOU011dGFi
bGVBcnJheSogc2Vla2FibGVSYW5nZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIEV4
Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCB0aW1lUmFuZ2VzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gdGlt
ZVJhbmdlcy5zdGFydChpLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgZG91YmxlIGVuZCA9IHRp
bWVSYW5nZXMuZW5kKGksIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICAKKyAgICAgICAgQ01UaW1l
UmFuZ2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0
LCAxMDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOworICAgICAg
ICBbc2Vla2FibGVSYW5nZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdl
OnJhbmdlXV07CisgICAgfQorICAgIAorICAgIHBsYXllckNvbnRyb2xsZXIoKS5zZWVrYWJsZVRp
bWVSYW5nZXMgPSBzZWVrYWJsZVJhbmdlczsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIp
CiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+
IHByb3RlY3QodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXgg
YWFjMzQ2YWQxMmQ1Nzc0YjM1NzNjZWE2YWI3YjA4MWZhMTQ1MTNiYS4uNzAyY2NkYzBjODk0MjNh
ZmQ5ZDY1MWUwNjQ4NTQyNDIzZWE5ZWY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbQpAQCAtODMsNiArODMsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaQogICAgIG1f
aXNMaXN0ZW5pbmcgPSB0cnVlOwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNl
dER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKTsKKyAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1fbWVkaWFFbGVtZW50LT5zZWVrYWJs
ZSgpKTsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZShtX21lZGlhRWxl
bWVudC0+aXNQbGF5aW5nKCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7CiAKICAg
ICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Q3VycmVudFRpbWUobV9tZWRpYUVsZW1l
bnQtPmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0
aW1lXSk7CkBAIC0xMDcsOCArMTA4LDEwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OmhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvCiAgICAg
ICAgIHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnBsYXlFdmVudAogICAgICAgICB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5yYXRlY2hhbmdlRXZlbnQpCiAgICAgICAg
IG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRlKG1fbWVkaWFFbGVtZW50LT5pc1Bs
YXlpbmcoKSwgbV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0ZSgpKTsKLSAgICBlbHNlIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS50aW1ldXBkYXRlRXZlbnQpCisgICAgZWxzZSBp
ZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50KSB7CiAgICAg
ICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRDdXJyZW50VGltZShtX21lZGlhRWxl
bWVudC0+Y3VycmVudFRpbWUoKSwgW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1V
cHRpbWVdKTsKKyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFNlZWthYmxl
UmFuZ2VzKCptX21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7CisgICAgfQogfQogCiB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5k
ZXggNTQzMmIyMTkwOGQ4MzZjNTg4YTBhMzVhMGE1M2M5YWI2MTA5OWVjMy4uOTRkMmE5MzVkOTkx
MDFmOTFjZmI1MWUyN2FhZmYwNGY3Njc4ZGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVsbHNj
cmVlbkludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5XaXRoSUQodWlu
dDMyX3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8
c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4pOwogCiAgICAgLy8gRnVsbHNjcmVlbiBPYnNlcnZl
cgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2VjYTIxODMw
ZTdlOTU4NjYxMWNhMjRkMWQ2MzVkODQwODc4NmVkOS4uZDNlMTVmOWY5MjBjZDM0MzRhOWYwMzY4
N2M2MDRiMDI0MDA1MTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSB7CiAgICAgU2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBk
b3VibGUgaG9zdFRpbWUpCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIHVu
c2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCisgICAgU2V0U2Vla2FibGVSYW5nZXNWZWN0
b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+IHJhbmdlcyk7CiAgICAgU2V0RHVy
YXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJs
ZSByYXRlKQogICAgIEVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IGI1YWVlNWU2MmE1ZDBmOTE1MGJiOGJh
ZGY1NjczZDJmY2E0ZDRlYTUuLjdhNWI5M2Y0OGZkNzM3MWMwZGE5MGEwMjg0YTIzZjVjMDJjMGVl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVSYW5nZXMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTYzLDYgKzY0LDIwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklE
CiAgICAgbV9sYXllckhvc3QgPSBXS01ha2VSZW5kZXJMYXllcih2aWRlb0xheWVySUQpOwogICAg
IGVudGVyRnVsbHNjcmVlbigqbV9sYXllckhvc3QuZ2V0KCkpOwogfQorICAgIAordm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3Rv
cjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXMpCit7CisgICAgUmVmUHRyPFRpbWVS
YW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIHJhbmdlIDogcmFuZ2VzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzZmluaXRlKHJh
bmdlLmZpcnN0KSk7CisgICAgICAgIEFTU0VSVChpc2Zpbml0ZShyYW5nZS5zZWNvbmQpKTsKKyAg
ICAgICAgQVNTRVJUKHJhbmdlLnNlY29uZCA+PSByYW5nZS5maXJzdCk7CisgICAgICAgIHRpbWVS
YW5nZXMtPmFkZChyYW5nZS5maXJzdCwgcmFuZ2Uuc2Vjb25kKTsKKyAgICB9CisKKyAgICBzZXRT
ZWVrYWJsZVJhbmdlcygqdGltZVJhbmdlcyk7Cit9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
CmluZGV4IDQ2NmQ3MjQwMDExNTc5NjU3ZWI1NTVkMTJjODczNWQ1OGM2ZmRiNWUuLjM2NDVmMDAy
MjlhZTUxYzBmZTU2NmEzMDcxZDRjZjQxOThkZTQxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAg
LTcwLDYgKzcwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGlt
ZShkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlk
ZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJikgb3ZlcnJpZGU7
CiAgICAgCiAgICAgLy8gYWRkaXRpb25hbCBpbmNvbWluZwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
bnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDRlNGU4ODBiZTcwYzI4
MWRkNGI5ZjkzNDI0MmEzMWU4MTdhZGJkY2QuLjU3MTlkOTdjNWM4MjQwMjQ4NjllMGQzYTQ2ZjNi
NzRiOTg1YTA3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMTE5LDYgKzExOSwyMCBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvRGltZW5zaW9ucyhib29sIGhh
c1ZpZGVvLCBmbG9hdCB3aWR0aCwgZgogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoaGFzVmlkZW8s
IHdpZHRoLCBoZWlnaHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0U2Vla2FibGVSYW5nZXMoY29uc3QgV2ViQ29yZTo6VGlt
ZVJhbmdlcyYgdGltZVJhbmdlcykKK3sKKyAgICBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91
YmxlPj4gcmFuZ2VzVmVjdG9yOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0
aW1lUmFuZ2VzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRp
b25Db2RlOworICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGksIGV4Y2Vw
dGlvbkNvZGUpOworICAgICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSwgZXhjZXB0
aW9uQ29kZSk7CisgICAgICAgIHJhbmdlc1ZlY3Rvci5hcHBlbmQoc3RkOjpwYWlyPGRvdWJsZSxk
b3VibGU+KHN0YXJ0LCBlbmQpKTsKKyAgICB9CisKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0U2Vla2FibGVSYW5nZXNWZWN0b3Io
c3RkOjptb3ZlKHJhbmdlc1ZlY3RvcikpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewo=
</data>
<flag name="review"
          id="251760"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="251974"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227871</attachid>
            <date>2014-03-26 12:09:12 -0700</date>
            <delta_ts>2014-03-26 12:14:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128684-20140326120855.patch</filename>
            <type>text/plain</type>
            <size>18623</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE1MTA5MTU2YWQ5MWQw
ZmMxZDQ4OGFhYTBmM2ZmMDk2ZjgyOGEwZC4uM2Y2YmVjODZlMDVjZThlOGJhNGU2M2I1Nzg3ZDkw
MThjNGY5Nzk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTAzLTIxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaGFzTGl2
ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2ViQVZQbGF5ZXJDb250cm9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICBBZGQgZXhwb3J0IGZvciBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0U2Vla2FibGVSYW5nZXMoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaDoKKyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2Vz
KCkKKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICBBZGQgc2V0U2Vla2FibGVSYW5nZXMoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICBS
ZW1vdmUgdmVzdGlnaWFsIHBsYXllckxheWVyIHByb3BlcnR5LiBBZGQgc2Vla2FibGVUaW1lUmFu
Z2VzIHByb3BlcnR5LgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBkZWFsbG9j
XSk6CisgICAgICAgIFJlbGVhc2UgX3NlZWthYmxlVGltZVJhbmdlcy4KKyAgICAgICAgUmVtb3Zl
IHJlZmVyZW5jZXMgdG8gX3BsYXllckxheWVyLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29u
dHJvbGxlciBoYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBJbXBsZW1lbnQgYmFz
ZWQgb24gZHVyYXRpb24uIExpdmUgc3RyZWFtIGhhcyBhbiBpbmZpbml0ZSBkdXJhdGlvbi4KKwor
ICAgICAgICAoK1tXZWJBVlBsYXllckNvbnRyb2xsZXIga2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3Rp
bmdIYXNMaXZlU3RyZWFtaW5nQ29udGVudF0pOgorICAgICAgICBEZXNjcmliZSBkZXBlbmRlbnQg
a2V5cyBmb3IgY29tcHV0ZWQgcHJvcGVydHkgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQuCisKKyAg
ICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNraXBCYWNrd2FyZFRoaXJ0eVNlY29uZHM6
XSk6CisgICAgICAgIFNlZWsgYmFjayAzMCBzZWNvbmRzIGlmIHRoYXQgdGltZSBpcyBpbiB0aGUg
c2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBnb3Rv
RW5kT2ZTZWVrYWJsZVJhbmdlczpdKToKKyAgICAgICAgSnVtcCB0byBsaXZlIGJ5IGdvaW5nIHRv
IHRoZSBvZiB0aGUgc2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5nZXMpOgorICAgICAgICBDb252ZXJ0IFRp
bWVSYW5nZSB0byBDTVRpbWVSYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBTZXQgaW5p
dGlhbCBzZWVrYWJsZSByYW5nZXMuCisKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50OjpoYW5kbGVFdmVudCk6CisgICAgICAgIFVwZGF0ZSBzZWVrYWJsZSByYW5n
ZXMgd2hlbiB0aW1lIGNoYW5nZXMuCisKIDIwMTQtMDMtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgTWlub3IgV2ViVlRUIENsZWFudXBzIGZy
b20gQmxpbmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhNGU0ZjQyNzRhMWIyNTMwNGUyNWI5Yjk1ZGE1NDIzZDhi
ZmY2ZWIwLi4zMGI5MWIzNGUxMzA1OWZkOWE2OTgzMTE2N2VmZjM0YmI2ZjIyM2M5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTQtMDMtMjEgIEplcmVteSBKb25lcyAgPGplcmVteWpA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBoYXNMaXZlU3RyZWFtaW5nQ29udGVudCBw
cm9wZXJ0eSBpbiBXZWJBVlBsYXllckNvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIHRocm91Z2ggdGhlIHNlZWthYmxlIHJhbmdl
cyB0byB0aGUgZnVsbHNjcmVlbiBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICBBZGQgZGVjbGFyYXRp
b24gZm9yIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKCkKKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICBB
ZGQgaW50ZXJmYWNlIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKCkKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVj
dG9yKToKKyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yIHRoYXQgdHJhbnNsYXRl
cyB0aGUgdmVjdG9yIGludG8gYSBUaW1lUmFuZ2VzIGFuZCBjYWxscyBzZXRTZWVrYWJsZVJhbmdl
cygpCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lmg6CisgICAgICAgIEFkZCBzZXRTZWVrYWJsZVJhbmdlcygpCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRTZWVrYWJsZVJhbmdlcyk6CisgICAgICAgIHNl
dFNlZWthYmxlUmFuZ2VzKCkgY29udmVydHMgVGltZVJhbmdlcyB0byBWZWN0b3IgYW5kIGNhbGxz
IFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKCkKKwogMjAxNC0wMy0yNCAgRMOhbmllbCBCw6F0eWFp
ICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
W1dLMl0gQnVpbGRmaXggYWZ0ZXIgcjE2NjE1OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMWQx
ZjdkNWVlMmY1NTllMGE2YjYzZTlkOGM3NTNkMDI3YWJkMzA5Mi4uM2NlNWFlYTQyNjc2YWFlNmE1
ODY3MjdiZWJkMmJjMzVjZDBkMTVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMyNjcsNiAr
MzI2Nyw3IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQx
MXNldER1cmF0aW9uRWQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNGV4aXRGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRUaW1lRWRkCiBfX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FUjdDQUxheWVyCitfX1pO
N1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdzZXRTZWVrYWJsZVJh
bmdlc0VSS05TXzEwVGltZVJhbmdlc0UKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxOHNldFZpZGVvRGltZW5zaW9uc0ViZmYKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQyNnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
RVBOU18yM1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDM1c2V0V2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXJFUE5TXzMyV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXJFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
LmgKaW5kZXggZjNlOTFmYjViZDFhOTRjMTk2OWExZWE2NDExYjIwNGQ4MzkwYzUxMi4uODg0MTI3
MzY4YzhhNTZlM2ZiZjcwOTE1ZWMxZDZjZGVlZDc2NDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaApA
QCAtMjksMTAgKzI5LDEwIEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKLSNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1MYXllci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCitjbGFzcyBU
aW1lUmFuZ2VzOworCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgewogcHVibGlj
OgogICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSgpIHsgfTsKQEAgLTQw
LDYgKzQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3Vi
bGUgY3VycmVudFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlcyhj
b25zdCBUaW1lUmFuZ2VzJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
aAppbmRleCBjNDRjMDUxNTZlM2RlMmVhNjA1N2U1YmNiYTU0ZGZiMDRjYzA0ZDdjLi43NmQxZjc3
OTNiOWIyYjc4ODdkNDQ3MDg3Yjk0ODEzMjcxOTYyNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1
cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFj
a1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9v
bCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYpOwogICAg
IHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tCmluZGV4IGNjYTU5Y2M0MTJiNDA5NjZjZGJlZjUyMzMxMjdjNDhiYjRjNWVjMGQuLjg3YmQ4
MjE3ODljNGEwOTkxYjMxMzkwZTNkMzUwMGMxZWFjMmRkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KQEAgLTMyLDYgKzMyLDcgQEAKIAogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2lt
cG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCIKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VlRpbWUuaD4KICNpbXBvcnQgPEFWS2l0L0FWS2l0Lmg+CiAjaW1wb3J0IDxBVktpdC9BVlBsYXll
ckNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfUHJp
dmF0ZS5oPgpAQCAtNDEsNiArNDIsNyBAQAogI2ltcG9ydCA8Q29yZU1lZGlhL0NNVGltZS5oPgog
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
VGhyZWFkUnVuLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTY0LDExICs2Niwx
NCBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCiBTT0ZUX0xJTktfRlJBTUVXT1JL
KENvcmVNZWRpYSkKIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywg
Q01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChz
ZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1l
R2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQorU09GVF9MSU5LKENv
cmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJfdCB0aW1l
c2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCitTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVS
YW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGlt
ZSksIChyYW5nZSwgdGltZSkpCitTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2Us
IENNVGltZVJhbmdlLCAoQ01UaW1lIHN0YXJ0LCBDTVRpbWUgZHVyYXRpb24pLCAoc3RhcnQsIGR1
cmF0aW9uKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVN1YnRyYWN0LCBDTVRpbWUsIChD
TVRpbWUgbWludWVuZCwgQ01UaW1lIHN1YnRyYWhlbmQpLCAobWludWVuZCwgc3VidHJhaGVuZCkp
CiAKIEBpbnRlcmZhY2UgV2ViQVZQbGF5ZXJDb250cm9sbGVyIDogTlNPYmplY3QgPEFWUGxheWVy
Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KIAogQHByb3BlcnR5KHJldGFpbikgQVZQbGF5ZXJDb250
cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7Ci1AcHJvcGVydHkocmV0YWluKSBDQUxheWVy
PEFWVmlkZW9MYXllcj4gKnBsYXllckxheWVyOwogQHByb3BlcnR5KGFzc2lnbikgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWwqIGRlbGVnYXRlOwogCiBAcHJvcGVydHkgQk9PTCBjYW5QbGF5OwpAQCAt
ODcsNiArOTIsNyBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9h
dDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAcHJvcGVydHkocmV0YWluKSBOU0FycmF5ICps
b2FkZWRUaW1lUmFuZ2VzOwogQHByb3BlcnR5IEFWUGxheWVyQ29udHJvbGxlclN0YXR1cyBzdGF0
dXM7CiBAcHJvcGVydHkocmV0YWluKSBBVlZhbHVlVGltaW5nICp0aW1pbmc7CitAcHJvcGVydHko
cmV0YWluKSBOU0FycmF5ICpzZWVrYWJsZVRpbWVSYW5nZXM7CiAKIC0gKEJPT0wpcGxheWVyVmll
d0NvbnRyb2xsZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxl
ciBzaG91bGREaXNtaXNzV2l0aFJlYXNvbjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlckRpc21pc3Nh
bFJlYXNvbilyZWFzb247CiBAZW5kCkBAIC0xMDYsOCArMTEyLDggQEAgU09GVF9MSU5LKENvcmVN
ZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQog
LSAodm9pZClkZWFsbG9jCiB7CiAgICAgW19wbGF5ZXJDb250cm9sbGVyUHJveHkgcmVsZWFzZV07
Ci0gICAgW19wbGF5ZXJMYXllciByZWxlYXNlXTsKICAgICBbX2xvYWRlZFRpbWVSYW5nZXMgcmVs
ZWFzZV07CisgICAgW19zZWVrYWJsZVRpbWVSYW5nZXMgcmVsZWFzZV07CiAgICAgW190aW1pbmcg
cmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpAQCAtMTc0LDYgKzE4MCw1MiBAQCBT
T0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRp
bWUpLCAodGltZSkpCiAgICAgc2VsZi5kZWxlZ2F0ZS0+c2Vla1RvVGltZSh0aW1lKTsKIH0KIAor
LSAoQk9PTCloYXNMaXZlU3RyZWFtaW5nQ29udGVudAoreworICAgIGlmIChbc2VsZiBzdGF0dXNd
ID09IEFWUGxheWVyQ29udHJvbGxlclN0YXR1c1JlYWR5VG9QbGF5KQorICAgICAgICByZXR1cm4g
W3NlbGYgY29udGVudER1cmF0aW9uXSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5m
aW5pdHkoKTsKKyAgICByZXR1cm4gTk87Cit9CisKKysgKE5TU2V0ICopa2V5UGF0aHNGb3JWYWx1
ZXNBZmZlY3RpbmdIYXNMaXZlU3RyZWFtaW5nQ29udGVudAoreworICAgIHJldHVybiBbTlNTZXQg
c2V0V2l0aE9iamVjdHM6QCJjb250ZW50RHVyYXRpb24iLCBAInN0YXR1cyIsIG5pbF07Cit9CisK
Ky0gKHZvaWQpc2tpcEJhY2t3YXJkVGhpcnR5U2Vjb25kczooaWQpc2VuZGVyCit7CisgICAgVU5V
U0VEX1BBUkFNKHNlbmRlcik7CisgICAgQk9PTCBpc1RpbWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5n
ZXMgPSBOTzsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMo
W1tzZWxmIHRpbWluZ10gY3VycmVudFZhbHVlXSwgMTAwMCk7CisgICAgQ01UaW1lIHRoaXJ0eVNl
Y29uZHNCZWZvcmVDdXJyZW50VGltZSA9IENNVGltZVN1YnRyYWN0KGN1cnJlbnRUaW1lLCBDTVRp
bWVNYWtlKDMwLCAxKSk7CisgICAgCisgICAgZm9yIChOU1ZhbHVlICpzZWVrYWJsZVRpbWVSYW5n
ZVZhbHVlIGluIFtzZWxmIHNlZWthYmxlVGltZVJhbmdlc10pIHsKKyAgICAgICAgaWYgKENNVGlt
ZVJhbmdlQ29udGFpbnNUaW1lKFtzZWVrYWJsZVRpbWVSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFs
dWVdLCB0aGlydHlTZWNvbmRzQmVmb3JlQ3VycmVudFRpbWUpKSB7CisgICAgICAgICAgICBpc1Rp
bWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5nZXMgPSBZRVM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoaXNUaW1lV2l0aGluU2Vla2FibGVUaW1lUmFu
Z2VzKQorICAgICAgICBbc2VsZiBzZWVrVG9UaW1lOkNNVGltZUdldFNlY29uZHModGhpcnR5U2Vj
b25kc0JlZm9yZUN1cnJlbnRUaW1lKV07Cit9CisKKy0gKHZvaWQpZ290b0VuZE9mU2Vla2FibGVS
YW5nZXM6KGlkKXNlbmRlcgoreworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOworICAgIE5TVGlt
ZUludGVydmFsIHRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzID0gTkFOOworICAgIAorICAg
IGZvciAoTlNWYWx1ZSAqc2Vla2FibGVUaW1lUmFuZ2VWYWx1ZSBpbiBbc2VsZiBzZWVrYWJsZVRp
bWVSYW5nZXNdKSB7CisgICAgICAgIENNVGltZVJhbmdlIHNlZWthYmxlVGltZVJhbmdlID0gW3Nl
ZWthYmxlVGltZVJhbmdlVmFsdWUgQ01UaW1lUmFuZ2VWYWx1ZV07CisgICAgICAgIE5TVGltZUlu
dGVydmFsIGVuZE9mU2Vla2FibGVUaW1lUmFuZ2UgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVJh
bmdlR2V0RW5kKHNlZWthYmxlVGltZVJhbmdlKSk7CisgICAgICAgIGlmIChpc25hbih0aW1lQXRF
bmRPZlNlZWthYmxlVGltZVJhbmdlcykgfHwgZW5kT2ZTZWVrYWJsZVRpbWVSYW5nZSA+IHRpbWVB
dEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzKQorICAgICAgICAgICAgdGltZUF0RW5kT2ZTZWVrYWJs
ZVRpbWVSYW5nZXMgPSBlbmRPZlNlZWthYmxlVGltZVJhbmdlOworICAgIH0KKyAgICAKKyAgICBp
ZiAoIWlzbmFuKHRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzKSkKKyAgICAgICAgW3NlbGYg
c2Vla1RvVGltZTp0aW1lQXRFbmRPZlNlZWthYmxlVGltZVJhbmdlc107Cit9CisKIEBlbmQKIAog
QGludGVyZmFjZSBXZWJBVlZpZGVvTGF5ZXIgOiBDQUxheWVyIDxBVlZpZGVvTGF5ZXI+CkBAIC0z
MTEsNiArMzYzLDIyIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3CiAgICAgcGxheWVyQ29udHJv
bGxlcigpLmNvbnRlbnREaW1lbnNpb25zID0gQ0dTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KTsKIH0K
IAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5n
ZXMoY29uc3QgVGltZVJhbmdlcyYgdGltZVJhbmdlcykKK3sKKyAgICBOU011dGFibGVBcnJheSog
c2Vla2FibGVSYW5nZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIEV4Y2VwdGlvbkNv
ZGUgZXhjZXB0aW9uQ29kZTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aW1lUmFu
Z2VzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gdGltZVJhbmdlcy5z
dGFydChpLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgZG91YmxlIGVuZCA9IHRpbWVSYW5nZXMu
ZW5kKGksIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICAKKyAgICAgICAgQ01UaW1lUmFuZ2UgcmFu
Z2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwg
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOworICAgICAgICBbc2Vla2Fi
bGVSYW5nZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdlOnJhbmdlXV07
CisgICAgfQorICAgIAorICAgIHBsYXllckNvbnRyb2xsZXIoKS5zZWVrYWJsZVRpbWVSYW5nZXMg
PSBzZWVrYWJsZVJhbmdlczsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIpCiB7CiAgICAg
X19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3Qo
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggYWFjMzQ2YWQx
MmQ1Nzc0YjM1NzNjZWE2YWI3YjA4MWZhMTQ1MTNiYS4uNjAwZDgxNWEyMjE0ZjBiOTRhZjhjMTAx
MTdkNDdkYmEwMmRlNDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQpA
QCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29m
dExpbmtpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRp
b24uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTgzLDYgKzg0LDcgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVkaWFFbGVtZW50KEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGkKICAgICBtX2lzTGlzdGVuaW5nID0gdHJ1ZTsKIAogICAgIG1fdmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXREdXJhdGlvbihtX21lZGlhRWxlbWVudC0+ZHVyYXRp
b24oKSk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFNlZWthYmxlUmFuZ2Vz
KCptX21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UtPnNldFJhdGUobV9tZWRpYUVsZW1lbnQtPmlzUGxheWluZygpLCBtX21lZGlhRWxlbWVu
dC0+cGxheWJhY2tSYXRlKCkpOwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNl
dEN1cnJlbnRUaW1lKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0lu
Zm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGltZV0pOwpAQCAtMTA3LDggKzEwOSwxMSBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpoYW5kbGVFdmVudChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25DbwogICAgICAgICB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5wbGF5RXZlbnQKICAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
cmF0ZWNoYW5nZUV2ZW50KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0
UmF0ZShtX21lZGlhRWxlbWVudC0+aXNQbGF5aW5nKCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFj
a1JhdGUoKSk7Ci0gICAgZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudGlt
ZXVwZGF0ZUV2ZW50KQorICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LnRpbWV1cGRhdGVFdmVudCkgewogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+
c2V0Q3VycmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNz
SW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CisgICAgICAgIC8vIEZJWE1FOiAxMzA3
ODggLSBmaW5kIGEgYmV0dGVyIGV2ZW50IHRvIHVwZGF0ZSBzZWVrYWJsZSByYW5nZXMgZnJvbS4K
KyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFNlZWthYmxlUmFuZ2VzKCpt
X21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyKiB2aWRlb0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggNTQzMmIy
MTkwOGQ4MzZjNTg4YTBhMzVhMGE1M2M5YWI2MTA5OWVjMy4uZTk2MGI2ZjZkNDMxNTQ2NGNjZWYx
YTBkODk5YjllNDkxZDY0YjliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01Myw2
ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVsbHNjcmVlbkludGVy
ZmFjZQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpwYWly
PGRvdWJsZSwgZG91YmxlPj4mKTsKIAogICAgIC8vIEZ1bGxzY3JlZW4gT2JzZXJ2ZXIKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNlY2EyMTgzMGU3ZTk1ODY2
MTFjYTI0ZDFkNjM1ZDg0MDg3ODZlZDkuLmQzZTE1ZjlmOTIwY2QzNDM0YTlmMDM2ODdjNjA0YjAy
NDAwNTE5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNCw2ICsyNCw3IEBACiBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkgewogICAgIFNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGhv
c3RUaW1lKQogICAgIFNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3
aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQorICAgIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3Rv
cjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXMpOwogICAgIFNldER1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkK
ICAgICBFbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBiNWFlZTVlNjJhNWQwZjkxNTBiYjhiYWRmNTY3M2Qy
ZmNhNGQ0ZWE1Li5mNWRiZGI1ZjI0OWY0NDM2YTk1NDI2NDYwMGI0ZDQ0NTI1MmQyNzg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8UXVhcnR6
Q29yZS9Db3JlQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC02Myw2ICs2NCwyMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZW50ZXJGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRAogICAgIG1f
bGF5ZXJIb3N0ID0gV0tNYWtlUmVuZGVyTGF5ZXIodmlkZW9MYXllcklEKTsKICAgICBlbnRlckZ1
bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpKTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpw
YWlyPGRvdWJsZSwgZG91YmxlPj4mIHJhbmdlcykKK3sKKyAgICBSZWZQdHI8VGltZVJhbmdlcz4g
dGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIGZvciAoY29uc3QgYXV0byYg
cmFuZ2UgOiByYW5nZXMpCisgICAgeworICAgICAgICBBU1NFUlQoaXNmaW5pdGUocmFuZ2UuZmly
c3QpKTsKKyAgICAgICAgQVNTRVJUKGlzZmluaXRlKHJhbmdlLnNlY29uZCkpOworICAgICAgICBB
U1NFUlQocmFuZ2Uuc2Vjb25kID49IHJhbmdlLmZpcnN0KTsKKyAgICAgICAgdGltZVJhbmdlcy0+
YWRkKHJhbmdlLmZpcnN0LCByYW5nZS5zZWNvbmQpOworICAgIH0KKworICAgIHNldFNlZWthYmxl
UmFuZ2VzKCp0aW1lUmFuZ2VzKTsKK30KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXgg
NDY2ZDcyNDAwMTE1Nzk2NTdlYjU1NWQxMmM4NzM1ZDU4YzZmZGI1ZS4uMzY0NWYwMDIyOWFlNTFj
MGZlNTY2YTMwNzFkNGNmNDE5OGRlNDEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNzAsNiAr
NzAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJs
ZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxv
YXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNl
ZWthYmxlUmFuZ2VzKGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmKSBvdmVycmlkZTsKICAgICAK
ICAgICAvLyBhZGRpdGlvbmFsIGluY29taW5nCiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVs
bHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggNGU0ZTg4MGJlNzBjMjgxZGQ0Yjlm
OTM0MjQyYTMxZTgxN2FkYmRjZC4uNTJiY2ZhNzFmYmRlODg5ZjMxOWI4YTI4OTljNzQ0ZjkzM2I0
NTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNB
TGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UaW1lUmFuZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTE5LDYgKzEyMCwyMCBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBm
bG9hdCB3aWR0aCwgZgogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoaGFzVmlkZW8sIHdpZHRoLCBo
ZWlnaHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0U2Vla2FibGVSYW5nZXMoY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYg
dGltZVJhbmdlcykKK3sKKyAgICBWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFu
Z2VzVmVjdG9yOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aW1lUmFuZ2Vz
Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwor
ICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGksIGV4Y2VwdGlvbkNvZGUp
OworICAgICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSwgZXhjZXB0aW9uQ29kZSk7
CisgICAgICAgIHJhbmdlc1ZlY3Rvci5hcHBlbmQoc3RkOjpwYWlyPGRvdWJsZSxkb3VibGU+KHN0
YXJ0LCBlbmQpKTsKKyAgICB9CisKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0U2Vla2FibGVSYW5nZXNWZWN0b3Ioc3RkOjptb3Zl
KHJhbmdlc1ZlY3RvcikpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewo=
</data>
<flag name="commit-queue"
          id="252119"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227875</attachid>
            <date>2014-03-26 12:24:43 -0700</date>
            <delta_ts>2014-03-26 13:18:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128684-20140326122425.patch</filename>
            <type>text/plain</type>
            <size>18619</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE1MTA5MTU2YWQ5MWQw
ZmMxZDQ4OGFhYTBmM2ZmMDk2ZjgyOGEwZC4uNDhkMjk3ZmExOWM3Nzg1OTQ3YTNlNzJjYzdhZjA0
NGZlNzA1NmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE0LTAzLTIxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaGFzTGl2
ZVN0cmVhbWluZ0NvbnRlbnQgcHJvcGVydHkgaW4gV2ViQVZQbGF5ZXJDb250cm9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgQWRkIGV4cG9ydCBmb3IgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnNldFNlZWthYmxlUmFuZ2VzKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg6CisgICAgICAgIEFkZCBzZXRTZWVrYWJsZVJhbmdlcygp
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaDoKKyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2VzKCkKKworICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgUmVt
b3ZlIHZlc3RpZ2lhbCBwbGF5ZXJMYXllciBwcm9wZXJ0eS4gQWRkIHNlZWthYmxlVGltZVJhbmdl
cyBwcm9wZXJ0eS4KKworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10p
OgorICAgICAgICBSZWxlYXNlIF9zZWVrYWJsZVRpbWVSYW5nZXMuCisgICAgICAgIFJlbW92ZSBy
ZWZlcmVuY2VzIHRvIF9wbGF5ZXJMYXllci4KKworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRy
b2xsZXIgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnRdKToKKyAgICAgICAgSW1wbGVtZW50IGJhc2Vk
IG9uIGR1cmF0aW9uLiBMaXZlIHN0cmVhbSBoYXMgYW4gaW5maW5pdGUgZHVyYXRpb24uCisKKyAg
ICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5n
SGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnRdKToKKyAgICAgICAgRGVzY3JpYmUgZGVwZW5kZW50IGtl
eXMgZm9yIGNvbXB1dGVkIHByb3BlcnR5IGhhc0xpdmVTdHJlYW1pbmdDb250ZW50LgorCisgICAg
ICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBza2lwQmFja3dhcmRUaGlydHlTZWNvbmRzOl0p
OgorICAgICAgICBTZWVrIGJhY2sgMzAgc2Vjb25kcyBpZiB0aGF0IHRpbWUgaXMgaW4gdGhlIHNl
ZWthYmxlIHJhbmdlcy4KKworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZ290b0Vu
ZE9mU2Vla2FibGVSYW5nZXM6XSk6CisgICAgICAgIEp1bXAgdG8gbGl2ZSBieSBnb2luZyB0byB0
aGUgb2YgdGhlIHNlZWthYmxlIHJhbmdlcy4KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldFNlZWthYmxlUmFuZ2VzKToKKyAgICAgICAgQ29udmVydCBUaW1l
UmFuZ2UgdG8gQ01UaW1lUmFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVkaWFFbGVtZW50KToKKyAgICAgICAgU2V0IGluaXRp
YWwgc2Vla2FibGUgcmFuZ2VzLgorCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudDo6aGFuZGxlRXZlbnQpOgorICAgICAgICBVcGRhdGUgc2Vla2FibGUgcmFuZ2Vz
IHdoZW4gdGltZSBjaGFuZ2VzLgorCiAyMDE0LTAzLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdlIE1pbm9yIFdlYlZUVCBDbGVhbnVwcyBmcm9t
IEJsaW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTRlNGY0Mjc0YTFiMjUzMDRlMjViOWI5NWRhNTQyM2Q4YmZm
NmViMC4uNGMxYTBiMjY5MzZkNzhlYjM2NTYwY2ZhNDZlZWZkZTBmYzU5YTM2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAzLTIxICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaGFzTGl2ZVN0cmVhbWluZ0NvbnRlbnQgcHJv
cGVydHkgaW4gV2ViQVZQbGF5ZXJDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgUGx1bWIgdGhyb3VnaCB0aGUgc2Vla2FibGUgcmFuZ2VzIHRv
IHRoZSBmdWxsc2NyZWVuIGludGVyZmFjZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgIEFkZCBkZWNsYXJhdGlvbiBm
b3Igc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoKQorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBp
bnRlcmZhY2UgU2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoKQorCisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2FibGVSYW5nZXNWZWN0b3Ip
OgorICAgICAgICBBZGQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IgdGhhdCB0cmFuc2xhdGVzIHRo
ZSB2ZWN0b3IgaW50byBhIFRpbWVSYW5nZXMgYW5kIGNhbGxzIHNldFNlZWthYmxlUmFuZ2VzKCkK
KworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoK
KyAgICAgICAgQWRkIHNldFNlZWthYmxlUmFuZ2VzKCkKKworICAgICAgICAqIFdlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFNlZWthYmxlUmFuZ2VzKToKKyAgICAgICAgc2V0U2Vl
a2FibGVSYW5nZXMoKSBjb252ZXJ0cyBUaW1lUmFuZ2VzIHRvIFZlY3RvciBhbmQgY2FsbHMgU2V0
U2Vla2FibGVSYW5nZXNWZWN0b3IoKQorCiAyMDE0LTAzLTI0ICBEw6FuaWVsIELDoXR5YWkgIDxk
YmF0eWFpLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sy
XSBCdWlsZGZpeCBhZnRlciByMTY2MTU5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxZDFmN2Q1
ZWUyZjU1OWUwYTZiNjNlOWQ4Yzc1M2QwMjdhYmQzMDkyLi4zY2U1YWVhNDI2NzZhYWU2YTU4Njcy
N2JlYmQyYmMzNWNkMGQxNWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzI2Nyw2ICszMjY3
LDcgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDExc2V0
RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDE0ZXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkVSN0NBTGF5ZXIKK19fWk43V2Vi
Q29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNlZWthYmxlUmFuZ2Vz
RVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgogX19aTjdXZWJDb3JlMzJXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFUE5T
XzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0MzVzZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckVQ
TlNfMzJXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaApp
bmRleCBmM2U5MWZiNWJkMWE5NGMxOTY5YTFlYTY0MTFiMjA0ZDgzOTBjNTEyLi44ODQxMjczNjhj
OGE1NmUzZmJmNzA5MTVlYzFkNmNkZWVkNzY0ODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBAIC0y
OSwxMCArMjksMTAgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybUxheWVyLmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKK2NsYXNzIFRpbWVS
YW5nZXM7CisKIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKCkgeyB9OwpAQCAtNDAsNiAr
NDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSBj
dXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKGNvbnN0
IFRpbWVSYW5nZXMmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmlu
ZGV4IGM0NGMwNTE1NmUzZGUyZWE2MDU3ZTViY2JhNTRkZmIwNGNjMDRkN2MuLjc2ZDFmNzc5M2I5
YjJiNzg4N2Q0NDcwODdiOTQ4MTMyNzE5NjI2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhib29sIGhh
c1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJhbmdlcyYpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJik7CiAgICAgdmly
dHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0K
aW5kZXggY2NhNTljYzQxMmI0MDk2NmNkYmVmNTIzMzEyN2M0OGJiNGM1ZWMwZC4uODdiZDgyMTc4
OWM0YTA5OTFiMzEzOTBlM2QzNTAwYzFlYWMyZGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWVGlt
ZS5oPgogI2ltcG9ydCA8QVZLaXQvQVZLaXQuaD4KICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyQ29u
dHJvbGxlci5oPgogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9Qcml2YXRl
Lmg+CkBAIC00MSw2ICs0Miw3IEBACiAjaW1wb3J0IDxDb3JlTWVkaWEvQ01UaW1lLmg+CiAjaW1w
b3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJl
YWRSdW4uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNjQsMTEgKzY2LDE0IEBA
IFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xvcikKIFNPRlRfTElOS19GUkFNRVdPUksoQ29y
ZU1lZGlhKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRp
bWUsIChGbG9hdDY0IHNlY29uZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29u
ZHMsIHByZWZlcnJlZFRpbWVTY2FsZSkpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRT
ZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCitTT0ZUX0xJTksoQ29yZU1l
ZGlhLCBDTVRpbWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2Fs
ZSksICh2YWx1ZSwgdGltZXNjYWxlKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVJhbmdl
Q29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwg
KHJhbmdlLCB0aW1lKSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVJhbmdlTWFrZSwgQ01U
aW1lUmFuZ2UsIChDTVRpbWUgc3RhcnQsIENNVGltZSBkdXJhdGlvbiksIChzdGFydCwgZHVyYXRp
b24pKQorU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGlt
ZSBtaW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCksIChtaW51ZW5kLCBzdWJ0cmFoZW5kKSkKIAog
QGludGVyZmFjZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3
Q29udHJvbGxlckRlbGVnYXRlPgogCiBAcHJvcGVydHkocmV0YWluKSBBVlBsYXllckNvbnRyb2xs
ZXIqIHBsYXllckNvbnRyb2xsZXJQcm94eTsKLUBwcm9wZXJ0eShyZXRhaW4pIENBTGF5ZXI8QVZW
aWRlb0xheWVyPiAqcGxheWVyTGF5ZXI7CiBAcHJvcGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbCogZGVsZWdhdGU7CiAKIEBwcm9wZXJ0eSBCT09MIGNhblBsYXk7CkBAIC04Nyw2
ICs5Miw3IEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQs
IChDTVRpbWUgdGltZSksICh0aW1lKSkKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKmxvYWRl
ZFRpbWVSYW5nZXM7CiBAcHJvcGVydHkgQVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzIHN0YXR1czsK
IEBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVUaW1pbmcgKnRpbWluZzsKK0Bwcm9wZXJ0eShyZXRh
aW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdlczsKIAogLSAoQk9PTClwbGF5ZXJWaWV3Q29u
dHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNo
b3VsZERpc21pc3NXaXRoUmVhc29uOihBVlBsYXllclZpZXdDb250cm9sbGVyRGlzbWlzc2FsUmVh
c29uKXJlYXNvbjsKIEBlbmQKQEAgLTEwNiw4ICsxMTIsOCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlh
LCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiAtICh2
b2lkKWRlYWxsb2MKIHsKICAgICBbX3BsYXllckNvbnRyb2xsZXJQcm94eSByZWxlYXNlXTsKLSAg
ICBbX3BsYXllckxheWVyIHJlbGVhc2VdOwogICAgIFtfbG9hZGVkVGltZVJhbmdlcyByZWxlYXNl
XTsKKyAgICBbX3NlZWthYmxlVGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3RpbWluZyByZWxl
YXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0xNzQsNiArMTgwLDUyIEBAIFNPRlRf
TElOSyhDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSks
ICh0aW1lKSkKICAgICBzZWxmLmRlbGVnYXRlLT5zZWVrVG9UaW1lKHRpbWUpOwogfQogCistIChC
T09MKWhhc0xpdmVTdHJlYW1pbmdDb250ZW50Cit7CisgICAgaWYgKFtzZWxmIHN0YXR1c10gPT0g
QVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzUmVhZHlUb1BsYXkpCisgICAgICAgIHJldHVybiBbc2Vs
ZiBjb250ZW50RHVyYXRpb25dID09IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0
eSgpOworICAgIHJldHVybiBOTzsKK30KKworKyAoTlNTZXQgKilrZXlQYXRoc0ZvclZhbHVlc0Fm
ZmVjdGluZ0hhc0xpdmVTdHJlYW1pbmdDb250ZW50Cit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRX
aXRoT2JqZWN0czpAImNvbnRlbnREdXJhdGlvbiIsIEAic3RhdHVzIiwgbmlsXTsKK30KKworLSAo
dm9pZClza2lwQmFja3dhcmRUaGlydHlTZWNvbmRzOihpZClzZW5kZXIKK3sKKyAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsKKyAgICBCT09MIGlzVGltZVdpdGhpblNlZWthYmxlVGltZVJhbmdlcyA9
IE5POworICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyhbW3Nl
bGYgdGltaW5nXSBjdXJyZW50VmFsdWVdLCAxMDAwKTsKKyAgICBDTVRpbWUgdGhpcnR5U2Vjb25k
c0JlZm9yZUN1cnJlbnRUaW1lID0gQ01UaW1lU3VidHJhY3QoY3VycmVudFRpbWUsIENNVGltZU1h
a2UoMzAsIDEpKTsKKyAgICAKKyAgICBmb3IgKE5TVmFsdWUgKnNlZWthYmxlVGltZVJhbmdlVmFs
dWUgaW4gW3NlbGYgc2Vla2FibGVUaW1lUmFuZ2VzXSkgeworICAgICAgICBpZiAoQ01UaW1lUmFu
Z2VDb250YWluc1RpbWUoW3NlZWthYmxlVGltZVJhbmdlVmFsdWUgQ01UaW1lUmFuZ2VWYWx1ZV0s
IHRoaXJ0eVNlY29uZHNCZWZvcmVDdXJyZW50VGltZSkpIHsKKyAgICAgICAgICAgIGlzVGltZVdp
dGhpblNlZWthYmxlVGltZVJhbmdlcyA9IFlFUzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGlmIChpc1RpbWVXaXRoaW5TZWVrYWJsZVRpbWVSYW5nZXMp
CisgICAgICAgIFtzZWxmIHNlZWtUb1RpbWU6Q01UaW1lR2V0U2Vjb25kcyh0aGlydHlTZWNvbmRz
QmVmb3JlQ3VycmVudFRpbWUpXTsKK30KKworLSAodm9pZClnb3RvRW5kT2ZTZWVrYWJsZVJhbmdl
czooaWQpc2VuZGVyCit7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CisgICAgTlNUaW1lSW50
ZXJ2YWwgdGltZUF0RW5kT2ZTZWVrYWJsZVRpbWVSYW5nZXMgPSBOQU47CisgICAgCisgICAgZm9y
IChOU1ZhbHVlICpzZWVrYWJsZVRpbWVSYW5nZVZhbHVlIGluIFtzZWxmIHNlZWthYmxlVGltZVJh
bmdlc10pIHsKKyAgICAgICAgQ01UaW1lUmFuZ2Ugc2Vla2FibGVUaW1lUmFuZ2UgPSBbc2Vla2Fi
bGVUaW1lUmFuZ2VWYWx1ZSBDTVRpbWVSYW5nZVZhbHVlXTsKKyAgICAgICAgTlNUaW1lSW50ZXJ2
YWwgZW5kT2ZTZWVrYWJsZVRpbWVSYW5nZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lUmFuZ2VH
ZXRFbmQoc2Vla2FibGVUaW1lUmFuZ2UpKTsKKyAgICAgICAgaWYgKGlzbmFuKHRpbWVBdEVuZE9m
U2Vla2FibGVUaW1lUmFuZ2VzKSB8fCBlbmRPZlNlZWthYmxlVGltZVJhbmdlID4gdGltZUF0RW5k
T2ZTZWVrYWJsZVRpbWVSYW5nZXMpCisgICAgICAgICAgICB0aW1lQXRFbmRPZlNlZWthYmxlVGlt
ZVJhbmdlcyA9IGVuZE9mU2Vla2FibGVUaW1lUmFuZ2U7CisgICAgfQorICAgIAorICAgIGlmICgh
aXNuYW4odGltZUF0RW5kT2ZTZWVrYWJsZVRpbWVSYW5nZXMpKQorICAgICAgICBbc2VsZiBzZWVr
VG9UaW1lOnRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzXTsKK30KKwogQGVuZAogCiBAaW50
ZXJmYWNlIFdlYkFWVmlkZW9MYXllciA6IENBTGF5ZXIgPEFWVmlkZW9MYXllcj4KQEAgLTMxMSw2
ICszNjMsMjIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0Vmlk
ZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHcKICAgICBwbGF5ZXJDb250cm9sbGVy
KCkuY29udGVudERpbWVuc2lvbnMgPSBDR1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpOwogfQogCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRTZWVrYWJsZVJhbmdlcyhj
b25zdCBUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzKQoreworICAgIE5TTXV0YWJsZUFycmF5KiBzZWVr
YWJsZVJhbmdlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgRXhjZXB0aW9uQ29kZSBl
eGNlcHRpb25Db2RlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRpbWVSYW5nZXMu
bGVuZ3RoKCk7IGkrKykgeworICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0
KGksIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQo
aSwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgIAorICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9
IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBDTVRp
bWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAgIFtzZWVrYWJsZVJh
bmdlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKKyAg
ICB9CisgICAgCisgICAgcGxheWVyQ29udHJvbGxlcigpLnNlZWthYmxlVGltZVJhbmdlcyA9IHNl
ZWthYmxlUmFuZ2VzOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcikKIHsKICAgICBfX2Js
b2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBhYWMzNDZhZDEyZDU3
NzRiMzU3M2NlYTZhYjdiMDgxZmExNDUxM2JhLi42MDBkODE1YTIyMTRmMGI5NGFmOGMxMDExN2Q0
N2RiYTAyZGU0OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC00
MCw2ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlu
a2luZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVUaHJlYWRSdW4uaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtODMsNiArODQsNyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlh
RWxlbWVudCogbWVkaQogICAgIG1faXNMaXN0ZW5pbmcgPSB0cnVlOwogCiAgICAgbV92aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UtPnNldER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigp
KTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1f
bWVkaWFFbGVtZW50LT5zZWVrYWJsZSgpKTsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZS0+c2V0UmF0ZShtX21lZGlhRWxlbWVudC0+aXNQbGF5aW5nKCksIG1fbWVkaWFFbGVtZW50LT5w
bGF5YmFja1JhdGUoKSk7CiAKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Q3Vy
cmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBw
cm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CkBAIC0xMDcsOCArMTA5LDExIEBAIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OmhhbmRsZUV2ZW50KFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvCiAgICAgICAgIHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LnBsYXlFdmVudAogICAgICAgICB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5yYXRl
Y2hhbmdlRXZlbnQpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRl
KG1fbWVkaWFFbGVtZW50LT5pc1BsYXlpbmcoKSwgbV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0
ZSgpKTsKLSAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS50aW1ldXBk
YXRlRXZlbnQpCisgICAgZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudGlt
ZXVwZGF0ZUV2ZW50KSB7CiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRD
dXJyZW50VGltZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSwgW1tOU1Byb2Nlc3NJbmZv
IHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdKTsKKyAgICAgICAgLy8gRklYTUU6IDEzMDc4OCAt
IGZpbmQgYSBiZXR0ZXIgZXZlbnQgdG8gdXBkYXRlIHNlZWthYmxlIHJhbmdlcyBmcm9tLgorICAg
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0U2Vla2FibGVSYW5nZXMoKm1fbWVk
aWFFbGVtZW50LT5zZWVrYWJsZSgpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIqIHZpZGVvTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA1NDMyYjIxOTA4
ZDgzNmM1ODhhMGEzNWEwYTUzYzlhYjYxMDk5ZWMzLi5lOTYwYjZmNmQ0MzE1NDY0Y2NlZjFhMGQ4
OTliOWU0OTFkNjRiOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTUzLDYgKzUz
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBGdWxsc2NyZWVuSW50ZXJmYWNl
CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCk7CisgICAg
dmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91
YmxlLCBkb3VibGU+PiYpOwogCiAgICAgLy8gRnVsbHNjcmVlbiBPYnNlcnZlcgogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2VjYTIxODMwZTdlOTU4NjYxMWNh
MjRkMWQ2MzVkODQwODc4NmVkOS4uZDNlMTVmOWY5MjBjZDM0MzRhOWYwMzY4N2M2MDRiMDI0MDA1
MTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI0LDYgKzI0LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eSB7CiAgICAgU2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgaG9zdFRp
bWUpCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQpCisgICAgU2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0
ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+IHJhbmdlcyk7CiAgICAgU2V0RHVyYXRpb24oZG91Ymxl
IGR1cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQogICAg
IEVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCmluZGV4IGI1YWVlNWU2MmE1ZDBmOTE1MGJiOGJhZGY1NjczZDJmY2E0
ZDRlYTUuLmY1ZGJkYjVmMjQ5ZjQ0MzZhOTU0MjY0NjAwYjRkNDQ1MjUyZDI3ODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxRdWFydHpDb3Jl
L0NvcmVBbmltYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1RpbWVSYW5nZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTYzLDYgKzY0LDIwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjplbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklECiAgICAgbV9sYXll
ckhvc3QgPSBXS01ha2VSZW5kZXJMYXllcih2aWRlb0xheWVySUQpOwogICAgIGVudGVyRnVsbHNj
cmVlbigqbV9sYXllckhvc3QuZ2V0KCkpOwogfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8
ZG91YmxlLCBkb3VibGU+PiYgcmFuZ2VzKQoreworICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1l
UmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisgICAgZm9yIChjb25zdCBhdXRvJiByYW5n
ZSA6IHJhbmdlcykKKyAgICB7CisgICAgICAgIEFTU0VSVChpc2Zpbml0ZShyYW5nZS5maXJzdCkp
OworICAgICAgICBBU1NFUlQoaXNmaW5pdGUocmFuZ2Uuc2Vjb25kKSk7CisgICAgICAgIEFTU0VS
VChyYW5nZS5zZWNvbmQgPj0gcmFuZ2UuZmlyc3QpOworICAgICAgICB0aW1lUmFuZ2VzLT5hZGQo
cmFuZ2UuZmlyc3QsIHJhbmdlLnNlY29uZCk7CisgICAgfQorCisgICAgc2V0U2Vla2FibGVSYW5n
ZXMoKnRpbWVSYW5nZXMpOworfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA0NjZk
NzI0MDAxMTU3OTY1N2ViNTU1ZDEyYzg3MzVkNThjNmZkYjVlLi4zNjQ1ZjAwMjI5YWU1MWMwZmU1
NjZhMzA3MWQ0Y2Y0MTk4ZGU0MTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC03MCw2ICs3MCw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlIGN1
cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IHNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3
aWR0aCwgZmxvYXQgaGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2Fi
bGVSYW5nZXMoY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYpIG92ZXJyaWRlOwogICAgIAogICAg
IC8vIGFkZGl0aW9uYWwgaW5jb21pbmcKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2Ny
ZWVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCA0ZTRlODgwYmU3MGMyODFkZDRiOWY5MzQy
NDJhMzFlODE3YWRiZGNkLi41MmJjZmE3MWZiZGU4ODlmMzE5YjhhMjg5OWM3NDRmOTMzYjQ1MmMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Rp
bWVSYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMTksNiArMTIwLDIwIEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0
IHdpZHRoLCBmCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvRGltZW5zaW9ucyhoYXNWaWRlbywgd2lkdGgsIGhlaWdo
dCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJiB0aW1l
UmFuZ2VzKQoreworICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXNW
ZWN0b3I7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRpbWVSYW5nZXMubGVu
Z3RoKCk7IGkrKykgeworICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7CisgICAg
ICAgIGRvdWJsZSBzdGFydCA9IHRpbWVSYW5nZXMuc3RhcnQoaSwgZXhjZXB0aW9uQ29kZSk7Cisg
ICAgICAgIGRvdWJsZSBlbmQgPSB0aW1lUmFuZ2VzLmVuZChpLCBleGNlcHRpb25Db2RlKTsKKyAg
ICAgICAgcmFuZ2VzVmVjdG9yLmFwcGVuZChzdGQ6OnBhaXI8ZG91YmxlLGRvdWJsZT4oc3RhcnQs
IGVuZCkpOworICAgIH0KKworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpTZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihzdGQ6Om1vdmUocmFu
Z2VzVmVjdG9yKSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>