<?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>38925</bug_id>
          
          <creation_ts>2010-05-11 12:31:12 -0700</creation_ts>
          <short_desc>Web Inspector: Timeline. Send Request records initiated by JS have no parent.</short_desc>
          <delta_ts>2010-05-12 12:40:41 -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 (Deprecated)</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224084</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-05-11 12:31:12 -0700</bug_when>
    <thetext>%SUBJ%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224088</commentid>
    <comment_count>1</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-05-11 12:33:38 -0700</bug_when>
    <thetext>It is possible to force Resource Request from JS code.
But these requests are not connected to the corresponding function call and have no caller info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224130</commentid>
    <comment_count>2</comment_count>
      <attachid>55745</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-05-11 13:35:17 -0700</bug_when>
    <thetext>Created attachment 55745
[patch] initial version.

has binary changes.
New record type Delayed Request is introduced.
It is generating each time when loader is trying to pass low priority resource request via message queue.
Resource url is used as identifier as far as ResourceRequest object and it&apos;s identifier is not exist at the moment.
Delayed Request and Send Request are linked together at front-end side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224487</commentid>
    <comment_count>3</comment_count>
      <attachid>55745</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-05-12 02:35:07 -0700</bug_when>
    <thetext>Comment on attachment 55745
[patch] initial version.

WebCore/inspector/TimelineRecordFactory.cpp:135
 +  	data.set(&quot;url&quot;, request-&gt;cachedResource()-&gt;url());
Indent, null check missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224489</commentid>
    <comment_count>4</comment_count>
      <attachid>55745</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-05-12 02:42:00 -0700</bug_when>
    <thetext>Comment on attachment 55745
[patch] initial version.


WebCore/inspector/front-end/TimelineAgent.js:57
 +      DelayedRequest : 20
SchedulePendingRequests ?

WebCore/loader/loader.cpp:153
 +                  agent-&gt;didDelayedRequest(request);
I&apos;d use more strict binding to sendrequest. Using the &quot;url + cached resource address&quot; will already be less ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224552</commentid>
    <comment_count>5</comment_count>
      <attachid>55836</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-05-12 05:49:08 -0700</bug_when>
    <thetext>Created attachment 55836
[patch] second iteration

DelayedRequest was renamed to ScheduleResourceRequest.
It is not possible to use Request address as part of the key because we have no Request address at SendResourceRequest.
We definitely have a valid CachedResource pointer and can use url method without implicit check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224808</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-05-12 12:40:41 -0700</bug_when>
    <thetext>Committed r59237
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorTimelineAgent.cpp
	M	WebCore/inspector/TimelineRecordFactory.h
	M	WebCore/inspector/front-end/TimelineAgent.js
	M	WebCore/inspector/front-end/TimelinePanel.js
	M	WebCore/inspector/InspectorTimelineAgent.h
	M	WebCore/inspector/TimelineRecordFactory.cpp
	M	WebCore/English.lproj/localizedStrings.js
	M	WebCore/loader/loader.cpp
	M	LayoutTests/inspector/timeline-enum-stability-expected.txt
	M	LayoutTests/ChangeLog
r59237 = 07361e849c4b0674708f3b9a3966e9e09fa09ee3 (refs/remotes/trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55745</attachid>
            <date>2010-05-11 13:35:17 -0700</date>
            <delta_ts>2010-05-12 05:49:08 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16420</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NWI4ZjM0Li43MTBiZDBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDUt
MTEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjogU29tZXRp
bWVzIFJlc291cmNlUmVxdWVzdCByZWNvcmRzIGFyZW4ndCBjb25uZWN0ZWQgdG8gdGhlIGluaXRp
YXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
OTI1CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0
ZWQudHh0OgorCiAyMDEwLTA1LTExICBab2x0YW4gSGVyY3plZyAgPHpoZXJjemVnQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50
eHQKaW5kZXggOTc0MWNjMy4uYjM5YWJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0yMiw0
ICsyMiw1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VS
ZWNlaXZlRGF0YSA6IDE2CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkdD
RXZlbnQgOiAxNwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5NYXJrRE9N
Q29udGVudEV2ZW50VHlwZSA6IDE4CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRU
eXBlLk1hcmtMb2FkRXZlbnRUeXBlIDogMTkKK1dlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJl
Y29yZFR5cGUuRGVsYXllZFJlcXVlc3QgOiAyMAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYzMzU3MWQuLmRiYmQyMTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzAgQEAKKzIwMTAtMDUtMTEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYklu
c3BlY3RvcjogU29tZXRpbWVzIFJlc291cmNlUmVxdWVzdCByZWNvcmRzIGFyZW4ndCBjb25uZWN0
ZWQgdG8gdGhlIGluaXRpYXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4OTI1CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWREZWxheWVkUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVs
aW5lUmVjb3JkRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZURlbGF5ZWRSZXF1ZXN0RGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1Rp
bWVsaW5lUmVjb3JkRmFjdG9yeS5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVBZ2VudC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IF9yZWNvcmRTdHlsZXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9maW5kUGFyZW50
UmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5f
aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5fY2xlYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJhdGVQb3B1cENvbnRlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnBy
b3RvdHlwZS5fZ2V0UmVjb3JkRGV0YWlscyk6CisgICAgICAgICogbG9hZGVyL2xvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXI6OmxvYWQpOgorCiAyMDEwLTA1LTExICBab2x0YW4g
SGVyY3plZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGly
ayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMgYi9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCA3MjBlMDljM2MyY2UzNDY5NGQ2Y2ZkMzkzNGJlZmIzMjM5MWNiM2M4Li42ODg5ZDViODlkNmNm
NjEyZmYyNTE1YjA5Mjg1ODdlNjM2NjQ5NjE4IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDQ0CnNjbWRuQWhIMSVLclZVMlpDZzs/dE9wPDB9Tz1QSEtOUyE+dE5PYmFxQkNnNE9CP3U4bzBD
ekdFeEJ2aEUKCmRlbHRhIDkKUWNtWjNvbVRBKShyVlUyWjAyU1E/RUMydWkKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGI4NDcxYTguLjMxOTdm
ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBA
IC0yMDIsNiArMjAyLDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVh
dGVTY3JpcHQoKQogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChFdmFsdWF0ZVNjcmlwdFRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
RGVsYXllZFJlcXVlc3QoUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBwdXNoR0NFdmVudFJlY29y
ZHMoKTsKKyAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAg
ICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVEZWxheWVk
UmVxdWVzdERhdGEobV9mcm9udGVuZCwgcmVxdWVzdCkpOworICAgIHJlY29yZC5zZXQoInR5cGUi
LCBEZWxheWVkUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgYWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQsIERlbGF5ZWRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKK30KKwogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsCiAgICAgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCmluZGV4IDE4YWM3MzcuLjA3NzUwMGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTY5LDcgKzY5LDggQEAgZW51bSBUaW1lbGluZVJl
Y29yZFR5cGUgewogICAgIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUgPSAx
NiwKICAgICBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlID0gMTcsCiAgICAgTWFya0RPTUNvbnRl
bnRFdmVudFR5cGUgPSAxOCwKLSAgICBNYXJrTG9hZEV2ZW50VHlwZSA9IDE5CisgICAgTWFya0xv
YWRFdmVudFR5cGUgPSAxOSwKKyAgICBEZWxheWVkUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSA9
IDIwCiB9OwogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2NyaXB0R0NFdmVudExp
c3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewpAQCAtMTE2LDYgKzExNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKICAgICB2b2lkIGRpZE1hcmtMb2Fk
RXZlbnQoKTsKIAorICAgIHZvaWQgZGlkRGVsYXllZFJlcXVlc3QoUmVxdWVzdCogcmVxdWVzdCk7
CiAgICAgdm9pZCB3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nLCBib29sIGlz
TWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIHdpbGxSZWNl
aXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggYzA4ZmMwZi4uZmQzNzAyMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEFycmF5LmgiCkBAIC0xMjgsNiArMTI5LDEyIEBAIFNjcmlwdE9iamVjdCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKK1NjcmlwdE9iamVjdCBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZURlbGF5ZWRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQsIFJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBm
cm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7CisJZGF0YS5zZXQoInVybCIsIHJlcXVlc3QtPmNh
Y2hlZFJlc291cmNlKCktPnVybCgpKTsKKyAgICByZXR1cm4gZGF0YTsKK30KIAogU2NyaXB0T2Jq
ZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJv
b2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggMmY0ODVkMy4uNjY0
MjAyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTM4
LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEV2ZW50OwogICAgIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOwogICAgIGNsYXNzIEludFJlY3Q7CisgICAgY2xhc3MgUmVx
dWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKICAgICBjbGFzcyBTY3JpcHRPYmplY3Q7CkBAIC01OSwxOCArNjAsMjAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUlJlYWR5
U3RhdGVDaGFuZ2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwsIGlu
dCByZWFkeVN0YXRlKTsKIAogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUkxv
YWREYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgICAgICAK
KwogICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShJ
bnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKLSAg
ICAgICAgCisKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVNYXJrVGltZWxpbmVE
YXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJik7CiAKICAgICAgICAgc3RhdGlj
IFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9u
dGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKICAgICAgICAgICAgIGJvb2wgaXNNYWlu
UmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCisgICAgICAgIHN0YXRpYyBTY3Jp
cHRPYmplY3QgY3JlYXRlRGVsYXllZFJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiwgUmVx
dWVzdCopOworCiAgICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3VyY2VSZWNl
aXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICAgICAgCisKICAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCk7CiAKICAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVQYWludERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBJbnRSZWN0
Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2Vu
dC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzCmluZGV4
IDM4N2Q0OTEuLjkwMzRmODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZUFnZW50LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZUFnZW50LmpzCkBAIC01Myw3ICs1Myw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50
LlJlY29yZFR5cGUgPSB7CiAgICAgUmVzb3VyY2VSZWNlaXZlRGF0YTogMTYsCiAgICAgR0NFdmVu
dCA6IDE3LAogICAgIE1hcmtET01Db250ZW50RXZlbnRUeXBlIDogMTgsCi0gICAgTWFya0xvYWRF
dmVudFR5cGUgOiAxOQorICAgIE1hcmtMb2FkRXZlbnRUeXBlIDogMTksCisgICAgRGVsYXllZFJl
cXVlc3QgOiAyMAogfTsKIAogV2ViSW5zcGVjdG9yLmFkZFJlY29yZFRvVGltZWxpbmUgPSBmdW5j
dGlvbihyZWNvcmQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanMKaW5kZXggYjZhOGMyMy4uYmQ3MjNhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTgyLDYgKzgyLDcgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl9yb290UmVjb3JkID0gdGhpcy5f
Y3JlYXRlUm9vdFJlY29yZCgpOwogICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3JkcyA9IHt9Owor
ICAgIHRoaXMuX2RlbGF5ZWRSZXF1ZXN0cyA9IHt9OwogICAgIHRoaXMuX3RpbWVyUmVjb3JkcyA9
IHt9OwogCiAgICAgdGhpcy5fY2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVD
YWxjdWxhdG9yKCk7CkBAIC0xNjIsNiArMTYzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkdD
RXZlbnRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHQyBFdmVudCIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5
bGVzW3JlY29yZFR5cGVzLk1hcmtET01Db250ZW50RXZlbnRUeXBlXSA9IHsgdGl0bGU6IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRE9NQ29udGVudCBldmVudCIpLCBjYXRlZ29yeTogdGhpcy5jYXRl
Z29yaWVzLnNjcmlwdGluZyB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
Lk1hcmtMb2FkRXZlbnRUeXBlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9h
ZCBldmVudCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OworICAgICAg
ICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkRlbGF5ZWRSZXF1ZXN0XSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGVsYXllZCBSZXF1ZXN0IiksIGNhdGVnb3J5OiB0aGlz
LmNhdGVnb3JpZXMubG9hZGluZyB9OwogICAgICAgICAgICAgdGhpcy5fcmVjb3JkU3R5bGVzQXJy
YXkgPSByZWNvcmRTdHlsZXM7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29y
ZFN0eWxlc0FycmF5OwpAQCAtMjgxLDYgKzI4Myw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHBhcmVudFJlY29yZCA9IHRoaXMuX3NlbmRS
ZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVyXTsKICAgICAgICAgZWxzZSBpZiAo
cmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVyRmlyZSkKICAgICAgICAgICAgIHBhcmVu
dFJlY29yZCA9IHRoaXMuX3RpbWVyUmVjb3Jkc1tyZWNvcmQuZGF0YS50aW1lcklkXTsKKyAgICAg
ICAgZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlJlc291cmNlU2VuZFJlcXVl
c3QpCisgICAgICAgICAgICBwYXJlbnRSZWNvcmQgPSB0aGlzLl9kZWxheWVkUmVxdWVzdHNbcmVj
b3JkLmRhdGEudXJsXTsKICAgICAgICAgcmV0dXJuIHBhcmVudFJlY29yZDsKICAgICB9LAogCkBA
IC0zMDgsNyArMzEyLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29y
ZCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQocmVjb3Jk
LCBwYXJlbnRSZWNvcmQsIHRoaXMuX3JlY29yZFN0eWxlcywgdGhpcy5fc2VuZFJlcXVlc3RSZWNv
cmRzLCB0aGlzLl90aW1lclJlY29yZHMpOworICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkID0g
bmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZChyZWNvcmQsIHBh
cmVudFJlY29yZCwgdGhpcyk7CiAKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRU
eXBlcy5NYXJrRE9NQ29udGVudEV2ZW50VHlwZSB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuTWFya0xvYWRFdmVudFR5cGUpIHsKICAgICAgICAgICAgIHRoaXMuX21hcmtUaW1lbGluZVJl
Y29yZHMucHVzaChmb3JtYXR0ZWRSZWNvcmQpOwpAQCAtMzc4LDYgKzM4Miw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX21h
cmtUaW1lbGluZVJlY29yZHMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRz
ID0ge307CisgICAgICAgIHRoaXMuX2RlbGF5ZWRSZXF1ZXN0cyA9IHt9OwogICAgICAgICB0aGlz
Ll90aW1lclJlY29yZHMgPSB7fTsKICAgICAgICAgdGhpcy5fcm9vdFJlY29yZCA9IHRoaXMuX2Ny
ZWF0ZVJvb3RSZWNvcmQoKTsKICAgICAgICAgdGhpcy5fYm91bmRhcmllc0FyZVZhbGlkID0gZmFs
c2U7CkBAIC03ODMsMTAgKzc4OCwxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRHcmFw
aFJvdy5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCwgcmVjb3Jk
U3R5bGVzLCBzZW5kUmVxdWVzdFJlY29yZHMsIHRpbWVyUmVjb3JkcykKK1dlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZCA9IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVj
b3JkLCBwYW5lbCkKIHsKICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVBZ2VudC5SZWNvcmRUeXBlOwotICAgIHZhciBzdHlsZSA9IHJlY29yZFN0eWxlc1tyZWNvcmQu
dHlwZV07CisgICAgdmFyIHN0eWxlID0gcGFuZWwuX3JlY29yZFN0eWxlc1tyZWNvcmQudHlwZV07
CiAKICAgICB0aGlzLnBhcmVudCA9IHBhcmVudFJlY29yZDsKICAgICBpZiAocGFyZW50UmVjb3Jk
KQpAQCAtODA3LDI4ICs4MTIsMzIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0
dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY28KIAogICAgIC8v
IE1ha2UgcmVzb3VyY2UgcmVjZWl2ZSByZWNvcmQgbGFzdCBzaW5jZSByZXF1ZXN0IHdhcyBzZW50
OyBtYWtlIGZpbmlzaCByZWNvcmQgbGFzdCBzaW5jZSByZXNwb25zZSByZWNlaXZlZC4KICAgICBp
ZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlJlc291cmNlU2VuZFJlcXVlc3QpIHsKLSAg
ICAgICAgc2VuZFJlcXVlc3RSZWNvcmRzW3JlY29yZC5kYXRhLmlkZW50aWZpZXJdID0gdGhpczsK
KyAgICAgICAgcGFuZWwuX3NlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVy
XSA9IHRoaXM7CisgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuRGVs
YXllZFJlcXVlc3QpIHsKKyAgICAgICAgcGFuZWwuX2RlbGF5ZWRSZXF1ZXN0c1tyZWNvcmQuZGF0
YS51cmxdID0gdGhpczsKICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBl
cy5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSkgewotICAgICAgICB2YXIgc2VuZFJlcXVlc3RSZWNv
cmQgPSBzZW5kUmVxdWVzdFJlY29yZHNbcmVjb3JkLmRhdGEuaWRlbnRpZmllcl07CisgICAgICAg
IHZhciBzZW5kUmVxdWVzdFJlY29yZCA9IHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHNbcmVjb3Jk
LmRhdGEuaWRlbnRpZmllcl07CiAgICAgICAgIGlmIChzZW5kUmVxdWVzdFJlY29yZCkgeyAvLyBG
YWxzZSBpZiB3ZSBzdGFydGVkIGluc3RydW1lbnRhdGlvbiBpbiB0aGUgbWlkZGxlIG9mIHJlcXVl
c3QuCiAgICAgICAgICAgICByZWNvcmQuZGF0YS51cmwgPSBzZW5kUmVxdWVzdFJlY29yZC5kYXRh
LnVybDsKICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgcmVzb3VyY2UgaW4gdGhlIGNv
bGxlY3Rpb24sIHJlY2FsY3VsYXRlIGRldGFpbHMgaW4gb3JkZXIgdG8gZGlzcGxheSBzaG9ydCB1
cmwuCi0gICAgICAgICAgICBzZW5kUmVxdWVzdFJlY29yZC5kZXRhaWxzID0gdGhpcy5fZ2V0UmVj
b3JkRGV0YWlscyhzZW5kUmVxdWVzdFJlY29yZCwgc2VuZFJlcXVlc3RSZWNvcmRzKTsKKyAgICAg
ICAgICAgIHNlbmRSZXF1ZXN0UmVjb3JkLmRldGFpbHMgPSB0aGlzLl9nZXRSZWNvcmREZXRhaWxz
KHNlbmRSZXF1ZXN0UmVjb3JkLCBwYW5lbC5fc2VuZFJlcXVlc3RSZWNvcmRzKTsKKyAgICAgICAg
ICAgIGlmIChzZW5kUmVxdWVzdFJlY29yZC5wYXJlbnQgIT09IHBhbmVsLl9yb290UmVjb3JkICYm
IHNlbmRSZXF1ZXN0UmVjb3JkLnBhcmVudC50eXBlID09PSByZWNvcmRUeXBlcy5EZWxheWVkUmVx
dWVzdCkKKyAgICAgICAgICAgICAgICBzZW5kUmVxdWVzdFJlY29yZC5wYXJlbnQuZGV0YWlscyA9
IHRoaXMuX2dldFJlY29yZERldGFpbHMoc2VuZFJlcXVlc3RSZWNvcmQsIHBhbmVsLl9zZW5kUmVx
dWVzdFJlY29yZHMpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0g
cmVjb3JkVHlwZXMuUmVzb3VyY2VSZWNlaXZlRGF0YSkgewotICAgICAgICB2YXIgc2VuZFJlcXVl
c3RSZWNvcmQgPSBzZW5kUmVxdWVzdFJlY29yZHNbcmVjb3JkLmRhdGEuaWRlbnRpZmllcl07Cisg
ICAgICAgIHZhciBzZW5kUmVxdWVzdFJlY29yZCA9IHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHNb
cmVjb3JkLmRhdGEuaWRlbnRpZmllcl07CiAgICAgICAgIGlmIChzZW5kUmVxdWVzdFJlY29yZCkg
Ly8gRmFsc2UgZm9yIG1haW4gcmVzb3VyY2UuCiAgICAgICAgICAgICByZWNvcmQuZGF0YS51cmwg
PSBzZW5kUmVxdWVzdFJlY29yZC5kYXRhLnVybDsKICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBl
ID09PSByZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaCkgewotICAgICAgICB2YXIgc2VuZFJlcXVl
c3RSZWNvcmQgPSBzZW5kUmVxdWVzdFJlY29yZHNbcmVjb3JkLmRhdGEuaWRlbnRpZmllcl07Cisg
ICAgICAgIHZhciBzZW5kUmVxdWVzdFJlY29yZCA9IHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHNb
cmVjb3JkLmRhdGEuaWRlbnRpZmllcl07CiAgICAgICAgIGlmIChzZW5kUmVxdWVzdFJlY29yZCkg
Ly8gRmFsc2UgZm9yIG1haW4gcmVzb3VyY2UuCiAgICAgICAgICAgICByZWNvcmQuZGF0YS51cmwg
PSBzZW5kUmVxdWVzdFJlY29yZC5kYXRhLnVybDsKICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBl
ID09PSByZWNvcmRUeXBlcy5UaW1lckluc3RhbGwpIHsKICAgICAgICAgdGhpcy50aW1lb3V0ID0g
cmVjb3JkLmRhdGEudGltZW91dDsKICAgICAgICAgdGhpcy5zaW5nbGVTaG90ID0gcmVjb3JkLmRh
dGEuc2luZ2xlU2hvdDsKLSAgICAgICAgdGltZXJSZWNvcmRzW3JlY29yZC5kYXRhLnRpbWVySWRd
ID0gdGhpczsKKyAgICAgICAgcGFuZWwuX3RpbWVyUmVjb3Jkc1tyZWNvcmQuZGF0YS50aW1lcklk
XSA9IHRoaXM7CiAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGlt
ZXJGaXJlKSB7Ci0gICAgICAgIHZhciB0aW1lckluc3RhbGxlZFJlY29yZCA9IHRpbWVyUmVjb3Jk
c1tyZWNvcmQuZGF0YS50aW1lcklkXTsKKyAgICAgICAgdmFyIHRpbWVySW5zdGFsbGVkUmVjb3Jk
ID0gcGFuZWwuX3RpbWVyUmVjb3Jkc1tyZWNvcmQuZGF0YS50aW1lcklkXTsKICAgICAgICAgaWYg
KHRpbWVySW5zdGFsbGVkUmVjb3JkKSB7CiAgICAgICAgICAgICB0aGlzLmNhbGxTaXRlU2NyaXB0
TmFtZSA9IHRpbWVySW5zdGFsbGVkUmVjb3JkLmNhbGxlclNjcmlwdE5hbWU7CiAgICAgICAgICAg
ICB0aGlzLmNhbGxTaXRlU2NyaXB0TGluZSA9IHRpbWVySW5zdGFsbGVkUmVjb3JkLmNhbGxlclNj
cmlwdExpbmU7CkBAIC04MzYsNyArODQ1LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
Rm9ybWF0dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY28KICAg
ICAgICAgICAgIHRoaXMuc2luZ2xlU2hvdCA9IHRpbWVySW5zdGFsbGVkUmVjb3JkLnNpbmdsZVNo
b3Q7CiAgICAgICAgIH0KICAgICB9Ci0gICAgdGhpcy5kZXRhaWxzID0gdGhpcy5fZ2V0UmVjb3Jk
RGV0YWlscyhyZWNvcmQsIHNlbmRSZXF1ZXN0UmVjb3Jkcyk7CisgICAgdGhpcy5kZXRhaWxzID0g
dGhpcy5fZ2V0UmVjb3JkRGV0YWlscyhyZWNvcmQsIHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHMp
OwogfQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90
eXBlID0gewpAQCAtODk5LDYgKzkwOCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZv
cm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVz
LkZ1bmN0aW9uQ2FsbDoKICAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRMaW5r
Um93KCJMb2NhdGlvbiIsIHRoaXMuZGF0YS5zY3JpcHROYW1lLCB0aGlzLmRhdGEuc2NyaXB0TGlu
ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVz
LkRlbGF5ZWRSZXF1ZXN0OgogICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZVNl
bmRSZXF1ZXN0OgogICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVS
ZXNwb25zZToKICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VSZWNlaXZlRGF0
YToKQEAgLTk2Myw2ICs5NzMsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0
ZWRSZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQuZGF0
YS51cmwgPyBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHJlY29yZC5kYXRhLnVy
bCwgInNjcmlwdHMiLCByZWNvcmQuZGF0YS5saW5lTnVtYmVyLCAiIiwgIiIpIDogbnVsbDsKICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5YSFJS
ZWFkeVN0YXRlQ2hhbmdlOgogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVB
Z2VudC5SZWNvcmRUeXBlLlhIUkxvYWQ6CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5U
aW1lbGluZUFnZW50LlJlY29yZFR5cGUuRGVsYXllZFJlcXVlc3Q6CiAgICAgICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVzb3VyY2VTZW5kUmVxdWVz
dDoKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlw
ZS5SZXNvdXJjZVJlY2VpdmVEYXRhOgogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlOgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvbG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2xvYWRlci5jcHAK
aW5kZXggMTRiOWE1Ni4uOTU2YjE5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvbG9hZGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9sb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCkBAIC0xNDUsNiArMTQ2LDEzIEBAIHZvaWQgTG9hZGVyOjpsb2FkKERv
Y0xvYWRlciogZG9jTG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGJvb2wgaW5jcmVt
ZW50CiAgICAgICAgIGhvc3QtPnNlcnZlUGVuZGluZ1JlcXVlc3RzKHByaW9yaXR5KTsKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBIYW5kbGUgYXN5bmNocm9ub3VzbHkgc28gZWFybHkgbG93IHBy
aW9yaXR5IHJlcXVlc3RzIGRvbid0IGdldCBzY2hlZHVsZWQgYmVmb3JlIGxhdGVyIGhpZ2ggcHJp
b3JpdHkgb25lcworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgICAgIGlmIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjppbnN0YW5jZUNvdW50KCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQqIGFnZW50ID0gZG9jTG9hZGVyLT5kb2MoKS0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpOworICAgICAgICAgICAgaWYgKGFnZW50KQorICAgICAgICAgICAgICAgIGFnZW50LT5k
aWREZWxheWVkUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgICAgIHNjaGVkdWxlU2VydmVQZW5kaW5nUmVxdWVzdHMoKTsKICAgICB9
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55836</attachid>
            <date>2010-05-12 05:49:08 -0700</date>
            <delta_ts>2010-05-12 07:58:52 -0700</delta_ts>
            <desc>[patch] second iteration</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16190</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZWMxMTU3Li42YmJkNjk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDUt
MTEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjogU29tZXRp
bWVzIFJlc291cmNlUmVxdWVzdCByZWNvcmRzIGFyZW4ndCBjb25uZWN0ZWQgdG8gdGhlIGluaXRp
YXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
OTI1CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0
ZWQudHh0OgorCiAyMDEwLTA1LTEyICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCA5
NzQxY2MzLi5jZTIzMTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTIyLDQgKzIyLDUgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVJlY2VpdmVEYXRh
IDogMTYKIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuR0NFdmVudCA6IDE3
CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLk1hcmtET01Db250ZW50RXZl
bnRUeXBlIDogMTgKIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuTWFya0xv
YWRFdmVudFR5cGUgOiAxOQorV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5T
Y2hlZHVsZVJlc291cmNlUmVxdWVzdCA6IDIwCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRmOTlmYi4uNzM4YjZhOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAxMC0wNS0xMSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5z
cGVjdG9yOiBTb21ldGltZXMgUmVzb3VyY2VSZXF1ZXN0IHJlY29yZHMgYXJlbid0IGNvbm5lY3Rl
ZCB0byB0aGUgaW5pdGlhdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg5MjUKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQg
X3JlY29yZFN0eWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUuX2ZpbmRQYXJlbnRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jbGVhclBhbmVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZW5l
cmF0ZVBvcHVwQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5G
b3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmREZXRhaWxzKToKKyAgICAgICAgKiBs
b2FkZXIvbG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6bG9hZCk6CisKIDIw
MTAtMDUtMTIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKaW5kZXggMjA3ZmYxOGQ2MjdlNTI2MzZhM2I1ZTk4NDA3ZTJhNzI5MDA5MjIx
OS4uOGE2NzYyYTMzOTUyMmE5ZWYzZGE0YWZiOTg2M2E2Yjc0NDBiZTc3OSAxMDA2NDQKR0lUIGJp
bmFyeSBwYXRjaApkZWx0YSA1NQp4Y21aM3BtVEEjQ3JWVlNST2BlbWYhWE0wIyUjZ3Y1JTg8ZlAl
ODxqNUkoY0R7QFo8P2FKaU8/bDtzNj0wNXRhWXwKCmRlbHRhIDkKUmNtWjNxaiVtJFdyVlZTUjBS
UkBMMWZUIV8KCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IGI4NDcxYTguLmFiNTMzMTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwCkBAIC0yMDIsNiArMjAyLDE1IEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQogICAgIGRpZENvbXBsZXRlQ3VycmVudFJl
Y29yZChFdmFsdWF0ZVNjcmlwdFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5n
JiB1cmwpCit7CisgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CisgICAgU2NyaXB0T2JqZWN0IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250
ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKG1fZnJv
bnRlbmQsIHVybCkpOworICAgIHJlY29yZC5zZXQoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVx
dWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQs
IFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsCiAgICAgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCmluZGV4IDE4YWM3MzcuLmQ0NmM0MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTY5LDcgKzY5LDggQEAgZW51bSBUaW1lbGluZVJlY29y
ZFR5cGUgewogICAgIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUgPSAxNiwK
ICAgICBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlID0gMTcsCiAgICAgTWFya0RPTUNvbnRlbnRF
dmVudFR5cGUgPSAxOCwKLSAgICBNYXJrTG9hZEV2ZW50VHlwZSA9IDE5CisgICAgTWFya0xvYWRF
dmVudFR5cGUgPSAxOSwKKyAgICBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVsaW5lUmVjb3Jk
VHlwZSA9IDIwCiB9OwogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2NyaXB0R0NF
dmVudExpc3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewpAQCAtMTE2LDYgKzExNyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKICAgICB2b2lkIGRpZE1h
cmtMb2FkRXZlbnQoKTsKIAorICAgIHZvaWQgZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCB3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBs
b25nLCBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2
b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBi
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggYzA4ZmMw
Zi4uMDU0MGRhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rvcnku
Y3BwCkBAIC0xMjgsNiArMTI4LDEyIEBAIFNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyCiAgICAgcmV0
dXJuIGRhdGE7CiB9CiAKK1NjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQs
IGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQt
Pm5ld1NjcmlwdE9iamVjdCgpOworICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwpOworICAgIHJldHVy
biBkYXRhOworfQogCiBTY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVS
ZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmggYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaAppbmRleCAyZjQ4NWQzLi5mOTA1ZWNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaApAQCAtNTksMTggKzU5LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0
YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSk7
CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVYSFJMb2FkRGF0YShJbnNwZWN0
b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYgdXJsKTsKLSAgICAgICAgCisKICAgICAgICAgc3Rh
dGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEoSW5zcGVjdG9yRnJvbnRl
bmQqLCBjb25zdCBTdHJpbmcmLCBkb3VibGUgbGluZU51bWJlcik7Ci0gICAgICAgIAorCiAgICAg
ICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlTWFya1RpbWVsaW5lRGF0YShJbnNwZWN0b3JG
cm9udGVuZCosIGNvbnN0IFN0cmluZyYpOwogCiAgICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3Qg
Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsCiAgICAgICAgICAgICBib29sIGlzTWFpblJlc291cmNlLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKIAorICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0
ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0
cmluZyYpOworCiAgICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3VyY2VSZWNl
aXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKICAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICAgICAgCisKICAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCk7CiAKICAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVQYWludERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBJbnRSZWN0
Jik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVBZ2Vu
dC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUFnZW50LmpzCmluZGV4
IDM4N2Q0OTEuLmQ0NGMyZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZUFnZW50LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZUFnZW50LmpzCkBAIC01Myw3ICs1Myw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50
LlJlY29yZFR5cGUgPSB7CiAgICAgUmVzb3VyY2VSZWNlaXZlRGF0YTogMTYsCiAgICAgR0NFdmVu
dCA6IDE3LAogICAgIE1hcmtET01Db250ZW50RXZlbnRUeXBlIDogMTgsCi0gICAgTWFya0xvYWRF
dmVudFR5cGUgOiAxOQorICAgIE1hcmtMb2FkRXZlbnRUeXBlIDogMTksCisgICAgU2NoZWR1bGVS
ZXNvdXJjZVJlcXVlc3QgOiAyMAogfTsKIAogV2ViSW5zcGVjdG9yLmFkZFJlY29yZFRvVGltZWxp
bmUgPSBmdW5jdGlvbihyZWNvcmQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lUGFuZWwuanMKaW5kZXggYjZhOGMyMy4uNzMzMjcyZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTgyLDYgKzgyLDcgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl9yb290UmVjb3Jk
ID0gdGhpcy5fY3JlYXRlUm9vdFJlY29yZCgpOwogICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3Jk
cyA9IHt9OworICAgIHRoaXMuX3NjaGVkdWxlZFJlc291cmNlUmVxdWVzdHMgPSB7fTsKICAgICB0
aGlzLl90aW1lclJlY29yZHMgPSB7fTsKIAogICAgIHRoaXMuX2NhbGN1bGF0b3IgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvcigpOwpAQCAtMTYyLDYgKzE2Myw3IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlY29yZFN0
eWxlc1tyZWNvcmRUeXBlcy5HQ0V2ZW50XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiR0MgRXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAg
ICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudEV2ZW50VHlw
ZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRPTUNvbnRlbnQgZXZlbnQiKSwg
Y2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKICAgICAgICAgICAgIHJlY29y
ZFN0eWxlc1tyZWNvcmRUeXBlcy5NYXJrTG9hZEV2ZW50VHlwZV0gPSB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkxvYWQgZXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5z
Y3JpcHRpbmcgfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5TY2hlZHVs
ZVJlc291cmNlUmVxdWVzdF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjaGVk
dWxlIFJlcXVlc3QiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07CiAgICAg
ICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNBcnJheSA9IHJlY29yZFN0eWxlczsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVzQXJyYXk7CkBAIC0yODEsNiArMjgz
LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcGFyZW50UmVjb3JkID0gdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzW3JlY29yZC5kYXRhLmlk
ZW50aWZpZXJdOwogICAgICAgICBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMu
VGltZXJGaXJlKQogICAgICAgICAgICAgcGFyZW50UmVjb3JkID0gdGhpcy5fdGltZXJSZWNvcmRz
W3JlY29yZC5kYXRhLnRpbWVySWRdOworICAgICAgICBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0g
cmVjb3JkVHlwZXMuUmVzb3VyY2VTZW5kUmVxdWVzdCkKKyAgICAgICAgICAgIHBhcmVudFJlY29y
ZCA9IHRoaXMuX3NjaGVkdWxlZFJlc291cmNlUmVxdWVzdHNbcmVjb3JkLmRhdGEudXJsXTsKICAg
ICAgICAgcmV0dXJuIHBhcmVudFJlY29yZDsKICAgICB9LAogCkBAIC0zMDgsNyArMzEyLDcgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9IG5ldyBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHRo
aXMuX3JlY29yZFN0eWxlcywgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzLCB0aGlzLl90aW1lclJl
Y29yZHMpOworICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZChyZWNvcmQsIHBhcmVudFJlY29yZCwgdGhpcyk7
CiAKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVu
dEV2ZW50VHlwZSB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWRFdmVudFR5
cGUpIHsKICAgICAgICAgICAgIHRoaXMuX21hcmtUaW1lbGluZVJlY29yZHMucHVzaChmb3JtYXR0
ZWRSZWNvcmQpOwpAQCAtMzc4LDYgKzM4Miw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX21hcmtUaW1lbGluZVJlY29yZHMg
PSBbXTsKICAgICAgICAgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzID0ge307CisgICAgICAgIHRo
aXMuX3NjaGVkdWxlZFJlc291cmNlUmVxdWVzdHMgPSB7fTsKICAgICAgICAgdGhpcy5fdGltZXJS
ZWNvcmRzID0ge307CiAgICAgICAgIHRoaXMuX3Jvb3RSZWNvcmQgPSB0aGlzLl9jcmVhdGVSb290
UmVjb3JkKCk7CiAgICAgICAgIHRoaXMuX2JvdW5kYXJpZXNBcmVWYWxpZCA9IGZhbHNlOwpAQCAt
NzgzLDEwICs3ODgsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cucHJv
dG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0
dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY29yZFN0eWxlcywg
c2VuZFJlcXVlc3RSZWNvcmRzLCB0aW1lclJlY29yZHMpCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCwgcGFu
ZWwpCiB7CiAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQu
UmVjb3JkVHlwZTsKLSAgICB2YXIgc3R5bGUgPSByZWNvcmRTdHlsZXNbcmVjb3JkLnR5cGVdOwor
ICAgIHZhciBzdHlsZSA9IHBhbmVsLl9yZWNvcmRTdHlsZXNbcmVjb3JkLnR5cGVdOwogCiAgICAg
dGhpcy5wYXJlbnQgPSBwYXJlbnRSZWNvcmQ7CiAgICAgaWYgKHBhcmVudFJlY29yZCkKQEAgLTgw
NywyOCArODEyLDMyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29y
ZCA9IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkLCByZWNvCiAKICAgICAvLyBNYWtlIHJl
c291cmNlIHJlY2VpdmUgcmVjb3JkIGxhc3Qgc2luY2UgcmVxdWVzdCB3YXMgc2VudDsgbWFrZSBm
aW5pc2ggcmVjb3JkIGxhc3Qgc2luY2UgcmVzcG9uc2UgcmVjZWl2ZWQuCiAgICAgaWYgKHJlY29y
ZC50eXBlID09PSByZWNvcmRUeXBlcy5SZXNvdXJjZVNlbmRSZXF1ZXN0KSB7Ci0gICAgICAgIHNl
bmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVyXSA9IHRoaXM7CisgICAgICAg
IHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHNbcmVjb3JkLmRhdGEuaWRlbnRpZmllcl0gPSB0aGlz
OworICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlNjaGVkdWxlUmVz
b3VyY2VSZXF1ZXN0KSB7CisgICAgICAgIHBhbmVsLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3Rz
W3JlY29yZC5kYXRhLnVybF0gPSB0aGlzOwogICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09
IHJlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlKSB7Ci0gICAgICAgIHZhciBzZW5k
UmVxdWVzdFJlY29yZCA9IHNlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVy
XTsKKyAgICAgICAgdmFyIHNlbmRSZXF1ZXN0UmVjb3JkID0gcGFuZWwuX3NlbmRSZXF1ZXN0UmVj
b3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVyXTsKICAgICAgICAgaWYgKHNlbmRSZXF1ZXN0UmVj
b3JkKSB7IC8vIEZhbHNlIGlmIHdlIHN0YXJ0ZWQgaW5zdHJ1bWVudGF0aW9uIGluIHRoZSBtaWRk
bGUgb2YgcmVxdWVzdC4KICAgICAgICAgICAgIHJlY29yZC5kYXRhLnVybCA9IHNlbmRSZXF1ZXN0
UmVjb3JkLmRhdGEudXJsOwogICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSByZXNvdXJj
ZSBpbiB0aGUgY29sbGVjdGlvbiwgcmVjYWxjdWxhdGUgZGV0YWlscyBpbiBvcmRlciB0byBkaXNw
bGF5IHNob3J0IHVybC4KLSAgICAgICAgICAgIHNlbmRSZXF1ZXN0UmVjb3JkLmRldGFpbHMgPSB0
aGlzLl9nZXRSZWNvcmREZXRhaWxzKHNlbmRSZXF1ZXN0UmVjb3JkLCBzZW5kUmVxdWVzdFJlY29y
ZHMpOworICAgICAgICAgICAgc2VuZFJlcXVlc3RSZWNvcmQuZGV0YWlscyA9IHRoaXMuX2dldFJl
Y29yZERldGFpbHMoc2VuZFJlcXVlc3RSZWNvcmQsIHBhbmVsLl9zZW5kUmVxdWVzdFJlY29yZHMp
OworICAgICAgICAgICAgaWYgKHNlbmRSZXF1ZXN0UmVjb3JkLnBhcmVudCAhPT0gcGFuZWwuX3Jv
b3RSZWNvcmQgJiYgc2VuZFJlcXVlc3RSZWNvcmQucGFyZW50LnR5cGUgPT09IHJlY29yZFR5cGVz
LlNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KQorICAgICAgICAgICAgICAgIHNlbmRSZXF1ZXN0UmVj
b3JkLnBhcmVudC5kZXRhaWxzID0gdGhpcy5fZ2V0UmVjb3JkRGV0YWlscyhzZW5kUmVxdWVzdFJl
Y29yZCwgcGFuZWwuX3NlbmRSZXF1ZXN0UmVjb3Jkcyk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
aWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVEYXRhKSB7Ci0g
ICAgICAgIHZhciBzZW5kUmVxdWVzdFJlY29yZCA9IHNlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQu
ZGF0YS5pZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHNlbmRSZXF1ZXN0UmVjb3JkID0gcGFuZWwu
X3NlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVyXTsKICAgICAgICAgaWYg
KHNlbmRSZXF1ZXN0UmVjb3JkKSAvLyBGYWxzZSBmb3IgbWFpbiByZXNvdXJjZS4KICAgICAgICAg
ICAgIHJlY29yZC5kYXRhLnVybCA9IHNlbmRSZXF1ZXN0UmVjb3JkLmRhdGEudXJsOwogICAgIH0g
ZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlJlc291cmNlRmluaXNoKSB7Ci0g
ICAgICAgIHZhciBzZW5kUmVxdWVzdFJlY29yZCA9IHNlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQu
ZGF0YS5pZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHNlbmRSZXF1ZXN0UmVjb3JkID0gcGFuZWwu
X3NlbmRSZXF1ZXN0UmVjb3Jkc1tyZWNvcmQuZGF0YS5pZGVudGlmaWVyXTsKICAgICAgICAgaWYg
KHNlbmRSZXF1ZXN0UmVjb3JkKSAvLyBGYWxzZSBmb3IgbWFpbiByZXNvdXJjZS4KICAgICAgICAg
ICAgIHJlY29yZC5kYXRhLnVybCA9IHNlbmRSZXF1ZXN0UmVjb3JkLmRhdGEudXJsOwogICAgIH0g
ZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVySW5zdGFsbCkgewogICAg
ICAgICB0aGlzLnRpbWVvdXQgPSByZWNvcmQuZGF0YS50aW1lb3V0OwogICAgICAgICB0aGlzLnNp
bmdsZVNob3QgPSByZWNvcmQuZGF0YS5zaW5nbGVTaG90OwotICAgICAgICB0aW1lclJlY29yZHNb
cmVjb3JkLmRhdGEudGltZXJJZF0gPSB0aGlzOworICAgICAgICBwYW5lbC5fdGltZXJSZWNvcmRz
W3JlY29yZC5kYXRhLnRpbWVySWRdID0gdGhpczsKICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBl
ID09PSByZWNvcmRUeXBlcy5UaW1lckZpcmUpIHsKLSAgICAgICAgdmFyIHRpbWVySW5zdGFsbGVk
UmVjb3JkID0gdGltZXJSZWNvcmRzW3JlY29yZC5kYXRhLnRpbWVySWRdOworICAgICAgICB2YXIg
dGltZXJJbnN0YWxsZWRSZWNvcmQgPSBwYW5lbC5fdGltZXJSZWNvcmRzW3JlY29yZC5kYXRhLnRp
bWVySWRdOwogICAgICAgICBpZiAodGltZXJJbnN0YWxsZWRSZWNvcmQpIHsKICAgICAgICAgICAg
IHRoaXMuY2FsbFNpdGVTY3JpcHROYW1lID0gdGltZXJJbnN0YWxsZWRSZWNvcmQuY2FsbGVyU2Ny
aXB0TmFtZTsKICAgICAgICAgICAgIHRoaXMuY2FsbFNpdGVTY3JpcHRMaW5lID0gdGltZXJJbnN0
YWxsZWRSZWNvcmQuY2FsbGVyU2NyaXB0TGluZTsKQEAgLTgzNiw3ICs4NDUsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQsIHBh
cmVudFJlY29yZCwgcmVjbwogICAgICAgICAgICAgdGhpcy5zaW5nbGVTaG90ID0gdGltZXJJbnN0
YWxsZWRSZWNvcmQuc2luZ2xlU2hvdDsKICAgICAgICAgfQogICAgIH0KLSAgICB0aGlzLmRldGFp
bHMgPSB0aGlzLl9nZXRSZWNvcmREZXRhaWxzKHJlY29yZCwgc2VuZFJlcXVlc3RSZWNvcmRzKTsK
KyAgICB0aGlzLmRldGFpbHMgPSB0aGlzLl9nZXRSZWNvcmREZXRhaWxzKHJlY29yZCwgcGFuZWwu
X3NlbmRSZXF1ZXN0UmVjb3Jkcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZv
cm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CkBAIC04OTksNiArOTA4LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGNhc2UgcmVjb3JkVHlwZXMuRnVuY3Rpb25DYWxsOgogICAgICAgICAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZExpbmtSb3coIkxvY2F0aW9uIiwgdGhpcy5kYXRhLnNjcmlwdE5hbWUs
IHRoaXMuZGF0YS5zY3JpcHRMaW5lKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgcmVjb3JkVHlwZXMuU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3Q6CiAgICAgICAgICAg
ICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlU2VuZFJlcXVlc3Q6CiAgICAgICAgICAgICBjYXNl
IHJlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlOgogICAgICAgICAgICAgY2FzZSBy
ZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVEYXRhOgpAQCAtOTYzLDYgKzk3Myw3IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlY29yZC5kYXRhLnVybCA/IFdlYkluc3BlY3Rvci5saW5raWZ5
UmVzb3VyY2VBc05vZGUocmVjb3JkLmRhdGEudXJsLCAic2NyaXB0cyIsIHJlY29yZC5kYXRhLmxp
bmVOdW1iZXIsICIiLCAiIikgOiBudWxsOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlhIUlJlYWR5U3RhdGVDaGFuZ2U6CiAgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuWEhSTG9hZDoKKyAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5TY2hl
ZHVsZVJlc291cmNlUmVxdWVzdDoKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5SZXNvdXJjZVNlbmRSZXF1ZXN0OgogICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlJlc291cmNlUmVjZWl2ZURh
dGE6CiAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5
cGUuUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2U6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9s
b2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvbG9hZGVyLmNwcAppbmRleCAxNGI5YTU2Li5hZTYx
ZjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9sb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUv
bG9hZGVyL2xvYWRlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiRG9jTG9hZGVyLmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKQEAg
LTE0NSw2ICsxNDYsMTMgQEAgdm9pZCBMb2FkZXI6OmxvYWQoRG9jTG9hZGVyKiBkb2NMb2FkZXIs
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgYm9vbCBpbmNyZW1lbnQKICAgICAgICAgaG9zdC0+
c2VydmVQZW5kaW5nUmVxdWVzdHMocHJpb3JpdHkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IEhhbmRsZSBhc3luY2hyb25vdXNseSBzbyBlYXJseSBsb3cgcHJpb3JpdHkgcmVxdWVzdHMgZG9u
J3QgZ2V0IHNjaGVkdWxlZCBiZWZvcmUgbGF0ZXIgaGlnaCBwcmlvcml0eSBvbmVzCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKKyAgICAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Omluc3Rh
bmNlQ291bnQoKSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogYWdlbnQg
PSBkb2NMb2FkZXItPmRvYygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CisgICAgICAgICAg
ICBpZiAoYWdlbnQpCisgICAgICAgICAgICAgICAgYWdlbnQtPmRpZFNjaGVkdWxlUmVzb3VyY2VS
ZXF1ZXN0KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQogICAgICAgICBzY2hlZHVsZVNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiAgICAgfQog
fQo=
</data>
<flag name="review"
          id="40122"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>