<?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>169577</bug_id>
          
          <creation_ts>2017-03-13 17:12:03 -0700</creation_ts>
          <short_desc>Web Inspector: More accurate Resource Timing data in Web Inspector</short_desc>
          <delta_ts>2017-03-14 11:19:55 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287431</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-13 17:12:03 -0700</bug_when>
    <thetext>Summary:
More accurate Resource Timing data in Web Inspector

* The &quot;responseEnd&quot; time we show in Web Inspector comes from the Web Process instead of the responseEnd time we got from the Network Process which we use in ResourceTiming. Unify them.
* The millisecond values seems to be off in the ResourceResponse path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287433</commentid>
    <comment_count>1</comment_count>
      <attachid>304325</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-13 17:16:23 -0700</bug_when>
    <thetext>Created attachment 304325
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287484</commentid>
    <comment_count>2</comment_count>
      <attachid>304325</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-13 20:59:22 -0700</bug_when>
    <thetext>Comment on attachment 304325
[PATCH] Proposed Fix

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

&gt; Source/WebCore/loader/CrossOriginPreflightChecker.cpp:88
&gt; +    InspectorInstrumentation::didFinishLoading(frame, frame-&gt;loader().documentLoader(), identifier, emptyMetrics, nullptr);

When preflight gets a response, we might be able to  get the resource loader from the cached resource.
Is there a way to get the metrics?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287673</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-14 10:49:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 304325 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304325&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/CrossOriginPreflightChecker.cpp:88
&gt; &gt; +    InspectorInstrumentation::didFinishLoading(frame, frame-&gt;loader().documentLoader(), identifier, emptyMetrics, nullptr);
&gt; 
&gt; When preflight gets a response, we might be able to  get the resource loader
&gt; from the cached resource.
&gt;
&gt; Is there a way to get the metrics?

There should be metrics in the didFinishLoad that lead to CachedResources::notifyFinished. We just have to thread that plumbing. That said, Preflight already has a bunch of issues in Web Inspector that need to be sorted out (failures don&apos;t show up at all), so I&apos;ll leave this for that more serious task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287692</commentid>
    <comment_count>4</comment_count>
      <attachid>304325</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 11:19:50 -0700</bug_when>
    <thetext>Comment on attachment 304325
[PATCH] Proposed Fix

Clearing flags on attachment: 304325

Committed r213917: &lt;http://trac.webkit.org/changeset/213917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287693</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 11:19:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304325</attachid>
            <date>2017-03-13 17:16:23 -0700</date>
            <delta_ts>2017-03-14 11:19:50 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>better-timestamps-1.patch</filename>
            <type>text/plain</type>
            <size>21582</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMmZkMmI3ZWY3MS4uODM0M2U4MDg3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxNy0wMy0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1vcmUgYWNjdXJhdGUgUmVzb3VyY2UgVGlt
aW5nIGRhdGEgaW4gV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAg
ICBVc2UgdGhlIFJlc291cmNlTG9hZGVyIHRvIGdldCB0aGUgc3RhcnQgdGltZSB0aGF0IHJlc3Bv
bnNlRW5kIGlzIHJlbGF0aXZlIHRvCisgICAgICAgIHNvIHdlIGNhbiBzZW5kIHRoZSBtb3JlIGFj
Y3VyYXRlIHJlc3BvbnNlRW5kIHdoZW4gYXZhaWxhYmxlLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmdJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIGxvYWRl
ci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKToKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXI6OmZpbmlzaGVkTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZE5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVy
OjpkaWRGaW5pc2hMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVy
OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKToKKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIFBhc3MgUmVzb3VyY2VMb2Fk
ZXIgdGhyb3VnaCB0byBXZWIgSW5zcGVjdG9yIGluIGRpZEZpbmlzaExvYWRpbmcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkTWV0cmljcy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvcHlUaW1pbmdEYXRhKToKKyAgICAgICAgVGhlIGRpZmZlcmVuY2VzIGZy
b20gdGhlIHJlZmVyZW5jZSBzdGFydCBhcmUgaW4gU2Vjb25kcywgbm90IG1pbGxpc2Vjb25kcy4K
KwogMjAxNy0wMy0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFNpbXBsZSBsaW5lIGxheW91dDogT3ByaGFuIGxpbmVzIHdpdGggdmlzdWFsIG92ZXJmbG93IGRv
ZXMgbm90IHdvcmsgcHJvcGVybHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDM4OTQ4NTIzNDgzLi40ZjcyNGE0
YzU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTU5OSwxMyArNTk5LDEzIEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVuCiAgICAgICAgIG5ldHdvcmtBZ2VudC0+ZGlkUmVjZWl2ZURhdGEoaWRlbnRpZmllciwg
ZGF0YSwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0
cmljcykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IE5ldHdvcmtMb2FkTWV0
cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzLCBSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIp
CiB7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChJbnNwZWN0
b3JOZXR3b3JrQWdlbnQqIG5ldHdvcmtBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVj
dG9yTmV0d29ya0FnZW50KCkpCi0gICAgICAgIG5ldHdvcmtBZ2VudC0+ZGlkRmluaXNoTG9hZGlu
ZyhpZGVudGlmaWVyLCAqbG9hZGVyLCBuZXR3b3JrTG9hZE1ldHJpY3MpOworICAgICAgICBuZXR3
b3JrQWdlbnQtPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllciwgKmxvYWRlciwgbmV0d29ya0xv
YWRNZXRyaWNzLCByZXNvdXJjZUxvYWRlcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAyMDM0OWJjNjVkOS4u
NmEwNjBlMzI3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUmLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFJl
c291cmNlTG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRocmVhZGFibGVMb2Fk
ZXJSZXNwb25zZShEb2N1bWVudFRocmVhZGFibGVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhKEZyYW1lKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVu
Y29kZWREYXRhTGVuZ3RoKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKEZyYW1l
KiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IE5ldHdv
cmtMb2FkTWV0cmljcyYpOworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJhbWUq
LCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgTmV0d29y
a0xvYWRNZXRyaWNzJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWls
TG9hZGluZyhGcmFtZSosIERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclhG
cmFtZU9wdGlvbnNEZW5pZWQoRnJhbWUmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3Vt
ZW50TG9hZGVyJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGNv
bnRpbnVlV2l0aFBvbGljeURvd25sb2FkKEZyYW1lJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKQEAgLTMyNyw3ICsz
MjcsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciop
OwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaHJlYWRhYmxlTG9hZGVyUmVzcG9uc2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXImLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICBzdGF0
aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IE5ldHdvcmtMb2FkTWV0
cmljcyYpOworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmdJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29u
c3QgTmV0d29ya0xvYWRNZXRyaWNzJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAg
c3RhdGljIHZvaWQgZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBz
ZW5kTGluZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJlcik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbExvYWRYSFJTeW5jaHJvbm91c2x5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CkBA
IC04NTgsMTAgKzg1OCwxMCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFJlY2VpdmVEYXRhKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZwogICAgICAgICBkaWRS
ZWNlaXZlRGF0YUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIGRhdGEsIGRh
dGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBOZXR3b3JrTG9h
ZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyhGcmFtZSogZnJhbWUsIERvY3VtZW50TG9hZGVy
KiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgTmV0d29ya0xvYWRNZXRy
aWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MsIFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikK
IHsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCi0gICAgICAgIGRpZEZpbmlzaExvYWRp
bmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCBsb2FkZXIsIG5ldHdvcmtM
b2FkTWV0cmljcyk7CisgICAgICAgIGRpZEZpbmlzaExvYWRpbmdJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBpZGVudGlmaWVyLCBsb2FkZXIsIG5ldHdvcmtMb2FkTWV0cmljcywgcmVzb3VyY2VM
b2FkZXIpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZh
aWxMb2FkaW5nKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggNmJm
NDUwZWYyNTEuLmUyZDg1Njg3MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtNDIyLDEzICs0MjIsMTggQEAgdm9pZCBJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgY2hhcioKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGF0YVJlY2VpdmVk
KHJlcXVlc3RJZCwgdGltZXN0YW1wKCksIGRhdGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciYgbG9hZGVyLCBjb25zdCBOZXR3b3Jr
TG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKK3ZvaWQgSW5zcGVjdG9yTmV0d29ya0Fn
ZW50OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRM
b2FkZXImIGxvYWRlciwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJp
Y3MsIFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikKIHsKICAgICBpZiAobV9oaWRkZW5S
ZXF1ZXN0SWRlbnRpZmllcnMucmVtb3ZlKGlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CiAK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSB0aGUgTmV0d29ya0xvYWRNZXRyaWNzJ3MgcmVz
cG9uc2VFbmQgdG8gbWF0Y2ggUmVzb3VyY2VUaW1pbmcuCi0gICAgZG91YmxlIGVsYXBzZWRGaW5p
c2hUaW1lID0gdGltZXN0YW1wKCk7CisgICAgZG91YmxlIGVsYXBzZWRGaW5pc2hUaW1lOworICAg
IGlmIChyZXNvdXJjZUxvYWRlciAmJiBuZXR3b3JrTG9hZE1ldHJpY3MuaXNDb21wbGV0ZSgpKSB7
CisgICAgICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gcmVzb3VyY2VMb2FkZXItPmxvYWRU
aW1pbmcoKS5zdGFydFRpbWUoKTsKKyAgICAgICAgZG91YmxlIHN0YXJ0VGltZUluSW5zcGVjdG9y
ID0gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWVTaW5jZShz
dGFydFRpbWUpOworICAgICAgICBlbGFwc2VkRmluaXNoVGltZSA9IHN0YXJ0VGltZUluSW5zcGVj
dG9yICsgbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlRW5kLnNlY29uZHMoKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgZWxhcHNlZEZpbmlzaFRpbWUgPSB0aW1lc3RhbXAoKTsKIAogICAgIFN0cmlu
ZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsK
ICAgICBpZiAobV9yZXNvdXJjZXNEYXRhLT5yZXNvdXJjZVR5cGUocmVxdWVzdElkKSA9PSBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKaW5kZXggOWI5NjJjMTE4M2UuLmVkNThl
NmRlZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdv
cmtBZ2VudC5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVx
dWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyJiwgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVu
dExvYWRlciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOwogICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lk
IGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRl
ciYsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
Zyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyJiwgY29uc3QgTmV0d29y
a0xvYWRNZXRyaWNzJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5n
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXImLCBjb25zdCBSZXNvdXJj
ZUVycm9yJik7CiAgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1l
bnRMb2FkZXImLCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRocmVhZGFi
bGVMb2FkZXJSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5QcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCBjYWQxOTJiMzE4Ny4uZTAwYmViY2JiODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENo
ZWNrZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVj
a2VyOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKERvY3VtZW50VGhyZWFkYWJsZUxvCiAgICAg
Ly8gZm9yIHByZWZsaWdodCBmYWlsdXJlcyBhbmQgZGlzdGluZ3Vpc2ggdGhlbSBiZXR0ZXIgZnJv
bSBub24tcHJlZmxpZ2h0IHJlcXVlc3RzLgogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBlbXB0eU1l
dHJpY3M7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZSgqZnJhbWUsIGlkZW50aWZpZXIsIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRl
cigpLCByZXNwb25zZSwgbnVsbHB0cik7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hMb2FkaW5nKGZyYW1lLCBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwg
aWRlbnRpZmllciwgZW1wdHlNZXRyaWNzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEZpbmlzaExvYWRpbmcoZnJhbWUsIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LCBpZGVudGlmaWVyLCBlbXB0eU1ldHJpY3MsIG51bGxwdHIpOwogCiAgICAgQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuYXBwZW5kRW50cnkobG9hZGVyLnNlY3Vy
aXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgV1RGTW92ZShyZXN1bHQpKTsK
ICAgICBsb2FkZXIucHJlZmxpZ2h0U3VjY2VzcyhXVEZNb3ZlKHJlcXVlc3QpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDhhZDI5YThkMzUzLi5hZDFkNjA4
YTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6ZmluaXNoZWRMb2FkaW5nKCkKICAgICAg
ICAgTmV0d29ya0xvYWRNZXRyaWNzIGVtcHR5TWV0cmljczsKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlcjsK
ICAgICAgICAgbV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlciA9IDA7Ci0g
ICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5n
KHRoaXMsIGlkZW50aWZpZXIsIGVtcHR5TWV0cmljcyk7CisgICAgICAgIGZyYW1lTG9hZGVyKCkt
Pm5vdGlmaWVyKCkuZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKHRoaXMsIGlkZW50aWZpZXIsIGVt
cHR5TWV0cmljcywgbnVsbHB0cik7CiAgICAgfQogCiAgICAgbWF5YmVGaW5pc2hMb2FkaW5nTXVs
dGlwYXJ0Q29udGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZE5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRO
b3RpZmllci5jcHAKaW5kZXggNmI1OWM5NTk5YTYuLmNmZDk1YTZiMjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBjb25zdCBOZXR3b3JrTG8KICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUu
cGFnZSgpKQogICAgICAgICBwYWdlLT5wcm9ncmVzcygpLmNvbXBsZXRlUHJvZ3Jlc3MobG9hZGVy
LT5pZGVudGlmaWVyKCkpOwogCi0gICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlci0+
ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIG5ldHdvcmtMb2FkTWV0cmlj
cyk7CisgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIo
KSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIG5ldHdvcmtMb2FkTWV0cmljcywgbG9hZGVyKTsKIH0K
IAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkRmFpbFRvTG9hZChSZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE2MCwxMyArMTYwLDEz
IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZURhdGEoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlRGF0YSgmbV9mcmFtZSwgaWRlbnRpZmllciwgZGF0YSwgZGF0YUxlbmd0aCwg
ZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNw
YXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmlj
cykKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IE5l
dHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzLCBSZXNvdXJjZUxvYWRlciogcmVz
b3VyY2VMb2FkZXIpCiB7CiAgICAgLy8gTm90aWZ5aW5nIHRoZSBGcmFtZUxvYWRlckNsaWVudCBt
YXkgY2F1c2UgdGhlIGZyYW1lIHRvIGJlIGRlc3Ryb3llZC4KICAgICBSZWY8RnJhbWU+IHByb3Rl
Y3QobV9mcmFtZSk7CiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZEZp
bmlzaExvYWRpbmcobG9hZGVyLCBpZGVudGlmaWVyKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZygmbV9mcmFtZSwgbG9hZGVyLCBpZGVudGlmaWVyLCBu
ZXR3b3JrTG9hZE1ldHJpY3MpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmlu
aXNoTG9hZGluZygmbV9mcmFtZSwgbG9hZGVyLCBpZGVudGlmaWVyLCBuZXR3b3JrTG9hZE1ldHJp
Y3MsIHJlc291cmNlTG9hZGVyKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtMTk2LDcgKzE5Niw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3Nh
Z2VzKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsK
ICAgICAgICAgTmV0d29ya0xvYWRNZXRyaWNzIGVtcHR5TWV0cmljczsKLSAgICAgICAgZGlzcGF0
Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllciwgZW1wdHlNZXRyaWNzKTsKKyAg
ICAgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllciwgZW1wdHlN
ZXRyaWNzLCBudWxscHRyKTsKICAgICB9IGVsc2UKICAgICAgICAgZGlzcGF0Y2hEaWRGYWlsTG9h
ZGluZyhsb2FkZXIsIGlkZW50aWZpZXIsIGVycm9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKaW5kZXggMmYxMTEwYzZhNjEuLmUwZTZhNDg2YTQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaApAQCAt
NjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBk
aXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFJlc291cmNlTG9hZGVyKiA9IG51
bGxwdHIpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlRGF0YShEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExv
YWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IE5l
dHdvcmtMb2FkTWV0cmljcyYpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBOZXR3b3JrTG9h
ZE1ldHJpY3MmLCBSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9h
ZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VFcnJvciYpOwogCiAgICAgdm9pZCBzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyhE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggYmMyM2EzZDE1MTEuLjA4YTQ2ZThjZDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcApAQCAtNTc1LDcgKzU3NSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBoYXZlIE5ldHdvcmtMb2FkTWV0cmljcyBmb3IgQXBwbGljYXRpb25DYWNoZSBs
b2Fkcy4KICAgICBOZXR3b3JrTG9hZE1ldHJpY3MgZW1wdHlNZXRyaWNzOwotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyhtX2ZyYW1lLCBtX2ZyYW1lLT5sb2Fk
ZXIoKS5kb2N1bWVudExvYWRlcigpLCBtX2N1cnJlbnRSZXNvdXJjZUlkZW50aWZpZXIsIGVtcHR5
TWV0cmljcyk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5n
KG1fZnJhbWUsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCksIG1fY3VycmVudFJl
c291cmNlSWRlbnRpZmllciwgZW1wdHlNZXRyaWNzLCBudWxscHRyKTsKIAogICAgIGlmIChoYW5k
bGUgPT0gbV9tYW5pZmVzdEhhbmRsZSkgewogICAgICAgICBkaWRGaW5pc2hMb2FkaW5nTWFuaWZl
c3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
TmV0d29ya0xvYWRNZXRyaWNzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9OZXR3b3JrTG9hZE1ldHJpY3MubW0KaW5kZXggYmVhYWU2YWU0N2EuLmRkNDcxZTFkMzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtMb2FkTWV0cmljcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtMb2FkTWV0cmljcy5tbQpAQCAtNDEsMTEgKzQxLDExIEBAIHZvaWQgY29weVRp
bWluZ0RhdGEoTlNEaWN0aW9uYXJ5ICp0aW1pbmdEYXRhLCBOZXR3b3JrTG9hZE1ldHJpY3MmIHRp
bWluZykKIHsKICAgICBpZiAoIXRpbWluZ0RhdGEpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMg
dGltZSwgYnV0IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCiAgICAg
Ly8gYW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KICAg
ICBkb3VibGUgcmVmZXJlbmNlU3RhcnQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZO
VGltaW5nRGF0YUZldGNoU3RhcnQiKTsKLSAgICAKKwogICAgIGRvdWJsZSBkb21haW5Mb29rdXBT
dGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9v
a3VwU3RhcnQiKTsKICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gdGltaW5nVmFsdWUodGlt
aW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiKTsKICAgICBkb3VibGUg
Y29ubmVjdFN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFD
b25uZWN0U3RhcnQiKTsKQEAgLTUzLDE0ICs1MywxNCBAQCB2b2lkIGNvcHlUaW1pbmdEYXRhKE5T
RGljdGlvbmFyeSAqdGltaW5nRGF0YSwgTmV0d29ya0xvYWRNZXRyaWNzJiB0aW1pbmcpCiAgICAg
ZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5n
RGF0YUNvbm5lY3RFbmQiKTsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gdGltaW5nVmFsdWUo
dGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiKTsKICAgICBkb3VibGUg
cmVzcG9uc2VTdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRh
UmVzcG9uc2VTdGFydCIpOwotICAgIAotICAgIHRpbWluZy5kb21haW5Mb29rdXBTdGFydCA9IFNl
Y29uZHMoZG9tYWluTG9va3VwU3RhcnQgPD0gMCA/IFNlY29uZHMoLTEpIDogU2Vjb25kczo6ZnJv
bU1pbGxpc2Vjb25kcyhkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSk7Ci0gICAg
dGltaW5nLmRvbWFpbkxvb2t1cEVuZCA9IFNlY29uZHMoZG9tYWluTG9va3VwRW5kIDw9IDAgPyBT
ZWNvbmRzKC0xKSA6IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoZG9tYWluTG9va3VwRW5kIC0g
cmVmZXJlbmNlU3RhcnQpKTsKLSAgICB0aW1pbmcuY29ubmVjdFN0YXJ0ID0gU2Vjb25kcyhjb25u
ZWN0U3RhcnQgPD0gMCA/IFNlY29uZHMoLTEpIDogU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhj
b25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkpOwotICAgIHRpbWluZy5zZWN1cmVDb25uZWN0
aW9uU3RhcnQgPSBTZWNvbmRzKHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8PSAwID8gU2Vjb25kcygt
MSkgOiBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHNlY3VyZUNvbm5lY3Rpb25TdGFydCAtIHJl
ZmVyZW5jZVN0YXJ0KSk7Ci0gICAgdGltaW5nLmNvbm5lY3RFbmQgPSBTZWNvbmRzKGNvbm5lY3RF
bmQgPD0gMCA/IFNlY29uZHMoLTEpIDogU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhjb25uZWN0
RW5kIC0gcmVmZXJlbmNlU3RhcnQpKTsKLSAgICB0aW1pbmcucmVxdWVzdFN0YXJ0ID0gU2Vjb25k
cyhyZXF1ZXN0U3RhcnQgPD0gMCA/IFNlY29uZHMoMCkgOiBTZWNvbmRzOjpmcm9tTWlsbGlzZWNv
bmRzKHJlcXVlc3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSk7Ci0gICAgdGltaW5nLnJlc3BvbnNl
U3RhcnQgPSBTZWNvbmRzKHJlc3BvbnNlU3RhcnQgPD0gMCA/IFNlY29uZHMoMCkgOiBTZWNvbmRz
Ojpmcm9tTWlsbGlzZWNvbmRzKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkpOworCisg
ICAgdGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0ID0gU2Vjb25kcyhkb21haW5Mb29rdXBTdGFydCA8
PSAwID8gLTEgOiBkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KTsKKyAgICB0aW1p
bmcuZG9tYWluTG9va3VwRW5kID0gU2Vjb25kcyhkb21haW5Mb29rdXBFbmQgPD0gMCA/IC0xIDog
ZG9tYWluTG9va3VwRW5kIC0gcmVmZXJlbmNlU3RhcnQpOworICAgIHRpbWluZy5jb25uZWN0U3Rh
cnQgPSBTZWNvbmRzKGNvbm5lY3RTdGFydCA8PSAwID8gLTEgOiBjb25uZWN0U3RhcnQgLSByZWZl
cmVuY2VTdGFydCk7CisgICAgdGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFNlY29uZHMo
c2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAgPyAtMSA6IHNlY3VyZUNvbm5lY3Rpb25TdGFydCAt
IHJlZmVyZW5jZVN0YXJ0KTsKKyAgICB0aW1pbmcuY29ubmVjdEVuZCA9IFNlY29uZHMoY29ubmVj
dEVuZCA8PSAwID8gLTEgOiBjb25uZWN0RW5kIC0gcmVmZXJlbmNlU3RhcnQpOworICAgIHRpbWlu
Zy5yZXF1ZXN0U3RhcnQgPSBTZWNvbmRzKHJlcXVlc3RTdGFydCA8PSAwID8gMCA6IHJlcXVlc3RT
dGFydCAtIHJlZmVyZW5jZVN0YXJ0KTsKKyAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IFNlY29u
ZHMocmVzcG9uc2VTdGFydCA8PSAwID8gMCA6IHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFy
dCk7CiAKICAgICAvLyBOT1RFOiByZXNwb25zZUVuZCBpcyBub3QgcG9wdWxhdGVkIGluIHRoaXMg
Y29kZSBwYXRoLgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggY2U1NzZiNDYxMjQuLmVh
MzQ1MjVkOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAx
Ny0wMy0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE1vcmUgYWNjdXJhdGUgUmVzb3VyY2UgVGltaW5nIGRhdGEgaW4gV2Vi
IEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY5NTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZVRpbWluZ0RhdGEuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdEYXRhLnByb3RvdHlwZS5nZXQgcmVxdWVzdFN0
YXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ0RhdGEucHJvdG90eXBl
LmdldCByZXNwb25zZVN0YXJ0KToKKyAgICAgICAgRmFsbGJhY2sgdG8gdGhlIHN0YXJ0VGltZSBp
ZiBhdmFpbGFibGUgaW5zdGVhZCBvZiB1c2luZyB0aGUKKyAgICAgICAgaW5hY2N1cmF0ZSBXZWJD
b250ZW50UHJvY2VzcyBnYXRoZXJlZCB0aW1lc3RhbXBzLgorCisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUaW1pbmdEYXRhLnByb3RvdHlwZS5tYXJrUmVzcG9uc2VFbmRUaW1lKToKKyAg
ICAgICAgVmVyaWZ5IHJlc3BvbnNlRW5kIGNvbXBhcmVkIHRvIG90aGVyIHRpbWVzIHdlIG1heSBo
YXZlLgorCiAyMDE3LTAzLTA5ICBNYXR0IEJha2VyICA8bWF0dGJha2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgWEhSIGJyZWFrcG9pbnRzIFVJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1p
bmdEYXRhLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jl
c291cmNlVGltaW5nRGF0YS5qcwppbmRleCAyYWZmZGY3M2E4Yi4uN2RiZjFlZjc5YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJj
ZVRpbWluZ0RhdGEuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1Jlc291cmNlVGltaW5nRGF0YS5qcwpAQCAtNjUsNyArNjUsNyBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUaW1pbmdEYXRhID0gY2xhc3MgUmVzb3VyY2VUaW1pbmdEYXRhIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLgogICAgICAgICAgICAgcGF5bG9hZCA9IHt9OwogCiAgICAgICAgIGZ1bmN0
aW9uIG9mZnNldFRvVGltZXN0YW1wKG9mZnNldCkgewotICAgICAgICAgICAgcmV0dXJuIG9mZnNl
dCA+IDAgPyBwYXlsb2FkLnN0YXJ0VGltZSArIG9mZnNldCAvIDEwMDAgOiBOYU47CisgICAgICAg
ICAgICByZXR1cm4gb2Zmc2V0ID4gMCA/IHBheWxvYWQuc3RhcnRUaW1lICsgKG9mZnNldCAvIDEw
MDApIDogTmFOOwogICAgICAgICB9CiAKICAgICAgICAgbGV0IGRhdGEgPSB7CkBAIC05NSwxMyAr
OTUsMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nRGF0YSA9IGNsYXNzIFJlc291cmNl
VGltaW5nRGF0YSBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICBnZXQgY29ubmVjdFN0YXJ0KCkg
eyByZXR1cm4gdGhpcy5fY29ubmVjdFN0YXJ0OyB9CiAgICAgZ2V0IGNvbm5lY3RFbmQoKSB7IHJl
dHVybiB0aGlzLl9jb25uZWN0RW5kOyB9CiAgICAgZ2V0IHNlY3VyZUNvbm5lY3Rpb25TdGFydCgp
IHsgcmV0dXJuIHRoaXMuX3NlY3VyZUNvbm5lY3Rpb25TdGFydDsgfQotICAgIGdldCByZXF1ZXN0
U3RhcnQoKSB7IHJldHVybiB0aGlzLl9yZXF1ZXN0U3RhcnQgfHwgdGhpcy5fcmVzb3VyY2UucmVx
dWVzdFNlbnRUaW1lc3RhbXA7IH0KLSAgICBnZXQgcmVzcG9uc2VTdGFydCgpIHsgcmV0dXJuIHRo
aXMuX3Jlc3BvbnNlU3RhcnQgfHwgdGhpcy5fcmVzb3VyY2UucmVzcG9uc2VSZWNlaXZlZFRpbWVz
dGFtcDsgfQorICAgIGdldCByZXF1ZXN0U3RhcnQoKSB7IHJldHVybiB0aGlzLl9yZXF1ZXN0U3Rh
cnQgfHwgdGhpcy5fc3RhcnRUaW1lIHx8IHRoaXMuX3Jlc291cmNlLnJlcXVlc3RTZW50VGltZXN0
YW1wOyB9CisgICAgZ2V0IHJlc3BvbnNlU3RhcnQoKSB7IHJldHVybiB0aGlzLl9yZXNwb25zZVN0
YXJ0IHx8IHRoaXMuX3N0YXJ0VGltZSB8fCB0aGlzLl9yZXNvdXJjZS5yZXNwb25zZVJlY2VpdmVk
VGltZXN0YW1wOyB9CiAgICAgZ2V0IHJlc3BvbnNlRW5kKCkgeyByZXR1cm4gdGhpcy5fcmVzcG9u
c2VFbmQgfHwgdGhpcy5fcmVzb3VyY2UuZmluaXNoZWRPckZhaWxlZFRpbWVzdGFtcDsgfQogCiAg
ICAgbWFya1Jlc3BvbnNlRW5kVGltZShyZXNwb25zZUVuZCkKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHR5cGVvZiByZXNwb25zZUVuZCA9PT0gIm51bWJlciIpOworICAgICAgICBjb25z
b2xlLmFzc2VydChpc05hTihyZXNwb25zZUVuZCkgfHwgcmVzcG9uc2VFbmQgPj0gdGhpcy5zdGFy
dFRpbWUsICJyZXNwb25zZUVuZCB0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHN0YXJ0
IHRpbWUiLCB0aGlzLnN0YXJ0VGltZSwgcmVzcG9uc2VFbmQpOworICAgICAgICBjb25zb2xlLmFz
c2VydChpc05hTihyZXNwb25zZUVuZCkgfHwgcmVzcG9uc2VFbmQgPj0gdGhpcy5yZXF1ZXN0U3Rh
cnQsICJyZXNwb25zZUVuZCB0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHJlcXVlc3Qg
dGltZSIsIHRoaXMucmVxdWVzdFN0YXJ0LCByZXNwb25zZUVuZCk7CiAgICAgICAgIHRoaXMuX3Jl
c3BvbnNlRW5kID0gcmVzcG9uc2VFbmQ7CiAgICAgfQogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>