<?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>227221</bug_id>
          
          <creation_ts>2021-06-21 09:54:44 -0700</creation_ts>
          <short_desc>[iOS] Adopt new date picker presentation SPI</short_desc>
          <delta_ts>2021-06-23 13:02:44 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771324</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 09:54:44 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771325</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 09:54:56 -0700</bug_when>
    <thetext>&lt;rdar//problem/77930086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771331</commentid>
    <comment_count>2</comment_count>
      <attachid>431873</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 10:19:03 -0700</bug_when>
    <thetext>Created attachment 431873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771339</commentid>
    <comment_count>3</comment_count>
      <attachid>431873</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-21 10:40:09 -0700</bug_when>
    <thetext>Comment on attachment 431873
Patch

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

&gt; Source/WTF/ChangeLog:5
&gt; +        &lt;rdar//problem/77930086&gt;

Ditto.

&gt; Source/WebKit/ChangeLog:5
&gt; +        &lt;rdar//problem/77930086&gt;

Nit - colon after the rdar.

(It looks like the Bugzilla comment is also missing it)

&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:1456
&gt; +// FIXME: Import the header directly once bots are updated to a build containing rdar://77930086.

Did you mean to reference the UIKit radar (78779655) instead of this WebKit radar? (77930086).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771341</commentid>
    <comment_count>4</comment_count>
      <attachid>431876</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 10:44:58 -0700</bug_when>
    <thetext>Created attachment 431876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771342</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 10:45:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/77930086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771343</commentid>
    <comment_count>6</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 10:45:29 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; Comment on attachment 431873 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431873&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:5
&gt; &gt; +        &lt;rdar//problem/77930086&gt;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:5
&gt; &gt; +        &lt;rdar//problem/77930086&gt;
&gt; 
&gt; Nit - colon after the rdar.
&gt; 
&gt; (It looks like the Bugzilla comment is also missing it)
&gt; 
&gt; &gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:1456
&gt; &gt; +// FIXME: Import the header directly once bots are updated to a build containing rdar://77930086.
&gt; 
&gt; Did you mean to reference the UIKit radar (78779655) instead of this WebKit
&gt; radar? (77930086).

Thanks for catching that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771505</commentid>
    <comment_count>7</comment_count>
      <attachid>431876</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-21 16:03:33 -0700</bug_when>
    <thetext>Comment on attachment 431876
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:1061
&gt; +#if PLATFORM(IOS_FAMILY) &amp;&amp; defined __has_include &amp;&amp; __has_include(&lt;UIKit/_UIDatePickerOverlayPresentation.h&gt;)

This sort of thing is fragile. We do it when we have to, but in time it would be good to find something other than the detection of a header in the SDK to detect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771521</commentid>
    <comment_count>8</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-21 16:30:27 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 431876 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431876&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformHave.h:1061
&gt; &gt; +#if PLATFORM(IOS_FAMILY) &amp;&amp; defined __has_include &amp;&amp; __has_include(&lt;UIKit/_UIDatePickerOverlayPresentation.h&gt;)
&gt; 
&gt; This sort of thing is fragile. We do it when we have to, but in time it
&gt; would be good to find something other than the detection of a header in the
&gt; SDK to detect this.

I agree. I went with this approach because the header is relatively new. I intend to replace the header check with an iOS 15 check in a couple weeks time. I will file the follow-up bug once this patch is landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771963</commentid>
    <comment_count>9</comment_count>
      <attachid>431876</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-23 09:14:42 -0700</bug_when>
    <thetext>Comment on attachment 431876
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/PlatformHave.h:1061
&gt;&gt;&gt; +#if PLATFORM(IOS_FAMILY) &amp;&amp; defined __has_include &amp;&amp; __has_include(&lt;UIKit/_UIDatePickerOverlayPresentation.h&gt;)
&gt;&gt; 
&gt;&gt; This sort of thing is fragile. We do it when we have to, but in time it would be good to find something other than the detection of a header in the SDK to detect this.
&gt; 
&gt; I agree. I went with this approach because the header is relatively new. I intend to replace the header check with an iOS 15 check in a couple weeks time. I will file the follow-up bug once this patch is landed.

A `// FIXME: …` referencing a Bugzilla bug might be nice here, in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771965</commentid>
    <comment_count>10</comment_count>
      <attachid>432058</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-23 09:23:51 -0700</bug_when>
    <thetext>Created attachment 432058
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771967</commentid>
    <comment_count>11</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-06-23 09:25:08 -0700</bug_when>
    <thetext>webkit.org/b/227298 filed to remove the __has_include check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772041</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-23 13:02:41 -0700</bug_when>
    <thetext>Committed r279181 (239077@main): &lt;https://commits.webkit.org/239077@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432058.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431873</attachid>
            <date>2021-06-21 10:19:03 -0700</date>
            <delta_ts>2021-06-21 10:44:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227221-20210621131902.patch</filename>
            <type>text/plain</type>
            <size>23557</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzNmE5ZjhiMGUyMzVmMmFhN2Y0NWY3
M2U2YmU0ODAzNGU4NGIyNWQuLmQ0OTc3OTdiMjZjZTBlYTg2OTQ5NDFlODE1ODJlZjA1MTZkMmU0
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkb3B0IG5ldyBkYXRlIHBpY2tlciBw
cmVzZW50YXRpb24gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyMjEKKyAgICAgICAgPHJkYXIvL3Byb2JsZW0vNzc5MzAwODY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6CisKKyAgICAgICAgQWRkIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFU
SU9OKSBhbmQgSEFWRShVSVRPT0xCQVJfU1RBTkRBUkRfQVBQRUFSQU5DRSkuCisKIDIwMjEtMDYt
MjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNzkwNjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDA2OWQ5MGY2MWU4
NWRlNzRiYTc5Mzg2OTliM2I0MDJhNjI1Mzg4Ni4uMTNhMDM3ODA0MWE3YTEwODJmNmFjYWE1NTNi
ODRlZGNiN2FmYWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0wNi0yMSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRvcHQg
bmV3IGRhdGUgcGlja2VyIHByZXNlbnRhdGlvbiBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzIyMQorICAgICAgICA8cmRhci8vcHJvYmxlbS83
NzkzMDA4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiBuYXRpdmUgYXBwbGljYXRpb25zLCB0YXBwaW5nIG9uIGEgY29tcGFjdCBVSURhdGVQaWNr
ZXIgcHJlc2VudHMgYW4KKyAgICAgICAgaW5saW5lIHBpY2tlciB1c2luZyBfVUlEYXRlUGlja2Vy
T3ZlcmxheVByZXNlbnRhdGlvbi4gVG8gYXZvaWQKKyAgICAgICAgbWFpbnRhaW5pbmcgb3VyIG93
biBwcmVzZW50YXRpb24gbG9naWMsIGFuZCB0byBiZXR0ZXIgbWF0Y2ggdGhlIG5hdGl2ZQorICAg
ICAgICBwcmVzZW50YXRpb24sIHVzZSBfVUlEYXRlUGlja2VyT3ZlcmxheVByZXNlbnRhdGlvbiB3
aGVuIHRhcHBpbmcgb24gYQorICAgICAgICBkYXRlL3RpbWUgaW5wdXQgaW4gV2ViS2l0LgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9z
cGkvaW9zL1VJS2l0U1BJLmg6CisKKyAgICAgICAgRGVjbGFyZSB0aGUgU1BJIHJhdGhlciB0aGFu
IGltcG9ydGluZyB0aGUgaGVhZGVyIGRpcmVjdGx5LCBhcyB0aGUKKyAgICAgICAgX1VJRGF0ZVBp
Y2tlck92ZXJsYXlBbmNob3IgZW51bSBpcyBub3QgYXZhaWxhYmxlIGluIGFsbCBTREtzIHdpdGgK
KyAgICAgICAgdGhlIGhlYWRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tE
YXRlVGltZUlucHV0Q29udHJvbC5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyIGluaXRXaXRoRGF0ZVBpY2tlcjpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBp
Y2tlclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1l
UGlja2VyIGluaXRXaXRoVmlldzpkYXRlUGlja2VyTW9kZTpdKToKKworICAgICAgICBDcmVhdGUg
dGhlIFVJRGF0ZVBpY2tlciBoZXJlIHNvIGl0IGNhbiBiZSBzaGFyZWQgYnkgdGhlIG9sZCBjb250
ZXh0IG1lbnUKKyAgICAgICAgcHJlc2VudGF0aW9uIGFuZCB0aGUgbmV3IG92ZXJsYXkgcHJlc2Vu
dGF0aW9uLgorCisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaGFuZGxlRGF0ZVBpY2tlclBy
ZXNlbnRhdGlvbkRpc21pc3NhbF0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHJlbW92
ZURhdGVQaWNrZXJQcmVzZW50YXRpb25dKToKKworICAgICAgICBgYWNjZXNzb3J5RG9uZWAgZXZl
bnR1YWxseSByZW1vdmVzIHRoZSBwcmVzZW50YXRpb24uIElmIHRoZSBkYXRlIHBpY2tlcgorICAg
ICAgICBpcyBhbHJlYWR5IGJlaW5nIGRpc21pc3NlZCwgZG8gbm90IGRpc21pc3MgaXQgd2l0aG91
dCBhbiBhbmltYXRpb24uCisKKyAgICAgICAgRm9yIHByb2dyYW1tYXRpYyBkaXNtaXNzYWwgKHVz
aW5nIGJsdXIoKSkgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHByaW9yIHRvCisgICAgICAgIGBhY2Nl
c3NvcnlEb25lYCwgaW4gd2hpY2ggY2FzZSB3ZSBmb3JjZSBkaXNtaXNzYWwgd2l0aG91dCBhbmlt
YXRpb24uCisKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBkYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyRGlkUHJlc3NSZXNldEJ1dHRvbjpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBp
Y2tlciBkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NEb25lQnV0dG9uOl0pOgor
ICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHNob3dEYXRlVGltZVBpY2tlcl0pOgorICAgICAg
ICAoLVtXS0RhdGVUaW1lUGlja2VyIGRhdGVQaWNrZXJDaGFuZ2VkOl0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIHJlc2V0Ol0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGRv
bmU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGVhbGxvY10pOgorICAgICAgICAo
LVtXS0RhdGVUaW1lUGlja2VyIF90aW1lWm9uZU9mZnNldEZyb21HTVQ6XSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIF9kYXRlQ2hhbmdlZFNldEFzTnVtYmVyXSk6CisgICAgICAgICgtW1dL
RGF0ZVRpbWVQaWNrZXIgX2RhdGVDaGFuZ2VkU2V0QXNTdHJpbmddKToKKyAgICAgICAgKC1bV0tE
YXRlVGltZVBpY2tlciBzZXREYXRlVGltZVBpY2tlclRvSW5pdGlhbFZhbHVlXSk6CisgICAgICAg
ICgtW1dLRGF0ZVRpbWVQaWNrZXIgY29udHJvbEJlZ2luRWRpdGluZ10pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIGNvbnRyb2xFbmRFZGl0aW5nXSk6CisgICAgICAgICgtW1dLRGF0ZVRp
bWVQaWNrZXIgY2FsZW5kYXJUeXBlXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaG91
cl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIG1pbnV0ZV0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIHNldEhvdXI6bWludXRlOl0pOgorCiAyMDIxLTA2LTIwICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gUmVuYW1l
IFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgdG8gV0tRdWlja0xvb2tQcmV2aWV3Q29u
dHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA4Mzk5NDIzZjg5ZTFlNjExOWI1MGEwYTUw
NmRhZDk3YTMwNzczMmI0Li5kYzdlN2E4NGViMWYxY2Y1NjAwYjk2YzI2Y2YzYmJiMTU4NDY4MjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMTA1NywzICsxMDU3LDExIEBACiAjZGVmaW5lIEhB
VkVfUVVJQ0tMT09LX0lURU1fUFJFVklFV19PUFRJT05TIDEKICNkZWZpbmUgSEFWRV9RVUlDS0xP
T0tfUFJFVklFV19BQ1RJVklUWSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxVSUtpdC9fVUlEYXRl
UGlja2VyT3ZlcmxheVByZXNlbnRhdGlvbi5oPikKKyNkZWZpbmUgSEFWRV9VSURBVEVQSUNLRVJf
T1ZFUkxBWV9QUkVTRU5UQVRJT04gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1VJVE9PTEJBUl9TVEFOREFSRF9BUFBF
QVJBTkNFIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEku
aAppbmRleCAxN2VmZTE1Y2M5MDg3YTI4Nzc5N2QyOGI3NjNlZGQ2ZjAzYThkZWIzLi5hMGM2MzBk
YjczZTJhMmY4NDYyZjA1NzQ4OGVmZGMwNGYxOWRiOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtMTQ1MSw2ICsxNDUxLDMwIEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogQGVuZAogI2VuZGlmCiAK
KyNpZiBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikKKworLy8gRklYTUU6
IEltcG9ydCB0aGUgaGVhZGVyIGRpcmVjdGx5IG9uY2UgYm90cyBhcmUgdXBkYXRlZCB0byBhIGJ1
aWxkIGNvbnRhaW5pbmcgcmRhcjovLzc3OTMwMDg2LgorCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfVUlEYXRlUGlja2VyT3ZlcmxheUFuY2hvcikgeworICAgIF9VSURhdGVQaWNrZXJPdmVy
bGF5QW5jaG9yU291cmNlUmVjdCA9IDIKK307CisKK0BpbnRlcmZhY2UgX1VJRGF0ZVBpY2tlck92
ZXJsYXlQcmVzZW50YXRpb24gOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhT
b3VyY2VWaWV3OihVSVZpZXcgKilzb3VyY2VWaWV3OworLSAodm9pZClwcmVzZW50RGF0ZVBpY2tl
cjooVUlEYXRlUGlja2VyICopZGF0ZVBpY2tlciBvbkRpc21pc3M6KHZvaWQoXikoQk9PTCByZXRh
cmdldGVkKSlkaXNtaXNzSGFuZGxlcjsKKy0gKHZvaWQpZGlzbWlzc1ByZXNlbnRhdGlvbkFuaW1h
dGVkOihCT09MKWFuaW1hdGVkOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaywgcmVhZG9u
bHkpIFVJVmlldyAqc291cmNlVmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENH
UmVjdCBzb3VyY2VSZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgX1VJRGF0ZVBp
Y2tlck92ZXJsYXlBbmNob3Igb3ZlcmxheUFuY2hvcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIFVJVmlldyAqYWNjZXNzb3J5VmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3Np
Z24pIEJPT0wgYWNjZXNzb3J5Vmlld0lnbm9yZXNEZWZhdWx0SW5zZXRzOworCitAZW5kCisKKyNl
bmRpZgorCiBXVEZfRVhURVJOX0NfQkVHSU4KIAogQk9PTCBVSUtleWJvYXJkRW5hYmxlZElucHV0
TW9kZXNBbGxvd09uZVRvTWFueVNob3J0Y3V0cyh2b2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0RhdGVUaW1lSW5wdXRDb250cm9sLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0K
aW5kZXggYTFiYjg5Y2EwYzUzN2YyOGRiZmFkZWMzMTdmOWE2ZWMwMzhiZWFmMi4uYTNkZDUzNzEw
OTZmMzBkMTkyMmI0MjE1NDliNjJhMTI2YmI5NDI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9S
TShXQVRDSE9TKQogCisjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiVXNlckludGVyZmFj
ZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCIKQEAgLTM3LDE5ICszOCwxOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9M
b2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogQGNsYXNzIFdLRGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlcjsKIAogQHByb3RvY29sIFdLRGF0ZVRpbWVQaWNrZXJWaWV3
Q29udHJvbGxlckRlbGVnYXRlIDxOU09iamVjdD4KLS0gKHZvaWQpZGF0ZVRpbWVQaWNrZXJWaWV3
Q29udHJvbGxlckRpZENoYW5nZURhdGU6KFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciAq
KWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI7CiAtICh2b2lkKWRhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXJEaWRQcmVzc1Jlc2V0QnV0dG9uOihXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIgKilkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyOwogLSAodm9pZClkYXRlVGltZVBp
Y2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NEb25lQnV0dG9uOihXS0RhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXIgKilkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyOwotCi0tIChCT09MKXNo
b3VsZEZvcmNlR3JlZ29yaWFuQ2FsZW5kYXI7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tEYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgotLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoRGVsZWdhdGU6KGlkPFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVn
YXRlPilkZWxlZ2F0ZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aERhdGVQaWNrZXI6KFVJRGF0
ZVBpY2tlciAqKWRhdGVQaWNrZXI7CistICh2b2lkKXNldERlbGVnYXRlOihpZCA8V0tEYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU+KWRlbGVnYXRlOwogQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIHsKQEAgLTY4LDIzICs2OCwy
MiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJEZWZhdWx0V2lkdGggPSAz
MjA7CiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJUaW1lQ29udHJvbFdpZHRo
ID0gMjE4Owogc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2VyVGltZUNvbnRyb2xI
ZWlnaHQgPSAxNzI7CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aERlbGVnYXRlOihpZCA8V0tE
YXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU+KWRlbGVnYXRlCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhEYXRlUGlja2VyOihVSURhdGVQaWNrZXIgKilkYXRlUGlja2VyCiB7CiAg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKLQotICAgIF9kYXRlUGlja2VyID0gYWRvcHROUyhbW1VJ
RGF0ZVBpY2tlciBhbGxvY10gaW5pdF0pOwotICAgIFtfZGF0ZVBpY2tlciBhZGRUYXJnZXQ6c2Vs
ZiBhY3Rpb246QHNlbGVjdG9yKGRhdGVQaWNrZXJDaGFuZ2VkOikgZm9yQ29udHJvbEV2ZW50czpV
SUNvbnRyb2xFdmVudFZhbHVlQ2hhbmdlZF07CisgICAgX2RhdGVQaWNrZXIgPSBkYXRlUGlja2Vy
OwogICAgIFtfZGF0ZVBpY2tlciBzZXRUcmFuc2xhdGVzQXV0b3Jlc2l6aW5nTWFza0ludG9Db25z
dHJhaW50czpOT107CiAKLSAgICBpZiAoW19kZWxlZ2F0ZSBzaG91bGRGb3JjZUdyZWdvcmlhbkNh
bGVuZGFyXSkKLSAgICAgICAgW19kYXRlUGlja2VyIHNldENhbGVuZGFyOltOU0NhbGVuZGFyIGNh
bGVuZGFyV2l0aElkZW50aWZpZXI6TlNDYWxlbmRhcklkZW50aWZpZXJHcmVnb3JpYW5dXTsKLQog
ICAgIHJldHVybiBzZWxmOwogfQogCistICh2b2lkKXNldERlbGVnYXRlOihpZCA8V0tEYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRl
ID0gZGVsZWdhdGU7Cit9CisKIC0gKHZvaWQpdmlld0RpZExvYWQKIHsKICAgICBbc3VwZXIgdmll
d0RpZExvYWRdOwpAQCAtMTY4LDExICsxNjcsNiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0
ZVRpbWVQaWNrZXJUaW1lQ29udHJvbEhlaWdodCA9IDE3MjsKICAgICBdXTsKIH0KIAotLSAodm9p
ZClkYXRlUGlja2VyQ2hhbmdlZDooaWQpc2VuZGVyCi17Ci0gICAgW19kZWxlZ2F0ZSBkYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyRGlkQ2hhbmdlRGF0ZTpzZWxmXTsKLX0KLQogLSAodm9pZCly
ZXNldEJ1dHRvblByZXNzZWQ6KGlkKXNlbmRlcgogewogICAgIFtfZGVsZWdhdGUgZGF0ZVRpbWVQ
aWNrZXJWaWV3Q29udHJvbGxlckRpZFByZXNzUmVzZXRCdXR0b246c2VsZl07CkBAIC0yMjUsNTAg
KzIxOSwxMyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJUaW1lQ29udHJv
bEhlaWdodCA9IDE3MjsKICAgICByZXR1cm4gX2NvbnRlbnRTaXplOwogfQogCi0tIChOU0RhdGUg
KilkYXRlCi17Ci0gICAgcmV0dXJuIFtfZGF0ZVBpY2tlciBkYXRlXTsKLX0KLQotLSAodm9pZClz
ZXREYXRlOihOU0RhdGUgKilkYXRlCi17Ci0gICAgW19kYXRlUGlja2VyIHNldERhdGU6ZGF0ZV07
Ci19Ci0KLS0gKHZvaWQpc2V0RGF0ZVBpY2tlck1vZGU6KFVJRGF0ZVBpY2tlck1vZGUpbW9kZQot
ewotICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlUGlja2VyTW9kZTptb2RlXTsKLQotI2lmIEhBVkUo
VUlEQVRFUElDS0VSX1NUWUxFKQotICAgIGlmIChtb2RlID09IFVJRGF0ZVBpY2tlck1vZGVUaW1l
IHx8IG1vZGUgPT0gKFVJRGF0ZVBpY2tlck1vZGUpVUlEYXRlUGlja2VyTW9kZVllYXJBbmRNb250
aCkKLSAgICAgICAgW19kYXRlUGlja2VyIHNldFByZWZlcnJlZERhdGVQaWNrZXJTdHlsZTpVSURh
dGVQaWNrZXJTdHlsZVdoZWVsc107Ci0gICAgZWxzZQotICAgICAgICBbX2RhdGVQaWNrZXIgc2V0
UHJlZmVycmVkRGF0ZVBpY2tlclN0eWxlOlVJRGF0ZVBpY2tlclN0eWxlSW5saW5lXTsKLSNlbmRp
ZgotfQotCi0tIChOU1RpbWVab25lICopdGltZVpvbmUKLXsKLSAgICByZXR1cm4gW19kYXRlUGlj
a2VyIHRpbWVab25lXTsKLX0KLQotLSAodm9pZClzZXRUaW1lWm9uZTooTlNUaW1lWm9uZSAqKXRp
bWVab25lCi17Ci0gICAgcmV0dXJuIFtfZGF0ZVBpY2tlciBzZXRUaW1lWm9uZTp0aW1lWm9uZV07
Ci19Ci0KLS0gKE5TQ2FsZW5kYXIgKiljYWxlbmRhcgotewotICAgIHJldHVybiBbX2RhdGVQaWNr
ZXIgY2FsZW5kYXJdOwotfQotCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tEYXRlVGltZVBpY2tlciA6
IE5TT2JqZWN0PFdLRm9ybUNvbnRyb2wKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNpZiAhSEFW
RShVSURBVEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pICYmIFVTRShVSUNPTlRFWFRNRU5V
KQogLCBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25EZWxlZ2F0ZQotI2VuZGlmCiAsIFdLRGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlCisjZW5kaWYKID4gewogICAgIE5TU3RyaW5n
ICpfZm9ybWF0U3RyaW5nOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX2luaXRpYWxWYWx1ZTsK
QEAgLTI3NiwxMCArMjMzLDE2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tl
clRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogICAgIEJPT0wgX3Nob3VsZFJlbW92ZVRpbWVab25l
SW5mb3JtYXRpb247CiAgICAgV0tDb250ZW50VmlldyAqX3ZpZXc7CiAgICAgQ0dQb2ludCBfaW50
ZXJhY3Rpb25Qb2ludDsKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICBSZXRhaW5QdHI8VUlE
YXRlUGlja2VyPiBfZGF0ZVBpY2tlcjsKKyNpZiBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BS
RVNFTlRBVElPTikKKyAgICBCT09MIF9pc0Rpc21pc3NpbmdEYXRlUGlja2VyOworCisgICAgUmV0
YWluUHRyPF9VSURhdGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9uPiBfZGF0ZVBpY2tlclByZXNl
bnRhdGlvbjsKKyAgICBSZXRhaW5QdHI8VUlUb29sYmFyPiBfYWNjZXNzb3J5VmlldzsKKyNlbGlm
IFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24+IF9kYXRlVGltZUNvbnRleHRNZW51SW50ZXJhY3Rpb247Ci0jZW5kaWYKICAgICBSZXRhaW5Q
dHI8V0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyPiBfZGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlcjsKKyNlbmRpZgogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS0Nv
bnRlbnRWaWV3ICopdmlldyBkYXRlUGlja2VyTW9kZTooVUlEYXRlUGlja2VyTW9kZSltb2RlOwpA
QCAtMzI2LDEzICsyODksNzAgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2Vy
Q29udHJvbE1hcmdpbiA9IDY7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIF9kYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxmXSk7Ci0gICAgW19kYXRlVGltZVBp
Y2tlclZpZXdDb250cm9sbGVyIHNldERhdGVQaWNrZXJNb2RlOm1vZGVdOworICAgIF9kYXRlUGlj
a2VyID0gYWRvcHROUyhbW1VJRGF0ZVBpY2tlciBhbGxvY10gaW5pdF0pOworICAgIFtfZGF0ZVBp
Y2tlciBhZGRUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGRhdGVQaWNrZXJDaGFuZ2VkOikg
Zm9yQ29udHJvbEV2ZW50czpVSUNvbnRyb2xFdmVudFZhbHVlQ2hhbmdlZF07CisKKyAgICBpZiAo
W3NlbGYgc2hvdWxkRm9yY2VHcmVnb3JpYW5DYWxlbmRhcl0pCisgICAgICAgIFtfZGF0ZVBpY2tl
ciBzZXRDYWxlbmRhcjpbTlNDYWxlbmRhciBjYWxlbmRhcldpdGhJZGVudGlmaWVyOk5TQ2FsZW5k
YXJJZGVudGlmaWVyR3JlZ29yaWFuXV07CisKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZVBpY2tl
ck1vZGU6bW9kZV07CisKKyNpZiBIQVZFKFVJREFURVBJQ0tFUl9TVFlMRSkKKyAgICBpZiAobW9k
ZSA9PSBVSURhdGVQaWNrZXJNb2RlVGltZSB8fCBtb2RlID09IChVSURhdGVQaWNrZXJNb2RlKVVJ
RGF0ZVBpY2tlck1vZGVZZWFyQW5kTW9udGgpCisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXRQcmVm
ZXJyZWREYXRlUGlja2VyU3R5bGU6VUlEYXRlUGlja2VyU3R5bGVXaGVlbHNdOworICAgIGVsc2UK
KyAgICAgICAgW19kYXRlUGlja2VyIHNldFByZWZlcnJlZERhdGVQaWNrZXJTdHlsZTpVSURhdGVQ
aWNrZXJTdHlsZUlubGluZV07CisjZW5kaWYKKworI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJM
QVlfUFJFU0VOVEFUSU9OKQorICAgIF9pc0Rpc21pc3NpbmdEYXRlUGlja2VyID0gTk87CisKKyAg
ICBfYWNjZXNzb3J5VmlldyA9IGFkb3B0TlMoW1tVSVRvb2xiYXIgYWxsb2NdIGluaXRdKTsKKyAg
ICBbW19hY2Nlc3NvcnlWaWV3IGhlaWdodEFuY2hvcl0gY29uc3RyYWludEVxdWFsVG9Db25zdGFu
dDprRGF0ZVRpbWVQaWNrZXJUb29sYmFySGVpZ2h0XS5hY3RpdmUgPSBZRVM7CisKKyNpZiBIQVZF
KFVJVE9PTEJBUl9TVEFOREFSRF9BUFBFQVJBTkNFKQorICAgIGF1dG8gdG9vbGJhckFwcGVhcmFu
Y2UgPSBhZG9wdE5TKFtbVUlUb29sYmFyQXBwZWFyYW5jZSBhbGxvY10gaW5pdF0pOworICAgIFt0
b29sYmFyQXBwZWFyYW5jZSBzZXRCYWNrZ3JvdW5kRWZmZWN0Om5pbF07CisgICAgW19hY2Nlc3Nv
cnlWaWV3IHNldFN0YW5kYXJkQXBwZWFyYW5jZTp0b29sYmFyQXBwZWFyYW5jZS5nZXQoKV07Cisj
ZW5kaWYKKworICAgIGF1dG8gcmVzZXRCdXR0b24gPSBhZG9wdE5TKFtbVUlCYXJCdXR0b25JdGVt
IGFsbG9jXSBpbml0V2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZKCJSZXNldCIsICJSZXNldCBC
dXR0b24gRGF0ZS9UaW1lIENvbnRleHQgTWVudSIsICJSZXNldCBidXR0b24gaW4gZGF0ZSBpbnB1
dCBjb250ZXh0IG1lbnUiKSBzdHlsZTpVSUJhckJ1dHRvbkl0ZW1TdHlsZVBsYWluIHRhcmdldDpz
ZWxmIGFjdGlvbjpAc2VsZWN0b3IocmVzZXQ6KV0pOworICAgIGF1dG8gZG9uZUJ1dHRvbiA9IGFk
b3B0TlMoW1tVSUJhckJ1dHRvbkl0ZW0gYWxsb2NdIGluaXRXaXRoQmFyQnV0dG9uU3lzdGVtSXRl
bTpVSUJhckJ1dHRvblN5c3RlbUl0ZW1Eb25lIHRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3Io
ZG9uZTopXSk7CisKKyAgICBbX2FjY2Vzc29yeVZpZXcgc2V0SXRlbXM6QFsgcmVzZXRCdXR0b24u
Z2V0KCksIFVJQmFyQnV0dG9uSXRlbS5mbGV4aWJsZVNwYWNlSXRlbSwgZG9uZUJ1dHRvbi5nZXQo
KSBdXTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIF9kYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyID0gYWRvcHROUyhbW1dLRGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxv
Y10gaW5pdFdpdGhEYXRlUGlja2VyOl9kYXRlUGlja2VyLmdldCgpXSk7CisgICAgW19kYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworI2VuZGlmCiAKICAgICBy
ZXR1cm4gc2VsZjsKIH0KIAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorI2lmIEhBVkUoVUlEQVRF
UElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorCistICh2b2lkKWhhbmRsZURhdGVQaWNrZXJQ
cmVzZW50YXRpb25EaXNtaXNzYWwKK3sKKyAgICBpZiAoX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIFNldEZvclNjb3BlPEJPT0w+IGlzRGlzbWlzc2luZ0Rh
dGVQaWNrZXIgeyBfaXNEaXNtaXNzaW5nRGF0ZVBpY2tlciwgWUVTIH07CisgICAgW192aWV3IGFj
Y2Vzc29yeURvbmVdOworfQorCistICh2b2lkKXJlbW92ZURhdGVQaWNrZXJQcmVzZW50YXRpb24K
K3sKKyAgICBpZiAoX2RhdGVQaWNrZXJQcmVzZW50YXRpb24pIHsKKyAgICAgICAgaWYgKCFfaXNE
aXNtaXNzaW5nRGF0ZVBpY2tlcikgeworICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaXNE
aXNtaXNzaW5nRGF0ZVBpY2tlciB7IF9pc0Rpc21pc3NpbmdEYXRlUGlja2VyLCBZRVMgfTsKKyAg
ICAgICAgICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBkaXNtaXNzUHJlc2VudGF0aW9uQW5p
bWF0ZWQ6Tk9dOworICAgICAgICB9CisKKyAgICAgICAgX2RhdGVQaWNrZXJQcmVzZW50YXRpb24g
PSBuaWw7CisgICAgICAgIFtfdmlldy53ZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdOwor
ICAgIH0KK30KKworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKFVJRWRnZUluc2V0cylf
cHJlZmVycmVkRWRnZUluc2V0c0ZvckRhdGVUaW1lUGlja2VyCiB7CkBAIC00NjIsMzAgKzQ4Miw1
NyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0g
NjsKICAgICB9CiB9CiAKKy0gKHZvaWQpZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRpZFBy
ZXNzUmVzZXRCdXR0b246KFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXIKK3sKKyAgICBbc2VsZiByZXNldDpuaWxdOworfQorCistICh2
b2lkKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXJEaWRQcmVzc0RvbmVCdXR0b246KFdLRGF0
ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIK
K3sKKyAgICBbc2VsZiBkb25lOm5pbF07Cit9CisKKyNlbmRpZgorCiAtICh2b2lkKXNob3dEYXRl
VGltZVBpY2tlcgogewotI2lmIEhBVkUoVUlDT05URVhUTUVOVV9MT0NBVElPTikKKyNpZiBIQVZF
KFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikKKyAgICBfZGF0ZVBpY2tlclByZXNl
bnRhdGlvbiA9IGFkb3B0TlMoW1tfVUlEYXRlUGlja2VyT3ZlcmxheVByZXNlbnRhdGlvbiBhbGxv
Y10gaW5pdFdpdGhTb3VyY2VWaWV3Ol92aWV3XSk7CisgICAgW19kYXRlUGlja2VyUHJlc2VudGF0
aW9uIHNldFNvdXJjZVJlY3Q6X3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFj
dGlvblJlY3RdOworICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBzZXRBY2Nlc3NvcnlWaWV3
Ol9hY2Nlc3NvcnlWaWV3LmdldCgpXTsKKyAgICBbX2RhdGVQaWNrZXJQcmVzZW50YXRpb24gc2V0
QWNjZXNzb3J5Vmlld0lnbm9yZXNEZWZhdWx0SW5zZXRzOllFU107CisKKyAgICBpZiAoW19kYXRl
UGlja2VyUHJlc2VudGF0aW9uIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0T3Zlcmxh
eUFuY2hvcjopXSkKKyAgICAgICAgW19kYXRlUGlja2VyUHJlc2VudGF0aW9uIHNldE92ZXJsYXlB
bmNob3I6X1VJRGF0ZVBpY2tlck92ZXJsYXlBbmNob3JTb3VyY2VSZWN0XTsKKworICAgIFtfZGF0
ZVBpY2tlclByZXNlbnRhdGlvbiBwcmVzZW50RGF0ZVBpY2tlcjpfZGF0ZVBpY2tlci5nZXQoKSBv
bkRpc21pc3M6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRlVGltZVBpY2tlcj4oc2VsZild
KEJPT0wpIHsKKyAgICAgICAgaWYgKGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpKQor
ICAgICAgICAgICAgW3N0cm9uZ1NlbGYgaGFuZGxlRGF0ZVBpY2tlclByZXNlbnRhdGlvbkRpc21p
c3NhbF07CisgICAgfV07CisKKyAgICBbX3ZpZXcud2ViVmlldyBfZGlkU2hvd0NvbnRleHRNZW51
XTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBIQVZFKFVJQ09OVEVYVE1FTlVfTE9DQVRJ
T04pCiAgICAgW3NlbGYgZW5zdXJlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiAgICAgW19kYXRl
VGltZUNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpfaW50ZXJh
Y3Rpb25Qb2ludF07CiAjZW5kaWYKIH0KIAotI2VuZGlmCi0KLS0gKHZvaWQpZGF0ZVRpbWVQaWNr
ZXJWaWV3Q29udHJvbGxlckRpZENoYW5nZURhdGU6KFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJv
bGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIKKy0gKHZvaWQpZGF0ZVBpY2tlckNo
YW5nZWQ6KGlkKXNlbmRlcgogewogICAgIFtzZWxmIF9kYXRlQ2hhbmdlZF07CiB9CiAKLS0gKHZv
aWQpZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRpZFByZXNzUmVzZXRCdXR0b246KFdLRGF0
ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIK
Ky0gKHZvaWQpcmVzZXQ6KGlkKXNlbmRlcgogewogICAgIFtzZWxmIHNldERhdGVUaW1lUGlja2Vy
VG9Jbml0aWFsVmFsdWVdOwogICAgIFtfdmlldyBwYWdlXS0+c2V0Rm9jdXNlZEVsZW1lbnRWYWx1
ZShTdHJpbmcoKSk7CiB9CiAKLS0gKHZvaWQpZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRp
ZFByZXNzRG9uZUJ1dHRvbjooV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlcgorLSAodm9pZClkb25lOihpZClzZW5kZXIKIHsKLSNpZiBV
U0UoVUlDT05URVhUTUVOVSkKKyNpZiBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRB
VElPTikKKyAgICBbX2RhdGVQaWNrZXJQcmVzZW50YXRpb24gZGlzbWlzc1ByZXNlbnRhdGlvbkFu
aW1hdGVkOllFU107CisjZWxpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBbX2RhdGVUaW1lQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiBkaXNtaXNzTWVudV07CiAjZW5kaWYKIH0KQEAgLTUwMCw3ICs1
NDcsOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2lu
ID0gNjsKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisjaWYg
SEFWRShVSURBVEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pCisgICAgW3NlbGYgcmVtb3Zl
RGF0ZVBpY2tlclByZXNlbnRhdGlvbl07CisjZWxpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBb
c2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICNlbmRpZgogICAgIFtzdXBlciBk
ZWFsbG9jXTsKQEAgLTUxMSw3ICs1NjAsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRp
bWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBpZiAoIV9zaG91bGRSZW1vdmVUaW1lWm9u
ZUluZm9ybWF0aW9uKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBbW19kYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyIHRpbWVab25lXSBzZWNvbmRzRnJvbUdNVEZvckRhdGU6ZGF0
ZV07CisgICAgcmV0dXJuIFtbX2RhdGVQaWNrZXIgdGltZVpvbmVdIHNlY29uZHNGcm9tR01URm9y
RGF0ZTpkYXRlXTsKIH0KIAogLSAoTlNTdHJpbmcgKilfc2FuaXRpemVJbnB1dFZhbHVlRm9yRm9y
bWF0dGVyOihOU1N0cmluZyAqKXZhbHVlCkBAIC01MjgsNyArNTc3LDcgQEAgc3RhdGljIGNvbnN0
IENHRmxvYXQga0RhdGVUaW1lUGlja2VyQ29udHJvbE1hcmdpbiA9IDY7CiB7CiAgICAgUmV0YWlu
UHRyPE5TTG9jYWxlPiBlbmdsaXNoTG9jYWxlID0gYWRvcHROUyhbW05TTG9jYWxlIGFsbG9jXSBp
bml0V2l0aExvY2FsZUlkZW50aWZpZXI6QCJlbl9VU19QT1NJWCJdKTsKICAgICBSZXRhaW5QdHI8
TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gYWRvcHROUyhbW05TRGF0ZUZvcm1hdHRl
ciBhbGxvY10gaW5pdF0pOwotICAgIFtkYXRlRm9ybWF0dGVyIHNldFRpbWVab25lOltfZGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlciB0aW1lWm9uZV1dOworICAgIFtkYXRlRm9ybWF0dGVyIHNl
dFRpbWVab25lOltfZGF0ZVBpY2tlciB0aW1lWm9uZV1dOwogICAgIFtkYXRlRm9ybWF0dGVyIHNl
dERhdGVGb3JtYXQ6X2Zvcm1hdFN0cmluZ107CiAgICAgW2RhdGVGb3JtYXR0ZXIgc2V0TG9jYWxl
OmVuZ2xpc2hMb2NhbGUuZ2V0KCldOwogICAgIHJldHVybiBkYXRlRm9ybWF0dGVyOwpAQCAtNTM2
LDcgKzU4NSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xN
YXJnaW4gPSA2OwogCiAtICh2b2lkKV9kYXRlQ2hhbmdlZFNldEFzTnVtYmVyCiB7Ci0gICAgTlNE
YXRlICpkYXRlID0gW19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIGRhdGVdOworICAgIE5T
RGF0ZSAqZGF0ZSA9IFtfZGF0ZVBpY2tlciBkYXRlXTsKICAgICBbX3ZpZXcgdXBkYXRlRm9jdXNl
ZEVsZW1lbnRWYWx1ZUFzTnVtYmVyOihkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCArIFtzZWxm
IF90aW1lWm9uZU9mZnNldEZyb21HTVQ6ZGF0ZV0pICoga01pbGxpc2Vjb25kc1BlclNlY29uZF07
CiB9CiAKQEAgLTU0NCw3ICs1OTMsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQ
aWNrZXJDb250cm9sTWFyZ2luID0gNjsKIHsKICAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBi
ZWNhdXNlIHRoYXQgaXMgd2hhdCBIVE1MNSB2YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgUmV0
YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZGF0ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0
ZXJGb3JQaWNrZXJdOwotICAgIFtfdmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOltkYXRl
Rm9ybWF0dGVyIHN0cmluZ0Zyb21EYXRlOltfZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciBk
YXRlXV1dOworICAgIFtfdmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOltkYXRlRm9ybWF0
dGVyIHN0cmluZ0Zyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRlXV1dOwogfQogCiAtICh2b2lkKV9k
YXRlQ2hhbmdlZApAQCAtNTYyLDE5ICs2MTEsMTkgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0Rh
dGVUaW1lUGlja2VyQ29udHJvbE1hcmdpbiA9IDY7CiAtICh2b2lkKXNldERhdGVUaW1lUGlja2Vy
VG9Jbml0aWFsVmFsdWUKIHsKICAgICBpZiAoW19pbml0aWFsVmFsdWUgaXNFcXVhbDogQCIiXSkg
ewotICAgICAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGF0ZTpbTlNEYXRl
IGRhdGVdXTsKKyAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGU6W05TRGF0ZSBkYXRlXV07CiAg
ICAgICAgIFtzZWxmIF9kYXRlQ2hhbmdlZF07CiAgICAgfSBlbHNlIGlmIChfZm9ybWF0U3RyaW5n
KSB7CiAgICAgICAgIC8vIENvbnZlcnQgdGhlIHN0cmluZyB2YWx1ZSB0byBhIGRhdGUgb2JqZWN0
IGZvciB0aGUgZmllbGRzIHdoZXJlIHdlIGhhdmUgYSBmb3JtYXQgc3RyaW5nLgogICAgICAgICBS
ZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gW3NlbGYgZGF0ZUZvcm1h
dHRlckZvclBpY2tlcl07CiAgICAgICAgIE5TRGF0ZSAqcGFyc2VkRGF0ZSA9IFtkYXRlRm9ybWF0
dGVyIGRhdGVGcm9tU3RyaW5nOltzZWxmIF9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6
X2luaXRpYWxWYWx1ZS5nZXQoKV1dOwotICAgICAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIgc2V0RGF0ZTpwYXJzZWREYXRlID8gcGFyc2VkRGF0ZSA6IFtOU0RhdGUgZGF0ZV1dOwor
ICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpwYXJzZWREYXRlID8gcGFyc2VkRGF0ZSA6IFtO
U0RhdGUgZGF0ZV1dOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENvbnZlcnQgdGhlIG51bWJl
ciB2YWx1ZSB0byBhIGRhdGUgb2JqZWN0IGZvciB0aGUgZmllbGRzIGFmZmVjdGVkIGJ5IHRpbWV6
b25lcy4KICAgICAgICAgTlNUaW1lSW50ZXJ2YWwgc2Vjb25kc1NpbmNlMTk3MCA9IF9pbml0aWFs
VmFsdWVBc051bWJlciAvIGtNaWxsaXNlY29uZHNQZXJTZWNvbmQ7CiAgICAgICAgIE5TSW50ZWdl
ciB0aW1lWm9uZU9mZnNldCA9IFtzZWxmIF90aW1lWm9uZU9mZnNldEZyb21HTVQ6W05TRGF0ZSBk
YXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpzZWNvbmRzU2luY2UxOTcwXV07CiAgICAgICAg
IE5TVGltZUludGVydmFsIGFkanVzdGVkU2Vjb25kc1NpbmNlMTk3MCA9IHNlY29uZHNTaW5jZTE5
NzAgLSB0aW1lWm9uZU9mZnNldDsKLSAgICAgICAgW19kYXRlVGltZVBpY2tlclZpZXdDb250cm9s
bGVyIHNldERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDphZGp1c3Rl
ZFNlY29uZHNTaW5jZTE5NzBdXTsKKyAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGU6W05TRGF0
ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDphZGp1c3RlZFNlY29uZHNTaW5jZTE5NzBd
XTsKICAgICB9CiB9CiAKQEAgLTU5MCw3ICs2MzksNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgW192aWV3IHN0YXJ0UmVs
aW5xdWlzaGluZ0ZpcnN0UmVzcG9uZGVyVG9Gb2N1c2VkRWxlbWVudF07CiAKICAgICAvLyBTZXQg
dGhlIHRpbWUgem9uZSBpbiBjYXNlIGl0IGNoYW5nZWQuCi0gICAgW19kYXRlVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyIHNldFRpbWVab25lOk5TVGltZVpvbmUubG9jYWxUaW1lWm9uZV07CisgICAg
W19kYXRlUGlja2VyIHNldFRpbWVab25lOk5TVGltZVpvbmUubG9jYWxUaW1lWm9uZV07CiAKICAg
ICAvLyBDdXJyZW50bHkgbm8gdmFsdWUgZm9yIHRoZSA8aW5wdXQ+LiBTdGFydCB0aGUgcGlja2Vy
IHdpdGggdGhlIGN1cnJlbnQgdGltZS4KICAgICAvLyBBbHNvLCB1cGRhdGUgdGhlIGFjdHVhbCA8
aW5wdXQ+IHZhbHVlLgpAQCAtNTk4LDI5ICs2NDcsMjkgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQg
a0RhdGVUaW1lUGlja2VyQ29udHJvbE1hcmdpbiA9IDY7CiAgICAgX2luaXRpYWxWYWx1ZUFzTnVt
YmVyID0gX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi52YWx1ZUFzTnVtYmVyOwogICAg
IFtzZWxmIHNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFsVmFsdWVdOwogCi0jaWYgVVNFKFVJQ09O
VEVYVE1FTlUpCiAgICAgW3NlbGYgc2hvd0RhdGVUaW1lUGlja2VyXTsKLSNlbmRpZgogfQogCiAt
ICh2b2lkKWNvbnRyb2xFbmRFZGl0aW5nCiB7CiAgICAgW192aWV3IHN0b3BSZWxpbnF1aXNoaW5n
Rmlyc3RSZXNwb25kZXJUb0ZvY3VzZWRFbGVtZW50XTsKIAotI2lmIFVTRShVSUNPTlRFWFRNRU5V
KQorI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorICAgIFtzZWxm
IHJlbW92ZURhdGVQaWNrZXJQcmVzZW50YXRpb25dOworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAgICAgW3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiAjZW5kaWYKIH0KIAog
LSAoTlNTdHJpbmcgKiljYWxlbmRhclR5cGUKIHsKLSAgICByZXR1cm4gW19kYXRlVGltZVBpY2tl
clZpZXdDb250cm9sbGVyIGNhbGVuZGFyXS5jYWxlbmRhcklkZW50aWZpZXI7CisgICAgcmV0dXJu
IFtfZGF0ZVBpY2tlciBjYWxlbmRhcl0uY2FsZW5kYXJJZGVudGlmaWVyOwogfQogCiAtIChkb3Vi
bGUpaG91cgogewogICAgIE5TQ2FsZW5kYXIgKmNhbGVuZGFyID0gW05TQ2FsZW5kYXIgY3VycmVu
dENhbGVuZGFyXTsKLSAgICBOU0RhdGVDb21wb25lbnRzICpjb21wb25lbnRzID0gW2NhbGVuZGFy
IGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRIb3VyIGZyb21EYXRlOltfZGF0ZVRpbWVQaWNrZXJW
aWV3Q29udHJvbGxlciBkYXRlXV07CisgICAgTlNEYXRlQ29tcG9uZW50cyAqY29tcG9uZW50cyA9
IFtjYWxlbmRhciBjb21wb25lbnRzOk5TQ2FsZW5kYXJVbml0SG91ciBmcm9tRGF0ZTpbX2RhdGVQ
aWNrZXIgZGF0ZV1dOwogCiAgICAgcmV0dXJuIGNvbXBvbmVudHMuaG91cjsKIH0KQEAgLTYyOCw3
ICs2NzcsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFy
Z2luID0gNjsKIC0gKGRvdWJsZSltaW51dGUKIHsKICAgICBOU0NhbGVuZGFyICpjYWxlbmRhciA9
IFtOU0NhbGVuZGFyIGN1cnJlbnRDYWxlbmRhcl07Ci0gICAgTlNEYXRlQ29tcG9uZW50cyAqY29t
cG9uZW50cyA9IFtjYWxlbmRhciBjb21wb25lbnRzOk5TQ2FsZW5kYXJVbml0TWludXRlIGZyb21E
YXRlOltfZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciBkYXRlXV07CisgICAgTlNEYXRlQ29t
cG9uZW50cyAqY29tcG9uZW50cyA9IFtjYWxlbmRhciBjb21wb25lbnRzOk5TQ2FsZW5kYXJVbml0
TWludXRlIGZyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRlXV07CiAKICAgICByZXR1cm4gY29tcG9u
ZW50cy5taW51dGU7CiB9CkBAIC02MzYsNyArNjg1LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQg
a0RhdGVUaW1lUGlja2VyQ29udHJvbE1hcmdpbiA9IDY7CiAtICh2b2lkKXNldEhvdXI6KE5TSW50
ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRlZ2VyKW1pbnV0ZQogewogICAgIE5TU3RyaW5nICp0aW1l
U3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJsZDolLjJsZCIsIChsb25n
KWhvdXIsIChsb25nKW1pbnV0ZV07Ci0gICAgW19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
IHNldERhdGU6W1tzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdIGRhdGVGcm9tU3RyaW5nOnRp
bWVTdHJpbmddXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbW3NlbGYgZGF0ZUZvcm1hdHRl
ckZvclBpY2tlcl0gZGF0ZUZyb21TdHJpbmc6dGltZVN0cmluZ11dOwogICAgIFtzZWxmIF9kYXRl
Q2hhbmdlZF07CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZGJkYjI4YmY3NDhiZWMyNDI0ZmJiMjA2ZDE3MGJiYjg1
NzM2ZDYzLi4yOTQ1MWVhYTgyYjkzMzhiNWMxMWRjZjM5Nzk2ZTA0OTMxZDU4MDA1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkb3B0IG5ldyBkYXRlIHBpY2tlciBwcmVzZW50YXRp
b24gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjcyMjEKKyAgICAgICAgPHJkYXIvL3Byb2JsZW0vNzc5MzAwODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9jb25zdGFu
dC1zY3JvbGwtYXJlYS13aGVuLW1vdmluZy1mb2N1cy1iZXR3ZWVuLWZpZWxkcy5odG1sOgorCisg
ICAgICAgIFJlLW9yZGVyIHRoZSBjYWxsIHRvIHdhaXQgZm9yIHRoZSBrZXlib2FyZCB0byBkaXNt
aXNzIHNpbmNlIHRoZQorICAgICAgICBwcmVzZW50YXRpb24gU1BJIGRvZXNuJ3QgdGVsbCB1cyBl
eGFjdGx5IHdoZW4gdGhlIHByZXNlbnRhdGlvbiBhbmltYXRpb24KKyAgICAgICAgaXMgY29tcGxl
dGUuIFRoZSBvdGhlciBhbHRlcm5hdGl2ZSB3YXMgdG8gYWRkIGEgbWFudWFsIGRlbGF5LCBob3dl
dmVyLAorICAgICAgICByZS1vcmRlcmluZyB0aGUgY2FsbHMgaXMgc2FmZSBhbmQgcHJlc2VydmVz
IHRoZSBvcmlnaW5hbCB0ZXN0IGJlaGF2aW9yLgorCiAyMDIxLTA2LTIwICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgY291bnRlciBzdHlsZSBpbXByb3ZlbWVu
dHMgZm9yIEFybWVuaWFuLCBUYW1pbCwgYW5kIHNvbWUgQ0pLIHN0eWxlcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvY29uc3RhbnQtc2Nyb2xsLWFyZWEtd2hlbi1tb3Zp
bmctZm9jdXMtYmV0d2Vlbi1maWVsZHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L2NvbnN0YW50LXNjcm9sbC1hcmVhLXdoZW4tbW92aW5nLWZvY3VzLWJldHdlZW4tZmllbGRzLmh0
bWwKaW5kZXggNTcyMGMyNGI3MzVmZThjZmFhNTFkZDI3ODcwYTA3MzY0MDNiMDQ4NS4uY2JlMmJm
ZjgxYTZlMzY1ODJlMGViMTY0NTU1M2QwZWE0YTFiYTU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pb3MvY29uc3RhbnQtc2Nyb2xsLWFyZWEtd2hlbi1tb3ZpbmctZm9jdXMt
YmV0d2Vlbi1maWVsZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9jb25z
dGFudC1zY3JvbGwtYXJlYS13aGVuLW1vdmluZy1mb2N1cy1iZXR3ZWVuLWZpZWxkcy5odG1sCkBA
IC0yMiw4ICsyMiw4IEBACiAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFu
ZFdhaXRGb3JJbnB1dFNlc3Npb24odGV4dCk7CiAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oZGF0ZSk7CiAKLSAgICAgICAgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7CiAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JL
ZXlib2FyZFRvSGlkZSgpOworICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTsK
IAogICAgICAgICBhd2FpdCBVSUhlbHBlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgxNjAsIDE1MCwg
MTYwLCA1MCwgMC4xKTsKICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlU3RhYmxlUHJlc2Vu
dGF0aW9uVXBkYXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431876</attachid>
            <date>2021-06-21 10:44:58 -0700</date>
            <delta_ts>2021-06-23 09:23:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227221-20210621134456.patch</filename>
            <type>text/plain</type>
            <size>23560</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzNmE5ZjhiMGUyMzVmMmFhN2Y0NWY3
M2U2YmU0ODAzNGU4NGIyNWQuLjJmZGE4OTZlOWU2NTA0MDc4OTQyZDA1OGRiMjY3MmUxNTY1NGRk
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkb3B0IG5ldyBkYXRlIHBpY2tlciBw
cmVzZW50YXRpb24gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3OTMwMDg2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3Jt
SGF2ZS5oOgorCisgICAgICAgIEFkZCBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRB
VElPTikgYW5kIEhBVkUoVUlUT09MQkFSX1NUQU5EQVJEX0FQUEVBUkFOQ0UpLgorCiAyMDIxLTA2
LTIxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjc5MDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwNjlkOTBmNjFl
ODVkZTc0YmE3OTM4Njk5YjNiNDAyYTYyNTM4ODYuLjE5MWYzMzJjMzY0NWI4N2MzZDE4NzIyOGJm
OWYzMTRjYzExODcxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDYtMjEgIEFk
aXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkb3B0
IG5ldyBkYXRlIHBpY2tlciBwcmVzZW50YXRpb24gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc3OTMwMDg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEluIG5hdGl2ZSBhcHBsaWNhdGlvbnMsIHRhcHBpbmcgb24gYSBjb21wYWN0IFVJRGF0ZVBp
Y2tlciBwcmVzZW50cyBhbgorICAgICAgICBpbmxpbmUgcGlja2VyIHVzaW5nIF9VSURhdGVQaWNr
ZXJPdmVybGF5UHJlc2VudGF0aW9uLiBUbyBhdm9pZAorICAgICAgICBtYWludGFpbmluZyBvdXIg
b3duIHByZXNlbnRhdGlvbiBsb2dpYywgYW5kIHRvIGJldHRlciBtYXRjaCB0aGUgbmF0aXZlCisg
ICAgICAgIHByZXNlbnRhdGlvbiwgdXNlIF9VSURhdGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9u
IHdoZW4gdGFwcGluZyBvbiBhCisgICAgICAgIGRhdGUvdGltZSBpbnB1dCBpbiBXZWJLaXQuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFBsYXRmb3Jt
L3NwaS9pb3MvVUlLaXRTUEkuaDoKKworICAgICAgICBEZWNsYXJlIHRoZSBTUEkgcmF0aGVyIHRo
YW4gaW1wb3J0aW5nIHRoZSBoZWFkZXIgZGlyZWN0bHksIGFzIHRoZQorICAgICAgICBfVUlEYXRl
UGlja2VyT3ZlcmxheUFuY2hvciBlbnVtIGlzIG5vdCBhdmFpbGFibGUgaW4gYWxsIFNES3Mgd2l0
aAorICAgICAgICB0aGUgaGVhZGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0RhdGVUaW1lSW5wdXRDb250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXIgaW5pdFdpdGhEYXRlUGlja2VyOl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRp
bWVQaWNrZXIgaW5pdFdpdGhWaWV3OmRhdGVQaWNrZXJNb2RlOl0pOgorCisgICAgICAgIENyZWF0
ZSB0aGUgVUlEYXRlUGlja2VyIGhlcmUgc28gaXQgY2FuIGJlIHNoYXJlZCBieSB0aGUgb2xkIGNv
bnRleHQgbWVudQorICAgICAgICBwcmVzZW50YXRpb24gYW5kIHRoZSBuZXcgb3ZlcmxheSBwcmVz
ZW50YXRpb24uCisKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBoYW5kbGVEYXRlUGlja2Vy
UHJlc2VudGF0aW9uRGlzbWlzc2FsXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgcmVt
b3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlvbl0pOgorCisgICAgICAgIGBhY2Nlc3NvcnlEb25lYCBl
dmVudHVhbGx5IHJlbW92ZXMgdGhlIHByZXNlbnRhdGlvbi4gSWYgdGhlIGRhdGUgcGlja2VyCisg
ICAgICAgIGlzIGFscmVhZHkgYmVpbmcgZGlzbWlzc2VkLCBkbyBub3QgZGlzbWlzcyBpdCB3aXRo
b3V0IGFuIGFuaW1hdGlvbi4KKworICAgICAgICBGb3IgcHJvZ3JhbW1hdGljIGRpc21pc3NhbCAo
dXNpbmcgYmx1cigpKSB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgcHJpb3IgdG8KKyAgICAgICAgYGFj
Y2Vzc29yeURvbmVgLCBpbiB3aGljaCBjYXNlIHdlIGZvcmNlIGRpc21pc3NhbCB3aXRob3V0IGFu
aW1hdGlvbi4KKworICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGRhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXJEaWRQcmVzc1Jlc2V0QnV0dG9uOl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1l
UGlja2VyIGRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXJEaWRQcmVzc0RvbmVCdXR0b246XSk6
CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgc2hvd0RhdGVUaW1lUGlja2VyXSk6CisgICAg
ICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZVBpY2tlckNoYW5nZWQ6XSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgcmVzZXQ6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIg
ZG9uZTpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dLRGF0ZVRpbWVQaWNrZXIgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpdKToKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBkYXRlRm9ybWF0dGVyRm9yUGlja2VyXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgX2RhdGVDaGFuZ2VkU2V0QXNOdW1iZXJdKToKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBfZGF0ZUNoYW5nZWRTZXRBc1N0cmluZ10pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIHNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFsVmFsdWVdKToKKyAgICAg
ICAgKC1bV0tEYXRlVGltZVBpY2tlciBjb250cm9sQmVnaW5FZGl0aW5nXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgY29udHJvbEVuZEVkaXRpbmddKToKKyAgICAgICAgKC1bV0tEYXRl
VGltZVBpY2tlciBjYWxlbmRhclR5cGVdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBo
b3VyXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgbWludXRlXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgc2V0SG91cjptaW51dGU6XSk6CisKIDIwMjEtMDYtMjAgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBSZW5h
bWUgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciB0byBXS1F1aWNrTG9va1ByZXZpZXdD
b250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDgzOTk0MjNmODllMWU2MTE5YjUwYTBh
NTA2ZGFkOTdhMzA3NzMyYjQuLmRjN2U3YTg0ZWIxZjFjZjU2MDBiOTZjMjZjZjNiYmIxNTg0Njgy
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDU3LDMgKzEwNTcsMTEgQEAKICNkZWZpbmUg
SEFWRV9RVUlDS0xPT0tfSVRFTV9QUkVWSUVXX09QVElPTlMgMQogI2RlZmluZSBIQVZFX1FVSUNL
TE9PS19QUkVWSUVXX0FDVElWSVRZIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPFVJS2l0L19VSURh
dGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9uLmg+KQorI2RlZmluZSBIQVZFX1VJREFURVBJQ0tF
Ul9PVkVSTEFZX1BSRVNFTlRBVElPTiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykgfHwg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfVUlUT09MQkFSX1NUQU5EQVJEX0FQ
UEVBUkFOQ0UgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQ
SS5oCmluZGV4IDE3ZWZlMTVjYzkwODdhMjg3Nzk3ZDI4Yjc2M2VkZDZmMDNhOGRlYjMuLjljMTlm
MmM4NTA4YmMzOGFmYWQ1OTZlNDc1NjQxZWUxODU3ZDdmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xNDUxLDYgKzE0NTEsMzAgQEAgdHlwZWRlZiBO
U19FTlVNKE5TVUludGVnZXIsIF9VSUNvbnRleHRNZW51TGF5b3V0KSB7CiBAZW5kCiAjZW5kaWYK
IAorI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorCisvLyBGSVhN
RTogSW1wb3J0IHRoZSBoZWFkZXIgZGlyZWN0bHkgb25jZSBib3RzIGFyZSB1cGRhdGVkIHRvIGEg
YnVpbGQgY29udGFpbmluZyByZGFyOi8vNzg3Nzk2NTUuCisKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9VSURhdGVQaWNrZXJPdmVybGF5QW5jaG9yKSB7CisgICAgX1VJRGF0ZVBpY2tlck92
ZXJsYXlBbmNob3JTb3VyY2VSZWN0ID0gMgorfTsKKworQGludGVyZmFjZSBfVUlEYXRlUGlja2Vy
T3ZlcmxheVByZXNlbnRhdGlvbiA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFNvdXJjZVZpZXc6KFVJVmlldyAqKXNvdXJjZVZpZXc7CistICh2b2lkKXByZXNlbnREYXRlUGlj
a2VyOihVSURhdGVQaWNrZXIgKilkYXRlUGlja2VyIG9uRGlzbWlzczoodm9pZCheKShCT09MIHJl
dGFyZ2V0ZWQpKWRpc21pc3NIYW5kbGVyOworLSAodm9pZClkaXNtaXNzUHJlc2VudGF0aW9uQW5p
bWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCByZWFk
b25seSkgVUlWaWV3ICpzb3VyY2VWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikg
Q0dSZWN0IHNvdXJjZVJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBfVUlEYXRl
UGlja2VyT3ZlcmxheUFuY2hvciBvdmVybGF5QW5jaG9yOworQHByb3BlcnR5IChub25hdG9taWMs
IHN0cm9uZykgVUlWaWV3ICphY2Nlc3NvcnlWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIGFz
c2lnbikgQk9PTCBhY2Nlc3NvcnlWaWV3SWdub3Jlc0RlZmF1bHRJbnNldHM7CisKK0BlbmQKKwor
I2VuZGlmCisKIFdURl9FWFRFUk5fQ19CRUdJTgogCiBCT09MIFVJS2V5Ym9hcmRFbmFibGVkSW5w
dXRNb2Rlc0FsbG93T25lVG9NYW55U2hvcnRjdXRzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5t
bQppbmRleCBhMWJiODljYTBjNTM3ZjI4ZGJmYWRlYzMxN2Y5YTZlYzAzOGJlYWYyLi5hM2RkNTM3
MTA5NmYzMGQxOTIyYjQyMTU0OWI2MmExMjZiYjk0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5t
bQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRG
T1JNKFdBVENIT1MpCiAKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJm
YWNlSWRpb20uaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKICNpbXBvcnQgIldLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIgpAQCAtMzcsMTkgKzM4LDE4IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBAY2xhc3MgV0tEYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyOwogCiBAcHJvdG9jb2wgV0tEYXRlVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0PgotLSAodm9pZClkYXRlVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyRGlkQ2hhbmdlRGF0ZTooV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
ICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlcjsKIC0gKHZvaWQpZGF0ZVRpbWVQaWNrZXJW
aWV3Q29udHJvbGxlckRpZFByZXNzUmVzZXRCdXR0b246KFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI7CiAtICh2b2lkKWRhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXJEaWRQcmVzc0RvbmVCdXR0b246KFdLRGF0ZVRpbWVQaWNrZXJW
aWV3Q29udHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI7Ci0KLS0gKEJPT0wp
c2hvdWxkRm9yY2VHcmVnb3JpYW5DYWxlbmRhcjsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgOiBVSVZpZXdDb250cm9sbGVyCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhEZWxlZ2F0ZTooaWQ8V0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGVs
ZWdhdGU+KWRlbGVnYXRlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGF0ZVBpY2tlcjooVUlE
YXRlUGlja2VyICopZGF0ZVBpY2tlcjsKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGU7CiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgewpAQCAtNjgsMjMgKzY4
LDIyIEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckRlZmF1bHRXaWR0aCA9
IDMyMDsKIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlclRpbWVDb250cm9sV2lk
dGggPSAyMTg7CiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJUaW1lQ29udHJv
bEhlaWdodCA9IDE3MjsKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGVsZWdhdGU6KGlkIDxX
S0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aERhdGVQaWNrZXI6KFVJRGF0ZVBpY2tlciAqKWRhdGVQaWNrZXIKIHsK
ICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotCi0gICAgX2RhdGVQaWNrZXIgPSBhZG9wdE5TKFtb
VUlEYXRlUGlja2VyIGFsbG9jXSBpbml0XSk7Ci0gICAgW19kYXRlUGlja2VyIGFkZFRhcmdldDpz
ZWxmIGFjdGlvbjpAc2VsZWN0b3IoZGF0ZVBpY2tlckNoYW5nZWQ6KSBmb3JDb250cm9sRXZlbnRz
OlVJQ29udHJvbEV2ZW50VmFsdWVDaGFuZ2VkXTsKKyAgICBfZGF0ZVBpY2tlciA9IGRhdGVQaWNr
ZXI7CiAgICAgW19kYXRlUGlja2VyIHNldFRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0Nv
bnN0cmFpbnRzOk5PXTsKIAotICAgIGlmIChbX2RlbGVnYXRlIHNob3VsZEZvcmNlR3JlZ29yaWFu
Q2FsZW5kYXJdKQotICAgICAgICBbX2RhdGVQaWNrZXIgc2V0Q2FsZW5kYXI6W05TQ2FsZW5kYXIg
Y2FsZW5kYXJXaXRoSWRlbnRpZmllcjpOU0NhbGVuZGFySWRlbnRpZmllckdyZWdvcmlhbl1dOwot
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdh
dGUgPSBkZWxlZ2F0ZTsKK30KKwogLSAodm9pZCl2aWV3RGlkTG9hZAogewogICAgIFtzdXBlciB2
aWV3RGlkTG9hZF07CkBAIC0xNjgsMTEgKzE2Nyw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtE
YXRlVGltZVBpY2tlclRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogICAgIF1dOwogfQogCi0tICh2
b2lkKWRhdGVQaWNrZXJDaGFuZ2VkOihpZClzZW5kZXIKLXsKLSAgICBbX2RlbGVnYXRlIGRhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEaWRDaGFuZ2VEYXRlOnNlbGZdOwotfQotCiAtICh2b2lk
KXJlc2V0QnV0dG9uUHJlc3NlZDooaWQpc2VuZGVyCiB7CiAgICAgW19kZWxlZ2F0ZSBkYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NSZXNldEJ1dHRvbjpzZWxmXTsKQEAgLTIyNSw1
MCArMjE5LDEzIEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlclRpbWVDb250
cm9sSGVpZ2h0ID0gMTcyOwogICAgIHJldHVybiBfY29udGVudFNpemU7CiB9CiAKLS0gKE5TRGF0
ZSAqKWRhdGUKLXsKLSAgICByZXR1cm4gW19kYXRlUGlja2VyIGRhdGVdOwotfQotCi0tICh2b2lk
KXNldERhdGU6KE5TRGF0ZSAqKWRhdGUKLXsKLSAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpkYXRl
XTsKLX0KLQotLSAodm9pZClzZXREYXRlUGlja2VyTW9kZTooVUlEYXRlUGlja2VyTW9kZSltb2Rl
Ci17Ci0gICAgW19kYXRlUGlja2VyIHNldERhdGVQaWNrZXJNb2RlOm1vZGVdOwotCi0jaWYgSEFW
RShVSURBVEVQSUNLRVJfU1RZTEUpCi0gICAgaWYgKG1vZGUgPT0gVUlEYXRlUGlja2VyTW9kZVRp
bWUgfHwgbW9kZSA9PSAoVUlEYXRlUGlja2VyTW9kZSlVSURhdGVQaWNrZXJNb2RlWWVhckFuZE1v
bnRoKQotICAgICAgICBbX2RhdGVQaWNrZXIgc2V0UHJlZmVycmVkRGF0ZVBpY2tlclN0eWxlOlVJ
RGF0ZVBpY2tlclN0eWxlV2hlZWxzXTsKLSAgICBlbHNlCi0gICAgICAgIFtfZGF0ZVBpY2tlciBz
ZXRQcmVmZXJyZWREYXRlUGlja2VyU3R5bGU6VUlEYXRlUGlja2VyU3R5bGVJbmxpbmVdOwotI2Vu
ZGlmCi19Ci0KLS0gKE5TVGltZVpvbmUgKil0aW1lWm9uZQotewotICAgIHJldHVybiBbX2RhdGVQ
aWNrZXIgdGltZVpvbmVdOwotfQotCi0tICh2b2lkKXNldFRpbWVab25lOihOU1RpbWVab25lICop
dGltZVpvbmUKLXsKLSAgICByZXR1cm4gW19kYXRlUGlja2VyIHNldFRpbWVab25lOnRpbWVab25l
XTsKLX0KLQotLSAoTlNDYWxlbmRhciAqKWNhbGVuZGFyCi17Ci0gICAgcmV0dXJuIFtfZGF0ZVBp
Y2tlciBjYWxlbmRhcl07Ci19Ci0KIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGVUaW1lUGlja2Vy
IDogTlNPYmplY3Q8V0tGb3JtQ29udHJvbAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorI2lmICFI
QVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAsIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlCi0jZW5kaWYKICwgV0tEYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGUKKyNlbmRpZgogPiB7CiAgICAgTlNTdHJp
bmcgKl9mb3JtYXRTdHJpbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW5pdGlhbFZhbHVl
OwpAQCAtMjc2LDEwICsyMzMsMTYgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlj
a2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiAgICAgQk9PTCBfc2hvdWxkUmVtb3ZlVGltZVpv
bmVJbmZvcm1hdGlvbjsKICAgICBXS0NvbnRlbnRWaWV3ICpfdmlldzsKICAgICBDR1BvaW50IF9p
bnRlcmFjdGlvblBvaW50OwotI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFJldGFpblB0cjxV
SURhdGVQaWNrZXI+IF9kYXRlUGlja2VyOworI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlf
UFJFU0VOVEFUSU9OKQorICAgIEJPT0wgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXI7CisKKyAgICBS
ZXRhaW5QdHI8X1VJRGF0ZVBpY2tlck92ZXJsYXlQcmVzZW50YXRpb24+IF9kYXRlUGlja2VyUHJl
c2VudGF0aW9uOworICAgIFJldGFpblB0cjxVSVRvb2xiYXI+IF9hY2Nlc3NvcnlWaWV3OworI2Vs
aWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbj4gX2RhdGVUaW1lQ29udGV4dE1lbnVJbnRlcmFjdGlvbjsKLSNlbmRpZgogICAgIFJldGFp
blB0cjxXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI+IF9kYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyOworI2VuZGlmCiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdL
Q29udGVudFZpZXcgKil2aWV3IGRhdGVQaWNrZXJNb2RlOihVSURhdGVQaWNrZXJNb2RlKW1vZGU7
CkBAIC0zMjYsMTMgKzI4OSw3MCBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNr
ZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tEYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKLSAgICBbX2RhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGF0ZVBpY2tlck1vZGU6bW9kZV07CisgICAgX2RhdGVQ
aWNrZXIgPSBhZG9wdE5TKFtbVUlEYXRlUGlja2VyIGFsbG9jXSBpbml0XSk7CisgICAgW19kYXRl
UGlja2VyIGFkZFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoZGF0ZVBpY2tlckNoYW5nZWQ6
KSBmb3JDb250cm9sRXZlbnRzOlVJQ29udHJvbEV2ZW50VmFsdWVDaGFuZ2VkXTsKKworICAgIGlm
IChbc2VsZiBzaG91bGRGb3JjZUdyZWdvcmlhbkNhbGVuZGFyXSkKKyAgICAgICAgW19kYXRlUGlj
a2VyIHNldENhbGVuZGFyOltOU0NhbGVuZGFyIGNhbGVuZGFyV2l0aElkZW50aWZpZXI6TlNDYWxl
bmRhcklkZW50aWZpZXJHcmVnb3JpYW5dXTsKKworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlUGlj
a2VyTW9kZTptb2RlXTsKKworI2lmIEhBVkUoVUlEQVRFUElDS0VSX1NUWUxFKQorICAgIGlmICht
b2RlID09IFVJRGF0ZVBpY2tlck1vZGVUaW1lIHx8IG1vZGUgPT0gKFVJRGF0ZVBpY2tlck1vZGUp
VUlEYXRlUGlja2VyTW9kZVllYXJBbmRNb250aCkKKyAgICAgICAgW19kYXRlUGlja2VyIHNldFBy
ZWZlcnJlZERhdGVQaWNrZXJTdHlsZTpVSURhdGVQaWNrZXJTdHlsZVdoZWVsc107CisgICAgZWxz
ZQorICAgICAgICBbX2RhdGVQaWNrZXIgc2V0UHJlZmVycmVkRGF0ZVBpY2tlclN0eWxlOlVJRGF0
ZVBpY2tlclN0eWxlSW5saW5lXTsKKyNlbmRpZgorCisjaWYgSEFWRShVSURBVEVQSUNLRVJfT1ZF
UkxBWV9QUkVTRU5UQVRJT04pCisgICAgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIgPSBOTzsKKwor
ICAgIF9hY2Nlc3NvcnlWaWV3ID0gYWRvcHROUyhbW1VJVG9vbGJhciBhbGxvY10gaW5pdF0pOwor
ICAgIFtbX2FjY2Vzc29yeVZpZXcgaGVpZ2h0QW5jaG9yXSBjb25zdHJhaW50RXF1YWxUb0NvbnN0
YW50OmtEYXRlVGltZVBpY2tlclRvb2xiYXJIZWlnaHRdLmFjdGl2ZSA9IFlFUzsKKworI2lmIEhB
VkUoVUlUT09MQkFSX1NUQU5EQVJEX0FQUEVBUkFOQ0UpCisgICAgYXV0byB0b29sYmFyQXBwZWFy
YW5jZSA9IGFkb3B0TlMoW1tVSVRvb2xiYXJBcHBlYXJhbmNlIGFsbG9jXSBpbml0XSk7CisgICAg
W3Rvb2xiYXJBcHBlYXJhbmNlIHNldEJhY2tncm91bmRFZmZlY3Q6bmlsXTsKKyAgICBbX2FjY2Vz
c29yeVZpZXcgc2V0U3RhbmRhcmRBcHBlYXJhbmNlOnRvb2xiYXJBcHBlYXJhbmNlLmdldCgpXTsK
KyNlbmRpZgorCisgICAgYXV0byByZXNldEJ1dHRvbiA9IGFkb3B0TlMoW1tVSUJhckJ1dHRvbkl0
ZW0gYWxsb2NdIGluaXRXaXRoVGl0bGU6V0VCX1VJX1NUUklOR19LRVkoIlJlc2V0IiwgIlJlc2V0
IEJ1dHRvbiBEYXRlL1RpbWUgQ29udGV4dCBNZW51IiwgIlJlc2V0IGJ1dHRvbiBpbiBkYXRlIGlu
cHV0IGNvbnRleHQgbWVudSIpIHN0eWxlOlVJQmFyQnV0dG9uSXRlbVN0eWxlUGxhaW4gdGFyZ2V0
OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihyZXNldDopXSk7CisgICAgYXV0byBkb25lQnV0dG9uID0g
YWRvcHROUyhbW1VJQmFyQnV0dG9uSXRlbSBhbGxvY10gaW5pdFdpdGhCYXJCdXR0b25TeXN0ZW1J
dGVtOlVJQmFyQnV0dG9uU3lzdGVtSXRlbURvbmUgdGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rv
cihkb25lOildKTsKKworICAgIFtfYWNjZXNzb3J5VmlldyBzZXRJdGVtczpAWyByZXNldEJ1dHRv
bi5nZXQoKSwgVUlCYXJCdXR0b25JdGVtLmZsZXhpYmxlU3BhY2VJdGVtLCBkb25lQnV0dG9uLmdl
dCgpIF1dOworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2RhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIGFs
bG9jXSBpbml0V2l0aERhdGVQaWNrZXI6X2RhdGVQaWNrZXIuZ2V0KCldKTsKKyAgICBbX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07CisjZW5kaWYKIAogICAg
IHJldHVybiBzZWxmOwogfQogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisjaWYgSEFWRShVSURB
VEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pCisKKy0gKHZvaWQpaGFuZGxlRGF0ZVBpY2tl
clByZXNlbnRhdGlvbkRpc21pc3NhbAoreworICAgIGlmIChfaXNEaXNtaXNzaW5nRGF0ZVBpY2tl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaXNEaXNtaXNzaW5n
RGF0ZVBpY2tlciB7IF9pc0Rpc21pc3NpbmdEYXRlUGlja2VyLCBZRVMgfTsKKyAgICBbX3ZpZXcg
YWNjZXNzb3J5RG9uZV07Cit9CisKKy0gKHZvaWQpcmVtb3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlv
bgoreworICAgIGlmIChfZGF0ZVBpY2tlclByZXNlbnRhdGlvbikgeworICAgICAgICBpZiAoIV9p
c0Rpc21pc3NpbmdEYXRlUGlja2VyKSB7CisgICAgICAgICAgICBTZXRGb3JTY29wZTxCT09MPiBp
c0Rpc21pc3NpbmdEYXRlUGlja2VyIHsgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIsIFlFUyB9Owor
ICAgICAgICAgICAgW19kYXRlUGlja2VyUHJlc2VudGF0aW9uIGRpc21pc3NQcmVzZW50YXRpb25B
bmltYXRlZDpOT107CisgICAgICAgIH0KKworICAgICAgICBfZGF0ZVBpY2tlclByZXNlbnRhdGlv
biA9IG5pbDsKKyAgICAgICAgW192aWV3LndlYlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07
CisgICAgfQorfQorCisjZWxpZiBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAoVUlFZGdlSW5zZXRz
KV9wcmVmZXJyZWRFZGdlSW5zZXRzRm9yRGF0ZVRpbWVQaWNrZXIKIHsKQEAgLTQ2MiwzMCArNDgy
LDU3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4g
PSA2OwogICAgIH0KIH0KIAorLSAodm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGlk
UHJlc3NSZXNldEJ1dHRvbjooV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlcgoreworICAgIFtzZWxmIHJlc2V0Om5pbF07Cit9CisKKy0g
KHZvaWQpZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRpZFByZXNzRG9uZUJ1dHRvbjooV0tE
YXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxl
cgoreworICAgIFtzZWxmIGRvbmU6bmlsXTsKK30KKworI2VuZGlmCisKIC0gKHZvaWQpc2hvd0Rh
dGVUaW1lUGlja2VyCiB7Ci0jaWYgSEFWRShVSUNPTlRFWFRNRU5VX0xPQ0FUSU9OKQorI2lmIEhB
VkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorICAgIF9kYXRlUGlja2VyUHJl
c2VudGF0aW9uID0gYWRvcHROUyhbW19VSURhdGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9uIGFs
bG9jXSBpbml0V2l0aFNvdXJjZVZpZXc6X3ZpZXddKTsKKyAgICBbX2RhdGVQaWNrZXJQcmVzZW50
YXRpb24gc2V0U291cmNlUmVjdDpfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVy
YWN0aW9uUmVjdF07CisgICAgW19kYXRlUGlja2VyUHJlc2VudGF0aW9uIHNldEFjY2Vzc29yeVZp
ZXc6X2FjY2Vzc29yeVZpZXcuZ2V0KCldOworICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBz
ZXRBY2Nlc3NvcnlWaWV3SWdub3Jlc0RlZmF1bHRJbnNldHM6WUVTXTsKKworICAgIGlmIChbX2Rh
dGVQaWNrZXJQcmVzZW50YXRpb24gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRPdmVy
bGF5QW5jaG9yOildKQorICAgICAgICBbX2RhdGVQaWNrZXJQcmVzZW50YXRpb24gc2V0T3Zlcmxh
eUFuY2hvcjpfVUlEYXRlUGlja2VyT3ZlcmxheUFuY2hvclNvdXJjZVJlY3RdOworCisgICAgW19k
YXRlUGlja2VyUHJlc2VudGF0aW9uIHByZXNlbnREYXRlUGlja2VyOl9kYXRlUGlja2VyLmdldCgp
IG9uRGlzbWlzczpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0RhdGVUaW1lUGlja2VyPihzZWxm
KV0oQk9PTCkgeworICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkp
CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBoYW5kbGVEYXRlUGlja2VyUHJlc2VudGF0aW9uRGlz
bWlzc2FsXTsKKyAgICB9XTsKKworICAgIFtfdmlldy53ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1l
bnVdOworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEhBVkUoVUlDT05URVhUTUVOVV9MT0NB
VElPTikKICAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICBbX2Rh
dGVUaW1lQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOl9pbnRl
cmFjdGlvblBvaW50XTsKICNlbmRpZgogfQogCi0jZW5kaWYKLQotLSAodm9pZClkYXRlVGltZVBp
Y2tlclZpZXdDb250cm9sbGVyRGlkQ2hhbmdlRGF0ZTooV0tEYXRlVGltZVBpY2tlclZpZXdDb250
cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlcgorLSAodm9pZClkYXRlUGlja2Vy
Q2hhbmdlZDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkXTsKIH0KIAotLSAo
dm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NSZXNldEJ1dHRvbjooV0tE
YXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxl
cgorLSAodm9pZClyZXNldDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgc2V0RGF0ZVRpbWVQaWNr
ZXJUb0luaXRpYWxWYWx1ZV07CiAgICAgW192aWV3IHBhZ2VdLT5zZXRGb2N1c2VkRWxlbWVudFZh
bHVlKFN0cmluZygpKTsKIH0KIAotLSAodm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
RGlkUHJlc3NEb25lQnV0dG9uOihXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgKilkYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyCistICh2b2lkKWRvbmU6KGlkKXNlbmRlcgogewotI2lm
IFVTRShVSUNPTlRFWFRNRU5VKQorI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VO
VEFUSU9OKQorICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBkaXNtaXNzUHJlc2VudGF0aW9u
QW5pbWF0ZWQ6WUVTXTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFtfZGF0ZVRpbWVD
b250ZXh0TWVudUludGVyYWN0aW9uIGRpc21pc3NNZW51XTsKICNlbmRpZgogfQpAQCAtNTAwLDcg
KzU0Nyw5IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJn
aW4gPSA2OwogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNp
ZiBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikKKyAgICBbc2VsZiByZW1v
dmVEYXRlUGlja2VyUHJlc2VudGF0aW9uXTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKQogICAg
IFtzZWxmIHJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOwogI2VuZGlmCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpAQCAtNTExLDcgKzU2MCw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRl
VGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgIGlmICghX3Nob3VsZFJlbW92ZVRpbWVa
b25lSW5mb3JtYXRpb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIFtbX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgdGltZVpvbmVdIHNlY29uZHNGcm9tR01URm9yRGF0ZTpk
YXRlXTsKKyAgICByZXR1cm4gW1tfZGF0ZVBpY2tlciB0aW1lWm9uZV0gc2Vjb25kc0Zyb21HTVRG
b3JEYXRlOmRhdGVdOwogfQogCiAtIChOU1N0cmluZyAqKV9zYW5pdGl6ZUlucHV0VmFsdWVGb3JG
b3JtYXR0ZXI6KE5TU3RyaW5nICopdmFsdWUKQEAgLTUyOCw3ICs1NzcsNyBAQCBzdGF0aWMgY29u
c3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIHsKICAgICBSZXRh
aW5QdHI8TlNMb2NhbGU+IGVuZ2xpc2hMb2NhbGUgPSBhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2Nd
IGluaXRXaXRoTG9jYWxlSWRlbnRpZmllcjpAImVuX1VTX1BPU0lYIl0pOwogICAgIFJldGFpblB0
cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBhZG9wdE5TKFtbTlNEYXRlRm9ybWF0
dGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW2RhdGVGb3JtYXR0ZXIgc2V0VGltZVpvbmU6W19kYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyIHRpbWVab25lXV07CisgICAgW2RhdGVGb3JtYXR0ZXIg
c2V0VGltZVpvbmU6W19kYXRlUGlja2VyIHRpbWVab25lXV07CiAgICAgW2RhdGVGb3JtYXR0ZXIg
c2V0RGF0ZUZvcm1hdDpfZm9ybWF0U3RyaW5nXTsKICAgICBbZGF0ZUZvcm1hdHRlciBzZXRMb2Nh
bGU6ZW5nbGlzaExvY2FsZS5nZXQoKV07CiAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXI7CkBAIC01
MzYsNyArNTg1LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2VyQ29udHJv
bE1hcmdpbiA9IDY7CiAKIC0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNOdW1iZXIKIHsKLSAgICBO
U0RhdGUgKmRhdGUgPSBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgZGF0ZV07CisgICAg
TlNEYXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwogICAgIFtfdmlldyB1cGRhdGVGb2N1
c2VkRWxlbWVudFZhbHVlQXNOdW1iZXI6KGRhdGUudGltZUludGVydmFsU2luY2UxOTcwICsgW3Nl
bGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25k
XTsKIH0KIApAQCAtNTQ0LDcgKzU5Myw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGlt
ZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogewogICAgIC8vIEZvcmNlIEVuZ2xpc2ggbG9jYWxl
IGJlY2F1c2UgdGhhdCBpcyB3aGF0IEhUTUw1IHZhbHVlIHBhcnNpbmcgZXhwZWN0cy4KICAgICBS
ZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gW3NlbGYgZGF0ZUZvcm1h
dHRlckZvclBpY2tlcl07Ci0gICAgW192aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6W2Rh
dGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
IGRhdGVdXV07CisgICAgW192aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6W2RhdGVGb3Jt
YXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXV07CiB9CiAKIC0gKHZvaWQp
X2RhdGVDaGFuZ2VkCkBAIC01NjIsMTkgKzYxMSwxOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIC0gKHZvaWQpc2V0RGF0ZVRpbWVQaWNr
ZXJUb0luaXRpYWxWYWx1ZQogewogICAgIGlmIChbX2luaXRpYWxWYWx1ZSBpc0VxdWFsOiBAIiJd
KSB7Ci0gICAgICAgIFtfZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciBzZXREYXRlOltOU0Rh
dGUgZGF0ZV1dOworICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNEYXRlIGRhdGVdXTsK
ICAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkXTsKICAgICB9IGVsc2UgaWYgKF9mb3JtYXRTdHJp
bmcpIHsKICAgICAgICAgLy8gQ29udmVydCB0aGUgc3RyaW5nIHZhbHVlIHRvIGEgZGF0ZSBvYmpl
Y3QgZm9yIHRoZSBmaWVsZHMgd2hlcmUgd2UgaGF2ZSBhIGZvcm1hdCBzdHJpbmcuCiAgICAgICAg
IFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBbc2VsZiBkYXRlRm9y
bWF0dGVyRm9yUGlja2VyXTsKICAgICAgICAgTlNEYXRlICpwYXJzZWREYXRlID0gW2RhdGVGb3Jt
YXR0ZXIgZGF0ZUZyb21TdHJpbmc6W3NlbGYgX3Nhbml0aXplSW5wdXRWYWx1ZUZvckZvcm1hdHRl
cjpfaW5pdGlhbFZhbHVlLmdldCgpXV07Ci0gICAgICAgIFtfZGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciBzZXREYXRlOnBhcnNlZERhdGUgPyBwYXJzZWREYXRlIDogW05TRGF0ZSBkYXRlXV07
CisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOnBhcnNlZERhdGUgPyBwYXJzZWREYXRlIDog
W05TRGF0ZSBkYXRlXV07CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ29udmVydCB0aGUgbnVt
YmVyIHZhbHVlIHRvIGEgZGF0ZSBvYmplY3QgZm9yIHRoZSBmaWVsZHMgYWZmZWN0ZWQgYnkgdGlt
ZXpvbmVzLgogICAgICAgICBOU1RpbWVJbnRlcnZhbCBzZWNvbmRzU2luY2UxOTcwID0gX2luaXRp
YWxWYWx1ZUFzTnVtYmVyIC8ga01pbGxpc2Vjb25kc1BlclNlY29uZDsKICAgICAgICAgTlNJbnRl
Z2VyIHRpbWVab25lT2Zmc2V0ID0gW3NlbGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnNlY29uZHNTaW5jZTE5NzBdXTsKICAgICAg
ICAgTlNUaW1lSW50ZXJ2YWwgYWRqdXN0ZWRTZWNvbmRzU2luY2UxOTcwID0gc2Vjb25kc1NpbmNl
MTk3MCAtIHRpbWVab25lT2Zmc2V0OwotICAgICAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIgc2V0RGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmFkanVz
dGVkU2Vjb25kc1NpbmNlMTk3MF1dOworICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmFkanVzdGVkU2Vjb25kc1NpbmNlMTk3
MF1dOwogICAgIH0KIH0KIApAQCAtNTkwLDcgKzYzOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgICAgICBbX3ZpZXcgc3RhcnRS
ZWxpbnF1aXNoaW5nRmlyc3RSZXNwb25kZXJUb0ZvY3VzZWRFbGVtZW50XTsKIAogICAgIC8vIFNl
dCB0aGUgdGltZSB6b25lIGluIGNhc2UgaXQgY2hhbmdlZC4KLSAgICBbX2RhdGVUaW1lUGlja2Vy
Vmlld0NvbnRyb2xsZXIgc2V0VGltZVpvbmU6TlNUaW1lWm9uZS5sb2NhbFRpbWVab25lXTsKKyAg
ICBbX2RhdGVQaWNrZXIgc2V0VGltZVpvbmU6TlNUaW1lWm9uZS5sb2NhbFRpbWVab25lXTsKIAog
ICAgIC8vIEN1cnJlbnRseSBubyB2YWx1ZSBmb3IgdGhlIDxpbnB1dD4uIFN0YXJ0IHRoZSBwaWNr
ZXIgd2l0aCB0aGUgY3VycmVudCB0aW1lLgogICAgIC8vIEFsc28sIHVwZGF0ZSB0aGUgYWN0dWFs
IDxpbnB1dD4gdmFsdWUuCkBAIC01OTgsMjkgKzY0NywyOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9h
dCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBfaW5pdGlhbFZhbHVlQXNO
dW1iZXIgPSBfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNOdW1iZXI7CiAg
ICAgW3NlbGYgc2V0RGF0ZVRpbWVQaWNrZXJUb0luaXRpYWxWYWx1ZV07CiAKLSNpZiBVU0UoVUlD
T05URVhUTUVOVSkKICAgICBbc2VsZiBzaG93RGF0ZVRpbWVQaWNrZXJdOwotI2VuZGlmCiB9CiAK
IC0gKHZvaWQpY29udHJvbEVuZEVkaXRpbmcKIHsKICAgICBbX3ZpZXcgc3RvcFJlbGlucXVpc2hp
bmdGaXJzdFJlc3BvbmRlclRvRm9jdXNlZEVsZW1lbnRdOwogCi0jaWYgVVNFKFVJQ09OVEVYVE1F
TlUpCisjaWYgSEFWRShVSURBVEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pCisgICAgW3Nl
bGYgcmVtb3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlvbl07CisjZWxpZiBVU0UoVUlDT05URVhUTUVO
VSkKICAgICBbc2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICNlbmRpZgogfQog
CiAtIChOU1N0cmluZyAqKWNhbGVuZGFyVHlwZQogewotICAgIHJldHVybiBbX2RhdGVUaW1lUGlj
a2VyVmlld0NvbnRyb2xsZXIgY2FsZW5kYXJdLmNhbGVuZGFySWRlbnRpZmllcjsKKyAgICByZXR1
cm4gW19kYXRlUGlja2VyIGNhbGVuZGFyXS5jYWxlbmRhcklkZW50aWZpZXI7CiB9CiAKIC0gKGRv
dWJsZSlob3VyCiB7CiAgICAgTlNDYWxlbmRhciAqY2FsZW5kYXIgPSBbTlNDYWxlbmRhciBjdXJy
ZW50Q2FsZW5kYXJdOwotICAgIE5TRGF0ZUNvbXBvbmVudHMgKmNvbXBvbmVudHMgPSBbY2FsZW5k
YXIgY29tcG9uZW50czpOU0NhbGVuZGFyVW5pdEhvdXIgZnJvbURhdGU6W19kYXRlVGltZVBpY2tl
clZpZXdDb250cm9sbGVyIGRhdGVdXTsKKyAgICBOU0RhdGVDb21wb25lbnRzICpjb21wb25lbnRz
ID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRIb3VyIGZyb21EYXRlOltfZGF0
ZVBpY2tlciBkYXRlXV07CiAKICAgICByZXR1cm4gY29tcG9uZW50cy5ob3VyOwogfQpAQCAtNjI4
LDcgKzY3Nyw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xN
YXJnaW4gPSA2OwogLSAoZG91YmxlKW1pbnV0ZQogewogICAgIE5TQ2FsZW5kYXIgKmNhbGVuZGFy
ID0gW05TQ2FsZW5kYXIgY3VycmVudENhbGVuZGFyXTsKLSAgICBOU0RhdGVDb21wb25lbnRzICpj
b21wb25lbnRzID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRNaW51dGUgZnJv
bURhdGU6W19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIGRhdGVdXTsKKyAgICBOU0RhdGVD
b21wb25lbnRzICpjb21wb25lbnRzID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVu
aXRNaW51dGUgZnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXTsKIAogICAgIHJldHVybiBjb21w
b25lbnRzLm1pbnV0ZTsKIH0KQEAgLTYzNiw3ICs2ODUsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9h
dCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIC0gKHZvaWQpc2V0SG91cjooTlNJ
bnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIpbWludXRlCiB7CiAgICAgTlNTdHJpbmcgKnRp
bWVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUuMmxkOiUuMmxkIiwgKGxv
bmcpaG91ciwgKGxvbmcpbWludXRlXTsKLSAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xs
ZXIgc2V0RGF0ZTpbW3NlbGYgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl0gZGF0ZUZyb21TdHJpbmc6
dGltZVN0cmluZ11dOworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOltbc2VsZiBkYXRlRm9ybWF0
dGVyRm9yUGlja2VyXSBkYXRlRnJvbVN0cmluZzp0aW1lU3RyaW5nXV07CiAgICAgW3NlbGYgX2Rh
dGVDaGFuZ2VkXTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkYmRiMjhiZjc0OGJlYzI0MjRmYmIyMDZkMTcwYmJi
ODU3MzZkNjMuLjU1NDRhODVmZWY2MTMwMTQ2YmViNjg4YzdiZmYwMGUyNzExYTJiMmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNi0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRvcHQgbmV3IGRhdGUgcGlja2VyIHByZXNlbnRh
dGlvbiBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNzIyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc5MzAwODY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9jb25z
dGFudC1zY3JvbGwtYXJlYS13aGVuLW1vdmluZy1mb2N1cy1iZXR3ZWVuLWZpZWxkcy5odG1sOgor
CisgICAgICAgIFJlLW9yZGVyIHRoZSBjYWxsIHRvIHdhaXQgZm9yIHRoZSBrZXlib2FyZCB0byBk
aXNtaXNzIHNpbmNlIHRoZQorICAgICAgICBwcmVzZW50YXRpb24gU1BJIGRvZXNuJ3QgdGVsbCB1
cyBleGFjdGx5IHdoZW4gdGhlIHByZXNlbnRhdGlvbiBhbmltYXRpb24KKyAgICAgICAgaXMgY29t
cGxldGUuIFRoZSBvdGhlciBhbHRlcm5hdGl2ZSB3YXMgdG8gYWRkIGEgbWFudWFsIGRlbGF5LCBo
b3dldmVyLAorICAgICAgICByZS1vcmRlcmluZyB0aGUgY2FsbHMgaXMgc2FmZSBhbmQgcHJlc2Vy
dmVzIHRoZSBvcmlnaW5hbCB0ZXN0IGJlaGF2aW9yLgorCiAyMDIxLTA2LTIwICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgY291bnRlciBzdHlsZSBpbXByb3Zl
bWVudHMgZm9yIEFybWVuaWFuLCBUYW1pbCwgYW5kIHNvbWUgQ0pLIHN0eWxlcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvY29uc3RhbnQtc2Nyb2xsLWFyZWEtd2hlbi1t
b3ZpbmctZm9jdXMtYmV0d2Vlbi1maWVsZHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW9zL2NvbnN0YW50LXNjcm9sbC1hcmVhLXdoZW4tbW92aW5nLWZvY3VzLWJldHdlZW4tZmllbGRz
Lmh0bWwKaW5kZXggNTcyMGMyNGI3MzVmZThjZmFhNTFkZDI3ODcwYTA3MzY0MDNiMDQ4NS4uY2Jl
MmJmZjgxYTZlMzY1ODJlMGViMTY0NTU1M2QwZWE0YTFiYTU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pb3MvY29uc3RhbnQtc2Nyb2xsLWFyZWEtd2hlbi1tb3ZpbmctZm9j
dXMtYmV0d2Vlbi1maWVsZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9j
b25zdGFudC1zY3JvbGwtYXJlYS13aGVuLW1vdmluZy1mb2N1cy1iZXR3ZWVuLWZpZWxkcy5odG1s
CkBAIC0yMiw4ICsyMiw4IEBACiAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVu
dEFuZFdhaXRGb3JJbnB1dFNlc3Npb24odGV4dCk7CiAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFj
dGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oZGF0ZSk7CiAKLSAgICAgICAgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7CiAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRG
b3JLZXlib2FyZFRvSGlkZSgpOworICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIo
KTsKIAogICAgICAgICBhd2FpdCBVSUhlbHBlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgxNjAsIDE1
MCwgMTYwLCA1MCwgMC4xKTsKICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlU3RhYmxlUHJl
c2VudGF0aW9uVXBkYXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432058</attachid>
            <date>2021-06-23 09:23:51 -0700</date>
            <delta_ts>2021-06-23 13:02:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227221-20210623122350.patch</filename>
            <type>text/plain</type>
            <size>23672</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzNmE5ZjhiMGUyMzVmMmFhN2Y0NWY3
M2U2YmU0ODAzNGU4NGIyNWQuLjU1OTI3MzNiMWE5MTBjYmVmZTcwMjI1NjgwYzAzYWZiZTM0NzAx
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkb3B0IG5ldyBkYXRlIHBpY2tlciBw
cmVzZW50YXRpb24gU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3OTMwMDg2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoKKworICAgICAgICBBZGQgSEFWRShVSURBVEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJ
T04pIGFuZCBIQVZFKFVJVE9PTEJBUl9TVEFOREFSRF9BUFBFQVJBTkNFKS4KKwogMjAyMS0wNi0y
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3OTA2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwMDY5ZDkwZjYxZTg1
ZGU3NGJhNzkzODY5OWIzYjQwMmE2MjUzODg2Li42ODhkMTc0YWIxNjY1NmI4ZmMxODNlZTZjNTA3
MDNjYzc2NzM3MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTA2LTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZG9wdCBu
ZXcgZGF0ZSBwaWNrZXIgcHJlc2VudGF0aW9uIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NzkzMDA4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAg
SW4gbmF0aXZlIGFwcGxpY2F0aW9ucywgdGFwcGluZyBvbiBhIGNvbXBhY3QgVUlEYXRlUGlja2Vy
IHByZXNlbnRzIGFuCisgICAgICAgIGlubGluZSBwaWNrZXIgdXNpbmcgX1VJRGF0ZVBpY2tlck92
ZXJsYXlQcmVzZW50YXRpb24uIFRvIGF2b2lkCisgICAgICAgIG1haW50YWluaW5nIG91ciBvd24g
cHJlc2VudGF0aW9uIGxvZ2ljLCBhbmQgdG8gYmV0dGVyIG1hdGNoIHRoZSBuYXRpdmUKKyAgICAg
ICAgcHJlc2VudGF0aW9uLCB1c2UgX1VJRGF0ZVBpY2tlck92ZXJsYXlQcmVzZW50YXRpb24gd2hl
biB0YXBwaW5nIG9uIGEKKyAgICAgICAgZGF0ZS90aW1lIGlucHV0IGluIFdlYktpdC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oOgorCisgICAgICAgIERlY2xhcmUgdGhlIFNQSSByYXRoZXIgdGhhbiBp
bXBvcnRpbmcgdGhlIGhlYWRlciBkaXJlY3RseSwgYXMgdGhlCisgICAgICAgIF9VSURhdGVQaWNr
ZXJPdmVybGF5QW5jaG9yIGVudW0gaXMgbm90IGF2YWlsYWJsZSBpbiBhbGwgU0RLcyB3aXRoCisg
ICAgICAgIHRoZSBoZWFkZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0
ZVRpbWVJbnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciBpbml0V2l0aERhdGVQaWNrZXI6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNr
ZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBp
Y2tlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisKKyAgICAgICAgQ3JlYXRlIHRo
ZSBVSURhdGVQaWNrZXIgaGVyZSBzbyBpdCBjYW4gYmUgc2hhcmVkIGJ5IHRoZSBvbGQgY29udGV4
dCBtZW51CisgICAgICAgIHByZXNlbnRhdGlvbiBhbmQgdGhlIG5ldyBvdmVybGF5IHByZXNlbnRh
dGlvbi4KKworICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGhhbmRsZURhdGVQaWNrZXJQcmVz
ZW50YXRpb25EaXNtaXNzYWxdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciByZW1vdmVE
YXRlUGlja2VyUHJlc2VudGF0aW9uXSk6CisKKyAgICAgICAgYGFjY2Vzc29yeURvbmVgIGV2ZW50
dWFsbHkgcmVtb3ZlcyB0aGUgcHJlc2VudGF0aW9uLiBJZiB0aGUgZGF0ZSBwaWNrZXIKKyAgICAg
ICAgaXMgYWxyZWFkeSBiZWluZyBkaXNtaXNzZWQsIGRvIG5vdCBkaXNtaXNzIGl0IHdpdGhvdXQg
YW4gYW5pbWF0aW9uLgorCisgICAgICAgIEZvciBwcm9ncmFtbWF0aWMgZGlzbWlzc2FsICh1c2lu
ZyBibHVyKCkpIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBwcmlvciB0bworICAgICAgICBgYWNjZXNz
b3J5RG9uZWAsIGluIHdoaWNoIGNhc2Ugd2UgZm9yY2UgZGlzbWlzc2FsIHdpdGhvdXQgYW5pbWF0
aW9uLgorCisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlckRpZFByZXNzUmVzZXRCdXR0b246XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNr
ZXIgZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRpZFByZXNzRG9uZUJ1dHRvbjpdKToKKyAg
ICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBzaG93RGF0ZVRpbWVQaWNrZXJdKToKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBkYXRlUGlja2VyQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV0tE
YXRlVGltZVBpY2tlciByZXNldDpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBkb25l
Ol0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBfdGltZVpvbmVPZmZzZXRGcm9tR01UOl0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdKToKKyAgICAgICAgKC1bV0tE
YXRlVGltZVBpY2tlciBfZGF0ZUNoYW5nZWRTZXRBc051bWJlcl0pOgorICAgICAgICAoLVtXS0Rh
dGVUaW1lUGlja2VyIF9kYXRlQ2hhbmdlZFNldEFzU3RyaW5nXSk6CisgICAgICAgICgtW1dLRGF0
ZVRpbWVQaWNrZXIgc2V0RGF0ZVRpbWVQaWNrZXJUb0luaXRpYWxWYWx1ZV0pOgorICAgICAgICAo
LVtXS0RhdGVUaW1lUGlja2VyIGNvbnRyb2xCZWdpbkVkaXRpbmddKToKKyAgICAgICAgKC1bV0tE
YXRlVGltZVBpY2tlciBjb250cm9sRW5kRWRpdGluZ10pOgorICAgICAgICAoLVtXS0RhdGVUaW1l
UGlja2VyIGNhbGVuZGFyVHlwZV0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGhvdXJd
KToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBtaW51dGVdKToKKyAgICAgICAgKC1bV0tE
YXRlVGltZVBpY2tlciBzZXRIb3VyOm1pbnV0ZTpdKToKKwogMjAyMS0wNi0yMCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFJlbmFtZSBX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHRvIFdLUXVpY2tMb29rUHJldmlld0NvbnRy
b2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggODM5OTQyM2Y4OWUxZTYxMTliNTBhMGE1MDZk
YWQ5N2EzMDc3MzJiNC4uYWU2YWEwMzhmOWU0ZGI1ZTUwNWMyOTYxODliYTliYTY4OTRiNjAwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwNTcsMyArMTA1NywxMiBAQAogI2RlZmluZSBIQVZF
X1FVSUNLTE9PS19JVEVNX1BSRVZJRVdfT1BUSU9OUyAxCiAjZGVmaW5lIEhBVkVfUVVJQ0tMT09L
X1BSRVZJRVdfQUNUSVZJVFkgMQogI2VuZGlmCisKKy8vIEZJWE1FOiBSZXBsYWNlIHRoZSBfX2hh
c19pbmNsdWRlIGNoZWNrIHdpdGggYSB2ZXJzaW9uIGNoZWNrIG9uY2UgaW50ZXJuYWwgYm90cyBh
cmUgdXBkYXRlZCAod2Via2l0Lm9yZy9iLzIyNzI5OCkuCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPFVJS2l0L19VSURh
dGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9uLmg+KQorI2RlZmluZSBIQVZFX1VJREFURVBJQ0tF
Ul9PVkVSTEFZX1BSRVNFTlRBVElPTiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykgfHwg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfVUlUT09MQkFSX1NUQU5EQVJEX0FQ
UEVBUkFOQ0UgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQ
SS5oCmluZGV4IDE3ZWZlMTVjYzkwODdhMjg3Nzk3ZDI4Yjc2M2VkZDZmMDNhOGRlYjMuLjljMTlm
MmM4NTA4YmMzOGFmYWQ1OTZlNDc1NjQxZWUxODU3ZDdmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xNDUxLDYgKzE0NTEsMzAgQEAgdHlwZWRlZiBO
U19FTlVNKE5TVUludGVnZXIsIF9VSUNvbnRleHRNZW51TGF5b3V0KSB7CiBAZW5kCiAjZW5kaWYK
IAorI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorCisvLyBGSVhN
RTogSW1wb3J0IHRoZSBoZWFkZXIgZGlyZWN0bHkgb25jZSBib3RzIGFyZSB1cGRhdGVkIHRvIGEg
YnVpbGQgY29udGFpbmluZyByZGFyOi8vNzg3Nzk2NTUuCisKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9VSURhdGVQaWNrZXJPdmVybGF5QW5jaG9yKSB7CisgICAgX1VJRGF0ZVBpY2tlck92
ZXJsYXlBbmNob3JTb3VyY2VSZWN0ID0gMgorfTsKKworQGludGVyZmFjZSBfVUlEYXRlUGlja2Vy
T3ZlcmxheVByZXNlbnRhdGlvbiA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFNvdXJjZVZpZXc6KFVJVmlldyAqKXNvdXJjZVZpZXc7CistICh2b2lkKXByZXNlbnREYXRlUGlj
a2VyOihVSURhdGVQaWNrZXIgKilkYXRlUGlja2VyIG9uRGlzbWlzczoodm9pZCheKShCT09MIHJl
dGFyZ2V0ZWQpKWRpc21pc3NIYW5kbGVyOworLSAodm9pZClkaXNtaXNzUHJlc2VudGF0aW9uQW5p
bWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCByZWFk
b25seSkgVUlWaWV3ICpzb3VyY2VWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikg
Q0dSZWN0IHNvdXJjZVJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBfVUlEYXRl
UGlja2VyT3ZlcmxheUFuY2hvciBvdmVybGF5QW5jaG9yOworQHByb3BlcnR5IChub25hdG9taWMs
IHN0cm9uZykgVUlWaWV3ICphY2Nlc3NvcnlWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIGFz
c2lnbikgQk9PTCBhY2Nlc3NvcnlWaWV3SWdub3Jlc0RlZmF1bHRJbnNldHM7CisKK0BlbmQKKwor
I2VuZGlmCisKIFdURl9FWFRFUk5fQ19CRUdJTgogCiBCT09MIFVJS2V5Ym9hcmRFbmFibGVkSW5w
dXRNb2Rlc0FsbG93T25lVG9NYW55U2hvcnRjdXRzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5t
bQppbmRleCBhMWJiODljYTBjNTM3ZjI4ZGJmYWRlYzMxN2Y5YTZlYzAzOGJlYWYyLi5hM2RkNTM3
MTA5NmYzMGQxOTIyYjQyMTU0OWI2MmExMjZiYjk0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5t
bQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRG
T1JNKFdBVENIT1MpCiAKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJm
YWNlSWRpb20uaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKICNpbXBvcnQgIldLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIgpAQCAtMzcsMTkgKzM4LDE4IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBAY2xhc3MgV0tEYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyOwogCiBAcHJvdG9jb2wgV0tEYXRlVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0PgotLSAodm9pZClkYXRlVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyRGlkQ2hhbmdlRGF0ZTooV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
ICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlcjsKIC0gKHZvaWQpZGF0ZVRpbWVQaWNrZXJW
aWV3Q29udHJvbGxlckRpZFByZXNzUmVzZXRCdXR0b246KFdLRGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI7CiAtICh2b2lkKWRhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXJEaWRQcmVzc0RvbmVCdXR0b246KFdLRGF0ZVRpbWVQaWNrZXJW
aWV3Q29udHJvbGxlciAqKWRhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI7Ci0KLS0gKEJPT0wp
c2hvdWxkRm9yY2VHcmVnb3JpYW5DYWxlbmRhcjsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgOiBVSVZpZXdDb250cm9sbGVyCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhEZWxlZ2F0ZTooaWQ8V0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGVs
ZWdhdGU+KWRlbGVnYXRlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGF0ZVBpY2tlcjooVUlE
YXRlUGlja2VyICopZGF0ZVBpY2tlcjsKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGU7CiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgewpAQCAtNjgsMjMgKzY4
LDIyIEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckRlZmF1bHRXaWR0aCA9
IDMyMDsKIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlclRpbWVDb250cm9sV2lk
dGggPSAyMTg7CiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJUaW1lQ29udHJv
bEhlaWdodCA9IDE3MjsKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGVsZWdhdGU6KGlkIDxX
S0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aERhdGVQaWNrZXI6KFVJRGF0ZVBpY2tlciAqKWRhdGVQaWNrZXIKIHsK
ICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotCi0gICAgX2RhdGVQaWNrZXIgPSBhZG9wdE5TKFtb
VUlEYXRlUGlja2VyIGFsbG9jXSBpbml0XSk7Ci0gICAgW19kYXRlUGlja2VyIGFkZFRhcmdldDpz
ZWxmIGFjdGlvbjpAc2VsZWN0b3IoZGF0ZVBpY2tlckNoYW5nZWQ6KSBmb3JDb250cm9sRXZlbnRz
OlVJQ29udHJvbEV2ZW50VmFsdWVDaGFuZ2VkXTsKKyAgICBfZGF0ZVBpY2tlciA9IGRhdGVQaWNr
ZXI7CiAgICAgW19kYXRlUGlja2VyIHNldFRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0Nv
bnN0cmFpbnRzOk5PXTsKIAotICAgIGlmIChbX2RlbGVnYXRlIHNob3VsZEZvcmNlR3JlZ29yaWFu
Q2FsZW5kYXJdKQotICAgICAgICBbX2RhdGVQaWNrZXIgc2V0Q2FsZW5kYXI6W05TQ2FsZW5kYXIg
Y2FsZW5kYXJXaXRoSWRlbnRpZmllcjpOU0NhbGVuZGFySWRlbnRpZmllckdyZWdvcmlhbl1dOwot
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxXS0RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdh
dGUgPSBkZWxlZ2F0ZTsKK30KKwogLSAodm9pZCl2aWV3RGlkTG9hZAogewogICAgIFtzdXBlciB2
aWV3RGlkTG9hZF07CkBAIC0xNjgsMTEgKzE2Nyw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtE
YXRlVGltZVBpY2tlclRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogICAgIF1dOwogfQogCi0tICh2
b2lkKWRhdGVQaWNrZXJDaGFuZ2VkOihpZClzZW5kZXIKLXsKLSAgICBbX2RlbGVnYXRlIGRhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXJEaWRDaGFuZ2VEYXRlOnNlbGZdOwotfQotCiAtICh2b2lk
KXJlc2V0QnV0dG9uUHJlc3NlZDooaWQpc2VuZGVyCiB7CiAgICAgW19kZWxlZ2F0ZSBkYXRlVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NSZXNldEJ1dHRvbjpzZWxmXTsKQEAgLTIyNSw1
MCArMjE5LDEzIEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlclRpbWVDb250
cm9sSGVpZ2h0ID0gMTcyOwogICAgIHJldHVybiBfY29udGVudFNpemU7CiB9CiAKLS0gKE5TRGF0
ZSAqKWRhdGUKLXsKLSAgICByZXR1cm4gW19kYXRlUGlja2VyIGRhdGVdOwotfQotCi0tICh2b2lk
KXNldERhdGU6KE5TRGF0ZSAqKWRhdGUKLXsKLSAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpkYXRl
XTsKLX0KLQotLSAodm9pZClzZXREYXRlUGlja2VyTW9kZTooVUlEYXRlUGlja2VyTW9kZSltb2Rl
Ci17Ci0gICAgW19kYXRlUGlja2VyIHNldERhdGVQaWNrZXJNb2RlOm1vZGVdOwotCi0jaWYgSEFW
RShVSURBVEVQSUNLRVJfU1RZTEUpCi0gICAgaWYgKG1vZGUgPT0gVUlEYXRlUGlja2VyTW9kZVRp
bWUgfHwgbW9kZSA9PSAoVUlEYXRlUGlja2VyTW9kZSlVSURhdGVQaWNrZXJNb2RlWWVhckFuZE1v
bnRoKQotICAgICAgICBbX2RhdGVQaWNrZXIgc2V0UHJlZmVycmVkRGF0ZVBpY2tlclN0eWxlOlVJ
RGF0ZVBpY2tlclN0eWxlV2hlZWxzXTsKLSAgICBlbHNlCi0gICAgICAgIFtfZGF0ZVBpY2tlciBz
ZXRQcmVmZXJyZWREYXRlUGlja2VyU3R5bGU6VUlEYXRlUGlja2VyU3R5bGVJbmxpbmVdOwotI2Vu
ZGlmCi19Ci0KLS0gKE5TVGltZVpvbmUgKil0aW1lWm9uZQotewotICAgIHJldHVybiBbX2RhdGVQ
aWNrZXIgdGltZVpvbmVdOwotfQotCi0tICh2b2lkKXNldFRpbWVab25lOihOU1RpbWVab25lICop
dGltZVpvbmUKLXsKLSAgICByZXR1cm4gW19kYXRlUGlja2VyIHNldFRpbWVab25lOnRpbWVab25l
XTsKLX0KLQotLSAoTlNDYWxlbmRhciAqKWNhbGVuZGFyCi17Ci0gICAgcmV0dXJuIFtfZGF0ZVBp
Y2tlciBjYWxlbmRhcl07Ci19Ci0KIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGVUaW1lUGlja2Vy
IDogTlNPYmplY3Q8V0tGb3JtQ29udHJvbAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorI2lmICFI
QVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAsIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlCi0jZW5kaWYKICwgV0tEYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGUKKyNlbmRpZgogPiB7CiAgICAgTlNTdHJp
bmcgKl9mb3JtYXRTdHJpbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW5pdGlhbFZhbHVl
OwpAQCAtMjc2LDEwICsyMzMsMTYgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlj
a2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiAgICAgQk9PTCBfc2hvdWxkUmVtb3ZlVGltZVpv
bmVJbmZvcm1hdGlvbjsKICAgICBXS0NvbnRlbnRWaWV3ICpfdmlldzsKICAgICBDR1BvaW50IF9p
bnRlcmFjdGlvblBvaW50OwotI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFJldGFpblB0cjxV
SURhdGVQaWNrZXI+IF9kYXRlUGlja2VyOworI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlf
UFJFU0VOVEFUSU9OKQorICAgIEJPT0wgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXI7CisKKyAgICBS
ZXRhaW5QdHI8X1VJRGF0ZVBpY2tlck92ZXJsYXlQcmVzZW50YXRpb24+IF9kYXRlUGlja2VyUHJl
c2VudGF0aW9uOworICAgIFJldGFpblB0cjxVSVRvb2xiYXI+IF9hY2Nlc3NvcnlWaWV3OworI2Vs
aWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbj4gX2RhdGVUaW1lQ29udGV4dE1lbnVJbnRlcmFjdGlvbjsKLSNlbmRpZgogICAgIFJldGFp
blB0cjxXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXI+IF9kYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyOworI2VuZGlmCiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdL
Q29udGVudFZpZXcgKil2aWV3IGRhdGVQaWNrZXJNb2RlOihVSURhdGVQaWNrZXJNb2RlKW1vZGU7
CkBAIC0zMjYsMTMgKzI4OSw3MCBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNr
ZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tEYXRlVGltZVBpY2tlclZpZXdD
b250cm9sbGVyIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKLSAgICBbX2RhdGVUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGF0ZVBpY2tlck1vZGU6bW9kZV07CisgICAgX2RhdGVQ
aWNrZXIgPSBhZG9wdE5TKFtbVUlEYXRlUGlja2VyIGFsbG9jXSBpbml0XSk7CisgICAgW19kYXRl
UGlja2VyIGFkZFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoZGF0ZVBpY2tlckNoYW5nZWQ6
KSBmb3JDb250cm9sRXZlbnRzOlVJQ29udHJvbEV2ZW50VmFsdWVDaGFuZ2VkXTsKKworICAgIGlm
IChbc2VsZiBzaG91bGRGb3JjZUdyZWdvcmlhbkNhbGVuZGFyXSkKKyAgICAgICAgW19kYXRlUGlj
a2VyIHNldENhbGVuZGFyOltOU0NhbGVuZGFyIGNhbGVuZGFyV2l0aElkZW50aWZpZXI6TlNDYWxl
bmRhcklkZW50aWZpZXJHcmVnb3JpYW5dXTsKKworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlUGlj
a2VyTW9kZTptb2RlXTsKKworI2lmIEhBVkUoVUlEQVRFUElDS0VSX1NUWUxFKQorICAgIGlmICht
b2RlID09IFVJRGF0ZVBpY2tlck1vZGVUaW1lIHx8IG1vZGUgPT0gKFVJRGF0ZVBpY2tlck1vZGUp
VUlEYXRlUGlja2VyTW9kZVllYXJBbmRNb250aCkKKyAgICAgICAgW19kYXRlUGlja2VyIHNldFBy
ZWZlcnJlZERhdGVQaWNrZXJTdHlsZTpVSURhdGVQaWNrZXJTdHlsZVdoZWVsc107CisgICAgZWxz
ZQorICAgICAgICBbX2RhdGVQaWNrZXIgc2V0UHJlZmVycmVkRGF0ZVBpY2tlclN0eWxlOlVJRGF0
ZVBpY2tlclN0eWxlSW5saW5lXTsKKyNlbmRpZgorCisjaWYgSEFWRShVSURBVEVQSUNLRVJfT1ZF
UkxBWV9QUkVTRU5UQVRJT04pCisgICAgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIgPSBOTzsKKwor
ICAgIF9hY2Nlc3NvcnlWaWV3ID0gYWRvcHROUyhbW1VJVG9vbGJhciBhbGxvY10gaW5pdF0pOwor
ICAgIFtbX2FjY2Vzc29yeVZpZXcgaGVpZ2h0QW5jaG9yXSBjb25zdHJhaW50RXF1YWxUb0NvbnN0
YW50OmtEYXRlVGltZVBpY2tlclRvb2xiYXJIZWlnaHRdLmFjdGl2ZSA9IFlFUzsKKworI2lmIEhB
VkUoVUlUT09MQkFSX1NUQU5EQVJEX0FQUEVBUkFOQ0UpCisgICAgYXV0byB0b29sYmFyQXBwZWFy
YW5jZSA9IGFkb3B0TlMoW1tVSVRvb2xiYXJBcHBlYXJhbmNlIGFsbG9jXSBpbml0XSk7CisgICAg
W3Rvb2xiYXJBcHBlYXJhbmNlIHNldEJhY2tncm91bmRFZmZlY3Q6bmlsXTsKKyAgICBbX2FjY2Vz
c29yeVZpZXcgc2V0U3RhbmRhcmRBcHBlYXJhbmNlOnRvb2xiYXJBcHBlYXJhbmNlLmdldCgpXTsK
KyNlbmRpZgorCisgICAgYXV0byByZXNldEJ1dHRvbiA9IGFkb3B0TlMoW1tVSUJhckJ1dHRvbkl0
ZW0gYWxsb2NdIGluaXRXaXRoVGl0bGU6V0VCX1VJX1NUUklOR19LRVkoIlJlc2V0IiwgIlJlc2V0
IEJ1dHRvbiBEYXRlL1RpbWUgQ29udGV4dCBNZW51IiwgIlJlc2V0IGJ1dHRvbiBpbiBkYXRlIGlu
cHV0IGNvbnRleHQgbWVudSIpIHN0eWxlOlVJQmFyQnV0dG9uSXRlbVN0eWxlUGxhaW4gdGFyZ2V0
OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihyZXNldDopXSk7CisgICAgYXV0byBkb25lQnV0dG9uID0g
YWRvcHROUyhbW1VJQmFyQnV0dG9uSXRlbSBhbGxvY10gaW5pdFdpdGhCYXJCdXR0b25TeXN0ZW1J
dGVtOlVJQmFyQnV0dG9uU3lzdGVtSXRlbURvbmUgdGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rv
cihkb25lOildKTsKKworICAgIFtfYWNjZXNzb3J5VmlldyBzZXRJdGVtczpAWyByZXNldEJ1dHRv
bi5nZXQoKSwgVUlCYXJCdXR0b25JdGVtLmZsZXhpYmxlU3BhY2VJdGVtLCBkb25lQnV0dG9uLmdl
dCgpIF1dOworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2RhdGVUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIGFs
bG9jXSBpbml0V2l0aERhdGVQaWNrZXI6X2RhdGVQaWNrZXIuZ2V0KCldKTsKKyAgICBbX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07CisjZW5kaWYKIAogICAg
IHJldHVybiBzZWxmOwogfQogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisjaWYgSEFWRShVSURB
VEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pCisKKy0gKHZvaWQpaGFuZGxlRGF0ZVBpY2tl
clByZXNlbnRhdGlvbkRpc21pc3NhbAoreworICAgIGlmIChfaXNEaXNtaXNzaW5nRGF0ZVBpY2tl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaXNEaXNtaXNzaW5n
RGF0ZVBpY2tlciB7IF9pc0Rpc21pc3NpbmdEYXRlUGlja2VyLCBZRVMgfTsKKyAgICBbX3ZpZXcg
YWNjZXNzb3J5RG9uZV07Cit9CisKKy0gKHZvaWQpcmVtb3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlv
bgoreworICAgIGlmIChfZGF0ZVBpY2tlclByZXNlbnRhdGlvbikgeworICAgICAgICBpZiAoIV9p
c0Rpc21pc3NpbmdEYXRlUGlja2VyKSB7CisgICAgICAgICAgICBTZXRGb3JTY29wZTxCT09MPiBp
c0Rpc21pc3NpbmdEYXRlUGlja2VyIHsgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIsIFlFUyB9Owor
ICAgICAgICAgICAgW19kYXRlUGlja2VyUHJlc2VudGF0aW9uIGRpc21pc3NQcmVzZW50YXRpb25B
bmltYXRlZDpOT107CisgICAgICAgIH0KKworICAgICAgICBfZGF0ZVBpY2tlclByZXNlbnRhdGlv
biA9IG5pbDsKKyAgICAgICAgW192aWV3LndlYlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07
CisgICAgfQorfQorCisjZWxpZiBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAoVUlFZGdlSW5zZXRz
KV9wcmVmZXJyZWRFZGdlSW5zZXRzRm9yRGF0ZVRpbWVQaWNrZXIKIHsKQEAgLTQ2MiwzMCArNDgy
LDU3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4g
PSA2OwogICAgIH0KIH0KIAorLSAodm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGlk
UHJlc3NSZXNldEJ1dHRvbjooV0tEYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRp
bWVQaWNrZXJWaWV3Q29udHJvbGxlcgoreworICAgIFtzZWxmIHJlc2V0Om5pbF07Cit9CisKKy0g
KHZvaWQpZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlckRpZFByZXNzRG9uZUJ1dHRvbjooV0tE
YXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxl
cgoreworICAgIFtzZWxmIGRvbmU6bmlsXTsKK30KKworI2VuZGlmCisKIC0gKHZvaWQpc2hvd0Rh
dGVUaW1lUGlja2VyCiB7Ci0jaWYgSEFWRShVSUNPTlRFWFRNRU5VX0xPQ0FUSU9OKQorI2lmIEhB
VkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VOVEFUSU9OKQorICAgIF9kYXRlUGlja2VyUHJl
c2VudGF0aW9uID0gYWRvcHROUyhbW19VSURhdGVQaWNrZXJPdmVybGF5UHJlc2VudGF0aW9uIGFs
bG9jXSBpbml0V2l0aFNvdXJjZVZpZXc6X3ZpZXddKTsKKyAgICBbX2RhdGVQaWNrZXJQcmVzZW50
YXRpb24gc2V0U291cmNlUmVjdDpfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVy
YWN0aW9uUmVjdF07CisgICAgW19kYXRlUGlja2VyUHJlc2VudGF0aW9uIHNldEFjY2Vzc29yeVZp
ZXc6X2FjY2Vzc29yeVZpZXcuZ2V0KCldOworICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBz
ZXRBY2Nlc3NvcnlWaWV3SWdub3Jlc0RlZmF1bHRJbnNldHM6WUVTXTsKKworICAgIGlmIChbX2Rh
dGVQaWNrZXJQcmVzZW50YXRpb24gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRPdmVy
bGF5QW5jaG9yOildKQorICAgICAgICBbX2RhdGVQaWNrZXJQcmVzZW50YXRpb24gc2V0T3Zlcmxh
eUFuY2hvcjpfVUlEYXRlUGlja2VyT3ZlcmxheUFuY2hvclNvdXJjZVJlY3RdOworCisgICAgW19k
YXRlUGlja2VyUHJlc2VudGF0aW9uIHByZXNlbnREYXRlUGlja2VyOl9kYXRlUGlja2VyLmdldCgp
IG9uRGlzbWlzczpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0RhdGVUaW1lUGlja2VyPihzZWxm
KV0oQk9PTCkgeworICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkp
CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBoYW5kbGVEYXRlUGlja2VyUHJlc2VudGF0aW9uRGlz
bWlzc2FsXTsKKyAgICB9XTsKKworICAgIFtfdmlldy53ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1l
bnVdOworI2VsaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEhBVkUoVUlDT05URVhUTUVOVV9MT0NB
VElPTikKICAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICBbX2Rh
dGVUaW1lQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOl9pbnRl
cmFjdGlvblBvaW50XTsKICNlbmRpZgogfQogCi0jZW5kaWYKLQotLSAodm9pZClkYXRlVGltZVBp
Y2tlclZpZXdDb250cm9sbGVyRGlkQ2hhbmdlRGF0ZTooV0tEYXRlVGltZVBpY2tlclZpZXdDb250
cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlcgorLSAodm9pZClkYXRlUGlja2Vy
Q2hhbmdlZDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkXTsKIH0KIAotLSAo
dm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyRGlkUHJlc3NSZXNldEJ1dHRvbjooV0tE
YXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyICopZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxl
cgorLSAodm9pZClyZXNldDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgc2V0RGF0ZVRpbWVQaWNr
ZXJUb0luaXRpYWxWYWx1ZV07CiAgICAgW192aWV3IHBhZ2VdLT5zZXRGb2N1c2VkRWxlbWVudFZh
bHVlKFN0cmluZygpKTsKIH0KIAotLSAodm9pZClkYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
RGlkUHJlc3NEb25lQnV0dG9uOihXS0RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgKilkYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyCistICh2b2lkKWRvbmU6KGlkKXNlbmRlcgogewotI2lm
IFVTRShVSUNPTlRFWFRNRU5VKQorI2lmIEhBVkUoVUlEQVRFUElDS0VSX09WRVJMQVlfUFJFU0VO
VEFUSU9OKQorICAgIFtfZGF0ZVBpY2tlclByZXNlbnRhdGlvbiBkaXNtaXNzUHJlc2VudGF0aW9u
QW5pbWF0ZWQ6WUVTXTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFtfZGF0ZVRpbWVD
b250ZXh0TWVudUludGVyYWN0aW9uIGRpc21pc3NNZW51XTsKICNlbmRpZgogfQpAQCAtNTAwLDcg
KzU0Nyw5IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJn
aW4gPSA2OwogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNp
ZiBIQVZFKFVJREFURVBJQ0tFUl9PVkVSTEFZX1BSRVNFTlRBVElPTikKKyAgICBbc2VsZiByZW1v
dmVEYXRlUGlja2VyUHJlc2VudGF0aW9uXTsKKyNlbGlmIFVTRShVSUNPTlRFWFRNRU5VKQogICAg
IFtzZWxmIHJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOwogI2VuZGlmCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpAQCAtNTExLDcgKzU2MCw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRl
VGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgIGlmICghX3Nob3VsZFJlbW92ZVRpbWVa
b25lSW5mb3JtYXRpb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIFtbX2RhdGVU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgdGltZVpvbmVdIHNlY29uZHNGcm9tR01URm9yRGF0ZTpk
YXRlXTsKKyAgICByZXR1cm4gW1tfZGF0ZVBpY2tlciB0aW1lWm9uZV0gc2Vjb25kc0Zyb21HTVRG
b3JEYXRlOmRhdGVdOwogfQogCiAtIChOU1N0cmluZyAqKV9zYW5pdGl6ZUlucHV0VmFsdWVGb3JG
b3JtYXR0ZXI6KE5TU3RyaW5nICopdmFsdWUKQEAgLTUyOCw3ICs1NzcsNyBAQCBzdGF0aWMgY29u
c3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIHsKICAgICBSZXRh
aW5QdHI8TlNMb2NhbGU+IGVuZ2xpc2hMb2NhbGUgPSBhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2Nd
IGluaXRXaXRoTG9jYWxlSWRlbnRpZmllcjpAImVuX1VTX1BPU0lYIl0pOwogICAgIFJldGFpblB0
cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBhZG9wdE5TKFtbTlNEYXRlRm9ybWF0
dGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW2RhdGVGb3JtYXR0ZXIgc2V0VGltZVpvbmU6W19kYXRl
VGltZVBpY2tlclZpZXdDb250cm9sbGVyIHRpbWVab25lXV07CisgICAgW2RhdGVGb3JtYXR0ZXIg
c2V0VGltZVpvbmU6W19kYXRlUGlja2VyIHRpbWVab25lXV07CiAgICAgW2RhdGVGb3JtYXR0ZXIg
c2V0RGF0ZUZvcm1hdDpfZm9ybWF0U3RyaW5nXTsKICAgICBbZGF0ZUZvcm1hdHRlciBzZXRMb2Nh
bGU6ZW5nbGlzaExvY2FsZS5nZXQoKV07CiAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXI7CkBAIC01
MzYsNyArNTg1LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2VyQ29udHJv
bE1hcmdpbiA9IDY7CiAKIC0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNOdW1iZXIKIHsKLSAgICBO
U0RhdGUgKmRhdGUgPSBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIgZGF0ZV07CisgICAg
TlNEYXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwogICAgIFtfdmlldyB1cGRhdGVGb2N1
c2VkRWxlbWVudFZhbHVlQXNOdW1iZXI6KGRhdGUudGltZUludGVydmFsU2luY2UxOTcwICsgW3Nl
bGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25k
XTsKIH0KIApAQCAtNTQ0LDcgKzU5Myw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGlt
ZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogewogICAgIC8vIEZvcmNlIEVuZ2xpc2ggbG9jYWxl
IGJlY2F1c2UgdGhhdCBpcyB3aGF0IEhUTUw1IHZhbHVlIHBhcnNpbmcgZXhwZWN0cy4KICAgICBS
ZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gW3NlbGYgZGF0ZUZvcm1h
dHRlckZvclBpY2tlcl07Ci0gICAgW192aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6W2Rh
dGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVy
IGRhdGVdXV07CisgICAgW192aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6W2RhdGVGb3Jt
YXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXV07CiB9CiAKIC0gKHZvaWQp
X2RhdGVDaGFuZ2VkCkBAIC01NjIsMTkgKzYxMSwxOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIC0gKHZvaWQpc2V0RGF0ZVRpbWVQaWNr
ZXJUb0luaXRpYWxWYWx1ZQogewogICAgIGlmIChbX2luaXRpYWxWYWx1ZSBpc0VxdWFsOiBAIiJd
KSB7Ci0gICAgICAgIFtfZGF0ZVRpbWVQaWNrZXJWaWV3Q29udHJvbGxlciBzZXREYXRlOltOU0Rh
dGUgZGF0ZV1dOworICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNEYXRlIGRhdGVdXTsK
ICAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkXTsKICAgICB9IGVsc2UgaWYgKF9mb3JtYXRTdHJp
bmcpIHsKICAgICAgICAgLy8gQ29udmVydCB0aGUgc3RyaW5nIHZhbHVlIHRvIGEgZGF0ZSBvYmpl
Y3QgZm9yIHRoZSBmaWVsZHMgd2hlcmUgd2UgaGF2ZSBhIGZvcm1hdCBzdHJpbmcuCiAgICAgICAg
IFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBbc2VsZiBkYXRlRm9y
bWF0dGVyRm9yUGlja2VyXTsKICAgICAgICAgTlNEYXRlICpwYXJzZWREYXRlID0gW2RhdGVGb3Jt
YXR0ZXIgZGF0ZUZyb21TdHJpbmc6W3NlbGYgX3Nhbml0aXplSW5wdXRWYWx1ZUZvckZvcm1hdHRl
cjpfaW5pdGlhbFZhbHVlLmdldCgpXV07Ci0gICAgICAgIFtfZGF0ZVRpbWVQaWNrZXJWaWV3Q29u
dHJvbGxlciBzZXREYXRlOnBhcnNlZERhdGUgPyBwYXJzZWREYXRlIDogW05TRGF0ZSBkYXRlXV07
CisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOnBhcnNlZERhdGUgPyBwYXJzZWREYXRlIDog
W05TRGF0ZSBkYXRlXV07CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ29udmVydCB0aGUgbnVt
YmVyIHZhbHVlIHRvIGEgZGF0ZSBvYmplY3QgZm9yIHRoZSBmaWVsZHMgYWZmZWN0ZWQgYnkgdGlt
ZXpvbmVzLgogICAgICAgICBOU1RpbWVJbnRlcnZhbCBzZWNvbmRzU2luY2UxOTcwID0gX2luaXRp
YWxWYWx1ZUFzTnVtYmVyIC8ga01pbGxpc2Vjb25kc1BlclNlY29uZDsKICAgICAgICAgTlNJbnRl
Z2VyIHRpbWVab25lT2Zmc2V0ID0gW3NlbGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnNlY29uZHNTaW5jZTE5NzBdXTsKICAgICAg
ICAgTlNUaW1lSW50ZXJ2YWwgYWRqdXN0ZWRTZWNvbmRzU2luY2UxOTcwID0gc2Vjb25kc1NpbmNl
MTk3MCAtIHRpbWVab25lT2Zmc2V0OwotICAgICAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIgc2V0RGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmFkanVz
dGVkU2Vjb25kc1NpbmNlMTk3MF1dOworICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmFkanVzdGVkU2Vjb25kc1NpbmNlMTk3
MF1dOwogICAgIH0KIH0KIApAQCAtNTkwLDcgKzYzOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgICAgICBbX3ZpZXcgc3RhcnRS
ZWxpbnF1aXNoaW5nRmlyc3RSZXNwb25kZXJUb0ZvY3VzZWRFbGVtZW50XTsKIAogICAgIC8vIFNl
dCB0aGUgdGltZSB6b25lIGluIGNhc2UgaXQgY2hhbmdlZC4KLSAgICBbX2RhdGVUaW1lUGlja2Vy
Vmlld0NvbnRyb2xsZXIgc2V0VGltZVpvbmU6TlNUaW1lWm9uZS5sb2NhbFRpbWVab25lXTsKKyAg
ICBbX2RhdGVQaWNrZXIgc2V0VGltZVpvbmU6TlNUaW1lWm9uZS5sb2NhbFRpbWVab25lXTsKIAog
ICAgIC8vIEN1cnJlbnRseSBubyB2YWx1ZSBmb3IgdGhlIDxpbnB1dD4uIFN0YXJ0IHRoZSBwaWNr
ZXIgd2l0aCB0aGUgY3VycmVudCB0aW1lLgogICAgIC8vIEFsc28sIHVwZGF0ZSB0aGUgYWN0dWFs
IDxpbnB1dD4gdmFsdWUuCkBAIC01OTgsMjkgKzY0NywyOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9h
dCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBfaW5pdGlhbFZhbHVlQXNO
dW1iZXIgPSBfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNOdW1iZXI7CiAg
ICAgW3NlbGYgc2V0RGF0ZVRpbWVQaWNrZXJUb0luaXRpYWxWYWx1ZV07CiAKLSNpZiBVU0UoVUlD
T05URVhUTUVOVSkKICAgICBbc2VsZiBzaG93RGF0ZVRpbWVQaWNrZXJdOwotI2VuZGlmCiB9CiAK
IC0gKHZvaWQpY29udHJvbEVuZEVkaXRpbmcKIHsKICAgICBbX3ZpZXcgc3RvcFJlbGlucXVpc2hp
bmdGaXJzdFJlc3BvbmRlclRvRm9jdXNlZEVsZW1lbnRdOwogCi0jaWYgVVNFKFVJQ09OVEVYVE1F
TlUpCisjaWYgSEFWRShVSURBVEVQSUNLRVJfT1ZFUkxBWV9QUkVTRU5UQVRJT04pCisgICAgW3Nl
bGYgcmVtb3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlvbl07CisjZWxpZiBVU0UoVUlDT05URVhUTUVO
VSkKICAgICBbc2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICNlbmRpZgogfQog
CiAtIChOU1N0cmluZyAqKWNhbGVuZGFyVHlwZQogewotICAgIHJldHVybiBbX2RhdGVUaW1lUGlj
a2VyVmlld0NvbnRyb2xsZXIgY2FsZW5kYXJdLmNhbGVuZGFySWRlbnRpZmllcjsKKyAgICByZXR1
cm4gW19kYXRlUGlja2VyIGNhbGVuZGFyXS5jYWxlbmRhcklkZW50aWZpZXI7CiB9CiAKIC0gKGRv
dWJsZSlob3VyCiB7CiAgICAgTlNDYWxlbmRhciAqY2FsZW5kYXIgPSBbTlNDYWxlbmRhciBjdXJy
ZW50Q2FsZW5kYXJdOwotICAgIE5TRGF0ZUNvbXBvbmVudHMgKmNvbXBvbmVudHMgPSBbY2FsZW5k
YXIgY29tcG9uZW50czpOU0NhbGVuZGFyVW5pdEhvdXIgZnJvbURhdGU6W19kYXRlVGltZVBpY2tl
clZpZXdDb250cm9sbGVyIGRhdGVdXTsKKyAgICBOU0RhdGVDb21wb25lbnRzICpjb21wb25lbnRz
ID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRIb3VyIGZyb21EYXRlOltfZGF0
ZVBpY2tlciBkYXRlXV07CiAKICAgICByZXR1cm4gY29tcG9uZW50cy5ob3VyOwogfQpAQCAtNjI4
LDcgKzY3Nyw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xN
YXJnaW4gPSA2OwogLSAoZG91YmxlKW1pbnV0ZQogewogICAgIE5TQ2FsZW5kYXIgKmNhbGVuZGFy
ID0gW05TQ2FsZW5kYXIgY3VycmVudENhbGVuZGFyXTsKLSAgICBOU0RhdGVDb21wb25lbnRzICpj
b21wb25lbnRzID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRNaW51dGUgZnJv
bURhdGU6W19kYXRlVGltZVBpY2tlclZpZXdDb250cm9sbGVyIGRhdGVdXTsKKyAgICBOU0RhdGVD
b21wb25lbnRzICpjb21wb25lbnRzID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVu
aXRNaW51dGUgZnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXTsKIAogICAgIHJldHVybiBjb21w
b25lbnRzLm1pbnV0ZTsKIH0KQEAgLTYzNiw3ICs2ODUsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9h
dCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIC0gKHZvaWQpc2V0SG91cjooTlNJ
bnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIpbWludXRlCiB7CiAgICAgTlNTdHJpbmcgKnRp
bWVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUuMmxkOiUuMmxkIiwgKGxv
bmcpaG91ciwgKGxvbmcpbWludXRlXTsKLSAgICBbX2RhdGVUaW1lUGlja2VyVmlld0NvbnRyb2xs
ZXIgc2V0RGF0ZTpbW3NlbGYgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl0gZGF0ZUZyb21TdHJpbmc6
dGltZVN0cmluZ11dOworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOltbc2VsZiBkYXRlRm9ybWF0
dGVyRm9yUGlja2VyXSBkYXRlRnJvbVN0cmluZzp0aW1lU3RyaW5nXV07CiAgICAgW3NlbGYgX2Rh
dGVDaGFuZ2VkXTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkYmRiMjhiZjc0OGJlYzI0MjRmYmIyMDZkMTcwYmJi
ODU3MzZkNjMuLjU3YTQ2Zjg5YmNlZmU4ZTM5ZTcyOGEzYzM4ZTEzZDc3ZmU1ZGFjZWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNi0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRvcHQgbmV3IGRhdGUgcGlja2VyIHByZXNlbnRh
dGlvbiBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNzIyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc5MzAwODY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvY29uc3Rh
bnQtc2Nyb2xsLWFyZWEtd2hlbi1tb3ZpbmctZm9jdXMtYmV0d2Vlbi1maWVsZHMuaHRtbDoKKwor
ICAgICAgICBSZS1vcmRlciB0aGUgY2FsbCB0byB3YWl0IGZvciB0aGUga2V5Ym9hcmQgdG8gZGlz
bWlzcyBzaW5jZSB0aGUKKyAgICAgICAgcHJlc2VudGF0aW9uIFNQSSBkb2Vzbid0IHRlbGwgdXMg
ZXhhY3RseSB3aGVuIHRoZSBwcmVzZW50YXRpb24gYW5pbWF0aW9uCisgICAgICAgIGlzIGNvbXBs
ZXRlLiBUaGUgb3RoZXIgYWx0ZXJuYXRpdmUgd2FzIHRvIGFkZCBhIG1hbnVhbCBkZWxheSwgaG93
ZXZlciwKKyAgICAgICAgcmUtb3JkZXJpbmcgdGhlIGNhbGxzIGlzIHNhZmUgYW5kIHByZXNlcnZl
cyB0aGUgb3JpZ2luYWwgdGVzdCBiZWhhdmlvci4KKwogMjAyMS0wNi0yMCAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ1NTIGNvdW50ZXIgc3R5bGUgaW1wcm92ZW1l
bnRzIGZvciBBcm1lbmlhbiwgVGFtaWwsIGFuZCBzb21lIENKSyBzdHlsZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2NvbnN0YW50LXNjcm9sbC1hcmVhLXdoZW4tbW92
aW5nLWZvY3VzLWJldHdlZW4tZmllbGRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy9jb25zdGFudC1zY3JvbGwtYXJlYS13aGVuLW1vdmluZy1mb2N1cy1iZXR3ZWVuLWZpZWxkcy5o
dG1sCmluZGV4IDU3MjBjMjRiNzM1ZmU4Y2ZhYTUxZGQyNzg3MGEwNzM2NDAzYjA0ODUuLmNiZTJi
ZmY4MWE2ZTM2NTgyZTBlYjE2NDU1NTNkMGVhNGExYmE1NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW9zL2NvbnN0YW50LXNjcm9sbC1hcmVhLXdoZW4tbW92aW5nLWZvY3Vz
LWJldHdlZW4tZmllbGRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvY29u
c3RhbnQtc2Nyb2xsLWFyZWEtd2hlbi1tb3ZpbmctZm9jdXMtYmV0d2Vlbi1maWVsZHMuaHRtbApA
QCAtMjIsOCArMjIsOCBAQAogICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRB
bmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRleHQpOwogICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3Rp
dmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKGRhdGUpOwogCi0gICAgICAgIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpOwogICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9y
S2V5Ym9hcmRUb0hpZGUoKTsKKyAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7
CiAKICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoMTYwLCAxNTAs
IDE2MCwgNTAsIDAuMSk7CiAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVN0YWJsZVByZXNl
bnRhdGlvblVwZGF0ZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>