<?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>181174</bug_id>
          
          <creation_ts>2017-12-27 06:04:08 -0800</creation_ts>
          <short_desc>Remove std::chrono if it is not used for ArgumentCoder or PersistentCoder</short_desc>
          <delta_ts>2018-01-02 13:18:31 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1384791</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-27 06:04:08 -0800</bug_when>
    <thetext>Remove std::chrono if it is not used for ArgumentCoder or PersistentCoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384792</commentid>
    <comment_count>1</comment_count>
      <attachid>330213</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-27 06:07:05 -0800</bug_when>
    <thetext>Created attachment 330213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384795</commentid>
    <comment_count>2</comment_count>
      <attachid>330215</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-27 06:38:17 -0800</bug_when>
    <thetext>Created attachment 330215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384866</commentid>
    <comment_count>3</comment_count>
      <attachid>330234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 09:18:26 -0800</bug_when>
    <thetext>Created attachment 330234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384867</commentid>
    <comment_count>4</comment_count>
      <attachid>330234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 09:26:51 -0800</bug_when>
    <thetext>Comment on attachment 330234
Patch

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

Added some notes.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:351
&gt;  
&gt; -    auto startTime = std::chrono::system_clock::now();
&gt; +    auto startTime = MonotonicTime::now();

Note: When measuring time, we should use MonotonicTime.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCacheStatistics.cpp:96
&gt; -    auto startTime = std::chrono::system_clock::now();
&gt; +    auto startTime = MonotonicTime::now();

Note: When measuring time, we should use MonotonicTime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384868</commentid>
    <comment_count>5</comment_count>
      <attachid>330234</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-28 09:45:19 -0800</bug_when>
    <thetext>Comment on attachment 330234
Patch

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

/me personally would stay away from changing network and Apple-specific code from wall clock to monotonic, but YMMV

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:351
&gt;&gt; +    auto startTime = MonotonicTime::now();
&gt; 
&gt; Note: When measuring time, we should use MonotonicTime.

Note that there are cases when time values are passed between processes. I don&apos;t know if MonotonicTime can guarantee that its values are system-wide on all ports &amp; platforms.

FWIW, at least current implementation in Qt port isn&apos;t cross-process-safe (which caused me a longish debug session lately)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384869</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-28 09:49:23 -0800</bug_when>
    <thetext>At least I think changes from system_clock to MonotonicTime should be in a separate patch, if there is a regression it would be easier to bisect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384871</commentid>
    <comment_count>7</comment_count>
      <attachid>330234</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-28 09:57:53 -0800</bug_when>
    <thetext>Comment on attachment 330234
Patch

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

&gt; Source/WebCore/fileapi/FileReader.cpp:182
&gt; +    if (std::isnan(m_lastProgressNotificationTime)) {

I&apos;m not sure overloading std::isnan for MonotonicTime was a good idea. IMNSHO overloading stuff in std:: is confusing and should be avoided at all costs, unless polyfilling missing C++ standard features, or for things like std::swap which are implicitly used by existing std algorithm.

Here I would propose using something like if (!m_lastProgressNotificationTime.isValid()), and MonotonicTime::invalid() could be used to construct such values. Or even (carefully) change behavior of default ctor, so that MonotonicTime() is invalid and MonotonicTime { 0 } is epoch zero</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384876</commentid>
    <comment_count>8</comment_count>
      <attachid>330234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 10:43:57 -0800</bug_when>
    <thetext>Comment on attachment 330234
Patch

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

Thank you.

&gt;&gt; Source/WebCore/fileapi/FileReader.cpp:182
&gt;&gt; +    if (std::isnan(m_lastProgressNotificationTime)) {
&gt; 
&gt; I&apos;m not sure overloading std::isnan for MonotonicTime was a good idea. IMNSHO overloading stuff in std:: is confusing and should be avoided at all costs, unless polyfilling missing C++ standard features, or for things like std::swap which are implicitly used by existing std algorithm.
&gt; 
&gt; Here I would propose using something like if (!m_lastProgressNotificationTime.isValid()), and MonotonicTime::invalid() could be used to construct such values. Or even (carefully) change behavior of default ctor, so that MonotonicTime() is invalid and MonotonicTime { 0 } is epoch zero

I think that we know Seconds, MonotonicTime, and WallTime are double. Because of this,

1. all the arithmetic operations onto them follow IEEE double semantics.
2. we have MonotonicTime::infinity(), MonotonicTime::nan() etc. because it is double.

So I think having an overload for std::isnan, std::isfinite, std::isinf is not so bad idea.

BTW, we should not have MonotonicTime(double) constructor. Basically, this MonotonicTime should be produced only from MonotonicTime::now() or the other utility functions in WTF.
Making std::optional&lt;MonotonicTime&gt; m_lastProgressNotificationTime would be one idea. Not sure it is better than using MonotonicTime::nan().

&gt;&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:351
&gt;&gt;&gt; +    auto startTime = MonotonicTime::now();
&gt;&gt; 
&gt;&gt; Note: When measuring time, we should use MonotonicTime.
&gt; 
&gt; Note that there are cases when time values are passed between processes. I don&apos;t know if MonotonicTime can guarantee that its values are system-wide on all ports &amp; platforms.
&gt; 
&gt; FWIW, at least current implementation in Qt port isn&apos;t cross-process-safe (which caused me a longish debug session lately)

OK, for now, changed it to WallTime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384878</commentid>
    <comment_count>9</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-28 10:53:01 -0800</bug_when>
    <thetext>&gt;So I think having an overload for std::isnan, std::isfinite, std::isinf is not so bad idea.

It&apos;s rather confusing for those who didn&apos;t use these classes yet. At first you think variable is primitive, then you start thinking there must be implicit conversion, and only then you realize there are overloads in std namespace

&gt;BTW, we should not have MonotonicTime(double) constructor

Agree, this is my mistake. It should have been MonotonicTime::null() then, or something alike.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384880</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 11:05:49 -0800</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #9)
&gt; &gt;So I think having an overload for std::isnan, std::isfinite, std::isinf is not so bad idea.
&gt; 
&gt; It&apos;s rather confusing for those who didn&apos;t use these classes yet. At first
&gt; you think variable is primitive, then you start thinking there must be
&gt; implicit conversion, and only then you realize there are overloads in std
&gt; namespace

So, I think having each function in {MonotonicTime,WallTime,Seconds} is better. Like, `MonotonicTime::{isnan,isinf,isfinite}`.
Their interface should mimic double, otherwise, we need to learn the semantics of these types from scratch.

Double interface is very important since it ensures that these types are not overflow (this is the most important thing and it is different from std::chrono types). It will go to -+infinity if it becomes huge. And if we do some meaningless operations (like, 10_s / 0), it produces NaN seconds.

If we know that these types are doubles, we easily answer the question like &quot;what does `NaN seconds + 20 seconds` produce?&quot;.
It is not clear if we use MonotonicTime::null() since we do not know what happens when we perform `null seconds + 20 seconds`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384881</commentid>
    <comment_count>11</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-28 11:07:56 -0800</bug_when>
    <thetext>Agree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384883</commentid>
    <comment_count>12</comment_count>
      <attachid>330235</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 11:19:22 -0800</bug_when>
    <thetext>Created attachment 330235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384899</commentid>
    <comment_count>13</comment_count>
      <attachid>330235</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-28 17:20:34 -0800</bug_when>
    <thetext>Comment on attachment 330235
Patch

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384902</commentid>
    <comment_count>14</comment_count>
      <attachid>330235</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-28 17:41:48 -0800</bug_when>
    <thetext>Comment on attachment 330235
Patch

Clearing flags on attachment: 330235

Committed r226307: &lt;https://trac.webkit.org/changeset/226307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384903</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-28 17:41:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385233</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-02 13:18:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/36261374&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330213</attachid>
            <date>2017-12-27 06:07:05 -0800</date>
            <delta_ts>2017-12-27 06:38:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181174-20171227230704.patch</filename>
            <type>text/plain</type>
            <size>25130</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5NDA4ZTM1OThhNWMzNGJkM2ExYjQz
MWQ3NTFjMzQ4MjdmYjk5YjEuLjZiZDQwNzkzZDZlMjRkNTBlM2RhNDE5MDU3MjA2NjQ0NjBmZWRj
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTctMTItMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN0ZDo6Y2hyb25vIGlmIGl0IGlz
IG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9yIFBlcnNpc3RlbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXYWxsVGltZSBtb3Jl
IGNvbnN0ZXhwciBmcmllbmRseS4gVGhpcyBjaGFuZ2UgaXMgYWxyZWFkeSBhcHBsaWVkIHRvIE1v
bm9Ub25pY1RpbWUuCisKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmluZmluaXR5KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRp
bWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3BlcmF0
b3IrIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yLSBjb25zdCk6Cisg
ICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3Bl
cmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yPiBjb25zdCk6
CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcjw9IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6V2FsbFRpbWU6Om9wZXJhdG9yPj0gY29uc3QpOgorCiAyMDE3LTEyLTI2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBzdGQ6
OmNocm9ubyBjb21wbGV0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlYTlmYzlkYTFmOThjYWYwNmZjN2E1
Y2E1MDhlZGJkNGIwNjg2MS4uYzQ5OWU0YjRjODJkOGYxMWY5NmYzNjk2MTdjNDU5YmZjNTQ5NDNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTEyLTI3ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFJlbW92ZSBzdGQ6OmNocm9ubyBp
ZiBpdCBpcyBub3QgdXNlZCBmb3IgQXJndW1lbnRDb2RlciBvciBQZXJzaXN0ZW50Q29kZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE3NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdvdWxkIGxp
a2UgdG8gcmVtb3ZlIHN0ZDo6Y2hyb25vIGFzIG11Y2ggYXMgcG9zc2libGUgZHVlIHRvIHRoZSBk
YW5nZXIgb2YKKyAgICAgICAgaXRzIG92ZXJmbG93IHVuYXdhcmVuZXNzLiBUaGlzIHBhdGNoIHJl
bW92ZXMgc3RkOjpjaHJvbm8gaWYgaXQgaXMgbm90IHVzZWQKKyAgICAgICAgZm9yIEFyZ3VtZW50
Q29kZXIgb3IgUGVyc2lzdGVudENvZGVyLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4K
KworICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlUmVhZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2hvd1BhaW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGVQYWludFJlY3RzVGltZXJGaXJlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaDoKKyAgICAgICAgKiBwYWdlL1Jlc291
cmNlVXNhZ2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVh
ZDo6dGhyZWFkQm9keSk6CisgICAgICAgICogcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVs
TmF2aWdhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3Ry
ZWFtSGFuZGxlSW1wbEN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6d2FpdEZvckF2YWlsYWJsZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRUaHJlYWQpOgorCiAyMDE3LTEyLTI1ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBPbiBSZXRpbmEgZGlzcGxh
eXMsIGljb24gdXNlZCBhcyBkcmFnIGltYWdlIGZvciBsYXJnZSBpbWFnZSBpcyBzY2FsZWQgZG93
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA0ZWU1ODRmOGRhY2QyMjYxMDBiYjRlZDUzMzNlNjBlMTIyNGJhZjIzLi5m
YmVlNjY4MWRkNDU4ZTU3OTk3MjU1OGQzZDBjMGVkYmM3YjA1NGM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDE3LTEyLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFJlbW92ZSBzdGQ6OmNocm9ubyBpZiBpdCBpcyBub3QgdXNlZCBmb3Ig
QXJndW1lbnRDb2RlciBvciBQZXJzaXN0ZW50Q29kZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6cmV0cmlldmUp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OmluaXRpYWxp
emUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI6OmxvZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6c3RhcnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExv
YWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRDb21taXRUaW1lIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIpOgorCiAyMDE3LTEyLTI0ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IGZpeGVzIHRvIGVuYWJsZSAt
V3N0cmljdC1wcm90b3R5cGVzIGZvciBTYWZhcmkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1dhbGxUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oCmluZGV4IGFlODlmY2Y4NmYy
NmFhN2ExNGUyYTRkZjMzMmYzMzFjZDU4NWNiZTIuLmQyZGYxMzY5NzQyOTM3MTczNzkwMDI2OWI0
NGM0NjA5YTQ1OTliOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysr
IGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaApAQCAtNDQsNDEgKzQ0LDM5IEBAIGNsYXNzIFdh
bGxUaW1lIHsKICAgICBzdGF0aWMgY29uc3QgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlw
ZTo6V2FsbDsKICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1Np
bmNlRXBvY2goKSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeCAtIFdhbGxUaW1lKCkuCi0gICAgV2Fs
bFRpbWUoKSB7IH0KKyAgICBjb25zdGV4cHIgV2FsbFRpbWUoKSB7IH0KICAgICAKICAgICAvLyBD
YWxsIHRoaXMgaWYgeW91IGtub3cgZm9yIHN1cmUgdGhhdCB0aGUgZG91YmxlIHJlcHJlc2VudHMg
dGltZSBhY2NvcmRpbmcgdG8KICAgICAvLyBXVEY6OmN1cnJlbnRUaW1lKCkuIEl0IG11c3QgYmUg
aW4gc2Vjb25kcyBhbmQgaXQgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIHRpbWUgc291cmNlLgotICAg
IHN0YXRpYyBXYWxsVGltZSBmcm9tUmF3U2Vjb25kcyhkb3VibGUgdmFsdWUpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBXYWxsVGltZSBmcm9tUmF3U2Vjb25kcyhkb3VibGUgdmFsdWUpCiAgICAgewot
ICAgICAgICBXYWxsVGltZSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gdmFsdWU7
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBXYWxsVGltZSh2YWx1ZSk7
CiAgICAgfQogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2FsbFRpbWUgbm93
KCk7CiAgICAgCi0gICAgc3RhdGljIFdhbGxUaW1lIGluZmluaXR5KCkgeyByZXR1cm4gZnJvbVJh
d1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsgfQorICAg
IHN0YXRpYyBjb25zdGV4cHIgV2FsbFRpbWUgaW5maW5pdHkoKSB7IHJldHVybiBmcm9tUmF3U2Vj
b25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOyB9CiAgICAgCi0g
ICAgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIFNlY29uZHMobV92
YWx1ZSk7IH0KKyAgICBjb25zdGV4cHIgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0
IHsgcmV0dXJuIFNlY29uZHMobV92YWx1ZSk7IH0KICAgICAKICAgICBXYWxsVGltZSBhcHByb3hp
bWF0ZVdhbGxUaW1lKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgTW9ub3RvbmljVGltZSBhcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSBjb25zdDsKICAg
ICAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3ZhbHVl
OyB9CisgICAgZXhwbGljaXQgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biAhIW1fdmFsdWU7IH0KICAgICAKLSAgICBXYWxsVGltZSBvcGVyYXRvcisoU2Vjb25kcyBvdGhl
cikgY29uc3QKKyAgICBjb25zdGV4cHIgV2FsbFRpbWUgb3BlcmF0b3IrKFNlY29uZHMgb3RoZXIp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMobV92YWx1ZSArIG90
aGVyLnZhbHVlKCkpOwogICAgIH0KICAgICAKLSAgICBXYWxsVGltZSBvcGVyYXRvci0oU2Vjb25k
cyBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgV2FsbFRpbWUgb3BlcmF0b3ItKFNlY29uZHMg
b3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMobV92YWx1
ZSAtIG90aGVyLnZhbHVlKCkpOwogICAgIH0KICAgICAKICAgICAvLyBUaW1lIGlzIGEgc2NhbGFy
IGFuZCBzY2FsYXJzIGNhbiBiZSBuZWdhdGVkIGFzIHRoaXMgY291bGQgYXJpc2UgZnJvbSBhbGdl
YnJhaWMKICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMuIFNvLCB3ZSBhbGxvdyBpdC4KLSAgICBXYWxs
VGltZSBvcGVyYXRvci0oKSBjb25zdAorICAgIGNvbnN0ZXhwciBXYWxsVGltZSBvcGVyYXRvci0o
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKC1tX3ZhbHVlKTsK
ICAgICB9CkBAIC05MywzNyArOTEsMzcgQEAgY2xhc3MgV2FsbFRpbWUgewogICAgICAgICByZXR1
cm4gKnRoaXMgPSAqdGhpcyAtIG90aGVyOwogICAgIH0KICAgICAKLSAgICBTZWNvbmRzIG9wZXJh
dG9yLShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgU2Vjb25kcyBvcGVyYXRv
ci0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gU2Vjb25kcyht
X3ZhbHVlIC0gb3RoZXIubV92YWx1ZSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3I9
PShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KFdh
bGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gb3Ro
ZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciE9KFdhbGxUaW1lIG90
aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oV2FsbFRpbWUgb3RoZXIp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBvdGhlci5tX3ZhbHVlOwog
ICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPChXYWxsVGltZSBvdGhlcikgY29uc3QKKyAg
ICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjwoV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV92YWx1ZSA8IG90aGVyLm1fdmFsdWU7CiAgICAgfQogICAgIAotICAg
IGJvb2wgb3BlcmF0b3I+KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPihXYWxsVGltZSBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBt
X3ZhbHVlID4gb3RoZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcjw9
KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPD0oV2Fs
bFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSA8PSBvdGhl
ci5tX3ZhbHVlOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPj0oV2FsbFRpbWUgb3Ro
ZXIpIGNvbnN0CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I+PShXYWxsVGltZSBvdGhlcikg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFsdWU7CiAg
ICAgfQpAQCAtMTMxLDYgKzEyOSwxMSBAQCBjbGFzcyBXYWxsVGltZSB7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToK
KyAgICBjb25zdGV4cHIgV2FsbFRpbWUoZG91YmxlIHJhd1ZhbHVlKQorICAgICAgICA6IG1fdmFs
dWUocmF3VmFsdWUpCisgICAgeworICAgIH0KKwogICAgIGRvdWJsZSBtX3ZhbHVlIHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggMzRiZjI3OTdkMTQz
ZDE5MzU3N2MyZDhlNTk2YmMyMWMyZjYyYTY1Yy4uMmI1MTE3MmFlZjk4NDE3YzNhNmYyMGI0OTBh
YTI0MmM4ZTIxMWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC00
MiwxMCArNDIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBz
dGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7Ci0KIC8vIEZpcmUgdGhlIHByb2dyZXNzIGV2
ZW50IGF0IGxlYXN0IGV2ZXJ5IDUwbXMuCi1zdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlm
aWNhdGlvbkludGVydmFsID0gNTBtczsKK3N0YXRpYyBjb25zdCBhdXRvIHByb2dyZXNzTm90aWZp
Y2F0aW9uSW50ZXJ2YWwgPSA1MF9tczsKIAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewpAQCAtMTgwLDggKzE3OCw4
IEBAIHZvaWQgRmlsZVJlYWRlcjo6ZGlkU3RhcnRMb2FkaW5nKCkKIAogdm9pZCBGaWxlUmVhZGVy
OjpkaWRSZWNlaXZlRGF0YSgpCiB7Ci0gICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3RlYWR5
X2Nsb2NrOjpub3coKTsKLSAgICBpZiAoIW1fbGFzdFByb2dyZXNzTm90aWZpY2F0aW9uVGltZS50
aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSkgeworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4obV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25U
aW1lKSkgewogICAgICAgICBtX2xhc3RQcm9ncmVzc05vdGlmaWNhdGlvblRpbWUgPSBub3c7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4
IGMxM2E1OTI5YjYzZDgxNzBkYjk0NmIyNmY4NDc2ZDcyN2RkNWM4NDYuLmVmODlmNWJkNmUwMTJl
NWU0ZDA1OGMzMDEwNDQzOWE3MmVmMGVhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ci5oCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAi
RmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIK
LSNpbmNsdWRlIDxjaHJvbm8+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQXJyYXlCdWZmZXI7
CkBAIC0xMDIsNyArMTAxLDcgQEAgY2xhc3MgRmlsZVJlYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPEZpbGVSZWFkZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LAogICAgIFN0cmluZyBt
X2VuY29kaW5nOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUmVhZGVyTG9hZGVyPiBtX2xvYWRl
cjsKICAgICBSZWZQdHI8RmlsZUVycm9yPiBtX2Vycm9yOwotICAgIHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25UaW1lOworICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25UaW1lIHsgTW9ub3Rvbmlj
VGltZTo6bmFuKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBmZTBkYTBhZTFkYjMx
ZTNmZjFlZDQ3ZTMzOGNjZjk3NTYxZTdjNjllLi5lZTdlMjZlOGMyNDllZjI1MWM0ZmU1NTM0YTNk
ZTk0ZTk4ZjM1NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCkBAIC02Myw3ICs2Myw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczo6Y2hy
b25vX2xpdGVyYWxzOwogCiBzdGF0aWMgdm9pZCBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0
ZW0oY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29uc3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9h
dFF1YWQmIHF1YWQsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0
ZVN5c3RlbSkKIHsKQEAgLTM4MCw5ICszNzksOSBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNo
b3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgSW50UmVjdCByb290UmVj
dCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhlbmNsb3Np
bmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IGF1dG8gcmVtb3ZlRGVsYXkgPSAyNTBtczsK
KyAgICBjb25zdCBhdXRvIHJlbW92ZURlbGF5ID0gMjUwX21zOwogCi0gICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKKyAgICBNb25vdG9uaWNUaW1lIHJlbW92ZVRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIHJlbW92ZURlbGF5OwogICAgIG1fcGFpbnRSZWN0
cy5hcHBlbmQoVGltZVJlY3RQYWlyKHJlbW92ZVRpbWUsIHJvb3RSZWN0KSk7CiAKICAgICBpZiAo
IW1fcGFpbnRSZWN0VXBkYXRlVGltZXIuaXNBY3RpdmUoKSkgewpAQCAtMzk2LDcgKzM5NSw3IEBA
IHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlUGFpbnRSZWN0c1RpbWVyRmlyZWQo
KQogewotICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbm93ID0gc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgTW9ub3RvbmljVGltZSBub3cgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKICAgICBib29sIHJlY3RzQ2hhbmdlZCA9IGZhbHNlOwogICAg
IHdoaWxlICghbV9wYWludFJlY3RzLmlzRW1wdHkoKSAmJiBtX3BhaW50UmVjdHMuZmlyc3QoKS5m
aXJzdCA8IG5vdykgewogICAgICAgICBtX3BhaW50UmVjdHMucmVtb3ZlRmlyc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IGZmMTc5NzEyMzlh
MmYyMjYyNWI0Zjg4MmY2NDg1N2E1YWZmZGEyNTEuLjgxNWNiZmE5ZDZlMTYxYjA2Mzc5MGYwOTM5
ZGJhZGVkYzc0YWEwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuaApAQCAtMTUzLDcgKzE1Myw3IEBAIGNsYXNzIEluc3BlY3Rvck92ZXJsYXkgewogICAg
IHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBtX292ZXJsYXlQYWdlOwogICAgIEhpZ2hsaWdodENvbmZp
ZyBtX3F1YWRIaWdobGlnaHRDb25maWc7CiAgICAgCi0gICAgdHlwZWRlZiBzdGQ6OnBhaXI8c3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCwgRmxvYXRSZWN0PiBUaW1lUmVjdFBh
aXI7CisgICAgdXNpbmcgVGltZVJlY3RQYWlyID0gc3RkOjpwYWlyPE1vbm90b25pY1RpbWUsIEZs
b2F0UmVjdD47CiAgICAgRGVxdWU8VGltZVJlY3RQYWlyPiBtX3BhaW50UmVjdHM7CiAgICAgVGlt
ZXIgbV9wYWludFJlY3RVcGRhdGVUaW1lcjsKICAgICBib29sIG1faW5kaWNhdGluZyB7ZmFsc2V9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKaW5kZXggMzg4
ZjRhNDA2NThhMjM3OGRiMzljZjcxMjE0YzE1ZTIyYmMyYjkxNi4uZTE5NjQ5MTU1YmIzNThiYzdh
NDEzNzA0NzFlNDA3OWU0YTUyMmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDcsMjEgKzEwNywxOSBAQCB2b2lkIFJlc291cmNlVXNhZ2VU
aHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKIAogTk9fUkVUVVJOIHZvaWQgUmVzb3VyY2VV
c2FnZVRocmVhZDo6dGhyZWFkQm9keSgpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDo6bGl0
ZXJhbHM6OmNocm9ub19saXRlcmFsczsKLQogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIC8v
IE9ubHkgZG8gd29yayBpZiB3ZSBoYXZlIG9ic2VydmVycy4KICAgICAgICAgd2FpdFVudGlsT2Jz
ZXJ2ZXJzKCk7CiAKLSAgICAgICAgYXV0byBzdGFydCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6Om5vdygpOworICAgICAgICBhdXRvIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAK
ICAgICAgICAgUmVzb3VyY2VVc2FnZURhdGEgZGF0YTsKICAgICAgICAgcGxhdGZvcm1UaHJlYWRC
b2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNlcnZlcnMoV1RGTW92ZShkYXRhKSk7
CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5v
dygpIC0gc3RhcnQ7Ci0gICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247
Ci0gICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKKyAgICAg
ICAgYXV0byBkdXJhdGlvbiA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQ7CisgICAgICAg
IGF1dG8gZGlmZmVyZW5jZSA9IDUwMF9tcyAtIGR1cmF0aW9uOworICAgICAgICBXVEY6OnNsZWVw
KGRpZmZlcmVuY2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L01lbW9yeVJlbGVhc2VDb2NvYS5tbQppbmRleCAwOWJjMDA2ZTQwMWZhYzhjNmFlZGU5MmRmMzhj
NzNkMDNjODQ0OGMyLi5iMzdiNWNiZTY0ZjQxNjI0MmRlOGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQpA
QCAtNjQsMTMgKzY0LDExIEBAIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKQog
dm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpCiB7CiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmxpdGVyYWxzOjpjaHJv
bm9fbGl0ZXJhbHM7Ci0KICAgICAvLyBQcm90ZWN0IGFnYWluc3QgZG9pbmcgZXhjZXNzaXZlIGpl
dHRpc29uaW5nIGR1cmluZyByZXBlYXRlZCBuYXZpZ2F0aW9ucy4KLSAgICBjb25zdCBhdXRvIG1p
bmltdW1UaW1lU2luY2VOYXZpZ2F0aW9uID0gMnM7CisgICAgY29uc3QgYXV0byBtaW5pbXVtVGlt
ZVNpbmNlTmF2aWdhdGlvbiA9IDJfczsKIAotICAgIHN0YXRpYyBhdXRvIHRpbWVPZkxhc3ROYXZp
Z2F0aW9uID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgYXV0byBub3cg
PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBzdGF0aWMgYXV0byB0aW1l
T2ZMYXN0TmF2aWdhdGlvbiA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIGF1dG8gbm93ID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbiA9IG5vdyAtIHRp
bWVPZkxhc3ROYXZpZ2F0aW9uID49IG1pbmltdW1UaW1lU2luY2VOYXZpZ2F0aW9uOwogICAgIHRp
bWVPZkxhc3ROYXZpZ2F0aW9uID0gbm93OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRl
eCAzOGU4Y2UzODhmNTI1OGM5YjNlZWFmOTg0ODk4NTM5YjRkODQyYTdhLi45MWJhNjJlOWVkMjVk
ZTZlZDBkYWU3ZTExZjA2OTY4MWQzNDY3NjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgK
QEAgLTY2LDcgKzY2LDcgQEAgY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBT
b2NrZXRTdHJlYW1IYW5kbGUgewogCiAgICAgYm9vbCByZWFkRGF0YShDVVJMKik7CiAgICAgYm9v
bCBzZW5kRGF0YShDVVJMKik7Ci0gICAgYm9vbCB3YWl0Rm9yQXZhaWxhYmxlRGF0YShDVVJMKiwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBzZWxlY3RUaW1lb3V0KTsKKyAgICBib29sIHdhaXRG
b3JBdmFpbGFibGVEYXRhKENVUkwqLCBTZWNvbmRzIHNlbGVjdFRpbWVvdXQpOwogCiAgICAgdm9p
ZCBzdGFydFRocmVhZCgpOwogICAgIHZvaWQgc3RvcFRocmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJl
YW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5kZXggMWRkZGE4Y2Y4ZTQ0NDhlMDJkOTc3ZGUxNDk3M2Fm
MjgwNWM5MTg5NS4uOTljYWFlNzgwNGNjNGUxMWIxMGUyZDFhODY1MzYwNzI5NGY0YWQwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCkBAIC0xNjQsMTkgKzE2NCwxOSBA
QCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnNlbmREYXRhKENVUkwqIGN1cmxIYW5kbGUp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6d2Fp
dEZvckF2YWlsYWJsZURhdGEoQ1VSTCogY3VybEhhbmRsZSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBzZWxlY3RUaW1lb3V0KQorYm9vbCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjp3YWl0Rm9y
QXZhaWxhYmxlRGF0YShDVVJMKiBjdXJsSGFuZGxlLCBTZWNvbmRzIHNlbGVjdFRpbWVvdXQpCiB7
CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIHVzZWMgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzPihzZWxlY3RUaW1lb3V0KTsKKyAgICBkb3VibGUgdXNlYyA9IHNlbGVjdFRpbWVv
dXQubWljcm9zZWNvbmRzKCk7CiAKICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1lb3V0OwotICAgIGlm
ICh1c2VjIDw9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoMCkpIHsKKyAgICBpZiAodXNlYyA8
PSAwLjApIHsKICAgICAgICAgdGltZW91dC50dl9zZWMgPSAwOwogICAgICAgICB0aW1lb3V0LnR2
X3VzZWMgPSAwOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHRpbWVvdXQudHZfc2VjID0gdXNlYy5j
b3VudCgpIC8gMTAwMDAwMDsKLSAgICAgICAgdGltZW91dC50dl91c2VjID0gdXNlYy5jb3VudCgp
ICUgMTAwMDAwMDsKKyAgICAgICAgdGltZW91dC50dl9zZWMgPSB1c2VjIC8gMTAwMDAwMDsKKyAg
ICAgICAgdGltZW91dC50dl91c2VjID0gdXNlYyAlIDEwMDAwMDA7CiAgICAgfQogCiAgICAgbG9u
ZyBzb2NrZXQ7CkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
OjpzdGFydFRocmVhZCgpCiAgICAgICAgICAgICBzZW5kRGF0YShjdXJsSGFuZGxlKTsKIAogICAg
ICAgICAgICAgLy8gV2FpdCB1bnRpbCBzb2NrZXQgaGFzIGF2YWlsYWJsZSBkYXRhCi0gICAgICAg
ICAgICBpZiAod2FpdEZvckF2YWlsYWJsZURhdGEoY3VybEhhbmRsZSwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcygyMCkpKQorICAgICAgICAgICAgaWYgKHdhaXRGb3JBdmFpbGFibGVEYXRhKGN1
cmxIYW5kbGUsIDIwX21zKSkKICAgICAgICAgICAgICAgICByZWFkRGF0YShjdXJsSGFuZGxlKTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAKaW5kZXggZmQ3YmE3OGI2Mzc5ODQ3ODMwZWRjZGU5ZWRkNDczOWI0
N2ZkOTg2MS4uNDc4NDA0YTk2YTI2NTQ5ODE4ZGVmOWMzOTRkOGZkZDUzZWVkYmQ3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cApAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJCiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5v
dygpOworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYXV0
byBwcmlvcml0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXF1ZXN0LnByaW9yaXR5KCkpOwog
CiAgICAgbV9zdG9yYWdlLT5yZXRyaWV2ZShzdG9yYWdlS2V5LCBwcmlvcml0eSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc3RhcnRUaW1lLCBzdG9yYWdlS2V5LCBmcmFt
ZUlEXShhdXRvIHJlY29yZCkgewpAQCAtMzc4LDggKzM3OCw4IEBAIHZvaWQgQ2FjaGU6OnJldHJp
ZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFs
RnJhbWVJCiAgICAgICAgIH07CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gZWxh
cHNlZE1TID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93
KCkgLSBzdGFydFRpbWUpLmNvdW50KCkpOwotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5l
dHdvcmtQcm9jZXNzKSByZXRyaWV2ZSBjb21wbGV0ZSB1c2VEZWNpc2lvbj0lZCBwcmlvcml0eT0l
ZCB0aW1lPSUiIFBSSWk2NCAibXMiLCBzdGF0aWNfY2FzdDxpbnQ+KHVzZURlY2lzaW9uKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXF1ZXN0LnByaW9yaXR5KCkpLCBlbGFwc2VkTVMpOworICAgICAgICBh
dXRvIGVsYXBzZWQgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZTsKKyAgICAgICAg
TE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmUgY29tcGxldGUgdXNl
RGVjaXNpb249JWQgcHJpb3JpdHk9JWQgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8
aW50Pih1c2VEZWNpc2lvbiksIHN0YXRpY19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpKSwg
ZWxhcHNlZC5taWxsaXNlY29uZHNBczxpbnQ2NF90PigpKTsKICNlbHNlCiAgICAgICAgIFVOVVNF
RF9QQVJBTShzdGFydFRpbWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRl
eCBiNGY2MjYyZGM0ODAyNDdmMzcxZmNiNWEwMjA3ZTUxMWYyODYzZTI3Li5lYTFiNWIwZjZmNGE2
NWY5ODYyZWVlYzMxOWUyZDcyODIzZjJkNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAK
QEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBTdGF0aXN0aWNzOjppbml0aWFsaXplKGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VQYXRoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAg
IGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBzZXJpYWxCYWNr
Z3JvdW5kSU9RdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBkYXRhYmFzZVBhdGggPSBkYXRhYmFzZVBh
dGguaXNvbGF0ZWRDb3B5KCksIG5ldHdvcmtDYWNoZVBhdGggPSBtX2NhY2hlLnJlY29yZHNQYXRo
KCksIHN0YXJ0VGltZV0gewogICAgICAgICBXZWJDb3JlOjpTUUxpdGVUcmFuc2FjdGlvbkluUHJv
Z3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CkBAIC0xMjEsMjAgKzEyMSwyMCBA
QCB2b2lkIFN0YXRpc3RpY3M6OmluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgp
CiAgICAgICAgIG1fYXBwcm94aW1hdGVFbnRyeUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbklu
dCgwKTsKIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgYXV0byBlbGFwc2VkTVMgPSBzdGF0
aWNfY2FzdDxpbnQ2NF90PihzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0VGlt
ZSkuY291bnQoKSk7CisgICAgICAgIGF1dG8gZWxhcHNlZCA9IE1vbm90b25pY1RpbWU6Om5vdygp
IC0gc3RhcnRUaW1lOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHN0YXJ0VGltZSk7CiAj
ZW5kaWYKLSAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgTmV0d29y
ayBjYWNoZSBzdGF0aXN0aWNzIGRhdGFiYXNlIGxvYWQgY29tcGxldGUsIGVudHJpZXM9JWx1IHRp
bWU9JSIgUFJJaTY0ICJtcyIsIHN0YXRpY19jYXN0PHNpemVfdD4obV9hcHByb3hpbWF0ZUVudHJ5
Q291bnQpLCBlbGFwc2VkTVMpOworICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQ
cm9jZXNzKSBOZXR3b3JrIGNhY2hlIHN0YXRpc3RpY3MgZGF0YWJhc2UgbG9hZCBjb21wbGV0ZSwg
ZW50cmllcz0lbHUgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2Fw
cHJveGltYXRlRW50cnlDb3VudCksIGVsYXBzZWQubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7
CiAKICAgICAgICAgaWYgKCFtX2FwcHJveGltYXRlRW50cnlDb3VudCkgewogICAgICAgICAgICAg
Ym9vdHN0cmFwRnJvbU5ldHdvcmtDYWNoZShuZXR3b3JrQ2FjaGVQYXRoKTsKICNpZiAhTE9HX0RJ
U0FCTEVECi0gICAgICAgICAgICBlbGFwc2VkTVMgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0VGltZSkuY291bnQoKSk7CisgICAgICAg
ICAgICBlbGFwc2VkID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWU7CiAjZWxzZQog
ICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHN0YXJ0VGltZSk7CiAjZW5kaWYKLSAgICAgICAgICAg
IExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIE5ldHdvcmsgY2FjaGUgc3RhdGlz
dGljcyBkYXRhYmFzZSBib290c3RyYXBwaW5nIGNvbXBsZXRlLCBlbnRyaWVzPSVsdSB0aW1lPSUi
IFBSSWk2NCAibXMiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fYXBwcm94aW1hdGVFbnRyeUNvdW50
KSwgZWxhcHNlZE1TKTsKKyAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpIE5ldHdvcmsgY2FjaGUgc3RhdGlzdGljcyBkYXRhYmFzZSBib290c3RyYXBwaW5nIGNv
bXBsZXRlLCBlbnRyaWVzPSVsdSB0aW1lPSUiIFBSSWk2NCAibXMiLCBzdGF0aWNfY2FzdDxzaXpl
X3Q+KG1fYXBwcm94aW1hdGVFbnRyeUNvdW50KSwgZWxhcHNlZC5taWxsaXNlY29uZHNBczxpbnQ2
NF90PigpKTsKICAgICAgICAgfQogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggN2I1ZTMw
MjUwYWRhNjdiOWYyYmVhMGU0NGEyNjQwMzNkMWMzYzZhZC4uZThkYjE1YzlkM2Y5N2JiY2VmZmMw
ODk3NWYyNjAyMzI3Mzc0NzZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0yMzUsMTcgKzIzNSwxNiBA
QCBTdHJpbmcgVmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpl
dmVudHNEZXNjcmlwdGlvbihFdmVudHMgZQogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNu
YXBzaG90UmVtb3ZhbFRyYWNrZXI6OmxvZyhjb25zdCBTdHJpbmcmIGxvZykgY29uc3QKIHsKICNp
ZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr
Ojpub3coKTsKLSAgICBkb3VibGUgbWlsbGlzZWNvbmRzU2luY2VTdGFydCA9IHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxkb3VibGUsIHN0ZDo6bWlsbGk+
Pihub3cgLSBtX3N0YXJ0VGltZSkuY291bnQoKTsKKyAgICBhdXRvIHNpbmNlU3RhcnQgPSBNb25v
dG9uaWNUaW1lOjpub3coKSAtIG1fc3RhcnRUaW1lOwogI2VuZGlmCi0gICAgTE9HKFZpZXdHZXN0
dXJlcywgIlN3aXBlIFNuYXBzaG90IFJlbW92YWwgKCUwLjJmIG1zKSAtICVzIiwgbWlsbGlzZWNv
bmRzU2luY2VTdGFydCwgbG9nLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhWaWV3R2VzdHVyZXMs
ICJTd2lwZSBTbmFwc2hvdCBSZW1vdmFsICglMC4yZiBtcykgLSAlcyIsIHNpbmNlU3RhcnQubWls
bGlzZWNvbmRzKCksIGxvZy51dGY4KCkuZGF0YSgpKTsKIH0KIAogdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OnN0YXJ0KEV2ZW50cyBkZXNpcmVkRXZl
bnRzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiByZW1vdmFsQ2FsbGJhY2spCiB7CiAgICAgbV9v
dXRzdGFuZGluZ0V2ZW50cyA9IGRlc2lyZWRFdmVudHM7CiAgICAgbV9yZW1vdmFsQ2FsbGJhY2sg
PSBXVEZNb3ZlKHJlbW92YWxDYWxsYmFjayk7Ci0gICAgbV9zdGFydFRpbWUgPSBzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogCiAgICAgbG9nKCJzdGFydCIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGFhNjk5ODJjYTI4
NGFiNDVhM2U0NjZjN2MwMzg4NmQzN2RhY2E2YzIuLjA0YjVhNDZkMGRmZDg2ZWJhZGIyZTIwOTkx
MWE1YmFiMjA1NTFjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAi
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbmNsdWRlIDxjaHJvbm8+CiAjaW5j
bHVkZSA8d3RmL0Jsb2NrUHRyLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJl
Q29udHJvbGxlciA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogCiAgICAgICAgIEV2
ZW50cyBtX291dHN0YW5kaW5nRXZlbnRzIHsgMCB9OwogICAgICAgICBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4gbV9yZW1vdmFsQ2FsbGJhY2s7Ci0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2s6OnRpbWVfcG9pbnQgbV9zdGFydFRpbWU7CisgICAgICAgIE1vbm90b25pY1RpbWUgbV9zdGFy
dFRpbWU7CiAKICAgICAgICAgUnVuTG9vcDo6VGltZXI8U25hcHNob3RSZW1vdmFsVHJhY2tlcj4g
bV93YXRjaGRvZ1RpbWVyOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQxYzVjZWUyZWQzZTU4YzA0ZmQ1ZTk0Mzk5MzBjYWNhN2Vi
MjFiOWUuLjBkZmEwYTFkMTJlYzdhYjYzNjcyYjIwYTdiY2E4YmYwNGY5YzI5ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01MTM1LDcgKzUx
MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogI2Vu
ZGlmCiAKICNpZiBVU0UoT1NfU1RBVEUpCi0gICAgbV9sb2FkQ29tbWl0VGltZSA9IHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIG1fbG9hZENvbW1pdFRpbWUgPSBXYWxsVGlt
ZTo6bm93KCk7CiAjZW5kaWYKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0ZUFj
dGl2ZVBhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMDRkZjZkZTQ3ZGVmODJmNjVmZWM0ODA4YTVhMDg0YjI0MjBhNDJiOC4uYTM5ODk1M2Q3
Njk1ODcxYTVjYjlhZjUyZDcxNzVjODZiOWYzYTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAwMiw3ICsxMDAyLDcgQEAgY2xhc3MgV2ViUGFn
ZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U+
LCBwdWJsaWMgSVAKICAgICB2b2lkIGluc2VydE5ld2xpbmVJblF1b3RlZENvbnRlbnQoKTsKIAog
I2lmIFVTRShPU19TVEFURSkKLSAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3Bv
aW50IGxvYWRDb21taXRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkQ29tbWl0VGltZTsgfQor
ICAgIFdhbGxUaW1lIGxvYWRDb21taXRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkQ29tbWl0
VGltZTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKQEAgLTE2NTUsNyArMTY1NSw3
IEBAIGNsYXNzIFdlYlBhZ2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpCdW5kbGVQYWdlPiwgcHVibGljIElQCiAjZW5kaWYKIAogI2lmIFVTRShPU19TVEFURSkK
LSAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1fbG9hZENvbW1pdFRp
bWU7CisgICAgV2FsbFRpbWUgbV9sb2FkQ29tbWl0VGltZTsKICNlbmRpZgogCiAgICAgV2ViQ29y
ZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24geyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IGJkZGMxNDAxNGY0OTE2MzA0OWI1NGEwNjNhZDIzZWFhYTcwMzBlM2IuLjdhMGUyN2Y0NTg0
NTMyNTJmMmRlOGJiOTkwMTlhZjFlYjNhOTQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMjQ1LDcgKzI0NSw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKQogICAgICAgICAgICAgICAg
IGlmIChwYWdlLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICAgICAgICAgIE5TRGF0ZSogZGF0ZSA9IFtOU0RhdGUgZGF0ZVdp
dGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dG9fdGlt
ZV90KHBhZ2UtPmxvYWRDb21taXRUaW1lKCkpXTsKKyAgICAgICAgICAgICAgICBOU0RhdGUqIGRh
dGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnBhZ2UtPmxvYWRDb21t
aXRUaW1lKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCldOwogICAgICAgICAgICAgICAg
IFtwYWdlTG9hZFRpbWVzIGFkZE9iamVjdDpkYXRlXTsKICAgICAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330215</attachid>
            <date>2017-12-27 06:38:17 -0800</date>
            <delta_ts>2017-12-28 09:18:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181174-20171227233816.patch</filename>
            <type>text/plain</type>
            <size>25140</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5NDA4ZTM1OThhNWMzNGJkM2ExYjQz
MWQ3NTFjMzQ4MjdmYjk5YjEuLjZiZDQwNzkzZDZlMjRkNTBlM2RhNDE5MDU3MjA2NjQ0NjBmZWRj
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTctMTItMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN0ZDo6Y2hyb25vIGlmIGl0IGlz
IG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9yIFBlcnNpc3RlbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXYWxsVGltZSBtb3Jl
IGNvbnN0ZXhwciBmcmllbmRseS4gVGhpcyBjaGFuZ2UgaXMgYWxyZWFkeSBhcHBsaWVkIHRvIE1v
bm9Ub25pY1RpbWUuCisKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmluZmluaXR5KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRp
bWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3BlcmF0
b3IrIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yLSBjb25zdCk6Cisg
ICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3Bl
cmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yPiBjb25zdCk6
CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcjw9IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6V2FsbFRpbWU6Om9wZXJhdG9yPj0gY29uc3QpOgorCiAyMDE3LTEyLTI2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBzdGQ6
OmNocm9ubyBjb21wbGV0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlYTlmYzlkYTFmOThjYWYwNmZjN2E1
Y2E1MDhlZGJkNGIwNjg2MS4uYzQ5OWU0YjRjODJkOGYxMWY5NmYzNjk2MTdjNDU5YmZjNTQ5NDNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTEyLTI3ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFJlbW92ZSBzdGQ6OmNocm9ubyBp
ZiBpdCBpcyBub3QgdXNlZCBmb3IgQXJndW1lbnRDb2RlciBvciBQZXJzaXN0ZW50Q29kZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE3NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdvdWxkIGxp
a2UgdG8gcmVtb3ZlIHN0ZDo6Y2hyb25vIGFzIG11Y2ggYXMgcG9zc2libGUgZHVlIHRvIHRoZSBk
YW5nZXIgb2YKKyAgICAgICAgaXRzIG92ZXJmbG93IHVuYXdhcmVuZXNzLiBUaGlzIHBhdGNoIHJl
bW92ZXMgc3RkOjpjaHJvbm8gaWYgaXQgaXMgbm90IHVzZWQKKyAgICAgICAgZm9yIEFyZ3VtZW50
Q29kZXIgb3IgUGVyc2lzdGVudENvZGVyLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4K
KworICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlUmVhZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2hvd1BhaW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGVQYWludFJlY3RzVGltZXJGaXJlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaDoKKyAgICAgICAgKiBwYWdlL1Jlc291
cmNlVXNhZ2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVh
ZDo6dGhyZWFkQm9keSk6CisgICAgICAgICogcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVs
TmF2aWdhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3Ry
ZWFtSGFuZGxlSW1wbEN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6d2FpdEZvckF2YWlsYWJsZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRUaHJlYWQpOgorCiAyMDE3LTEyLTI1ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBPbiBSZXRpbmEgZGlzcGxh
eXMsIGljb24gdXNlZCBhcyBkcmFnIGltYWdlIGZvciBsYXJnZSBpbWFnZSBpcyBzY2FsZWQgZG93
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA0ZWU1ODRmOGRhY2QyMjYxMDBiYjRlZDUzMzNlNjBlMTIyNGJhZjIzLi5m
YmVlNjY4MWRkNDU4ZTU3OTk3MjU1OGQzZDBjMGVkYmM3YjA1NGM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDE3LTEyLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFJlbW92ZSBzdGQ6OmNocm9ubyBpZiBpdCBpcyBub3QgdXNlZCBmb3Ig
QXJndW1lbnRDb2RlciBvciBQZXJzaXN0ZW50Q29kZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6cmV0cmlldmUp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OmluaXRpYWxp
emUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI6OmxvZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6c3RhcnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExv
YWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRDb21taXRUaW1lIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIpOgorCiAyMDE3LTEyLTI0ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IGZpeGVzIHRvIGVuYWJsZSAt
V3N0cmljdC1wcm90b3R5cGVzIGZvciBTYWZhcmkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1dhbGxUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oCmluZGV4IGFlODlmY2Y4NmYy
NmFhN2ExNGUyYTRkZjMzMmYzMzFjZDU4NWNiZTIuLmQyZGYxMzY5NzQyOTM3MTczNzkwMDI2OWI0
NGM0NjA5YTQ1OTliOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysr
IGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaApAQCAtNDQsNDEgKzQ0LDM5IEBAIGNsYXNzIFdh
bGxUaW1lIHsKICAgICBzdGF0aWMgY29uc3QgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlw
ZTo6V2FsbDsKICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1Np
bmNlRXBvY2goKSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeCAtIFdhbGxUaW1lKCkuCi0gICAgV2Fs
bFRpbWUoKSB7IH0KKyAgICBjb25zdGV4cHIgV2FsbFRpbWUoKSB7IH0KICAgICAKICAgICAvLyBD
YWxsIHRoaXMgaWYgeW91IGtub3cgZm9yIHN1cmUgdGhhdCB0aGUgZG91YmxlIHJlcHJlc2VudHMg
dGltZSBhY2NvcmRpbmcgdG8KICAgICAvLyBXVEY6OmN1cnJlbnRUaW1lKCkuIEl0IG11c3QgYmUg
aW4gc2Vjb25kcyBhbmQgaXQgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIHRpbWUgc291cmNlLgotICAg
IHN0YXRpYyBXYWxsVGltZSBmcm9tUmF3U2Vjb25kcyhkb3VibGUgdmFsdWUpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBXYWxsVGltZSBmcm9tUmF3U2Vjb25kcyhkb3VibGUgdmFsdWUpCiAgICAgewot
ICAgICAgICBXYWxsVGltZSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gdmFsdWU7
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBXYWxsVGltZSh2YWx1ZSk7
CiAgICAgfQogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2FsbFRpbWUgbm93
KCk7CiAgICAgCi0gICAgc3RhdGljIFdhbGxUaW1lIGluZmluaXR5KCkgeyByZXR1cm4gZnJvbVJh
d1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsgfQorICAg
IHN0YXRpYyBjb25zdGV4cHIgV2FsbFRpbWUgaW5maW5pdHkoKSB7IHJldHVybiBmcm9tUmF3U2Vj
b25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOyB9CiAgICAgCi0g
ICAgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0IHsgcmV0dXJuIFNlY29uZHMobV92
YWx1ZSk7IH0KKyAgICBjb25zdGV4cHIgU2Vjb25kcyBzZWNvbmRzU2luY2VFcG9jaCgpIGNvbnN0
IHsgcmV0dXJuIFNlY29uZHMobV92YWx1ZSk7IH0KICAgICAKICAgICBXYWxsVGltZSBhcHByb3hp
bWF0ZVdhbGxUaW1lKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgTW9ub3RvbmljVGltZSBhcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSBjb25zdDsKICAg
ICAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3ZhbHVl
OyB9CisgICAgZXhwbGljaXQgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biAhIW1fdmFsdWU7IH0KICAgICAKLSAgICBXYWxsVGltZSBvcGVyYXRvcisoU2Vjb25kcyBvdGhl
cikgY29uc3QKKyAgICBjb25zdGV4cHIgV2FsbFRpbWUgb3BlcmF0b3IrKFNlY29uZHMgb3RoZXIp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMobV92YWx1ZSArIG90
aGVyLnZhbHVlKCkpOwogICAgIH0KICAgICAKLSAgICBXYWxsVGltZSBvcGVyYXRvci0oU2Vjb25k
cyBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgV2FsbFRpbWUgb3BlcmF0b3ItKFNlY29uZHMg
b3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMobV92YWx1
ZSAtIG90aGVyLnZhbHVlKCkpOwogICAgIH0KICAgICAKICAgICAvLyBUaW1lIGlzIGEgc2NhbGFy
IGFuZCBzY2FsYXJzIGNhbiBiZSBuZWdhdGVkIGFzIHRoaXMgY291bGQgYXJpc2UgZnJvbSBhbGdl
YnJhaWMKICAgICAvLyB0cmFuc2Zvcm1hdGlvbnMuIFNvLCB3ZSBhbGxvdyBpdC4KLSAgICBXYWxs
VGltZSBvcGVyYXRvci0oKSBjb25zdAorICAgIGNvbnN0ZXhwciBXYWxsVGltZSBvcGVyYXRvci0o
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKC1tX3ZhbHVlKTsK
ICAgICB9CkBAIC05MywzNyArOTEsMzcgQEAgY2xhc3MgV2FsbFRpbWUgewogICAgICAgICByZXR1
cm4gKnRoaXMgPSAqdGhpcyAtIG90aGVyOwogICAgIH0KICAgICAKLSAgICBTZWNvbmRzIG9wZXJh
dG9yLShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgU2Vjb25kcyBvcGVyYXRv
ci0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gU2Vjb25kcyht
X3ZhbHVlIC0gb3RoZXIubV92YWx1ZSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3I9
PShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KFdh
bGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gb3Ro
ZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciE9KFdhbGxUaW1lIG90
aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oV2FsbFRpbWUgb3RoZXIp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBvdGhlci5tX3ZhbHVlOwog
ICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPChXYWxsVGltZSBvdGhlcikgY29uc3QKKyAg
ICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjwoV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV92YWx1ZSA8IG90aGVyLm1fdmFsdWU7CiAgICAgfQogICAgIAotICAg
IGJvb2wgb3BlcmF0b3I+KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPihXYWxsVGltZSBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBt
X3ZhbHVlID4gb3RoZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcjw9
KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPD0oV2Fs
bFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSA8PSBvdGhl
ci5tX3ZhbHVlOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPj0oV2FsbFRpbWUgb3Ro
ZXIpIGNvbnN0CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I+PShXYWxsVGltZSBvdGhlcikg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFsdWU7CiAg
ICAgfQpAQCAtMTMxLDYgKzEyOSwxMSBAQCBjbGFzcyBXYWxsVGltZSB7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToK
KyAgICBjb25zdGV4cHIgV2FsbFRpbWUoZG91YmxlIHJhd1ZhbHVlKQorICAgICAgICA6IG1fdmFs
dWUocmF3VmFsdWUpCisgICAgeworICAgIH0KKwogICAgIGRvdWJsZSBtX3ZhbHVlIHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggMzRiZjI3OTdkMTQz
ZDE5MzU3N2MyZDhlNTk2YmMyMWMyZjYyYTY1Yy4uMmI1MTE3MmFlZjk4NDE3YzNhNmYyMGI0OTBh
YTI0MmM4ZTIxMWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC00
MiwxMCArNDIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBz
dGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7Ci0KIC8vIEZpcmUgdGhlIHByb2dyZXNzIGV2
ZW50IGF0IGxlYXN0IGV2ZXJ5IDUwbXMuCi1zdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlm
aWNhdGlvbkludGVydmFsID0gNTBtczsKK3N0YXRpYyBjb25zdCBhdXRvIHByb2dyZXNzTm90aWZp
Y2F0aW9uSW50ZXJ2YWwgPSA1MF9tczsKIAogUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewpAQCAtMTgwLDggKzE3OCw4
IEBAIHZvaWQgRmlsZVJlYWRlcjo6ZGlkU3RhcnRMb2FkaW5nKCkKIAogdm9pZCBGaWxlUmVhZGVy
OjpkaWRSZWNlaXZlRGF0YSgpCiB7Ci0gICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3RlYWR5
X2Nsb2NrOjpub3coKTsKLSAgICBpZiAoIW1fbGFzdFByb2dyZXNzTm90aWZpY2F0aW9uVGltZS50
aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSkgeworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4obV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25U
aW1lKSkgewogICAgICAgICBtX2xhc3RQcm9ncmVzc05vdGlmaWNhdGlvblRpbWUgPSBub3c7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4
IGMxM2E1OTI5YjYzZDgxNzBkYjk0NmIyNmY4NDc2ZDcyN2RkNWM4NDYuLmVmODlmNWJkNmUwMTJl
NWU0ZDA1OGMzMDEwNDQzOWE3MmVmMGVhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ci5oCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAi
RmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIK
LSNpbmNsdWRlIDxjaHJvbm8+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQXJyYXlCdWZmZXI7
CkBAIC0xMDIsNyArMTAxLDcgQEAgY2xhc3MgRmlsZVJlYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPEZpbGVSZWFkZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LAogICAgIFN0cmluZyBt
X2VuY29kaW5nOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUmVhZGVyTG9hZGVyPiBtX2xvYWRl
cjsKICAgICBSZWZQdHI8RmlsZUVycm9yPiBtX2Vycm9yOwotICAgIHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25UaW1lOworICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25UaW1lIHsgTW9ub3Rvbmlj
VGltZTo6bmFuKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBmZTBkYTBhZTFkYjMx
ZTNmZjFlZDQ3ZTMzOGNjZjk3NTYxZTdjNjllLi5lZTdlMjZlOGMyNDllZjI1MWM0ZmU1NTM0YTNk
ZTk0ZTk4ZjM1NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCkBAIC02Myw3ICs2Myw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczo6Y2hy
b25vX2xpdGVyYWxzOwogCiBzdGF0aWMgdm9pZCBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0
ZW0oY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29uc3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9h
dFF1YWQmIHF1YWQsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0
ZVN5c3RlbSkKIHsKQEAgLTM4MCw5ICszNzksOSBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNo
b3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgSW50UmVjdCByb290UmVj
dCA9IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhlbmNsb3Np
bmdJbnRSZWN0KHJlY3QpKTsKIAotICAgIGNvbnN0IGF1dG8gcmVtb3ZlRGVsYXkgPSAyNTBtczsK
KyAgICBjb25zdCBhdXRvIHJlbW92ZURlbGF5ID0gMjUwX21zOwogCi0gICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCByZW1vdmVUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCkgKyByZW1vdmVEZWxheTsKKyAgICBNb25vdG9uaWNUaW1lIHJlbW92ZVRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIHJlbW92ZURlbGF5OwogICAgIG1fcGFpbnRSZWN0
cy5hcHBlbmQoVGltZVJlY3RQYWlyKHJlbW92ZVRpbWUsIHJvb3RSZWN0KSk7CiAKICAgICBpZiAo
IW1fcGFpbnRSZWN0VXBkYXRlVGltZXIuaXNBY3RpdmUoKSkgewpAQCAtMzk2LDcgKzM5NSw3IEBA
IHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlUGFpbnRSZWN0c1RpbWVyRmlyZWQo
KQogewotICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbm93ID0gc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgTW9ub3RvbmljVGltZSBub3cgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKICAgICBib29sIHJlY3RzQ2hhbmdlZCA9IGZhbHNlOwogICAg
IHdoaWxlICghbV9wYWludFJlY3RzLmlzRW1wdHkoKSAmJiBtX3BhaW50UmVjdHMuZmlyc3QoKS5m
aXJzdCA8IG5vdykgewogICAgICAgICBtX3BhaW50UmVjdHMucmVtb3ZlRmlyc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IGZmMTc5NzEyMzlh
MmYyMjYyNWI0Zjg4MmY2NDg1N2E1YWZmZGEyNTEuLjgxNWNiZmE5ZDZlMTYxYjA2Mzc5MGYwOTM5
ZGJhZGVkYzc0YWEwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuaApAQCAtMTUzLDcgKzE1Myw3IEBAIGNsYXNzIEluc3BlY3Rvck92ZXJsYXkgewogICAg
IHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBtX292ZXJsYXlQYWdlOwogICAgIEhpZ2hsaWdodENvbmZp
ZyBtX3F1YWRIaWdobGlnaHRDb25maWc7CiAgICAgCi0gICAgdHlwZWRlZiBzdGQ6OnBhaXI8c3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCwgRmxvYXRSZWN0PiBUaW1lUmVjdFBh
aXI7CisgICAgdXNpbmcgVGltZVJlY3RQYWlyID0gc3RkOjpwYWlyPE1vbm90b25pY1RpbWUsIEZs
b2F0UmVjdD47CiAgICAgRGVxdWU8VGltZVJlY3RQYWlyPiBtX3BhaW50UmVjdHM7CiAgICAgVGlt
ZXIgbV9wYWludFJlY3RVcGRhdGVUaW1lcjsKICAgICBib29sIG1faW5kaWNhdGluZyB7ZmFsc2V9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKaW5kZXggMzg4
ZjRhNDA2NThhMjM3OGRiMzljZjcxMjE0YzE1ZTIyYmMyYjkxNi4uZTE5NjQ5MTU1YmIzNThiYzdh
NDEzNzA0NzFlNDA3OWU0YTUyMmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDcsMjEgKzEwNywxOSBAQCB2b2lkIFJlc291cmNlVXNhZ2VU
aHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKIAogTk9fUkVUVVJOIHZvaWQgUmVzb3VyY2VV
c2FnZVRocmVhZDo6dGhyZWFkQm9keSgpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDo6bGl0
ZXJhbHM6OmNocm9ub19saXRlcmFsczsKLQogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIC8v
IE9ubHkgZG8gd29yayBpZiB3ZSBoYXZlIG9ic2VydmVycy4KICAgICAgICAgd2FpdFVudGlsT2Jz
ZXJ2ZXJzKCk7CiAKLSAgICAgICAgYXV0byBzdGFydCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6Om5vdygpOworICAgICAgICBhdXRvIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAK
ICAgICAgICAgUmVzb3VyY2VVc2FnZURhdGEgZGF0YTsKICAgICAgICAgcGxhdGZvcm1UaHJlYWRC
b2R5KG1fdm0sIGRhdGEpOwogICAgICAgICBub3RpZnlPYnNlcnZlcnMoV1RGTW92ZShkYXRhKSk7
CiAKLSAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5v
dygpIC0gc3RhcnQ7Ci0gICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMG1zIC0gZHVyYXRpb247
Ci0gICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihkaWZmZXJlbmNlKTsKKyAgICAg
ICAgYXV0byBkdXJhdGlvbiA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQ7CisgICAgICAg
IGF1dG8gZGlmZmVyZW5jZSA9IDUwMF9tcyAtIGR1cmF0aW9uOworICAgICAgICBXVEY6OnNsZWVw
KGRpZmZlcmVuY2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L01lbW9yeVJlbGVhc2VDb2NvYS5tbQppbmRleCAwOWJjMDA2ZTQwMWZhYzhjNmFlZGU5MmRmMzhj
NzNkMDNjODQ0OGMyLi5iMzdiNWNiZTY0ZjQxNjI0MmRlOGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQpA
QCAtNjQsMTMgKzY0LDExIEBAIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKQog
dm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpCiB7CiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmxpdGVyYWxzOjpjaHJv
bm9fbGl0ZXJhbHM7Ci0KICAgICAvLyBQcm90ZWN0IGFnYWluc3QgZG9pbmcgZXhjZXNzaXZlIGpl
dHRpc29uaW5nIGR1cmluZyByZXBlYXRlZCBuYXZpZ2F0aW9ucy4KLSAgICBjb25zdCBhdXRvIG1p
bmltdW1UaW1lU2luY2VOYXZpZ2F0aW9uID0gMnM7CisgICAgY29uc3QgYXV0byBtaW5pbXVtVGlt
ZVNpbmNlTmF2aWdhdGlvbiA9IDJfczsKIAotICAgIHN0YXRpYyBhdXRvIHRpbWVPZkxhc3ROYXZp
Z2F0aW9uID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgYXV0byBub3cg
PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBzdGF0aWMgYXV0byB0aW1l
T2ZMYXN0TmF2aWdhdGlvbiA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIGF1dG8gbm93ID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYm9vbCBzaG91bGRKZXR0aXNvbiA9IG5vdyAtIHRp
bWVPZkxhc3ROYXZpZ2F0aW9uID49IG1pbmltdW1UaW1lU2luY2VOYXZpZ2F0aW9uOwogICAgIHRp
bWVPZkxhc3ROYXZpZ2F0aW9uID0gbm93OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRl
eCAzOGU4Y2UzODhmNTI1OGM5YjNlZWFmOTg0ODk4NTM5YjRkODQyYTdhLi45MWJhNjJlOWVkMjVk
ZTZlZDBkYWU3ZTExZjA2OTY4MWQzNDY3NjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgK
QEAgLTY2LDcgKzY2LDcgQEAgY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBT
b2NrZXRTdHJlYW1IYW5kbGUgewogCiAgICAgYm9vbCByZWFkRGF0YShDVVJMKik7CiAgICAgYm9v
bCBzZW5kRGF0YShDVVJMKik7Ci0gICAgYm9vbCB3YWl0Rm9yQXZhaWxhYmxlRGF0YShDVVJMKiwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBzZWxlY3RUaW1lb3V0KTsKKyAgICBib29sIHdhaXRG
b3JBdmFpbGFibGVEYXRhKENVUkwqLCBTZWNvbmRzIHNlbGVjdFRpbWVvdXQpOwogCiAgICAgdm9p
ZCBzdGFydFRocmVhZCgpOwogICAgIHZvaWQgc3RvcFRocmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJl
YW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5kZXggMWRkZGE4Y2Y4ZTQ0NDhlMDJkOTc3ZGUxNDk3M2Fm
MjgwNWM5MTg5NS4uNmZjYmY4Mzc4Y2EzNzVjZjkyMWFkZjlhYTY0YWNlNTVhZDJjNmRjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCkBAIC0xNjQsMTkgKzE2NCwxOSBA
QCBib29sIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnNlbmREYXRhKENVUkwqIGN1cmxIYW5kbGUp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6d2Fp
dEZvckF2YWlsYWJsZURhdGEoQ1VSTCogY3VybEhhbmRsZSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBzZWxlY3RUaW1lb3V0KQorYm9vbCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjp3YWl0Rm9y
QXZhaWxhYmxlRGF0YShDVVJMKiBjdXJsSGFuZGxlLCBTZWNvbmRzIHNlbGVjdFRpbWVvdXQpCiB7
CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIHVzZWMgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzPihzZWxlY3RUaW1lb3V0KTsKKyAgICBpbnQ2NF90IHVzZWMgPSBzZWxlY3RUaW1l
b3V0Lm1pY3Jvc2Vjb25kc0FzPGludDY0X3Q+KCk7CiAKICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1l
b3V0OwotICAgIGlmICh1c2VjIDw9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoMCkpIHsKKyAg
ICBpZiAodXNlYyA8PSAwKSB7CiAgICAgICAgIHRpbWVvdXQudHZfc2VjID0gMDsKICAgICAgICAg
dGltZW91dC50dl91c2VjID0gMDsKICAgICB9IGVsc2UgewotICAgICAgICB0aW1lb3V0LnR2X3Nl
YyA9IHVzZWMuY291bnQoKSAvIDEwMDAwMDA7Ci0gICAgICAgIHRpbWVvdXQudHZfdXNlYyA9IHVz
ZWMuY291bnQoKSAlIDEwMDAwMDA7CisgICAgICAgIHRpbWVvdXQudHZfc2VjID0gdXNlYyAvIDEw
MDAwMDA7CisgICAgICAgIHRpbWVvdXQudHZfdXNlYyA9IHVzZWMgJSAxMDAwMDAwOwogICAgIH0K
IAogICAgIGxvbmcgc29ja2V0OwpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6c3RhcnRUaHJlYWQoKQogICAgICAgICAgICAgc2VuZERhdGEoY3VybEhhbmRs
ZSk7CiAKICAgICAgICAgICAgIC8vIFdhaXQgdW50aWwgc29ja2V0IGhhcyBhdmFpbGFibGUgZGF0
YQotICAgICAgICAgICAgaWYgKHdhaXRGb3JBdmFpbGFibGVEYXRhKGN1cmxIYW5kbGUsIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMoMjApKSkKKyAgICAgICAgICAgIGlmICh3YWl0Rm9yQXZhaWxh
YmxlRGF0YShjdXJsSGFuZGxlLCAyMF9tcykpCiAgICAgICAgICAgICAgICAgcmVhZERhdGEoY3Vy
bEhhbmRsZSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IGZkN2JhNzhiNjM3OTg0NzgzMGVkY2Rl
OWVkZDQ3MzliNDdmZDk4NjEuLjQ3ODQwNGE5NmEyNjU0OTgxOGRlZjljMzk0ZDhmZGQ1M2VlZGJk
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZS5jcHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIENhY2hlOjpyZXRyaWV2ZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSQog
ICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBzdGFydFRpbWUgPSBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjpub3coKTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwogICAgIGF1dG8gcHJpb3JpdHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVxdWVzdC5wcmlv
cml0eSgpKTsKIAogICAgIG1fc3RvcmFnZS0+cmV0cmlldmUoc3RvcmFnZUtleSwgcHJpb3JpdHks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3QsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHN0YXJ0VGltZSwgc3RvcmFn
ZUtleSwgZnJhbWVJRF0oYXV0byByZWNvcmQpIHsKQEAgLTM3OCw4ICszNzgsOCBAQCB2b2lkIENh
Y2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IEdsb2JhbEZyYW1lSQogICAgICAgICB9OwogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAg
ICBhdXRvIGVsYXBzZWRNUyA9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6Y2hyb25vOjpkdXJh
dGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6Om5vdygpIC0gc3RhcnRUaW1lKS5jb3VudCgpKTsKLSAgICAgICAgTE9HKE5ldHdvcmtD
YWNoZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmUgY29tcGxldGUgdXNlRGVjaXNpb249JWQg
cHJpb3JpdHk9JWQgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8aW50Pih1c2VEZWNp
c2lvbiksIHN0YXRpY19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpKSwgZWxhcHNlZE1TKTsK
KyAgICAgICAgYXV0byBlbGFwc2VkID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWU7
CisgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHJldHJpZXZlIGNv
bXBsZXRlIHVzZURlY2lzaW9uPSVkIHByaW9yaXR5PSVkIHRpbWU9JSIgUFJJaTY0ICJtcyIsIHN0
YXRpY19jYXN0PGludD4odXNlRGVjaXNpb24pLCBzdGF0aWNfY2FzdDxpbnQ+KHJlcXVlc3QucHJp
b3JpdHkoKSksIGVsYXBzZWQubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiAjZWxzZQogICAg
ICAgICBVTlVTRURfUEFSQU0oc3RhcnRUaW1lKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGlj
cy5jcHAKaW5kZXggYjRmNjI2MmRjNDgwMjQ3ZjM3MWZjYjVhMDIwN2U1MTFmMjg2M2UyNy4uZWEx
YjViMGY2ZjRhNjVmOTg2MmVlZWMzMTllMmQ3MjgyM2YyZDY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgU3RhdGlzdGljczo6aW5pdGlhbGl6ZShj
b25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgYXV0byBzdGFydFRpbWUgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpu
b3coKTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogCiAgICAg
c2VyaWFsQmFja2dyb3VuZElPUXVldWUoKS5kaXNwYXRjaChbdGhpcywgZGF0YWJhc2VQYXRoID0g
ZGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpLCBuZXR3b3JrQ2FjaGVQYXRoID0gbV9jYWNoZS5y
ZWNvcmRzUGF0aCgpLCBzdGFydFRpbWVdIHsKICAgICAgICAgV2ViQ29yZTo6U1FMaXRlVHJhbnNh
Y3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwpAQCAtMTIxLDIw
ICsxMjEsMjAgQEAgdm9pZCBTdGF0aXN0aWNzOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VQYXRoKQogICAgICAgICBtX2FwcHJveGltYXRlRW50cnlDb3VudCA9IHN0YXRlbWVudC5n
ZXRDb2x1bW5JbnQoMCk7CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gZWxhcHNl
ZE1TID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkg
LSBzdGFydFRpbWUpLmNvdW50KCkpOworICAgICAgICBhdXRvIGVsYXBzZWQgPSBNb25vdG9uaWNU
aW1lOjpub3coKSAtIHN0YXJ0VGltZTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShzdGFy
dFRpbWUpOwogI2VuZGlmCi0gICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nl
c3MpIE5ldHdvcmsgY2FjaGUgc3RhdGlzdGljcyBkYXRhYmFzZSBsb2FkIGNvbXBsZXRlLCBlbnRy
aWVzPSVsdSB0aW1lPSUiIFBSSWk2NCAibXMiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fYXBwcm94
aW1hdGVFbnRyeUNvdW50KSwgZWxhcHNlZE1TKTsKKyAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwg
IihOZXR3b3JrUHJvY2VzcykgTmV0d29yayBjYWNoZSBzdGF0aXN0aWNzIGRhdGFiYXNlIGxvYWQg
Y29tcGxldGUsIGVudHJpZXM9JWx1IHRpbWU9JSIgUFJJaTY0ICJtcyIsIHN0YXRpY19jYXN0PHNp
emVfdD4obV9hcHByb3hpbWF0ZUVudHJ5Q291bnQpLCBlbGFwc2VkLm1pbGxpc2Vjb25kc0FzPGlu
dDY0X3Q+KCkpOwogCiAgICAgICAgIGlmICghbV9hcHByb3hpbWF0ZUVudHJ5Q291bnQpIHsKICAg
ICAgICAgICAgIGJvb3RzdHJhcEZyb21OZXR3b3JrQ2FjaGUobmV0d29ya0NhY2hlUGF0aCk7CiAj
aWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAgZWxhcHNlZE1TID0gc3RhdGljX2Nhc3Q8aW50
NjRfdD4oc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydFRpbWUpLmNvdW50KCkp
OworICAgICAgICAgICAgZWxhcHNlZCA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1l
OwogI2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShzdGFydFRpbWUpOwogI2VuZGlmCi0g
ICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBOZXR3b3JrIGNh
Y2hlIHN0YXRpc3RpY3MgZGF0YWJhc2UgYm9vdHN0cmFwcGluZyBjb21wbGV0ZSwgZW50cmllcz0l
bHUgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2FwcHJveGltYXRl
RW50cnlDb3VudCksIGVsYXBzZWRNUyk7CisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAi
KE5ldHdvcmtQcm9jZXNzKSBOZXR3b3JrIGNhY2hlIHN0YXRpc3RpY3MgZGF0YWJhc2UgYm9vdHN0
cmFwcGluZyBjb21wbGV0ZSwgZW50cmllcz0lbHUgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihtX2FwcHJveGltYXRlRW50cnlDb3VudCksIGVsYXBzZWQubWlsbGlzZWNv
bmRzQXM8aW50NjRfdD4oKSk7CiAgICAgICAgIH0KICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDdiNWUzMDI1MGFkYTY3YjlmMmJlYTBlNDRhMjY0MDMzZDFjM2M2YWQuLmU4ZGIxNWM5ZDNm
OTdiYmNlZmZjMDg5NzVmMjYwMjMyNzM3NDc2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjM1LDE3
ICsyMzUsMTYgQEAgU3RyaW5nIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFs
VHJhY2tlcjo6ZXZlbnRzRGVzY3JpcHRpb24oRXZlbnRzIGUKIHZvaWQgVmlld0dlc3R1cmVDb250
cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpsb2coY29uc3QgU3RyaW5nJiBsb2cpIGNv
bnN0CiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN0
ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgZG91YmxlIG1pbGxpc2Vjb25kc1NpbmNlU3RhcnQgPSBz
dGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6ZHVyYXRpb248ZG91YmxlLCBz
dGQ6Om1pbGxpPj4obm93IC0gbV9zdGFydFRpbWUpLmNvdW50KCk7CisgICAgYXV0byBzaW5jZVN0
YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3N0YXJ0VGltZTsKICNlbmRpZgotICAgIExP
RyhWaWV3R2VzdHVyZXMsICJTd2lwZSBTbmFwc2hvdCBSZW1vdmFsICglMC4yZiBtcykgLSAlcyIs
IG1pbGxpc2Vjb25kc1NpbmNlU3RhcnQsIGxvZy51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coVmll
d0dlc3R1cmVzLCAiU3dpcGUgU25hcHNob3QgUmVtb3ZhbCAoJTAuMmYgbXMpIC0gJXMiLCBzaW5j
ZVN0YXJ0Lm1pbGxpc2Vjb25kcygpLCBsb2cudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpzdGFydChFdmVudHMg
ZGVzaXJlZEV2ZW50cywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgcmVtb3ZhbENhbGxiYWNrKQog
ewogICAgIG1fb3V0c3RhbmRpbmdFdmVudHMgPSBkZXNpcmVkRXZlbnRzOwogICAgIG1fcmVtb3Zh
bENhbGxiYWNrID0gV1RGTW92ZShyZW1vdmFsQ2FsbGJhY2spOwotICAgIG1fc3RhcnRUaW1lID0g
c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgbV9zdGFydFRpbWUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKIAogICAgIGxvZygic3RhcnQiKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCBh
YTY5OTgyY2EyODRhYjQ1YTNlNDY2YzdjMDM4ODZkMzdkYWNhNmMyLi4wNGI1YTQ2ZDBkZmQ4NmVi
YWRiMmUyMDk5MTFhNWJhYjIwNTUxY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMzAsOCArMzAsOCBAQAog
I2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaW5jbHVkZSA8Y2hy
b25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTE3OSw3ICsxNzksNyBAQCBjbGFzcyBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIAog
ICAgICAgICBFdmVudHMgbV9vdXRzdGFuZGluZ0V2ZW50cyB7IDAgfTsKICAgICAgICAgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+IG1fcmVtb3ZhbENhbGxiYWNrOwotICAgICAgICBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fc3RhcnRUaW1lOworICAgICAgICBNb25vdG9uaWNU
aW1lIG1fc3RhcnRUaW1lOwogCiAgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI+IG1fd2F0Y2hkb2dUaW1lcjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0MWM1Y2VlMmVkM2U1OGMwNGZkNWU5NDM5
OTMwY2FjYTdlYjIxYjllLi4wZGZhMGExZDEyZWM3YWI2MzY3MmIyMGE3YmNhOGJmMDRmOWMyOWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NTEzNSw3ICs1MTM1LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21taXRMb2FkKFdlYkZyYW1lKiBm
cmFtZSkKICNlbmRpZgogCiAjaWYgVVNFKE9TX1NUQVRFKQotICAgIG1fbG9hZENvbW1pdFRpbWUg
PSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICBtX2xvYWRDb21taXRUaW1l
ID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS51cGRhdGVBY3RpdmVQYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IDA0ZGY2ZGU0N2RlZjgyZjY1ZmVjNDgwOGE1YTA4NGIyNDIwYTQyYjgu
LmEzOTg5NTNkNzY5NTg3MWE1Y2I5YWY1MmQ3MTc1Yzg2YjlmM2EzN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMDIsNyArMTAwMiw3IEBAIGNs
YXNzIFdlYlBhZ2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpC
dW5kbGVQYWdlPiwgcHVibGljIElQCiAgICAgdm9pZCBpbnNlcnROZXdsaW5lSW5RdW90ZWRDb250
ZW50KCk7CiAKICNpZiBVU0UoT1NfU1RBVEUpCi0gICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9j
azo6dGltZV9wb2ludCBsb2FkQ29tbWl0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZENvbW1p
dFRpbWU7IH0KKyAgICBXYWxsVGltZSBsb2FkQ29tbWl0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZENvbW1pdFRpbWU7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCkBAIC0xNjU1
LDcgKzE2NTUsNyBAQCBjbGFzcyBXZWJQYWdlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZT4sIHB1YmxpYyBJUAogI2VuZGlmCiAKICNpZiBVU0Uo
T1NfU1RBVEUpCi0gICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtX2xv
YWRDb21taXRUaW1lOworICAgIFdhbGxUaW1lIG1fbG9hZENvbW1pdFRpbWU7CiAjZW5kaWYKIAog
ICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uIHsgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6
TFRSIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCBiZGRjMTQwMTRmNDkxNjMwNDliNTRhMDYzYWQyM2VhYWE3MDMwZTNiLi43
YTBlMjdmNDU4NDUzMjUyZjJkZThiYjk5MDE5YWYxZWIzYTk0N2I3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTI0NSw3ICsy
NDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCkKICAgICAg
ICAgICAgICAgICBpZiAocGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSkKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICBOU0RhdGUqIGRhdGUgPSBbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRvX3RpbWVfdChwYWdlLT5sb2FkQ29tbWl0VGltZSgpKV07CisgICAgICAgICAgICAgICAg
TlNEYXRlKiBkYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpwYWdl
LT5sb2FkQ29tbWl0VGltZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpXTsKICAgICAg
ICAgICAgICAgICBbcGFnZUxvYWRUaW1lcyBhZGRPYmplY3Q6ZGF0ZV07CiAgICAgICAgICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330234</attachid>
            <date>2017-12-28 09:18:26 -0800</date>
            <delta_ts>2017-12-28 11:19:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181174-20171229021825.patch</filename>
            <type>text/plain</type>
            <size>25334</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRjN2ViM2JlZTU2ZjJlMDMzYWRhMTIy
MGZkMWQwZTc4YzMyZTI4NDcuLjIzMTFiNDY5ODgzMTY1YWQxODIxYTcxM2ZkODk1OTdiNThjYTBj
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTctMTItMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN0ZDo6Y2hyb25vIGlmIGl0IGlz
IG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9yIFBlcnNpc3RlbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXYWxsVGltZSBtb3Jl
IGNvbnN0ZXhwciBmcmllbmRseS4gVGhpcyBjaGFuZ2UgaXMgYWxyZWFkeSBhcHBsaWVkIHRvIE1v
bm9Ub25pY1RpbWUuCisKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmluZmluaXR5KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRp
bWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3BlcmF0
b3IrIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yLSBjb25zdCk6Cisg
ICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV1RGOjpXYWxsVGltZTo6b3Bl
cmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yPiBjb25zdCk6
CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcjw9IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6V2FsbFRpbWU6Om9wZXJhdG9yPj0gY29uc3QpOgorCiAyMDE3LTEyLTI3ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtXVEZdIEFkZCBjbG9ja19n
ZXR0aW1lIGJhc2VkIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSBpbXBsZW1lbnRhdGlvbiBm
b3IgTGludXggYW5kIEJTRHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNjVjMmNmNmRlNzFlNDNjM2JiMjRjYjMw
MTgzN2I5NjM2NThkNjgyLi5iZWQyNzQxNjA4ODkzOTE3NzRhNTkxNDdjMWY4Y2Y4NTJhN2Y3MDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTctMTItMjggIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN0ZDo6Y2hyb25vIGlm
IGl0IGlzIG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9yIFBlcnNpc3RlbnRDb2RlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTc0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugd291bGQgbGlr
ZSB0byByZW1vdmUgc3RkOjpjaHJvbm8gYXMgbXVjaCBhcyBwb3NzaWJsZSBkdWUgdG8gdGhlIGRh
bmdlciBvZgorICAgICAgICBpdHMgb3ZlcmZsb3cgdW5hd2FyZW5lc3MuIFRoaXMgcGF0Y2ggcmVt
b3ZlcyBzdGQ6OmNocm9ubyBpZiBpdCBpcyBub3QgdXNlZAorICAgICAgICBmb3IgQXJndW1lbnRD
b2RlciBvciBQZXJzaXN0ZW50Q29kZXIuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVSZWFkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZVBhaW50UmVjdHNUaW1lckZpcmVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oOgorICAgICAgICAqIHBhZ2UvUmVzb3Vy
Y2VVc2FnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFk
Ojp0aHJlYWRCb2R5KToKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmpldHRpc29uRXhwZW5zaXZlT2JqZWN0c09uVG9wTGV2ZWxO
YXZpZ2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJl
YW1IYW5kbGVJbXBsQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjp3YWl0Rm9yQXZhaWxhYmxlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRT
dHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCk6CisKIDIwMTctMTItMjcgIENhcmxvcyBBbGJl
cnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4
IGFmdGVyIHIyMjYyOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGVlNTg0ZjhkYWNkMjI2MTAwYmI0ZWQ1MzMzZTYw
ZTEyMjRiYWYyMy4uOWYxZGZjZmQxYjkzOGJiZGMwNWQ0YTk5NjA5NTNjNDFhMTlhOGE0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0xMi0yOCAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgc3RkOjpjaHJvbm8gaWYgaXQgaXMg
bm90IHVzZWQgZm9yIEFyZ3VtZW50Q29kZXIgb3IgUGVyc2lzdGVudENvZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODExNzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2Fj
aGU6OnJldHJpZXZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdGF0aXN0
aWNzOjppbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpT
bmFwc2hvdFJlbW92YWxUcmFja2VyOjpsb2cgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OnN0YXJ0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkQ29tbWl0VGltZSBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKToKKwogMjAxNy0xMi0yNCAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdCBmaXhl
cyB0byBlbmFibGUgLVdzdHJpY3QtcHJvdG90eXBlcyBmb3IgU2FmYXJpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oIGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAppbmRl
eCBhZTg5ZmNmODZmMjZhYTdhMTRlMmE0ZGYzMzJmMzMxY2Q1ODVjYmUyLi5kMmRmMTM2OTc0Mjkz
NzE3Mzc5MDAyNjliNDRjNDYwOWE0NTk5Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9X
YWxsVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKQEAgLTQ0LDQxICs0NCwz
OSBAQCBjbGFzcyBXYWxsVGltZSB7CiAgICAgc3RhdGljIGNvbnN0IENsb2NrVHlwZSBjbG9ja1R5
cGUgPSBDbG9ja1R5cGU6OldhbGw7CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNv
LCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBXYWxsVGlt
ZSgpLgotICAgIFdhbGxUaW1lKCkgeyB9CisgICAgY29uc3RleHByIFdhbGxUaW1lKCkgeyB9CiAg
ICAgCiAgICAgLy8gQ2FsbCB0aGlzIGlmIHlvdSBrbm93IGZvciBzdXJlIHRoYXQgdGhlIGRvdWJs
ZSByZXByZXNlbnRzIHRpbWUgYWNjb3JkaW5nIHRvCiAgICAgLy8gV1RGOjpjdXJyZW50VGltZSgp
LiBJdCBtdXN0IGJlIGluIHNlY29uZHMgYW5kIGl0IG11c3QgYmUgZnJvbSB0aGUgc2FtZSB0aW1l
IHNvdXJjZS4KLSAgICBzdGF0aWMgV2FsbFRpbWUgZnJvbVJhd1NlY29uZHMoZG91YmxlIHZhbHVl
KQorICAgIHN0YXRpYyBjb25zdGV4cHIgV2FsbFRpbWUgZnJvbVJhd1NlY29uZHMoZG91YmxlIHZh
bHVlKQogICAgIHsKLSAgICAgICAgV2FsbFRpbWUgcmVzdWx0OwotICAgICAgICByZXN1bHQubV92
YWx1ZSA9IHZhbHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gV2Fs
bFRpbWUodmFsdWUpOwogICAgIH0KICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFdhbGxUaW1lIG5vdygpOwogICAgIAotICAgIHN0YXRpYyBXYWxsVGltZSBpbmZpbml0eSgpIHsg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5p
dHkoKSk7IH0KKyAgICBzdGF0aWMgY29uc3RleHByIFdhbGxUaW1lIGluZmluaXR5KCkgeyByZXR1
cm4gZnJvbVJhd1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgp
KTsgfQogICAgIAotICAgIFNlY29uZHMgc2Vjb25kc1NpbmNlRXBvY2goKSBjb25zdCB7IHJldHVy
biBTZWNvbmRzKG1fdmFsdWUpOyB9CisgICAgY29uc3RleHByIFNlY29uZHMgc2Vjb25kc1NpbmNl
RXBvY2goKSBjb25zdCB7IHJldHVybiBTZWNvbmRzKG1fdmFsdWUpOyB9CiAgICAgCiAgICAgV2Fs
bFRpbWUgYXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIE1vbm90b25pY1RpbWUgYXBwcm94aW1hdGVNb25vdG9uaWNUaW1l
KCkgY29uc3Q7CiAgICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0
dXJuICEhbV92YWx1ZTsgfQorICAgIGV4cGxpY2l0IGNvbnN0ZXhwciBvcGVyYXRvciBib29sKCkg
Y29uc3QgeyByZXR1cm4gISFtX3ZhbHVlOyB9CiAgICAgCi0gICAgV2FsbFRpbWUgb3BlcmF0b3Ir
KFNlY29uZHMgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHByIFdhbGxUaW1lIG9wZXJhdG9yKyhT
ZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGZyb21SYXdTZWNvbmRz
KG1fdmFsdWUgKyBvdGhlci52YWx1ZSgpKTsKICAgICB9CiAgICAgCi0gICAgV2FsbFRpbWUgb3Bl
cmF0b3ItKFNlY29uZHMgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHByIFdhbGxUaW1lIG9wZXJh
dG9yLShTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGZyb21SYXdT
ZWNvbmRzKG1fdmFsdWUgLSBvdGhlci52YWx1ZSgpKTsKICAgICB9CiAgICAgCiAgICAgLy8gVGlt
ZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBhcyB0aGlzIGNvdWxkIGFy
aXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25zLiBTbywgd2UgYWxsb3cg
aXQuCi0gICAgV2FsbFRpbWUgb3BlcmF0b3ItKCkgY29uc3QKKyAgICBjb25zdGV4cHIgV2FsbFRp
bWUgb3BlcmF0b3ItKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBmcm9tUmF3U2Vjb25k
cygtbV92YWx1ZSk7CiAgICAgfQpAQCAtOTMsMzcgKzkxLDM3IEBAIGNsYXNzIFdhbGxUaW1lIHsK
ICAgICAgICAgcmV0dXJuICp0aGlzID0gKnRoaXMgLSBvdGhlcjsKICAgICB9CiAgICAgCi0gICAg
U2Vjb25kcyBvcGVyYXRvci0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHByIFNl
Y29uZHMgb3BlcmF0b3ItKFdhbGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuIFNlY29uZHMobV92YWx1ZSAtIG90aGVyLm1fdmFsdWUpOwogICAgIH0KICAgICAKLSAgICBi
b29sIG9wZXJhdG9yPT0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHByIGJvb2wg
b3BlcmF0b3I9PShXYWxsVGltZSBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBt
X3ZhbHVlID09IG90aGVyLm1fdmFsdWU7CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3Ih
PShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KFdh
bGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgIT0gb3Ro
ZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcjwoV2FsbFRpbWUgb3Ro
ZXIpIGNvbnN0CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I8KFdhbGxUaW1lIG90aGVyKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPCBvdGhlci5tX3ZhbHVlOwogICAg
IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPihXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBj
b25zdGV4cHIgYm9vbCBvcGVyYXRvcj4oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAg
ICAgICByZXR1cm4gbV92YWx1ZSA+IG90aGVyLm1fdmFsdWU7CiAgICAgfQogICAgIAotICAgIGJv
b2wgb3BlcmF0b3I8PShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgYm9vbCBv
cGVyYXRvcjw9KFdhbGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
dmFsdWUgPD0gb3RoZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcj49
KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPj0oV2Fs
bFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSA+PSBvdGhl
ci5tX3ZhbHVlOwogICAgIH0KQEAgLTEzMSw2ICsxMjksMTEgQEAgY2xhc3MgV2FsbFRpbWUgewog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAg
ICAKIHByaXZhdGU6CisgICAgY29uc3RleHByIFdhbGxUaW1lKGRvdWJsZSByYXdWYWx1ZSkKKyAg
ICAgICAgOiBtX3ZhbHVlKHJhd1ZhbHVlKQorICAgIHsKKyAgICB9CisKICAgICBkb3VibGUgbV92
YWx1ZSB7IDAgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmluZGV4
IDM0YmYyNzk3ZDE0M2QxOTM1NzdjMmQ4ZTU5NmJjMjFjMmY2MmE2NWMuLjJiNTExNzJhZWY5ODQx
N2MzYTZmMjBiNDkwYWEyNDJjOGUyMTFiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmNwcApAQCAtNDIsMTAgKzQyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2lu
ZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczo6Y2hyb25vX2xpdGVyYWxzOwotCiAvLyBGaXJlIHRo
ZSBwcm9ncmVzcyBldmVudCBhdCBsZWFzdCBldmVyeSA1MG1zLgotc3RhdGljIGNvbnN0IGF1dG8g
cHJvZ3Jlc3NOb3RpZmljYXRpb25JbnRlcnZhbCA9IDUwbXM7CitzdGF0aWMgY29uc3QgYXV0byBw
cm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBfbXM7CiAKIFJlZjxGaWxlUmVhZGVyPiBG
aWxlUmVhZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKQEAg
LTE4MCw4ICsxNzgsOCBAQCB2b2lkIEZpbGVSZWFkZXI6OmRpZFN0YXJ0TG9hZGluZygpCiAKIHZv
aWQgRmlsZVJlYWRlcjo6ZGlkUmVjZWl2ZURhdGEoKQogewotICAgIGF1dG8gbm93ID0gc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgaWYgKCFtX2xhc3RQcm9ncmVzc05vdGlm
aWNhdGlvblRpbWUudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpIHsKKyAgICBhdXRvIG5vdyA9
IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIGlmIChzdGQ6OmlzbmFuKG1fbGFzdFByb2dyZXNz
Tm90aWZpY2F0aW9uVGltZSkpIHsKICAgICAgICAgbV9sYXN0UHJvZ3Jlc3NOb3RpZmljYXRpb25U
aW1lID0gbm93OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXIuaAppbmRleCBjMTNhNTkyOWI2M2Q4MTcwZGI5NDZiMjZmODQ3NmQ3MjdkZDVjODQ2Li5l
Zjg5ZjViZDZlMDEyZTVlNGQwNThjMzAxMDQ0MzlhNzJlZjBlYTZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXIuaApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkZpbGVFcnJvci5o
IgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9h
ZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSA8Y2hyb25vPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IEFycmF5QnVmZmVyOwpAQCAtMTAyLDcgKzEwMSw3IEBAIGNsYXNzIEZpbGVSZWFkZXIgZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlUmVhZGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwK
ICAgICBTdHJpbmcgbV9lbmNvZGluZzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVJlYWRlckxv
YWRlcj4gbV9sb2FkZXI7CiAgICAgUmVmUHRyPEZpbGVFcnJvcj4gbV9lcnJvcjsKLSAgICBzdGQ6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fbGFzdFByb2dyZXNzTm90aWZpY2F0
aW9uVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFByb2dyZXNzTm90aWZpY2F0aW9uVGlt
ZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXgg
ZmUwZGEwYWUxZGIzMWUzZmYxZWQ0N2UzMzhjY2Y5NzU2MWU3YzY5ZS4uZWU3ZTI2ZThjMjQ5ZWYy
NTFjNGZlNTUzNGEzZGU5NGU5OGYzNTc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNjMsNyArNjMsNiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotdXNpbmcgbmFtZXNwYWNlIHN0ZDo6
bGl0ZXJhbHM6OmNocm9ub19saXRlcmFsczsKIAogc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9D
b29yZGluYXRlU3lzdGVtKGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmll
dyogdmlldywgRmxvYXRRdWFkJiBxdWFkLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CkBAIC0zODAsOSArMzc5LDkgQEAgdm9pZCBJbnNwZWN0
b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAogICAgIElu
dFJlY3Qgcm9vdFJlY3QgPSBtX3BhZ2UubWFpbkZyYW1lKCkudmlldygpLT5jb250ZW50c1RvUm9v
dFZpZXcoZW5jbG9zaW5nSW50UmVjdChyZWN0KSk7CiAKLSAgICBjb25zdCBhdXRvIHJlbW92ZURl
bGF5ID0gMjUwbXM7CisgICAgY29uc3QgYXV0byByZW1vdmVEZWxheSA9IDI1MF9tczsKIAotICAg
IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgcmVtb3ZlVGltZSA9IHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpICsgcmVtb3ZlRGVsYXk7CisgICAgTW9ub3Rvbmlj
VGltZSByZW1vdmVUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkgKyByZW1vdmVEZWxheTsKICAg
ICBtX3BhaW50UmVjdHMuYXBwZW5kKFRpbWVSZWN0UGFpcihyZW1vdmVUaW1lLCByb290UmVjdCkp
OwogCiAgICAgaWYgKCFtX3BhaW50UmVjdFVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpIHsKQEAgLTM5
Niw3ICszOTUsNyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZVBhaW50UmVj
dHNUaW1lckZpcmVkKCkKIHsKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3Bv
aW50IG5vdyA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOworICAgIE1vbm90b25p
Y1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYm9vbCByZWN0c0NoYW5nZWQg
PSBmYWxzZTsKICAgICB3aGlsZSAoIW1fcGFpbnRSZWN0cy5pc0VtcHR5KCkgJiYgbV9wYWludFJl
Y3RzLmZpcnN0KCkuZmlyc3QgPCBub3cpIHsKICAgICAgICAgbV9wYWludFJlY3RzLnJlbW92ZUZp
cnN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaAppbmRl
eCBmZjE3OTcxMjM5YTJmMjI2MjViNGY4ODJmNjQ4NTdhNWFmZmRhMjUxLi44MTVjYmZhOWQ2ZTE2
MWIwNjM3OTBmMDkzOWRiYWRlZGM3NGFhMDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBjbGFzcyBJbnNwZWN0b3JP
dmVybGF5IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZT4gbV9vdmVybGF5UGFnZTsKICAgICBI
aWdobGlnaHRDb25maWcgbV9xdWFkSGlnaGxpZ2h0Q29uZmlnOwogICAgIAotICAgIHR5cGVkZWYg
c3RkOjpwYWlyPHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQsIEZsb2F0UmVj
dD4gVGltZVJlY3RQYWlyOworICAgIHVzaW5nIFRpbWVSZWN0UGFpciA9IHN0ZDo6cGFpcjxNb25v
dG9uaWNUaW1lLCBGbG9hdFJlY3Q+OwogICAgIERlcXVlPFRpbWVSZWN0UGFpcj4gbV9wYWludFJl
Y3RzOwogICAgIFRpbWVyIG1fcGFpbnRSZWN0VXBkYXRlVGltZXI7CiAgICAgYm9vbCBtX2luZGlj
YXRpbmcge2ZhbHNlfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VV
c2FnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQu
Y3BwCmluZGV4IDM4OGY0YTQwNjU4YTIzNzhkYjM5Y2Y3MTIxNGMxNWUyMmJjMmI5MTYuLmUxOTY0
OTE1NWJiMzU4YmM3YTQxMzcwNDcxZTQwNzllNGE1MjJlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcApAQCAtMTA3LDIxICsxMDcsMTkgQEAgdm9pZCBS
ZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAKIE5PX1JFVFVSTiB2
b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmVhZEJvZHkoKQogewotICAgIHVzaW5nIG5hbWVz
cGFjZSBzdGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7Ci0KICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICAvLyBPbmx5IGRvIHdvcmsgaWYgd2UgaGF2ZSBvYnNlcnZlcnMuCiAgICAgICAg
IHdhaXRVbnRpbE9ic2VydmVycygpOwogCi0gICAgICAgIGF1dG8gc3RhcnQgPSBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICAgICAgYXV0byBzdGFydCA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogCiAgICAgICAgIFJlc291cmNlVXNhZ2VEYXRhIGRhdGE7CiAgICAgICAgIHBs
YXRmb3JtVGhyZWFkQm9keShtX3ZtLCBkYXRhKTsKICAgICAgICAgbm90aWZ5T2JzZXJ2ZXJzKFdU
Rk1vdmUoZGF0YSkpOwogCi0gICAgICAgIGF1dG8gZHVyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0OwotICAgICAgICBhdXRvIGRpZmZlcmVuY2UgPSA1MDBt
cyAtIGR1cmF0aW9uOwotICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IoZGlmZmVy
ZW5jZSk7CisgICAgICAgIGF1dG8gZHVyYXRpb24gPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0
YXJ0OworICAgICAgICBhdXRvIGRpZmZlcmVuY2UgPSA1MDBfbXMgLSBkdXJhdGlvbjsKKyAgICAg
ICAgV1RGOjpzbGVlcChkaWZmZXJlbmNlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0KaW5kZXggMDliYzAwNmU0MDFmYWM4
YzZhZWRlOTJkZjM4YzczZDAzYzg0NDhjMi4uYjM3YjVjYmU2NGY0MTYyNDJkZThhY2Y0MWRkNjU2
NGUwNzdmYTY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlS
ZWxlYXNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxl
YXNlQ29jb2EubW0KQEAgLTY0LDEzICs2NCwxMSBAQCB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eShDcml0aWNhbCkKIHZvaWQgamV0dGlzb25FeHBlbnNpdmVPYmplY3RzT25Ub3BMZXZlbE5hdmln
YXRpb24oKQogewogI2lmIFBMQVRGT1JNKElPUykKLSAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjps
aXRlcmFsczo6Y2hyb25vX2xpdGVyYWxzOwotCiAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGRvaW5n
IGV4Y2Vzc2l2ZSBqZXR0aXNvbmluZyBkdXJpbmcgcmVwZWF0ZWQgbmF2aWdhdGlvbnMuCi0gICAg
Y29uc3QgYXV0byBtaW5pbXVtVGltZVNpbmNlTmF2aWdhdGlvbiA9IDJzOworICAgIGNvbnN0IGF1
dG8gbWluaW11bVRpbWVTaW5jZU5hdmlnYXRpb24gPSAyX3M7CiAKLSAgICBzdGF0aWMgYXV0byB0
aW1lT2ZMYXN0TmF2aWdhdGlvbiA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwot
ICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgc3Rh
dGljIGF1dG8gdGltZU9mTGFzdE5hdmlnYXRpb24gPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAg
ICBhdXRvIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIGJvb2wgc2hvdWxkSmV0dGlz
b24gPSBub3cgLSB0aW1lT2ZMYXN0TmF2aWdhdGlvbiA+PSBtaW5pbXVtVGltZVNpbmNlTmF2aWdh
dGlvbjsKICAgICB0aW1lT2ZMYXN0TmF2aWdhdGlvbiA9IG5vdzsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsLmgKaW5kZXggMzhlOGNlMzg4ZjUyNThjOWIzZWVhZjk4NDg5ODUzOWI0ZDg0MmE3YS4u
ZGVmOTQwNjUzNWU4NTZlNzJlMGIyMGVjY2Q5ODQyZWRiOTg5NjMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmVhbUJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtNjYsNyArNjcsNyBAQCBjbGFzcyBTb2NrZXRTdHJl
YW1IYW5kbGVJbXBsIDogcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZSB7CiAKICAgICBib29sIHJl
YWREYXRhKENVUkwqKTsKICAgICBib29sIHNlbmREYXRhKENVUkwqKTsKLSAgICBib29sIHdhaXRG
b3JBdmFpbGFibGVEYXRhKENVUkwqLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHNlbGVjdFRp
bWVvdXQpOworICAgIGJvb2wgd2FpdEZvckF2YWlsYWJsZURhdGEoQ1VSTCosIFNlY29uZHMgc2Vs
ZWN0VGltZW91dCk7CiAKICAgICB2b2lkIHN0YXJ0VGhyZWFkKCk7CiAgICAgdm9pZCBzdG9wVGhy
ZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
U29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAppbmRleCAxZGRkYThj
ZjhlNDQ0OGUwMmQ5NzdkZTE0OTczYWYyODA1YzkxODk1Li42ZmNiZjgzNzhjYTM3NWNmOTIxYWRm
OWFhNjRhY2U1NWFkMmM2ZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5j
cHAKQEAgLTE2NCwxOSArMTY0LDE5IEBAIGJvb2wgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c2Vu
ZERhdGEoQ1VSTCogY3VybEhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsOjp3YWl0Rm9yQXZhaWxhYmxlRGF0YShDVVJMKiBjdXJsSGFuZGxl
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHNlbGVjdFRpbWVvdXQpCitib29sIFNvY2tldFN0
cmVhbUhhbmRsZUltcGw6OndhaXRGb3JBdmFpbGFibGVEYXRhKENVUkwqIGN1cmxIYW5kbGUsIFNl
Y29uZHMgc2VsZWN0VGltZW91dCkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAot
ICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdXNlYyA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlv
bl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHNlbGVjdFRpbWVvdXQpOworICAgIGlu
dDY0X3QgdXNlYyA9IHNlbGVjdFRpbWVvdXQubWljcm9zZWNvbmRzQXM8aW50NjRfdD4oKTsKIAog
ICAgIHN0cnVjdCB0aW1ldmFsIHRpbWVvdXQ7Ci0gICAgaWYgKHVzZWMgPD0gc3RkOjpjaHJvbm86
Om1pY3Jvc2Vjb25kcygwKSkgeworICAgIGlmICh1c2VjIDw9IDApIHsKICAgICAgICAgdGltZW91
dC50dl9zZWMgPSAwOwogICAgICAgICB0aW1lb3V0LnR2X3VzZWMgPSAwOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIHRpbWVvdXQudHZfc2VjID0gdXNlYy5jb3VudCgpIC8gMTAwMDAwMDsKLSAgICAg
ICAgdGltZW91dC50dl91c2VjID0gdXNlYy5jb3VudCgpICUgMTAwMDAwMDsKKyAgICAgICAgdGlt
ZW91dC50dl9zZWMgPSB1c2VjIC8gMTAwMDAwMDsKKyAgICAgICAgdGltZW91dC50dl91c2VjID0g
dXNlYyAlIDEwMDAwMDA7CiAgICAgfQogCiAgICAgbG9uZyBzb2NrZXQ7CkBAIC0yMzMsNyArMjMz
LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCgpCiAgICAgICAg
ICAgICBzZW5kRGF0YShjdXJsSGFuZGxlKTsKIAogICAgICAgICAgICAgLy8gV2FpdCB1bnRpbCBz
b2NrZXQgaGFzIGF2YWlsYWJsZSBkYXRhCi0gICAgICAgICAgICBpZiAod2FpdEZvckF2YWlsYWJs
ZURhdGEoY3VybEhhbmRsZSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCkpKQorICAgICAg
ICAgICAgaWYgKHdhaXRGb3JBdmFpbGFibGVEYXRhKGN1cmxIYW5kbGUsIDIwX21zKSkKICAgICAg
ICAgICAgICAgICByZWFkRGF0YShjdXJsSGFuZGxlKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXgg
ZmQ3YmE3OGI2Mzc5ODQ3ODMwZWRjZGU5ZWRkNDczOWI0N2ZkOTg2MS4uNDc4NDA0YTk2YTI2NTQ5
ODE4ZGVmOWMzOTRkOGZkZDUzZWVkYmQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzQ4LDcgKzM0OCw3IEBAIHZv
aWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgR2xvYmFsRnJhbWVJCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIHN0YXJ0VGlt
ZSA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIGF1dG8gc3RhcnRUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYXV0byBwcmlvcml0eSA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihyZXF1ZXN0LnByaW9yaXR5KCkpOwogCiAgICAgbV9zdG9yYWdlLT5yZXRyaWV2
ZShzdG9yYWdlS2V5LCBwcmlvcml0eSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgcmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgc3RhcnRUaW1lLCBzdG9yYWdlS2V5LCBmcmFtZUlEXShhdXRvIHJlY29yZCkgewpAQCAt
Mzc4LDggKzM3OCw4IEBAIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJCiAgICAgICAgIH07CiAKICNp
ZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gZWxhcHNlZE1TID0gc3RhdGljX2Nhc3Q8aW50
NjRfdD4oc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydFRpbWUpLmNvdW50KCkp
OwotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSByZXRyaWV2ZSBj
b21wbGV0ZSB1c2VEZWNpc2lvbj0lZCBwcmlvcml0eT0lZCB0aW1lPSUiIFBSSWk2NCAibXMiLCBz
dGF0aWNfY2FzdDxpbnQ+KHVzZURlY2lzaW9uKSwgc3RhdGljX2Nhc3Q8aW50PihyZXF1ZXN0LnBy
aW9yaXR5KCkpLCBlbGFwc2VkTVMpOworICAgICAgICBhdXRvIGVsYXBzZWQgPSBNb25vdG9uaWNU
aW1lOjpub3coKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3
b3JrUHJvY2VzcykgcmV0cmlldmUgY29tcGxldGUgdXNlRGVjaXNpb249JWQgcHJpb3JpdHk9JWQg
dGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8aW50Pih1c2VEZWNpc2lvbiksIHN0YXRp
Y19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpKSwgZWxhcHNlZC5taWxsaXNlY29uZHNBczxp
bnQ2NF90PigpKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShzdGFydFRpbWUpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRleCBiNGY2MjYyZGM0ODAyNDdmMzcxZmNi
NWEwMjA3ZTUxMWYyODYzZTI3Li5lYTFiNWIwZjZmNGE2NWY5ODYyZWVlYzMxOWUyZDcyODIzZjJk
NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBT
dGF0aXN0aWNzOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CiAKICAgICBzZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZSgpLmRpc3BhdGNo
KFt0aGlzLCBkYXRhYmFzZVBhdGggPSBkYXRhYmFzZVBhdGguaXNvbGF0ZWRDb3B5KCksIG5ldHdv
cmtDYWNoZVBhdGggPSBtX2NhY2hlLnJlY29yZHNQYXRoKCksIHN0YXJ0VGltZV0gewogICAgICAg
ICBXZWJDb3JlOjpTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2Fj
dGlvbkNvdW50ZXI7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIFN0YXRpc3RpY3M6OmluaXRp
YWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAgICAgICAgIG1fYXBwcm94aW1hdGVF
bnRyeUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKIAogI2lmICFMT0dfRElTQUJM
RUQKLSAgICAgICAgYXV0byBlbGFwc2VkTVMgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6OmNo
cm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0VGltZSkuY291bnQoKSk7CisgICAgICAgIGF1
dG8gZWxhcHNlZCA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lOwogI2Vsc2UKICAg
ICAgICAgVU5VU0VEX1BBUkFNKHN0YXJ0VGltZSk7CiAjZW5kaWYKLSAgICAgICAgTE9HKE5ldHdv
cmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgTmV0d29yayBjYWNoZSBzdGF0aXN0aWNzIGRhdGFi
YXNlIGxvYWQgY29tcGxldGUsIGVudHJpZXM9JWx1IHRpbWU9JSIgUFJJaTY0ICJtcyIsIHN0YXRp
Y19jYXN0PHNpemVfdD4obV9hcHByb3hpbWF0ZUVudHJ5Q291bnQpLCBlbGFwc2VkTVMpOworICAg
ICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBOZXR3b3JrIGNhY2hlIHN0
YXRpc3RpY3MgZGF0YWJhc2UgbG9hZCBjb21wbGV0ZSwgZW50cmllcz0lbHUgdGltZT0lIiBQUklp
NjQgIm1zIiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2FwcHJveGltYXRlRW50cnlDb3VudCksIGVs
YXBzZWQubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiAKICAgICAgICAgaWYgKCFtX2FwcHJv
eGltYXRlRW50cnlDb3VudCkgewogICAgICAgICAgICAgYm9vdHN0cmFwRnJvbU5ldHdvcmtDYWNo
ZShuZXR3b3JrQ2FjaGVQYXRoKTsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAgICBlbGFw
c2VkTVMgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3co
KSAtIHN0YXJ0VGltZSkuY291bnQoKSk7CisgICAgICAgICAgICBlbGFwc2VkID0gTW9ub3Rvbmlj
VGltZTo6bm93KCkgLSBzdGFydFRpbWU7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFN
KHN0YXJ0VGltZSk7CiAjZW5kaWYKLSAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0
d29ya1Byb2Nlc3MpIE5ldHdvcmsgY2FjaGUgc3RhdGlzdGljcyBkYXRhYmFzZSBib290c3RyYXBw
aW5nIGNvbXBsZXRlLCBlbnRyaWVzPSVsdSB0aW1lPSUiIFBSSWk2NCAibXMiLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KG1fYXBwcm94aW1hdGVFbnRyeUNvdW50KSwgZWxhcHNlZE1TKTsKKyAgICAgICAg
ICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIE5ldHdvcmsgY2FjaGUgc3Rh
dGlzdGljcyBkYXRhYmFzZSBib290c3RyYXBwaW5nIGNvbXBsZXRlLCBlbnRyaWVzPSVsdSB0aW1l
PSUiIFBSSWk2NCAibXMiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fYXBwcm94aW1hdGVFbnRyeUNv
dW50KSwgZWxhcHNlZC5taWxsaXNlY29uZHNBczxpbnQ2NF90PigpKTsKICAgICAgICAgfQogICAg
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggN2I1ZTMwMjUwYWRhNjdiOWYyYmVhMGU0NGEyNjQw
MzNkMWMzYzZhZC4uZThkYjE1YzlkM2Y5N2JiY2VmZmMwODk3NWYyNjAyMzI3Mzc0NzZmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuY3BwCkBAIC0yMzUsMTcgKzIzNSwxNiBAQCBTdHJpbmcgVmlld0dlc3R1cmVDb250
cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpldmVudHNEZXNjcmlwdGlvbihFdmVudHMg
ZQogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Omxv
Zyhjb25zdCBTdHJpbmcmIGxvZykgY29uc3QKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0
byBub3cgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKLSAgICBkb3VibGUgbWls
bGlzZWNvbmRzU2luY2VTdGFydCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbjxkb3VibGUsIHN0ZDo6bWlsbGk+Pihub3cgLSBtX3N0YXJ0VGltZSkuY291
bnQoKTsKKyAgICBhdXRvIHNpbmNlU3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fc3Rh
cnRUaW1lOwogI2VuZGlmCi0gICAgTE9HKFZpZXdHZXN0dXJlcywgIlN3aXBlIFNuYXBzaG90IFJl
bW92YWwgKCUwLjJmIG1zKSAtICVzIiwgbWlsbGlzZWNvbmRzU2luY2VTdGFydCwgbG9nLnV0Zjgo
KS5kYXRhKCkpOworICAgIExPRyhWaWV3R2VzdHVyZXMsICJTd2lwZSBTbmFwc2hvdCBSZW1vdmFs
ICglMC4yZiBtcykgLSAlcyIsIHNpbmNlU3RhcnQubWlsbGlzZWNvbmRzKCksIGxvZy51dGY4KCku
ZGF0YSgpKTsKIH0KIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI6OnN0YXJ0KEV2ZW50cyBkZXNpcmVkRXZlbnRzLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiByZW1vdmFsQ2FsbGJhY2spCiB7CiAgICAgbV9vdXRzdGFuZGluZ0V2ZW50cyA9IGRlc2ly
ZWRFdmVudHM7CiAgICAgbV9yZW1vdmFsQ2FsbGJhY2sgPSBXVEZNb3ZlKHJlbW92YWxDYWxsYmFj
ayk7Ci0gICAgbV9zdGFydFRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsK
KyAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogCiAgICAgbG9nKCJzdGFy
dCIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0
dXJlQ29udHJvbGxlci5oCmluZGV4IGFhNjk5ODJjYTI4NGFiNDVhM2U0NjZjN2MwMzg4NmQzN2Rh
Y2E2YzIuLjA0YjVhNDZkMGRmZDg2ZWJhZGIyZTIwOTkxMWE1YmFiMjA1NTFjZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KLSNpbmNsdWRlIDxjaHJvbm8+CiAjaW5jbHVkZSA8d3RmL0Jsb2NrUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAt
MTc5LDcgKzE3OSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlciA6IHByaXZhdGUgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgewogCiAgICAgICAgIEV2ZW50cyBtX291dHN0YW5kaW5nRXZlbnRz
IHsgMCB9OwogICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9yZW1vdmFsQ2FsbGJhY2s7
Ci0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV9zdGFydFRp
bWU7CisgICAgICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWU7CiAKICAgICAgICAgUnVuTG9v
cDo6VGltZXI8U25hcHNob3RSZW1vdmFsVHJhY2tlcj4gbV93YXRjaGRvZ1RpbWVyOwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQx
YzVjZWUyZWQzZTU4YzA0ZmQ1ZTk0Mzk5MzBjYWNhN2ViMjFiOWUuLjBkZmEwYTFkMTJlYzdhYjYz
NjcyYjIwYTdiY2E4YmYwNGY5YzI5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01MTM1LDcgKzUxMzUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRp
ZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogI2VuZGlmCiAKICNpZiBVU0UoT1NfU1RBVEUp
Ci0gICAgbV9sb2FkQ29tbWl0VGltZSA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygp
OworICAgIG1fbG9hZENvbW1pdFRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAjZW5kaWYKIAogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDRkZjZkZTQ3ZGVmODJmNjVm
ZWM0ODA4YTVhMDg0YjI0MjBhNDJiOC4uYTM5ODk1M2Q3Njk1ODcxYTVjYjlhZjUyZDcxNzVjODZi
OWYzYTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTAwMiw3ICsxMDAyLDcgQEAgY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U+LCBwdWJsaWMgSVAKICAgICB2b2lkIGlu
c2VydE5ld2xpbmVJblF1b3RlZENvbnRlbnQoKTsKIAogI2lmIFVTRShPU19TVEFURSkKLSAgICBz
dGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IGxvYWRDb21taXRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9sb2FkQ29tbWl0VGltZTsgfQorICAgIFdhbGxUaW1lIGxvYWRDb21taXRU
aW1lKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkQ29tbWl0VGltZTsgfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoR0FNRVBBRCkKQEAgLTE2NTUsNyArMTY1NSw3IEBAIGNsYXNzIFdlYlBhZ2UgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVQYWdlPiwgcHVibGlj
IElQCiAjZW5kaWYKIAogI2lmIFVTRShPU19TVEFURSkKLSAgICBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50IG1fbG9hZENvbW1pdFRpbWU7CisgICAgV2FsbFRpbWUgbV9sb2Fk
Q29tbWl0VGltZTsKICNlbmRpZgogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24geyBXZWJDb3JlOjpVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGJkZGMxNDAxNGY0OTE2MzA0OWI1
NGEwNjNhZDIzZWFhYTcwMzBlM2IuLjdhMGUyN2Y0NTg0NTMyNTJmMmRlOGJiOTkwMTlhZjFlYjNh
OTQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQpAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJX
aXRoU3RhdGVEdW1wZXIoKQogICAgICAgICAgICAgICAgIGlmIChwYWdlLT51c2VzRXBoZW1lcmFs
U2Vzc2lvbigpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAg
ICAgIE5TRGF0ZSogZGF0ZSA9IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dG9fdGltZV90KHBhZ2UtPmxvYWRDb21taXRUaW1l
KCkpXTsKKyAgICAgICAgICAgICAgICBOU0RhdGUqIGRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2UxOTcwOnBhZ2UtPmxvYWRDb21taXRUaW1lKCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS5zZWNvbmRzKCldOwogICAgICAgICAgICAgICAgIFtwYWdlTG9hZFRpbWVzIGFkZE9iamVj
dDpkYXRlXTsKICAgICAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330235</attachid>
            <date>2017-12-28 11:19:22 -0800</date>
            <delta_ts>2017-12-28 17:41:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181174-20171229041921.patch</filename>
            <type>text/plain</type>
            <size>25491</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRjN2ViM2JlZTU2ZjJlMDMzYWRhMTIy
MGZkMWQwZTc4YzMyZTI4NDcuLjI2ZTlhODc0ZjQwMzBmOTA4ODRmZWM2NzlmN2Q2ZGRkM2NjM2Y2
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTctMTItMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN0ZDo6Y2hyb25vIGlmIGl0IGlz
IG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9yIFBlcnNpc3RlbnRDb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXYWxsVGltZSBtb3Jl
IGNvbnN0ZXhwciBmcmllbmRseS4gVGhpcyBjaGFuZ2UgaXMgYWxyZWFkeSBhcHBsaWVkIHRvIE1v
bm9Ub25pY1RpbWUuCisKKyAgICAgICAgV2Ugd291bGQgbGlrZSB0byBtb3ZlIHN0ZDo6e2lzZmlu
aXRlLGlzaW5mLGlzbmFufSBvdmVybG9hZGluZ3MgZnJvbSBzdGQ6OiB0byBlYWNoIGNsYXNzIHNj
b3BlIGluIGEgc2VwYXJhdGUgcGF0Y2hbMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTgzCisKKyAgICAgICAgKiB3dGYvV2FsbFRp
bWUuaDoKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OldhbGxUaW1lKToKKyAgICAgICAgKFdURjo6
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OmluZmlu
aXR5KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6OnNlY29uZHNTaW5jZUVwb2NoIGNvbnN0KToK
KyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAo
V1RGOjpXYWxsVGltZTo6b3BlcmF0b3IrIGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6
Om9wZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcj09IGNv
bnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAg
ICAoV1RGOjpXYWxsVGltZTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRp
bWU6Om9wZXJhdG9yPiBjb25zdCk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpvcGVyYXRvcjw9
IGNvbnN0KToKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om9wZXJhdG9yPj0gY29uc3QpOgorCiAy
MDE3LTEyLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAg
ICAgIFtXVEZdIEFkZCBjbG9ja19nZXR0aW1lIGJhc2VkIG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSBpbXBsZW1lbnRhdGlvbiBmb3IgTGludXggYW5kIEJTRHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNjVj
MmNmNmRlNzFlNDNjM2JiMjRjYjMwMTgzN2I5NjM2NThkNjgyLi5iZWQyNzQxNjA4ODkzOTE3NzRh
NTkxNDdjMWY4Y2Y4NTJhN2Y3MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTct
MTItMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHN0ZDo6Y2hyb25vIGlmIGl0IGlzIG5vdCB1c2VkIGZvciBBcmd1bWVudENvZGVyIG9y
IFBlcnNpc3RlbnRDb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2Ugd291bGQgbGlrZSB0byByZW1vdmUgc3RkOjpjaHJvbm8gYXMgbXVjaCBhcyBw
b3NzaWJsZSBkdWUgdG8gdGhlIGRhbmdlciBvZgorICAgICAgICBpdHMgb3ZlcmZsb3cgdW5hd2Fy
ZW5lc3MuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzdGQ6OmNocm9ubyBpZiBpdCBpcyBub3QgdXNlZAor
ICAgICAgICBmb3IgQXJndW1lbnRDb2RlciBvciBQZXJzaXN0ZW50Q29kZXIuCisKKyAgICAgICAg
Tm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAg
KiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZVBhaW50UmVj
dHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oOgor
ICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVVzYWdlVGhyZWFkOjp0aHJlYWRCb2R5KToKKyAgICAgICAgKiBwYWdlL2NvY29h
L01lbW9yeVJlbGVhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmpldHRpc29uRXhwZW5z
aXZlT2JqZWN0c09uVG9wTGV2ZWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjp3YWl0Rm9yQXZhaWxhYmxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCk6CisKIDIw
MTctMTItMjcgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIyMjYyOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGVlNTg0Zjhk
YWNkMjI2MTAwYmI0ZWQ1MzMzZTYwZTEyMjRiYWYyMy4uOWYxZGZjZmQxYjkzOGJiZGMwNWQ0YTk5
NjA5NTNjNDFhMTlhOGE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0xMi0yOCAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUg
c3RkOjpjaHJvbm8gaWYgaXQgaXMgbm90IHVzZWQgZm9yIEFyZ3VtZW50Q29kZXIgb3IgUGVyc2lz
dGVudENvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODExNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnJldHJpZXZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0NhY2hlOjpTdGF0aXN0aWNzOjppbml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmll
d0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpsb2cgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRy
YWNrZXI6OnN0YXJ0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkQ29t
bWl0VGltZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVt
cGVyKToKKwogMjAxNy0xMi0yNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYktpdCBmaXhlcyB0byBlbmFibGUgLVdzdHJpY3QtcHJvdG90eXBlcyBmb3Ig
U2FmYXJpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oIGIvU291cmNlL1dU
Ri93dGYvV2FsbFRpbWUuaAppbmRleCBhZTg5ZmNmODZmMjZhYTdhMTRlMmE0ZGYzMzJmMzMxY2Q1
ODVjYmUyLi5kMmRmMTM2OTc0MjkzNzE3Mzc5MDAyNjliNDRjNDYwOWE0NTk5Yjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxU
aW1lLmgKQEAgLTQ0LDQxICs0NCwzOSBAQCBjbGFzcyBXYWxsVGltZSB7CiAgICAgc3RhdGljIGNv
bnN0IENsb2NrVHlwZSBjbG9ja1R5cGUgPSBDbG9ja1R5cGU6OldhbGw7CiAgICAgCiAgICAgLy8g
VGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJlIHRo
ZSBzYW1lIGFzIHggLSBXYWxsVGltZSgpLgotICAgIFdhbGxUaW1lKCkgeyB9CisgICAgY29uc3Rl
eHByIFdhbGxUaW1lKCkgeyB9CiAgICAgCiAgICAgLy8gQ2FsbCB0aGlzIGlmIHlvdSBrbm93IGZv
ciBzdXJlIHRoYXQgdGhlIGRvdWJsZSByZXByZXNlbnRzIHRpbWUgYWNjb3JkaW5nIHRvCiAgICAg
Ly8gV1RGOjpjdXJyZW50VGltZSgpLiBJdCBtdXN0IGJlIGluIHNlY29uZHMgYW5kIGl0IG11c3Qg
YmUgZnJvbSB0aGUgc2FtZSB0aW1lIHNvdXJjZS4KLSAgICBzdGF0aWMgV2FsbFRpbWUgZnJvbVJh
d1NlY29uZHMoZG91YmxlIHZhbHVlKQorICAgIHN0YXRpYyBjb25zdGV4cHIgV2FsbFRpbWUgZnJv
bVJhd1NlY29uZHMoZG91YmxlIHZhbHVlKQogICAgIHsKLSAgICAgICAgV2FsbFRpbWUgcmVzdWx0
OwotICAgICAgICByZXN1bHQubV92YWx1ZSA9IHZhbHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgICByZXR1cm4gV2FsbFRpbWUodmFsdWUpOwogICAgIH0KICAgICAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFdhbGxUaW1lIG5vdygpOwogICAgIAotICAgIHN0YXRpYyBX
YWxsVGltZSBpbmZpbml0eSgpIHsgcmV0dXJuIGZyb21SYXdTZWNvbmRzKHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7IH0KKyAgICBzdGF0aWMgY29uc3RleHByIFdhbGxU
aW1lIGluZmluaXR5KCkgeyByZXR1cm4gZnJvbVJhd1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjppbmZpbml0eSgpKTsgfQogICAgIAotICAgIFNlY29uZHMgc2Vjb25kc1NpbmNl
RXBvY2goKSBjb25zdCB7IHJldHVybiBTZWNvbmRzKG1fdmFsdWUpOyB9CisgICAgY29uc3RleHBy
IFNlY29uZHMgc2Vjb25kc1NpbmNlRXBvY2goKSBjb25zdCB7IHJldHVybiBTZWNvbmRzKG1fdmFs
dWUpOyB9CiAgICAgCiAgICAgV2FsbFRpbWUgYXBwcm94aW1hdGVXYWxsVGltZSgpIGNvbnN0IHsg
cmV0dXJuICp0aGlzOyB9CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIE1vbm90b25pY1RpbWUgYXBw
cm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3Q7CiAgICAgCi0gICAgZXhwbGljaXQgb3BlcmF0
b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV92YWx1ZTsgfQorICAgIGV4cGxpY2l0IGNvbnN0
ZXhwciBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX3ZhbHVlOyB9CiAgICAgCi0g
ICAgV2FsbFRpbWUgb3BlcmF0b3IrKFNlY29uZHMgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHBy
IFdhbGxUaW1lIG9wZXJhdG9yKyhTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKG1fdmFsdWUgKyBvdGhlci52YWx1ZSgpKTsKICAgICB9CiAg
ICAgCi0gICAgV2FsbFRpbWUgb3BlcmF0b3ItKFNlY29uZHMgb3RoZXIpIGNvbnN0CisgICAgY29u
c3RleHByIFdhbGxUaW1lIG9wZXJhdG9yLShTZWNvbmRzIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIGZyb21SYXdTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci52YWx1ZSgpKTsKICAg
ICB9CiAgICAgCiAgICAgLy8gVGltZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVn
YXRlZCBhcyB0aGlzIGNvdWxkIGFyaXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3Jt
YXRpb25zLiBTbywgd2UgYWxsb3cgaXQuCi0gICAgV2FsbFRpbWUgb3BlcmF0b3ItKCkgY29uc3QK
KyAgICBjb25zdGV4cHIgV2FsbFRpbWUgb3BlcmF0b3ItKCkgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBmcm9tUmF3U2Vjb25kcygtbV92YWx1ZSk7CiAgICAgfQpAQCAtOTMsMzcgKzkxLDM3
IEBAIGNsYXNzIFdhbGxUaW1lIHsKICAgICAgICAgcmV0dXJuICp0aGlzID0gKnRoaXMgLSBvdGhl
cjsKICAgICB9CiAgICAgCi0gICAgU2Vjb25kcyBvcGVyYXRvci0oV2FsbFRpbWUgb3RoZXIpIGNv
bnN0CisgICAgY29uc3RleHByIFNlY29uZHMgb3BlcmF0b3ItKFdhbGxUaW1lIG90aGVyKSBjb25z
dAogICAgIHsKICAgICAgICAgcmV0dXJuIFNlY29uZHMobV92YWx1ZSAtIG90aGVyLm1fdmFsdWUp
OwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0
CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShXYWxsVGltZSBvdGhlcikgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7CiAgICAgfQogICAg
IAotICAgIGJvb2wgb3BlcmF0b3IhPShXYWxsVGltZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4
cHIgYm9vbCBvcGVyYXRvciE9KFdhbGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
cmV0dXJuIG1fdmFsdWUgIT0gb3RoZXIubV92YWx1ZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBv
cGVyYXRvcjwoV2FsbFRpbWUgb3RoZXIpIGNvbnN0CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0
b3I8KFdhbGxUaW1lIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUg
PCBvdGhlci5tX3ZhbHVlOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPihXYWxsVGlt
ZSBvdGhlcikgY29uc3QKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj4oV2FsbFRpbWUgb3Ro
ZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZSA+IG90aGVyLm1fdmFsdWU7
CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3I8PShXYWxsVGltZSBvdGhlcikgY29uc3QK
KyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjw9KFdhbGxUaW1lIG90aGVyKSBjb25zdAogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPD0gb3RoZXIubV92YWx1ZTsKICAgICB9CiAgICAg
Ci0gICAgYm9vbCBvcGVyYXRvcj49KFdhbGxUaW1lIG90aGVyKSBjb25zdAorICAgIGNvbnN0ZXhw
ciBib29sIG9wZXJhdG9yPj0oV2FsbFRpbWUgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gbV92YWx1ZSA+PSBvdGhlci5tX3ZhbHVlOwogICAgIH0KQEAgLTEzMSw2ICsxMjksMTEg
QEAgY2xhc3MgV2FsbFRpbWUgewogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6CisgICAgY29uc3RleHByIFdhbGxUaW1l
KGRvdWJsZSByYXdWYWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHJhd1ZhbHVlKQorICAgIHsKKyAg
ICB9CisKICAgICBkb3VibGUgbV92YWx1ZSB7IDAgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuY3BwCmluZGV4IDM0YmYyNzk3ZDE0M2QxOTM1NzdjMmQ4ZTU5NmJjMjFjMmY2
MmE2NWMuLjJiNTExNzJhZWY5ODQxN2MzYTZmMjBiNDkwYWEyNDJjOGUyMTFiMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtNDIsMTAgKzQyLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczo6Y2hyb25vX2xp
dGVyYWxzOwotCiAvLyBGaXJlIHRoZSBwcm9ncmVzcyBldmVudCBhdCBsZWFzdCBldmVyeSA1MG1z
Lgotc3RhdGljIGNvbnN0IGF1dG8gcHJvZ3Jlc3NOb3RpZmljYXRpb25JbnRlcnZhbCA9IDUwbXM7
CitzdGF0aWMgY29uc3QgYXV0byBwcm9ncmVzc05vdGlmaWNhdGlvbkludGVydmFsID0gNTBfbXM7
CiAKIFJlZjxGaWxlUmVhZGVyPiBGaWxlUmVhZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkKIHsKQEAgLTE4MCw4ICsxNzgsOCBAQCB2b2lkIEZpbGVSZWFkZXI6OmRp
ZFN0YXJ0TG9hZGluZygpCiAKIHZvaWQgRmlsZVJlYWRlcjo6ZGlkUmVjZWl2ZURhdGEoKQogewot
ICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgaWYg
KCFtX2xhc3RQcm9ncmVzc05vdGlmaWNhdGlvblRpbWUudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50
KCkpIHsKKyAgICBhdXRvIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIGlmIChzdGQ6
OmlzbmFuKG1fbGFzdFByb2dyZXNzTm90aWZpY2F0aW9uVGltZSkpIHsKICAgICAgICAgbV9sYXN0
UHJvZ3Jlc3NOb3RpZmljYXRpb25UaW1lID0gbm93OwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAppbmRleCBjMTNhNTkyOWI2M2Q4MTcwZGI5NDZi
MjZmODQ3NmQ3MjdkZDVjODQ2Li5lZjg5ZjViZDZlMDEyZTVlNGQwNThjMzAxMDQ0MzlhNzJlZjBl
YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaApAQCAtMzYsNyArMzYsNiBAQAog
I2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNp
bmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSA8Y2hyb25vPgogCiBu
YW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFycmF5QnVmZmVyOwpAQCAtMTAyLDcgKzEwMSw3IEBAIGNs
YXNzIEZpbGVSZWFkZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlUmVhZGVyPiwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwKICAgICBTdHJpbmcgbV9lbmNvZGluZzsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVmUHRyPEZpbGVFcnJv
cj4gbV9lcnJvcjsKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1f
bGFzdFByb2dyZXNzTm90aWZpY2F0aW9uVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFBy
b2dyZXNzTm90aWZpY2F0aW9uVGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKaW5kZXggZmUwZGEwYWUxZGIzMWUzZmYxZWQ0N2UzMzhjY2Y5NzU2MWU3
YzY5ZS4uZWU3ZTI2ZThjMjQ5ZWYyNTFjNGZlNTUzNGEzZGU5NGU5OGYzNTc5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNjMsNyArNjMs
NiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwot
dXNpbmcgbmFtZXNwYWNlIHN0ZDo6bGl0ZXJhbHM6OmNocm9ub19saXRlcmFsczsKIAogc3RhdGlj
IHZvaWQgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKGNvbnN0IEZyYW1lVmlldyogbWFp
blZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFkJiBxdWFkLCBJbnNwZWN0b3JP
dmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CkBAIC0zODAsOSAr
Mzc5LDkgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKIAogICAgIEludFJlY3Qgcm9vdFJlY3QgPSBtX3BhZ2UubWFpbkZyYW1lKCku
dmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZW5jbG9zaW5nSW50UmVjdChyZWN0KSk7CiAKLSAg
ICBjb25zdCBhdXRvIHJlbW92ZURlbGF5ID0gMjUwbXM7CisgICAgY29uc3QgYXV0byByZW1vdmVE
ZWxheSA9IDI1MF9tczsKIAotICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgcmVtb3ZlVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpICsgcmVtb3Zl
RGVsYXk7CisgICAgTW9ub3RvbmljVGltZSByZW1vdmVUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCkgKyByZW1vdmVEZWxheTsKICAgICBtX3BhaW50UmVjdHMuYXBwZW5kKFRpbWVSZWN0UGFpcihy
ZW1vdmVUaW1lLCByb290UmVjdCkpOwogCiAgICAgaWYgKCFtX3BhaW50UmVjdFVwZGF0ZVRpbWVy
LmlzQWN0aXZlKCkpIHsKQEAgLTM5Niw3ICszOTUsNyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6
OnNob3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEluc3BlY3Rvck92
ZXJsYXk6OnVwZGF0ZVBhaW50UmVjdHNUaW1lckZpcmVkKCkKIHsKLSAgICBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG5vdyA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpOworICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgYm9vbCByZWN0c0NoYW5nZWQgPSBmYWxzZTsKICAgICB3aGlsZSAoIW1fcGFpbnRSZWN0cy5p
c0VtcHR5KCkgJiYgbV9wYWludFJlY3RzLmZpcnN0KCkuZmlyc3QgPCBub3cpIHsKICAgICAgICAg
bV9wYWludFJlY3RzLnJlbW92ZUZpcnN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuaAppbmRleCBmZjE3OTcxMjM5YTJmMjI2MjViNGY4ODJmNjQ4NTdhNWFm
ZmRhMjUxLi44MTVjYmZhOWQ2ZTE2MWIwNjM3OTBmMDkzOWRiYWRlZGM3NGFhMDE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKQEAgLTE1Myw3ICsxNTMs
NyBAQCBjbGFzcyBJbnNwZWN0b3JPdmVybGF5IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZT4g
bV9vdmVybGF5UGFnZTsKICAgICBIaWdobGlnaHRDb25maWcgbV9xdWFkSGlnaGxpZ2h0Q29uZmln
OwogICAgIAotICAgIHR5cGVkZWYgc3RkOjpwYWlyPHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
OnRpbWVfcG9pbnQsIEZsb2F0UmVjdD4gVGltZVJlY3RQYWlyOworICAgIHVzaW5nIFRpbWVSZWN0
UGFpciA9IHN0ZDo6cGFpcjxNb25vdG9uaWNUaW1lLCBGbG9hdFJlY3Q+OwogICAgIERlcXVlPFRp
bWVSZWN0UGFpcj4gbV9wYWludFJlY3RzOwogICAgIFRpbWVyIG1fcGFpbnRSZWN0VXBkYXRlVGlt
ZXI7CiAgICAgYm9vbCBtX2luZGljYXRpbmcge2ZhbHNlfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCmluZGV4IDM4OGY0YTQwNjU4YTIzNzhkYjM5Y2Y3MTIx
NGMxNWUyMmJjMmI5MTYuLjI4YjdlNjYwMmNiN2ZmMjg2YTRjZmQxOWNiNmVkMThhNzM4NGE1ZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcApAQCAtMTA3
LDIxICsxMDcsMTkgQEAgdm9pZCBSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5l
ZWRlZCgpCiAKIE5PX1JFVFVSTiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmVhZEJvZHko
KQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7
Ci0KICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAvLyBPbmx5IGRvIHdvcmsgaWYgd2UgaGF2
ZSBvYnNlcnZlcnMuCiAgICAgICAgIHdhaXRVbnRpbE9ic2VydmVycygpOwogCi0gICAgICAgIGF1
dG8gc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICAgICAgYXV0
byBzdGFydCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBSZXNvdXJjZVVzYWdlRGF0YSBk
YXRhOwogICAgICAgICBwbGF0Zm9ybVRocmVhZEJvZHkobV92bSwgZGF0YSk7CiAgICAgICAgIG5v
dGlmeU9ic2VydmVycyhXVEZNb3ZlKGRhdGEpKTsKIAotICAgICAgICBhdXRvIGR1cmF0aW9uID0g
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydDsKLSAgICAgICAgYXV0byBk
aWZmZXJlbmNlID0gNTAwbXMgLSBkdXJhdGlvbjsKLSAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6
c2xlZXBfZm9yKGRpZmZlcmVuY2UpOworICAgICAgICBhdXRvIGR1cmF0aW9uID0gV2FsbFRpbWU6
Om5vdygpIC0gc3RhcnQ7CisgICAgICAgIGF1dG8gZGlmZmVyZW5jZSA9IDUwMF9tcyAtIGR1cmF0
aW9uOworICAgICAgICBXVEY6OnNsZWVwKGRpZmZlcmVuY2UpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQppbmRleCAwOWJj
MDA2ZTQwMWZhYzhjNmFlZGU5MmRmMzhjNzNkMDNjODQ0OGMyLi5iMzdiNWNiZTY0ZjQxNjI0MmRl
OGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L01lbW9yeVJlbGVhc2VDb2NvYS5tbQpAQCAtNjQsMTMgKzY0LDExIEBAIHZvaWQgcGxhdGZvcm1S
ZWxlYXNlTWVtb3J5KENyaXRpY2FsKQogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRv
cExldmVsTmF2aWdhdGlvbigpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHVzaW5nIG5hbWVz
cGFjZSBzdGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7Ci0KICAgICAvLyBQcm90ZWN0IGFn
YWluc3QgZG9pbmcgZXhjZXNzaXZlIGpldHRpc29uaW5nIGR1cmluZyByZXBlYXRlZCBuYXZpZ2F0
aW9ucy4KLSAgICBjb25zdCBhdXRvIG1pbmltdW1UaW1lU2luY2VOYXZpZ2F0aW9uID0gMnM7Cisg
ICAgY29uc3QgYXV0byBtaW5pbXVtVGltZVNpbmNlTmF2aWdhdGlvbiA9IDJfczsKIAotICAgIHN0
YXRpYyBhdXRvIHRpbWVPZkxhc3ROYXZpZ2F0aW9uID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9j
azo6bm93KCk7Ci0gICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3co
KTsKKyAgICBzdGF0aWMgYXV0byB0aW1lT2ZMYXN0TmF2aWdhdGlvbiA9IE1vbm90b25pY1RpbWU6
Om5vdygpOworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgYm9vbCBz
aG91bGRKZXR0aXNvbiA9IG5vdyAtIHRpbWVPZkxhc3ROYXZpZ2F0aW9uID49IG1pbmltdW1UaW1l
U2luY2VOYXZpZ2F0aW9uOwogICAgIHRpbWVPZkxhc3ROYXZpZ2F0aW9uID0gbm93OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGwuaAppbmRleCAzOGU4Y2UzODhmNTI1OGM5YjNlZWFmOTg0ODk4NTM5
YjRkODQyYTdhLi5kZWY5NDA2NTM1ZTg1NmU3MmUwYjIwZWNjZDk4NDJlZGI5ODk2MzA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvU3RyZWFtQnVmZmVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC02Niw3ICs2Nyw3IEBAIGNsYXNz
IFNvY2tldFN0cmVhbUhhbmRsZUltcGwgOiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIAog
ICAgIGJvb2wgcmVhZERhdGEoQ1VSTCopOwogICAgIGJvb2wgc2VuZERhdGEoQ1VSTCopOwotICAg
IGJvb2wgd2FpdEZvckF2YWlsYWJsZURhdGEoQ1VSTCosIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgc2VsZWN0VGltZW91dCk7CisgICAgYm9vbCB3YWl0Rm9yQXZhaWxhYmxlRGF0YShDVVJMKiwg
U2Vjb25kcyBzZWxlY3RUaW1lb3V0KTsKIAogICAgIHZvaWQgc3RhcnRUaHJlYWQoKTsKICAgICB2
b2lkIHN0b3BUaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCmlu
ZGV4IDFkZGRhOGNmOGU0NDQ4ZTAyZDk3N2RlMTQ5NzNhZjI4MDVjOTE4OTUuLjZmY2JmODM3OGNh
Mzc1Y2Y5MjFhZGY5YWE2NGFjZTU1YWQyYzZkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDdXJsLmNwcApAQCAtMTY0LDE5ICsxNjQsMTkgQEAgYm9vbCBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjpzZW5kRGF0YShDVVJMKiBjdXJsSGFuZGxlKQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OndhaXRGb3JBdmFpbGFibGVEYXRhKENVUkwq
IGN1cmxIYW5kbGUsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgc2VsZWN0VGltZW91dCkKK2Jv
b2wgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6d2FpdEZvckF2YWlsYWJsZURhdGEoQ1VSTCogY3Vy
bEhhbmRsZSwgU2Vjb25kcyBzZWxlY3RUaW1lb3V0KQogewogICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyB1c2VjID0gc3RkOjpjaHJv
bm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcz4oc2VsZWN0VGltZW91
dCk7CisgICAgaW50NjRfdCB1c2VjID0gc2VsZWN0VGltZW91dC5taWNyb3NlY29uZHNBczxpbnQ2
NF90PigpOwogCiAgICAgc3RydWN0IHRpbWV2YWwgdGltZW91dDsKLSAgICBpZiAodXNlYyA8PSBz
dGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKDApKSB7CisgICAgaWYgKHVzZWMgPD0gMCkgewogICAg
ICAgICB0aW1lb3V0LnR2X3NlYyA9IDA7CiAgICAgICAgIHRpbWVvdXQudHZfdXNlYyA9IDA7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgdGltZW91dC50dl9zZWMgPSB1c2VjLmNvdW50KCkgLyAxMDAw
MDAwOwotICAgICAgICB0aW1lb3V0LnR2X3VzZWMgPSB1c2VjLmNvdW50KCkgJSAxMDAwMDAwOwor
ICAgICAgICB0aW1lb3V0LnR2X3NlYyA9IHVzZWMgLyAxMDAwMDAwOworICAgICAgICB0aW1lb3V0
LnR2X3VzZWMgPSB1c2VjICUgMTAwMDAwMDsKICAgICB9CiAKICAgICBsb25nIHNvY2tldDsKQEAg
LTIzMyw3ICsyMzMsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFk
KCkKICAgICAgICAgICAgIHNlbmREYXRhKGN1cmxIYW5kbGUpOwogCiAgICAgICAgICAgICAvLyBX
YWl0IHVudGlsIHNvY2tldCBoYXMgYXZhaWxhYmxlIGRhdGEKLSAgICAgICAgICAgIGlmICh3YWl0
Rm9yQXZhaWxhYmxlRGF0YShjdXJsSGFuZGxlLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIw
KSkpCisgICAgICAgICAgICBpZiAod2FpdEZvckF2YWlsYWJsZURhdGEoY3VybEhhbmRsZSwgMjBf
bXMpKQogICAgICAgICAgICAgICAgIHJlYWREYXRhKGN1cmxIYW5kbGUpOwogICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAppbmRleCBmZDdiYTc4YjYzNzk4NDc4MzBlZGNkZTllZGQ0NzM5YjQ3ZmQ5ODYxLi5jZWZj
ZjY2YmE0OWFiYWE5ZTE0NjQwZWFlMDcwOGZjYjRlYjBmMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0zNDgsNyAr
MzQ4LDcgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1
dG8gc3RhcnRUaW1lID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CisgICAgYXV0
byBzdGFydFRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgYXV0byBwcmlvcml0eSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihyZXF1ZXN0LnByaW9yaXR5KCkpOwogCiAgICAgbV9zdG9yYWdlLT5y
ZXRyaWV2ZShzdG9yYWdlS2V5LCBwcmlvcml0eSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgcmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc3RhcnRUaW1lLCBzdG9yYWdlS2V5LCBmcmFtZUlEXShhdXRvIHJlY29yZCkg
ewpAQCAtMzc4LDggKzM3OCw4IEBAIHZvaWQgQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFsRnJhbWVJCiAgICAgICAgIH07
CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gZWxhcHNlZE1TID0gc3RhdGljX2Nh
c3Q8aW50NjRfdD4oc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydFRpbWUpLmNv
dW50KCkpOwotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSByZXRy
aWV2ZSBjb21wbGV0ZSB1c2VEZWNpc2lvbj0lZCBwcmlvcml0eT0lZCB0aW1lPSUiIFBSSWk2NCAi
bXMiLCBzdGF0aWNfY2FzdDxpbnQ+KHVzZURlY2lzaW9uKSwgc3RhdGljX2Nhc3Q8aW50PihyZXF1
ZXN0LnByaW9yaXR5KCkpLCBlbGFwc2VkTVMpOworICAgICAgICBhdXRvIGVsYXBzZWQgPSBXYWxs
VGltZTo6bm93KCkgLSBzdGFydFRpbWU7CisgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0
d29ya1Byb2Nlc3MpIHJldHJpZXZlIGNvbXBsZXRlIHVzZURlY2lzaW9uPSVkIHByaW9yaXR5PSVk
IHRpbWU9JSIgUFJJaTY0ICJtcyIsIHN0YXRpY19jYXN0PGludD4odXNlRGVjaXNpb24pLCBzdGF0
aWNfY2FzdDxpbnQ+KHJlcXVlc3QucHJpb3JpdHkoKSksIGVsYXBzZWQubWlsbGlzZWNvbmRzQXM8
aW50NjRfdD4oKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oc3RhcnRUaW1lKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKaW5kZXggYjRmNjI2MmRjNDgwMjQ3ZjM3MWZj
YjVhMDIwN2U1MTFmMjg2M2UyNy4uZGFkOGMzYzVmZmI3NTlmOWU3NGQ1M2I3MDUyMWU2OThiMzJl
NjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQg
U3RhdGlzdGljczo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byBzdGFydFRpbWUgPSBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IFdhbGxU
aW1lOjpub3coKTsKIAogICAgIHNlcmlhbEJhY2tncm91bmRJT1F1ZXVlKCkuZGlzcGF0Y2goW3Ro
aXMsIGRhdGFiYXNlUGF0aCA9IGRhdGFiYXNlUGF0aC5pc29sYXRlZENvcHkoKSwgbmV0d29ya0Nh
Y2hlUGF0aCA9IG1fY2FjaGUucmVjb3Jkc1BhdGgoKSwgc3RhcnRUaW1lXSB7CiAgICAgICAgIFdl
YkNvcmU6OlNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9u
Q291bnRlcjsKQEAgLTEyMSwyMCArMTIxLDIwIEBAIHZvaWQgU3RhdGlzdGljczo6aW5pdGlhbGl6
ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKICAgICAgICAgbV9hcHByb3hpbWF0ZUVudHJ5
Q291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogCiAjaWYgIUxPR19ESVNBQkxFRAot
ICAgICAgICBhdXRvIGVsYXBzZWRNUyA9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnRUaW1lKS5jb3VudCgpKTsKKyAgICAgICAgYXV0byBl
bGFwc2VkID0gV2FsbFRpbWU6Om5vdygpIC0gc3RhcnRUaW1lOwogI2Vsc2UKICAgICAgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0VGltZSk7CiAjZW5kaWYKLSAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwg
IihOZXR3b3JrUHJvY2VzcykgTmV0d29yayBjYWNoZSBzdGF0aXN0aWNzIGRhdGFiYXNlIGxvYWQg
Y29tcGxldGUsIGVudHJpZXM9JWx1IHRpbWU9JSIgUFJJaTY0ICJtcyIsIHN0YXRpY19jYXN0PHNp
emVfdD4obV9hcHByb3hpbWF0ZUVudHJ5Q291bnQpLCBlbGFwc2VkTVMpOworICAgICAgICBMT0co
TmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBOZXR3b3JrIGNhY2hlIHN0YXRpc3RpY3Mg
ZGF0YWJhc2UgbG9hZCBjb21wbGV0ZSwgZW50cmllcz0lbHUgdGltZT0lIiBQUklpNjQgIm1zIiwg
c3RhdGljX2Nhc3Q8c2l6ZV90PihtX2FwcHJveGltYXRlRW50cnlDb3VudCksIGVsYXBzZWQubWls
bGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiAKICAgICAgICAgaWYgKCFtX2FwcHJveGltYXRlRW50
cnlDb3VudCkgewogICAgICAgICAgICAgYm9vdHN0cmFwRnJvbU5ldHdvcmtDYWNoZShuZXR3b3Jr
Q2FjaGVQYXRoKTsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAgICBlbGFwc2VkTVMgPSBz
dGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0
VGltZSkuY291bnQoKSk7CisgICAgICAgICAgICBlbGFwc2VkID0gV2FsbFRpbWU6Om5vdygpIC0g
c3RhcnRUaW1lOwogI2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShzdGFydFRpbWUpOwog
I2VuZGlmCi0gICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBO
ZXR3b3JrIGNhY2hlIHN0YXRpc3RpY3MgZGF0YWJhc2UgYm9vdHN0cmFwcGluZyBjb21wbGV0ZSwg
ZW50cmllcz0lbHUgdGltZT0lIiBQUklpNjQgIm1zIiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2Fw
cHJveGltYXRlRW50cnlDb3VudCksIGVsYXBzZWRNUyk7CisgICAgICAgICAgICBMT0coTmV0d29y
a0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBOZXR3b3JrIGNhY2hlIHN0YXRpc3RpY3MgZGF0YWJh
c2UgYm9vdHN0cmFwcGluZyBjb21wbGV0ZSwgZW50cmllcz0lbHUgdGltZT0lIiBQUklpNjQgIm1z
Iiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2FwcHJveGltYXRlRW50cnlDb3VudCksIGVsYXBzZWQu
bWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiAgICAgICAgIH0KICAgICB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuY3BwCmluZGV4IDdiNWUzMDI1MGFkYTY3YjlmMmJlYTBlNDRhMjY0MDMzZDFjM2M2YWQuLmU4
ZGIxNWM5ZDNmOTdiYmNlZmZjMDg5NzVmMjYwMjMyNzM3NDc2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApA
QCAtMjM1LDE3ICsyMzUsMTYgQEAgU3RyaW5nIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNo
b3RSZW1vdmFsVHJhY2tlcjo6ZXZlbnRzRGVzY3JpcHRpb24oRXZlbnRzIGUKIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpsb2coY29uc3QgU3RyaW5n
JiBsb2cpIGNvbnN0CiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGF1dG8gbm93ID0gc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgZG91YmxlIG1pbGxpc2Vjb25kc1NpbmNl
U3RhcnQgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6ZHVyYXRpb248
ZG91YmxlLCBzdGQ6Om1pbGxpPj4obm93IC0gbV9zdGFydFRpbWUpLmNvdW50KCk7CisgICAgYXV0
byBzaW5jZVN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3N0YXJ0VGltZTsKICNlbmRp
ZgotICAgIExPRyhWaWV3R2VzdHVyZXMsICJTd2lwZSBTbmFwc2hvdCBSZW1vdmFsICglMC4yZiBt
cykgLSAlcyIsIG1pbGxpc2Vjb25kc1NpbmNlU3RhcnQsIGxvZy51dGY4KCkuZGF0YSgpKTsKKyAg
ICBMT0coVmlld0dlc3R1cmVzLCAiU3dpcGUgU25hcHNob3QgUmVtb3ZhbCAoJTAuMmYgbXMpIC0g
JXMiLCBzaW5jZVN0YXJ0Lm1pbGxpc2Vjb25kcygpLCBsb2cudXRmOCgpLmRhdGEoKSk7CiB9CiAK
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpzdGFy
dChFdmVudHMgZGVzaXJlZEV2ZW50cywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgcmVtb3ZhbENh
bGxiYWNrKQogewogICAgIG1fb3V0c3RhbmRpbmdFdmVudHMgPSBkZXNpcmVkRXZlbnRzOwogICAg
IG1fcmVtb3ZhbENhbGxiYWNrID0gV1RGTW92ZShyZW1vdmFsQ2FsbGJhY2spOwotICAgIG1fc3Rh
cnRUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgbV9zdGFydFRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGxvZygic3RhcnQiKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aAppbmRleCBhYTY5OTgyY2EyODRhYjQ1YTNlNDY2YzdjMDM4ODZkMzdkYWNhNmMyLi4wNGI1YTQ2
ZDBkZmQ4NmViYWRiMmUyMDk5MTFhNWJhYjIwNTUxY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMzAsOCAr
MzAsOCBAQAogI2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaW5j
bHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9N
b25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTE3OSw3ICsxNzksNyBA
QCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKIAogICAgICAgICBFdmVudHMgbV9vdXRzdGFuZGluZ0V2ZW50cyB7IDAgfTsKICAgICAg
ICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fcmVtb3ZhbENhbGxiYWNrOwotICAgICAgICBzdGQ6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fc3RhcnRUaW1lOworICAgICAgICBN
b25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwogCiAgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI+IG1fd2F0Y2hkb2dUaW1lcjsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0MWM1Y2VlMmVkM2U1OGMw
NGZkNWU5NDM5OTMwY2FjYTdlYjIxYjllLi4wZGZhMGExZDEyZWM3YWI2MzY3MmIyMGE3YmNhOGJm
MDRmOWMyOWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNTEzNSw3ICs1MTM1LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21taXRMb2FkKFdl
YkZyYW1lKiBmcmFtZSkKICNlbmRpZgogCiAjaWYgVVNFKE9TX1NUQVRFKQotICAgIG1fbG9hZENv
bW1pdFRpbWUgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICBtX2xvYWRD
b21taXRUaW1lID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDA0ZGY2ZGU0N2RlZjgyZjY1ZmVjNDgwOGE1YTA4NGIy
NDIwYTQyYjguLmEzOTg5NTNkNzY5NTg3MWE1Y2I5YWY1MmQ3MTc1Yzg2YjlmM2EzN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMDIsNyArMTAw
Miw3IEBAIGNsYXNzIFdlYlBhZ2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVQYWdlPiwgcHVibGljIElQCiAgICAgdm9pZCBpbnNlcnROZXdsaW5lSW5R
dW90ZWRDb250ZW50KCk7CiAKICNpZiBVU0UoT1NfU1RBVEUpCi0gICAgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBsb2FkQ29tbWl0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZENvbW1pdFRpbWU7IH0KKyAgICBXYWxsVGltZSBsb2FkQ29tbWl0VGltZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZENvbW1pdFRpbWU7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEdBTUVQQUQp
CkBAIC0xNjU1LDcgKzE2NTUsNyBAQCBjbGFzcyBXZWJQYWdlIDogcHVibGljIEFQSTo6T2JqZWN0
SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZT4sIHB1YmxpYyBJUAogI2VuZGlmCiAK
ICNpZiBVU0UoT1NfU1RBVEUpCi0gICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtX2xvYWRDb21taXRUaW1lOworICAgIFdhbGxUaW1lIG1fbG9hZENvbW1pdFRpbWU7CiAj
ZW5kaWYKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gbV91c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbjo6TFRSIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQppbmRleCBiZGRjMTQwMTRmNDkxNjMwNDliNTRhMDYzYWQyM2VhYWE3
MDMwZTNiLi43YTBlMjdmNDU4NDUzMjUyZjJkZThiYjk5MDE5YWYxZWIzYTk0N2I3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAg
LTI0NSw3ICsyNDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVy
KCkKICAgICAgICAgICAgICAgICBpZiAocGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSkKICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICBOU0RhdGUqIGRh
dGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRvX3RpbWVfdChwYWdlLT5sb2FkQ29tbWl0VGltZSgpKV07CisgICAgICAg
ICAgICAgICAgTlNEYXRlKiBkYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDpwYWdlLT5sb2FkQ29tbWl0VGltZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygp
XTsKICAgICAgICAgICAgICAgICBbcGFnZUxvYWRUaW1lcyBhZGRPYmplY3Q6ZGF0ZV07CiAgICAg
ICAgICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>