<?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>112877</bug_id>
          
          <creation_ts>2013-03-20 22:42:04 -0700</creation_ts>
          <short_desc>Refactoring: Reorganize datetime field element parameters</short_desc>
          <delta_ts>2013-03-21 04:57:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kunihiko Sakamoto">ksakamoto</reporter>
          <assigned_to name="Kunihiko Sakamoto">ksakamoto</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>860035</commentid>
    <comment_count>0</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-20 22:42:04 -0700</bug_when>
    <thetext>Refactor parameters for datetime field element constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860037</commentid>
    <comment_count>1</comment_count>
      <attachid>194185</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-20 22:46:59 -0700</bug_when>
    <thetext>Created attachment 194185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860144</commentid>
    <comment_count>2</comment_count>
      <attachid>194185</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-03-21 01:57:24 -0700</bug_when>
    <thetext>Comment on attachment 194185
Patch

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

Almost ok

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:71
&gt; +    DateTimeNumericFieldElement::Step createStep(const Decimal&amp; msPerFieldUnit, const Decimal&amp; msPerFieldSize) const;

Because almost all of real arguments for createStep are WTF::msPerFoo, we had better make the argument types double, and convert them to Decimal in createStep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860160</commentid>
    <comment_count>3</comment_count>
      <attachid>194207</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-21 02:28:36 -0700</bug_when>
    <thetext>Created attachment 194207
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860161</commentid>
    <comment_count>4</comment_count>
      <attachid>194185</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-21 02:29:29 -0700</bug_when>
    <thetext>Comment on attachment 194185
Patch

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

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:71
&gt;&gt; +    DateTimeNumericFieldElement::Step createStep(const Decimal&amp; msPerFieldUnit, const Decimal&amp; msPerFieldSize) const;
&gt; 
&gt; Because almost all of real arguments for createStep are WTF::msPerFoo, we had better make the argument types double, and convert them to Decimal in createStep.

Thanks for the suggestion. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860222</commentid>
    <comment_count>5</comment_count>
      <attachid>194207</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 04:57:14 -0700</bug_when>
    <thetext>Comment on attachment 194207
Patch 2

Clearing flags on attachment: 194207

Committed r146453: &lt;http://trac.webkit.org/changeset/146453&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860223</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 04:57:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194185</attachid>
            <date>2013-03-20 22:46:59 -0700</date>
            <delta_ts>2013-03-21 02:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112877-20130321144248.patch</filename>
            <type>text/plain</type>
            <size>53575</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJmMTk5OGM4MDI2NWU1
MzdhNmU0MDY0ZTExODQ4MGM2ODk3MDcyMC4uYjk4OGI1YTc4ODQ2Yjc2ZmViNWE4YTNlYmY1MzM4
ZDMyNDg0NTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTIwICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0
b3Jpbmc6IFJlb3JnYW5pemUgZGF0ZXRpbWUgZmllbGQgZWxlbWVudCBwYXJhbWV0ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhpcyBw
YXRjaCwgdGhlIGZpZWxkIGVsZW1lbnQgY29uc3RydWN0b3JzIHRvb2sgbWluaW11bS9tYXhpbXVt
CisgICAgICAgIGFzIGEgcGFpciBvZiBpbnRlZ2VycywgYW5kIHN0ZXAvc3RlcGJhc2UgYXMgYSBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMuCisgICAgICAgIFRoaXMgcGF0
Y2ggbWFrZXMgdGhlc2UgY29uc3RydWN0b3JzIHRvIHRha2UgYSBSYW5nZSAoZm9yIG1pbmltdW0v
bWF4aW11bSkKKyAgICAgICAgYW5kIGEgU3RlcCAoZm9yIHN0ZXAvc3RlcGJhc2UpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gSnVzdCByZWZhY3RvcmluZy4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoRGF0ZVRpbWVFZGl0QnVpbGRl
cik6IFJlcGxhY2VkIG1pbi9tYXggZGF0YSBtZW1iZXJzIGJ5IFJhbmdlcy4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRBTVBNRmllbGREaXNhYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGREYXlPZk1vbnRoRmll
bGREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91
bGRIb3VyRmllbGREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWls
ZGVyOjpzaG91bGRNaWxsaXNlY29uZEZpZWxkRGlzYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0QnVpbGRlcjo6c2hvdWxkTWludXRlRmllbGREaXNhYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRTZWNvbmRGaWVsZERpc2FibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OmNyZWF0ZVN0ZXApOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlOjpEYXRlVGlt
ZUhvdXJGaWVsZEVsZW1lbnRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjEx
RmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50OjpEYXRlVGlt
ZUhvdXIyM0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXIyM0Zp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjI0Rmll
bGRFbGVtZW50OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVs
ZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50OjpEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZVNlY29uZEZpZWxk
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVXZWVrRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lV2Vla0Zp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxk
RWxlbWVudHMuaDoKKyAgICAgICAgKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KToKKyAgICAgICAg
KERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UpOgorICAgICAgICAoRGF0ZVRpbWVIb3VyMTFG
aWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQpOgorICAg
ICAgICAoRGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVIb3Vy
MjRGaWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lU2Vjb25kRmllbGRFbGVt
ZW50KToKKyAgICAgICAgKERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50Ojpyb3VuZERvd24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50Ojpyb3VuZFVwKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudDo6U3RlcDo6U3RlcCk6IFJlbmFtZWQgZnJvbSBQYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6UmFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5n
ZTo6aXNTaW5nbGV0b24pOiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlIGlzIGEgc2luZ2xldG9u
IHJhbmdlIChpLmUuIGNvbnRhaW5zIGV4YWN0bHkgb25lIHZhbHVlKS4KKyAgICAgICAgKFJhbmdl
KTogTm93IGl0J3MgcGFyYW1ldGVyIHR5cGUsIGhlbmNlIHB1YmxpYy4KKyAgICAgICAgKERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IFJlcGxhY2VkIHR3byBpbnQgbWVtYmVycyAobV9zdGVw
IGFuZCBtX3N0ZXBCYXNlKSBieSBhIFJhbmdlLgorCiAyMDEzLTAzLTIwICBBbmRyZXkgTHVzaG5p
a292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aXggU291cmNlRnJhbWUuanMgY29tcGlsYXRpb24gd2FybmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCAyZmUyMDAzN2I4
YTljMWRjZjg0NjEwOGYwYTcwZTQyMjFkOTUwYTgyLi5iOGM5NDY5NWFiMWVjYzMwYWI1ODVkMzEw
ZTllOGE4MWVhMDIzMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgc2hvdWxkU2Vjb25kRmllbGREaXNhYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkWWVh
ckZpZWxkRGlzYWJsZWQoKSBjb25zdDsKICAgICBpbmxpbmUgY29uc3QgU3RlcFJhbmdlJiBzdGVw
UmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc3RlcFJhbmdlOyB9Ci0gICAgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzIGNyZWF0ZU51bWVyaWNGaWVsZFBh
cmFtZXRlcnMoY29uc3QgRGVjaW1hbCYgbXNQZXJGaWVsZFVuaXQsIGNvbnN0IERlY2ltYWwmIG1z
UGVyRmllbGRTaXplKSBjb25zdDsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlN0
ZXAgY3JlYXRlU3RlcChjb25zdCBEZWNpbWFsJiBtc1BlckZpZWxkVW5pdCwgY29uc3QgRGVjaW1h
bCYgbXNQZXJGaWVsZFNpemUpIGNvbnN0OwogCiAgICAgLy8gRGF0ZVRpbWVGb3JtYXQ6OlRva2Vu
SGFuZGxlciBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZSwgaW50KSBPVkVSUklERSBGSU5BTDsKQEAgLTc3LDMyICs3NywyMiBA
QCBwcml2YXRlOgogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRpdEVsZW1lbnQ7CiAgICAg
Y29uc3QgRGF0ZUNvbXBvbmVudHMgbV9kYXRlVmFsdWU7CiAgICAgY29uc3QgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbV9wYXJhbWV0ZXJzOwotICAgIGludCBtX21pbkRh
eTsKLSAgICBpbnQgbV9tYXhEYXk7Ci0gICAgaW50IG1fbWluSG91cjIzOwotICAgIGludCBtX21h
eEhvdXIyMzsKLSAgICBpbnQgbV9taW5NaW51dGU7Ci0gICAgaW50IG1fbWF4TWludXRlOwotICAg
IGludCBtX21pblNlY29uZDsKLSAgICBpbnQgbV9tYXhTZWNvbmQ7Ci0gICAgaW50IG1fbWluTWls
bGlzZWNvbmQ7Ci0gICAgaW50IG1fbWF4TWlsbGlzZWNvbmQ7CisgICAgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpSYW5nZSBtX2RheVJhbmdlOworICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UmFuZ2UgbV9ob3VyMjNSYW5nZTsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OlJhbmdlIG1fbWludXRlUmFuZ2U7CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50OjpSYW5nZSBtX3NlY29uZFJhbmdlOworICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6UmFuZ2UgbV9taWxsaXNlY29uZFJhbmdlOwogfTsKIAogRGF0ZVRpbWVFZGl0QnVpbGRlcjo6
RGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50JiBlbGVtbnQsIGNvbnN0IERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMsIGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCiAgICAgOiBtX2VkaXRFbGVtZW50KGVsZW1u
dCkKICAgICAsIG1fZGF0ZVZhbHVlKGRhdGVWYWx1ZSkKICAgICAsIG1fcGFyYW1ldGVycyhsYXlv
dXRQYXJhbWV0ZXJzKQotICAgICwgbV9taW5EYXkoMSkKLSAgICAsIG1fbWF4RGF5KDMxKQotICAg
ICwgbV9taW5Ib3VyMjMoMCkKLSAgICAsIG1fbWF4SG91cjIzKDIzKQotICAgICwgbV9taW5NaW51
dGUoMCkKLSAgICAsIG1fbWF4TWludXRlKDU5KQotICAgICwgbV9taW5TZWNvbmQoMCkKLSAgICAs
IG1fbWF4U2Vjb25kKDU5KQotICAgICwgbV9taW5NaWxsaXNlY29uZCgwKQotICAgICwgbV9tYXhN
aWxsaXNlY29uZCg5OTkpCisgICAgLCBtX2RheVJhbmdlKDEsIDMxKQorICAgICwgbV9ob3VyMjNS
YW5nZSgwLCAyMykKKyAgICAsIG1fbWludXRlUmFuZ2UoMCwgNTkpCisgICAgLCBtX3NlY29uZFJh
bmdlKDAsIDU5KQorICAgICwgbV9taWxsaXNlY29uZFJhbmdlKDAsIDk5OSkKIHsKICAgICBpZiAo
bV9kYXRlVmFsdWUudHlwZSgpID09IERhdGVDb21wb25lbnRzOjpEYXRlCiAgICAgICAgIHx8IG1f
ZGF0ZVZhbHVlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6RGF0ZVRpbWVMb2NhbApAQCAtMTEy
LDMxICsxMDIsMzEgQEAgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcihE
YXRlVGltZUVkaXRFbGVtZW50JiBlbGVtbnQsIGNvbnN0IERhdGUKICAgICAgICAgICAgICYmIG1f
cGFyYW1ldGVycy5taW5pbXVtLmZ1bGxZZWFyKCkgPT0gbV9wYXJhbWV0ZXJzLm1heGltdW0uZnVs
bFllYXIoKQogICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0ubW9udGgoKSA9PSBt
X3BhcmFtZXRlcnMubWF4aW11bS5tb250aCgpCiAgICAgICAgICAgICAmJiBtX3BhcmFtZXRlcnMu
bWluaW11bS5tb250aERheSgpIDw9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1vbnRoRGF5KCkpIHsK
LSAgICAgICAgICAgIG1fbWluRGF5ID0gbV9wYXJhbWV0ZXJzLm1pbmltdW0ubW9udGhEYXkoKTsK
LSAgICAgICAgICAgIG1fbWF4RGF5ID0gbV9wYXJhbWV0ZXJzLm1heGltdW0ubW9udGhEYXkoKTsK
KyAgICAgICAgICAgIG1fZGF5UmFuZ2UubWluaW11bSA9IG1fcGFyYW1ldGVycy5taW5pbXVtLm1v
bnRoRGF5KCk7CisgICAgICAgICAgICBtX2RheVJhbmdlLm1heGltdW0gPSBtX3BhcmFtZXRlcnMu
bWF4aW11bS5tb250aERheSgpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1fZGF0ZVZh
bHVlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6VGltZSB8fCBtX21pbkRheSA9PSBtX21heERh
eSkgeworICAgIGlmIChtX2RhdGVWYWx1ZS50eXBlKCkgPT0gRGF0ZUNvbXBvbmVudHM6OlRpbWUg
fHwgbV9kYXlSYW5nZS5pc1NpbmdsZXRvbigpKSB7CiAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMu
bWluaW11bS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkludmFsaWQKICAgICAgICAgICAgICYm
IG1fcGFyYW1ldGVycy5tYXhpbXVtLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6SW52YWxpZAog
ICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0uaG91cigpIDw9IG1fcGFyYW1ldGVy
cy5tYXhpbXVtLmhvdXIoKSkgewotICAgICAgICAgICAgbV9taW5Ib3VyMjMgPSBtX3BhcmFtZXRl
cnMubWluaW11bS5ob3VyKCk7Ci0gICAgICAgICAgICBtX21heEhvdXIyMyA9IG1fcGFyYW1ldGVy
cy5tYXhpbXVtLmhvdXIoKTsKKyAgICAgICAgICAgIG1faG91cjIzUmFuZ2UubWluaW11bSA9IG1f
cGFyYW1ldGVycy5taW5pbXVtLmhvdXIoKTsKKyAgICAgICAgICAgIG1faG91cjIzUmFuZ2UubWF4
aW11bSA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLmhvdXIoKTsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmIChtX21pbkhvdXIyMyA9PSBtX21heEhvdXIyMyAmJiBtX3BhcmFtZXRlcnMubWluaW11
bS5taW51dGUoKSA8PSBtX3BhcmFtZXRlcnMubWF4aW11bS5taW51dGUoKSkgewotICAgICAgICBt
X21pbk1pbnV0ZSA9IG1fcGFyYW1ldGVycy5taW5pbXVtLm1pbnV0ZSgpOwotICAgICAgICBtX21h
eE1pbnV0ZSA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1pbnV0ZSgpOworICAgIGlmIChtX2hvdXIy
M1JhbmdlLmlzU2luZ2xldG9uKCkgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0ubWludXRlKCkgPD0g
bV9wYXJhbWV0ZXJzLm1heGltdW0ubWludXRlKCkpIHsKKyAgICAgICAgbV9taW51dGVSYW5nZS5t
aW5pbXVtID0gbV9wYXJhbWV0ZXJzLm1pbmltdW0ubWludXRlKCk7CisgICAgICAgIG1fbWludXRl
UmFuZ2UubWF4aW11bSA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1pbnV0ZSgpOwogICAgIH0KLSAg
ICBpZiAobV9taW5NaW51dGUgPT0gbV9tYXhNaW51dGUgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0u
c2Vjb25kKCkgPD0gbV9wYXJhbWV0ZXJzLm1heGltdW0uc2Vjb25kKCkpIHsKLSAgICAgICAgbV9t
aW5TZWNvbmQgPSBtX3BhcmFtZXRlcnMubWluaW11bS5zZWNvbmQoKTsKLSAgICAgICAgbV9tYXhT
ZWNvbmQgPSBtX3BhcmFtZXRlcnMubWF4aW11bS5zZWNvbmQoKTsKKyAgICBpZiAobV9taW51dGVS
YW5nZS5pc1NpbmdsZXRvbigpICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLnNlY29uZCgpIDw9IG1f
cGFyYW1ldGVycy5tYXhpbXVtLnNlY29uZCgpKSB7CisgICAgICAgIG1fc2Vjb25kUmFuZ2UubWlu
aW11bSA9IG1fcGFyYW1ldGVycy5taW5pbXVtLnNlY29uZCgpOworICAgICAgICBtX3NlY29uZFJh
bmdlLm1heGltdW0gPSBtX3BhcmFtZXRlcnMubWF4aW11bS5zZWNvbmQoKTsKICAgICB9Ci0gICAg
aWYgKG1fbWluU2Vjb25kID09IG1fbWF4U2Vjb25kICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLm1p
bGxpc2Vjb25kKCkgPD0gbV9wYXJhbWV0ZXJzLm1heGltdW0ubWlsbGlzZWNvbmQoKSkgewotICAg
ICAgICBtX21pbk1pbGxpc2Vjb25kID0gbV9wYXJhbWV0ZXJzLm1pbmltdW0ubWlsbGlzZWNvbmQo
KTsKLSAgICAgICAgbV9tYXhNaWxsaXNlY29uZCA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1pbGxp
c2Vjb25kKCk7CisgICAgaWYgKG1fc2Vjb25kUmFuZ2UuaXNTaW5nbGV0b24oKSAmJiBtX3BhcmFt
ZXRlcnMubWluaW11bS5taWxsaXNlY29uZCgpIDw9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1pbGxp
c2Vjb25kKCkpIHsKKyAgICAgICAgbV9taWxsaXNlY29uZFJhbmdlLm1pbmltdW0gPSBtX3BhcmFt
ZXRlcnMubWluaW11bS5taWxsaXNlY29uZCgpOworICAgICAgICBtX21pbGxpc2Vjb25kUmFuZ2Uu
bWF4aW11bSA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1pbGxpc2Vjb25kKCk7CiAgICAgfQogfQog
CkBAIC0xNjIsNyArMTUyLDcgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxk
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY28KIAogICAgIHN3aXRj
aCAoZmllbGRUeXBlKSB7CiAgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZN
b250aDogewotICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0
ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9w
YXJhbWV0ZXJzLnBsYWNlaG9sZGVyRm9yRGF5LCBtX21pbkRheSwgbV9tYXhEYXkpOworICAgICAg
ICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9wYXJhbWV0ZXJzLnBsYWNl
aG9sZGVyRm9yRGF5LCBtX2RheVJhbmdlKTsKICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVs
ZChmaWVsZCk7CiAgICAgICAgIGlmIChzaG91bGREYXlPZk1vbnRoRmllbGREaXNhYmxlZCgpKSB7
CiAgICAgICAgICAgICBmaWVsZC0+c2V0VmFsdWVBc0RhdGUobV9kYXRlVmFsdWUpOwpAQCAtMTcy
LDggKzE2Miw4IEBAIHZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvCiAgICAgfQogCiAgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExOiB7Ci0gICAgICAgIERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gY3JlYXRlTnVtZXJpY0ZpZWxk
UGFyYW1ldGVycyhzdGF0aWNfY2FzdDxpbnQ+KG1zUGVySG91ciksIHN0YXRpY19jYXN0PGludD4o
bXNQZXJIb3VyICogMTIpKTsKLSAgICAgICAgUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBm
aWVsZCA9IERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRp
dEVsZW1lbnQsIG1fbWluSG91cjIzLCBtX21heEhvdXIyMywgcGFyYW1ldGVycyk7CisgICAgICAg
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCBzdGVwID0gY3JlYXRlU3RlcChzdGF0
aWNfY2FzdDxpbnQ+KG1zUGVySG91ciksIHN0YXRpY19jYXN0PGludD4obXNQZXJIb3VyICogMTIp
KTsKKyAgICAgICAgUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVUaW1l
SG91cjExRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIG1faG91
cjIzUmFuZ2UsIHN0ZXApOwogICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsK
ICAgICAgICAgaWYgKHNob3VsZEhvdXJGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAgIGZp
ZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CkBAIC0xODMsOCArMTczLDggQEAgdm9p
ZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVIb3VyMTI6IHsKLSAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJzKHN0YXRp
Y19jYXN0PGludD4obXNQZXJIb3VyKSwgc3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIgKiAxMikp
OwotICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVI
b3VyMTJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9taW5I
b3VyMjMsIG1fbWF4SG91cjIzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKHN0YXRpY19jYXN0PGludD4obXNQ
ZXJIb3VyKSwgc3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIgKiAxMikpOworICAgICAgICBSZWZQ
dHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9ob3VyMjNSYW5nZSwgc3RlcCk7
CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQpOwogICAgICAgICBpZiAoc2hv
dWxkSG91ckZpZWxkRGlzYWJsZWQoKSkgewogICAgICAgICAgICAgZmllbGQtPnNldFZhbHVlQXNE
YXRlKG1fZGF0ZVZhbHVlKTsKQEAgLTE5NCw4ICsxODQsOCBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1
aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGlu
dCBjbwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMzog
ewotICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMgcGFyYW1l
dGVycyA9IGNyZWF0ZU51bWVyaWNGaWVsZFBhcmFtZXRlcnMoc3RhdGljX2Nhc3Q8aW50Pihtc1Bl
ckhvdXIpLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyRGF5KSk7Ci0gICAgICAgIFJlZlB0cjxEYXRl
VGltZUZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX21pbkhvdXIyMywgbV9tYXhIb3VyMjMsIHBh
cmFtZXRlcnMpOworICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlN0ZXAgc3Rl
cCA9IGNyZWF0ZVN0ZXAoc3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIpLCBzdGF0aWNfY2FzdDxp
bnQ+KG1zUGVyRGF5KSk7CisgICAgICAgIFJlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmll
bGQgPSBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRF
bGVtZW50LCBtX2hvdXIyM1JhbmdlLCBzdGVwKTsKICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRG
aWVsZChmaWVsZCk7CiAgICAgICAgIGlmIChzaG91bGRIb3VyRmllbGREaXNhYmxlZCgpKSB7CiAg
ICAgICAgICAgICBmaWVsZC0+c2V0VmFsdWVBc0RhdGUobV9kYXRlVmFsdWUpOwpAQCAtMjA1LDgg
KzE5NSw4IEBAIHZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvCiAgICAgfQogCiAgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0OiB7Ci0gICAgICAgIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gY3JlYXRlTnVtZXJpY0ZpZWxkUGFy
YW1ldGVycyhzdGF0aWNfY2FzdDxpbnQ+KG1zUGVySG91ciksIHN0YXRpY19jYXN0PGludD4obXNQ
ZXJEYXkpKTsKLSAgICAgICAgUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCA9IERh
dGVUaW1lSG91cjI0RmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQs
IG1fbWluSG91cjIzLCBtX21heEhvdXIyMywgcGFyYW1ldGVycyk7CisgICAgICAgIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCBzdGVwID0gY3JlYXRlU3RlcChzdGF0aWNfY2FzdDxp
bnQ+KG1zUGVySG91ciksIHN0YXRpY19jYXN0PGludD4obXNQZXJEYXkpKTsKKyAgICAgICAgUmVm
UHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVUaW1lSG91cjI0RmllbGRFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIG1faG91cjIzUmFuZ2UsIHN0ZXAp
OwogICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKICAgICAgICAgaWYgKHNo
b3VsZEhvdXJGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAgIGZpZWxkLT5zZXRWYWx1ZUFz
RGF0ZShtX2RhdGVWYWx1ZSk7CkBAIC0yMTYsOCArMjA2LDggQEAgdm9pZCBEYXRlVGltZUVkaXRC
dWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBp
bnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6
IHsKLSAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnMgPSBjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJzKHN0YXRpY19jYXN0PGludD4obXNQ
ZXJNaW51dGUpLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVySG91cikpOwotICAgICAgICBSZWZQdHI8
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVUaW1lTWludXRlRmllbGRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIG1fbWluTWludXRlLCBtX21h
eE1pbnV0ZSwgcGFyYW1ldGVycyk7CisgICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6U3RlcCBzdGVwID0gY3JlYXRlU3RlcChzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSwg
c3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIpKTsKKyAgICAgICAgUmVmUHRyPERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX21pbnV0ZVJhbmdlLCBzdGVwKTsKICAgICAg
ICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChmaWVsZCk7CiAgICAgICAgIGlmIChzaG91bGRNaW51
dGVGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAgIGZpZWxkLT5zZXRWYWx1ZUFzRGF0ZSht
X2RhdGVWYWx1ZSk7CkBAIC0yNDYsNyArMjM2LDcgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVy
Ojp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY28K
ICAgICAgICAgICAgIGZpZWxkID0gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTW9udGggPyBtX3BhcmFtZXRlcnMubG9jYWxlLm1vbnRoTGFiZWxzKCkgOiBt
X3BhcmFtZXRlcnMubG9jYWxlLnN0YW5kQWxvbmVNb250aExhYmVscygpLCBtaW5Nb250aCwgbWF4
TW9udGgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICBmaWVsZCA9IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9l
ZGl0RWxlbWVudCwgbV9wYXJhbWV0ZXJzLnBsYWNlaG9sZGVyRm9yTW9udGgsIG1pbk1vbnRoICsg
MSwgbWF4TW9udGggKyAxKTsKKyAgICAgICAgICAgIGZpZWxkID0gRGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX3BhcmFtZXRlcnMucGxh
Y2Vob2xkZXJGb3JNb250aCwgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZShtaW5N
b250aCArIDEsIG1heE1vbnRoICsgMSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChmaWVsZCk7CkBAIC0yNjgsOCArMjU4LDgg
QEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVTZWNvbmQ6IHsKLSAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJz
KHN0YXRpY19jYXN0PGludD4obXNQZXJTZWNvbmQpLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWlu
dXRlKSk7Ci0gICAgICAgIFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxl
bWVudCwgbV9taW5TZWNvbmQsIG1fbWF4U2Vjb25kLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKHN0YXRpY19j
YXN0PGludD4obXNQZXJTZWNvbmQpLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSk7Cisg
ICAgICAgIFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRp
bWVTZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9z
ZWNvbmRSYW5nZSwgc3RlcCk7CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQp
OwogICAgICAgICBpZiAoc2hvdWxkU2Vjb25kRmllbGREaXNhYmxlZCgpKSB7CiAgICAgICAgICAg
ICBmaWVsZC0+c2V0VmFsdWVBc0RhdGUobV9kYXRlVmFsdWUpOwpAQCAtMjg0LDggKzI3NCw4IEBA
IHZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvCiAgICAgfQogCiAgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZDogewotICAgICAgICBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IGNyZWF0ZU51bWVyaWNGaWVsZFBh
cmFtZXRlcnMoMSwgc3RhdGljX2Nhc3Q8aW50Pihtc1BlclNlY29uZCkpOwotICAgICAgICBSZWZQ
dHI8RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVUaW1lTWlsbGlzZWNv
bmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9taW5NaWxs
aXNlY29uZCwgbV9tYXhNaWxsaXNlY29uZCwgcGFyYW1ldGVycyk7CisgICAgICAgIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCBzdGVwID0gY3JlYXRlU3RlcCgxLCBzdGF0aWNfY2Fz
dDxpbnQ+KG1zUGVyU2Vjb25kKSk7CisgICAgICAgIFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX21pbGxpc2Vjb25kUmFuZ2UsIHN0ZXApOwogICAg
ICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKICAgICAgICAgaWYgKHNob3VsZE1p
bGxpc2Vjb25kRmllbGREaXNhYmxlZCgpKSB7CiAgICAgICAgICAgICBmaWVsZC0+c2V0VmFsdWVB
c0RhdGUobV9kYXRlVmFsdWUpOwpAQCAtMjk1LDE2ICsyODUsMTUgQEAgdm9pZCBEYXRlVGltZUVk
aXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBl
LCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVr
T2ZZZWFyOiB7Ci0gICAgICAgIGludCBtaW5XZWVrID0gRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1X
ZWVrTnVtYmVyOwotICAgICAgICBpbnQgbWF4V2VlayA9IERhdGVDb21wb25lbnRzOjptYXhpbXVt
V2Vla051bWJlcjsKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZSBy
YW5nZShEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWtOdW1iZXIsIERhdGVDb21wb25lbnRzOjpt
YXhpbXVtV2Vla051bWJlcik7CiAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMubWluaW11bS50eXBl
KCkgIT0gRGF0ZUNvbXBvbmVudHM6OkludmFsaWQKICAgICAgICAgICAgICYmIG1fcGFyYW1ldGVy
cy5tYXhpbXVtLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6SW52YWxpZAogICAgICAgICAgICAg
JiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0uZnVsbFllYXIoKSA9PSBtX3BhcmFtZXRlcnMubWF4aW11
bS5mdWxsWWVhcigpCiAgICAgICAgICAgICAmJiBtX3BhcmFtZXRlcnMubWluaW11bS53ZWVrKCkg
PD0gbV9wYXJhbWV0ZXJzLm1heGltdW0ud2VlaygpKSB7Ci0gICAgICAgICAgICBtaW5XZWVrID0g
bV9wYXJhbWV0ZXJzLm1pbmltdW0ud2VlaygpOwotICAgICAgICAgICAgbWF4V2VlayA9IG1fcGFy
YW1ldGVycy5tYXhpbXVtLndlZWsoKTsKKyAgICAgICAgICAgIHJhbmdlLm1pbmltdW0gPSBtX3Bh
cmFtZXRlcnMubWluaW11bS53ZWVrKCk7CisgICAgICAgICAgICByYW5nZS5tYXhpbXVtID0gbV9w
YXJhbWV0ZXJzLm1heGltdW0ud2VlaygpOwogICAgICAgICB9Ci0gICAgICAgIG1fZWRpdEVsZW1l
bnQuYWRkRmllbGQoRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1f
ZWRpdEVsZW1lbnQsIG1pbldlZWssIG1heFdlZWspKTsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5h
ZGRGaWVsZChEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0
RWxlbWVudCwgcmFuZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzQ2LDE4ICsz
MzUsMTggQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY28KIGJvb2wgRGF0ZVRpbWVFZGl0QnVpbGRl
cjo6c2hvdWxkQU1QTUZpZWxkRGlzYWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBzaG91bGRI
b3VyRmllbGREaXNhYmxlZCgpCi0gICAgICAgIHx8IChtX21pbkhvdXIyMyA8IDEyICYmIG1fbWF4
SG91cjIzIDwgMTIgJiYgbV9kYXRlVmFsdWUuaG91cigpIDwgMTIpCi0gICAgICAgIHx8IChtX21p
bkhvdXIyMyA+PSAxMiAmJiBtX21heEhvdXIyMyA+PSAxMiAmJiBtX2RhdGVWYWx1ZS5ob3VyKCkg
Pj0gMTIpOworICAgICAgICB8fCAobV9ob3VyMjNSYW5nZS5taW5pbXVtIDwgMTIgJiYgbV9ob3Vy
MjNSYW5nZS5tYXhpbXVtIDwgMTIgJiYgbV9kYXRlVmFsdWUuaG91cigpIDwgMTIpCisgICAgICAg
IHx8IChtX2hvdXIyM1JhbmdlLm1pbmltdW0gPj0gMTIgJiYgbV9ob3VyMjNSYW5nZS5tYXhpbXVt
ID49IDEyICYmIG1fZGF0ZVZhbHVlLmhvdXIoKSA+PSAxMik7CiB9CiAKIGJvb2wgRGF0ZVRpbWVF
ZGl0QnVpbGRlcjo6c2hvdWxkRGF5T2ZNb250aEZpZWxkRGlzYWJsZWQoKSBjb25zdAogewotICAg
IHJldHVybiBtX21pbkRheSA9PSBtX21heERheSAmJiBtX21pbkRheSA9PSBtX2RhdGVWYWx1ZS5t
b250aERheSgpICYmIG1fZGF0ZVZhbHVlLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6RGF0ZTsK
KyAgICByZXR1cm4gbV9kYXlSYW5nZS5pc1NpbmdsZXRvbigpICYmIG1fZGF5UmFuZ2UubWluaW11
bSA9PSBtX2RhdGVWYWx1ZS5tb250aERheSgpICYmIG1fZGF0ZVZhbHVlLnR5cGUoKSAhPSBEYXRl
Q29tcG9uZW50czo6RGF0ZTsKIH0KIAogYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRI
b3VyRmllbGREaXNhYmxlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbWluSG91cjIzID09IG1fbWF4
SG91cjIzICYmIG1fbWluSG91cjIzID09IG1fZGF0ZVZhbHVlLmhvdXIoKQorICAgIGlmIChtX2hv
dXIyM1JhbmdlLmlzU2luZ2xldG9uKCkgJiYgbV9ob3VyMjNSYW5nZS5taW5pbXVtID09IG1fZGF0
ZVZhbHVlLmhvdXIoKQogICAgICAgICAmJiAhKHNob3VsZE1pbnV0ZUZpZWxkRGlzYWJsZWQoKSAm
JiBzaG91bGRTZWNvbmRGaWVsZERpc2FibGVkKCkgJiYgc2hvdWxkTWlsbGlzZWNvbmRGaWVsZERp
c2FibGVkKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzc4LDcgKzM2Nyw3IEBAIGJv
b2wgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6c2hvdWxkSG91ckZpZWxkRGlzYWJsZWQoKSBjb25zdAog
CiBib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnNob3VsZE1pbGxpc2Vjb25kRmllbGREaXNhYmxl
ZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbWluTWlsbGlzZWNvbmQgPT0gbV9tYXhNaWxsaXNlY29u
ZCAmJiBtX21pbk1pbGxpc2Vjb25kID09IG1fZGF0ZVZhbHVlLm1pbGxpc2Vjb25kKCkpCisgICAg
aWYgKG1fbWlsbGlzZWNvbmRSYW5nZS5pc1NpbmdsZXRvbigpICYmIG1fbWlsbGlzZWNvbmRSYW5n
ZS5taW5pbXVtID09IG1fZGF0ZVZhbHVlLm1pbGxpc2Vjb25kKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgY29uc3QgRGVjaW1hbCBkZWNpbWFsTXNQZXJTZWNvbmQoc3RhdGljX2Nhc3Q8
aW50Pihtc1BlclNlY29uZCkpOwpAQCAtMzg3LDcgKzM3Niw3IEBAIGJvb2wgRGF0ZVRpbWVFZGl0
QnVpbGRlcjo6c2hvdWxkTWlsbGlzZWNvbmRGaWVsZERpc2FibGVkKCkgY29uc3QKIAogYm9vbCBE
YXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRNaW51dGVGaWVsZERpc2FibGVkKCkgY29uc3QKIHsK
LSAgICBpZiAobV9taW5NaW51dGUgPT0gbV9tYXhNaW51dGUgJiYgbV9taW5NaW51dGUgPT0gbV9k
YXRlVmFsdWUubWludXRlKCkpCisgICAgaWYgKG1fbWludXRlUmFuZ2UuaXNTaW5nbGV0b24oKSAm
JiBtX21pbnV0ZVJhbmdlLm1pbmltdW0gPT0gbV9kYXRlVmFsdWUubWludXRlKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgY29uc3QgRGVjaW1hbCBkZWNpbWFsTXNQZXJIb3VyKHN0YXRp
Y19jYXN0PGludD4obXNQZXJIb3VyKSk7CkBAIC0zOTcsNyArMzg2LDcgQEAgYm9vbCBEYXRlVGlt
ZUVkaXRCdWlsZGVyOjpzaG91bGRNaW51dGVGaWVsZERpc2FibGVkKCkgY29uc3QKIAogYm9vbCBE
YXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRTZWNvbmRGaWVsZERpc2FibGVkKCkgY29uc3QKIHsK
LSAgICBpZiAobV9taW5TZWNvbmQgPT0gbV9tYXhTZWNvbmQgJiYgbV9taW5TZWNvbmQgPT0gbV9k
YXRlVmFsdWUuc2Vjb25kKCkpCisgICAgaWYgKG1fc2Vjb25kUmFuZ2UuaXNTaW5nbGV0b24oKSAm
JiBtX3NlY29uZFJhbmdlLm1pbmltdW0gPT0gbV9kYXRlVmFsdWUuc2Vjb25kKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgY29uc3QgRGVjaW1hbCBkZWNpbWFsTXNQZXJNaW51dGUoc3Rh
dGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0ZSkpOwpAQCAtNDI4LDIzICs0MTcsMjMgQEAgdm9pZCBE
YXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAg
IG1fZWRpdEVsZW1lbnQuZmllbGRzV3JhcHBlckVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CiB9CiAKLURhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyBEYXRlVGlt
ZUVkaXRCdWlsZGVyOjpjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJzKGNvbnN0IERlY2ltYWwm
IG1zUGVyRmllbGRVbml0LCBjb25zdCBEZWNpbWFsJiBtc1BlckZpZWxkU2l6ZSkgY29uc3QKK0Rh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCBEYXRlVGltZUVkaXRCdWlsZGVyOjpjcmVh
dGVTdGVwKGNvbnN0IERlY2ltYWwmIG1zUGVyRmllbGRVbml0LCBjb25zdCBEZWNpbWFsJiBtc1Bl
ckZpZWxkU2l6ZSkgY29uc3QKIHsKICAgICBBU1NFUlQoIW1zUGVyRmllbGRVbml0LmlzWmVybygp
KTsKICAgICBBU1NFUlQoIW1zUGVyRmllbGRTaXplLmlzWmVybygpKTsKICAgICBEZWNpbWFsIHN0
ZXBNaWxsaXNlY29uZHMgPSBzdGVwUmFuZ2UoKS5zdGVwKCk7CiAgICAgQVNTRVJUKCFzdGVwTWls
bGlzZWNvbmRzLmlzWmVybygpKTsKIAotICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKDEsIDApOworICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6U3RlcCBzdGVwKDEsIDApOwogCiAgICAgaWYgKHN0ZXBNaWxsaXNlY29uZHMucmVtYWlu
ZGVyKG1zUGVyRmllbGRTaXplKS5pc1plcm8oKSkKICAgICAgICAgc3RlcE1pbGxpc2Vjb25kcyA9
IG1zUGVyRmllbGRTaXplOwogCiAgICAgaWYgKG1zUGVyRmllbGRTaXplLnJlbWFpbmRlcihzdGVw
TWlsbGlzZWNvbmRzKS5pc1plcm8oKSAmJiBzdGVwTWlsbGlzZWNvbmRzLnJlbWFpbmRlcihtc1Bl
ckZpZWxkVW5pdCkuaXNaZXJvKCkpIHsKLSAgICAgICAgcGFyYW1ldGVycy5zdGVwID0gc3RhdGlj
X2Nhc3Q8aW50Pigoc3RlcE1pbGxpc2Vjb25kcyAvIG1zUGVyRmllbGRVbml0KS50b0RvdWJsZSgp
KTsKLSAgICAgICAgcGFyYW1ldGVycy5zdGVwQmFzZSA9IHN0YXRpY19jYXN0PGludD4oKHN0ZXBS
YW5nZSgpLnN0ZXBCYXNlKCkgLyBtc1BlckZpZWxkVW5pdCkuZmxvb3IoKS5yZW1haW5kZXIobXNQ
ZXJGaWVsZFNpemUgLyBtc1BlckZpZWxkVW5pdCkudG9Eb3VibGUoKSk7CisgICAgICAgIHN0ZXAu
c3RlcCA9IHN0YXRpY19jYXN0PGludD4oKHN0ZXBNaWxsaXNlY29uZHMgLyBtc1BlckZpZWxkVW5p
dCkudG9Eb3VibGUoKSk7CisgICAgICAgIHN0ZXAuc3RlcEJhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+
KChzdGVwUmFuZ2UoKS5zdGVwQmFzZSgpIC8gbXNQZXJGaWVsZFVuaXQpLmZsb29yKCkucmVtYWlu
ZGVyKG1zUGVyRmllbGRTaXplIC8gbXNQZXJGaWVsZFVuaXQpLnRvRG91YmxlKCkpOwogICAgIH0K
LSAgICByZXR1cm4gcGFyYW1ldGVyczsKKyAgICByZXR1cm4gc3RlcDsKIH0KIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKaW5kZXggMDYwNTkzODY4ZmI0NDQ4YTlhMDIx
MGMwZGY5MmM2YjRlNzgzMTNhMC4uYzg0MDYyMjY3ODFiMDIzMzIzNTllNTIzMWQ0MGRmZGU4MWY5
MzIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudHMuY3BwCkBAIC03MSwxNSArNzEsMTUgQEAgdm9pZCBEYXRlVGltZUFNUE1GaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmll
bGQKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZURheUZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVs
ZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQgbWluaW11
bSwgaW50IG1heGltdW0pCi0gICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIsIFJhbmdlKG1pbmltdW0sIG1heGltdW0pLCBSYW5nZSgxLCAzMSksIHBs
YWNlaG9sZGVyKQorRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRGF5RmllbGRFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgU3Ry
aW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmIHJhbmdlKQorICAgIDogRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5nZSwgUmFuZ2UoMSwgMzEp
LCBwbGFjZWhvbGRlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRlVGltZURheUZpZWxkRWxlbWVu
dD4gRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBtaW5p
bXVtLCBpbnQgbWF4aW11bSkKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERh
dGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBjb25zdCBSYW5nZSYg
cmFuZ2UpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRheVBzdWVk
b0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lRGF5RmllbGRFbGVtZW50
PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZURheUZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgcGxhY2Vob2xkZXIuaXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCItLSIpIDog
cGxhY2Vob2xkZXIsIG1pbmltdW0sIG1heGltdW0pKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVEYXlG
aWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lRGF5RmllbGRFbGVtZW50
KGRvY3VtZW50LCBmaWVsZE93bmVyLCBwbGFjZWhvbGRlci5pc0VtcHR5KCkgPyBBU0NJSUxpdGVy
YWwoIi0tIikgOiBwbGFjZWhvbGRlciwgcmFuZ2UpKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShk
YXlQc3VlZG9JZCwgQVhEYXlPZk1vbnRoRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5y
ZWxlYXNlKCk7CiB9CkBAIC0xMTIsOCArMTEyLDggQEAgdm9pZCBEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHMK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZUhvdXJGaWVsZEVs
ZW1lbnRCYXNlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlKERvY3VtZW50KiBkb2N1bWVu
dCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBSYW5n
ZSYgaGFyZExpbWl0cywgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3Vt
ZW50LCBmaWVsZE93bmVyLCByYW5nZSwgaGFyZExpbWl0cywgIi0tIiwgcGFyYW1ldGVycykKK0Rh
dGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2U6OkRhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2Uo
RG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYg
cmFuZ2UsIGNvbnN0IFJhbmdlJiBoYXJkTGltaXRzLCBjb25zdCBTdGVwJiBzdGVwKQorICAgIDog
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5nZSwg
aGFyZExpbWl0cywgIi0tIiwgc3RlcCkKIHsKIH0KIApAQCAtMTQ4LDI2ICsxNDgsMjUgQEAgdm9p
ZCBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlOjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNT
dGF0ZShjb25zdCBEYXRlVGltZUYKIH0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lSG91cjExRmllbGRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgaW50IG1pbmltdW0s
IGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCi0gICAgOiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlKGRvY3Vt
ZW50LCBmaWVsZE93bmVyLCBSYW5nZShtaW5pbXVtLCBtYXhpbXVtKSwgUmFuZ2UoMCwgMTEpLCBw
YXJhbWV0ZXJzKQorRGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lSG91cjExRmll
bGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29u
c3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBTdGVwJiBzdGVwKQorICAgIDogRGF0ZVRpbWVIb3VyRmll
bGRFbGVtZW50QmFzZShkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKDAsIDExKSwg
c3RlcCkKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudD4gRGF0
ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtSG91cjIzLCBpbnQgbWF4aW11bUhvdXIyMywg
Y29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQorUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVIb3VyMTFG
aWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIsIGNvbnN0IFJhbmdlJiBob3VyMjNSYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKIHsKLSAg
ICBBU1NFUlQobWluaW11bUhvdXIyMyA+PSAwKTsKLSAgICBBU1NFUlQobWF4aW11bUhvdXIyMyA8
PSAyMyk7Ci0gICAgQVNTRVJUKG1pbmltdW1Ib3VyMjMgPD0gbWF4aW11bUhvdXIyMyk7Ci0gICAg
aW50IG1pbmltdW0gPSAwLCBtYXhpbXVtID0gMTE7Ci0gICAgaWYgKG1heGltdW1Ib3VyMjMgPCAx
MikgewotICAgICAgICBtaW5pbXVtID0gbWluaW11bUhvdXIyMzsKLSAgICAgICAgbWF4aW11bSA9
IG1heGltdW1Ib3VyMjM7Ci0gICAgfSBlbHNlIGlmIChtaW5pbXVtSG91cjIzID49IDEyKSB7Ci0g
ICAgICAgIG1pbmltdW0gPSBtaW5pbXVtSG91cjIzIC0gMTI7Ci0gICAgICAgIG1heGltdW0gPSBt
YXhpbXVtSG91cjIzIC0gMTI7CisgICAgQVNTRVJUKGhvdXIyM1JhbmdlLm1pbmltdW0gPj0gMCk7
CisgICAgQVNTRVJUKGhvdXIyM1JhbmdlLm1heGltdW0gPD0gMjMpOworICAgIEFTU0VSVChob3Vy
MjNSYW5nZS5taW5pbXVtIDw9IGhvdXIyM1JhbmdlLm1heGltdW0pOworICAgIFJhbmdlIHJhbmdl
KDAsIDExKTsKKyAgICBpZiAoaG91cjIzUmFuZ2UubWF4aW11bSA8IDEyKQorICAgICAgICByYW5n
ZSA9IGhvdXIyM1JhbmdlOworICAgIGVsc2UgaWYgKGhvdXIyM1JhbmdlLm1pbmltdW0gPj0gMTIp
IHsKKyAgICAgICAgcmFuZ2UubWluaW11bSA9IGhvdXIyM1JhbmdlLm1pbmltdW0gLSAxMjsKKyAg
ICAgICAgcmFuZ2UubWF4aW11bSA9IGhvdXIyM1JhbmdlLm1heGltdW0gLSAxMjsKICAgICB9CiAK
LSAgICBSZWZQdHI8RGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYo
bmV3IERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5p
bXVtLCBtYXhpbXVtLCBwYXJhbWV0ZXJzKSk7CisgICAgUmVmUHRyPERhdGVUaW1lSG91cjExRmll
bGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlh
bGl6ZSgpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CkBAIC0xOTAsMzMgKzE4OSwz
MiBAQCB2b2lkIERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihp
bnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlbgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLURhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMkZpZWxk
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBt
aW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFz
ZShkb2N1bWVudCwgZmllbGRPd25lciwgUmFuZ2UobWluaW11bSwgbWF4aW11bSksIFJhbmdlKDEs
IDEyKSwgcGFyYW1ldGVycykKK0RhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50OjpEYXRlVGltZUhv
dXIxMkZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3du
ZXIsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1l
SG91ckZpZWxkRWxlbWVudEJhc2UoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBSYW5nZSgx
LCAxMiksIHN0ZXApCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1l
bnQ+IERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bUhvdXIyMywgaW50IG1heGltdW1I
b3VyMjMsIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQ+IERhdGVUaW1l
SG91cjEyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgaG91cjIzUmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXAp
CiB7Ci0gICAgQVNTRVJUKG1pbmltdW1Ib3VyMjMgPj0gMCk7Ci0gICAgQVNTRVJUKG1heGltdW1I
b3VyMjMgPD0gMjMpOwotICAgIEFTU0VSVChtaW5pbXVtSG91cjIzIDw9IG1heGltdW1Ib3VyMjMp
OwotICAgIGludCBtaW5pbXVtID0gMSwgbWF4aW11bSA9IDEyOwotICAgIGlmIChtYXhpbXVtSG91
cjIzIDwgMTIpIHsKLSAgICAgICAgbWluaW11bSA9IG1pbmltdW1Ib3VyMjM7Ci0gICAgICAgIG1h
eGltdW0gPSBtYXhpbXVtSG91cjIzOwotICAgIH0gZWxzZSBpZiAobWluaW11bUhvdXIyMyA+PSAx
MikgewotICAgICAgICBtaW5pbXVtID0gbWluaW11bUhvdXIyMyAtIDEyOwotICAgICAgICBtYXhp
bXVtID0gbWF4aW11bUhvdXIyMyAtIDEyOworICAgIEFTU0VSVChob3VyMjNSYW5nZS5taW5pbXVt
ID49IDApOworICAgIEFTU0VSVChob3VyMjNSYW5nZS5tYXhpbXVtIDw9IDIzKTsKKyAgICBBU1NF
UlQoaG91cjIzUmFuZ2UubWluaW11bSA8PSBob3VyMjNSYW5nZS5tYXhpbXVtKTsKKyAgICBSYW5n
ZSByYW5nZSgxLCAxMik7CisgICAgaWYgKGhvdXIyM1JhbmdlLm1heGltdW0gPCAxMikKKyAgICAg
ICAgcmFuZ2UgPSBob3VyMjNSYW5nZTsKKyAgICBlbHNlIGlmIChob3VyMjNSYW5nZS5taW5pbXVt
ID49IDEyKSB7CisgICAgICAgIHJhbmdlLm1pbmltdW0gPSBob3VyMjNSYW5nZS5taW5pbXVtIC0g
MTI7CisgICAgICAgIHJhbmdlLm1heGltdW0gPSBob3VyMjNSYW5nZS5tYXhpbXVtIC0gMTI7CiAg
ICAgfQotICAgIGlmICghbWluaW11bSkKLSAgICAgICAgbWluaW11bSA9IDEyOwotICAgIGlmICgh
bWF4aW11bSkKLSAgICAgICAgbWF4aW11bSA9IDEyOwotICAgIGlmIChtaW5pbXVtID4gbWF4aW11
bSkgewotICAgICAgICBtaW5pbXVtID0gMTsKLSAgICAgICAgbWF4aW11bSA9IDEyOworICAgIGlm
ICghcmFuZ2UubWluaW11bSkKKyAgICAgICAgcmFuZ2UubWluaW11bSA9IDEyOworICAgIGlmICgh
cmFuZ2UubWF4aW11bSkKKyAgICAgICAgcmFuZ2UubWF4aW11bSA9IDEyOworICAgIGlmIChyYW5n
ZS5taW5pbXVtID4gcmFuZ2UubWF4aW11bSkgeworICAgICAgICByYW5nZS5taW5pbXVtID0gMTsK
KyAgICAgICAgcmFuZ2UubWF4aW11bSA9IDEyOwogICAgIH0KLSAgICBSZWZQdHI8RGF0ZVRpbWVI
b3VyMTJGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lSG91cjEyRmll
bGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhpbXVtLCBwYXJhbWV0
ZXJzKSk7CisgICAgUmVmUHRyPERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50PiBmaWVsZCA9IGFk
b3B0UmVmKG5ldyBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
ciwgcmFuZ2UsIHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBm
aWVsZC5yZWxlYXNlKCk7CiB9CkBAIC0yMzQsMTcgKzIzMiwxNyBAQCB2b2lkIERhdGVUaW1lSG91
cjEyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZp
b3IgZXZlbgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lSG91
cjIzRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwg
Y29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQotICAgIDogRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZShkb2N1bWVudCwgZmllbGRPd25l
ciwgUmFuZ2UobWluaW11bSwgbWF4aW11bSksIFJhbmdlKDAsIDIzKSwgcGFyYW1ldGVycykKK0Rh
dGVUaW1lSG91cjIzRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5n
ZSwgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2Uo
ZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBSYW5nZSgwLCAyMyksIHN0ZXApCiB7CiB9CiAK
LVBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjIzRmll
bGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyLCBpbnQgbWluaW11bUhvdXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8
RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBS
YW5nZSYgaG91cjIzUmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCiB7Ci0gICAgQVNTRVJUKG1pbmlt
dW1Ib3VyMjMgPj0gMCk7Ci0gICAgQVNTRVJUKG1heGltdW1Ib3VyMjMgPD0gMjMpOwotICAgIEFT
U0VSVChtaW5pbXVtSG91cjIzIDw9IG1heGltdW1Ib3VyMjMpOwotICAgIFJlZlB0cjxEYXRlVGlt
ZUhvdXIyM0ZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVIb3VyMjNG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIG1pbmltdW1Ib3VyMjMsIG1heGltdW1I
b3VyMjMsIHBhcmFtZXRlcnMpKTsKKyAgICBBU1NFUlQoaG91cjIzUmFuZ2UubWluaW11bSA+PSAw
KTsKKyAgICBBU1NFUlQoaG91cjIzUmFuZ2UubWF4aW11bSA8PSAyMyk7CisgICAgQVNTRVJUKGhv
dXIyM1JhbmdlLm1pbmltdW0gPD0gaG91cjIzUmFuZ2UubWF4aW11bSk7CisgICAgUmVmUHRyPERh
dGVUaW1lSG91cjIzRmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUhv
dXIyM0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgaG91cjIzUmFuZ2UsIHN0ZXAp
KTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7
CiB9CkBAIC0yNzAsMjQgKzI2OCwyMyBAQCB2b2lkIERhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlbgogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50
OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3du
ZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0ZVRp
bWVIb3VyRmllbGRFbGVtZW50QmFzZShkb2N1bWVudCwgZmllbGRPd25lciwgUmFuZ2UobWluaW11
bSwgbWF4aW11bSksIFJhbmdlKDEsIDI0KSwgcGFyYW1ldGVycykKK0RhdGVUaW1lSG91cjI0Rmll
bGRFbGVtZW50OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQs
IEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYg
c3RlcCkKKyAgICA6IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UoZG9jdW1lbnQsIGZpZWxk
T3duZXIsIHJhbmdlLCBSYW5nZSgxLCAyNCksIHN0ZXApCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0
ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11
bUhvdXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMjRG
aWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgaG91cjIzUmFu
Z2UsIGNvbnN0IFN0ZXAmIHN0ZXApCiB7Ci0gICAgQVNTRVJUKG1pbmltdW1Ib3VyMjMgPj0gMCk7
Ci0gICAgQVNTRVJUKG1heGltdW1Ib3VyMjMgPD0gMjMpOwotICAgIEFTU0VSVChtaW5pbXVtSG91
cjIzIDw9IG1heGltdW1Ib3VyMjMpOwotICAgIGludCBtaW5pbXVtID0gbWluaW11bUhvdXIyMyA/
IG1pbmltdW1Ib3VyMjMgOiAyNDsKLSAgICBpbnQgbWF4aW11bSA9IG1heGltdW1Ib3VyMjMgPyBt
YXhpbXVtSG91cjIzIDogMjQ7Ci0gICAgaWYgKG1pbmltdW0gPiBtYXhpbXVtKSB7Ci0gICAgICAg
IG1pbmltdW0gPSAxOwotICAgICAgICBtYXhpbXVtID0gMjQ7CisgICAgQVNTRVJUKGhvdXIyM1Jh
bmdlLm1pbmltdW0gPj0gMCk7CisgICAgQVNTRVJUKGhvdXIyM1JhbmdlLm1heGltdW0gPD0gMjMp
OworICAgIEFTU0VSVChob3VyMjNSYW5nZS5taW5pbXVtIDw9IGhvdXIyM1JhbmdlLm1heGltdW0p
OworICAgIFJhbmdlIHJhbmdlKGhvdXIyM1JhbmdlLm1pbmltdW0gPyBob3VyMjNSYW5nZS5taW5p
bXVtIDogMjQsIGhvdXIyM1JhbmdlLm1heGltdW0gPyBob3VyMjNSYW5nZS5tYXhpbXVtIDogMjQp
OworICAgIGlmIChyYW5nZS5taW5pbXVtID4gcmFuZ2UubWF4aW11bSkgeworICAgICAgICByYW5n
ZS5taW5pbXVtID0gMTsKKyAgICAgICAgcmFuZ2UubWF4aW11bSA9IDI0OwogICAgIH0KIAotICAg
IFJlZlB0cjxEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcg
RGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIG1pbmltdW0s
IG1heGltdW0sIHBhcmFtZXRlcnMpKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVIb3VyMjRGaWVsZEVs
ZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50KGRv
Y3VtZW50LCBmaWVsZE93bmVyLCByYW5nZSwgc3RlcCkpOwogICAgIGZpZWxkLT5pbml0aWFsaXpl
KCk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKIH0KQEAgLTMxOCwxNSArMzE1LDE1IEBA
IHZvaWQgRGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCB2
YWx1ZSwgRXZlbnRCZWhhdmlvciBldmVuCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaWxsaXNlY29u
ZEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5nZShtaW5pbXVtLCBtYXhpbXVtKSwgUmFu
Z2UoMCwgOTk5KSwgIi0tLSIsIHBhcmFtZXRlcnMpCitEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRF
bGVtZW50OjpEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBTdGVw
JiBzdGVwKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyLCByYW5nZSwgUmFuZ2UoMCwgOTk5KSwgIi0tLSIsIHN0ZXApCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaWxsaXNlY29u
ZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzUmVmUHRyPERhdGVUaW1l
TWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0
IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWlsbGlzZWNvbmRQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1l
LWVkaXQtbWlsbGlzZWNvbmQtZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoZG9jdW1lbnQs
IGZpZWxkT3duZXIsIG1pbmltdW0sIG1heGltdW0sIHBhcmFtZXRlcnMpKTsKKyAgICBSZWZQdHI8
RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0
ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2Us
IHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShtaWxsaXNlY29uZFBzdWVkb0lkLCBBWE1p
bGxpc2Vjb25kRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CkBA
IC0zNTksMTUgKzM1NiwxNSBAQCB2b2lkIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6
OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpEYXRl
VGltZU1pbnV0ZUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZp
ZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5nZShtaW5pbXVtLCBtYXhp
bXVtKSwgUmFuZ2UoMCwgNTkpLCAiLS0iLCBwYXJhbWV0ZXJzKQorRGF0ZVRpbWVNaW51dGVGaWVs
ZEVsZW1lbnQ6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
RmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBTdGVwJiBz
dGVwKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93
bmVyLCByYW5nZSwgUmFuZ2UoMCwgNTkpLCAiLS0iLCBzdGVwKQogewogfQogCi1QYXNzUmVmUHRy
PERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgaW50IG1p
bmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzUmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBTdGVw
JiBzdGVwKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtaW51dGVQ
c3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbWludXRlLWZpZWxkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxEYXRlVGltZU1pbnV0ZUZp
ZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1l
bnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIG1pbmltdW0sIG1heGltdW0sIHBhcmFtZXRlcnMpKTsK
KyAgICBSZWZQdHI8RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYo
bmV3IERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5n
ZSwgc3RlcCkpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKG1pbnV0ZVBzdWVkb0lkLCBBWE1pbnV0
ZUZpZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtNDAwLDE1
ICszOTcsMTUgQEAgdm9pZCBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWUKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwg
Y29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKQotICAg
IDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5n
ZShtaW5pbXVtLCBtYXhpbXVtKSwgUmFuZ2UoMSwgMTIpLCBwbGFjZWhvbGRlcikKK0RhdGVUaW1l
TW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVy
LCBjb25zdCBSYW5nZSYgcmFuZ2UpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQo
ZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBSYW5nZSgxLCAxMiksIHBsYWNlaG9sZGVyKQog
ewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTW9u
dGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZp
ZWxkT3duZXIsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4
aW11bSkKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNb250
aEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmIHJhbmdlKQog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtb250aFBzdWVkb0lkLCAo
Ii13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4g
ZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgcGxhY2Vob2xkZXIuaXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCItLSIpIDog
cGxhY2Vob2xkZXIsIG1pbmltdW0sIG1heGltdW0pKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVNb250
aEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVNb250aEZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcGxhY2Vob2xkZXIuaXNFbXB0eSgpID8gQVNDSUlM
aXRlcmFsKCItLSIpIDogcGxhY2Vob2xkZXIsIHJhbmdlKSk7CiAgICAgZmllbGQtPmluaXRpYWxp
emUobW9udGhQc3VlZG9JZCwgQVhNb250aEZpZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQu
cmVsZWFzZSgpOwogfQpAQCAtNDQxLDE1ICs0MzgsMTUgQEAgdm9pZCBEYXRlVGltZU1vbnRoRmll
bGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZp
ZWwKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZVNlY29uZEZp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAg
ICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgUmFu
Z2UobWluaW11bSwgbWF4aW11bSksIFJhbmdlKDAsIDU5KSwgIi0tIiwgcGFyYW1ldGVycykKK0Rh
dGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5n
ZSwgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChk
b2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKDAsIDU5KSwgIi0tIiwgc3RlcCkKIHsK
IH0KIAotUGFzc1JlZlB0cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTZWNv
bmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZp
ZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorUGFzc1JlZlB0cjxEYXRlVGlt
ZVNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiBy
YW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc2Vjb25kUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXNlY29uZC1m
aWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8
RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1l
U2Vjb25kRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhpbXVt
LCBwYXJhbWV0ZXJzKSk7CisgICAgUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50PiBm
aWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgcmFuZ2UsIHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShzZWNvbmRQ
c3VlZG9JZCwgQVhTZWNvbmRGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2Uo
KTsKIH0KQEAgLTUyNiwxNSArNTIzLDE1IEBAIHZvaWQgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmll
bGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlCiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
OjpEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pCi0gICAgOiBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKG1pbmltdW0sIG1h
eGltdW0pLCBSYW5nZShEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWtOdW1iZXIsIERhdGVDb21w
b25lbnRzOjptYXhpbXVtV2Vla051bWJlciksICItLSIpCitEYXRlVGltZVdlZWtGaWVsZEVsZW1l
bnQ6OkRhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3du
ZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5nZSkKKyAgICA6IERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKERhdGVDb21w
b25lbnRzOjptaW5pbXVtV2Vla051bWJlciwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrTnVt
YmVyKSwgIi0tIikKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+
IERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmll
bGRPd25lciYgZmllbGRPd25lciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKQorUGFzc1JlZlB0
cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+IERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFu
Z2UmIHJhbmdlKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB3ZWVr
UHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXdlZWstZmllbGQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lV2Vla0ZpZWxk
RWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50KGRv
Y3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhpbXVtKSk7CisgICAgUmVmUHRyPERhdGVU
aW1lV2Vla0ZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVXZWVrRmll
bGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5nZSkpOwogICAgIGZpZWxkLT5pbml0
aWFsaXplKHdlZWtQc3VlZG9JZCwgQVhXZWVrT2ZZZWFyRmllbGRUZXh0KCkpOwogICAgIHJldHVy
biBmaWVsZC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCmluZGV4IDliM2MwNTNiNTAwMjA5NTI3ZjMzYzhlMTYx
ODkzYTE5ZDU3N2MxMmYuLmVkYmVhN2ZhN2JjN2ExNzJjZGMxZWNjYTUzMzI4YmE3ODJiZjZkMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5oCkBAIC01MSwxMCArNTEsMTAgQEAgY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQg
OiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEYXRlVGltZURheUZpZWxkRWxlbWVudCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmll
bGRPd25lciYsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4
aW11bSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBj
b25zdCBSYW5nZSYpOwogCiBwcml2YXRlOgotICAgIERhdGVUaW1lRGF5RmllbGRFbGVtZW50KERv
Y3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBtaW5p
bXVtLCBpbnQgbWF4aW11bSk7CisgICAgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQq
LCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmKTsK
IAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZv
aWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVS
UklERSBGSU5BTDsKQEAgLTY2LDcgKzY2LDcgQEAgY2xhc3MgRGF0ZVRpbWVIb3VyRmllbGRFbGVt
ZW50QmFzZSA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UpOwogCiBwcm90ZWN0
ZWQ6Ci0gICAgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZShEb2N1bWVudCosIEZpZWxkT3du
ZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFJhbmdlJiBoYXJkTGltaXRzLCBjb25zdCBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAgICBEYXRlVGltZUhvdXJGaWVs
ZEVsZW1lbnRCYXNlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwgY29uc3Qg
UmFuZ2UmIGhhcmRMaW1pdHMsIGNvbnN0IFN0ZXAmKTsKICAgICB2b2lkIGluaXRpYWxpemUoKTsK
IAogcHJpdmF0ZToKQEAgLTc5LDEwICs3OSwxMCBAQCBjbGFzcyBEYXRlVGltZUhvdXIxMUZpZWxk
RWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudCk7CiAKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtSG91cjIzLCBpbnQgbWF4aW11bUhv
dXIyMywgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFN0ZXAmKTsKIAogcHJp
dmF0ZToKLSAgICBEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3du
ZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50KERv
Y3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiBob3VyMjNSYW5nZSwgY29uc3QgU3Rl
cCYpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1
YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYp
IE9WRVJSSURFIEZJTkFMOwpAQCAtOTMsMTAgKzkzLDEwIEBAIGNsYXNzIERhdGVUaW1lSG91cjEy
RmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50KTsKIAogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW1Ib3VyMjMsIGludCBtYXhp
bXVtSG91cjIzLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMm
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwgY29uc3QgU3RlcCYpOwog
CiBwcml2YXRlOgotICAgIERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmll
bGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJik7CisgICAgRGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmIGhvdXIyM1JhbmdlLCBjb25z
dCBTdGVwJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0
YXRlJikgT1ZFUlJJREUgRklOQUw7CkBAIC0xMDcsMTAgKzEwNywxMCBAQCBjbGFzcyBEYXRlVGlt
ZUhvdXIyM0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudCk7
CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIyM0ZpZWxkRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtSG91cjIzLCBp
bnQgbWF4aW11bUhvdXIyMywgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJh
bWV0ZXJzJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFN0
ZXAmKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudChEb2N1bWVu
dCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIERhdGVUaW1lSG91cjIzRmll
bGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiBob3VyMjNSYW5n
ZSwgY29uc3QgU3RlcCYpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25z
LgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVG
aWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwpAQCAtMTIxLDEwICsxMjEsMTAgQEAgY2xhc3Mg
RGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVIb3VyRmllbGRFbGVt
ZW50QmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVIb3VyMjRGaWVsZEVs
ZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyMjRG
aWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11bUhv
dXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6UGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lSG91cjI0Rmll
bGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBj
b25zdCBTdGVwJik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQo
RG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAgICBEYXRlVGltZUhv
dXIyNEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYgaG91
cjIzUmFuZ2UsIGNvbnN0IFN0ZXAmKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1
bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERh
dGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKQEAgLTEzNSwxMCArMTM1LDEwIEBA
IGNsYXNzIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50KTsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxk
T3duZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1l
TWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBj
b25zdCBSYW5nZSYsIGNvbnN0IFN0ZXAmKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZU1pbGxp
c2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtLCBp
bnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJz
Jik7CisgICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxk
T3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFN0ZXAmKTsKIAogICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZp
ZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKQEAgLTE1MCwx
MCArMTUwLDEwIEBAIGNsYXNzIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50IDogcHVibGljIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0
ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3du
ZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lTWlu
dXRlRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFu
Z2UmLCBjb25zdCBTdGVwJik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBj
b25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAgICBEYXRl
VGltZU1pbnV0ZUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5n
ZSYsIGNvbnN0IFN0ZXAmKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9u
cy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1l
RmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKQEAgLTE2NSwxMCArMTY1LDEwIEBAIGNsYXNz
IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZU1vbnRoRmllbGRFbGVt
ZW50KTsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmIHBs
YWNlaG9sZGVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3du
ZXImLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBjb25zdCBSYW5nZSYpOwogCiBwcml2YXRl
OgotICAgIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwg
Y29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKTsKKyAg
ICBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0
IFN0cmluZyYgcGxhY2Vob2xkZXIsIGNvbnN0IFJhbmdlJik7CiAKICAgICAvLyBEYXRlVGltZUZp
ZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVG
aWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CkBAIC0xODAs
MTAgKzE4MCwxMCBAQCBjbGFzcyBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudCA6IHB1YmxpYyBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERh
dGVUaW1lU2Vjb25kRmllbGRFbGVtZW50KTsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93
bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZVNl
Y29uZEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJh
bmdlJiwgY29uc3QgU3RlcCYpOwogCiBwcml2YXRlOgotICAgIERhdGVUaW1lU2Vjb25kRmllbGRF
bGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwg
Y29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJik7CisgICAgRGF0
ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFu
Z2UmLCBjb25zdCBTdGVwJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlv
bnMuCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGlt
ZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CkBAIC0yMTAsMTAgKzIxMCwxMCBAQCBjbGFz
cyBEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVdlZWtGaWVsZEVsZW1l
bnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVXZWVrRmllbGRF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBt
YXhpbXVtKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYpOwogCiBwcml2YXRl
OgotICAgIERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBp
bnQgbWluaW11bSwgaW50IG1heGltdW0pOworICAgIERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudChE
b2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYpOwogCiAgICAgLy8gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1l
RmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5jcHAKaW5kZXggNjQ5ZDg1M2Q0ZTRhNzE4YWQyMmM4MWJiOTMwZTEzMWE1ODFmMjgx
NC4uYjJjYmFhMWUzNmM1NjBkYzY1ODkzYTYzMzMzNTA1NWVjNThiNTI4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwCkBAIC00MCwxMyArNDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7CiAKLURhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2U6OlJhbmdlKGludCBtaW5pbXVtLCBpbnQgbWF4aW11
bSkKLSAgICA6IG1heGltdW0obWF4aW11bSkKLSAgICAsIG1pbmltdW0obWluaW11bSkKLXsKLSAg
ICBBU1NFUlQobWluaW11bSA8PSBtYXhpbXVtKTsKLX0KLQogaW50IERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6UmFuZ2U6OmNsYW1wVmFsdWUoaW50IHZhbHVlKSBjb25zdAogewogICAgIHJl
dHVybiBzdGQ6Om1pbihzdGQ6Om1heCh2YWx1ZSwgbWluaW11bSksIG1heGltdW0pOwpAQCAtNTks
MTggKzUyLDE5IEBAIGJvb2wgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6aXNJ
blJhbmdlKGludCB2YWx1ZSkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJh
bmdlJiByYW5nZSwgY29uc3QgUmFuZ2UmIGhhcmRMaW1pdHMsIGNvbnN0IFN0cmluZyYgcGxhY2Vo
b2xkZXIsIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKK0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29u
c3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBSYW5nZSYgaGFyZExpbWl0cywgY29uc3QgU3RyaW5nJiBw
bGFjZWhvbGRlciwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpTdGVwJiBzdGVw
KQogICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCiAgICAg
LCBtX2xhc3REaWdpdENoYXJUaW1lKDApCiAgICAgLCBtX3BsYWNlaG9sZGVyKHBsYWNlaG9sZGVy
KQogICAgICwgbV9yYW5nZShyYW5nZSkKICAgICAsIG1faGFyZExpbWl0cyhoYXJkTGltaXRzKQor
ICAgICwgbV9zdGVwKHN0ZXApCiAgICAgLCBtX3ZhbHVlKDApCiAgICAgLCBtX2hhc1ZhbHVlKGZh
bHNlKQotICAgICwgbV9zdGVwKHBhcmFtZXRlcnMuc3RlcCkKLSAgICAsIG1fc3RlcEJhc2UocGFy
YW1ldGVycy5zdGVwQmFzZSkKIHsKLSAgICBBU1NFUlQobV9zdGVwKTsKKyAgICBBU1NFUlQobV9z
dGVwLnN0ZXApOworICAgIEFTU0VSVChtX3JhbmdlLm1pbmltdW0gPD0gbV9yYW5nZS5tYXhpbXVt
KTsKKyAgICBBU1NFUlQobV9oYXJkTGltaXRzLm1pbmltdW0gPD0gbV9oYXJkTGltaXRzLm1heGlt
dW0pOwogCiAgICAgLy8gV2Ugc2hvdyBhIGRpcmVjdGlvbi1uZXV0cmFsIHN0cmluZyBzdWNoIGFz
ICItLSIgYXMgYSBwbGFjZWhvbGRlci4gSXQKICAgICAvLyBzaG91bGQgZm9sbG93IHRoZSBkaXJl
Y3Rpb24gb2YgbnVtZXJpYyB2YWx1ZXMuCkBAIC0yMjgsMjIgKzIyMiwyMiBAQCBTdHJpbmcgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogCiBpbnQgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpyb3VuZERvd24oaW50IG4pIGNvbnN0CiB7Ci0gICAg
biAtPSBtX3N0ZXBCYXNlOworICAgIG4gLT0gbV9zdGVwLnN0ZXBCYXNlOwogICAgIGlmIChuID49
IDApCi0gICAgICAgIG4gPSBuIC8gbV9zdGVwICogbV9zdGVwOworICAgICAgICBuID0gbiAvIG1f
c3RlcC5zdGVwICogbV9zdGVwLnN0ZXA7CiAgICAgZWxzZQotICAgICAgICBuID0gLSgoLW4gKyBt
X3N0ZXAgLSAxKSAvIG1fc3RlcCAqIG1fc3RlcCk7Ci0gICAgcmV0dXJuIG4gKyBtX3N0ZXBCYXNl
OworICAgICAgICBuID0gLSgoLW4gKyBtX3N0ZXAuc3RlcCAtIDEpIC8gbV9zdGVwLnN0ZXAgKiBt
X3N0ZXAuc3RlcCk7CisgICAgcmV0dXJuIG4gKyBtX3N0ZXAuc3RlcEJhc2U7CiB9CiAKIGludCBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnJvdW5kVXAoaW50IG4pIGNvbnN0CiB7Ci0gICAg
biAtPSBtX3N0ZXBCYXNlOworICAgIG4gLT0gbV9zdGVwLnN0ZXBCYXNlOwogICAgIGlmIChuID49
IDApCi0gICAgICAgIG4gPSAobiArIG1fc3RlcCAtIDEpIC8gbV9zdGVwICogbV9zdGVwOworICAg
ICAgICBuID0gKG4gKyBtX3N0ZXAuc3RlcCAtIDEpIC8gbV9zdGVwLnN0ZXAgKiBtX3N0ZXAuc3Rl
cDsKICAgICBlbHNlCi0gICAgICAgIG4gPSAtKC1uIC8gbV9zdGVwICogbV9zdGVwKTsKLSAgICBy
ZXR1cm4gbiArIG1fc3RlcEJhc2U7CisgICAgICAgIG4gPSAtKC1uIC8gbV9zdGVwLnN0ZXAgKiBt
X3N0ZXAuc3RlcCk7CisgICAgcmV0dXJuIG4gKyBtX3N0ZXAuc3RlcEJhc2U7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgKaW5kZXggOTZlMmFmMzcwYThkMGE3YjQ5
ZTAxMjk2MWNhMjkyN2MyOTQxZWYwZS4uYjZkNDNlOTFkN2E0NTBmNzhhZjdiYzgxOTAwODExZjM1
NjU5ZjQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgKQEAgLTQyLDIzICs0MiwyNCBAQCBjbGFzcyBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk7CiAK
IHB1YmxpYzoKLSAgICBzdHJ1Y3QgUGFyYW1ldGVycyB7Ci0gICAgICAgIFBhcmFtZXRlcnMoaW50
IHN0ZXAgPSAxLCBpbnQgc3RlcEJhc2UgPSAwKSA6IHN0ZXAoc3RlcCksIHN0ZXBCYXNlKHN0ZXBC
YXNlKSB7IH0KKyAgICBzdHJ1Y3QgU3RlcCB7CisgICAgICAgIFN0ZXAoaW50IHN0ZXAgPSAxLCBp
bnQgc3RlcEJhc2UgPSAwKSA6IHN0ZXAoc3RlcCksIHN0ZXBCYXNlKHN0ZXBCYXNlKSB7IH0KICAg
ICAgICAgaW50IHN0ZXA7CiAgICAgICAgIGludCBzdGVwQmFzZTsKICAgICB9OwogCi1wcm90ZWN0
ZWQ6CiAgICAgc3RydWN0IFJhbmdlIHsKLSAgICAgICAgUmFuZ2UoaW50IG1pbmltdW0sIGludCBt
YXhpbXVtKTsKKyAgICAgICAgUmFuZ2UoaW50IG1pbmltdW0sIGludCBtYXhpbXVtKSA6IG1pbmlt
dW0obWluaW11bSksIG1heGltdW0obWF4aW11bSkgeyB9CiAgICAgICAgIGludCBjbGFtcFZhbHVl
KGludCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNJblJhbmdlKGludCkgY29uc3Q7CisgICAgICAg
IGJvb2wgaXNTaW5nbGV0b24oKSBjb25zdCB7IHJldHVybiBtaW5pbXVtID09IG1heGltdW07IH0K
IAotICAgICAgICBpbnQgbWF4aW11bTsKICAgICAgICAgaW50IG1pbmltdW07CisgICAgICAgIGlu
dCBtYXhpbXVtOwogICAgIH07CiAKLSAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBSYW5nZSYgaGFyZExpbWl0
cywgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUGFyYW1ldGVycyYgPSBQYXJhbWV0
ZXJzKCkpOworcHJvdGVjdGVkOgorICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1
bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFJhbmdlJiBoYXJkTGltaXRz
LCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBjb25zdCBTdGVwJiA9IFN0ZXAoKSk7CiAKICAg
ICBpbnQgY2xhbXBWYWx1ZShpbnQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuY2xhbXBW
YWx1ZSh2YWx1ZSk7IH0KICAgICB2aXJ0dWFsIGludCBkZWZhdWx0VmFsdWVGb3JTdGVwRG93bigp
IGNvbnN0OwpAQCAtOTIsMTAgKzkzLDkgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcgbV9w
bGFjZWhvbGRlcjsKICAgICBjb25zdCBSYW5nZSBtX3JhbmdlOwogICAgIGNvbnN0IFJhbmdlIG1f
aGFyZExpbWl0czsKKyAgICBjb25zdCBTdGVwIG1fc3RlcDsKICAgICBpbnQgbV92YWx1ZTsKICAg
ICBib29sIG1faGFzVmFsdWU7Ci0gICAgaW50IG1fc3RlcDsKLSAgICBpbnQgbV9zdGVwQmFzZTsK
ICAgICBtdXRhYmxlIFN0cmluZ0J1aWxkZXIgbV90eXBlQWhlYWRCdWZmZXI7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194207</attachid>
            <date>2013-03-21 02:28:36 -0700</date>
            <delta_ts>2013-03-21 04:57:14 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-112877-20130321182425.patch</filename>
            <type>text/plain</type>
            <size>53834</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJmMTk5OGM4MDI2NWU1
MzdhNmU0MDY0ZTExODQ4MGM2ODk3MDcyMC4uYjk4OGI1YTc4ODQ2Yjc2ZmViNWE4YTNlYmY1MzM4
ZDMyNDg0NTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTIwICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0
b3Jpbmc6IFJlb3JnYW5pemUgZGF0ZXRpbWUgZmllbGQgZWxlbWVudCBwYXJhbWV0ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhpcyBw
YXRjaCwgdGhlIGZpZWxkIGVsZW1lbnQgY29uc3RydWN0b3JzIHRvb2sgbWluaW11bS9tYXhpbXVt
CisgICAgICAgIGFzIGEgcGFpciBvZiBpbnRlZ2VycywgYW5kIHN0ZXAvc3RlcGJhc2UgYXMgYSBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMuCisgICAgICAgIFRoaXMgcGF0
Y2ggbWFrZXMgdGhlc2UgY29uc3RydWN0b3JzIHRvIHRha2UgYSBSYW5nZSAoZm9yIG1pbmltdW0v
bWF4aW11bSkKKyAgICAgICAgYW5kIGEgU3RlcCAoZm9yIHN0ZXAvc3RlcGJhc2UpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gSnVzdCByZWZhY3RvcmluZy4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoRGF0ZVRpbWVFZGl0QnVpbGRl
cik6IFJlcGxhY2VkIG1pbi9tYXggZGF0YSBtZW1iZXJzIGJ5IFJhbmdlcy4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRBTVBNRmllbGREaXNhYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGREYXlPZk1vbnRoRmll
bGREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91
bGRIb3VyRmllbGREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWls
ZGVyOjpzaG91bGRNaWxsaXNlY29uZEZpZWxkRGlzYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0QnVpbGRlcjo6c2hvdWxkTWludXRlRmllbGREaXNhYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRTZWNvbmRGaWVsZERpc2FibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OmNyZWF0ZVN0ZXApOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlOjpEYXRlVGlt
ZUhvdXJGaWVsZEVsZW1lbnRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjEx
RmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50OjpEYXRlVGlt
ZUhvdXIyM0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXIyM0Zp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSG91cjI0Rmll
bGRFbGVtZW50OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVs
ZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50OjpEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZVNlY29uZEZpZWxk
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVXZWVrRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lV2Vla0Zp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxk
RWxlbWVudHMuaDoKKyAgICAgICAgKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KToKKyAgICAgICAg
KERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UpOgorICAgICAgICAoRGF0ZVRpbWVIb3VyMTFG
aWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQpOgorICAg
ICAgICAoRGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVIb3Vy
MjRGaWVsZEVsZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lU2Vjb25kRmllbGRFbGVt
ZW50KToKKyAgICAgICAgKERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50Ojpyb3VuZERvd24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50Ojpyb3VuZFVwKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudDo6U3RlcDo6U3RlcCk6IFJlbmFtZWQgZnJvbSBQYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6UmFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5n
ZTo6aXNTaW5nbGV0b24pOiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlIGlzIGEgc2luZ2xldG9u
IHJhbmdlIChpLmUuIGNvbnRhaW5zIGV4YWN0bHkgb25lIHZhbHVlKS4KKyAgICAgICAgKFJhbmdl
KTogTm93IGl0J3MgcGFyYW1ldGVyIHR5cGUsIGhlbmNlIHB1YmxpYy4KKyAgICAgICAgKERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IFJlcGxhY2VkIHR3byBpbnQgbWVtYmVycyAobV9zdGVw
IGFuZCBtX3N0ZXBCYXNlKSBieSBhIFJhbmdlLgorCiAyMDEzLTAzLTIwICBBbmRyZXkgTHVzaG5p
a292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
aXggU291cmNlRnJhbWUuanMgY29tcGlsYXRpb24gd2FybmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCAyZmUyMDAzN2I4
YTljMWRjZjg0NjEwOGYwYTcwZTQyMjFkOTUwYTgyLi45MGE5ZGRjNDAyNDBlMWUxZTUwMTU2Y2Mw
Y2I1NTk5MTY4Y2E1ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgc2hvdWxkU2Vjb25kRmllbGREaXNhYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkWWVh
ckZpZWxkRGlzYWJsZWQoKSBjb25zdDsKICAgICBpbmxpbmUgY29uc3QgU3RlcFJhbmdlJiBzdGVw
UmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc3RlcFJhbmdlOyB9Ci0gICAgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzIGNyZWF0ZU51bWVyaWNGaWVsZFBh
cmFtZXRlcnMoY29uc3QgRGVjaW1hbCYgbXNQZXJGaWVsZFVuaXQsIGNvbnN0IERlY2ltYWwmIG1z
UGVyRmllbGRTaXplKSBjb25zdDsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlN0
ZXAgY3JlYXRlU3RlcChkb3VibGUgbXNQZXJGaWVsZFVuaXQsIGRvdWJsZSBtc1BlckZpZWxkU2l6
ZSkgY29uc3Q7CiAKICAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9u
cy4KICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
LCBpbnQpIE9WRVJSSURFIEZJTkFMOwpAQCAtNzcsMzIgKzc3LDIyIEBAIHByaXZhdGU6CiAgICAg
RGF0ZVRpbWVFZGl0RWxlbWVudCYgbV9lZGl0RWxlbWVudDsKICAgICBjb25zdCBEYXRlQ29tcG9u
ZW50cyBtX2RhdGVWYWx1ZTsKICAgICBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzJiBtX3BhcmFtZXRlcnM7Ci0gICAgaW50IG1fbWluRGF5OwotICAgIGludCBtX21h
eERheTsKLSAgICBpbnQgbV9taW5Ib3VyMjM7Ci0gICAgaW50IG1fbWF4SG91cjIzOwotICAgIGlu
dCBtX21pbk1pbnV0ZTsKLSAgICBpbnQgbV9tYXhNaW51dGU7Ci0gICAgaW50IG1fbWluU2Vjb25k
OwotICAgIGludCBtX21heFNlY29uZDsKLSAgICBpbnQgbV9taW5NaWxsaXNlY29uZDsKLSAgICBp
bnQgbV9tYXhNaWxsaXNlY29uZDsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJh
bmdlIG1fZGF5UmFuZ2U7CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZSBt
X2hvdXIyM1JhbmdlOworICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2UgbV9t
aW51dGVSYW5nZTsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlIG1fc2Vj
b25kUmFuZ2U7CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZSBtX21pbGxp
c2Vjb25kUmFuZ2U7CiB9OwogCiBEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWls
ZGVyKERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1udCwgY29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGVWYWx1ZSkKICAgICA6IG1fZWRpdEVsZW1lbnQoZWxlbW50KQogICAgICwgbV9kYXRl
VmFsdWUoZGF0ZVZhbHVlKQogICAgICwgbV9wYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpCi0g
ICAgLCBtX21pbkRheSgxKQotICAgICwgbV9tYXhEYXkoMzEpCi0gICAgLCBtX21pbkhvdXIyMygw
KQotICAgICwgbV9tYXhIb3VyMjMoMjMpCi0gICAgLCBtX21pbk1pbnV0ZSgwKQotICAgICwgbV9t
YXhNaW51dGUoNTkpCi0gICAgLCBtX21pblNlY29uZCgwKQotICAgICwgbV9tYXhTZWNvbmQoNTkp
Ci0gICAgLCBtX21pbk1pbGxpc2Vjb25kKDApCi0gICAgLCBtX21heE1pbGxpc2Vjb25kKDk5OSkK
KyAgICAsIG1fZGF5UmFuZ2UoMSwgMzEpCisgICAgLCBtX2hvdXIyM1JhbmdlKDAsIDIzKQorICAg
ICwgbV9taW51dGVSYW5nZSgwLCA1OSkKKyAgICAsIG1fc2Vjb25kUmFuZ2UoMCwgNTkpCisgICAg
LCBtX21pbGxpc2Vjb25kUmFuZ2UoMCwgOTk5KQogewogICAgIGlmIChtX2RhdGVWYWx1ZS50eXBl
KCkgPT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUKICAgICAgICAgfHwgbV9kYXRlVmFsdWUudHlwZSgp
ID09IERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxvY2FsCkBAIC0xMTIsMzEgKzEwMiwzMSBAQCBE
YXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1l
bnQmIGVsZW1udCwgY29uc3QgRGF0ZQogICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJzLm1pbmlt
dW0uZnVsbFllYXIoKSA9PSBtX3BhcmFtZXRlcnMubWF4aW11bS5mdWxsWWVhcigpCiAgICAgICAg
ICAgICAmJiBtX3BhcmFtZXRlcnMubWluaW11bS5tb250aCgpID09IG1fcGFyYW1ldGVycy5tYXhp
bXVtLm1vbnRoKCkKICAgICAgICAgICAgICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLm1vbnRoRGF5
KCkgPD0gbV9wYXJhbWV0ZXJzLm1heGltdW0ubW9udGhEYXkoKSkgewotICAgICAgICAgICAgbV9t
aW5EYXkgPSBtX3BhcmFtZXRlcnMubWluaW11bS5tb250aERheSgpOwotICAgICAgICAgICAgbV9t
YXhEYXkgPSBtX3BhcmFtZXRlcnMubWF4aW11bS5tb250aERheSgpOworICAgICAgICAgICAgbV9k
YXlSYW5nZS5taW5pbXVtID0gbV9wYXJhbWV0ZXJzLm1pbmltdW0ubW9udGhEYXkoKTsKKyAgICAg
ICAgICAgIG1fZGF5UmFuZ2UubWF4aW11bSA9IG1fcGFyYW1ldGVycy5tYXhpbXVtLm1vbnRoRGF5
KCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobV9kYXRlVmFsdWUudHlwZSgpID09IERh
dGVDb21wb25lbnRzOjpUaW1lIHx8IG1fbWluRGF5ID09IG1fbWF4RGF5KSB7CisgICAgaWYgKG1f
ZGF0ZVZhbHVlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6VGltZSB8fCBtX2RheVJhbmdlLmlz
U2luZ2xldG9uKCkpIHsKICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5taW5pbXVtLnR5cGUoKSAh
PSBEYXRlQ29tcG9uZW50czo6SW52YWxpZAogICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJzLm1h
eGltdW0udHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpJbnZhbGlkCiAgICAgICAgICAgICAmJiBt
X3BhcmFtZXRlcnMubWluaW11bS5ob3VyKCkgPD0gbV9wYXJhbWV0ZXJzLm1heGltdW0uaG91cigp
KSB7Ci0gICAgICAgICAgICBtX21pbkhvdXIyMyA9IG1fcGFyYW1ldGVycy5taW5pbXVtLmhvdXIo
KTsKLSAgICAgICAgICAgIG1fbWF4SG91cjIzID0gbV9wYXJhbWV0ZXJzLm1heGltdW0uaG91cigp
OworICAgICAgICAgICAgbV9ob3VyMjNSYW5nZS5taW5pbXVtID0gbV9wYXJhbWV0ZXJzLm1pbmlt
dW0uaG91cigpOworICAgICAgICAgICAgbV9ob3VyMjNSYW5nZS5tYXhpbXVtID0gbV9wYXJhbWV0
ZXJzLm1heGltdW0uaG91cigpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1fbWluSG91
cjIzID09IG1fbWF4SG91cjIzICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLm1pbnV0ZSgpIDw9IG1f
cGFyYW1ldGVycy5tYXhpbXVtLm1pbnV0ZSgpKSB7Ci0gICAgICAgIG1fbWluTWludXRlID0gbV9w
YXJhbWV0ZXJzLm1pbmltdW0ubWludXRlKCk7Ci0gICAgICAgIG1fbWF4TWludXRlID0gbV9wYXJh
bWV0ZXJzLm1heGltdW0ubWludXRlKCk7CisgICAgaWYgKG1faG91cjIzUmFuZ2UuaXNTaW5nbGV0
b24oKSAmJiBtX3BhcmFtZXRlcnMubWluaW11bS5taW51dGUoKSA8PSBtX3BhcmFtZXRlcnMubWF4
aW11bS5taW51dGUoKSkgeworICAgICAgICBtX21pbnV0ZVJhbmdlLm1pbmltdW0gPSBtX3BhcmFt
ZXRlcnMubWluaW11bS5taW51dGUoKTsKKyAgICAgICAgbV9taW51dGVSYW5nZS5tYXhpbXVtID0g
bV9wYXJhbWV0ZXJzLm1heGltdW0ubWludXRlKCk7CiAgICAgfQotICAgIGlmIChtX21pbk1pbnV0
ZSA9PSBtX21heE1pbnV0ZSAmJiBtX3BhcmFtZXRlcnMubWluaW11bS5zZWNvbmQoKSA8PSBtX3Bh
cmFtZXRlcnMubWF4aW11bS5zZWNvbmQoKSkgewotICAgICAgICBtX21pblNlY29uZCA9IG1fcGFy
YW1ldGVycy5taW5pbXVtLnNlY29uZCgpOwotICAgICAgICBtX21heFNlY29uZCA9IG1fcGFyYW1l
dGVycy5tYXhpbXVtLnNlY29uZCgpOworICAgIGlmIChtX21pbnV0ZVJhbmdlLmlzU2luZ2xldG9u
KCkgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0uc2Vjb25kKCkgPD0gbV9wYXJhbWV0ZXJzLm1heGlt
dW0uc2Vjb25kKCkpIHsKKyAgICAgICAgbV9zZWNvbmRSYW5nZS5taW5pbXVtID0gbV9wYXJhbWV0
ZXJzLm1pbmltdW0uc2Vjb25kKCk7CisgICAgICAgIG1fc2Vjb25kUmFuZ2UubWF4aW11bSA9IG1f
cGFyYW1ldGVycy5tYXhpbXVtLnNlY29uZCgpOwogICAgIH0KLSAgICBpZiAobV9taW5TZWNvbmQg
PT0gbV9tYXhTZWNvbmQgJiYgbV9wYXJhbWV0ZXJzLm1pbmltdW0ubWlsbGlzZWNvbmQoKSA8PSBt
X3BhcmFtZXRlcnMubWF4aW11bS5taWxsaXNlY29uZCgpKSB7Ci0gICAgICAgIG1fbWluTWlsbGlz
ZWNvbmQgPSBtX3BhcmFtZXRlcnMubWluaW11bS5taWxsaXNlY29uZCgpOwotICAgICAgICBtX21h
eE1pbGxpc2Vjb25kID0gbV9wYXJhbWV0ZXJzLm1heGltdW0ubWlsbGlzZWNvbmQoKTsKKyAgICBp
ZiAobV9zZWNvbmRSYW5nZS5pc1NpbmdsZXRvbigpICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLm1p
bGxpc2Vjb25kKCkgPD0gbV9wYXJhbWV0ZXJzLm1heGltdW0ubWlsbGlzZWNvbmQoKSkgeworICAg
ICAgICBtX21pbGxpc2Vjb25kUmFuZ2UubWluaW11bSA9IG1fcGFyYW1ldGVycy5taW5pbXVtLm1p
bGxpc2Vjb25kKCk7CisgICAgICAgIG1fbWlsbGlzZWNvbmRSYW5nZS5tYXhpbXVtID0gbV9wYXJh
bWV0ZXJzLm1heGltdW0ubWlsbGlzZWNvbmQoKTsKICAgICB9CiB9CiAKQEAgLTE2Miw3ICsxNTIs
NyBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjbwogCiAgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsK
ICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOiB7Ci0gICAgICAg
IFJlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX3BhcmFtZXRlcnMucGxhY2Vo
b2xkZXJGb3JEYXksIG1fbWluRGF5LCBtX21heERheSk7CisgICAgICAgIFJlZlB0cjxEYXRlVGlt
ZUZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX3BhcmFtZXRlcnMucGxhY2Vob2xkZXJGb3JEYXksIG1f
ZGF5UmFuZ2UpOwogICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKICAgICAg
ICAgaWYgKHNob3VsZERheU9mTW9udGhGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAgIGZp
ZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CkBAIC0xNzIsOCArMTYyLDggQEAgdm9p
ZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVIb3VyMTE6IHsKLSAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJzKHN0YXRp
Y19jYXN0PGludD4obXNQZXJIb3VyKSwgc3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIgKiAxMikp
OwotICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVI
b3VyMTFGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9taW5I
b3VyMjMsIG1fbWF4SG91cjIzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKG1zUGVySG91ciwgbXNQZXJIb3Vy
ICogMTIpOworICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0
ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwg
bV9ob3VyMjNSYW5nZSwgc3RlcCk7CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmll
bGQpOwogICAgICAgICBpZiAoc2hvdWxkSG91ckZpZWxkRGlzYWJsZWQoKSkgewogICAgICAgICAg
ICAgZmllbGQtPnNldFZhbHVlQXNEYXRlKG1fZGF0ZVZhbHVlKTsKQEAgLTE4Myw4ICsxNzMsOCBA
QCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjbwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUhvdXIxMjogewotICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IGNyZWF0ZU51bWVyaWNGaWVsZFBhcmFtZXRlcnMo
c3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIpLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVySG91ciAq
IDEyKSk7Ci0gICAgICAgIFJlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRl
VGltZUhvdXIxMkZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBt
X21pbkhvdXIyMywgbV9tYXhIb3VyMjMsIHBhcmFtZXRlcnMpOworICAgICAgICBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQ6OlN0ZXAgc3RlcCA9IGNyZWF0ZVN0ZXAobXNQZXJIb3VyLCBtc1Bl
ckhvdXIgKiAxMik7CisgICAgICAgIFJlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQg
PSBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVt
ZW50LCBtX2hvdXIyM1JhbmdlLCBzdGVwKTsKICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVs
ZChmaWVsZCk7CiAgICAgICAgIGlmIChzaG91bGRIb3VyRmllbGREaXNhYmxlZCgpKSB7CiAgICAg
ICAgICAgICBmaWVsZC0+c2V0VmFsdWVBc0RhdGUobV9kYXRlVmFsdWUpOwpAQCAtMTk0LDggKzE4
NCw4IEBAIHZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvCiAgICAgfQogCiAgICAgY2FzZSBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSG91cjIzOiB7Ci0gICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gY3JlYXRlTnVtZXJpY0ZpZWxkUGFyYW1l
dGVycyhzdGF0aWNfY2FzdDxpbnQ+KG1zUGVySG91ciksIHN0YXRpY19jYXN0PGludD4obXNQZXJE
YXkpKTsKLSAgICAgICAgUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVU
aW1lSG91cjIzRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIG1f
bWluSG91cjIzLCBtX21heEhvdXIyMywgcGFyYW1ldGVycyk7CisgICAgICAgIERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCBzdGVwID0gY3JlYXRlU3RlcChtc1BlckhvdXIsIG1zUGVy
RGF5KTsKKyAgICAgICAgUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCA9IERhdGVU
aW1lSG91cjIzRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIG1f
aG91cjIzUmFuZ2UsIHN0ZXApOwogICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxk
KTsKICAgICAgICAgaWYgKHNob3VsZEhvdXJGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAg
IGZpZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CkBAIC0yMDUsOCArMTk1LDggQEAg
dm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVIb3VyMjQ6IHsKLSAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBjcmVhdGVOdW1lcmljRmllbGRQYXJhbWV0ZXJzKHN0
YXRpY19jYXN0PGludD4obXNQZXJIb3VyKSwgc3RhdGljX2Nhc3Q8aW50Pihtc1BlckRheSkpOwot
ICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVIb3Vy
MjRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9taW5Ib3Vy
MjMsIG1fbWF4SG91cjIzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKG1zUGVySG91ciwgbXNQZXJEYXkpOwor
ICAgICAgICBSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVIb3Vy
MjRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9ob3VyMjNS
YW5nZSwgc3RlcCk7CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQpOwogICAg
ICAgICBpZiAoc2hvdWxkSG91ckZpZWxkRGlzYWJsZWQoKSkgewogICAgICAgICAgICAgZmllbGQt
PnNldFZhbHVlQXNEYXRlKG1fZGF0ZVZhbHVlKTsKQEAgLTIxNiw4ICsyMDYsOCBAQCB2b2lkIERh
dGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBm
aWVsZFR5cGUsIGludCBjbwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZU1pbnV0ZTogewotICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFt
ZXRlcnMgcGFyYW1ldGVycyA9IGNyZWF0ZU51bWVyaWNGaWVsZFBhcmFtZXRlcnMoc3RhdGljX2Nh
c3Q8aW50Pihtc1Blck1pbnV0ZSksIHN0YXRpY19jYXN0PGludD4obXNQZXJIb3VyKSk7Ci0gICAg
ICAgIFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVN
aW51dGVGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9taW5N
aW51dGUsIG1fbWF4TWludXRlLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKG1zUGVyTWludXRlLCBtc1Blckhv
dXIpOworICAgICAgICBSZWZQdHI8RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50PiBmaWVsZCA9
IERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1l
bnQsIG1fbWludXRlUmFuZ2UsIHN0ZXApOwogICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxk
KGZpZWxkKTsKICAgICAgICAgaWYgKHNob3VsZE1pbnV0ZUZpZWxkRGlzYWJsZWQoKSkgewogICAg
ICAgICAgICAgZmllbGQtPnNldFZhbHVlQXNEYXRlKG1fZGF0ZVZhbHVlKTsKQEAgLTI0Niw3ICsy
MzYsNyBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjbwogICAgICAgICAgICAgZmllbGQgPSBEYXRl
VGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxl
bWVudCwgZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1fcGFy
YW1ldGVycy5sb2NhbGUubW9udGhMYWJlbHMoKSA6IG1fcGFyYW1ldGVycy5sb2NhbGUuc3RhbmRB
bG9uZU1vbnRoTGFiZWxzKCksIG1pbk1vbnRoLCBtYXhNb250aCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGZpZWxkID0gRGF0ZVRpbWVNb250aEZp
ZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX3BhcmFtZXRlcnMu
cGxhY2Vob2xkZXJGb3JNb250aCwgbWluTW9udGggKyAxLCBtYXhNb250aCArIDEpOworICAgICAg
ICAgICAgZmllbGQgPSBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
IG1fZWRpdEVsZW1lbnQsIG1fcGFyYW1ldGVycy5wbGFjZWhvbGRlckZvck1vbnRoLCBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlKG1pbk1vbnRoICsgMSwgbWF4TW9udGggKyAxKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBtX2VkaXRFbGVtZW50LmFk
ZEZpZWxkKGZpZWxkKTsKQEAgLTI2OCw4ICsyNTgsOCBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxk
ZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBj
bwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZDogewot
ICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMgcGFyYW1ldGVy
cyA9IGNyZWF0ZU51bWVyaWNGaWVsZFBhcmFtZXRlcnMoc3RhdGljX2Nhc3Q8aW50Pihtc1BlclNl
Y29uZCksIHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKTsKLSAgICAgICAgUmVmUHRyPERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZVNlY29uZEZpZWxkRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX21pblNlY29uZCwgbV9tYXhT
ZWNvbmQsIHBhcmFtZXRlcnMpOworICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OlN0ZXAgc3RlcCA9IGNyZWF0ZVN0ZXAobXNQZXJTZWNvbmQsIG1zUGVyTWludXRlKTsKKyAgICAg
ICAgUmVmUHRyPERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZVNl
Y29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX3NlY29u
ZFJhbmdlLCBzdGVwKTsKICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChmaWVsZCk7CiAg
ICAgICAgIGlmIChzaG91bGRTZWNvbmRGaWVsZERpc2FibGVkKCkpIHsKICAgICAgICAgICAgIGZp
ZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CkBAIC0yODQsOCArMjc0LDggQEAgdm9p
ZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kOiB7Ci0gICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gY3JlYXRlTnVtZXJpY0ZpZWxkUGFyYW1l
dGVycygxLCBzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyU2Vjb25kKSk7Ci0gICAgICAgIFJlZlB0cjxE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVNaWxsaXNlY29uZEZp
ZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX21pbk1pbGxpc2Vj
b25kLCBtX21heE1pbGxpc2Vjb25kLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50OjpTdGVwIHN0ZXAgPSBjcmVhdGVTdGVwKDEsIG1zUGVyU2Vjb25kKTsK
KyAgICAgICAgUmVmUHRyPERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRl
VGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1l
bnQsIG1fbWlsbGlzZWNvbmRSYW5nZSwgc3RlcCk7CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRk
RmllbGQoZmllbGQpOwogICAgICAgICBpZiAoc2hvdWxkTWlsbGlzZWNvbmRGaWVsZERpc2FibGVk
KCkpIHsKICAgICAgICAgICAgIGZpZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CkBA
IC0yOTUsMTYgKzI4NSwxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjbwogICAgIH0KIAogICAg
IGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXI6IHsKLSAgICAgICAgaW50
IG1pbldlZWsgPSBEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWtOdW1iZXI7Ci0gICAgICAgIGlu
dCBtYXhXZWVrID0gRGF0ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrTnVtYmVyOworICAgICAgICBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlIHJhbmdlKERhdGVDb21wb25lbnRzOjpt
aW5pbXVtV2Vla051bWJlciwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrTnVtYmVyKTsKICAg
ICAgICAgaWYgKG1fcGFyYW1ldGVycy5taW5pbXVtLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6
SW52YWxpZAogICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJzLm1heGltdW0udHlwZSgpICE9IERh
dGVDb21wb25lbnRzOjpJbnZhbGlkCiAgICAgICAgICAgICAmJiBtX3BhcmFtZXRlcnMubWluaW11
bS5mdWxsWWVhcigpID09IG1fcGFyYW1ldGVycy5tYXhpbXVtLmZ1bGxZZWFyKCkKICAgICAgICAg
ICAgICYmIG1fcGFyYW1ldGVycy5taW5pbXVtLndlZWsoKSA8PSBtX3BhcmFtZXRlcnMubWF4aW11
bS53ZWVrKCkpIHsKLSAgICAgICAgICAgIG1pbldlZWsgPSBtX3BhcmFtZXRlcnMubWluaW11bS53
ZWVrKCk7Ci0gICAgICAgICAgICBtYXhXZWVrID0gbV9wYXJhbWV0ZXJzLm1heGltdW0ud2Vlaygp
OworICAgICAgICAgICAgcmFuZ2UubWluaW11bSA9IG1fcGFyYW1ldGVycy5taW5pbXVtLndlZWso
KTsKKyAgICAgICAgICAgIHJhbmdlLm1heGltdW0gPSBtX3BhcmFtZXRlcnMubWF4aW11bS53ZWVr
KCk7CiAgICAgICAgIH0KLSAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZVdl
ZWtGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbWluV2Vlaywg
bWF4V2VlaykpOworICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lV2Vla0Zp
ZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCByYW5nZSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNDYsMTggKzMzNSwxOCBAQCB2b2lkIERhdGVUaW1l
RWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5
cGUsIGludCBjbwogYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRBTVBNRmllbGREaXNh
YmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNob3VsZEhvdXJGaWVsZERpc2FibGVkKCkKLSAg
ICAgICAgfHwgKG1fbWluSG91cjIzIDwgMTIgJiYgbV9tYXhIb3VyMjMgPCAxMiAmJiBtX2RhdGVW
YWx1ZS5ob3VyKCkgPCAxMikKLSAgICAgICAgfHwgKG1fbWluSG91cjIzID49IDEyICYmIG1fbWF4
SG91cjIzID49IDEyICYmIG1fZGF0ZVZhbHVlLmhvdXIoKSA+PSAxMik7CisgICAgICAgIHx8ICht
X2hvdXIyM1JhbmdlLm1pbmltdW0gPCAxMiAmJiBtX2hvdXIyM1JhbmdlLm1heGltdW0gPCAxMiAm
JiBtX2RhdGVWYWx1ZS5ob3VyKCkgPCAxMikKKyAgICAgICAgfHwgKG1faG91cjIzUmFuZ2UubWlu
aW11bSA+PSAxMiAmJiBtX2hvdXIyM1JhbmdlLm1heGltdW0gPj0gMTIgJiYgbV9kYXRlVmFsdWUu
aG91cigpID49IDEyKTsKIH0KIAogYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGREYXlP
Zk1vbnRoRmllbGREaXNhYmxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWluRGF5ID09IG1f
bWF4RGF5ICYmIG1fbWluRGF5ID09IG1fZGF0ZVZhbHVlLm1vbnRoRGF5KCkgJiYgbV9kYXRlVmFs
dWUudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlOworICAgIHJldHVybiBtX2RheVJhbmdl
LmlzU2luZ2xldG9uKCkgJiYgbV9kYXlSYW5nZS5taW5pbXVtID09IG1fZGF0ZVZhbHVlLm1vbnRo
RGF5KCkgJiYgbV9kYXRlVmFsdWUudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlOwogfQog
CiBib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnNob3VsZEhvdXJGaWVsZERpc2FibGVkKCkgY29u
c3QKIHsKLSAgICBpZiAobV9taW5Ib3VyMjMgPT0gbV9tYXhIb3VyMjMgJiYgbV9taW5Ib3VyMjMg
PT0gbV9kYXRlVmFsdWUuaG91cigpCisgICAgaWYgKG1faG91cjIzUmFuZ2UuaXNTaW5nbGV0b24o
KSAmJiBtX2hvdXIyM1JhbmdlLm1pbmltdW0gPT0gbV9kYXRlVmFsdWUuaG91cigpCiAgICAgICAg
ICYmICEoc2hvdWxkTWludXRlRmllbGREaXNhYmxlZCgpICYmIHNob3VsZFNlY29uZEZpZWxkRGlz
YWJsZWQoKSAmJiBzaG91bGRNaWxsaXNlY29uZEZpZWxkRGlzYWJsZWQoKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCkBAIC0zNzgsNyArMzY3LDcgQEAgYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVy
OjpzaG91bGRIb3VyRmllbGREaXNhYmxlZCgpIGNvbnN0CiAKIGJvb2wgRGF0ZVRpbWVFZGl0QnVp
bGRlcjo6c2hvdWxkTWlsbGlzZWNvbmRGaWVsZERpc2FibGVkKCkgY29uc3QKIHsKLSAgICBpZiAo
bV9taW5NaWxsaXNlY29uZCA9PSBtX21heE1pbGxpc2Vjb25kICYmIG1fbWluTWlsbGlzZWNvbmQg
PT0gbV9kYXRlVmFsdWUubWlsbGlzZWNvbmQoKSkKKyAgICBpZiAobV9taWxsaXNlY29uZFJhbmdl
LmlzU2luZ2xldG9uKCkgJiYgbV9taWxsaXNlY29uZFJhbmdlLm1pbmltdW0gPT0gbV9kYXRlVmFs
dWUubWlsbGlzZWNvbmQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjb25zdCBEZWNp
bWFsIGRlY2ltYWxNc1BlclNlY29uZChzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyU2Vjb25kKSk7CkBA
IC0zODcsNyArMzc2LDcgQEAgYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpzaG91bGRNaWxsaXNl
Y29uZEZpZWxkRGlzYWJsZWQoKSBjb25zdAogCiBib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnNo
b3VsZE1pbnV0ZUZpZWxkRGlzYWJsZWQoKSBjb25zdAogewotICAgIGlmIChtX21pbk1pbnV0ZSA9
PSBtX21heE1pbnV0ZSAmJiBtX21pbk1pbnV0ZSA9PSBtX2RhdGVWYWx1ZS5taW51dGUoKSkKKyAg
ICBpZiAobV9taW51dGVSYW5nZS5pc1NpbmdsZXRvbigpICYmIG1fbWludXRlUmFuZ2UubWluaW11
bSA9PSBtX2RhdGVWYWx1ZS5taW51dGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBj
b25zdCBEZWNpbWFsIGRlY2ltYWxNc1BlckhvdXIoc3RhdGljX2Nhc3Q8aW50Pihtc1BlckhvdXIp
KTsKQEAgLTM5Nyw3ICszODYsNyBAQCBib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnNob3VsZE1p
bnV0ZUZpZWxkRGlzYWJsZWQoKSBjb25zdAogCiBib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnNo
b3VsZFNlY29uZEZpZWxkRGlzYWJsZWQoKSBjb25zdAogewotICAgIGlmIChtX21pblNlY29uZCA9
PSBtX21heFNlY29uZCAmJiBtX21pblNlY29uZCA9PSBtX2RhdGVWYWx1ZS5zZWNvbmQoKSkKKyAg
ICBpZiAobV9zZWNvbmRSYW5nZS5pc1NpbmdsZXRvbigpICYmIG1fc2Vjb25kUmFuZ2UubWluaW11
bSA9PSBtX2RhdGVWYWx1ZS5zZWNvbmQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBj
b25zdCBEZWNpbWFsIGRlY2ltYWxNc1Blck1pbnV0ZShzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWlu
dXRlKSk7CkBAIC00MjgsMjMgKzQxNywyNSBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZp
c2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV9lZGl0RWxlbWVudC5maWVsZHNX
cmFwcGVyRWxlbWVudCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KTsKIH0KIAotRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzIERhdGVUaW1lRWRpdEJ1aWxkZXI6OmNyZWF0ZU51
bWVyaWNGaWVsZFBhcmFtZXRlcnMoY29uc3QgRGVjaW1hbCYgbXNQZXJGaWVsZFVuaXQsIGNvbnN0
IERlY2ltYWwmIG1zUGVyRmllbGRTaXplKSBjb25zdAorRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50OjpTdGVwIERhdGVUaW1lRWRpdEJ1aWxkZXI6OmNyZWF0ZVN0ZXAoZG91YmxlIG1zUGVyRmll
bGRVbml0LCBkb3VibGUgbXNQZXJGaWVsZFNpemUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFtc1Bl
ckZpZWxkVW5pdC5pc1plcm8oKSk7Ci0gICAgQVNTRVJUKCFtc1BlckZpZWxkU2l6ZS5pc1plcm8o
KSk7CisgICAgY29uc3QgRGVjaW1hbCBtc1BlckZpZWxkVW5pdERlY2ltYWwoc3RhdGljX2Nhc3Q8
aW50Pihtc1BlckZpZWxkVW5pdCkpOworICAgIGNvbnN0IERlY2ltYWwgbXNQZXJGaWVsZFNpemVE
ZWNpbWFsKHN0YXRpY19jYXN0PGludD4obXNQZXJGaWVsZFNpemUpKTsKICAgICBEZWNpbWFsIHN0
ZXBNaWxsaXNlY29uZHMgPSBzdGVwUmFuZ2UoKS5zdGVwKCk7CisgICAgQVNTRVJUKCFtc1BlckZp
ZWxkVW5pdERlY2ltYWwuaXNaZXJvKCkpOworICAgIEFTU0VSVCghbXNQZXJGaWVsZFNpemVEZWNp
bWFsLmlzWmVybygpKTsKICAgICBBU1NFUlQoIXN0ZXBNaWxsaXNlY29uZHMuaXNaZXJvKCkpOwog
Ci0gICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
MSwgMCk7CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpTdGVwIHN0ZXAoMSwgMCk7
CiAKLSAgICBpZiAoc3RlcE1pbGxpc2Vjb25kcy5yZW1haW5kZXIobXNQZXJGaWVsZFNpemUpLmlz
WmVybygpKQotICAgICAgICBzdGVwTWlsbGlzZWNvbmRzID0gbXNQZXJGaWVsZFNpemU7CisgICAg
aWYgKHN0ZXBNaWxsaXNlY29uZHMucmVtYWluZGVyKG1zUGVyRmllbGRTaXplRGVjaW1hbCkuaXNa
ZXJvKCkpCisgICAgICAgIHN0ZXBNaWxsaXNlY29uZHMgPSBtc1BlckZpZWxkU2l6ZURlY2ltYWw7
CiAKLSAgICBpZiAobXNQZXJGaWVsZFNpemUucmVtYWluZGVyKHN0ZXBNaWxsaXNlY29uZHMpLmlz
WmVybygpICYmIHN0ZXBNaWxsaXNlY29uZHMucmVtYWluZGVyKG1zUGVyRmllbGRVbml0KS5pc1pl
cm8oKSkgewotICAgICAgICBwYXJhbWV0ZXJzLnN0ZXAgPSBzdGF0aWNfY2FzdDxpbnQ+KChzdGVw
TWlsbGlzZWNvbmRzIC8gbXNQZXJGaWVsZFVuaXQpLnRvRG91YmxlKCkpOwotICAgICAgICBwYXJh
bWV0ZXJzLnN0ZXBCYXNlID0gc3RhdGljX2Nhc3Q8aW50Pigoc3RlcFJhbmdlKCkuc3RlcEJhc2Uo
KSAvIG1zUGVyRmllbGRVbml0KS5mbG9vcigpLnJlbWFpbmRlcihtc1BlckZpZWxkU2l6ZSAvIG1z
UGVyRmllbGRVbml0KS50b0RvdWJsZSgpKTsKKyAgICBpZiAobXNQZXJGaWVsZFNpemVEZWNpbWFs
LnJlbWFpbmRlcihzdGVwTWlsbGlzZWNvbmRzKS5pc1plcm8oKSAmJiBzdGVwTWlsbGlzZWNvbmRz
LnJlbWFpbmRlcihtc1BlckZpZWxkVW5pdERlY2ltYWwpLmlzWmVybygpKSB7CisgICAgICAgIHN0
ZXAuc3RlcCA9IHN0YXRpY19jYXN0PGludD4oKHN0ZXBNaWxsaXNlY29uZHMgLyBtc1BlckZpZWxk
VW5pdERlY2ltYWwpLnRvRG91YmxlKCkpOworICAgICAgICBzdGVwLnN0ZXBCYXNlID0gc3RhdGlj
X2Nhc3Q8aW50Pigoc3RlcFJhbmdlKCkuc3RlcEJhc2UoKSAvIG1zUGVyRmllbGRVbml0RGVjaW1h
bCkuZmxvb3IoKS5yZW1haW5kZXIobXNQZXJGaWVsZFNpemVEZWNpbWFsIC8gbXNQZXJGaWVsZFVu
aXREZWNpbWFsKS50b0RvdWJsZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHBhcmFtZXRlcnM7Cisg
ICAgcmV0dXJuIHN0ZXA7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwCmluZGV4IDA2MDU5Mzg2OGZiNDQ0OGE5YTAyMTBjMGRmOTJjNmI0ZTc4MzEzYTAuLmM4NDA2
MjI2NzgxYjAyMzMyMzU5ZTUyMzFkNDBkZmRlODFmOTMyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtNzEsMTUg
KzcxLDE1IEBAIHZvaWQgRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRGF5RmllbGRF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3Qg
U3RyaW5nJiBwbGFjZWhvbGRlciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKQotICAgIDogRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5nZShtaW5p
bXVtLCBtYXhpbXVtKSwgUmFuZ2UoMSwgMzEpLCBwbGFjZWhvbGRlcikKK0RhdGVUaW1lRGF5Rmll
bGRFbGVtZW50OjpEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGNvbnN0IFJh
bmdlJiByYW5nZSkKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKDEsIDMxKSwgcGxhY2Vob2xkZXIpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25z
dCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pCitQYXNzUmVm
UHRyPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgU3Ry
aW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmIHJhbmdlKQogewogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkYXlQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVk
aXQtZGF5LWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IFJlZlB0cjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0
ZVRpbWVEYXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHBsYWNlaG9sZGVyLmlz
RW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVyLCBtaW5pbXVtLCBtYXhp
bXVtKSk7CisgICAgUmVmUHRyPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0
UmVmKG5ldyBEYXRlVGltZURheUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcGxh
Y2Vob2xkZXIuaXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCItLSIpIDogcGxhY2Vob2xkZXIsIHJh
bmdlKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUoZGF5UHN1ZWRvSWQsIEFYRGF5T2ZNb250aEZp
ZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtMTEyLDggKzEx
Miw4IEBAIHZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZp
ZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZTo6RGF0ZVRpbWVIb3VyRmll
bGRFbGVtZW50QmFzZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgUmFuZ2UmIGhhcmRMaW1pdHMsIGNvbnN0IERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAgICA6IERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIGhh
cmRMaW1pdHMsICItLSIsIHBhcmFtZXRlcnMpCitEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNl
OjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRP
d25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBSYW5nZSYgaGFyZExp
bWl0cywgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIGhhcmRMaW1pdHMsICItLSIsIHN0ZXApCiB7
CiB9CiAKQEAgLTE0OCwyNiArMTQ4LDI1IEBAIHZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50
QmFzZTo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGCiB9CiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lSG91cjExRmllbGRFbGVt
ZW50OjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgIDogRGF0
ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZShkb2N1bWVudCwgZmllbGRPd25lciwgUmFuZ2UobWlu
aW11bSwgbWF4aW11bSksIFJhbmdlKDAsIDExKSwgcGFyYW1ldGVycykKK0RhdGVUaW1lSG91cjEx
RmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1l
bnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3Rl
cCYgc3RlcCkKKyAgICA6IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UoZG9jdW1lbnQsIGZp
ZWxkT3duZXIsIHJhbmdlLCBSYW5nZSgwLCAxMSksIHN0ZXApCiB7CiB9CiAKLVBhc3NSZWZQdHI8
RGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWlu
aW11bUhvdXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVIb3Vy
MTFGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91cjExRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgaG91cjIz
UmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCiB7Ci0gICAgQVNTRVJUKG1pbmltdW1Ib3VyMjMgPj0g
MCk7Ci0gICAgQVNTRVJUKG1heGltdW1Ib3VyMjMgPD0gMjMpOwotICAgIEFTU0VSVChtaW5pbXVt
SG91cjIzIDw9IG1heGltdW1Ib3VyMjMpOwotICAgIGludCBtaW5pbXVtID0gMCwgbWF4aW11bSA9
IDExOwotICAgIGlmIChtYXhpbXVtSG91cjIzIDwgMTIpIHsKLSAgICAgICAgbWluaW11bSA9IG1p
bmltdW1Ib3VyMjM7Ci0gICAgICAgIG1heGltdW0gPSBtYXhpbXVtSG91cjIzOwotICAgIH0gZWxz
ZSBpZiAobWluaW11bUhvdXIyMyA+PSAxMikgewotICAgICAgICBtaW5pbXVtID0gbWluaW11bUhv
dXIyMyAtIDEyOwotICAgICAgICBtYXhpbXVtID0gbWF4aW11bUhvdXIyMyAtIDEyOworICAgIEFT
U0VSVChob3VyMjNSYW5nZS5taW5pbXVtID49IDApOworICAgIEFTU0VSVChob3VyMjNSYW5nZS5t
YXhpbXVtIDw9IDIzKTsKKyAgICBBU1NFUlQoaG91cjIzUmFuZ2UubWluaW11bSA8PSBob3VyMjNS
YW5nZS5tYXhpbXVtKTsKKyAgICBSYW5nZSByYW5nZSgwLCAxMSk7CisgICAgaWYgKGhvdXIyM1Jh
bmdlLm1heGltdW0gPCAxMikKKyAgICAgICAgcmFuZ2UgPSBob3VyMjNSYW5nZTsKKyAgICBlbHNl
IGlmIChob3VyMjNSYW5nZS5taW5pbXVtID49IDEyKSB7CisgICAgICAgIHJhbmdlLm1pbmltdW0g
PSBob3VyMjNSYW5nZS5taW5pbXVtIC0gMTI7CisgICAgICAgIHJhbmdlLm1heGltdW0gPSBob3Vy
MjNSYW5nZS5tYXhpbXVtIC0gMTI7CiAgICAgfQogCi0gICAgUmVmUHRyPERhdGVUaW1lSG91cjEx
RmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUhvdXIxMUZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgbWluaW11bSwgbWF4aW11bSwgcGFyYW1ldGVycykp
OworICAgIFJlZlB0cjxEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJl
ZihuZXcgRGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJh
bmdlLCBzdGVwKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUoKTsKICAgICByZXR1cm4gZmllbGQu
cmVsZWFzZSgpOwogfQpAQCAtMTkwLDMzICsxODksMzIgQEAgdm9pZCBEYXRlVGltZUhvdXIxMUZp
ZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50IHZhbHVlLCBFdmVudEJlaGF2aW9yIGV2
ZW4KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZUhvdXIxMkZp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAg
ICA6IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJh
bmdlKG1pbmltdW0sIG1heGltdW0pLCBSYW5nZSgxLCAxMiksIHBhcmFtZXRlcnMpCitEYXRlVGlt
ZUhvdXIxMkZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNv
bnN0IFN0ZXAmIHN0ZXApCisgICAgOiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlKGRvY3Vt
ZW50LCBmaWVsZE93bmVyLCByYW5nZSwgUmFuZ2UoMSwgMTIpLCBzdGVwKQogewogfQogCi1QYXNz
UmVmUHRyPERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXIxMkZpZWxkRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwg
aW50IG1pbmltdW1Ib3VyMjMsIGludCBtYXhpbXVtSG91cjIzLCBjb25zdCBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzUmVmUHRyPERhdGVU
aW1lSG91cjEyRmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2Um
IGhvdXIyM1JhbmdlLCBjb25zdCBTdGVwJiBzdGVwKQogewotICAgIEFTU0VSVChtaW5pbXVtSG91
cjIzID49IDApOwotICAgIEFTU0VSVChtYXhpbXVtSG91cjIzIDw9IDIzKTsKLSAgICBBU1NFUlQo
bWluaW11bUhvdXIyMyA8PSBtYXhpbXVtSG91cjIzKTsKLSAgICBpbnQgbWluaW11bSA9IDEsIG1h
eGltdW0gPSAxMjsKLSAgICBpZiAobWF4aW11bUhvdXIyMyA8IDEyKSB7Ci0gICAgICAgIG1pbmlt
dW0gPSBtaW5pbXVtSG91cjIzOwotICAgICAgICBtYXhpbXVtID0gbWF4aW11bUhvdXIyMzsKLSAg
ICB9IGVsc2UgaWYgKG1pbmltdW1Ib3VyMjMgPj0gMTIpIHsKLSAgICAgICAgbWluaW11bSA9IG1p
bmltdW1Ib3VyMjMgLSAxMjsKLSAgICAgICAgbWF4aW11bSA9IG1heGltdW1Ib3VyMjMgLSAxMjsK
KyAgICBBU1NFUlQoaG91cjIzUmFuZ2UubWluaW11bSA+PSAwKTsKKyAgICBBU1NFUlQoaG91cjIz
UmFuZ2UubWF4aW11bSA8PSAyMyk7CisgICAgQVNTRVJUKGhvdXIyM1JhbmdlLm1pbmltdW0gPD0g
aG91cjIzUmFuZ2UubWF4aW11bSk7CisgICAgUmFuZ2UgcmFuZ2UoMSwgMTIpOworICAgIGlmICho
b3VyMjNSYW5nZS5tYXhpbXVtIDwgMTIpCisgICAgICAgIHJhbmdlID0gaG91cjIzUmFuZ2U7Cisg
ICAgZWxzZSBpZiAoaG91cjIzUmFuZ2UubWluaW11bSA+PSAxMikgeworICAgICAgICByYW5nZS5t
aW5pbXVtID0gaG91cjIzUmFuZ2UubWluaW11bSAtIDEyOworICAgICAgICByYW5nZS5tYXhpbXVt
ID0gaG91cjIzUmFuZ2UubWF4aW11bSAtIDEyOwogICAgIH0KLSAgICBpZiAoIW1pbmltdW0pCi0g
ICAgICAgIG1pbmltdW0gPSAxMjsKLSAgICBpZiAoIW1heGltdW0pCi0gICAgICAgIG1heGltdW0g
PSAxMjsKLSAgICBpZiAobWluaW11bSA+IG1heGltdW0pIHsKLSAgICAgICAgbWluaW11bSA9IDE7
Ci0gICAgICAgIG1heGltdW0gPSAxMjsKKyAgICBpZiAoIXJhbmdlLm1pbmltdW0pCisgICAgICAg
IHJhbmdlLm1pbmltdW0gPSAxMjsKKyAgICBpZiAoIXJhbmdlLm1heGltdW0pCisgICAgICAgIHJh
bmdlLm1heGltdW0gPSAxMjsKKyAgICBpZiAocmFuZ2UubWluaW11bSA+IHJhbmdlLm1heGltdW0p
IHsKKyAgICAgICAgcmFuZ2UubWluaW11bSA9IDE7CisgICAgICAgIHJhbmdlLm1heGltdW0gPSAx
MjsKICAgICB9Ci0gICAgUmVmUHRyPERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50PiBmaWVsZCA9
IGFkb3B0UmVmKG5ldyBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lciwgbWluaW11bSwgbWF4aW11bSwgcGFyYW1ldGVycykpOworICAgIFJlZlB0cjxEYXRlVGlt
ZUhvdXIxMkZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVIb3VyMTJG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBzdGVwKSk7CiAgICAgZmll
bGQtPmluaXRpYWxpemUoKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtMjM0
LDE3ICsyMzIsMTcgQEAgdm9pZCBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudDo6c2V0VmFsdWVB
c0ludGVnZXIoaW50IHZhbHVlLCBFdmVudEJlaGF2aW9yIGV2ZW4KIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVI
b3VyMjNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAgICA6IERhdGVUaW1lSG91ckZpZWxk
RWxlbWVudEJhc2UoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKG1pbmltdW0sIG1heGltdW0p
LCBSYW5nZSgwLCAyMyksIHBhcmFtZXRlcnMpCitEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCisgICAg
OiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlKGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5n
ZSwgUmFuZ2UoMCwgMjMpLCBzdGVwKQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lSG91cjIz
RmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgaW50IG1pbmltdW1Ib3VyMjMsIGlu
dCBtYXhpbXVtSG91cjIzLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzUmVmUHRyPERhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50
PiBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwg
RmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2UmIGhvdXIyM1JhbmdlLCBjb25zdCBT
dGVwJiBzdGVwKQogewotICAgIEFTU0VSVChtaW5pbXVtSG91cjIzID49IDApOwotICAgIEFTU0VS
VChtYXhpbXVtSG91cjIzIDw9IDIzKTsKLSAgICBBU1NFUlQobWluaW11bUhvdXIyMyA8PSBtYXhp
bXVtSG91cjIzKTsKLSAgICBSZWZQdHI8RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gYWRvcHRSZWYobmV3IERhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyLCBtaW5pbXVtSG91cjIzLCBtYXhpbXVtSG91cjIzLCBwYXJhbWV0ZXJzKSk7CisgICAg
QVNTRVJUKGhvdXIyM1JhbmdlLm1pbmltdW0gPj0gMCk7CisgICAgQVNTRVJUKGhvdXIyM1Jhbmdl
Lm1heGltdW0gPD0gMjMpOworICAgIEFTU0VSVChob3VyMjNSYW5nZS5taW5pbXVtIDw9IGhvdXIy
M1JhbmdlLm1heGltdW0pOworICAgIFJlZlB0cjxEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudD4g
ZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQoZG9jdW1lbnQs
IGZpZWxkT3duZXIsIGhvdXIyM1JhbmdlLCBzdGVwKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUo
KTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtMjcwLDI0ICsyNjgsMjMgQEAg
dm9pZCBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50IHZh
bHVlLCBFdmVudEJlaGF2aW9yIGV2ZW4KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1EYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11
bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKLSAgICA6IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKG1pbmltdW0sIG1heGltdW0pLCBSYW5nZSgxLCAyNCks
IHBhcmFtZXRlcnMpCitEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyMjRG
aWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBj
b25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCisgICAgOiBEYXRlVGltZUhvdXJG
aWVsZEVsZW1lbnRCYXNlKGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5nZSwgUmFuZ2UoMSwgMjQp
LCBzdGVwKQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50PiBE
YXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmll
bGRPd25lciYgZmllbGRPd25lciwgaW50IG1pbmltdW1Ib3VyMjMsIGludCBtYXhpbXVtSG91cjIz
LCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCitQYXNzUmVmUHRyPERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXIy
NEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgY29uc3QgUmFuZ2UmIGhvdXIyM1JhbmdlLCBjb25zdCBTdGVwJiBzdGVwKQogewot
ICAgIEFTU0VSVChtaW5pbXVtSG91cjIzID49IDApOwotICAgIEFTU0VSVChtYXhpbXVtSG91cjIz
IDw9IDIzKTsKLSAgICBBU1NFUlQobWluaW11bUhvdXIyMyA8PSBtYXhpbXVtSG91cjIzKTsKLSAg
ICBpbnQgbWluaW11bSA9IG1pbmltdW1Ib3VyMjMgPyBtaW5pbXVtSG91cjIzIDogMjQ7Ci0gICAg
aW50IG1heGltdW0gPSBtYXhpbXVtSG91cjIzID8gbWF4aW11bUhvdXIyMyA6IDI0OwotICAgIGlm
IChtaW5pbXVtID4gbWF4aW11bSkgewotICAgICAgICBtaW5pbXVtID0gMTsKLSAgICAgICAgbWF4
aW11bSA9IDI0OworICAgIEFTU0VSVChob3VyMjNSYW5nZS5taW5pbXVtID49IDApOworICAgIEFT
U0VSVChob3VyMjNSYW5nZS5tYXhpbXVtIDw9IDIzKTsKKyAgICBBU1NFUlQoaG91cjIzUmFuZ2Uu
bWluaW11bSA8PSBob3VyMjNSYW5nZS5tYXhpbXVtKTsKKyAgICBSYW5nZSByYW5nZShob3VyMjNS
YW5nZS5taW5pbXVtID8gaG91cjIzUmFuZ2UubWluaW11bSA6IDI0LCBob3VyMjNSYW5nZS5tYXhp
bXVtID8gaG91cjIzUmFuZ2UubWF4aW11bSA6IDI0KTsKKyAgICBpZiAocmFuZ2UubWluaW11bSA+
IHJhbmdlLm1heGltdW0pIHsKKyAgICAgICAgcmFuZ2UubWluaW11bSA9IDE7CisgICAgICAgIHJh
bmdlLm1heGltdW0gPSAyNDsKICAgICB9CiAKLSAgICBSZWZQdHI8RGF0ZVRpbWVIb3VyMjRGaWVs
ZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50
KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhpbXVtLCBwYXJhbWV0ZXJzKSk7Cisg
ICAgUmVmUHRyPERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5l
dyBEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2Us
IHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBmaWVsZC5yZWxl
YXNlKCk7CiB9CkBAIC0zMTgsMTUgKzMxNSwxNSBAQCB2b2lkIERhdGVUaW1lSG91cjI0RmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlbgog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0s
IGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKLSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
ciwgUmFuZ2UobWluaW11bSwgbWF4aW11bSksIFJhbmdlKDAsIDk5OSksICItLS0iLCBwYXJhbWV0
ZXJzKQorRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaWxsaXNlY29u
ZEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKDAsIDk5
OSksICItLS0iLCBzdGVwKQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQg
bWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQorUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBE
YXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0ZXAm
IHN0ZXApCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1pbGxpc2Vj
b25kUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1pbGxpc2Vjb25kLWZpZWxkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxEYXRlVGlt
ZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhp
bXVtLCBwYXJhbWV0ZXJzKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVs
ZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1l
bnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBzdGVwKSk7CiAgICAgZmllbGQtPmluaXRp
YWxpemUobWlsbGlzZWNvbmRQc3VlZG9JZCwgQVhNaWxsaXNlY29uZEZpZWxkVGV4dCgpKTsKICAg
ICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtMzU5LDE1ICszNTYsMTUgQEAgdm9pZCBE
YXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNT
dGF0ZShjb25zdCBEYXRlVGkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1E
YXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50
IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycykKLSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgUmFuZ2UobWluaW11bSwgbWF4aW11bSksIFJhbmdlKDAsIDU5KSwgIi0tIiwg
cGFyYW1ldGVycykKK0RhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpEYXRlVGltZU1pbnV0ZUZp
ZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNv
bnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKKyAgICA6IERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIFJhbmdlKDAsIDU5KSwg
Ii0tIiwgc3RlcCkKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVu
dD4gRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQs
IEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3Qg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorUGFz
c1JlZlB0cjxEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RlcCYgc3RlcCkKIHsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWludXRlUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0LW1pbnV0ZS1maWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKLSAgICBSZWZQdHI8RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRS
ZWYobmV3IERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBt
aW5pbXVtLCBtYXhpbXVtLCBwYXJhbWV0ZXJzKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTWludXRl
RmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1pbnV0ZUZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgcmFuZ2UsIHN0ZXApKTsKICAgICBmaWVsZC0+aW5p
dGlhbGl6ZShtaW51dGVQc3VlZG9JZCwgQVhNaW51dGVGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJu
IGZpZWxkLnJlbGVhc2UoKTsKIH0KQEAgLTQwMCwxNSArMzk3LDE1IEBAIHZvaWQgRGF0ZVRpbWVN
aW51dGVGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRGF0ZVRpbWVN
b250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIs
IGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKLSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgUmFuZ2UobWluaW11bSwgbWF4aW11bSksIFJhbmdl
KDEsIDEyKSwgcGxhY2Vob2xkZXIpCitEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGlt
ZU1vbnRoRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lciwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmIHJhbmdlKQorICAg
IDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCByYW5n
ZSwgUmFuZ2UoMSwgMTIpLCBwbGFjZWhvbGRlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRlVGlt
ZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBs
YWNlaG9sZGVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pCitQYXNzUmVmUHRyPERhdGVUaW1l
TW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYgcGxh
Y2Vob2xkZXIsIGNvbnN0IFJhbmdlJiByYW5nZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbW9udGhQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9u
dGgtZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVm
UHRyPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHBsYWNlaG9sZGVyLmlz
RW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVyLCBtaW5pbXVtLCBtYXhp
bXVtKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRv
cHRSZWYobmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIs
IHBsYWNlaG9sZGVyLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVy
LCByYW5nZSkpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKG1vbnRoUHN1ZWRvSWQsIEFYTW9udGhG
aWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKIH0KQEAgLTQ0MSwxNSAr
NDM4LDE1IEBAIHZvaWQgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVU
aW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwg
aW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi0gICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKG1pbmltdW0sIG1heGltdW0pLCBSYW5n
ZSgwLCA1OSksICItLSIsIHBhcmFtZXRlcnMpCitEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCisgICAg
OiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdl
LCBSYW5nZSgwLCA1OSksICItLSIsIHN0ZXApCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0ZVRpbWVT
ZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50
IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVU
aW1lU2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0ZXAmIHN0ZXApCiB7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlY29uZFBzdWVkb0lkLCAo
Ii13ZWJraXQtZGF0ZXRpbWUtZWRpdC1zZWNvbmQtZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50
PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lciwgbWluaW11bSwgbWF4aW11bSwgcGFyYW1ldGVycykpOworICAgIFJlZlB0
cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRp
bWVTZWNvbmRGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHJhbmdlLCBzdGVwKSk7
CiAgICAgZmllbGQtPmluaXRpYWxpemUoc2Vjb25kUHN1ZWRvSWQsIEFYU2Vjb25kRmllbGRUZXh0
KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CkBAIC01MjYsMTUgKzUyMywxNSBA
QCB2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVU
aW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLURhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgaW50IG1pbmltdW0s
IGludCBtYXhpbXVtKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50
LCBmaWVsZE93bmVyLCBSYW5nZShtaW5pbXVtLCBtYXhpbXVtKSwgUmFuZ2UoRGF0ZUNvbXBvbmVu
dHM6Om1pbmltdW1XZWVrTnVtYmVyLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVdlZWtOdW1iZXIp
LCAiLS0iKQorRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50OjpEYXRlVGltZVdlZWtGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5n
ZSYgcmFuZ2UpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZp
ZWxkT3duZXIsIHJhbmdlLCBSYW5nZShEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWtOdW1iZXIs
IERhdGVDb21wb25lbnRzOjptYXhpbXVtV2Vla051bWJlciksICItLSIpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50PiBEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBt
aW5pbXVtLCBpbnQgbWF4aW11bSkKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
PiBEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5nZSkKIHsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgd2Vla1BzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC13ZWVrLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIFJlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYo
bmV3IERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgbWluaW11
bSwgbWF4aW11bSkpOworICAgIFJlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gYWRvcHRSZWYobmV3IERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lciwgcmFuZ2UpKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZSh3ZWVrUHN1ZWRvSWQsIEFYV2Vl
a09mWWVhckZpZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApp
bmRleCA5YjNjMDUzYjUwMDIwOTUyN2YzM2M4ZTE2MTg5M2ExOWQ1NzdjMTJmLi5lZGJlYTdmYTdi
YzdhMTcyY2RjMWVjY2E1MzMyOGJhNzgyYmY2ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtNTEsMTAgKzUxLDEwIEBA
IGNsYXNzIERhdGVUaW1lRGF5RmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVEYXlGaWVs
ZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmIHBs
YWNlaG9sZGVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVy
JiwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgY29uc3QgUmFuZ2UmKTsKIAogcHJpdmF0ZToK
LSAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25z
dCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0pOworICAgIERh
dGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmlu
ZyYgcGxhY2Vob2xkZXIsIGNvbnN0IFJhbmdlJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxl
bWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNT
dGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CkBAIC02Niw3ICs2Niw3
IEBAIGNsYXNzIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UgOiBwdWJsaWMgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUhv
dXJGaWVsZEVsZW1lbnRCYXNlKTsKIAogcHJvdGVjdGVkOgotICAgIERhdGVUaW1lSG91ckZpZWxk
RWxlbWVudEJhc2UoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBS
YW5nZSYgaGFyZExpbWl0cywgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJh
bWV0ZXJzJik7CisgICAgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZShEb2N1bWVudCosIEZp
ZWxkT3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFJhbmdlJiBoYXJkTGltaXRzLCBjb25zdCBT
dGVwJik7CiAgICAgdm9pZCBpbml0aWFsaXplKCk7CiAKIHByaXZhdGU6CkBAIC03OSwxMCArNzks
MTAgQEAgY2xhc3MgRGF0ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVI
b3VyRmllbGRFbGVtZW50QmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVI
b3VyMTFGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0
ZVRpbWVIb3VyMTFGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBp
bnQgbWluaW11bUhvdXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVU
aW1lSG91cjExRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29u
c3QgUmFuZ2UmLCBjb25zdCBTdGVwJik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVIb3VyMTFG
aWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhp
bXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAg
ICBEYXRlVGltZUhvdXIxMUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25z
dCBSYW5nZSYgaG91cjIzUmFuZ2UsIGNvbnN0IFN0ZXAmKTsKIAogICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZp
ZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKQEAgLTkzLDEw
ICs5MywxMCBAQCBjbGFzcyBEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRl
VGltZUhvdXJGaWVsZEVsZW1lbnRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRl
VGltZUhvdXIxMkZpZWxkRWxlbWVudCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxEYXRlVGltZUhvdXIxMkZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRPd25l
ciYsIGludCBtaW5pbXVtSG91cjIzLCBpbnQgbWF4aW11bUhvdXIyMywgY29uc3QgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0ZVRpbWVIb3VyMTJGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXIm
LCBjb25zdCBSYW5nZSYsIGNvbnN0IFN0ZXAmKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZUhv
dXIxMkZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11bSwgaW50
IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYp
OworICAgIERhdGVUaW1lSG91cjEyRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYs
IGNvbnN0IFJhbmdlJiBob3VyMjNSYW5nZSwgY29uc3QgU3RlcCYpOwogCiAgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwpAQCAt
MTA3LDEwICsxMDcsMTAgQEAgY2xhc3MgRGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQgOiBwdWJs
aWMgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50QmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZp
ZWxkT3duZXImLCBpbnQgbWluaW11bUhvdXIyMywgaW50IG1heGltdW1Ib3VyMjMsIGNvbnN0IERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERhdGVUaW1lSG91cjIzRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVs
ZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBTdGVwJik7CiAKIHByaXZhdGU6Ci0gICAgRGF0
ZVRpbWVIb3VyMjNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmlt
dW0sIGludCBtYXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFt
ZXRlcnMmKTsKKyAgICBEYXRlVGltZUhvdXIyM0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxk
T3duZXImLCBjb25zdCBSYW5nZSYgaG91cjIzUmFuZ2UsIGNvbnN0IFN0ZXAmKTsKIAogICAgIC8v
IERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxh
dGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5B
TDsKQEAgLTEyMSwxMCArMTIxLDEwIEBAIGNsYXNzIERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50
IDogcHVibGljIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudEJhc2UgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50KTsKIAogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW1Ib3VyMjMsIGludCBtYXhpbXVtSG91cjIzLCBj
b25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxEYXRlVGltZUhvdXIyNEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwgY29uc3QgU3RlcCYpOwogCiBwcml2YXRlOgot
ICAgIERhdGVUaW1lSG91cjI0RmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGlu
dCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpQYXJhbWV0ZXJzJik7CisgICAgRGF0ZVRpbWVIb3VyMjRGaWVsZEVsZW1lbnQoRG9jdW1lbnQq
LCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmIGhvdXIyM1JhbmdlLCBjb25zdCBTdGVwJik7CiAK
ICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lk
IHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJ
REUgRklOQUw7CkBAIC0xMzUsMTAgKzEzNSwxMCBAQCBjbGFzcyBEYXRlVGltZU1pbGxpc2Vjb25k
RmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk7CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBt
YXhpbXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBTdGVwJik7
CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVu
dCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIERhdGVUaW1lTWlsbGlzZWNv
bmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25z
dCBTdGVwJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0
YXRlJikgT1ZFUlJJREUgRklOQUw7CkBAIC0xNTAsMTAgKzE1MCwxMCBAQCBjbGFzcyBEYXRlVGlt
ZU1pbnV0ZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KTsK
IAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhp
bXVtLCBjb25zdCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwgY29uc3QgU3RlcCYpOwogCiBwcml2
YXRlOgotICAgIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25l
ciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50OjpQYXJhbWV0ZXJzJik7CisgICAgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBTdGVwJik7CiAKICAgICAv
LyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHBvcHVs
YXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklO
QUw7CkBAIC0xNjUsMTAgKzE2NSwxMCBAQCBjbGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50
IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQq
LCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlciwgaW50IG1pbmltdW0sIGlu
dCBtYXhpbXVtKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1vbnRoRmllbGRFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJiBwbGFjZWhv
bGRlciwgY29uc3QgUmFuZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZU1vbnRoRmllbGRF
bGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIs
IGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CisgICAgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVu
dChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBjb25z
dCBSYW5nZSYpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAg
IHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYpIE9WRVJSSURFIEZJTkFMOwpAQCAtMTgwLDEwICsxODAsMTAgQEAgY2xhc3MgRGF0ZVRp
bWVTZWNvbmRGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudCk7
CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZVNlY29uZEZpZWxkRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4
aW11bSwgY29uc3QgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpQYXJhbWV0ZXJzJik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBSYW5nZSYsIGNvbnN0IFN0ZXAmKTsKIAogcHJp
dmF0ZToKLSAgICBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3du
ZXImLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6UGFyYW1ldGVycyYpOworICAgIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50KERv
Y3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwgY29uc3QgU3RlcCYpOwogCiAgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1
bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJ
TkFMOwpAQCAtMjEwLDEwICsyMTAsMTAgQEAgY2xhc3MgRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50KTsKIAogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kiwg
RmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93
bmVyJiwgY29uc3QgUmFuZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZVdlZWtGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKTsK
KyAgICBEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29u
c3QgUmFuZ2UmKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAg
ICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRz
U3RhdGUmKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDY0OWQ4NTNk
NGU0YTcxOGFkMjJjODFiYjkzMGUxMzFhNTgxZjI4MTQuLmIyY2JhYTFlMzZjNTYwZGM2NTg5M2E2
MzMzMzUwNTVlYzU4YjUyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApAQCAtNDAsMTMgKzQwLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVB
aGVhZFRpbWVvdXQgPSAxMDAwOwogCi1EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdl
OjpSYW5nZShpbnQgbWluaW11bSwgaW50IG1heGltdW0pCi0gICAgOiBtYXhpbXVtKG1heGltdW0p
Ci0gICAgLCBtaW5pbXVtKG1pbmltdW0pCi17Ci0gICAgQVNTRVJUKG1pbmltdW0gPD0gbWF4aW11
bSk7Ci19Ci0KIGludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlOjpjbGFtcFZh
bHVlKGludCB2YWx1ZSkgY29uc3QKIHsKICAgICByZXR1cm4gc3RkOjptaW4oc3RkOjptYXgodmFs
dWUsIG1pbmltdW0pLCBtYXhpbXVtKTsKQEAgLTU5LDE4ICs1MiwxOSBAQCBib29sIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2U6OmlzSW5SYW5nZShpbnQgdmFsdWUpIGNvbnN0CiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBG
aWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFJhbmdlJiBo
YXJkTGltaXRzLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBjb25zdCBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1l
bnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgUmFu
Z2UmIGhhcmRMaW1pdHMsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGNvbnN0IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6U3RlcCYgc3RlcCkKICAgICA6IERhdGVUaW1lRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQogICAgICwgbV9sYXN0RGlnaXRDaGFyVGltZSgwKQog
ICAgICwgbV9wbGFjZWhvbGRlcihwbGFjZWhvbGRlcikKICAgICAsIG1fcmFuZ2UocmFuZ2UpCiAg
ICAgLCBtX2hhcmRMaW1pdHMoaGFyZExpbWl0cykKKyAgICAsIG1fc3RlcChzdGVwKQogICAgICwg
bV92YWx1ZSgwKQogICAgICwgbV9oYXNWYWx1ZShmYWxzZSkKLSAgICAsIG1fc3RlcChwYXJhbWV0
ZXJzLnN0ZXApCi0gICAgLCBtX3N0ZXBCYXNlKHBhcmFtZXRlcnMuc3RlcEJhc2UpCiB7Ci0gICAg
QVNTRVJUKG1fc3RlcCk7CisgICAgQVNTRVJUKG1fc3RlcC5zdGVwKTsKKyAgICBBU1NFUlQobV9y
YW5nZS5taW5pbXVtIDw9IG1fcmFuZ2UubWF4aW11bSk7CisgICAgQVNTRVJUKG1faGFyZExpbWl0
cy5taW5pbXVtIDw9IG1faGFyZExpbWl0cy5tYXhpbXVtKTsKIAogICAgIC8vIFdlIHNob3cgYSBk
aXJlY3Rpb24tbmV1dHJhbCBzdHJpbmcgc3VjaCBhcyAiLS0iIGFzIGEgcGxhY2Vob2xkZXIuIEl0
CiAgICAgLy8gc2hvdWxkIGZvbGxvdyB0aGUgZGlyZWN0aW9uIG9mIG51bWVyaWMgdmFsdWVzLgpA
QCAtMjI4LDIyICsyMjIsMjIgQEAgU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
dmlzaWJsZVZhbHVlKCkgY29uc3QKIAogaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
cm91bmREb3duKGludCBuKSBjb25zdAogewotICAgIG4gLT0gbV9zdGVwQmFzZTsKKyAgICBuIC09
IG1fc3RlcC5zdGVwQmFzZTsKICAgICBpZiAobiA+PSAwKQotICAgICAgICBuID0gbiAvIG1fc3Rl
cCAqIG1fc3RlcDsKKyAgICAgICAgbiA9IG4gLyBtX3N0ZXAuc3RlcCAqIG1fc3RlcC5zdGVwOwog
ICAgIGVsc2UKLSAgICAgICAgbiA9IC0oKC1uICsgbV9zdGVwIC0gMSkgLyBtX3N0ZXAgKiBtX3N0
ZXApOwotICAgIHJldHVybiBuICsgbV9zdGVwQmFzZTsKKyAgICAgICAgbiA9IC0oKC1uICsgbV9z
dGVwLnN0ZXAgLSAxKSAvIG1fc3RlcC5zdGVwICogbV9zdGVwLnN0ZXApOworICAgIHJldHVybiBu
ICsgbV9zdGVwLnN0ZXBCYXNlOwogfQogCiBpbnQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
Ojpyb3VuZFVwKGludCBuKSBjb25zdAogewotICAgIG4gLT0gbV9zdGVwQmFzZTsKKyAgICBuIC09
IG1fc3RlcC5zdGVwQmFzZTsKICAgICBpZiAobiA+PSAwKQotICAgICAgICBuID0gKG4gKyBtX3N0
ZXAgLSAxKSAvIG1fc3RlcCAqIG1fc3RlcDsKKyAgICAgICAgbiA9IChuICsgbV9zdGVwLnN0ZXAg
LSAxKSAvIG1fc3RlcC5zdGVwICogbV9zdGVwLnN0ZXA7CiAgICAgZWxzZQotICAgICAgICBuID0g
LSgtbiAvIG1fc3RlcCAqIG1fc3RlcCk7Ci0gICAgcmV0dXJuIG4gKyBtX3N0ZXBCYXNlOworICAg
ICAgICBuID0gLSgtbiAvIG1fc3RlcC5zdGVwICogbV9zdGVwLnN0ZXApOworICAgIHJldHVybiBu
ICsgbV9zdGVwLnN0ZXBCYXNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5oCmluZGV4IDk2ZTJhZjM3MGE4ZDBhN2I0OWUwMTI5NjFjYTI5MjdjMjk0MWVmMGUuLmI2
ZDQzZTkxZDdhNDUwZjc4YWY3YmM4MTkwMDgxMWYzNTY1OWY0MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5o
CkBAIC00MiwyMyArNDIsMjQgQEAgY2xhc3MgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IDog
cHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RydWN0IFBhcmFt
ZXRlcnMgewotICAgICAgICBQYXJhbWV0ZXJzKGludCBzdGVwID0gMSwgaW50IHN0ZXBCYXNlID0g
MCkgOiBzdGVwKHN0ZXApLCBzdGVwQmFzZShzdGVwQmFzZSkgeyB9CisgICAgc3RydWN0IFN0ZXAg
eworICAgICAgICBTdGVwKGludCBzdGVwID0gMSwgaW50IHN0ZXBCYXNlID0gMCkgOiBzdGVwKHN0
ZXApLCBzdGVwQmFzZShzdGVwQmFzZSkgeyB9CiAgICAgICAgIGludCBzdGVwOwogICAgICAgICBp
bnQgc3RlcEJhc2U7CiAgICAgfTsKIAotcHJvdGVjdGVkOgogICAgIHN0cnVjdCBSYW5nZSB7Ci0g
ICAgICAgIFJhbmdlKGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CisgICAgICAgIFJhbmdlKGlu
dCBtaW5pbXVtLCBpbnQgbWF4aW11bSkgOiBtaW5pbXVtKG1pbmltdW0pLCBtYXhpbXVtKG1heGlt
dW0pIHsgfQogICAgICAgICBpbnQgY2xhbXBWYWx1ZShpbnQpIGNvbnN0OwogICAgICAgICBib29s
IGlzSW5SYW5nZShpbnQpIGNvbnN0OworICAgICAgICBib29sIGlzU2luZ2xldG9uKCkgY29uc3Qg
eyByZXR1cm4gbWluaW11bSA9PSBtYXhpbXVtOyB9CiAKLSAgICAgICAgaW50IG1heGltdW07CiAg
ICAgICAgIGludCBtaW5pbXVtOworICAgICAgICBpbnQgbWF4aW11bTsKICAgICB9OwogCi0gICAg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0
IFJhbmdlJiwgY29uc3QgUmFuZ2UmIGhhcmRMaW1pdHMsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xk
ZXIsIGNvbnN0IFBhcmFtZXRlcnMmID0gUGFyYW1ldGVycygpKTsKK3Byb3RlY3RlZDoKKyAgICBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3Qg
UmFuZ2UmLCBjb25zdCBSYW5nZSYgaGFyZExpbWl0cywgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRl
ciwgY29uc3QgU3RlcCYgPSBTdGVwKCkpOwogCiAgICAgaW50IGNsYW1wVmFsdWUoaW50IHZhbHVl
KSBjb25zdCB7IHJldHVybiBtX3JhbmdlLmNsYW1wVmFsdWUodmFsdWUpOyB9CiAgICAgdmlydHVh
bCBpbnQgZGVmYXVsdFZhbHVlRm9yU3RlcERvd24oKSBjb25zdDsKQEAgLTkyLDEwICs5Myw5IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7CiAgICAgY29uc3QgUmFu
Z2UgbV9yYW5nZTsKICAgICBjb25zdCBSYW5nZSBtX2hhcmRMaW1pdHM7CisgICAgY29uc3QgU3Rl
cCBtX3N0ZXA7CiAgICAgaW50IG1fdmFsdWU7CiAgICAgYm9vbCBtX2hhc1ZhbHVlOwotICAgIGlu
dCBtX3N0ZXA7Ci0gICAgaW50IG1fc3RlcEJhc2U7CiAgICAgbXV0YWJsZSBTdHJpbmdCdWlsZGVy
IG1fdHlwZUFoZWFkQnVmZmVyOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>