<?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>153672</bug_id>
          
          <creation_ts>2016-01-29 14:18:34 -0800</creation_ts>
          <short_desc>Web Inspector: Timelines UI redesign: Provide a way to configure which instruments to use</short_desc>
          <delta_ts>2016-03-22 11:00:00 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>155348</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1160269</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-29 14:18:34 -0800</bug_when>
    <thetext>* SUMMARY
Timelines UI redesign: Provide a way to configure which instruments to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160270</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-29 14:18:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/24417575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173441</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-10 16:32:55 -0800</bug_when>
    <thetext>*** Bug 155335 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176667</commentid>
    <comment_count>3</comment_count>
      <attachid>274573</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-03-20 21:31:03 -0700</bug_when>
    <thetext>Created attachment 274573
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176673</commentid>
    <comment_count>4</comment_count>
      <attachid>274573</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-20 22:00:22 -0700</bug_when>
    <thetext>Comment on attachment 274573
[Patch] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:39
&gt; +        this._enabledInstrumentTypesSetting = new WebInspector.Setting(&quot;enabled-instrument-types&quot;, WebInspector.TimelineManager.defaultInstrumentTypes());

This default setting, or any picked instrument, could become stale if an instrument is no longer supported or supported in web but not JS contexts. We likely need to cross check the list later when the setting is read. (You might do this already.)

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:56
&gt; +    static defaultInstrumentTypes()

Maybe rename to defailtTimelineTypes. See comment below.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:66
&gt; +            WebInspector.TimelineRecord.Type.Network,

We might want separate identifiers here, since one instrument could support multiple timelines. It also makes the getter confusing, since it is default timeline types, not instrument types. I know right now it is 1-1.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:77
&gt; +    static instrumentTypes()

Rename to availableTimelinesTypes?

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:135
&gt; +        return this._enabledInstrumentTypesSetting.value;

This is where you might need to cross check the setting with the current supported types, and remove types that are not support now, ideally without changing the setting.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js:60
&gt; +        this._editInstrumentsButton = new WebInspector.ActivateButtonNavigationItem(&quot;toggle-edit-instruments&quot;, &quot;Edit Configuration&quot;, &quot;Save Configuration&quot;);

Tooltips are not title case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176674</commentid>
    <comment_count>5</comment_count>
      <attachid>274573</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-20 22:00:32 -0700</bug_when>
    <thetext>Comment on attachment 274573
[Patch] Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:39
&gt;&gt; +        this._enabledInstrumentTypesSetting = new WebInspector.Setting(&quot;enabled-instrument-types&quot;, WebInspector.TimelineManager.defaultInstrumentTypes());
&gt; 
&gt; This default setting, or any picked instrument, could become stale if an instrument is no longer supported or supported in web but not JS contexts. We likely need to cross check the list later when the setting is read. (You might do this already.)

This default setting, or any picked instrument, could become stale if an instrument is no longer supported or supported in web but not JS contexts. We likely need to cross check the list later when the setting is read. (You might do this already.)

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:56
&gt;&gt; +    static defaultInstrumentTypes()
&gt; 
&gt; Maybe rename to defailtTimelineTypes. See comment below.

Maybe rename to defailtTimelineTypes. See comment below.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:66
&gt;&gt; +            WebInspector.TimelineRecord.Type.Network,
&gt; 
&gt; We might want separate identifiers here, since one instrument could support multiple timelines. It also makes the getter confusing, since it is default timeline types, not instrument types. I know right now it is 1-1.

We might want separate identifiers here, since one instrument could support multiple timelines. It also makes the getter confusing, since it is default timeline types, not instrument types. I know right now it is 1-1.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:77
&gt;&gt; +    static instrumentTypes()
&gt; 
&gt; Rename to availableTimelinesTypes?

Rename to availableTimelinesTypes?

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:135
&gt;&gt; +        return this._enabledInstrumentTypesSetting.value;
&gt; 
&gt; This is where you might need to cross check the setting with the current supported types, and remove types that are not support now, ideally without changing the setting.

This is where you might need to cross check the setting with the current supported types, and remove types that are not support now, ideally without changing the setting.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js:60
&gt;&gt; +        this._editInstrumentsButton = new WebInspector.ActivateButtonNavigationItem(&quot;toggle-edit-instruments&quot;, &quot;Edit Configuration&quot;, &quot;Save Configuration&quot;);
&gt; 
&gt; Tooltips are not title case.

Tooltips are not title case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176775</commentid>
    <comment_count>6</comment_count>
      <attachid>274603</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-03-21 10:59:34 -0700</bug_when>
    <thetext>Created attachment 274603
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177042</commentid>
    <comment_count>7</comment_count>
      <attachid>274603</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-22 10:59:54 -0700</bug_when>
    <thetext>Comment on attachment 274603
[Patch] Proposed Fix

Clearing flags on attachment: 274603

Committed r198537: &lt;http://trac.webkit.org/changeset/198537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177043</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-22 11:00:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274573</attachid>
            <date>2016-03-20 21:31:03 -0700</date>
            <delta_ts>2016-03-21 10:59:28 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-153672-20160320213103.patch</filename>
            <type>text/plain</type>
            <size>48282</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBh
ZDBkZTU3MzY4ZDM0MjgzMDk0MmFlZWI4Mjk5MDEzMzQ0NzcwZjdlLi4xNTA4MGQ2YjQzYWUyNTlh
Yzc0NGMwNDBkNTIzODAzNjNhYWU0N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjAgQEAKKzIwMTYtMDMtMjAgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyBVSSByZWRlc2lnbjogUHJvdmlk
ZSBhIHdheSB0byBjb25maWd1cmUgd2hpY2ggaW5zdHJ1bWVudHMgdG8gdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI0NDE3NTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgVUkgZm9yIGNvbmZpZ3VyaW5nIGEgdGltZWxpbmUgcmVjb3Jk
aW5nJ3MgaW5zdHJ1bWVudCBsaXN0LiBUaW1lbGluZU1hbmFnZXIKKyAgICAgICAgbWFpbnRhaW5z
IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBpbnN0cnVtZW50IHR5cGVzLCBhbmQgdHJhY2tzIHRoZSBz
dWJzZXQKKyAgICAgICAgb2YgdXNlci1jb25maWd1cmVkIGluc3RydW1lbnRzIHdoaWNoIGFyZSB1
c2VkIHRvIGluaXRpYWxpemUgbmV3IHJlY29yZGluZ3MuCisKKyAgICAgICAgKiBMb2NhbGl6YXRp
b25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgIE5ldyBzdHJpbmdzIGZv
ciAiRWRpdCIgVGltZWxpbmVzIGJ1dHRvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTWFuYWdlcik6CisgICAgICAgIEFkZGVkIHNldHRpbmcgZm9yIHVzZXItY29uZmlndXJlZCAo
ZW5hYmxlZCkgaW5zdHJ1bWVudCB0eXBlcy4KKyAgICAgICAgSW5pdGlhbGl6ZWQgdG8gdGhlIGRl
ZmF1bHQgaW5zdHJ1bWVudCB0eXBlcy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
TWFuYWdlci5kZWZhdWx0SW5zdHJ1bWVudFR5cGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU1hbmFnZXIuaW5zdHJ1bWVudFR5cGVzKToKKyAgICAgICAgR2V0IHRoZSBsaXN0IG9m
IGFsbCBzdXBwb3J0ZWQgaW5zdHJ1bWVudCB0eXBlcy4gQSBzdXBlcnNldCBvZiB0aGUKKyAgICAg
ICAgZGVmYXVsdCBpbnN0cnVtZW50IHR5cGVzLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5nZXQgZW5hYmxlZEluc3RydW1lbnRUeXBlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5zZXQgZW5hYmxlZElu
c3RydW1lbnRUeXBlcyk6CisgICAgICAgIExpc3Qgb2YgdXNlci1jb25maWd1cmVkIGluc3RydW1l
bnQgdHlwZXMsIGJhY2tlZCBieSBhIFNldHRpbmcuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5fbG9hZE5ld1JlY29yZGluZyk6CisgICAgICAgIENyZWF0
ZSBuZXcgcmVjb3JkaW5ncyB3aXRoIHRoZSBjdXJyZW50IHVzZXItY29uZmlndXJlZCBpbnN0cnVt
ZW50IGxpc3QuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLmRlZmF1bHRJ
bnN0cnVtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZWQgZGVmYXVsdEluc3RydW1lbnRU
eXBlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICBOZXcg
Y2xhc3MsIFRpbWVsaW5lVHJlZUVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01v
ZGVscy9JbnN0cnVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkluc3RydW1lbnQuY3Jl
YXRlRm9yVGltZWxpbmVUeXBlKToKKyAgICAgICAgRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5n
IEluc3RydW1lbnRzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVS
ZWNvcmRpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcpOgor
ICAgICAgICBSZXBsYWNlIGZpeGVkIGluc3RydW1lbnQgbGlzdCB3aXRoIFRpbWVsaW5lTWFuYWdl
cidzIGxpc3QuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90
eXBlLmluc3RydW1lbnRGb3JUaW1lbGluZSk6CisgICAgICAgIEdldCB0aGUgaW5zdHJ1bWVudCBp
biB0aGUgcmVjb3JkaW5nIGZvciBhIGdpdmVuIHRpbWVsaW5lLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5hZGRJbnN0cnVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUucmVtb3ZlSW5zdHJ1bWVu
dCk6CisgICAgICAgIERyaXZlLWJ5IHN5bnRheCBlcnJvciBmaXhlczogQXJyYXkucHJvdG90eXBl
LmNvbnRhaW5zIGRvZXNuJ3QgZXhpc3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lT3ZlcnZpZXcuY3NzOgorICAgICAgICAoLnRpbWVsaW5lLW92ZXJ2aWV3ID4gLm5h
dmlnYXRpb24tYmFyLnRpbWVsaW5lcyk6CisgICAgICAgICgubmF2aWdhdGlvbi1iYXIudGltZWxp
bmVzIC5pdGVtLmJ1dHRvbi50b2dnbGUtZWRpdC1pbnN0cnVtZW50czpub3QoLmRpc2FibGVkKTpt
YXRjaGVzKDpmb2N1cywgLmFjdGl2YXRlLmFjdGl2YXRlZCwgLnJhZGlvLnNlbGVjdGVkKSk6Cisg
ICAgICAgICgubmF2aWdhdGlvbi1iYXIudGltZWxpbmVzIC5pdGVtLmJ1dHRvbi50b2dnbGUtZWRp
dC1pbnN0cnVtZW50czpub3QoLmRpc2FibGVkKTphY3RpdmU6bWF0Y2hlcyg6Zm9jdXMsIC5hY3Rp
dmF0ZS5hY3RpdmF0ZWQsIC5yYWRpby5zZWxlY3RlZCkpOgorICAgICAgICAoLm5hdmlnYXRpb24t
YmFyLnRpbWVsaW5lcyAuaXRlbS5idXR0b24udG9nZ2xlLWVkaXQtaW5zdHJ1bWVudHMuZGlzYWJs
ZWQpOgorICAgICAgICAoLm5hdmlnYXRpb24tYmFyLnRpbWVsaW5lcyAudG9nZ2xlLWVkaXQtaW5z
dHJ1bWVudHM6bm90KC5kaXNhYmxlZCk6YWN0aXZlKToKKyAgICAgICAgKC50aW1lbGluZS1vdmVy
dmlldyA+IC50cmVlLW91dGxpbmUudGltZWxpbmVzKToKKyAgICAgICAgKC50aW1lbGluZS1vdmVy
dmlldy5lZGl0LWluc3RydW1lbnRzID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMpOgorICAgICAg
ICAoLnRpbWVsaW5lLW92ZXJ2aWV3LmVkaXQtaW5zdHJ1bWVudHMgPiAudHJlZS1vdXRsaW5lLnRp
bWVsaW5lcyAuaXRlbS5zZWxlY3RlZCk6CisgICAgICAgICgudGltZWxpbmUtb3ZlcnZpZXcgPiAu
dHJlZS1vdXRsaW5lLnRpbWVsaW5lcyBpbnB1dFt0eXBlPWNoZWNrYm94XS5zdGF0dXMtYnV0dG9u
KToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy5mcmFtZXMgPiA6bWF0Y2hlcygudHJlZS1v
dXRsaW5lLnRpbWVsaW5lcywgLm5hdmlnYXRpb24tYmFyLnRpbWVsaW5lcykpOgorICAgICAgICAo
LnRpbWVsaW5lLW92ZXJ2aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXM6OmJlZm9yZSk6IERl
bGV0ZWQuCisgICAgICAgICgudGltZWxpbmUtb3ZlcnZpZXcuZnJhbWVzID4gLnRyZWUtb3V0bGlu
ZS50aW1lbGluZXMpOiBEZWxldGVkLgorICAgICAgICBTdHlsZXMgZm9yIHRoZSAiRWRpdCIgbmF2
aWdhdGlvbiBiYXIgYWJvdmUgdGhlIHRpbWVsaW5lcyB0cmVlIG91dGxpbmUsCisgICAgICAgIGFu
ZCB0cmVlIGVsZW1lbnQgc3R5bGVzIGZvciBzaG93aW5nIGNoZWNrYm94ZXMgYW5kIGhpZGluZyB0
aGUgY3VycmVudAorICAgICAgICBzZWxlY3Rpb24gd2hpbGUgaW4gImVkaXQgbW9kZSIuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldyk6CisgICAgICAgIENyZWF0ZSAiRWRpdCIg
YnV0dG9uIGFuZCBuYXZpZ2F0aW9uIGJhciBhbmQgYWRkIGV2ZW50IGhhbmRsZXJzIGZvcgorICAg
ICAgICBjYXB0dXJpbmcgZXZlbnRzLCBzbyB0aGF0IHRpbWVsaW5lIGVkaXRpbmcgY2FuIGJlIGNs
b3NlZCBhbmQKKyAgICAgICAgZGlzYWJsZWQgd2hlbiBjYXB0dXJpbmcgYmVnaW5zLgorCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5wcm90b3R5cGUuc2V0IHNlbGVjdGVk
VGltZWxpbmUpOgorICAgICAgICBQcmV2ZW50IHRpbWVsaW5lIHNlbGVjdGlvbiB3aGlsZSBpbiBl
ZGl0IG1vZGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5wcm90b3R5
cGUuZ2V0IGVkaXRpbmdJbnN0cnVtZW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVPdmVydmlldy5wcm90b3R5cGUuc2V0IHZpZXdNb2RlKToKKyAgICAgICAgUHJldmVudCB2aWV3
IG1vZGUgY2hhbmdlIHdoaWxlIGluIGVkaXQgbW9kZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9pbnN0cnVtZW50QWRkZWQpOgorICAgICAgICBD
cmVhdGUgYSBUaW1lbGluZVRyZWVFbGVtZW50LCBhbmQgaW5zZXJ0IGludG8gdGhlIHRyZWUgb3V0
bGluZSBhbmQgZ3JhcGgKKyAgICAgICAgY29udGFpbmVyIGluIHNvcnRlZCBvcmRlciBpbnN0ZWFk
IG9mIGFwcGVuZGluZyB0aW1lbGluZSBlbGVtZW50cy4KKworICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl90b2dnbGVFZGl0aW5nSW5zdHJ1bWVudHMpOgor
ICAgICAgICBIYW5kbGVyIGZvciBFZGl0IGJ1dHRvbiBjbGljayBldmVudC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnByb3RvdHlwZS5fZWRpdGluZ0luc3RydW1lbnRz
RGlkQ2hhbmdlKToKKyAgICAgICAgVXBkYXRlIFVJIGluIHJlc3BvbnNlIHRvIGVkaXRpbmcgbW9k
ZSBjaGFuZ2U6IHRvZ2dsZSBDU1MsIGVuYWJsZS9kaXNhYmxlCisgICAgICAgIHRoZSB0aW1lbGlu
ZSBydWxlciBhbmQgd2hlZWwvZ2VzdHVyZSBldmVudHMsIGFuZCB1cGRhdGUgRWRpdCBidXR0b24g
YXBwZWFyYW5jZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJv
dG90eXBlLl91cGRhdGVFZGl0SW5zdHJ1bWVudHNCdXR0b24pOgorICAgICAgICBVcGRhdGUgbGFi
ZWwgdGV4dCBhbmQgYnV0dG9uIHN0YXRlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXcucHJvdG90eXBlLl91cGRhdGVXaGVlbEFuZEdlc3R1cmVIYW5kbGVycyk6CisgICAg
ICAgIEFkZC9yZW1vdmUgZXZlbnQgaGFuZGxlcnMgYmFzZWQgb24gZWRpdGluZyBzdGF0ZS4KKwor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9zdGFydEVk
aXRpbmdJbnN0cnVtZW50cyk6CisgICAgICAgIEVuYWJsZSBlZGl0IG1vZGUgVUkuIFBsYWNlaG9s
ZGVyIGVsZW1lbnRzIGFyZSBhZGRlZCBmb3IgaW5zdHJ1bWVudHMgdGhhdAorICAgICAgICBhcmVu
J3QgaW5jbHVkZWQgaW4gdGhlIHJlY29yZGluZywgYW5kIGFsbCB0cmVlIGVsZW1lbnRzIGhhdmUg
Y2hlY2tib3hlcworICAgICAgICBmb3IgdG9nZ2xpbmcgdGhlaXIgYXNzb2NpYXRlZCBpbnN0cnVt
ZW50cy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBl
Ll9zdG9wRWRpdGluZ0luc3RydW1lbnRzKToKKyAgICAgICAgRGlzYWJsZSBlZGl0IG1vZGUgVUku
IFVuY2hlY2tlZCBpbnN0cnVtZW50cyBhcmUgZmlyc3QgcmVtb3ZlZCBmcm9tIHRoZQorICAgICAg
ICByZWNvcmRpbmcsIHRoZW4gcGxhY2Vob2xkZXIgdHJlZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCwg
YW5kIHRoZWlyIGluc3RydW1lbnRzCisgICAgICAgIGFkZGVkLCBhcyBuZWVkZWQuIFRpbWVsaW5l
TWFuYWdlcidzIGxpc3Qgb2YgdXNlci1jb25maWd1cmVkIGluc3RydW1lbnQgdHlwZXMKKyAgICAg
ICAgaXMgdGhlbiB1cGRhdGVkLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlldy5wcm90b3R5cGUuX2NhcHR1cmluZ1N0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9jYXB0dXJpbmdTdG9wcGVkKToKKyAgICAgICAg
RW5hYmxlL2Rpc2FibGUgdGhlIEVkaXQgYnV0dG9uLiBRdWl0IGVkaXRpbmcgbW9kZSB3aGVuIGNh
cHR1cmluZyBzdGFydHMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5w
cm90b3R5cGUuX2NvbXBhcmVUaW1lbGluZVRyZWVFbGVtZW50cyk6CisgICAgICAgIFNwZWNpYWwg
c29ydGluZyBmb3IgdGhlIHRpbWVsaW5lcyB0cmVlIG91dGxpbmUuIFRoZSBzb3J0IG9yZGVyIGlz
OgorICAgICAgICAgICAgMS4gSW5zdHJ1bWVudHMgdGhhdCBhcmUgaW4gdGhlIHJlY29yZGluZywg
ZXhjZXB0IFJlbmRlcmluZyBGcmFtZXMuCisgICAgICAgICAgICAyLiBJbnN0cnVtZW50cyB0aGF0
IGFyZW4ndCBpbiB0aGUgcmVjb3JkaW5nIChwbGFjZWhvbGRlcnMpLgorICAgICAgICAgICAgMy4g
UmVuZGVyaW5nIEZyYW1lcy4KKworICAgICAgICBJbnN0cnVtZW50cyBpbiBncm91cHMgMSAmIDIg
YXJlIHNvcnRlZCBiYXNlZCBvbiB0aGUgb3JkZXIgb2YgaW5zdHJ1bWVudAorICAgICAgICB0eXBl
cyBpbiB0aGUgbGlzdCByZXR1cm5lZCBieSBUaW1lbGluZU1hbmFnZXIuaW5zdHJ1bWVudFR5cGVz
KCkuIFRoZQorICAgICAgICBSZW5kZXJpbmcgRnJhbWVzIHRyZWUgZWxlbWVudCBtdXN0IGJlIGxh
c3QsIHNpbmNlIGl0J3MgaGlkZGVuIGFuZCB3b3VsZAorICAgICAgICBvdGhlcndpc2UgaW50ZXJm
ZXJlIHdpdGggdGhlIGFsdGVybmF0aW5nIHRyZWUgZWxlbWVudCBDU1Mgc3R5bGVzLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNz
czoKKyAgICAgICAgKC5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nLmVkaXQtaW5zdHJ1
bWVudHMgPiAudGltZWxpbmUtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy50aW1l
bGluZS1yZWNvcmRpbmcuZWRpdC1pbnN0cnVtZW50cyA+IC5jb250ZW50LWJyb3dzZXIpOgorICAg
ICAgICBIaWRlIGxvd2VyIGNvbnRlbnQgYnJvd3NlciBhbmQgZXh0ZW5kIHRpbWVsaW5lcyB0cmVl
IGhlaWdodCBpbiBlZGl0IG1vZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Rp
bWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldyk6CisgICAgICAgIExpc3RlbiBmb3IgZWRpdCBtb2Rl
IGNoYW5nZXMgb24gVGltZWxpbmVPdmVydmlldy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50QnJvd3NlclRyZWVFbGVt
ZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVUaW1lbGluZU92ZXJ2aWV3SGVp
Z2h0KToKKyAgICAgICAgV2hlbiBpbiBlZGl0IG1vZGUsIHJlbW92ZSBpbmxpbmUgc3R5bGUgcnVs
ZSBmb3IgVGltZWxpbmVPdmVydmlldyBoZWlnaHQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuX2luc3RydW1lbnRBZGRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5
cGUuX2VkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZSk6CisgICAgICAgIFVwZGF0ZSBDU1MgYW5k
IFRpbWVsaW5lT3ZlcnZpZXcgaGVpZ2h0IHdoZW4gZWRpdCBtb2RlIGNoYW5nZXMuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0
IHRpbWVsaW5lT3ZlcnZpZXdIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICBObyBsb25nZXIgdXNl
ZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUYWJDb250ZW50Vmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3Bs
YXlOYW1lRm9yVGltZWxpbmVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVRh
YkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZVR5cGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZ2VuZXJpY0NsYXNzTmFtZUZvclRpbWVs
aW5lVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5k
aXNwbGF5TmFtZUZvclRpbWVsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVRhYkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5nZW5lcmljQ2xh
c3NOYW1lRm9yVGltZWxpbmUpOiBEZWxldGVkLgorICAgICAgICBIZWxwZXIgZnVuY3Rpb25zIG5v
dyB0YWtlIGEgdGltZWxpbmUgdHlwZSBpbnN0ZWFkIG9mIGEgdGltZWxpbmUgb2JqZWN0LgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRyZWVFbGVtZW50LmpzOiBBZGRl
ZC4KKyAgICAgICAgTmV3IHRyZWUgZWxlbWVudCBjbGFzcyB0byBlbmNhcHN1bGF0ZSBiZWhhdmlv
ciBzcGVjaWZpYyB0byB0aGUgdGltZWxpbmVzCisgICAgICAgIHRyZWUgb3V0bGluZSwgc3VjaCBh
cyBzdGF0dXMgZWxlbWVudCBjaGFuZ2VzIGFuZCBkaXNhYmxpbmcgc2VsZWN0aW9uCisgICAgICAg
IHdoZW4gZWRpdGluZy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1l
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQucHJvdG90eXBl
LmdldCBwbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUcmVlRWxl
bWVudC5wcm90b3R5cGUuZ2V0IGVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBlZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fc2hvd0Nsb3NlQnV0dG9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fc2hvd0No
ZWNrYm94KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fdXBkYXRlU3RhdHVzQnV0dG9uKToKKwogMjAxNi0wMy0yMCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBidWlsZCBzZXR0aW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjBmNTQ1MjEyZDAyNmM4YzE4NThjNWQ4MTM5
ZTE1MTRhYzFjZWVhMy4uMjRkZmE1ZjQ3OWQzNThhZTMxNDMzNTkwODE4ZTIyOWI2NDY0ZjdhZiAx
MDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyMgplY21iUG5nWjE3RykoekY9bE5sPlNDTzIy
PlklVlFkYH4/N2YxcSRXPgoKZGVsdGEgMjYKaWNtY2IyZ0xURlkpKHpGPWxWNnNMUDQqUyRuIUxN
JFl4Qz4hO3g3UVAma1pGMgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRl
eCBkZWYxYmQzYjMxZTc4ODNjMzRmMzlhN2MwYzVlYTUwZGU5YzVhMjlmLi5jYWQ0YmU1ODEwY2Ix
OTk4N2IzZjIxMzhjMTVlMGYzZjA5MGVmNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVN
YW5hZ2VyLmpzCkBAIC0zNiw2ICszNiw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIg
PSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5oZWFwTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5IZWFwTWFuYWdlci5FdmVudC5HYXJiYWdlQ29sbGVjdGVkLCB0aGlzLl9nYXJiYWdlQ29sbGVj
dGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLm1lbW9yeU1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuTWVtb3J5TWFuYWdlci5FdmVudC5NZW1vcnlQcmVzc3VyZSwg
dGhpcy5fbWVtb3J5UHJlc3N1cmUsIHRoaXMpOwogCisgICAgICAgIHRoaXMuX2VuYWJsZWRJbnN0
cnVtZW50VHlwZXNTZXR0aW5nID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJlbmFibGVkLWlu
c3RydW1lbnQtdHlwZXMiLCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLmRlZmF1bHRJbnN0
cnVtZW50VHlwZXMoKSk7CisKICAgICAgICAgdGhpcy5fcGVyc2lzdGVudE5ldHdvcmtUaW1lbGlu
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1RpbWVsaW5lOwogCiAgICAgICAgIHRoaXMuX2lz
Q2FwdHVyaW5nID0gZmFsc2U7CkBAIC01MSwzMSArNTMsNDAgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKIAogICAgIC8vIFN0YXRpYwogCi0gICAgc3RhdGljIGRlZmF1bHRJbnN0cnVtZW50cygp
CisgICAgc3RhdGljIGRlZmF1bHRJbnN0cnVtZW50VHlwZXMoKQogICAgIHsKICAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5kZWJ1Z2dhYmxlVHlwZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2FibGVU
eXBlLkphdmFTY3JpcHQpIHsKLSAgICAgICAgICAgIGxldCBkZWZhdWx0cyA9IFtuZXcgV2ViSW5z
cGVjdG9yLlNjcmlwdEluc3RydW1lbnRdOworICAgICAgICAgICAgbGV0IGRlZmF1bHRUeXBlcyA9
IFtXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHRdOwogICAgICAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5IZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50LnN1cHBvcnRlZCgpKQot
ICAgICAgICAgICAgICAgIGRlZmF1bHRzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5IZWFwQWxsb2Nh
dGlvbnNJbnN0cnVtZW50KTsKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0czsKKyAgICAgICAg
ICAgICAgICBkZWZhdWx0VHlwZXMucHVzaChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlw
ZS5IZWFwQWxsb2NhdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRUeXBlczsKICAg
ICAgICAgfQogCi0gICAgICAgIGxldCBkZWZhdWx0cyA9IFsKLSAgICAgICAgICAgIG5ldyBXZWJJ
bnNwZWN0b3IuTmV0d29ya0luc3RydW1lbnQsCi0gICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9y
LkxheW91dEluc3RydW1lbnQsCi0gICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdElu
c3RydW1lbnQsCisgICAgICAgIGxldCBkZWZhdWx0VHlwZXMgPSBbCisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3JrLAorICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5b3V0LAorICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0LAogICAgICAgICBdOwogCisgICAgICAgIGlm
IChXZWJJbnNwZWN0b3IuRlBTSW5zdHJ1bWVudC5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIGRl
ZmF1bHRUeXBlcy5wdXNoKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmlu
Z0ZyYW1lKTsKKworICAgICAgICByZXR1cm4gZGVmYXVsdFR5cGVzOworICAgIH0KKworICAgIHN0
YXRpYyBpbnN0cnVtZW50VHlwZXMoKQorICAgIHsKKyAgICAgICAgbGV0IHR5cGVzID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTWFuYWdlci5kZWZhdWx0SW5zdHJ1bWVudFR5cGVzKCk7CisgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuZGVidWdnYWJsZVR5cGUgPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dh
YmxlVHlwZS5KYXZhU2NyaXB0KQorICAgICAgICAgICAgcmV0dXJuIHR5cGVzOworCiAgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuTWVtb3J5SW5zdHJ1bWVudC5zdXBwb3J0ZWQoKSkKLSAgICAgICAg
ICAgIGRlZmF1bHRzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5NZW1vcnlJbnN0cnVtZW50KTsKKyAg
ICAgICAgICAgIHR5cGVzLnB1c2goV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTWVt
b3J5KTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkhlYXBBbGxvY2F0aW9uc0luc3RydW1l
bnQuc3VwcG9ydGVkKCkpCi0gICAgICAgICAgICBkZWZhdWx0cy5wdXNoKG5ldyBXZWJJbnNwZWN0
b3IuSGVhcEFsbG9jYXRpb25zSW5zdHJ1bWVudCk7Ci0KLSAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5GUFNJbnN0cnVtZW50LnN1cHBvcnRlZCgpKQotICAgICAgICAgICAgZGVmYXVsdHMucHVzaChu
ZXcgV2ViSW5zcGVjdG9yLkZQU0luc3RydW1lbnQpOworICAgICAgICAgICAgdHlwZXMucHVzaChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5IZWFwQWxsb2NhdGlvbnMpOwogCi0gICAg
ICAgIHJldHVybiBkZWZhdWx0czsKKyAgICAgICAgcmV0dXJuIHR5cGVzOwogICAgIH0KIAogICAg
IC8vIFB1YmxpYwpAQCAtMTE5LDYgKzEzMCwxNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5h
Z2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
ICAgICAgICB0aGlzLl9hdXRvQ2FwdHVyZU9uUGFnZUxvYWQgPSBhdXRvQ2FwdHVyZTsKICAgICB9
CiAKKyAgICBnZXQgZW5hYmxlZEluc3RydW1lbnRUeXBlcygpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fZW5hYmxlZEluc3RydW1lbnRUeXBlc1NldHRpbmcudmFsdWU7CisgICAgfQorCisg
ICAgc2V0IGVuYWJsZWRJbnN0cnVtZW50VHlwZXMoeCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Vu
YWJsZWRJbnN0cnVtZW50VHlwZXNTZXR0aW5nLnZhbHVlID0geCB8fCBbXTsKKyAgICB9CisKICAg
ICBpc0NhcHR1cmluZygpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5faXNDYXB0dXJpbmc7
CkBAIC01NDYsMTIgKzU2Nyw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFz
cyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlm
ICh0aGlzLl9hY3RpdmVSZWNvcmRpbmcgJiYgdGhpcy5fYWN0aXZlUmVjb3JkaW5nLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE1MzY3Mj4gV2ViIEluc3BlY3RvcjogVGltZWxpbmVzIFVJIHJlZGVzaWduOiBQ
cm92aWRlIGEgd2F5IHRvIGNvbmZpZ3VyZSB3aGljaCBpbnN0cnVtZW50cyB0byB1c2UKLSAgICAg
ICAgLy8gRklYTUU6IE1vdmUgdGhlIGxpc3Qgb2YgaW5zdHJ1bWVudHMgZm9yIGEgbmV3IHJlY29y
ZGluZyB0byBhIFNldHRpbmcgd2hlbiBuZXcgSW5zdHJ1bWVudHMgYXJlIHN1cHBvcnRlZC4KLSAg
ICAgICAgbGV0IGluc3RydW1lbnRzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5kZWZh
dWx0SW5zdHJ1bWVudHMoKTsKLQotICAgICAgICB2YXIgaWRlbnRpZmllciA9IHRoaXMuX25leHRS
ZWNvcmRpbmdJZGVudGlmaWVyKys7Ci0gICAgICAgIHZhciBuZXdSZWNvcmRpbmcgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nKGlkZW50aWZpZXIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiVGltZWxpbmUgUmVjb3JkaW5nICVkIikuZm9ybWF0KGlkZW50aWZpZXIpLCBpbnN0cnVt
ZW50cyk7CisgICAgICAgIGxldCBpbnN0cnVtZW50cyA9IHRoaXMuX2VuYWJsZWRJbnN0cnVtZW50
VHlwZXNTZXR0aW5nLnZhbHVlLm1hcCgodHlwZSkgPT4gV2ViSW5zcGVjdG9yLkluc3RydW1lbnQu
Y3JlYXRlRm9yVGltZWxpbmVUeXBlKHR5cGUpKTsKKyAgICAgICAgbGV0IGlkZW50aWZpZXIgPSB0
aGlzLl9uZXh0UmVjb3JkaW5nSWRlbnRpZmllcisrOworICAgICAgICBsZXQgbmV3UmVjb3JkaW5n
ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZyhpZGVudGlmaWVyLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlRpbWVsaW5lIFJlY29yZGluZyAlZCIpLmZvcm1hdChpZGVudGlmaWVy
KSwgaW5zdHJ1bWVudHMpOwogCiAgICAgICAgIHRoaXMuX3JlY29yZGluZ3MucHVzaChuZXdSZWNv
cmRpbmcpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ0NyZWF0ZWQsIHtyZWNvcmRpbmc6IG5l
d1JlY29yZGluZ30pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFp
bi5odG1sCmluZGV4IDBmN2ZkMzczNmJhMGM2ZmIzZWE0ZWZmOGM5YTVkMzFlOTI4OGRjNDUuLjA2
NGNhMzRhMTU0ZDhiYjc5N2JhNzY0MzE0ZDU3NGZhMWVmZjJkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTQyNSw2ICs0MjUsNyBAQAog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdG9yYWdlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1RpbWVsaW5lVHJlZUVsZW1lbnQuanMiPjwvc2Ny
aXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvbnNvbGVUYWJDb250ZW50Vmlldy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0RlYnVnZ2VyVGFiQ29udGVudFZpZXcu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0luc3RydW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvSW5zdHJ1bWVudC5qcwppbmRleCBiNzM4NWE2MmZlOTY4MDVlY2FiNTg4
MDc0YTAyMjY1Mjg2ODM1ODIwLi41NzRkZGE2YWRjNTlmYWViNzU0NTAzM2UwNTVmMjlkZGVhMDZh
MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvSW5zdHJ1bWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvSW5zdHJ1bWVudC5qcwpAQCAtMjcsNiArMjcsMjcgQEAgV2ViSW5zcGVjdG9yLklu
c3RydW1lbnQgPSBjbGFzcyBJbnN0cnVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
ewogICAgIC8vIFN0YXRpYwogCisgICAgc3RhdGljIGNyZWF0ZUZvclRpbWVsaW5lVHlwZSh0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTmV0d29yazoKKyAgICAgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLk5ldHdvcmtJbnN0cnVtZW50OworICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkxheW91dEluc3RydW1lbnQ7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0OgorICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuU2NyaXB0SW5zdHJ1bWVudDsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZToKKyAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkZQU0luc3RydW1lbnQ7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUmVjb3JkLlR5cGUuTWVtb3J5OgorICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuTWVtb3J5SW5zdHJ1bWVudDsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmQuVHlwZS5IZWFwQWxsb2NhdGlvbnM6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYklu
c3BlY3Rvci5IZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBUaW1lbGluZVJlY29yZC5UeXBlOiAiICsg
dHlwZSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKwogICAg
IHN0YXRpYyBzdGFydExlZ2FjeVRpbWVsaW5lQWdlbnQoKQogICAgIHsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQod2luZG93LlRpbWVsaW5lQWdlbnQsICJBdHRlbXB0ZWQgdG8gc3RhcnQgbGVnYWN5
IHRpbWVsaW5lIGFnZW50IHdpdGhvdXQgVGltZWxpbmVBZ2VudC4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZGlu
Zy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGlu
ZVJlY29yZGluZy5qcwppbmRleCBmYTIzNDVmZWIwOTczZTk1OTdlODdhYTZjMTQyZTIxY2Q3YTc2
MjBlLi5hZDg5ZjdkZmRmOTZmYzNmZjA2ZmVjZmJhOTU4MjU0NzFhNDZjN2FiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNv
cmRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1RpbWVsaW5lUmVjb3JkaW5nLmpzCkBAIC0zOCwxNiArMzgsNyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYgogICAgICAgICB0aGlzLl90b3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlID0gbmV3IFdl
Ykluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUoV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0
VHJlZS5UeXBlLlRvcERvd24pOwogICAgICAgICB0aGlzLl9ib3R0b21VcENhbGxpbmdDb250ZXh0
VHJlZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlKFdlYkluc3BlY3Rvci5D
YWxsaW5nQ29udGV4dFRyZWUuVHlwZS5Cb3R0b21VcCk7CiAKLSAgICAgICAgbGV0IHRpbWVsaW5l
cyA9IFsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk5ldHdv
cmssCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQs
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHQsCi0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFt
ZSwKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9yeSwK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0
aW9ucywKLSAgICAgICAgXTsKLQotICAgICAgICBmb3IgKGxldCB0eXBlIG9mIHRpbWVsaW5lcykg
eworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIu
aW5zdHJ1bWVudFR5cGVzKCkpIHsKICAgICAgICAgICAgIGxldCB0aW1lbGluZSA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZS5jcmVhdGUodHlwZSk7CiAgICAgICAgICAgICB0aGlzLl90aW1lbGluZXMu
c2V0KHR5cGUsIHRpbWVsaW5lKTsKICAgICAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lLkV2ZW50LlRpbWVzVXBkYXRlZCwgdGhpcy5fdGltZWxp
bmVUaW1lc1VwZGF0ZWQsIHRoaXMpOwpAQCAtMTk2LDYgKzE4NywxMSBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYgogICAgICAgICByZXR1cm4gdGhpcy5fdGltZWxpbmVzLmdldChpbnN0cnVtZW50
LnRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgfQogCisgICAgaW5zdHJ1bWVudEZvclRpbWVsaW5l
KHRpbWVsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RydW1lbnRzLmZpbmQo
KGluc3RydW1lbnQpID0+IGluc3RydW1lbnQudGltZWxpbmVSZWNvcmRUeXBlID09PSB0aW1lbGlu
ZS50eXBlKTsKKyAgICB9CisKICAgICB0aW1lbGluZUZvclJlY29yZFR5cGUocmVjb3JkVHlwZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl90aW1lbGluZXMuZ2V0KHJlY29yZFR5cGUpOwpA
QCAtMjA0LDcgKzIwMCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNz
IFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iCiAgICAgYWRkSW5zdHJ1
bWVudChpbnN0cnVtZW50KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaW5zdHJ1bWVu
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5JbnN0cnVtZW50LCBpbnN0cnVtZW50KTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2luc3RydW1lbnRzLmNvbnRhaW5zKGluc3RydW1lbnQp
LCB0aGlzLl9pbnN0cnVtZW50cywgaW5zdHJ1bWVudCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCF0aGlzLl9pbnN0cnVtZW50cy5pbmNsdWRlcyhpbnN0cnVtZW50KSwgdGhpcy5faW5zdHJ1bWVu
dHMsIGluc3RydW1lbnQpOwogCiAgICAgICAgIHRoaXMuX2luc3RydW1lbnRzLnB1c2goaW5zdHJ1
bWVudCk7CiAKQEAgLTIxNCw3ICsyMTAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRp
bmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYgogICAg
IHJlbW92ZUluc3RydW1lbnQoaW5zdHJ1bWVudCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGluc3RydW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSW5zdHJ1bWVudCwgaW5zdHJ1
bWVudCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2luc3RydW1lbnRzLmNvbnRhaW5z
KGluc3RydW1lbnQpLCB0aGlzLl9pbnN0cnVtZW50cywgaW5zdHJ1bWVudCk7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRoaXMuX2luc3RydW1lbnRzLmluY2x1ZGVzKGluc3RydW1lbnQpLCB0aGlz
Ll9pbnN0cnVtZW50cywgaW5zdHJ1bWVudCk7CiAKICAgICAgICAgdGhpcy5faW5zdHJ1bWVudHMu
cmVtb3ZlKGluc3RydW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuY3NzCmluZGV4IDE3
OGZmZjVkNjkyOTJlNjgzODAyM2ZiMmJiNzIxODc0ZDBiN2MwYjAuLjcyOGIyNzkwMWY0YWI4MGE2
YzE3ZjRkNTdmNWNlZjE1NmU4NmM4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuY3NzCkBA
IC0yMywzMSArMjMsNTUgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0udGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyB7CisudGlt
ZWxpbmUtb3ZlcnZpZXcgPiAubmF2aWdhdGlvbi1iYXIudGltZWxpbmVzIHsKKyAgICBqdXN0aWZ5
LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHRvcDog
MDsKICAgICBsZWZ0OiAwOwogICAgIHdpZHRoOiAxODVweDsKKyAgICBoZWlnaHQ6IDIzcHg7CisK
KyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgt
aGVhZGVyKTsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYW5lbC1iYWNrZ3JvdW5kLWNv
bG9yKTsKKworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgIGJvcmRlci1yaWdodDog
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5uYXZpZ2F0aW9uLWJhci50aW1lbGluZXMg
Lml0ZW0uYnV0dG9uLnRvZ2dsZS1lZGl0LWluc3RydW1lbnRzOm5vdCguZGlzYWJsZWQpOm1hdGNo
ZXMoOmZvY3VzLCAuYWN0aXZhdGUuYWN0aXZhdGVkLCAucmFkaW8uc2VsZWN0ZWQpIHsKKyAgICBj
b2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKK30KKworLm5hdmlnYXRpb24tYmFyLnRp
bWVsaW5lcyAuaXRlbS5idXR0b24udG9nZ2xlLWVkaXQtaW5zdHJ1bWVudHM6bm90KC5kaXNhYmxl
ZCk6YWN0aXZlOm1hdGNoZXMoOmZvY3VzLCAuYWN0aXZhdGUuYWN0aXZhdGVkLCAucmFkaW8uc2Vs
ZWN0ZWQpIHsKKyAgICBjb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlLXByZXNzZWQpOwor
fQorCisubmF2aWdhdGlvbi1iYXIudGltZWxpbmVzIC5pdGVtLmJ1dHRvbi50b2dnbGUtZWRpdC1p
bnN0cnVtZW50cy5kaXNhYmxlZCB7CisgICAgY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLWRpc2Fi
bGVkKTsKIH0KIAotLnRpbWVsaW5lLW92ZXJ2aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXM6
OmJlZm9yZSB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgY29udGVudDogIiI7CisubmF2aWdh
dGlvbi1iYXIudGltZWxpbmVzIC50b2dnbGUtZWRpdC1pbnN0cnVtZW50czpub3QoLmRpc2FibGVk
KTphY3RpdmUgeworICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1wcmVzc2VkKTsKK30KKwor
LnRpbWVsaW5lLW92ZXJ2aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDIzcHg7CiAgICAgbGVmdDogMDsKLSAgICB0b3A6IDA7
CiAgICAgd2lkdGg6IDE4NXB4OwotICAgIGhlaWdodDogMjNweDsKLSAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OwotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIHotaW5kZXg6IHZh
cigtLXotaW5kZXgtaGVhZGVyKTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYW5lbC1i
YWNrZ3JvdW5kLWNvbG9yKTsKICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3Jk
ZXItY29sb3IpOwotICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29s
b3IpOwogfQogCi0udGltZWxpbmUtb3ZlcnZpZXcuZnJhbWVzID4gLnRyZWUtb3V0bGluZS50aW1l
bGluZXMgewotICAgIGRpc3BsYXk6IG5vbmU7CisudGltZWxpbmUtb3ZlcnZpZXcuZWRpdC1pbnN0
cnVtZW50cyA+IC50cmVlLW91dGxpbmUudGltZWxpbmVzIHsKKyAgICBib3R0b206IDA7Cit9CisK
Ky50aW1lbGluZS1vdmVydmlldy5lZGl0LWluc3RydW1lbnRzID4gLnRyZWUtb3V0bGluZS50aW1l
bGluZXMgLml0ZW0uc2VsZWN0ZWQgeworICAgIGNvbG9yOiBpbml0aWFsOworICAgIGJhY2tncm91
bmQtY29sb3I6IHRyYW5zcGFyZW50OwogfQogCiAudGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1v
dXRsaW5lLnRpbWVsaW5lcyAuY2xvc2UtYnV0dG9uIHsKQEAgLTYwLDExICs4NCwxOCBAQAogICAg
IHZpc2liaWxpdHk6IHZpc2libGU7CiB9CiAKKy50aW1lbGluZS1vdmVydmlldyA+IC50cmVlLW91
dGxpbmUudGltZWxpbmVzIGlucHV0W3R5cGU9Y2hlY2tib3hdLnN0YXR1cy1idXR0b24geworICAg
IHdpZHRoOiAxMnB4OworICAgIGhlaWdodDogMTJweDsKK30KKworLnRpbWVsaW5lLW92ZXJ2aWV3
LmVkaXQtaW5zdHJ1bWVudHMgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyAuaXRlbTpudGgtY2hp
bGQoZXZlbiksCiAudGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyAu
aXRlbTpub3QoLnNlbGVjdGVkKTpudGgtY2hpbGQoZXZlbikgewogICAgIGJhY2tncm91bmQtY29s
b3I6IGhzbGEoMCwgMCUsIDAlLCAwLjAzKTsKICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmct
Ym94OwogfQogCisudGltZWxpbmUtb3ZlcnZpZXcuZWRpdC1pbnN0cnVtZW50cyA+IC50cmVlLW91
dGxpbmUudGltZWxpbmVzIC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLAogLnRpbWVsaW5lLW92ZXJ2
aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMgLml0ZW06bm90KC5zZWxlY3RlZCk6bm90KDpm
aXJzdC1jaGlsZCkgewogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBoc2xhKDAsIDAlLCAwJSwg
MC4wOSk7CiB9CkBAIC05NSw2ICsxMjYsMTAgQEAgYm9keS53aW5kb3ctaW5hY3RpdmUgLnRpbWVs
aW5lLW92ZXJ2aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMgLml0ZW0uc2VsZWN0ZWQKICAg
ICB6LWluZGV4OiBjYWxjKHZhcigtLXotaW5kZXgtcmVzaXplcikgKyAxKTsKIH0KIAorLnRpbWVs
aW5lLW92ZXJ2aWV3LmZyYW1lcyA+IDptYXRjaGVzKC50cmVlLW91dGxpbmUudGltZWxpbmVzLCAu
bmF2aWdhdGlvbi1iYXIudGltZWxpbmVzKSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogLnRp
bWVsaW5lLW92ZXJ2aWV3LmZyYW1lcyA+IC5zY3JvbGwtY29udGFpbmVyIHsKICAgICBsZWZ0OiAw
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVPdmVydmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanMKaW5kZXggMjUyYTU3ZWM5MDczOTBjNWJjODE4
NWQxMmZhOTdmOGUxMTc3NWM5Yy4uMTM5OWQwMDM4YTZkMzU4NWFjZjM3M2RlYmE1MTc4ZjE4MGY0
YTJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVPdmVydmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzCkBAIC0zMiw2ICszMiw3IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVPdmVydmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVsaW5lUmVjb3Jk
aW5nIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nKTsKIAogICAgICAg
ICB0aGlzLl90aW1lbGluZXNWaWV3TW9kZVNldHRpbmdzID0gdGhpcy5fY3JlYXRlVmlld01vZGVT
ZXR0aW5ncyhXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5WaWV3TW9kZS5UaW1lbGluZXMs
IDAuMDAwMSwgNjAsIDAuMDEsIDAsIDE1KTsKKyAgICAgICAgdGhpcy5faW5zdHJ1bWVudFR5cGVz
ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5pbnN0cnVtZW50VHlwZXMoKTsKIAogICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLkZQU0luc3RydW1lbnQuc3VwcG9ydGVkKCkpIHsKICAgICAg
ICAgICAgIGxldCBtaW5pbXVtRHVyYXRpb25QZXJQaXhlbCA9IDEgLyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRGcmFtZS5NYXhpbXVtV2lkdGhQaXhlbHM7CkBAIC00OCwxMCArNDksNyBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVsaW5lT3ZlcnZpZXcgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRl
OwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1lbGluZS1vdmVydmll
dyIpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLCB0aGlz
Ll9oYW5kbGVXaGVlbEV2ZW50LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0IiwgdGhpcy5faGFuZGxlR2VzdHVyZVN0YXJ0LmJp
bmQodGhpcykpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2VzdHVy
ZWNoYW5nZSIsIHRoaXMuX2hhbmRsZUdlc3R1cmVDaGFuZ2UuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlZW5kIiwgdGhpcy5faGFuZGxl
R2VzdHVyZUVuZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlV2hlZWxBbmRHZXN0
dXJlSGFuZGxlcnMoKTsKIAogICAgICAgICB0aGlzLl9ncmFwaHNDb250YWluZXJWaWV3ID0gbmV3
IFdlYkluc3BlY3Rvci5WaWV3OwogICAgICAgICB0aGlzLl9ncmFwaHNDb250YWluZXJWaWV3LmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGhzLWNvbnRhaW5lciIpOwpAQCAtNTksNiArNTcsMTYg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKIAogICAgICAgICB0aGlzLl9vdmVydmlld0dyYXBo
c0J5VHlwZU1hcCA9IG5ldyBNYXA7CiAKKyAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRzQnV0
dG9uID0gbmV3IFdlYkluc3BlY3Rvci5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJ0b2dn
bGUtZWRpdC1pbnN0cnVtZW50cyIsICJFZGl0IENvbmZpZ3VyYXRpb24iLCAiU2F2ZSBDb25maWd1
cmF0aW9uIik7CisgICAgICAgIHRoaXMuX2VkaXRJbnN0cnVtZW50c0J1dHRvbi5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLl90b2dnbGVFZGl0aW5nSW5zdHJ1bWVudHMsIHRoaXMpOworICAgICAgICB0aGlzLl9lZGl0
aW5nSW5zdHJ1bWVudHMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWRpdEluc3RydW1l
bnRzQnV0dG9uKCk7CisKKyAgICAgICAgbGV0IGluc3RydW1lbnRzTmF2aWdhdGlvbkJhciA9IG5l
dyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkJhcjsKKyAgICAgICAgaW5zdHJ1bWVudHNOYXZpZ2F0
aW9uQmFyLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidGltZWxpbmVzIik7CisgICAgICAgIGluc3Ry
dW1lbnRzTmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbSh0aGlzLl9lZGl0SW5zdHJ1bWVu
dHNCdXR0b24pOworICAgICAgICB0aGlzLmFkZFN1YnZpZXcoaW5zdHJ1bWVudHNOYXZpZ2F0aW9u
QmFyKTsKKwogICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmU7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgidGltZWxpbmVzIik7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5l
c1RyZWVPdXRsaW5lLmRpc2Nsb3N1cmVCdXR0b25zID0gZmFsc2U7CkBAIC0xMDYsNiArMTE0LDkg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgICAgIHRoaXMuX3Jlc2V0U2VsZWN0
aW9uKCk7CiAKICAgICAgICAgdGhpcy5fdmlld01vZGVEaWRDaGFuZ2UoKTsKKworICAgICAgICBX
ZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTWFuYWdlci5FdmVudC5DYXB0dXJpbmdTdGFydGVkLCB0aGlzLl9jYXB0dXJpbmdT
dGFydGVkLCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuRXZlbnQuQ2FwdHVyaW5n
U3RvcHBlZCwgdGhpcy5fY2FwdHVyaW5nU3RvcHBlZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8g
UHVibGljCkBAIC0xMTcsNiArMTI4LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcg
PSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKIAogICAg
IHNldCBzZWxlY3RlZFRpbWVsaW5lKHgpCiAgICAgeworICAgICAgICBpZiAodGhpcy5fZWRpdGlu
Z0luc3RydW1lbnRzKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmICh0aGlzLl9z
ZWxlY3RlZFRpbWVsaW5lID09PSB4KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzIsNiAr
MTQ2LDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVP
dmVydmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgICAgICB0aGlzLl90aW1l
bGluZXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50LmRlc2VsZWN0KCk7CiAgICAgfQog
CisgICAgZ2V0IGVkaXRpbmdJbnN0cnVtZW50cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fZWRpdGluZ0luc3RydW1lbnRzOworICAgIH0KKwogICAgIGdldCB2aWV3TW9kZSgpCiAgICAg
ewogICAgICAgICByZXR1cm4gdGhpcy5fdmlld01vZGU7CkBAIC0xMzksNiArMTU4LDkgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLlZpZXcKIAogICAgIHNldCB2aWV3TW9kZSh4KQogICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKwog
ICAgICAgICBpZiAodGhpcy5fdmlld01vZGUgPT09IHgpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTU4OCwyNiArNjEwLDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xh
c3MgVGltZWxpbmVPdmVydmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCF0aGlzLl9vdmVydmlld0dyYXBoc0J5VHlwZU1hcC5oYXModGltZWxpbmUu
dHlwZSksIHRpbWVsaW5lKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3RyZWVFbGVt
ZW50c0J5VHlwZU1hcC5oYXModGltZWxpbmUudHlwZSksIHRpbWVsaW5lKTsKIAorICAgICAgICBs
ZXQgdHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQodGlt
ZWxpbmUpOworICAgICAgICBsZXQgaW5zZXJ0aW9uSW5kZXggPSBpbnNlcnRpb25JbmRleEZvck9i
amVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24odHJlZUVsZW1lbnQsIHRoaXMuX3RpbWVsaW5lc1Ry
ZWVPdXRsaW5lLmNoaWxkcmVuLCB0aGlzLl9jb21wYXJlVGltZWxpbmVUcmVlRWxlbWVudHMuYmlu
ZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmluc2VydENoaWxk
KHRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleCk7CisgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50
c0J5VHlwZU1hcC5zZXQodGltZWxpbmUudHlwZSwgdHJlZUVsZW1lbnQpOworCiAgICAgICAgIGxl
dCBvdmVydmlld0dyYXBoID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jcmVh
dGVGb3JUaW1lbGluZSh0aW1lbGluZSwgdGhpcyk7CiAgICAgICAgIG92ZXJ2aWV3R3JhcGguYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld0dyYXBoLkV2ZW50LlJl
Y29yZFNlbGVjdGVkLCB0aGlzLl9yZWNvcmRTZWxlY3RlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMu
X292ZXJ2aWV3R3JhcGhzQnlUeXBlTWFwLnNldCh0aW1lbGluZS50eXBlLCBvdmVydmlld0dyYXBo
KTsKKyAgICAgICAgdGhpcy5fZ3JhcGhzQ29udGFpbmVyVmlldy5pbnNlcnRTdWJ2aWV3QmVmb3Jl
KG92ZXJ2aWV3R3JhcGgsIHRoaXMuX2dyYXBoc0NvbnRhaW5lclZpZXcuc3Vidmlld3NbaW5zZXJ0
aW9uSW5kZXhdKTsKIAotICAgICAgICB0aGlzLl9ncmFwaHNDb250YWluZXJWaWV3LmFkZFN1YnZp
ZXcob3ZlcnZpZXdHcmFwaCk7Ci0KLSAgICAgICAgbGV0IGRpc3BsYXlOYW1lID0gV2ViSW5zcGVj
dG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZGlzcGxheU5hbWVGb3JUaW1lbGluZSh0aW1lbGlu
ZSk7Ci0gICAgICAgIGxldCBpY29uQ2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFi
Q29udGVudFZpZXcuaWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lKHRpbWVsaW5lKTsKLSAgICAgICAg
bGV0IGdlbmVyaWNDbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmll
dy5nZW5lcmljQ2xhc3NOYW1lRm9yVGltZWxpbmUodGltZWxpbmUpOwotICAgICAgICBsZXQgdHJl
ZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudChbaWNvbkNsYXNz
TmFtZSwgZ2VuZXJpY0NsYXNzTmFtZV0sIGRpc3BsYXlOYW1lLCBudWxsLCB0aW1lbGluZSk7Ci0g
ICAgICAgIGxldCB0b29sdGlwID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbG9zZSAlcyB0aW1l
bGluZSB2aWV3IikuZm9ybWF0KGRpc3BsYXlOYW1lKTsKLSAgICAgICAgbGV0IGJ1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnRTdGF0dXNCdXR0b24odXNlU1ZHU3ltYm9sKCJJbWFn
ZXMvQ2xvc2VMYXJnZS5zdmciLCAiY2xvc2UtYnV0dG9uIiwgdG9vbHRpcCkpOwotICAgICAgICBi
dXR0b24uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnRTdGF0dXNCdXR0
b24uRXZlbnQuQ2xpY2tlZCwgKCkgPT4geyB0cmVlRWxlbWVudC5kZXNlbGVjdCgpOyB9KTsKLSAg
ICAgICAgdHJlZUVsZW1lbnQuc3RhdHVzID0gYnV0dG9uLmVsZW1lbnQ7Ci0KLSAgICAgICAgdGhp
cy5fdGltZWxpbmVzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQpOwogICAgICAg
ICB0cmVlRWxlbWVudC5lbGVtZW50LnN0eWxlLmhlaWdodCA9IG92ZXJ2aWV3R3JhcGguaGVpZ2h0
ICsgInB4IjsKIAotICAgICAgICB0aGlzLl90cmVlRWxlbWVudHNCeVR5cGVNYXAuc2V0KHRpbWVs
aW5lLnR5cGUsIHRyZWVFbGVtZW50KTsKLQogICAgICAgICBpZiAoIXRoaXMuX2NhblNob3dUaW1l
bGluZVR5cGUodGltZWxpbmUudHlwZSkpIHsKICAgICAgICAgICAgIG92ZXJ2aWV3R3JhcGguaGlk
ZGVuKCk7CiAgICAgICAgICAgICB0cmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOwpAQCAtNzg4LDkg
KzgwMiwxNTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGlu
ZU92ZXJ2aWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgdGhpcy5fc2VsZWN0
ZWRUaW1lbGluZSA9IHRpbWVsaW5lOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5FdmVudC5UaW1lbGluZVNlbGVjdGVk
KTsKICAgICB9CisKKyAgICBfdG9nZ2xlRWRpdGluZ0luc3RydW1lbnRzKGV2ZW50KQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50cykKKyAgICAgICAgICAgIHRoaXMu
X3N0b3BFZGl0aW5nSW5zdHJ1bWVudHMoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5fc3RhcnRFZGl0aW5nSW5zdHJ1bWVudHMoKTsKKyAgICB9CisKKyAgICBfZWRpdGluZ0luc3Ry
dW1lbnRzRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkVkaXRJbnN0cnVtZW50c1N0eWxl
Q2xhc3NOYW1lLCB0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHMpOworICAgICAgICB0aGlzLl90aW1l
bGluZVJ1bGVyLmVuYWJsZWQgPSAhdGhpcy5fZWRpdGluZ0luc3RydW1lbnRzOworCisgICAgICAg
IHRoaXMuX3VwZGF0ZVdoZWVsQW5kR2VzdHVyZUhhbmRsZXJzKCk7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZUVkaXRJbnN0cnVtZW50c0J1dHRvbigpOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkV2ZW50LkVkaXRpbmdJ
bnN0cnVtZW50c0RpZENoYW5nZSk7CisgICAgfQorCisgICAgX3VwZGF0ZUVkaXRJbnN0cnVtZW50
c0J1dHRvbigpCisgICAgeworICAgICAgICBsZXQgbmV3TGFiZWwgPSB0aGlzLl9lZGl0aW5nSW5z
dHJ1bWVudHMgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKSA6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRWRpdCIpOworICAgICAgICB0aGlzLl9lZGl0SW5zdHJ1bWVudHNCdXR0b24ubGFi
ZWwgPSBuZXdMYWJlbDsKKyAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRzQnV0dG9uLmFjdGl2
YXRlZCA9IHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50czsKKyAgICAgICAgdGhpcy5fZWRpdEluc3Ry
dW1lbnRzQnV0dG9uLmVuYWJsZWQgPSAhV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5pc0Nh
cHR1cmluZygpOworICAgIH0KKworICAgIF91cGRhdGVXaGVlbEFuZEdlc3R1cmVIYW5kbGVycygp
CisgICAgeworICAgICAgICBpZiAodGhpcy5fZWRpdGluZ0luc3RydW1lbnRzKSB7CisgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLCB0aGlzLl9oYW5k
bGVXaGVlbEV2ZW50TGlzdGVuZXIpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2
ZW50TGlzdGVuZXIoImdlc3R1cmVzdGFydCIsIHRoaXMuX2hhbmRsZUdlc3R1cmVTdGFydEV2ZW50
TGlzdGVuZXIpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
Imdlc3R1cmVjaGFuZ2UiLCB0aGlzLl9oYW5kbGVHZXN0dXJlQ2hhbmdlRXZlbnRMaXN0ZW5lcik7
CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZWVu
ZCIsIHRoaXMuX2hhbmRsZUdlc3R1cmVFbmRFdmVudExpc3RlbmVyKTsKKyAgICAgICAgICAgIHRo
aXMuX2hhbmRsZVdoZWVsRXZlbnRMaXN0ZW5lciA9IG51bGw7CisgICAgICAgICAgICB0aGlzLl9o
YW5kbGVHZXN0dXJlU3RhcnRFdmVudExpc3RlbmVyID0gbnVsbDsKKyAgICAgICAgICAgIHRoaXMu
X2hhbmRsZUdlc3R1cmVDaGFuZ2VFdmVudExpc3RlbmVyID0gbnVsbDsKKyAgICAgICAgICAgIHRo
aXMuX2hhbmRsZUdlc3R1cmVFbmRFdmVudExpc3RlbmVyID0gbnVsbDsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHRoaXMuX2hhbmRsZVdoZWVsRXZlbnRMaXN0ZW5lciA9IHRoaXMuX2hh
bmRsZVdoZWVsRXZlbnQuYmluZCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2hhbmRsZUdlc3R1
cmVTdGFydEV2ZW50TGlzdGVuZXIgPSB0aGlzLl9oYW5kbGVHZXN0dXJlU3RhcnQuYmluZCh0aGlz
KTsKKyAgICAgICAgICAgIHRoaXMuX2hhbmRsZUdlc3R1cmVDaGFuZ2VFdmVudExpc3RlbmVyID0g
dGhpcy5faGFuZGxlR2VzdHVyZUNoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICAgICAgdGhpcy5f
aGFuZGxlR2VzdHVyZUVuZEV2ZW50TGlzdGVuZXIgPSB0aGlzLl9oYW5kbGVHZXN0dXJlRW5kLmJp
bmQodGhpcyk7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hl
ZWwiLCB0aGlzLl9oYW5kbGVXaGVlbEV2ZW50TGlzdGVuZXIpOworICAgICAgICAgICAgdGhpcy5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdlc3R1cmVzdGFydCIsIHRoaXMuX2hhbmRsZUdlc3R1
cmVTdGFydEV2ZW50TGlzdGVuZXIpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImdlc3R1cmVjaGFuZ2UiLCB0aGlzLl9oYW5kbGVHZXN0dXJlQ2hhbmdlRXZlbnRM
aXN0ZW5lcik7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2Vz
dHVyZWVuZCIsIHRoaXMuX2hhbmRsZUdlc3R1cmVFbmRFdmVudExpc3RlbmVyKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIF9zdGFydEVkaXRpbmdJbnN0cnVtZW50cygpCisgICAgeworICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl92aWV3TW9kZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXcuVmlld01vZGUuVGltZWxpbmVzKTsKKworICAgICAgICBpZiAodGhpcy5fZWRpdGlu
Z0luc3RydW1lbnRzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2VkaXRp
bmdJbnN0cnVtZW50cyA9IHRydWU7CisKKyAgICAgICAgZm9yIChsZXQgdHlwZSBvZiB0aGlzLl9p
bnN0cnVtZW50VHlwZXMpIHsKKyAgICAgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX3Ry
ZWVFbGVtZW50c0J5VHlwZU1hcC5nZXQodHlwZSk7CisgICAgICAgICAgICBsZXQgY2hlY2tlZCA9
ICEhdHJlZUVsZW1lbnQ7CisgICAgICAgICAgICBpZiAoIXRyZWVFbGVtZW50KSB7CisgICAgICAg
ICAgICAgICAgbGV0IHRpbWVsaW5lID0gdGhpcy5fcmVjb3JkaW5nLnRpbWVsaW5lcy5nZXQodHlw
ZSk7CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGltZWxpbmUsICJNaXNzaW5nIHRp
bWVsaW5lIGZvciB0eXBlICIgKyB0eXBlKTsKKworICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNl
aG9sZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVUcmVlRWxlbWVudCh0aW1lbGluZSwgcGxhY2Vob2xkZXIpOworCisgICAg
ICAgICAgICAgICAgbGV0IGluc2VydGlvbkluZGV4ID0gaW5zZXJ0aW9uSW5kZXhGb3JPYmplY3RJ
bkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKHRyZWVFbGVtZW50LCB0aGlzLl90aW1lbGluZXNUcmVlT3V0
bGluZS5jaGlsZHJlbiwgdGhpcy5fY29tcGFyZVRpbWVsaW5lVHJlZUVsZW1lbnRzLmJpbmQodGhp
cykpOworICAgICAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmluc2VydENo
aWxkKHRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHRyZWVFbGVtZW50LmVkaXRpbmcgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAg
dGhpcy5fZWRpdGluZ0luc3RydW1lbnRzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgX3N0b3BF
ZGl0aW5nSW5zdHJ1bWVudHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9lZGl0aW5nSW5z
dHJ1bWVudHMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fZWRpdGluZ0lu
c3RydW1lbnRzID0gZmFsc2U7CisKKyAgICAgICAgbGV0IGluc3RydW1lbnRzID0gdGhpcy5fcmVj
b3JkaW5nLmluc3RydW1lbnRzOworICAgICAgICBmb3IgKGxldCB0cmVlRWxlbWVudCBvZiB0aGlz
Ll90cmVlRWxlbWVudHNCeVR5cGVNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIGlmICh0cmVl
RWxlbWVudC5zdGF0dXMuY2hlY2tlZCkgeworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LmVk
aXRpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgbGV0IHRpbWVsaW5lSW5zdHJ1bWVudCA9IGluc3RydW1lbnRzLmZpbmQo
KGluc3RydW1lbnQpID0+IGluc3RydW1lbnQudGltZWxpbmVSZWNvcmRUeXBlID09PSB0cmVlRWxl
bWVudC5yZXByZXNlbnRlZE9iamVjdC50eXBlKTsKKyAgICAgICAgICAgIHRoaXMuX3JlY29yZGlu
Zy5yZW1vdmVJbnN0cnVtZW50KHRpbWVsaW5lSW5zdHJ1bWVudCk7CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgcGxhY2Vob2xkZXJUcmVlRWxlbWVudHMgPSB0aGlzLl90aW1lbGluZXNUcmVlT3V0
bGluZS5jaGlsZHJlbi5maWx0ZXIoKHRyZWVFbGVtZW50KSA9PiB0cmVlRWxlbWVudC5wbGFjZWhv
bGRlcik7CisgICAgICAgIGZvciAobGV0IHRyZWVFbGVtZW50IG9mIHBsYWNlaG9sZGVyVHJlZUVs
ZW1lbnRzKSB7CisgICAgICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZS5yZW1vdmVD
aGlsZCh0cmVlRWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5zdGF0dXMu
Y2hlY2tlZCkgeworICAgICAgICAgICAgICAgIGxldCBpbnN0cnVtZW50ID0gV2ViSW5zcGVjdG9y
Lkluc3RydW1lbnQuY3JlYXRlRm9yVGltZWxpbmVUeXBlKHRyZWVFbGVtZW50LnJlcHJlc2VudGVk
T2JqZWN0LnR5cGUpOworICAgICAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZy5hZGRJbnN0cnVt
ZW50KGluc3RydW1lbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbGV0
IGluc3RydW1lbnRUeXBlcyA9IGluc3RydW1lbnRzLm1hcCgoaW5zdHJ1bWVudCkgPT4gaW5zdHJ1
bWVudC50aW1lbGluZVJlY29yZFR5cGUpOworICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVN
YW5hZ2VyLmVuYWJsZWRJbnN0cnVtZW50VHlwZXMgPSBpbnN0cnVtZW50VHlwZXM7CisKKyAgICAg
ICAgdGhpcy5fZWRpdGluZ0luc3RydW1lbnRzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgX2Nh
cHR1cmluZ1N0YXJ0ZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRzQnV0
dG9uLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fc3RvcEVkaXRpbmdJbnN0cnVtZW50
cygpOworICAgIH0KKworICAgIF9jYXB0dXJpbmdTdG9wcGVkKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX2VkaXRJbnN0cnVtZW50c0J1dHRvbi5lbmFibGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBf
Y29tcGFyZVRpbWVsaW5lVHJlZUVsZW1lbnRzKGEsIGIpCisgICAgeworICAgICAgICBsZXQgYVRp
bWVsaW5lVHlwZSA9IGEucmVwcmVzZW50ZWRPYmplY3QudHlwZTsKKyAgICAgICAgbGV0IGJUaW1l
bGluZVR5cGUgPSBiLnJlcHJlc2VudGVkT2JqZWN0LnR5cGU7CisKKyAgICAgICAgLy8gQWx3YXlz
IHNvcnQgdGhlIFJlbmRlcmluZyBGcmFtZXMgdGltZWxpbmUgbGFzdC4KKyAgICAgICAgaWYgKGFU
aW1lbGluZVR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmlu
Z0ZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGlmIChiVGltZWxpbmVUeXBl
ID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZSkKKyAg
ICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBpZiAoYS5wbGFjZWhvbGRlciAhPT0gYi5w
bGFjZWhvbGRlcikKKyAgICAgICAgICAgIHJldHVybiBhLnBsYWNlaG9sZGVyID8gMSA6IC0xOwor
CisgICAgICAgIGxldCBhVGltZWxpbmVJbmRleCA9IHRoaXMuX2luc3RydW1lbnRUeXBlcy5pbmRl
eE9mKGFUaW1lbGluZVR5cGUpOworICAgICAgICBsZXQgYlRpbWVsaW5lSW5kZXggPSB0aGlzLl9p
bnN0cnVtZW50VHlwZXMuaW5kZXhPZihiVGltZWxpbmVUeXBlKTsKKyAgICAgICAgcmV0dXJuIGFU
aW1lbGluZUluZGV4IC0gYlRpbWVsaW5lSW5kZXg7CisgICAgfQogfTsKIAogV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcuU2Nyb2xsRGVsdGFEZW5vbWluYXRvciA9IDUwMDsKK1dlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3LkVkaXRJbnN0cnVtZW50c1N0eWxlQ2xhc3NOYW1lID0gImVk
aXQtaW5zdHJ1bWVudHMiOwogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5WaWV3TW9k
ZSA9IHsKICAgICBUaW1lbGluZXM6ICJ0aW1lbGluZS1vdmVydmlldy12aWV3LW1vZGUtdGltZWxp
bmVzIiwKQEAgLTc5OCw2ICs5NTYsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5W
aWV3TW9kZSA9IHsKIH07CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkV2ZW50ID0g
eworICAgIEVkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZTogImVkaXRpbmctaW5zdHJ1bWVudHMt
ZGlkLWNoYW5nZSIsCiAgICAgUmVjb3JkU2VsZWN0ZWQ6ICJ0aW1lbGluZS1vdmVydmlldy1yZWNv
cmQtc2VsZWN0ZWQiLAogICAgIFRpbWVsaW5lU2VsZWN0ZWQ6ICJ0aW1lbGluZS1vdmVydmlldy10
aW1lbGluZS1zZWxlY3RlZCIsCiAgICAgVGltZVJhbmdlU2VsZWN0aW9uQ2hhbmdlZDogInRpbWVs
aW5lLW92ZXJ2aWV3LXRpbWUtcmFuZ2Utc2VsZWN0aW9uLWNoYW5nZWQiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGlu
Z0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCmluZGV4IDg3ODEwMTRmMDAwYTlm
MGVkNTViOGNiMWQ3OWQ4N2U1ZGE1OTcyMGQuLmY3ZmNkNTFhMTFiN2NmZDNiNDM4MDJkNTlhODU2
OGIwYTY2ZTUxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVu
dFZpZXcuY3NzCkBAIC0zMCw2ICszMCwxNCBAQAogICAgIHJpZ2h0OiAwOwogfQogCisuY29udGVu
dC12aWV3LnRpbWVsaW5lLXJlY29yZGluZy5lZGl0LWluc3RydW1lbnRzID4gLnRpbWVsaW5lLW92
ZXJ2aWV3IHsKKyAgICBib3R0b206IDA7Cit9CisKKy5jb250ZW50LXZpZXcudGltZWxpbmUtcmVj
b3JkaW5nLmVkaXQtaW5zdHJ1bWVudHMgPiAuY29udGVudC1icm93c2VyIHsKKyAgICBkaXNwbGF5
OiBub25lOworfQorCiAuY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+IC5jb250ZW50
LWJyb3dzZXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBsZWZ0OiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVS
ZWNvcmRpbmdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKaW5kZXggZjYwODI1NDcz
NTJiZmI5YTNkZmI3ZWM2YzY2MjdlMjc2MTc4YTZmZS4uZDNjMWFkMTk0NTE1M2QzMWFlZDlkNjIz
YTM1YjE2ZWRhZTg3ZmNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LmpzCkBAIC0zOCw2ICszOCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBlCiAg
ICAgICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVGltZWxpbmVPdmVydmlldy5FdmVudC5UaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkLCB0aGlz
Ll90aW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgdGhpcy5fdGltZWxp
bmVPdmVydmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3
LkV2ZW50LlJlY29yZFNlbGVjdGVkLCB0aGlzLl9yZWNvcmRTZWxlY3RlZCwgdGhpcyk7CiAgICAg
ICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlldy5FdmVudC5UaW1lbGluZVNlbGVjdGVkLCB0aGlzLl90aW1lbGluZVNl
bGVjdGVkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkV2ZW50LkVkaXRpbmdJbnN0cnVt
ZW50c0RpZENoYW5nZSwgdGhpcy5fZWRpdGluZ0luc3RydW1lbnRzRGlkQ2hhbmdlLCB0aGlzKTsK
ICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcpOwogCiAgICAg
ICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7CkBAIC0xNjEsMTEgKzE2Miw2IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxp
bmVSZWNvcmRpbmdDb250ZW50VmlldyBlCiAgICAgICAgIHJldHVybiB0aGlzLl90aW1lbGluZUNv
bnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKICAgICB9CiAKLSAgICBnZXQgdGltZWxp
bmVPdmVydmlld0hlaWdodCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdGltZWxpbmVP
dmVydmlldy5oZWlnaHQ7Ci0gICAgfQotCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAgdGhp
cy5fdGltZWxpbmVPdmVydmlldy5zaG93bigpOwpAQCAtMzM2LDcgKzMzMiw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRp
bmdDb250ZW50VmlldyBlCiAgICAgICAgIGxldCBpY29uQ2xhc3NOYW1lOwogICAgICAgICBsZXQg
dGl0bGU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZSkgewotICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9IFdlYkluc3BlY3Rv
ci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZShyZXByZXNl
bnRlZE9iamVjdCk7CisgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lVGFiQ29udGVudFZpZXcuaWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lVHlwZShyZXByZXNl
bnRlZE9iamVjdC50eXBlKTsKICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJEZXRhaWxzIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpY29uQ2xhc3NO
YW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuU3RvcHdhdGNoSWNvblN0
eWxlQ2xhc3M7CkBAIC01OTksMTEgKzU5NSwxNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNv
cmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZQog
CiAgICAgX3VwZGF0ZVRpbWVsaW5lT3ZlcnZpZXdIZWlnaHQoKQogICAgIHsKLSAgICAgICAgY29u
c3QgcnVsZXJIZWlnaHQgPSAyMzsKLSAgICAgICAgCi0gICAgICAgIGxldCBzdHlsZVZhbHVlID0g
KHJ1bGVySGVpZ2h0ICsgdGhpcy50aW1lbGluZU92ZXJ2aWV3SGVpZ2h0KSArICJweCI7Ci0gICAg
ICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBzdHlsZVZh
bHVlOwotICAgICAgICB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLmVsZW1lbnQuc3R5bGUu
dG9wID0gc3R5bGVWYWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuZWRp
dGluZ0luc3RydW1lbnRzKQorICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5lbGVt
ZW50LnN0eWxlLmhlaWdodCA9ICIiOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNvbnN0
IHJ1bGVySGVpZ2h0ID0gMjM7CisKKyAgICAgICAgICAgIGxldCBzdHlsZVZhbHVlID0gKHJ1bGVy
SGVpZ2h0ICsgdGhpcy5fdGltZWxpbmVPdmVydmlldy5oZWlnaHQpICsgInB4IjsKKyAgICAgICAg
ICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBzdHlsZVZh
bHVlOworICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVDb250ZW50QnJvd3Nlci5lbGVtZW50LnN0
eWxlLnRvcCA9IHN0eWxlVmFsdWU7CisgICAgICAgIH0KICAgICB9CiAKICAgICBfaW5zdHJ1bWVu
dEFkZGVkKGluc3RydW1lbnRPckV2ZW50KQpAQCAtNjE4LDggKzYxOCw4IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdD
b250ZW50VmlldyBlCiAgICAgICAgIGlmICh0aW1lbGluZS50eXBlID09PSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZSkKICAgICAgICAgICAgIHRoaXMuX3Jl
bmRlcmluZ0ZyYW1lVGltZWxpbmUgPSB0aW1lbGluZTsKIAotICAgICAgICBsZXQgZGlzcGxheU5h
bWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5kaXNwbGF5TmFtZUZvclRp
bWVsaW5lKHRpbWVsaW5lKTsKLSAgICAgICAgbGV0IGljb25DbGFzc05hbWUgPSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5pY29uQ2xhc3NOYW1lRm9yVGltZWxpbmUodGltZWxp
bmUpOworICAgICAgICBsZXQgZGlzcGxheU5hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJD
b250ZW50Vmlldy5kaXNwbGF5TmFtZUZvclRpbWVsaW5lVHlwZSh0aW1lbGluZS50eXBlKTsKKyAg
ICAgICAgbGV0IGljb25DbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50
Vmlldy5pY29uQ2xhc3NOYW1lRm9yVGltZWxpbmVUeXBlKHRpbWVsaW5lLnR5cGUpOwogICAgICAg
ICBsZXQgcGF0aENvbXBvbmVudCA9IG5ldyBXZWJJbnNwZWN0b3IuSGllcmFyY2hpY2FsUGF0aENv
bXBvbmVudChkaXNwbGF5TmFtZSwgaWNvbkNsYXNzTmFtZSwgdGltZWxpbmUpOwogICAgICAgICBw
YXRoQ29tcG9uZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkhpZXJhcmNoaWNhbFBh
dGhDb21wb25lbnQuRXZlbnQuU2libGluZ1dhc1NlbGVjdGVkLCB0aGlzLl9wYXRoQ29tcG9uZW50
U2VsZWN0ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9wYXRoQ29tcG9uZW50TWFwLnNldCh0aW1l
bGluZSwgcGF0aENvbXBvbmVudCk7CkBAIC04MjEsNiArODIxLDE0IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50VmlldyBlCiAgICAgICAgIHRpbWVsaW5lVmlldy5zdGFydFRpbWUgPSB0aGlzLl90aW1lbGlu
ZU92ZXJ2aWV3LnNlbGVjdGlvblN0YXJ0VGltZTsKICAgICAgICAgdGltZWxpbmVWaWV3LmVuZFRp
bWUgPSBlbmRUaW1lOwogICAgIH0KKworICAgIF9lZGl0aW5nSW5zdHJ1bWVudHNEaWRDaGFuZ2Uo
ZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZWRpdGluZ0luc3RydW1lbnRzID0gdGhpcy5fdGlt
ZWxpbmVPdmVydmlldy5lZGl0aW5nSW5zdHJ1bWVudHM7CisgICAgICAgIHRoaXMuZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkVkaXRJbnN0cnVt
ZW50c1N0eWxlQ2xhc3NOYW1lLCBlZGl0aW5nSW5zdHJ1bWVudHMpOworCisgICAgICAgIHRoaXMu
X3VwZGF0ZVRpbWVsaW5lT3ZlcnZpZXdIZWlnaHQoKTsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0
b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5TZWxlY3RlZFRpbWVsaW5lVHlwZUNvb2tp
ZUtleSA9ICJ0aW1lbGluZS1yZWNvcmRpbmctY29udGVudC12aWV3LXNlbGVjdGVkLXRpbWVsaW5l
LXR5cGUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGltZWxpbmVUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVGFiQ29udGVudFZpZXcuanMKaW5kZXggY2Y3MjBk
ZjRkM2VhODYzNGRiMWRhZDMwNDA4MWIwNzJkYjRlZmY2OS4uZmIyZDczYWJhMjI0MjgxNzE0NDYw
NGFkN2Q5ZjAzNmI4Y2UxZjExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3
LmpzCkBAIC0xMDUsOSArMTA1LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZp
ZXcgPSBjbGFzcyBUaW1lbGluZVRhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW4KICAgICAgICAg
cmV0dXJuICEhd2luZG93LlRpbWVsaW5lQWdlbnQgfHwgISF3aW5kb3cuU2NyaXB0UHJvZmlsZXJB
Z2VudDsKICAgICB9CiAKLSAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JUaW1lbGluZSh0aW1lbGlu
ZSkKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JUaW1lbGluZVR5cGUodGltZWxpbmVUeXBlKQog
ICAgIHsKLSAgICAgICAgc3dpdGNoICh0aW1lbGluZS50eXBlKSB7CisgICAgICAgIHN3aXRjaCAo
dGltZWxpbmVUeXBlKSB7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
LlR5cGUuTmV0d29yazoKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
Ik5ldHdvcmsgUmVxdWVzdHMiKTsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmQuVHlwZS5MYXlvdXQ6CkBAIC0xMjEsMTUgKzEyMSwxNSBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVUYWJDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVudFZpZXcgZXh0ZW5k
cyBXZWJJbgogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkhl
YXBBbGxvY2F0aW9uczoKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkphdmFTY3JpcHQgQWxsb2NhdGlvbnMiKTsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
IGNvbnNvbGUuZXJyb3IoIlVua25vd24gVGltZWxpbmUgdHlwZToiLCB0aW1lbGluZS50eXBlKTsK
KyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gVGltZWxpbmUgdHlwZToiLCB0aW1l
bGluZVR5cGUpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCi0g
ICAgc3RhdGljIGljb25DbGFzc05hbWVGb3JUaW1lbGluZSh0aW1lbGluZSkKKyAgICBzdGF0aWMg
aWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lVHlwZSh0aW1lbGluZVR5cGUpCiAgICAgewotICAgICAg
ICBzd2l0Y2ggKHRpbWVsaW5lLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoICh0aW1lbGluZVR5cGUp
IHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3Jr
OgogICAgICAgICAgICAgcmV0dXJuICJuZXR3b3JrLWljb24iOwogICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dDoKQEAgLTE0NCwxNSArMTQ0LDE1IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVUYWJD
b250ZW50VmlldyBleHRlbmRzIFdlYkluCiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUmVjb3JkLlR5cGUuUmVuZGVyaW5nRnJhbWU6CiAgICAgICAgICAgICByZXR1cm4gInJlbmRl
cmluZy1mcmFtZS1pY29uIjsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbnNvbGUu
ZXJyb3IoIlVua25vd24gVGltZWxpbmUgdHlwZToiLCB0aW1lbGluZS50eXBlKTsKKyAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gVGltZWxpbmUgdHlwZToiLCB0aW1lbGluZVR5cGUp
OwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCi0gICAgc3RhdGlj
IGdlbmVyaWNDbGFzc05hbWVGb3JUaW1lbGluZSh0aW1lbGluZSkKKyAgICBzdGF0aWMgZ2VuZXJp
Y0NsYXNzTmFtZUZvclRpbWVsaW5lVHlwZSh0aW1lbGluZVR5cGUpCiAgICAgewotICAgICAgICBz
d2l0Y2ggKHRpbWVsaW5lLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoICh0aW1lbGluZVR5cGUpIHsK
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3JrOgog
ICAgICAgICAgICAgcmV0dXJuICJuZXR3b3JrIjsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQ6CkBAIC0xNjYsNyArMTY2LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVRhYkNvbnRlbnRWaWV3
IGV4dGVuZHMgV2ViSW4KICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQu
VHlwZS5SZW5kZXJpbmdGcmFtZToKICAgICAgICAgICAgIHJldHVybiAicmVuZGVyaW5nLWZyYW1l
IjsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24g
VGltZWxpbmUgdHlwZToiLCB0aW1lbGluZS50eXBlKTsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJy
b3IoIlVua25vd24gVGltZWxpbmUgdHlwZToiLCB0aW1lbGluZVR5cGUpOwogICAgICAgICB9CiAK
ICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUcmVlRWxlbWVudC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZGNhNmJlMDk0MDNiZDY2ZDNlNDA1NTdlYmMyZGIyY2RlYjgxNTAwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGlt
ZWxpbmVUcmVlRWxlbWVudC5qcwpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5z
cGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQgPSBjbGFzcyBUaW1lbGluZVRyZWVFbGVtZW50IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudAoreworICAgIGNvbnN0cnVjdG9y
KHRpbWVsaW5lLCBwbGFjZWhvbGRlcikKKyAgICB7CisgICAgICAgIGxldCBkaXNwbGF5TmFtZSA9
IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yVGltZWxp
bmVUeXBlKHRpbWVsaW5lLnR5cGUpOworICAgICAgICBsZXQgaWNvbkNsYXNzTmFtZSA9IFdlYklu
c3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZVR5
cGUodGltZWxpbmUudHlwZSk7CisgICAgICAgIGxldCBnZW5lcmljQ2xhc3NOYW1lID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZ2VuZXJpY0NsYXNzTmFtZUZvclRpbWVsaW5l
VHlwZSh0aW1lbGluZS50eXBlKTsKKworICAgICAgICBzdXBlcihbaWNvbkNsYXNzTmFtZSwgZ2Vu
ZXJpY0NsYXNzTmFtZV0sIGRpc3BsYXlOYW1lLCAiIiwgdGltZWxpbmUpOworCisgICAgICAgIHRo
aXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXIgfHwgZmFsc2U7CisgICAgICAgIHRoaXMuZWRp
dGluZyA9IHRoaXMuX3BsYWNlaG9sZGVyOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAg
Z2V0IHBsYWNlaG9sZGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRl
cjsKKyAgICB9CisKKyAgICBnZXQgZWRpdGluZygpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fZWRpdGluZzsKKyAgICB9CisKKyAgICBzZXQgZWRpdGluZyh4KQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX2VkaXRpbmcgPT09IHgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
dGhpcy5fZWRpdGluZyA9IHg7CisgICAgICAgIHRoaXMuc2VsZWN0YWJsZSA9ICF0aGlzLl9lZGl0
aW5nOworCisgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1c0J1dHRvbigpOworICAgIH0KKworICAg
IC8vIFByaXZhdGUKKworICAgIF9zaG93Q2xvc2VCdXR0b24oKQorICAgIHsKKyAgICAgICAgbGV0
IHRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3NlICVzIHRpbWVsaW5lIHZpZXci
KS5mb3JtYXQodGhpcy5tYWluVGl0bGUpOworICAgICAgICBsZXQgYnV0dG9uID0gbmV3IFdlYklu
c3BlY3Rvci5UcmVlRWxlbWVudFN0YXR1c0J1dHRvbih1c2VTVkdTeW1ib2woIkltYWdlcy9DbG9z
ZUxhcmdlLnN2ZyIsICJjbG9zZS1idXR0b24iLCB0b29sdGlwKSk7CisgICAgICAgIGJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlRWxlbWVudFN0YXR1c0J1dHRvbi5FdmVu
dC5DbGlja2VkLCAoKSA9PiB7IHRoaXMuZGVzZWxlY3QoKTsgfSk7CisKKyAgICAgICAgdGhpcy5z
dGF0dXMgPSBidXR0b24uZWxlbWVudDsKKyAgICB9CisKKyAgICBfc2hvd0NoZWNrYm94KCkKKyAg
ICB7CisgICAgICAgIGxldCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOworICAgICAgICBjaGVja2JveEVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7Cisg
ICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gIXRoaXMuX3BsYWNlaG9sZGVyOworCisg
ICAgICAgIGxldCBidXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50U3RhdHVzQnV0
dG9uKGNoZWNrYm94RWxlbWVudCk7CisgICAgICAgIHRoaXMuc3RhdHVzID0gY2hlY2tib3hFbGVt
ZW50OworICAgIH0KKworICAgIF91cGRhdGVTdGF0dXNCdXR0b24oKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX2VkaXRpbmcpCisgICAgICAgICAgICB0aGlzLl9zaG93Q2hlY2tib3goKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fc2hvd0Nsb3NlQnV0dG9uKCk7CisgICAgfQor
fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274603</attachid>
            <date>2016-03-21 10:59:34 -0700</date>
            <delta_ts>2016-03-22 10:59:54 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-153672-20160321105933.patch</filename>
            <type>text/plain</type>
            <size>48680</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBi
M2U5NDZmMzM4YmY2ZjZiMmM5MjQwY2M0ZmI3YTJlOTNhNGFjNTU1Li45M2E4ZTBmMTQ0MzQ2N2Q4
YjdhZWRjNjJhZGZmNTNiYzlhMTVlOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjEgQEAKKzIwMTYtMDMtMjEgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyBVSSByZWRlc2lnbjogUHJvdmlk
ZSBhIHdheSB0byBjb25maWd1cmUgd2hpY2ggaW5zdHJ1bWVudHMgdG8gdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2NzIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI0NDE3NTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgVUkgZm9yIGNvbmZpZ3VyaW5nIGEgdGltZWxpbmUgcmVjb3Jk
aW5nJ3MgaW5zdHJ1bWVudCBsaXN0LiBUaW1lbGluZU1hbmFnZXIKKyAgICAgICAgbWFpbnRhaW5z
IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCB0aW1lbGluZSB0eXBlcywgYW5kIHRyYWNrcyB0aGUgc3Vi
c2V0CisgICAgICAgIG9mIHVzZXItY29uZmlndXJlZCB0aW1lbGluZXMgd2hpY2ggYXJlIHVzZWQg
dG8gY3JlYXRlIHRoZSBpbnN0cnVtZW50IGxpc3QKKyAgICAgICAgdGhhdCBpcyBwYXNzZWQgdG8g
bmV3IHJlY29yZGluZ3MuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanM6CisgICAgICAgIE5ldyBzdHJpbmdzIGZvciAiRWRpdCIgVGltZWxpbmVz
IGJ1dHRvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVN
YW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlcik6CisgICAg
ICAgIEFkZGVkIHNldHRpbmcgZm9yIHVzZXItY29uZmlndXJlZCAoZW5hYmxlZCkgdGltZWxpbmUg
dHlwZXMuCisgICAgICAgIEluaXRpYWxpemVkIHRvIHRoZSBkZWZhdWx0IHRpbWVsaW5lIHR5cGVz
LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLmRlZmF1bHRUaW1lbGlu
ZVR5cGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuYXZhaWxhYmxl
VGltZWxpbmVUeXBlcyk6CisgICAgICAgIEdldCB0aGUgbGlzdCBvZiBhbGwgc3VwcG9ydGVkIHRp
bWVsaW5lIHR5cGVzLCB3aGljaCBpcyBhIHN1cGVyc2V0CisgICAgICAgIG9mIHRoZSBsaXN0IG9m
IGRlZmF1bHQgdGltZWxpbmUgdHlwZXMuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU1hbmFnZXIucHJvdG90eXBlLmdldCBlbmFibGVkVGltZWxpbmVUeXBlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5zZXQgZW5hYmxlZFRpbWVsaW5l
VHlwZXMpOgorICAgICAgICBMaXN0IG9mIHVzZXItY29uZmlndXJlZCB0aW1lbGluZSB0eXBlcywg
YmFja2VkIGJ5IGEgU2V0dGluZy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFn
ZXIucHJvdG90eXBlLl9sb2FkTmV3UmVjb3JkaW5nKToKKyAgICAgICAgQ3JlYXRlIG5ldyByZWNv
cmRpbmdzIHdpdGggdGhlIGN1cnJlbnQgdXNlci1jb25maWd1cmVkIGluc3RydW1lbnQgbGlzdC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuZGVmYXVsdEluc3RydW1lbnRz
KTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCBkZWZhdWx0VGltZWxpbmVUeXBlcy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICBOZXcgY2xhc3MsIFRpbWVs
aW5lVHJlZUVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9JbnN0cnVt
ZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkluc3RydW1lbnQuY3JlYXRlRm9yVGltZWxp
bmVUeXBlKToKKyAgICAgICAgRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIEluc3RydW1lbnRz
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcpOgorICAgICAgICBSZXBs
YWNlIGZpeGVkIGluc3RydW1lbnQgbGlzdCB3aXRoIFRpbWVsaW5lTWFuYWdlcidzIGxpc3QuCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmluc3RydW1l
bnRGb3JUaW1lbGluZSk6CisgICAgICAgIEdldCB0aGUgaW5zdHJ1bWVudCBpbiB0aGUgcmVjb3Jk
aW5nIGZvciBhIGdpdmVuIHRpbWVsaW5lLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UmVjb3JkaW5nLnByb3RvdHlwZS5hZGRJbnN0cnVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUucmVtb3ZlSW5zdHJ1bWVudCk6CisgICAgICAg
IERyaXZlLWJ5IHN5bnRheCBlcnJvciBmaXhlczogQXJyYXkucHJvdG90eXBlLmNvbnRhaW5zIGRv
ZXNuJ3QgZXhpc3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3Zl
cnZpZXcuY3NzOgorICAgICAgICAoLnRpbWVsaW5lLW92ZXJ2aWV3ID4gLm5hdmlnYXRpb24tYmFy
LnRpbWVsaW5lcyk6CisgICAgICAgICgubmF2aWdhdGlvbi1iYXIudGltZWxpbmVzIC5pdGVtLmJ1
dHRvbi50b2dnbGUtZWRpdC1pbnN0cnVtZW50czpub3QoLmRpc2FibGVkKTptYXRjaGVzKDpmb2N1
cywgLmFjdGl2YXRlLmFjdGl2YXRlZCwgLnJhZGlvLnNlbGVjdGVkKSk6CisgICAgICAgICgubmF2
aWdhdGlvbi1iYXIudGltZWxpbmVzIC5pdGVtLmJ1dHRvbi50b2dnbGUtZWRpdC1pbnN0cnVtZW50
czpub3QoLmRpc2FibGVkKTphY3RpdmU6bWF0Y2hlcyg6Zm9jdXMsIC5hY3RpdmF0ZS5hY3RpdmF0
ZWQsIC5yYWRpby5zZWxlY3RlZCkpOgorICAgICAgICAoLm5hdmlnYXRpb24tYmFyLnRpbWVsaW5l
cyAuaXRlbS5idXR0b24udG9nZ2xlLWVkaXQtaW5zdHJ1bWVudHMuZGlzYWJsZWQpOgorICAgICAg
ICAoLm5hdmlnYXRpb24tYmFyLnRpbWVsaW5lcyAudG9nZ2xlLWVkaXQtaW5zdHJ1bWVudHM6bm90
KC5kaXNhYmxlZCk6YWN0aXZlKToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldyA+IC50cmVl
LW91dGxpbmUudGltZWxpbmVzKToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy5lZGl0LWlu
c3RydW1lbnRzID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMpOgorICAgICAgICAoLnRpbWVsaW5l
LW92ZXJ2aWV3LmVkaXQtaW5zdHJ1bWVudHMgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyAuaXRl
bS5zZWxlY3RlZCk6CisgICAgICAgICgudGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5l
LnRpbWVsaW5lcyBpbnB1dFt0eXBlPWNoZWNrYm94XS5zdGF0dXMtYnV0dG9uKToKKyAgICAgICAg
KC50aW1lbGluZS1vdmVydmlldy5mcmFtZXMgPiA6bWF0Y2hlcygudHJlZS1vdXRsaW5lLnRpbWVs
aW5lcywgLm5hdmlnYXRpb24tYmFyLnRpbWVsaW5lcykpOgorICAgICAgICAoLnRpbWVsaW5lLW92
ZXJ2aWV3ID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXM6OmJlZm9yZSk6IERlbGV0ZWQuCisgICAg
ICAgICgudGltZWxpbmUtb3ZlcnZpZXcuZnJhbWVzID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMp
OiBEZWxldGVkLgorICAgICAgICBTdHlsZXMgZm9yIHRoZSAiRWRpdCIgbmF2aWdhdGlvbiBiYXIg
YWJvdmUgdGhlIHRpbWVsaW5lcyB0cmVlIG91dGxpbmUsCisgICAgICAgIGFuZCB0cmVlIGVsZW1l
bnQgc3R5bGVzIGZvciBzaG93aW5nIGNoZWNrYm94ZXMgYW5kIGhpZGluZyB0aGUgY3VycmVudAor
ICAgICAgICBzZWxlY3Rpb24gd2hpbGUgaW4gZWRpdCBtb2RlLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcpOgorICAgICAgICBDcmVhdGUgIkVkaXQiIGJ1dHRvbiBhbmQgbmF2
aWdhdGlvbiBiYXIgYW5kIGFkZCBldmVudCBoYW5kbGVycyBmb3IKKyAgICAgICAgY2FwdHVyaW5n
IGV2ZW50cywgc28gdGhhdCB0aW1lbGluZSBlZGl0aW5nIGNhbiBiZSBjbG9zZWQgYW5kCisgICAg
ICAgIGRpc2FibGVkIHdoZW4gY2FwdHVyaW5nIGJlZ2lucy4KKworICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZFRpbWVsaW5lKToKKyAg
ICAgICAgUHJldmVudCB0aW1lbGluZSBzZWxlY3Rpb24gd2hpbGUgaW4gZWRpdCBtb2RlLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLmdldCBlZGl0aW5n
SW5zdHJ1bWVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJv
dG90eXBlLnNldCB2aWV3TW9kZSk6CisgICAgICAgIFByZXZlbnQgdmlldyBtb2RlIGNoYW5nZSB3
aGlsZSBpbiBlZGl0IG1vZGUuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3LnByb3RvdHlwZS5faW5zdHJ1bWVudEFkZGVkKToKKyAgICAgICAgQ3JlYXRlIGEgVGltZWxp
bmVUcmVlRWxlbWVudCwgYW5kIGluc2VydCBpbnRvIHRoZSB0cmVlIG91dGxpbmUgYW5kIGdyYXBo
CisgICAgICAgIGNvbnRhaW5lciBpbiBzb3J0ZWQgb3JkZXIgaW5zdGVhZCBvZiBhcHBlbmRpbmcg
dGltZWxpbmUgZWxlbWVudHMuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3LnByb3RvdHlwZS5fdG9nZ2xlRWRpdGluZ0luc3RydW1lbnRzKToKKyAgICAgICAgSGFuZGxl
ciBmb3IgRWRpdCBidXR0b24gY2xpY2sgZXZlbnQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlldy5wcm90b3R5cGUuX2VkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZSk6Cisg
ICAgICAgIFVwZGF0ZSBVSSBpbiByZXNwb25zZSB0byBlZGl0aW5nIG1vZGUgY2hhbmdlOiB0b2dn
bGUgQ1NTLCBlbmFibGUvZGlzYWJsZQorICAgICAgICB0aGUgdGltZWxpbmUgcnVsZXIgYW5kIHdo
ZWVsL2dlc3R1cmUgZXZlbnRzLCBhbmQgdXBkYXRlIEVkaXQgYnV0dG9uIGFwcGVhcmFuY2UuCisK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnByb3RvdHlwZS5fdXBkYXRl
RWRpdEluc3RydW1lbnRzQnV0dG9uKToKKyAgICAgICAgVXBkYXRlIGxhYmVsIHRleHQgYW5kIGJ1
dHRvbiBzdGF0ZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnByb3Rv
dHlwZS5fdXBkYXRlV2hlZWxBbmRHZXN0dXJlSGFuZGxlcnMpOgorICAgICAgICBBZGQvcmVtb3Zl
IGV2ZW50IGhhbmRsZXJzIGJhc2VkIG9uIGVkaXRpbmcgc3RhdGUuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nSW5zdHJ1bWVu
dHMpOgorICAgICAgICBFbmFibGUgZWRpdCBtb2RlIFVJLiBQbGFjZWhvbGRlciBlbGVtZW50cyBh
cmUgYWRkZWQgZm9yIHRpbWVsaW5lcyB0aGF0CisgICAgICAgIGFyZW4ndCBpbmNsdWRlZCBpbiB0
aGUgcmVjb3JkaW5nLCBhbmQgYWxsIHRyZWUgZWxlbWVudHMgaGF2ZSBjaGVja2JveGVzCisgICAg
ICAgIGZvciB0b2dnbGluZyB0aGVpciBhc3NvY2lhdGVkIHRpbWVsaW5lcy4KKworICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9zdG9wRWRpdGluZ0luc3Ry
dW1lbnRzKToKKyAgICAgICAgRGlzYWJsZSBlZGl0IG1vZGUgVUkuIFVuY2hlY2tlZCBpbnN0cnVt
ZW50cyBhcmUgZmlyc3QgcmVtb3ZlZCBmcm9tIHRoZQorICAgICAgICByZWNvcmRpbmcsIHRoZW4g
cGxhY2Vob2xkZXIgdHJlZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCwgYW5kIHRoZWlyIGluc3RydW1l
bnRzCisgICAgICAgIGFkZGVkLCBhcyBuZWVkZWQuIFRpbWVsaW5lTWFuYWdlcidzIGxpc3Qgb2Yg
dXNlci1jb25maWd1cmVkIHRpbWVsaW5lIHR5cGVzCisgICAgICAgIGlzIHRoZW4gdXBkYXRlZC4K
KworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9jYXB0
dXJpbmdTdGFydGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnBy
b3RvdHlwZS5fY2FwdHVyaW5nU3RvcHBlZCk6CisgICAgICAgIEVuYWJsZS9kaXNhYmxlIHRoZSBF
ZGl0IGJ1dHRvbi4gUXVpdCBlZGl0aW5nIG1vZGUgd2hlbiBjYXB0dXJpbmcgc3RhcnRzLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9jb21wYXJlVGlt
ZWxpbmVUcmVlRWxlbWVudHMpOgorICAgICAgICBTcGVjaWFsIHNvcnRpbmcgZm9yIHRoZSB0aW1l
bGluZXMgdHJlZSBvdXRsaW5lLiBUaGUgc29ydCBvcmRlciBpczoKKyAgICAgICAgICAgIDEuIElu
c3RydW1lbnRzIHRoYXQgYXJlIGluIHRoZSByZWNvcmRpbmcsIGV4Y2VwdCBSZW5kZXJpbmcgRnJh
bWVzLgorICAgICAgICAgICAgMi4gSW5zdHJ1bWVudHMgdGhhdCBhcmVuJ3QgaW4gdGhlIHJlY29y
ZGluZyAocGxhY2Vob2xkZXJzKS4KKyAgICAgICAgICAgIDMuIFJlbmRlcmluZyBGcmFtZXMuCisK
KyAgICAgICAgVGltZWxpbmVzIGluIGdyb3VwcyAxICYgMiBhcmUgc29ydGVkIGJhc2VkIG9uIHRo
ZSBvcmRlciBvZiB0aGUgbGlzdCByZXR1cm5lZAorICAgICAgICBieSBUaW1lbGluZU1hbmFnZXIu
YXZhaWxhYmxlVGltZWxpbmVUeXBlcygpLiBUaGUgUmVuZGVyaW5nIEZyYW1lcyB0cmVlCisgICAg
ICAgIGVsZW1lbnQgbXVzdCBiZSBsYXN0LCBzaW5jZSBpdCdzIGFsd2F5cyBoaWRkZW4gYW5kIHdv
dWxkIG90aGVyd2lzZSBpbnRlcmZlcmUKKyAgICAgICAgd2l0aCB0aGUgYWx0ZXJuYXRpbmcgdHJl
ZSBlbGVtZW50IENTUyBzdHlsZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Rp
bWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy50
aW1lbGluZS1yZWNvcmRpbmcuZWRpdC1pbnN0cnVtZW50cyA+IC50aW1lbGluZS1vdmVydmlldyk6
CisgICAgICAgICguY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZy5lZGl0LWluc3RydW1l
bnRzID4gLmNvbnRlbnQtYnJvd3Nlcik6CisgICAgICAgIEhpZGUgbG93ZXIgY29udGVudCBicm93
c2VyIGFuZCBleHRlbmQgdGltZWxpbmVzIHRyZWUgaGVpZ2h0IGluIGVkaXQgbW9kZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3KToK
KyAgICAgICAgTGlzdGVuIGZvciBlZGl0IG1vZGUgY2hhbmdlcyBvbiBUaW1lbGluZU92ZXJ2aWV3
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJv
dG90eXBlLmNvbnRlbnRCcm93c2VyVHJlZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5
cGUuX3VwZGF0ZVRpbWVsaW5lT3ZlcnZpZXdIZWlnaHQpOgorICAgICAgICBXaGVuIGluIGVkaXQg
bW9kZSwgcmVtb3ZlIGlubGluZSBzdHlsZSBydWxlIGZvciBUaW1lbGluZU92ZXJ2aWV3IGhlaWdo
dC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5faW5zdHJ1bWVudEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fZWRpdGluZ0luc3RydW1lbnRzRGlkQ2hh
bmdlKToKKyAgICAgICAgVXBkYXRlIENTUyBhbmQgVGltZWxpbmVPdmVydmlldyBoZWlnaHQgd2hl
biBlZGl0IG1vZGUgY2hhbmdlcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdGltZWxpbmVPdmVydmlld0hlaWdodCk6IERl
bGV0ZWQuCisgICAgICAgIE5vIGxvbmdlciB1c2VkLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZGlzcGxheU5hbWVGb3JUaW1lbGluZVR5cGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuaWNvbkNsYXNzTmFtZUZv
clRpbWVsaW5lVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50
Vmlldy5nZW5lcmljQ2xhc3NOYW1lRm9yVGltZWxpbmVUeXBlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yVGltZWxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuaWNvbkNs
YXNzTmFtZUZvclRpbWVsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVRhYkNvbnRlbnRWaWV3LmdlbmVyaWNDbGFzc05hbWVGb3JUaW1lbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgbm93IHRha2UgYSB0aW1lbGluZSB0eXBlIGluc3Rl
YWQgb2YgYSB0aW1lbGluZSBvYmplY3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lVHJlZUVsZW1lbnQuanM6IEFkZGVkLgorICAgICAgICBOZXcgdHJlZSBlbGVtZW50
IGNsYXNzIHRvIGVuY2Fwc3VsYXRlIGJlaGF2aW9yIHNwZWNpZmljIHRvIHRoZSB0aW1lbGluZXMK
KyAgICAgICAgdHJlZSBvdXRsaW5lLCBzdWNoIGFzIHN0YXR1cyBlbGVtZW50IGNoYW5nZXMgYW5k
IGRpc2FibGluZyBzZWxlY3Rpb24KKyAgICAgICAgd2hlbiBlZGl0aW5nLgorCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IHBsYWNlaG9sZGVyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgZWRpdGluZyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUcmVlRWxlbWVudC5wcm90b3R5cGUuc2V0
IGVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQucHJv
dG90eXBlLl9zaG93Q2xvc2VCdXR0b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
VHJlZUVsZW1lbnQucHJvdG90eXBlLl9zaG93Q2hlY2tib3gpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVTdGF0dXNCdXR0b24pOgor
CiAyMDE2LTAzLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gRGV0ZXJtaW5lIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SIGZyb20gTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUIHJhdGhlciB0aGFuIGZyb20gTUFDX09TX1hfVkVSU0lPTl9NQUpP
UgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRp
b25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjBmNTQ1MjEyZDAyNmM4YzE4
NThjNWQ4MTM5ZTE1MTRhYzFjZWVhMy4uZTkxMmQxMTFiOWIzNDQ5NzM3NmRmNWI2ZjQzMjk1Zjg3
N2MxZWJjZSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxMzYKemNtYlBuZ1owKWUpKHpG
PWxObD5TQ08yMj5ZJVZRZCVfelctJSNoRUokQkBSNSQmaylhJTF8XnAhQiVgU1p2X2BXCm15NyZp
cSk2TD9RRHMjbVg4T2ooXjg1RlEtbG5pRlRCQDVLUC1CT0o0ZWtjR0NORzQ8ZQoKZGVsdGEgMzcK
dmNtVis9ME5WZkIrNjk9ezErYVR9bGooT0JsVDh4fWxafC1fditIK3owa2g8Sjg9YmQoN1hqVD5S
e0lmQQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCBkZWYxYmQzYjMx
ZTc4ODNjMzRmMzlhN2MwYzVlYTUwZGU5YzVhMjlmLi5mYTAxMzEyN2JhZTUzNzFjNWM5OGJmNzky
NTY0NDY4Nzk3OTgxY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBA
IC0zNiw2ICszNiw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1l
bGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5oZWFwTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5IZWFwTWFuYWdl
ci5FdmVudC5HYXJiYWdlQ29sbGVjdGVkLCB0aGlzLl9nYXJiYWdlQ29sbGVjdGVkLCB0aGlzKTsK
ICAgICAgICAgV2ViSW5zcGVjdG9yLm1lbW9yeU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuTWVtb3J5TWFuYWdlci5FdmVudC5NZW1vcnlQcmVzc3VyZSwgdGhpcy5fbWVtb3J5
UHJlc3N1cmUsIHRoaXMpOwogCisgICAgICAgIHRoaXMuX2VuYWJsZWRUaW1lbGluZVR5cGVzU2V0
dGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygiZW5hYmxlZC1pbnN0cnVtZW50LXR5cGVz
IiwgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5kZWZhdWx0VGltZWxpbmVUeXBlcygpKTsK
KwogICAgICAgICB0aGlzLl9wZXJzaXN0ZW50TmV0d29ya1RpbWVsaW5lID0gbmV3IFdlYkluc3Bl
Y3Rvci5OZXR3b3JrVGltZWxpbmU7CiAKICAgICAgICAgdGhpcy5faXNDYXB0dXJpbmcgPSBmYWxz
ZTsKQEAgLTUxLDMxICs1Myw0MCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xh
c3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgLy8g
U3RhdGljCiAKLSAgICBzdGF0aWMgZGVmYXVsdEluc3RydW1lbnRzKCkKKyAgICBzdGF0aWMgZGVm
YXVsdFRpbWVsaW5lVHlwZXMoKQogICAgIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1
Z2dhYmxlVHlwZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2FibGVUeXBlLkphdmFTY3JpcHQpIHsK
LSAgICAgICAgICAgIGxldCBkZWZhdWx0cyA9IFtuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEluc3Ry
dW1lbnRdOworICAgICAgICAgICAgbGV0IGRlZmF1bHRUeXBlcyA9IFtXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHRdOwogICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5I
ZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50LnN1cHBvcnRlZCgpKQotICAgICAgICAgICAgICAgIGRl
ZmF1bHRzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5IZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50KTsK
LSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0czsKKyAgICAgICAgICAgICAgICBkZWZhdWx0VHlw
ZXMucHVzaChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5IZWFwQWxsb2NhdGlvbnMp
OworICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRUeXBlczsKICAgICAgICAgfQogCi0gICAgICAg
IGxldCBkZWZhdWx0cyA9IFsKLSAgICAgICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya0lu
c3RydW1lbnQsCi0gICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLkxheW91dEluc3RydW1lbnQs
Ci0gICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEluc3RydW1lbnQsCisgICAgICAg
IGxldCBkZWZhdWx0VHlwZXMgPSBbCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmQuVHlwZS5OZXR3b3JrLAorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkLlR5cGUuTGF5b3V0LAorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
LlR5cGUuU2NyaXB0LAogICAgICAgICBdOwogCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuRlBT
SW5zdHJ1bWVudC5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIGRlZmF1bHRUeXBlcy5wdXNoKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmluZ0ZyYW1lKTsKKworICAgICAg
ICByZXR1cm4gZGVmYXVsdFR5cGVzOworICAgIH0KKworICAgIHN0YXRpYyBhdmFpbGFibGVUaW1l
bGluZVR5cGVzKCkKKyAgICB7CisgICAgICAgIGxldCB0eXBlcyA9IFdlYkluc3BlY3Rvci5UaW1l
bGluZU1hbmFnZXIuZGVmYXVsdFRpbWVsaW5lVHlwZXMoKTsKKyAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dhYmxlVHlwZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2FibGVUeXBlLkphdmFT
Y3JpcHQpCisgICAgICAgICAgICByZXR1cm4gdHlwZXM7CisKICAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5NZW1vcnlJbnN0cnVtZW50LnN1cHBvcnRlZCgpKQotICAgICAgICAgICAgZGVmYXVsdHMu
cHVzaChuZXcgV2ViSW5zcGVjdG9yLk1lbW9yeUluc3RydW1lbnQpOworICAgICAgICAgICAgdHlw
ZXMucHVzaChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5NZW1vcnkpOwogCiAgICAg
ICAgIGlmIChXZWJJbnNwZWN0b3IuSGVhcEFsbG9jYXRpb25zSW5zdHJ1bWVudC5zdXBwb3J0ZWQo
KSkKLSAgICAgICAgICAgIGRlZmF1bHRzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5IZWFwQWxsb2Nh
dGlvbnNJbnN0cnVtZW50KTsKLQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkZQU0luc3RydW1l
bnQuc3VwcG9ydGVkKCkpCi0gICAgICAgICAgICBkZWZhdWx0cy5wdXNoKG5ldyBXZWJJbnNwZWN0
b3IuRlBTSW5zdHJ1bWVudCk7CisgICAgICAgICAgICB0eXBlcy5wdXNoKFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0aW9ucyk7CiAKLSAgICAgICAgcmV0dXJuIGRl
ZmF1bHRzOworICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBA
IC0xMTksNiArMTMwLDE3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBU
aW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMu
X2F1dG9DYXB0dXJlT25QYWdlTG9hZCA9IGF1dG9DYXB0dXJlOwogICAgIH0KIAorICAgIGdldCBl
bmFibGVkVGltZWxpbmVUeXBlcygpCisgICAgeworICAgICAgICBsZXQgYXZhaWxhYmxlVGltZWxp
bmVUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuYXZhaWxhYmxlVGltZWxpbmVU
eXBlcygpOworICAgICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFRpbWVsaW5lVHlwZXNTZXR0aW5n
LnZhbHVlLmZpbHRlcigodHlwZSkgPT4gYXZhaWxhYmxlVGltZWxpbmVUeXBlcy5pbmNsdWRlcyh0
eXBlKSk7CisgICAgfQorCisgICAgc2V0IGVuYWJsZWRUaW1lbGluZVR5cGVzKHgpCisgICAgewor
ICAgICAgICB0aGlzLl9lbmFibGVkVGltZWxpbmVUeXBlc1NldHRpbmcudmFsdWUgPSB4IHx8IFtd
OworICAgIH0KKwogICAgIGlzQ2FwdHVyaW5nKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlz
Ll9pc0NhcHR1cmluZzsKQEAgLTU0NiwxMiArNTY4LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
TWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKICAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZVJlY29yZGluZyAmJiB0aGlzLl9hY3RpdmVSZWNv
cmRpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIEZJWE1F
OiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUzNjcyPiBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZXMg
VUkgcmVkZXNpZ246IFByb3ZpZGUgYSB3YXkgdG8gY29uZmlndXJlIHdoaWNoIGluc3RydW1lbnRz
IHRvIHVzZQotICAgICAgICAvLyBGSVhNRTogTW92ZSB0aGUgbGlzdCBvZiBpbnN0cnVtZW50cyBm
b3IgYSBuZXcgcmVjb3JkaW5nIHRvIGEgU2V0dGluZyB3aGVuIG5ldyBJbnN0cnVtZW50cyBhcmUg
c3VwcG9ydGVkLgotICAgICAgICBsZXQgaW5zdHJ1bWVudHMgPSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVNYW5hZ2VyLmRlZmF1bHRJbnN0cnVtZW50cygpOwotCi0gICAgICAgIHZhciBpZGVudGlmaWVy
ID0gdGhpcy5fbmV4dFJlY29yZGluZ0lkZW50aWZpZXIrKzsKLSAgICAgICAgdmFyIG5ld1JlY29y
ZGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcoaWRlbnRpZmllciwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJUaW1lbGluZSBSZWNvcmRpbmcgJWQiKS5mb3JtYXQoaWRlbnRp
ZmllciksIGluc3RydW1lbnRzKTsKKyAgICAgICAgbGV0IGluc3RydW1lbnRzID0gdGhpcy5lbmFi
bGVkVGltZWxpbmVUeXBlcy5tYXAoKHR5cGUpID0+IFdlYkluc3BlY3Rvci5JbnN0cnVtZW50LmNy
ZWF0ZUZvclRpbWVsaW5lVHlwZSh0eXBlKSk7CisgICAgICAgIGxldCBpZGVudGlmaWVyID0gdGhp
cy5fbmV4dFJlY29yZGluZ0lkZW50aWZpZXIrKzsKKyAgICAgICAgbGV0IG5ld1JlY29yZGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcoaWRlbnRpZmllciwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJUaW1lbGluZSBSZWNvcmRpbmcgJWQiKS5mb3JtYXQoaWRlbnRpZmllciks
IGluc3RydW1lbnRzKTsKIAogICAgICAgICB0aGlzLl9yZWNvcmRpbmdzLnB1c2gobmV3UmVjb3Jk
aW5nKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTWFuYWdlci5FdmVudC5SZWNvcmRpbmdDcmVhdGVkLCB7cmVjb3JkaW5nOiBuZXdS
ZWNvcmRpbmd9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4u
aHRtbAppbmRleCAwZjdmZDM3MzZiYTBjNmZiM2VhNGVmZjhjOWE1ZDMxZTkyODhkYzQ1Li4wNjRj
YTM0YTE1NGQ4YmI3OTdiYTc2NDMxNGQ1NzRmYTFlZmYyZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC00MjUsNiArNDI1LDcgQEAKICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvU3RvcmFnZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvVGltZWxpbmVPdmVydmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL1RpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZVRyZWVFbGVtZW50LmpzIj48L3Njcmlw
dD4KIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9EZWJ1Z2dlclRhYkNvbnRlbnRWaWV3Lmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9JbnN0cnVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0luc3RydW1lbnQuanMKaW5kZXggYjczODVhNjJmZTk2ODA1ZWNhYjU4ODA3
NGEwMjI2NTI4NjgzNTgyMC4uNTc0ZGRhNmFkYzU5ZmFlYjc1NDUwMzNlMDU1ZjI5ZGRlYTA2YTFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0luc3RydW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0luc3RydW1lbnQuanMKQEAgLTI3LDYgKzI3LDI3IEBAIFdlYkluc3BlY3Rvci5JbnN0
cnVtZW50ID0gY2xhc3MgSW5zdHJ1bWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIHsK
ICAgICAvLyBTdGF0aWMKIAorICAgIHN0YXRpYyBjcmVhdGVGb3JUaW1lbGluZVR5cGUodHlwZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZC5UeXBlLk5ldHdvcms6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdl
Ykluc3BlY3Rvci5OZXR3b3JrSW5zdHJ1bWVudDsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQ6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYklu
c3BlY3Rvci5MYXlvdXRJbnN0cnVtZW50OworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZC5UeXBlLlNjcmlwdDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVj
dG9yLlNjcmlwdEluc3RydW1lbnQ7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UmVjb3JkLlR5cGUuUmVuZGVyaW5nRnJhbWU6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYklu
c3BlY3Rvci5GUFNJbnN0cnVtZW50OworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJlY29yZC5UeXBlLk1lbW9yeToKKyAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
Lk1lbW9yeUluc3RydW1lbnQ7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkLlR5cGUuSGVhcEFsbG9jYXRpb25zOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcEFsbG9jYXRpb25zSW5zdHJ1bWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gVGltZWxpbmVSZWNvcmQuVHlwZTogIiArIHR5
cGUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKICAgICBz
dGF0aWMgc3RhcnRMZWdhY3lUaW1lbGluZUFnZW50KCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHdpbmRvdy5UaW1lbGluZUFnZW50LCAiQXR0ZW1wdGVkIHRvIHN0YXJ0IGxlZ2FjeSB0
aW1lbGluZSBhZ2VudCB3aXRob3V0IFRpbWVsaW5lQWdlbnQuIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVS
ZWNvcmRpbmcuanMKaW5kZXggZmEyMzQ1ZmViMDk3M2U5NTk3ZTg3YWE2YzE0MmUyMWNkN2E3NjIw
ZS4uOTMyNTY4ZDk1MGM5ODkxOWVkN2M3YTkxYTNiZDJmMzMwYTk2M2I5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3Jk
aW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9U
aW1lbGluZVJlY29yZGluZy5qcwpAQCAtMzgsMTYgKzM4LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2IKICAgICAgICAgdGhpcy5fdG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlKFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRy
ZWUuVHlwZS5Ub3BEb3duKTsKICAgICAgICAgdGhpcy5fYm90dG9tVXBDYWxsaW5nQ29udGV4dFRy
ZWUgPSBuZXcgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZShXZWJJbnNwZWN0b3IuQ2Fs
bGluZ0NvbnRleHRUcmVlLlR5cGUuQm90dG9tVXApOwogCi0gICAgICAgIGxldCB0aW1lbGluZXMg
PSBbCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3Jr
LAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5b3V0LAot
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0LAotICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuUmVuZGVyaW5nRnJhbWUs
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5NZW1vcnksCi0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5IZWFwQWxsb2NhdGlv
bnMsCi0gICAgICAgIF07Ci0KLSAgICAgICAgZm9yIChsZXQgdHlwZSBvZiB0aW1lbGluZXMpIHsK
KyAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLmF2
YWlsYWJsZVRpbWVsaW5lVHlwZXMoKSkgewogICAgICAgICAgICAgbGV0IHRpbWVsaW5lID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lLmNyZWF0ZSh0eXBlKTsKICAgICAgICAgICAgIHRoaXMuX3RpbWVs
aW5lcy5zZXQodHlwZSwgdGltZWxpbmUpOwogICAgICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmUuRXZlbnQuVGltZXNVcGRhdGVkLCB0aGlzLl90
aW1lbGluZVRpbWVzVXBkYXRlZCwgdGhpcyk7CkBAIC0xOTYsNiArMTg3LDExIEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iCiAgICAgICAgIHJldHVybiB0aGlzLl90aW1lbGluZXMuZ2V0KGluc3Ry
dW1lbnQudGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICB9CiAKKyAgICBpbnN0cnVtZW50Rm9yVGlt
ZWxpbmUodGltZWxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHJ1bWVudHMu
ZmluZCgoaW5zdHJ1bWVudCkgPT4gaW5zdHJ1bWVudC50aW1lbGluZVJlY29yZFR5cGUgPT09IHRp
bWVsaW5lLnR5cGUpOworICAgIH0KKwogICAgIHRpbWVsaW5lRm9yUmVjb3JkVHlwZShyZWNvcmRU
eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lcy5nZXQocmVjb3JkVHlw
ZSk7CkBAIC0yMDQsNyArMjAwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nID0g
Y2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKICAgICBhZGRJ
bnN0cnVtZW50KGluc3RydW1lbnQpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChpbnN0
cnVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluc3RydW1lbnQsIGluc3RydW1lbnQpOwot
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5faW5zdHJ1bWVudHMuY29udGFpbnMoaW5zdHJ1
bWVudCksIHRoaXMuX2luc3RydW1lbnRzLCBpbnN0cnVtZW50KTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoIXRoaXMuX2luc3RydW1lbnRzLmluY2x1ZGVzKGluc3RydW1lbnQpLCB0aGlzLl9pbnN0
cnVtZW50cywgaW5zdHJ1bWVudCk7CiAKICAgICAgICAgdGhpcy5faW5zdHJ1bWVudHMucHVzaChp
bnN0cnVtZW50KTsKIApAQCAtMjE0LDcgKzIxMCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
CiAgICAgcmVtb3ZlSW5zdHJ1bWVudChpbnN0cnVtZW50KQogICAgIHsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoaW5zdHJ1bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5JbnN0cnVtZW50LCBp
bnN0cnVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5faW5zdHJ1bWVudHMuY29u
dGFpbnMoaW5zdHJ1bWVudCksIHRoaXMuX2luc3RydW1lbnRzLCBpbnN0cnVtZW50KTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQodGhpcy5faW5zdHJ1bWVudHMuaW5jbHVkZXMoaW5zdHJ1bWVudCks
IHRoaXMuX2luc3RydW1lbnRzLCBpbnN0cnVtZW50KTsKIAogICAgICAgICB0aGlzLl9pbnN0cnVt
ZW50cy5yZW1vdmUoaW5zdHJ1bWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5jc3MKaW5k
ZXggMTc4ZmZmNWQ2OTI5MmU2ODM4MDIzZmIyYmI3MjE4NzRkMGI3YzBiMC4uNzI4YjI3OTAxZjRh
YjgwYTZjMTdmNGQ1N2Y1Y2VmMTU2ZTg2Yzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5j
c3MKQEAgLTIzLDMxICsyMyw1NSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS50aW1lbGluZS1vdmVydmlldyA+IC50cmVlLW91dGxpbmUudGltZWxpbmVzIHsK
Ky50aW1lbGluZS1vdmVydmlldyA+IC5uYXZpZ2F0aW9uLWJhci50aW1lbGluZXMgeworICAgIGp1
c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAg
dG9wOiAwOwogICAgIGxlZnQ6IDA7CiAgICAgd2lkdGg6IDE4NXB4OworICAgIGhlaWdodDogMjNw
eDsKKworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgei1pbmRleDogdmFyKC0tei1p
bmRleC1oZWFkZXIpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhbmVsLWJhY2tncm91
bmQtY29sb3IpOworCisgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICAgYm9yZGVyLXJp
Z2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLm5hdmlnYXRpb24tYmFyLnRpbWVs
aW5lcyAuaXRlbS5idXR0b24udG9nZ2xlLWVkaXQtaW5zdHJ1bWVudHM6bm90KC5kaXNhYmxlZCk6
bWF0Y2hlcyg6Zm9jdXMsIC5hY3RpdmF0ZS5hY3RpdmF0ZWQsIC5yYWRpby5zZWxlY3RlZCkgewor
ICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworfQorCisubmF2aWdhdGlvbi1i
YXIudGltZWxpbmVzIC5pdGVtLmJ1dHRvbi50b2dnbGUtZWRpdC1pbnN0cnVtZW50czpub3QoLmRp
c2FibGVkKTphY3RpdmU6bWF0Y2hlcyg6Zm9jdXMsIC5hY3RpdmF0ZS5hY3RpdmF0ZWQsIC5yYWRp
by5zZWxlY3RlZCkgeworICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUtcHJlc3Nl
ZCk7Cit9CisKKy5uYXZpZ2F0aW9uLWJhci50aW1lbGluZXMgLml0ZW0uYnV0dG9uLnRvZ2dsZS1l
ZGl0LWluc3RydW1lbnRzLmRpc2FibGVkIHsKKyAgICBjb2xvcjogdmFyKC0tZ2x5cGgtY29sb3It
ZGlzYWJsZWQpOwogfQogCi0udGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVs
aW5lczo6YmVmb3JlIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBjb250ZW50OiAiIjsKKy5u
YXZpZ2F0aW9uLWJhci50aW1lbGluZXMgLnRvZ2dsZS1lZGl0LWluc3RydW1lbnRzOm5vdCguZGlz
YWJsZWQpOmFjdGl2ZSB7CisgICAgY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLXByZXNzZWQpOwor
fQorCisudGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMjNweDsKICAgICBsZWZ0OiAwOwotICAgIHRv
cDogMDsKICAgICB3aWR0aDogMTg1cHg7Ci0gICAgaGVpZ2h0OiAyM3B4OwotICAgIGJveC1zaXpp
bmc6IGJvcmRlci1ib3g7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgICAgei1pbmRl
eDogdmFyKC0tei1pbmRleC1oZWFkZXIpOworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBh
bmVsLWJhY2tncm91bmQtY29sb3IpOwogICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigt
LWJvcmRlci1jb2xvcik7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRl
ci1jb2xvcik7CiB9CiAKLS50aW1lbGluZS1vdmVydmlldy5mcmFtZXMgPiAudHJlZS1vdXRsaW5l
LnRpbWVsaW5lcyB7Ci0gICAgZGlzcGxheTogbm9uZTsKKy50aW1lbGluZS1vdmVydmlldy5lZGl0
LWluc3RydW1lbnRzID4gLnRyZWUtb3V0bGluZS50aW1lbGluZXMgeworICAgIGJvdHRvbTogMDsK
K30KKworLnRpbWVsaW5lLW92ZXJ2aWV3LmVkaXQtaW5zdHJ1bWVudHMgPiAudHJlZS1vdXRsaW5l
LnRpbWVsaW5lcyAuaXRlbS5zZWxlY3RlZCB7CisgICAgY29sb3I6IGluaXRpYWw7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiB9CiAKIC50aW1lbGluZS1vdmVydmlldyA+IC50
cmVlLW91dGxpbmUudGltZWxpbmVzIC5jbG9zZS1idXR0b24gewpAQCAtNjAsMTEgKzg0LDE4IEBA
CiAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKIH0KIAorLnRpbWVsaW5lLW92ZXJ2aWV3ID4gLnRy
ZWUtb3V0bGluZS50aW1lbGluZXMgaW5wdXRbdHlwZT1jaGVja2JveF0uc3RhdHVzLWJ1dHRvbiB7
CisgICAgd2lkdGg6IDEycHg7CisgICAgaGVpZ2h0OiAxMnB4OworfQorCisudGltZWxpbmUtb3Zl
cnZpZXcuZWRpdC1pbnN0cnVtZW50cyA+IC50cmVlLW91dGxpbmUudGltZWxpbmVzIC5pdGVtOm50
aC1jaGlsZChldmVuKSwKIC50aW1lbGluZS1vdmVydmlldyA+IC50cmVlLW91dGxpbmUudGltZWxp
bmVzIC5pdGVtOm5vdCguc2VsZWN0ZWQpOm50aC1jaGlsZChldmVuKSB7CiAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaHNsYSgwLCAwJSwgMCUsIDAuMDMpOwogICAgIGJhY2tncm91bmQtY2xpcDogcGFk
ZGluZy1ib3g7CiB9CiAKKy50aW1lbGluZS1vdmVydmlldy5lZGl0LWluc3RydW1lbnRzID4gLnRy
ZWUtb3V0bGluZS50aW1lbGluZXMgLml0ZW06bm90KDpmaXJzdC1jaGlsZCksCiAudGltZWxpbmUt
b3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyAuaXRlbTpub3QoLnNlbGVjdGVkKTpu
b3QoOmZpcnN0LWNoaWxkKSB7CiAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGhzbGEoMCwgMCUs
IDAlLCAwLjA5KTsKIH0KQEAgLTk1LDYgKzEyNiwxMCBAQCBib2R5LndpbmRvdy1pbmFjdGl2ZSAu
dGltZWxpbmUtb3ZlcnZpZXcgPiAudHJlZS1vdXRsaW5lLnRpbWVsaW5lcyAuaXRlbS5zZWxlY3Rl
ZAogICAgIHotaW5kZXg6IGNhbGModmFyKC0tei1pbmRleC1yZXNpemVyKSArIDEpOwogfQogCisu
dGltZWxpbmUtb3ZlcnZpZXcuZnJhbWVzID4gOm1hdGNoZXMoLnRyZWUtb3V0bGluZS50aW1lbGlu
ZXMsIC5uYXZpZ2F0aW9uLWJhci50aW1lbGluZXMpIHsKKyAgICBkaXNwbGF5OiBub25lOworfQor
CiAudGltZWxpbmUtb3ZlcnZpZXcuZnJhbWVzID4gLnNjcm9sbC1jb250YWluZXIgewogICAgIGxl
ZnQ6IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5qcwppbmRleCAyNTJhNTdlYzkwNzM5MGM1
YmM4MTg1ZDEyZmE5N2Y4ZTExNzc1YzljLi4yNWY5YzI3YTEwZGEzMGFmMTg0ZjRiODk4N2YzNzI4
NDFiZGEzNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanMKQEAgLTMyLDYgKzMyLDcgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgY29uc29sZS5hc3NlcnQodGltZWxpbmVS
ZWNvcmRpbmcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcpOwogCiAg
ICAgICAgIHRoaXMuX3RpbWVsaW5lc1ZpZXdNb2RlU2V0dGluZ3MgPSB0aGlzLl9jcmVhdGVWaWV3
TW9kZVNldHRpbmdzKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LlZpZXdNb2RlLlRpbWVs
aW5lcywgMC4wMDAxLCA2MCwgMC4wMSwgMCwgMTUpOworICAgICAgICB0aGlzLl9pbnN0cnVtZW50
VHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLmF2YWlsYWJsZVRpbWVsaW5lVHlw
ZXMoKTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkZQU0luc3RydW1lbnQuc3VwcG9ydGVk
KCkpIHsKICAgICAgICAgICAgIGxldCBtaW5pbXVtRHVyYXRpb25QZXJQaXhlbCA9IDEgLyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSZWNvcmRGcmFtZS5NYXhpbXVtV2lkdGhQaXhlbHM7CkBAIC00OCwx
MCArNDksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVsaW5l
T3ZlcnZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICB0aGlzLl9kZWxlZ2F0
ZSA9IGRlbGVnYXRlOwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1l
bGluZS1vdmVydmlldyIpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
d2hlZWwiLCB0aGlzLl9oYW5kbGVXaGVlbEV2ZW50LmJpbmQodGhpcykpOwotICAgICAgICB0aGlz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0IiwgdGhpcy5faGFuZGxlR2Vz
dHVyZVN0YXJ0LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZ2VzdHVyZWNoYW5nZSIsIHRoaXMuX2hhbmRsZUdlc3R1cmVDaGFuZ2UuYmluZCh0aGlz
KSk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlZW5kIiwg
dGhpcy5faGFuZGxlR2VzdHVyZUVuZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fdXBkYXRl
V2hlZWxBbmRHZXN0dXJlSGFuZGxlcnMoKTsKIAogICAgICAgICB0aGlzLl9ncmFwaHNDb250YWlu
ZXJWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3OwogICAgICAgICB0aGlzLl9ncmFwaHNDb250
YWluZXJWaWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGhzLWNvbnRhaW5lciIpOwpAQCAt
NTksNiArNTcsMTYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1l
bGluZU92ZXJ2aWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKIAogICAgICAgICB0aGlzLl9v
dmVydmlld0dyYXBoc0J5VHlwZU1hcCA9IG5ldyBNYXA7CiAKKyAgICAgICAgdGhpcy5fZWRpdElu
c3RydW1lbnRzQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJ0b2dnbGUtZWRpdC1pbnN0cnVtZW50cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RWRpdCBjb25maWd1cmF0aW9uIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2ZSBjb25maWd1
cmF0aW9uIikpOworICAgICAgICB0aGlzLl9lZGl0SW5zdHJ1bWVudHNCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwg
dGhpcy5fdG9nZ2xlRWRpdGluZ0luc3RydW1lbnRzLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZWRp
dGluZ0luc3RydW1lbnRzID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3VwZGF0ZUVkaXRJbnN0cnVt
ZW50c0J1dHRvbigpOworCisgICAgICAgIGxldCBpbnN0cnVtZW50c05hdmlnYXRpb25CYXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25CYXI7CisgICAgICAgIGluc3RydW1lbnRzTmF2aWdh
dGlvbkJhci5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWVsaW5lcyIpOworICAgICAgICBpbnN0
cnVtZW50c05hdmlnYXRpb25CYXIuYWRkTmF2aWdhdGlvbkl0ZW0odGhpcy5fZWRpdEluc3RydW1l
bnRzQnV0dG9uKTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGluc3RydW1lbnRzTmF2aWdhdGlv
bkJhcik7CisKICAgICAgICAgdGhpcy5fdGltZWxpbmVzVHJlZU91dGxpbmUgPSBuZXcgV2ViSW5z
cGVjdG9yLlRyZWVPdXRsaW5lOwogICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZS5l
bGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWVsaW5lcyIpOwogICAgICAgICB0aGlzLl90aW1lbGlu
ZXNUcmVlT3V0bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOwpAQCAtMTA2LDYgKzExNCw5
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVPdmVydmll
dyBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgICAgICB0aGlzLl9yZXNldFNlbGVj
dGlvbigpOwogCiAgICAgICAgIHRoaXMuX3ZpZXdNb2RlRGlkQ2hhbmdlKCk7CisKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1hbmFnZXIuRXZlbnQuQ2FwdHVyaW5nU3RhcnRlZCwgdGhpcy5fY2FwdHVyaW5n
U3RhcnRlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmlu
Z1N0b3BwZWQsIHRoaXMuX2NhcHR1cmluZ1N0b3BwZWQsIHRoaXMpOwogICAgIH0KIAogICAgIC8v
IFB1YmxpYwpAQCAtMTE3LDYgKzEyOCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3
ID0gY2xhc3MgVGltZWxpbmVPdmVydmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAKICAg
ICBzZXQgc2VsZWN0ZWRUaW1lbGluZSh4KQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VkaXRp
bmdJbnN0cnVtZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAodGhpcy5f
c2VsZWN0ZWRUaW1lbGluZSA9PT0geCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTMyLDYg
KzE0NiwxMSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVsaW5l
T3ZlcnZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICAgICAgdGhpcy5fdGlt
ZWxpbmVzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudC5kZXNlbGVjdCgpOwogICAgIH0K
IAorICAgIGdldCBlZGl0aW5nSW5zdHJ1bWVudHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2VkaXRpbmdJbnN0cnVtZW50czsKKyAgICB9CisKICAgICBnZXQgdmlld01vZGUoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdNb2RlOwpAQCAtMTM5LDYgKzE1OCw5IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVPdmVydmlldyBleHRl
bmRzIFdlYkluc3BlY3Rvci5WaWV3CiAKICAgICBzZXQgdmlld01vZGUoeCkKICAgICB7CisgICAg
ICAgIGlmICh0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHMpCisgICAgICAgICAgICByZXR1cm47CisK
ICAgICAgICAgaWYgKHRoaXMuX3ZpZXdNb2RlID09PSB4KQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC01ODgsMjYgKzYxMCwxOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldyA9IGNs
YXNzIFRpbWVsaW5lT3ZlcnZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICBj
b25zb2xlLmFzc2VydCghdGhpcy5fb3ZlcnZpZXdHcmFwaHNCeVR5cGVNYXAuaGFzKHRpbWVsaW5l
LnR5cGUpLCB0aW1lbGluZSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl90cmVlRWxl
bWVudHNCeVR5cGVNYXAuaGFzKHRpbWVsaW5lLnR5cGUpLCB0aW1lbGluZSk7CiAKKyAgICAgICAg
bGV0IHRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVRyZWVFbGVtZW50KHRp
bWVsaW5lKTsKKyAgICAgICAgbGV0IGluc2VydGlvbkluZGV4ID0gaW5zZXJ0aW9uSW5kZXhGb3JP
YmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKHRyZWVFbGVtZW50LCB0aGlzLl90aW1lbGluZXNU
cmVlT3V0bGluZS5jaGlsZHJlbiwgdGhpcy5fY29tcGFyZVRpbWVsaW5lVHJlZUVsZW1lbnRzLmJp
bmQodGhpcykpOworICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZS5pbnNlcnRDaGls
ZCh0cmVlRWxlbWVudCwgaW5zZXJ0aW9uSW5kZXgpOworICAgICAgICB0aGlzLl90cmVlRWxlbWVu
dHNCeVR5cGVNYXAuc2V0KHRpbWVsaW5lLnR5cGUsIHRyZWVFbGVtZW50KTsKKwogICAgICAgICBs
ZXQgb3ZlcnZpZXdHcmFwaCA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3R3JhcGguY3Jl
YXRlRm9yVGltZWxpbmUodGltZWxpbmUsIHRoaXMpOwogICAgICAgICBvdmVydmlld0dyYXBoLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5FdmVudC5S
ZWNvcmRTZWxlY3RlZCwgdGhpcy5fcmVjb3JkU2VsZWN0ZWQsIHRoaXMpOwogICAgICAgICB0aGlz
Ll9vdmVydmlld0dyYXBoc0J5VHlwZU1hcC5zZXQodGltZWxpbmUudHlwZSwgb3ZlcnZpZXdHcmFw
aCk7CisgICAgICAgIHRoaXMuX2dyYXBoc0NvbnRhaW5lclZpZXcuaW5zZXJ0U3Vidmlld0JlZm9y
ZShvdmVydmlld0dyYXBoLCB0aGlzLl9ncmFwaHNDb250YWluZXJWaWV3LnN1YnZpZXdzW2luc2Vy
dGlvbkluZGV4XSk7CiAKLSAgICAgICAgdGhpcy5fZ3JhcGhzQ29udGFpbmVyVmlldy5hZGRTdWJ2
aWV3KG92ZXJ2aWV3R3JhcGgpOwotCi0gICAgICAgIGxldCBkaXNwbGF5TmFtZSA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yVGltZWxpbmUodGltZWxp
bmUpOwotICAgICAgICBsZXQgaWNvbkNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVRh
YkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZSh0aW1lbGluZSk7Ci0gICAgICAg
IGxldCBnZW5lcmljQ2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZp
ZXcuZ2VuZXJpY0NsYXNzTmFtZUZvclRpbWVsaW5lKHRpbWVsaW5lKTsKLSAgICAgICAgbGV0IHRy
ZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQoW2ljb25DbGFz
c05hbWUsIGdlbmVyaWNDbGFzc05hbWVdLCBkaXNwbGF5TmFtZSwgbnVsbCwgdGltZWxpbmUpOwot
ICAgICAgICBsZXQgdG9vbHRpcCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xvc2UgJXMgdGlt
ZWxpbmUgdmlldyIpLmZvcm1hdChkaXNwbGF5TmFtZSk7Ci0gICAgICAgIGxldCBidXR0b24gPSBu
ZXcgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50U3RhdHVzQnV0dG9uKHVzZVNWR1N5bWJvbCgiSW1h
Z2VzL0Nsb3NlTGFyZ2Uuc3ZnIiwgImNsb3NlLWJ1dHRvbiIsIHRvb2x0aXApKTsKLSAgICAgICAg
YnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50U3RhdHVzQnV0
dG9uLkV2ZW50LkNsaWNrZWQsICgpID0+IHsgdHJlZUVsZW1lbnQuZGVzZWxlY3QoKTsgfSk7Ci0g
ICAgICAgIHRyZWVFbGVtZW50LnN0YXR1cyA9IGJ1dHRvbi5lbGVtZW50OwotCi0gICAgICAgIHRo
aXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRyZWVFbGVtZW50KTsKICAgICAg
ICAgdHJlZUVsZW1lbnQuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBvdmVydmlld0dyYXBoLmhlaWdo
dCArICJweCI7CiAKLSAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRzQnlUeXBlTWFwLnNldCh0aW1l
bGluZS50eXBlLCB0cmVlRWxlbWVudCk7Ci0KICAgICAgICAgaWYgKCF0aGlzLl9jYW5TaG93VGlt
ZWxpbmVUeXBlKHRpbWVsaW5lLnR5cGUpKSB7CiAgICAgICAgICAgICBvdmVydmlld0dyYXBoLmhp
ZGRlbigpOwogICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKQEAgLTc4OCw5
ICs4MDIsMTUzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxp
bmVPdmVydmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMuX3NlbGVj
dGVkVGltZWxpbmUgPSB0aW1lbGluZTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcuRXZlbnQuVGltZWxpbmVTZWxlY3Rl
ZCk7CiAgICAgfQorCisgICAgX3RvZ2dsZUVkaXRpbmdJbnN0cnVtZW50cyhldmVudCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHMpCisgICAgICAgICAgICB0aGlz
Ll9zdG9wRWRpdGluZ0luc3RydW1lbnRzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX3N0YXJ0RWRpdGluZ0luc3RydW1lbnRzKCk7CisgICAgfQorCisgICAgX2VkaXRpbmdJbnN0
cnVtZW50c0RpZENoYW5nZSgpCisgICAgeworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZShXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5FZGl0SW5zdHJ1bWVudHNTdHls
ZUNsYXNzTmFtZSwgdGhpcy5fZWRpdGluZ0luc3RydW1lbnRzKTsKKyAgICAgICAgdGhpcy5fdGlt
ZWxpbmVSdWxlci5lbmFibGVkID0gIXRoaXMuX2VkaXRpbmdJbnN0cnVtZW50czsKKworICAgICAg
ICB0aGlzLl91cGRhdGVXaGVlbEFuZEdlc3R1cmVIYW5kbGVycygpOworICAgICAgICB0aGlzLl91
cGRhdGVFZGl0SW5zdHJ1bWVudHNCdXR0b24oKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5FdmVudC5FZGl0aW5n
SW5zdHJ1bWVudHNEaWRDaGFuZ2UpOworICAgIH0KKworICAgIF91cGRhdGVFZGl0SW5zdHJ1bWVu
dHNCdXR0b24oKQorICAgIHsKKyAgICAgICAgbGV0IG5ld0xhYmVsID0gdGhpcy5fZWRpdGluZ0lu
c3RydW1lbnRzID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb25lIikgOiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkVkaXQiKTsKKyAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRzQnV0dG9uLmxh
YmVsID0gbmV3TGFiZWw7CisgICAgICAgIHRoaXMuX2VkaXRJbnN0cnVtZW50c0J1dHRvbi5hY3Rp
dmF0ZWQgPSB0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHM7CisgICAgICAgIHRoaXMuX2VkaXRJbnN0
cnVtZW50c0J1dHRvbi5lbmFibGVkID0gIVdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaXND
YXB0dXJpbmcoKTsKKyAgICB9CisKKyAgICBfdXBkYXRlV2hlZWxBbmRHZXN0dXJlSGFuZGxlcnMo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50cykgeworICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIiwgdGhpcy5faGFu
ZGxlV2hlZWxFdmVudExpc3RlbmVyKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVF
dmVudExpc3RlbmVyKCJnZXN0dXJlc3RhcnQiLCB0aGlzLl9oYW5kbGVHZXN0dXJlU3RhcnRFdmVu
dExpc3RlbmVyKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCJnZXN0dXJlY2hhbmdlIiwgdGhpcy5faGFuZGxlR2VzdHVyZUNoYW5nZUV2ZW50TGlzdGVuZXIp
OworICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdlc3R1cmVl
bmQiLCB0aGlzLl9oYW5kbGVHZXN0dXJlRW5kRXZlbnRMaXN0ZW5lcik7CisgICAgICAgICAgICB0
aGlzLl9oYW5kbGVXaGVlbEV2ZW50TGlzdGVuZXIgPSBudWxsOworICAgICAgICAgICAgdGhpcy5f
aGFuZGxlR2VzdHVyZVN0YXJ0RXZlbnRMaXN0ZW5lciA9IG51bGw7CisgICAgICAgICAgICB0aGlz
Ll9oYW5kbGVHZXN0dXJlQ2hhbmdlRXZlbnRMaXN0ZW5lciA9IG51bGw7CisgICAgICAgICAgICB0
aGlzLl9oYW5kbGVHZXN0dXJlRW5kRXZlbnRMaXN0ZW5lciA9IG51bGw7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVXaGVlbEV2ZW50TGlzdGVuZXIgPSB0aGlzLl9o
YW5kbGVXaGVlbEV2ZW50LmJpbmQodGhpcyk7CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVHZXN0
dXJlU3RhcnRFdmVudExpc3RlbmVyID0gdGhpcy5faGFuZGxlR2VzdHVyZVN0YXJ0LmJpbmQodGhp
cyk7CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVHZXN0dXJlQ2hhbmdlRXZlbnRMaXN0ZW5lciA9
IHRoaXMuX2hhbmRsZUdlc3R1cmVDaGFuZ2UuYmluZCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMu
X2hhbmRsZUdlc3R1cmVFbmRFdmVudExpc3RlbmVyID0gdGhpcy5faGFuZGxlR2VzdHVyZUVuZC5i
aW5kKHRoaXMpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndo
ZWVsIiwgdGhpcy5faGFuZGxlV2hlZWxFdmVudExpc3RlbmVyKTsKKyAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlc3RhcnQiLCB0aGlzLl9oYW5kbGVHZXN0
dXJlU3RhcnRFdmVudExpc3RlbmVyKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJnZXN0dXJlY2hhbmdlIiwgdGhpcy5faGFuZGxlR2VzdHVyZUNoYW5nZUV2ZW50
TGlzdGVuZXIpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdl
c3R1cmVlbmQiLCB0aGlzLl9oYW5kbGVHZXN0dXJlRW5kRXZlbnRMaXN0ZW5lcik7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBfc3RhcnRFZGl0aW5nSW5zdHJ1bWVudHMoKQorICAgIHsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQodGhpcy5fdmlld01vZGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3LlZpZXdNb2RlLlRpbWVsaW5lcyk7CisKKyAgICAgICAgaWYgKHRoaXMuX2VkaXRp
bmdJbnN0cnVtZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9lZGl0
aW5nSW5zdHJ1bWVudHMgPSB0cnVlOworCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgdGhpcy5f
aW5zdHJ1bWVudFR5cGVzKSB7CisgICAgICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl90
cmVlRWxlbWVudHNCeVR5cGVNYXAuZ2V0KHR5cGUpOworICAgICAgICAgICAgbGV0IGNoZWNrZWQg
PSAhIXRyZWVFbGVtZW50OworICAgICAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkgeworICAgICAg
ICAgICAgICAgIGxldCB0aW1lbGluZSA9IHRoaXMuX3JlY29yZGluZy50aW1lbGluZXMuZ2V0KHR5
cGUpOworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVsaW5lLCAiTWlzc2luZyB0
aW1lbGluZSBmb3IgdHlwZSAiICsgdHlwZSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCBwbGFj
ZWhvbGRlciA9IHRydWU7CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lVHJlZUVsZW1lbnQodGltZWxpbmUsIHBsYWNlaG9sZGVyKTsKKworICAg
ICAgICAgICAgICAgIGxldCBpbnNlcnRpb25JbmRleCA9IGluc2VydGlvbkluZGV4Rm9yT2JqZWN0
SW5MaXN0U29ydGVkQnlGdW5jdGlvbih0cmVlRWxlbWVudCwgdGhpcy5fdGltZWxpbmVzVHJlZU91
dGxpbmUuY2hpbGRyZW4sIHRoaXMuX2NvbXBhcmVUaW1lbGluZVRyZWVFbGVtZW50cy5iaW5kKHRo
aXMpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZS5pbnNlcnRD
aGlsZCh0cmVlRWxlbWVudCwgaW5zZXJ0aW9uSW5kZXgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB0cmVlRWxlbWVudC5lZGl0aW5nID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZSgpOworICAgIH0KKworICAgIF9zdG9w
RWRpdGluZ0luc3RydW1lbnRzKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fZWRpdGluZ0lu
c3RydW1lbnRzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2VkaXRpbmdJ
bnN0cnVtZW50cyA9IGZhbHNlOworCisgICAgICAgIGxldCBpbnN0cnVtZW50cyA9IHRoaXMuX3Jl
Y29yZGluZy5pbnN0cnVtZW50czsKKyAgICAgICAgZm9yIChsZXQgdHJlZUVsZW1lbnQgb2YgdGhp
cy5fdHJlZUVsZW1lbnRzQnlUeXBlTWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAodHJl
ZUVsZW1lbnQuc3RhdHVzLmNoZWNrZWQpIHsKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5l
ZGl0aW5nID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGxldCB0aW1lbGluZUluc3RydW1lbnQgPSBpbnN0cnVtZW50cy5maW5k
KChpbnN0cnVtZW50KSA9PiBpbnN0cnVtZW50LnRpbWVsaW5lUmVjb3JkVHlwZSA9PT0gdHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3QudHlwZSk7CisgICAgICAgICAgICB0aGlzLl9yZWNvcmRp
bmcucmVtb3ZlSW5zdHJ1bWVudCh0aW1lbGluZUluc3RydW1lbnQpOworICAgICAgICB9CisKKyAg
ICAgICAgbGV0IHBsYWNlaG9sZGVyVHJlZUVsZW1lbnRzID0gdGhpcy5fdGltZWxpbmVzVHJlZU91
dGxpbmUuY2hpbGRyZW4uZmlsdGVyKCh0cmVlRWxlbWVudCkgPT4gdHJlZUVsZW1lbnQucGxhY2Vo
b2xkZXIpOworICAgICAgICBmb3IgKGxldCB0cmVlRWxlbWVudCBvZiBwbGFjZWhvbGRlclRyZWVF
bGVtZW50cykgeworICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVzVHJlZU91dGxpbmUucmVtb3Zl
Q2hpbGQodHJlZUVsZW1lbnQpOworCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuc3RhdHVz
LmNoZWNrZWQpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW5zdHJ1bWVudCA9IFdlYkluc3BlY3Rv
ci5JbnN0cnVtZW50LmNyZWF0ZUZvclRpbWVsaW5lVHlwZSh0cmVlRWxlbWVudC5yZXByZXNlbnRl
ZE9iamVjdC50eXBlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmcuYWRkSW5zdHJ1
bWVudChpbnN0cnVtZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxl
dCBpbnN0cnVtZW50VHlwZXMgPSBpbnN0cnVtZW50cy5tYXAoKGluc3RydW1lbnQpID0+IGluc3Ry
dW1lbnQudGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5l
TWFuYWdlci5lbmFibGVkVGltZWxpbmVUeXBlcyA9IGluc3RydW1lbnRUeXBlczsKKworICAgICAg
ICB0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHNEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBfY2Fw
dHVyaW5nU3RhcnRlZCgpCisgICAgeworICAgICAgICB0aGlzLl9lZGl0SW5zdHJ1bWVudHNCdXR0
b24uZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9zdG9wRWRpdGluZ0luc3RydW1lbnRz
KCk7CisgICAgfQorCisgICAgX2NhcHR1cmluZ1N0b3BwZWQoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fZWRpdEluc3RydW1lbnRzQnV0dG9uLmVuYWJsZWQgPSB0cnVlOworICAgIH0KKworICAgIF9j
b21wYXJlVGltZWxpbmVUcmVlRWxlbWVudHMoYSwgYikKKyAgICB7CisgICAgICAgIGxldCBhVGlt
ZWxpbmVUeXBlID0gYS5yZXByZXNlbnRlZE9iamVjdC50eXBlOworICAgICAgICBsZXQgYlRpbWVs
aW5lVHlwZSA9IGIucmVwcmVzZW50ZWRPYmplY3QudHlwZTsKKworICAgICAgICAvLyBBbHdheXMg
c29ydCB0aGUgUmVuZGVyaW5nIEZyYW1lcyB0aW1lbGluZSBsYXN0LgorICAgICAgICBpZiAoYVRp
bWVsaW5lVHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuUmVuZGVyaW5n
RnJhbWUpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgaWYgKGJUaW1lbGluZVR5cGUg
PT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmluZ0ZyYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGlmIChhLnBsYWNlaG9sZGVyICE9PSBiLnBs
YWNlaG9sZGVyKQorICAgICAgICAgICAgcmV0dXJuIGEucGxhY2Vob2xkZXIgPyAxIDogLTE7CisK
KyAgICAgICAgbGV0IGFUaW1lbGluZUluZGV4ID0gdGhpcy5faW5zdHJ1bWVudFR5cGVzLmluZGV4
T2YoYVRpbWVsaW5lVHlwZSk7CisgICAgICAgIGxldCBiVGltZWxpbmVJbmRleCA9IHRoaXMuX2lu
c3RydW1lbnRUeXBlcy5pbmRleE9mKGJUaW1lbGluZVR5cGUpOworICAgICAgICByZXR1cm4gYVRp
bWVsaW5lSW5kZXggLSBiVGltZWxpbmVJbmRleDsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlldy5TY3JvbGxEZWx0YURlbm9taW5hdG9yID0gNTAwOworV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXcuRWRpdEluc3RydW1lbnRzU3R5bGVDbGFzc05hbWUgPSAiZWRp
dC1pbnN0cnVtZW50cyI7CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LlZpZXdNb2Rl
ID0gewogICAgIFRpbWVsaW5lczogInRpbWVsaW5lLW92ZXJ2aWV3LXZpZXctbW9kZS10aW1lbGlu
ZXMiLApAQCAtNzk4LDYgKzk1Niw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LlZp
ZXdNb2RlID0gewogfTsKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcuRXZlbnQgPSB7
CisgICAgRWRpdGluZ0luc3RydW1lbnRzRGlkQ2hhbmdlOiAiZWRpdGluZy1pbnN0cnVtZW50cy1k
aWQtY2hhbmdlIiwKICAgICBSZWNvcmRTZWxlY3RlZDogInRpbWVsaW5lLW92ZXJ2aWV3LXJlY29y
ZC1zZWxlY3RlZCIsCiAgICAgVGltZWxpbmVTZWxlY3RlZDogInRpbWVsaW5lLW92ZXJ2aWV3LXRp
bWVsaW5lLXNlbGVjdGVkIiwKICAgICBUaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkOiAidGltZWxp
bmUtb3ZlcnZpZXctdGltZS1yYW5nZS1zZWxlY3Rpb24tY2hhbmdlZCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5n
Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggODc4MTAxNGYwMDBhOWYw
ZWQ1NWI4Y2IxZDc5ZDg3ZTVkYTU5NzIwZC4uZjdmY2Q1MWExMWI3Y2ZkM2I0MzgwMmQ1OWE4NTY4
YjBhNjZlNTFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
Vmlldy5jc3MKQEAgLTMwLDYgKzMwLDE0IEBACiAgICAgcmlnaHQ6IDA7CiB9CiAKKy5jb250ZW50
LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nLmVkaXQtaW5zdHJ1bWVudHMgPiAudGltZWxpbmUtb3Zl
cnZpZXcgeworICAgIGJvdHRvbTogMDsKK30KKworLmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNv
cmRpbmcuZWRpdC1pbnN0cnVtZW50cyA+IC5jb250ZW50LWJyb3dzZXIgeworICAgIGRpc3BsYXk6
IG5vbmU7Cit9CisKIC5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNvbnRlbnQt
YnJvd3NlciB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIGxlZnQ6IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJl
Y29yZGluZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRleCBmNjA4MjU0NzM1
MmJmYjlhM2RmYjdlYzZjNjYyN2UyNzYxNzhhNmZlLi5kM2MxYWQxOTQ1MTUzZDMxYWVkOWQ2MjNh
MzViMTZlZGFlODdmY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29u
dGVudFZpZXcuanMKQEAgLTM4LDYgKzM4LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGUKICAg
ICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3LkV2ZW50LlRpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWQsIHRoaXMu
X3RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl90aW1lbGlu
ZU92ZXJ2aWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcu
RXZlbnQuUmVjb3JkU2VsZWN0ZWQsIHRoaXMuX3JlY29yZFNlbGVjdGVkLCB0aGlzKTsKICAgICAg
ICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3LkV2ZW50LlRpbWVsaW5lU2VsZWN0ZWQsIHRoaXMuX3RpbWVsaW5lU2Vs
ZWN0ZWQsIHRoaXMpOworICAgICAgICB0aGlzLl90aW1lbGluZU92ZXJ2aWV3LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcuRXZlbnQuRWRpdGluZ0luc3RydW1l
bnRzRGlkQ2hhbmdlLCB0aGlzLl9lZGl0aW5nSW5zdHJ1bWVudHNEaWRDaGFuZ2UsIHRoaXMpOwog
ICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fdGltZWxpbmVPdmVydmlldyk7CiAKICAgICAg
ICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKQEAgLTE2MSwxMSArMTYyLDYgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3IGUKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lQ29u
dGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwogICAgIH0KIAotICAgIGdldCB0aW1lbGlu
ZU92ZXJ2aWV3SGVpZ2h0KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90aW1lbGluZU92
ZXJ2aWV3LmhlaWdodDsKLSAgICB9Ci0KICAgICBzaG93bigpCiAgICAgewogICAgICAgICB0aGlz
Ll90aW1lbGluZU92ZXJ2aWV3LnNob3duKCk7CkBAIC0zMzYsNyArMzMyLDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGlu
Z0NvbnRlbnRWaWV3IGUKICAgICAgICAgbGV0IGljb25DbGFzc05hbWU7CiAgICAgICAgIGxldCB0
aXRsZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lKSB7Ci0gICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lVGFiQ29udGVudFZpZXcuaWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lKHJlcHJlc2Vu
dGVkT2JqZWN0KTsKKyAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVUYWJDb250ZW50Vmlldy5pY29uQ2xhc3NOYW1lRm9yVGltZWxpbmVUeXBlKHJlcHJlc2Vu
dGVkT2JqZWN0LnR5cGUpOwogICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRldGFpbHMiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGljb25DbGFzc05h
bWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5TdG9wd2F0Y2hJY29uU3R5
bGVDbGFzczsKQEAgLTU5OSwxMSArNTk1LDE1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBlCiAK
ICAgICBfdXBkYXRlVGltZWxpbmVPdmVydmlld0hlaWdodCgpCiAgICAgewotICAgICAgICBjb25z
dCBydWxlckhlaWdodCA9IDIzOwotICAgICAgICAKLSAgICAgICAgbGV0IHN0eWxlVmFsdWUgPSAo
cnVsZXJIZWlnaHQgKyB0aGlzLnRpbWVsaW5lT3ZlcnZpZXdIZWlnaHQpICsgInB4IjsKLSAgICAg
ICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IHN0eWxlVmFs
dWU7Ci0gICAgICAgIHRoaXMuX3RpbWVsaW5lQ29udGVudEJyb3dzZXIuZWxlbWVudC5zdHlsZS50
b3AgPSBzdHlsZVZhbHVlOworICAgICAgICBpZiAodGhpcy5fdGltZWxpbmVPdmVydmlldy5lZGl0
aW5nSW5zdHJ1bWVudHMpCisgICAgICAgICAgICB0aGlzLl90aW1lbGluZU92ZXJ2aWV3LmVsZW1l
bnQuc3R5bGUuaGVpZ2h0ID0gIiI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY29uc3Qg
cnVsZXJIZWlnaHQgPSAyMzsKKworICAgICAgICAgICAgbGV0IHN0eWxlVmFsdWUgPSAocnVsZXJI
ZWlnaHQgKyB0aGlzLl90aW1lbGluZU92ZXJ2aWV3LmhlaWdodCkgKyAicHgiOworICAgICAgICAg
ICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IHN0eWxlVmFs
dWU7CisgICAgICAgICAgICB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLmVsZW1lbnQuc3R5
bGUudG9wID0gc3R5bGVWYWx1ZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF9pbnN0cnVtZW50
QWRkZWQoaW5zdHJ1bWVudE9yRXZlbnQpCkBAIC02MTgsOCArNjE4LDggQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3IGUKICAgICAgICAgaWYgKHRpbWVsaW5lLnR5cGUgPT09IFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmluZ0ZyYW1lKQogICAgICAgICAgICAgdGhpcy5fcmVu
ZGVyaW5nRnJhbWVUaW1lbGluZSA9IHRpbWVsaW5lOwogCi0gICAgICAgIGxldCBkaXNwbGF5TmFt
ZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yVGlt
ZWxpbmUodGltZWxpbmUpOwotICAgICAgICBsZXQgaWNvbkNsYXNzTmFtZSA9IFdlYkluc3BlY3Rv
ci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZSh0aW1lbGlu
ZSk7CisgICAgICAgIGxldCBkaXNwbGF5TmFtZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNv
bnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yVGltZWxpbmVUeXBlKHRpbWVsaW5lLnR5cGUpOworICAg
ICAgICBsZXQgaWNvbkNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRW
aWV3Lmljb25DbGFzc05hbWVGb3JUaW1lbGluZVR5cGUodGltZWxpbmUudHlwZSk7CiAgICAgICAg
IGxldCBwYXRoQ29tcG9uZW50ID0gbmV3IFdlYkluc3BlY3Rvci5IaWVyYXJjaGljYWxQYXRoQ29t
cG9uZW50KGRpc3BsYXlOYW1lLCBpY29uQ2xhc3NOYW1lLCB0aW1lbGluZSk7CiAgICAgICAgIHBh
dGhDb21wb25lbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSGllcmFyY2hpY2FsUGF0
aENvbXBvbmVudC5FdmVudC5TaWJsaW5nV2FzU2VsZWN0ZWQsIHRoaXMuX3BhdGhDb21wb25lbnRT
ZWxlY3RlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3BhdGhDb21wb25lbnRNYXAuc2V0KHRpbWVs
aW5lLCBwYXRoQ29tcG9uZW50KTsKQEAgLTgyMSw2ICs4MjEsMTQgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRl
bnRWaWV3IGUKICAgICAgICAgdGltZWxpbmVWaWV3LnN0YXJ0VGltZSA9IHRoaXMuX3RpbWVsaW5l
T3ZlcnZpZXcuc2VsZWN0aW9uU3RhcnRUaW1lOwogICAgICAgICB0aW1lbGluZVZpZXcuZW5kVGlt
ZSA9IGVuZFRpbWU7CiAgICAgfQorCisgICAgX2VkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZShl
dmVudCkKKyAgICB7CisgICAgICAgIGxldCBlZGl0aW5nSW5zdHJ1bWVudHMgPSB0aGlzLl90aW1l
bGluZU92ZXJ2aWV3LmVkaXRpbmdJbnN0cnVtZW50czsKKyAgICAgICAgdGhpcy5lbGVtZW50LmNs
YXNzTGlzdC50b2dnbGUoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcuRWRpdEluc3RydW1l
bnRzU3R5bGVDbGFzc05hbWUsIGVkaXRpbmdJbnN0cnVtZW50cyk7CisKKyAgICAgICAgdGhpcy5f
dXBkYXRlVGltZWxpbmVPdmVydmlld0hlaWdodCgpOworICAgIH0KIH07CiAKIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LlNlbGVjdGVkVGltZWxpbmVUeXBlQ29va2ll
S2V5ID0gInRpbWVsaW5lLXJlY29yZGluZy1jb250ZW50LXZpZXctc2VsZWN0ZWQtdGltZWxpbmUt
dHlwZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUYWJDb250ZW50Vmlldy5qcwppbmRleCBjZjcyMGRm
NGQzZWE4NjM0ZGIxZGFkMzA0MDgxYjA3MmRiNGVmZjY5Li5mYjJkNzNhYmEyMjQyODE3MTQ0NjA0
YWQ3ZDlmMDM2YjhjZTFmMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVGFiQ29udGVudFZpZXcu
anMKQEAgLTEwNSw5ICsxMDUsOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmll
dyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbgogICAgICAgICBy
ZXR1cm4gISF3aW5kb3cuVGltZWxpbmVBZ2VudCB8fCAhIXdpbmRvdy5TY3JpcHRQcm9maWxlckFn
ZW50OwogICAgIH0KIAotICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclRpbWVsaW5lKHRpbWVsaW5l
KQorICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclRpbWVsaW5lVHlwZSh0aW1lbGluZVR5cGUpCiAg
ICAgewotICAgICAgICBzd2l0Y2ggKHRpbWVsaW5lLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoICh0
aW1lbGluZVR5cGUpIHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQu
VHlwZS5OZXR3b3JrOgogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
TmV0d29yayBSZXF1ZXN0cyIpOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZC5UeXBlLkxheW91dDoKQEAgLTEyMSwxNSArMTIxLDE1IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVUYWJDb250ZW50VmlldyBleHRlbmRz
IFdlYkluCiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuSGVh
cEFsbG9jYXRpb25zOgogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
SmF2YVNjcmlwdCBBbGxvY2F0aW9ucyIpOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
Y29uc29sZS5lcnJvcigiVW5rbm93biBUaW1lbGluZSB0eXBlOiIsIHRpbWVsaW5lLnR5cGUpOwor
ICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBUaW1lbGluZSB0eXBlOiIsIHRpbWVs
aW5lVHlwZSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKLSAg
ICBzdGF0aWMgaWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lKHRpbWVsaW5lKQorICAgIHN0YXRpYyBp
Y29uQ2xhc3NOYW1lRm9yVGltZWxpbmVUeXBlKHRpbWVsaW5lVHlwZSkKICAgICB7Ci0gICAgICAg
IHN3aXRjaCAodGltZWxpbmUudHlwZSkgeworICAgICAgICBzd2l0Y2ggKHRpbWVsaW5lVHlwZSkg
ewogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk5ldHdvcms6
CiAgICAgICAgICAgICByZXR1cm4gIm5ldHdvcmstaWNvbiI7CiAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5b3V0OgpAQCAtMTQ0LDE1ICsxNDQsMTUgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVRhYkNv
bnRlbnRWaWV3IGV4dGVuZHMgV2ViSW4KICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZToKICAgICAgICAgICAgIHJldHVybiAicmVuZGVy
aW5nLWZyYW1lLWljb24iOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY29uc29sZS5l
cnJvcigiVW5rbm93biBUaW1lbGluZSB0eXBlOiIsIHRpbWVsaW5lLnR5cGUpOworICAgICAgICAg
ICAgY29uc29sZS5lcnJvcigiVW5rbm93biBUaW1lbGluZSB0eXBlOiIsIHRpbWVsaW5lVHlwZSk7
CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKLSAgICBzdGF0aWMg
Z2VuZXJpY0NsYXNzTmFtZUZvclRpbWVsaW5lKHRpbWVsaW5lKQorICAgIHN0YXRpYyBnZW5lcmlj
Q2xhc3NOYW1lRm9yVGltZWxpbmVUeXBlKHRpbWVsaW5lVHlwZSkKICAgICB7Ci0gICAgICAgIHN3
aXRjaCAodGltZWxpbmUudHlwZSkgeworICAgICAgICBzd2l0Y2ggKHRpbWVsaW5lVHlwZSkgewog
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk5ldHdvcms6CiAg
ICAgICAgICAgICByZXR1cm4gIm5ldHdvcmsiOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZC5UeXBlLkxheW91dDoKQEAgLTE2Niw3ICsxNjYsNyBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVUYWJDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVudFZpZXcg
ZXh0ZW5kcyBXZWJJbgogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5U
eXBlLlJlbmRlcmluZ0ZyYW1lOgogICAgICAgICAgICAgcmV0dXJuICJyZW5kZXJpbmctZnJhbWUi
OwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBU
aW1lbGluZSB0eXBlOiIsIHRpbWVsaW5lLnR5cGUpOworICAgICAgICAgICAgY29uc29sZS5lcnJv
cigiVW5rbm93biBUaW1lbGluZSB0eXBlOiIsIHRpbWVsaW5lVHlwZSk7CiAgICAgICAgIH0KIAog
ICAgICAgICByZXR1cm4gbnVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRyZWVFbGVtZW50LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkY2E2YmUwOTQwM2JkNjZkM2U0MDU1N2ViYzJkYjJjZGViODE1MDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZVRyZWVFbGVtZW50LmpzCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNw
ZWN0b3IuVGltZWxpbmVUcmVlRWxlbWVudCA9IGNsYXNzIFRpbWVsaW5lVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50Cit7CisgICAgY29uc3RydWN0b3Io
dGltZWxpbmUsIHBsYWNlaG9sZGVyKQorICAgIHsKKyAgICAgICAgbGV0IGRpc3BsYXlOYW1lID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZGlzcGxheU5hbWVGb3JUaW1lbGlu
ZVR5cGUodGltZWxpbmUudHlwZSk7CisgICAgICAgIGxldCBpY29uQ2xhc3NOYW1lID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuaWNvbkNsYXNzTmFtZUZvclRpbWVsaW5lVHlw
ZSh0aW1lbGluZS50eXBlKTsKKyAgICAgICAgbGV0IGdlbmVyaWNDbGFzc05hbWUgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmlldy5nZW5lcmljQ2xhc3NOYW1lRm9yVGltZWxpbmVU
eXBlKHRpbWVsaW5lLnR5cGUpOworCisgICAgICAgIHN1cGVyKFtpY29uQ2xhc3NOYW1lLCBnZW5l
cmljQ2xhc3NOYW1lXSwgZGlzcGxheU5hbWUsICIiLCB0aW1lbGluZSk7CisKKyAgICAgICAgdGhp
cy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlciB8fCBmYWxzZTsKKyAgICAgICAgdGhpcy5lZGl0
aW5nID0gdGhpcy5fcGxhY2Vob2xkZXI7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBn
ZXQgcGxhY2Vob2xkZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVy
OworICAgIH0KKworICAgIGdldCBlZGl0aW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9lZGl0aW5nOworICAgIH0KKworICAgIHNldCBlZGl0aW5nKHgpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fZWRpdGluZyA9PT0geCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0
aGlzLl9lZGl0aW5nID0geDsKKyAgICAgICAgdGhpcy5zZWxlY3RhYmxlID0gIXRoaXMuX2VkaXRp
bmc7CisKKyAgICAgICAgdGhpcy5fdXBkYXRlU3RhdHVzQnV0dG9uKCk7CisgICAgfQorCisgICAg
Ly8gUHJpdmF0ZQorCisgICAgX3Nob3dDbG9zZUJ1dHRvbigpCisgICAgeworICAgICAgICBsZXQg
dG9vbHRpcCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xvc2UgJXMgdGltZWxpbmUgdmlldyIp
LmZvcm1hdCh0aGlzLm1haW5UaXRsZSk7CisgICAgICAgIGxldCBidXR0b24gPSBuZXcgV2ViSW5z
cGVjdG9yLlRyZWVFbGVtZW50U3RhdHVzQnV0dG9uKHVzZVNWR1N5bWJvbCgiSW1hZ2VzL0Nsb3Nl
TGFyZ2Uuc3ZnIiwgImNsb3NlLWJ1dHRvbiIsIHRvb2x0aXApKTsKKyAgICAgICAgYnV0dG9uLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50U3RhdHVzQnV0dG9uLkV2ZW50
LkNsaWNrZWQsICgpID0+IHsgdGhpcy5kZXNlbGVjdCgpOyB9KTsKKworICAgICAgICB0aGlzLnN0
YXR1cyA9IGJ1dHRvbi5lbGVtZW50OworICAgIH0KKworICAgIF9zaG93Q2hlY2tib3goKQorICAg
IHsKKyAgICAgICAgbGV0IGNoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlucHV0Iik7CisgICAgICAgIGNoZWNrYm94RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsKKyAg
ICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSAhdGhpcy5fcGxhY2Vob2xkZXI7CisKKyAg
ICAgICAgbGV0IGJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnRTdGF0dXNCdXR0
b24oY2hlY2tib3hFbGVtZW50KTsKKyAgICAgICAgdGhpcy5zdGF0dXMgPSBjaGVja2JveEVsZW1l
bnQ7CisgICAgfQorCisgICAgX3VwZGF0ZVN0YXR1c0J1dHRvbigpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fZWRpdGluZykKKyAgICAgICAgICAgIHRoaXMuX3Nob3dDaGVja2JveCgpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zaG93Q2xvc2VCdXR0b24oKTsKKyAgICB9Cit9
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>