<?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>30875</bug_id>
          
          <creation_ts>2009-10-28 12:28:34 -0700</creation_ts>
          <short_desc>Web Inspector: Pull items collections from resources panel and timeline panel into AbstractTimelinePanel.</short_desc>
          <delta_ts>2009-10-28 14:17:58 -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>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158660</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-28 12:28:34 -0700</bug_when>
    <thetext>The idea is to implement Timeline panel as two AbstractTimelinePanels: top and bottom. Hence I&apos;d like reuse more code in AbstractTimelinePanel. It is now capable of rendering tree to the left and grid to the right provided constructors for tree elements and bars. All the refresh, reset, add, remove code is unified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158661</commentid>
    <comment_count>1</comment_count>
      <attachid>42049</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-28 12:30:37 -0700</bug_when>
    <thetext>Created attachment 42049
[PATCH] Pulls collections + does some more unification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158684</commentid>
    <comment_count>2</comment_count>
      <attachid>42049</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-28 13:38:14 -0700</bug_when>
    <thetext>Comment on attachment 42049
[PATCH] Pulls collections + does some more unification.


&gt; +                // Create the resource tree element and graph.

Mentions resources.


&gt; +            this._recordStyles[recordTypes.XHRReadyStateChange] = { title: WebInspector.UIString(&quot;XHR Ready State Change&quot;), category: this.categories.loading };
&gt; +            this._recordStyles[recordTypes.XHRLoad] = { title: WebInspector.UIString(&quot;XHR Load&quot;), category: this.categories.loading };

I think these should be under scripting not loading, sicne they only wrap the DOM event call into javascript, not the load.

Once we show resources you will see the XHR resource too as a load bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158699</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-28 14:17:58 -0700</bug_when>
    <thetext>Landed with comments addressed...

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/AbstractTimelinePanel.js
	M	WebCore/inspector/front-end/ResourceCategory.js
	M	WebCore/inspector/front-end/ResourcesPanel.js
	M	WebCore/inspector/front-end/TimelinePanel.js
	M	WebCore/inspector/front-end/inspector.css
	M	WebCore/inspector/front-end/inspector.html
Committed r50236</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42049</attachid>
            <date>2009-10-28 12:30:37 -0700</date>
            <delta_ts>2009-10-28 13:38:13 -0700</delta_ts>
            <desc>[PATCH] Pulls collections + does some more unification.</desc>
            <filename>pull_collections</filename>
            <type>text/plain</type>
            <size>42672</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGFkNDY0Yy4uMmI1NjExYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAwOS0xMC0yOCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQdWxsIGl0ZW1zIGNvbGxlY3Rpb25z
IGZyb20gcmVzb3VyY2VzIHBhbmVsIGFuZAorICAgICAgICB0aW1lbGluZSBwYW5lbCBpbnRvIEFi
c3RyYWN0VGltZWxpbmVQYW5lbC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzA4NzUKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQWJz
dHJhY3RUaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3RyYWN0VGlt
ZWxpbmVQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVs
LnByb3RvdHlwZS5wb3B1bGF0ZVNpZGViYXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3Ry
YWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUuY3JlYXRlSXRlbVRyZWVFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwucHJvdG90eXBlLmNyZWF0ZUl0
ZW1HcmFwaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnBy
b3RvdHlwZS5fc2hvd0NhdGVnb3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BYnN0cmFjdFRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLl9oaWRlQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZmlsdGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVHcmFwaCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZS51
cGRhdGVNYWluVmlld1dpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVs
aW5lUGFuZWwucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3Ry
YWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IGNhbGN1bGF0b3IpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUuc2V0IGNhbGN1
bGF0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90
b3R5cGUuYWRkSXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBh
bmVsLnByb3RvdHlwZS5yZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BYnN0cmFj
dFRpbWVsaW5lUGFuZWwucHJvdG90eXBlLnJlZnJlc2hJdGVtKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwucHJvdG90eXBlLnJldmVhbEFuZFNlbGVjdEl0ZW0p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
c29ydEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlLmFkanVzdFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
YnN0cmFjdFRpbWVsaW5lQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFic3RyYWN0
VGltZWxpbmVDYXRlZ29yeS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNhdGVnb3J5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuY3JlYXRlSXRlbVRyZWVF
bGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUu
Y3JlYXRlSXRlbUdyYXBoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUuaXNDYXRlZ29yeVZpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZS5wb3B1bGF0ZVNpZGViYXIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5nZXQgc2VhcmNoYWJsZVZpZXdzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuZ2V0IHNlYXJjaFJlc3Vs
dHNTb3J0RnVuY3Rpb24uc29ydEZ1Y3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZS5nZXQgc2VhcmNoUmVzdWx0c1NvcnRGdW5jdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLnNlYXJjaE1hdGNoRm91
bmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5zZWFy
Y2hDYW5jZWxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90
eXBlLnBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5yZW1vdmVSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlLmFkZE1lc3NhZ2VUb1Jlc291cmNlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuY2xlYXJNZXNzYWdlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLnJlZnJlc2hSZXNvdXJjZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLnJlY3JlYXRl
Vmlld0ZvclJlc291cmNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZS5zaG93UmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5fc29ydFJlc291cmNlc0lmTmVlZGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUxhcmdlclJlc291
cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl90
b2dnbGVSZXNvdXJjZVRyYWNraW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQ
YW5lbC5wcm90b3R5cGUuZ2V0IF9yZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlVGltZUNhbGN1bGF0b3IucHJvdG90eXBlLl91cHBlckJvdW5kKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUuZ2V0IGNhdGVnb3JpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlLnBvcHVsYXRlU2lkZWJhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5wcm90b3R5cGUuYWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuY3JlYXRlSXRlbVRyZWVFbGVtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5jcmVhdGVJ
dGVtR3JhcGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
Ll9mb3JtYXRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCiAyMDA5LTEwLTI4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKaW5kZXggODVkMWYwNS4uYmIyN2Mw
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxp
bmVQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1l
bGluZVBhbmVsLmpzCkBAIC0zMSw2ICszMSw4IEBACiBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1l
bGluZVBhbmVsID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRo
aXMpOworICAgIHRoaXMuX2l0ZW1zID0gW107CisgICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtdOwog
fQogCiBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKQEAg
LTQwLDIyICs0MiwxNyBAQCBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHt9OwogICAgIH0sCiAKLSAgICBzaG93Q2F0ZWdvcnk6
IGZ1bmN0aW9uKGNhdGVnb3J5KQorICAgIHBvcHVsYXRlU2lkZWJhcjogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBjb25jcmV0ZSBzdWJj
bGFzc2VzLgogICAgIH0sCiAKLSAgICBoaWRlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQor
ICAgIGNyZWF0ZUl0ZW1UcmVlRWxlbWVudDogZnVuY3Rpb24oaXRlbSkKICAgICB7CiAgICAgICAg
IC8vIFNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSB0aGUgY29uY3JldGUgc3ViY2xhc3Nlcy4KICAg
ICB9LAogCi0gICAgcG9wdWxhdGVTaWRlYmFyOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAv
LyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNzZXMuCi0gICAg
fSwKLQotICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKKyAgICBjcmVhdGVJdGVtR3JhcGg6IGZ1bmN0
aW9uKGl0ZW0pCiAgICAgewogICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgdGhl
IGNvbmNyZXRlIHN1YmNsYXNzZXMuCiAgICAgfSwKQEAgLTExMSw2ICsxMDgsMjAgQEAgV2ViSW5z
cGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBj
cmVhdGVGaWx0ZXJFbGVtZW50LmNhbGwodGhpcywgY2F0ZWdvcnkpOwogICAgIH0sCiAKKyAgICBf
c2hvd0NhdGVnb3J5OiBmdW5jdGlvbihjYXRlZ29yeSkKKyAgICB7CisgICAgICAgIHZhciBmaWx0
ZXJDbGFzcyA9ICJmaWx0ZXItIiArIGNhdGVnb3J5LnRvTG93ZXJDYXNlKCk7CisgICAgICAgIHRo
aXMuaXRlbXNHcmFwaHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoZmlsdGVyQ2xhc3MpOworICAgICAg
ICB0aGlzLml0ZW1zVHJlZUVsZW1lbnQuY2hpbGRyZW5MaXN0RWxlbWVudC5hZGRTdHlsZUNsYXNz
KGZpbHRlckNsYXNzKTsKKyAgICB9LAorCisgICAgX2hpZGVDYXRlZ29yeTogZnVuY3Rpb24oY2F0
ZWdvcnkpCisgICAgeworICAgICAgICB2YXIgZmlsdGVyQ2xhc3MgPSAiZmlsdGVyLSIgKyBjYXRl
Z29yeS50b0xvd2VyQ2FzZSgpOworICAgICAgICB0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1v
dmVTdHlsZUNsYXNzKGZpbHRlckNsYXNzKTsKKyAgICAgICAgdGhpcy5pdGVtc1RyZWVFbGVtZW50
LmNoaWxkcmVuTGlzdEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7CisgICAg
fSwKKwogICAgIGZpbHRlcjogZnVuY3Rpb24odGFyZ2V0LCBzZWxlY3RNdWx0aXBsZSkKICAgICB7
CiAgICAgICAgIGZ1bmN0aW9uIHVuc2VsZWN0QWxsKCkKQEAgLTEyMSw3ICsxMzIsNyBAQCBXZWJJ
bnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBjaGlsZC5yZW1vdmVTdHlsZUNs
YXNzKCJzZWxlY3RlZCIpOwotICAgICAgICAgICAgICAgIHRoaXMuaGlkZUNhdGVnb3J5KGNoaWxk
LmNhdGVnb3J5KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9oaWRlQ2F0ZWdvcnkoY2hpbGQuY2F0
ZWdvcnkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTEzNyw3ICsxNDgsNyBAQCBX
ZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIC8vIFNvbWV0aGluZyBvdGhlciB0aGFuIEFsbCBpcyBiZWluZyBzZWxlY3RlZCwgc28gd2Ug
d2FudCB0byB1bnNlbGVjdCBBbGwuCiAgICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJBbGxFbGVt
ZW50Lmhhc1N0eWxlQ2xhc3MoInNlbGVjdGVkIikpIHsKICAgICAgICAgICAgICAgICB0aGlzLmZp
bHRlckFsbEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKLSAgICAgICAgICAg
ICAgICB0aGlzLmhpZGVDYXRlZ29yeSgiYWxsIik7CisgICAgICAgICAgICAgICAgdGhpcy5faGlk
ZUNhdGVnb3J5KCJhbGwiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xNDcsNyAr
MTU4LDcgQEAgV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB1bnNlbGVjdEFsbC5jYWxsKHRoaXMpOwogCiAgICAgICAgICAgICB0YXJn
ZXQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKLSAgICAgICAgICAgIHRoaXMuc2hvd0NhdGVn
b3J5KHRhcmdldC5jYXRlZ29yeSk7CisgICAgICAgICAgICB0aGlzLl9zaG93Q2F0ZWdvcnkodGFy
Z2V0LmNhdGVnb3J5KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xNTUs
MTIgKzE2NiwxMiBAQCBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIC8vIElmIHNlbGVjdE11bHRpcGxlIGlzIHR1cm5lZCBvbiwgYW5k
IHdlIHdlcmUgc2VsZWN0ZWQsIHdlIGp1c3QKICAgICAgICAgICAgIC8vIHdhbnQgdG8gdW5zZWxl
Y3Qgb3Vyc2VsdmVzLgogICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZVN0eWxlQ2xhc3MoInNlbGVj
dGVkIik7Ci0gICAgICAgICAgICB0aGlzLmhpZGVDYXRlZ29yeSh0YXJnZXQuY2F0ZWdvcnkpOwor
ICAgICAgICAgICAgdGhpcy5faGlkZUNhdGVnb3J5KHRhcmdldC5jYXRlZ29yeSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiBzZWxlY3RNdWx0aXBsZSBpcyB0dXJuZWQgb24s
IGFuZCB3ZSB3ZXJlbid0IHNlbGVjdGVkLCB3ZSBqdXN0CiAgICAgICAgICAgICAvLyB3YW50IHRv
IHNlbGVjdCBvdXJzZWx2ZXMuCiAgICAgICAgICAgICB0YXJnZXQuYWRkU3R5bGVDbGFzcygic2Vs
ZWN0ZWQiKTsKLSAgICAgICAgICAgIHRoaXMuc2hvd0NhdGVnb3J5KHRhcmdldC5jYXRlZ29yeSk7
CisgICAgICAgICAgICB0aGlzLl9zaG93Q2F0ZWdvcnkodGFyZ2V0LmNhdGVnb3J5KTsKICAgICAg
ICAgfQogICAgIH0sCiAKQEAgLTE5MCw5ICsyMDEsOSBAQCBXZWJJbnNwZWN0b3IuQWJzdHJhY3RU
aW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zdW1tYXJ5QmFyLmVsZW1l
bnQuaWQgPSAicmVzb3VyY2VzLXN1bW1hcnkiOwogICAgICAgICB0aGlzLl9jb250YWluZXJDb250
ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnN1bW1hcnlCYXIuZWxlbWVudCk7CiAKLSAgICAg
ICAgdGhpcy5yZXNvdXJjZXNHcmFwaHNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5pZCA9ICJyZXNvdXJj
ZXMtZ3JhcGhzIjsKLSAgICAgICAgdGhpcy5fY29udGFpbmVyQ29udGVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5yZXNvdXJjZXNHcmFwaHNFbGVtZW50KTsKKyAgICAgICAgdGhpcy5pdGVtc0dy
YXBoc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGhp
cy5pdGVtc0dyYXBoc0VsZW1lbnQuaWQgPSAicmVzb3VyY2VzLWdyYXBocyI7CisgICAgICAgIHRo
aXMuX2NvbnRhaW5lckNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaXRlbXNHcmFwaHNF
bGVtZW50KTsKIAogICAgICAgICB0aGlzLmRpdmlkZXJzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLmRpdmlkZXJzRWxlbWVudC5pZCA9ICJyZXNv
dXJjZXMtZGl2aWRlcnMiOwpAQCAtMzA1LDYgKzMxNiwxNDggQEAgV2ViSW5zcGVjdG9yLkFic3Ry
YWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl9jb250
YWluZXJDb250ZW50RWxlbWVudC5zdHlsZS5sZWZ0ID0gd2lkdGggKyAicHgiOwogICAgICAgICB0
aGlzLnVwZGF0ZUdyYXBoRGl2aWRlcnNJZk5lZWRlZCgpOworICAgIH0sCisKKyAgICByZWZyZXNo
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLm5lZWRzUmVmcmVzaCA9IGZhbHNlOwor
CisgICAgICAgIHZhciBzdGFsZUl0ZW1zTGVuZ3RoID0gdGhpcy5fc3RhbGVJdGVtcy5sZW5ndGg7
CisgICAgICAgIHZhciBib3VuZGFyaWVzQ2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3RhbGVJdGVtc0xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
aXRlbSA9IHRoaXMuX3N0YWxlSXRlbXNbaV07CisgICAgICAgICAgICBpZiAoIWl0ZW0uX2l0ZW1U
cmVlRWxlbWVudCkgeworICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgcmVzb3VyY2UgdHJl
ZSBlbGVtZW50IGFuZCBncmFwaC4KKyAgICAgICAgICAgICAgICBpdGVtLl9pdGVtVHJlZUVsZW1l
bnQgPSB0aGlzLmNyZWF0ZUl0ZW1UcmVlRWxlbWVudChpdGVtKTsKKyAgICAgICAgICAgICAgICBp
dGVtLl9pdGVtVHJlZUVsZW1lbnQuX2l0ZW1HcmFwaCA9IHRoaXMuY3JlYXRlSXRlbUdyYXBoKGl0
ZW0pOworCisgICAgICAgICAgICAgICAgdGhpcy5pdGVtc1RyZWVFbGVtZW50LmFwcGVuZENoaWxk
KGl0ZW0uX2l0ZW1UcmVlRWxlbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0dyYXBo
c0VsZW1lbnQuYXBwZW5kQ2hpbGQoaXRlbS5faXRlbVRyZWVFbGVtZW50Ll9pdGVtR3JhcGguZ3Jh
cGhFbGVtZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGl0ZW0uX2l0ZW1U
cmVlRWxlbWVudC5yZWZyZXNoKQorICAgICAgICAgICAgICAgIGl0ZW0uX2l0ZW1UcmVlRWxlbWVu
dC5yZWZyZXNoKCk7CisKKyAgICAgICAgICAgIGlmICh0aGlzLmNhbGN1bGF0b3IudXBkYXRlQm91
bmRhcmllcyhpdGVtKSkKKyAgICAgICAgICAgICAgICBib3VuZGFyaWVzQ2hhbmdlZCA9IHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoYm91bmRhcmllc0NoYW5nZWQpIHsKKyAgICAgICAg
ICAgIC8vIFRoZSBib3VuZGFyaWVzIGNoYW5nZWQsIHNvIGFsbCBpdGVtIGdyYXBocyBhcmUgc3Rh
bGUuCisgICAgICAgICAgICB0aGlzLl9zdGFsZUl0ZW1zID0gdGhpcy5faXRlbXM7CisgICAgICAg
ICAgICBzdGFsZUl0ZW1zTGVuZ3RoID0gdGhpcy5fc3RhbGVJdGVtcy5sZW5ndGg7CisgICAgICAg
IH0KKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWxlSXRlbXNMZW5ndGg7ICsraSkK
KyAgICAgICAgICAgIHRoaXMuX3N0YWxlSXRlbXNbaV0uX2l0ZW1UcmVlRWxlbWVudC5faXRlbUdy
YXBoLnJlZnJlc2godGhpcy5jYWxjdWxhdG9yKTsKKworICAgICAgICB0aGlzLl9zdGFsZUl0ZW1z
ID0gW107CisKKyAgICAgICAgdGhpcy51cGRhdGVHcmFwaERpdmlkZXJzSWZOZWVkZWQoKTsKKyAg
ICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuY29udGFp
bmVyRWxlbWVudC5zY3JvbGxUb3AgPSAwOworCisgICAgICAgIGlmICh0aGlzLl9jYWxjdWxhdG9y
KQorICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5yZXNldCgpOworCisgICAgICAgIGlmICh0
aGlzLl9pdGVtcykgeworICAgICAgICAgICAgdmFyIGl0ZW1zTGVuZ3RoID0gdGhpcy5faXRlbXMu
bGVuZ3RoOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtc0xlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLl9pdGVtc1tpXTsKKyAgICAgICAg
ICAgICAgICBkZWxldGUgaXRlbS5faXRlbXNUcmVlRWxlbWVudDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHRoaXMuX2l0ZW1zID0gW107CisgICAgICAgIHRoaXMuX3N0YWxl
SXRlbXMgPSBbXTsKKworICAgICAgICB0aGlzLml0ZW1zVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRy
ZW4oKTsKKyAgICAgICAgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
KworICAgICAgICB0aGlzLnVwZGF0ZUdyYXBoRGl2aWRlcnNJZk5lZWRlZCh0cnVlKTsKKyAgICB9
LAorCisgICAgZ2V0IGNhbGN1bGF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nh
bGN1bGF0b3I7CisgICAgfSwKKworICAgIHNldCBjYWxjdWxhdG9yKHgpCisgICAgeworICAgICAg
ICBpZiAoIXggfHwgdGhpcy5fY2FsY3VsYXRvciA9PT0geCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yID0geDsKKyAgICAgICAgdGhpcy5fY2FsY3VsYXRv
ci5yZXNldCgpOworCisgICAgICAgIHRoaXMuX3N0YWxlSXRlbXMgPSB0aGlzLl9pdGVtczsKKyAg
ICAgICAgdGhpcy5yZWZyZXNoKCk7CisgICAgfSwKKworICAgIGFkZEl0ZW06IGZ1bmN0aW9uKGl0
ZW0pCisgICAgeworICAgICAgICB0aGlzLl9pdGVtcy5wdXNoKGl0ZW0pOworICAgICAgICB0aGlz
LnJlZnJlc2hJdGVtKGl0ZW0pOworICAgIH0sCisKKyAgICByZW1vdmVJdGVtOiBmdW5jdGlvbihp
dGVtKQorICAgIHsKKyAgICAgICAgdGhpcy5faXRlbXMucmVtb3ZlKGl0ZW0sIHRydWUpOworCisg
ICAgICAgIGlmIChpdGVtLl9pdGVtVHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMuaXRl
bXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZChyZXNvdXJjZS5faXRlbVRyZWVFbGVtZW50KTsKKyAg
ICAgICAgICAgIHRoaXMuaXRlbXNHcmFwaHNFbGVtZW50LnJlbW92ZUNoaWxkKHJlc291cmNlLl9p
dGVtVHJlZUVsZW1lbnQuX2l0ZW1HcmFwaC5ncmFwaEVsZW1lbnQpOworICAgICAgICB9CisKKyAg
ICAgICAgZGVsZXRlIGl0ZW0uX2l0ZW1UcmVlRWxlbWVudDsKKyAgICAgICAgdGhpcy5hZGp1c3RT
Y3JvbGxQb3NpdGlvbigpOworICAgIH0sCisKKyAgICByZWZyZXNoSXRlbTogZnVuY3Rpb24oaXRl
bSkKKyAgICB7CisgICAgICAgIHRoaXMuX3N0YWxlSXRlbXMucHVzaChpdGVtKTsKKyAgICAgICAg
dGhpcy5uZWVkc1JlZnJlc2ggPSB0cnVlOworICAgIH0sCisKKyAgICByZXZlYWxBbmRTZWxlY3RJ
dGVtOiBmdW5jdGlvbihpdGVtKQorICAgIHsKKyAgICAgICAgaWYgKGl0ZW0uX2l0ZW1zVHJlZUVs
ZW1lbnQpIHsKKyAgICAgICAgICAgIGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQucmV2ZWFsKCk7Cisg
ICAgICAgICAgICBpdGVtLl9pdGVtc1RyZWVFbGVtZW50LnNlbGVjdCh0cnVlKTsKKyAgICAgICAg
fQorICAgIH0sCisKKyAgICBzb3J0SXRlbXM6IGZ1bmN0aW9uKHNvcnRpbmdGdW5jdGlvbikKKyAg
ICB7CisgICAgICAgIHZhciBzb3J0ZWRFbGVtZW50cyA9IFtdLmNvbmNhdCh0aGlzLml0ZW1zVHJl
ZUVsZW1lbnQuY2hpbGRyZW4pOworICAgICAgICBzb3J0ZWRFbGVtZW50cy5zb3J0KHNvcnRpbmdG
dW5jdGlvbik7CisKKyAgICAgICAgdmFyIHNvcnRlZEVsZW1lbnRzTGVuZ3RoID0gc29ydGVkRWxl
bWVudHMubGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZEVsZW1lbnRz
TGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHNvcnRlZEVsZW1l
bnRzW2ldOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50ID09PSB0aGlzLml0ZW1zVHJlZUVs
ZW1lbnQuY2hpbGRyZW5baV0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
ICAgIHZhciB3YXNTZWxlY3RlZCA9IHRyZWVFbGVtZW50LnNlbGVjdGVkOworICAgICAgICAgICAg
dGhpcy5pdGVtc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKyAgICAgICAg
ICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5pbnNlcnRDaGlsZCh0cmVlRWxlbWVudCwgaSk7Cisg
ICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQu
c2VsZWN0KHRydWUpOworCisgICAgICAgICAgICB2YXIgZ3JhcGhFbGVtZW50ID0gdHJlZUVsZW1l
bnQuX2l0ZW1HcmFwaC5ncmFwaEVsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLml0ZW1zR3JhcGhz
RWxlbWVudC5pbnNlcnRCZWZvcmUoZ3JhcGhFbGVtZW50LCB0aGlzLml0ZW1zR3JhcGhzRWxlbWVu
dC5jaGlsZHJlbltpXSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgYWRqdXN0U2Nyb2xsUG9z
aXRpb246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFByZXZlbnQgdGhlIGNvbnRhaW5l
ciBmcm9tIGJlaW5nIHNjcm9sbGVkIG9mZiB0aGUgZW5kLgorICAgICAgICBpZiAoKHRoaXMuY29u
dGFpbmVyRWxlbWVudC5zY3JvbGxUb3AgKyB0aGlzLmNvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVp
Z2h0KSA+IHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0SGVpZ2h0KQorICAgICAgICAgICAgdGhp
cy5jb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNl
dEhlaWdodCAtIHRoaXMuY29udGFpbmVyRWxlbWVudC5vZmZzZXRIZWlnaHQpOwogICAgIH0KIH0K
IApAQCAtMzc5LDMgKzUzMiwxNyBAQCBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhbGN1
bGF0b3IucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTsKICAg
ICB9CiB9CisKK1dlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2F0ZWdvcnkgPSBmdW5jdGlv
bihuYW1lLCB0aXRsZSwgY29sb3IpCit7CisgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB0aGlz
LnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jb2xvciA9IGNvbG9yOworfQorCitXZWJJbnNwZWN0
b3IuQWJzdHJhY3RUaW1lbGluZUNhdGVnb3J5LnByb3RvdHlwZSA9IHsKKyAgICB0b1N0cmluZzog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudGl0bGU7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdvcnku
anMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5qcwppbmRl
eCA3YjQ2NzY0Li42ZTk0MjY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VDYXRlZ29yeS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VDYXRlZ29yeS5qcwpAQCAtMjgsMTcgKzI4LDExIEBACiAKIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNhdGVnb3J5ID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIGNvbG9yKQogewotICAgIHRo
aXMubmFtZSA9IG5hbWU7Ci0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwotICAgIHRoaXMuY29sb3Ig
PSBjb2xvcjsKKyAgICBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhdGVnb3J5LmNhbGwo
dGhpcywgbmFtZSwgdGl0bGUsIGNvbG9yKTsKICAgICB0aGlzLnJlc291cmNlcyA9IFtdOwogfQog
CiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeS5wcm90b3R5cGUgPSB7Ci0gICAgdG9TdHJp
bmc6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnRpdGxlOwotICAgIH0s
CiAKICAgICBhZGRSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCiAgICAgewpAQCAtNjcsMyAr
NjEsNSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMucmVzb3VyY2VzID0gW107CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VDYXRlZ29yeS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkFic3RyYWN0VGlt
ZWxpbmVDYXRlZ29yeS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKaW5kZXggNzFiYzlhZC4uOTQwNTcwZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMzAsNiArMzAsNyBAQAog
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3Bl
Y3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwuY2FsbCh0aGlzKTsKKwogICAgIHRoaXMuZWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJyZXNvdXJjZXMiKTsKIAogICAgIHRoaXMuX2NyZWF0ZVBhbmVsRW5h
YmxlcigpOwpAQCAtNjUsMjMgKzY2LDE5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29y
aWVzOwogICAgIH0sCiAKLSAgICBzaG93Q2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQorICAg
IGNyZWF0ZUl0ZW1UcmVlRWxlbWVudDogZnVuY3Rpb24oaXRlbSkKICAgICB7Ci0gICAgICAgIHZh
ciBmaWx0ZXJDbGFzcyA9ICJmaWx0ZXItIiArIGNhdGVnb3J5LnRvTG93ZXJDYXNlKCk7Ci0gICAg
ICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5hZGRTdHlsZUNsYXNzKGZpbHRlckNsYXNz
KTsKLSAgICAgICAgdGhpcy5yZXNvdXJjZXNUcmVlRWxlbWVudC5jaGlsZHJlbkxpc3RFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoZmlsdGVyQ2xhc3MpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudChpdGVtKTsKICAgICB9LAotICAgIAotICAg
IGhpZGVDYXRlZ29yeTogZnVuY3Rpb24oY2F0ZWdvcnkpCisKKyAgICBjcmVhdGVJdGVtR3JhcGg6
IGZ1bmN0aW9uKGl0ZW0pCiAgICAgewotICAgICAgICB2YXIgZmlsdGVyQ2xhc3MgPSAiZmlsdGVy
LSIgKyBjYXRlZ29yeS50b0xvd2VyQ2FzZSgpOwotICAgICAgICB0aGlzLnJlc291cmNlc0dyYXBo
c0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7Ci0gICAgICAgIHRoaXMucmVz
b3VyY2VzVHJlZUVsZW1lbnQuY2hpbGRyZW5MaXN0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKGZp
bHRlckNsYXNzKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFw
aChpdGVtKTsKICAgICB9LAogCiAgICAgaXNDYXRlZ29yeVZpc2libGU6IGZ1bmN0aW9uKGNhdGVn
b3J5TmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiAodGhpcy5yZXNvdXJjZXNHcmFwaHNFbGVt
ZW50Lmhhc1N0eWxlQ2xhc3MoImZpbHRlci1hbGwiKSB8fCB0aGlzLnJlc291cmNlc0dyYXBoc0Vs
ZW1lbnQuaGFzU3R5bGVDbGFzcygiZmlsdGVyLSIgKyBjYXRlZ29yeU5hbWUudG9Mb3dlckNhc2Uo
KSkpOworICAgICAgICByZXR1cm4gKHRoaXMuaXRlbXNHcmFwaHNFbGVtZW50Lmhhc1N0eWxlQ2xh
c3MoImZpbHRlci1hbGwiKSB8fCB0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5oYXNTdHlsZUNsYXNz
KCJmaWx0ZXItIiArIGNhdGVnb3J5TmFtZS50b0xvd2VyQ2FzZSgpKSk7CiAgICAgfSwKIAogICAg
IHBvcHVsYXRlU2lkZWJhcjogZnVuY3Rpb24oKQpAQCAtMTE5LDEwICsxMTYsMTAgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5ncmFwaHNU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZChzaXplR3JhcGhJdGVtKTsKICAgICAgICAgdGhpcy5ncmFw
aHNUcmVlRWxlbWVudC5leHBhbmQoKTsKIAotICAgICAgICB0aGlzLnJlc291cmNlc1RyZWVFbGVt
ZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50KFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUkVTT1VSQ0VTIiksIHt9LCB0cnVlKTsKLSAgICAgICAgdGhpcy5zaWRl
YmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLnJlc291cmNlc1RyZWVFbGVtZW50KTsKKyAgICAgICAg
dGhpcy5pdGVtc1RyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRy
ZWVFbGVtZW50KFdlYkluc3BlY3Rvci5VSVN0cmluZygiUkVTT1VSQ0VTIiksIHt9LCB0cnVlKTsK
KyAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLml0ZW1zVHJlZUVsZW1l
bnQpOwogCi0gICAgICAgIHRoaXMucmVzb3VyY2VzVHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAg
ICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5leHBhbmQoKTsKICAgICB9LAogCiAgICAgX2NyZWF0
ZVBhbmVsRW5hYmxlcjogZnVuY3Rpb24oKQpAQCAtMjI5LDcgKzIyNiw3IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXNvdXJjZXNMZW5n
dGggPSB0aGlzLl9yZXNvdXJjZXMubGVuZ3RoOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlc291cmNlc0xlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlz
Ll9yZXNvdXJjZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXJlc291cmNlLl9yZXNvdXJjZXNUcmVl
RWxlbWVudCkKKyAgICAgICAgICAgIGlmICghcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2VWaWV3ID0g
dGhpcy5yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgICAgICBpZiAo
IXJlc291cmNlVmlldy5wZXJmb3JtU2VhcmNoIHx8IHJlc291cmNlVmlldyA9PT0gdmlzaWJsZVZp
ZXcpCkBAIC0yNDYsNyArMjQzLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBzb3J0RnVjdGlvbihhLCBiKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VUcmVlRWxlbWVudFNvcnRGdW5jdGlvbihhLnJl
c291cmNlLl9yZXNvdXJjZXNUcmVlRWxlbWVudCwgYi5yZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVs
ZW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlVHJlZUVsZW1lbnRTb3J0RnVuY3Rp
b24oYS5yZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudCwgYi5yZXNvdXJjZS5faXRlbXNUcmVlRWxl
bWVudCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gc29ydEZ1Y3Rpb247CkBAIC0yNTQs
NyArMjUxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAog
ICAgIHNlYXJjaE1hdGNoRm91bmQ6IGZ1bmN0aW9uKHZpZXcsIG1hdGNoZXMpCiAgICAgewotICAg
ICAgICB2aWV3LnJlc291cmNlLl9yZXNvdXJjZXNUcmVlRWxlbWVudC5zZWFyY2hNYXRjaGVzID0g
bWF0Y2hlczsKKyAgICAgICAgdmlldy5yZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudC5zZWFyY2hN
YXRjaGVzID0gbWF0Y2hlczsKICAgICB9LAogCiAgICAgc2VhcmNoQ2FuY2VsZWQ6IGZ1bmN0aW9u
KHN0YXJ0aW5nTmV3U2VhcmNoKQpAQCAtMjY2LDggKzI2Myw4IEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9yZXNvdXJjZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9
IHRoaXMuX3Jlc291cmNlc1tpXTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZS5fcmVzb3VyY2Vz
VHJlZUVsZW1lbnQpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2UuX3Jlc291cmNlc1RyZWVFbGVt
ZW50LnVwZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CisgICAgICAgICAgICBpZiAocmVzb3VyY2Uu
X2l0ZW1zVHJlZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVs
ZW1lbnQudXBkYXRlRXJyb3JzQW5kV2FybmluZ3MoKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAg
LTI3NSw4ICsyNzIsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZXNvdXJjZXMubGVu
Z3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc1tp
XTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQpCi0gICAg
ICAgICAgICAgICAgcmVzb3VyY2UuX3Jlc291cmNlc1RyZWVFbGVtZW50LnJlc2V0QnViYmxlKCk7
CisgICAgICAgICAgICBpZiAocmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQpCisgICAgICAgICAg
ICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQucmVzZXRCdWJibGUoKTsKICAgICAgICAg
fQogCiAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5j
YWxsKHRoaXMsIHF1ZXJ5KTsKQEAgLTI4OSwyMyArMjg2LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAot
ICAgIGdldCBjYWxjdWxhdG9yKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jYWxjdWxh
dG9yOwotICAgIH0sCi0KLSAgICBzZXQgY2FsY3VsYXRvcih4KQotICAgIHsKLSAgICAgICAgaWYg
KCF4IHx8IHRoaXMuX2NhbGN1bGF0b3IgPT09IHgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgdGhpcy5fY2FsY3VsYXRvciA9IHg7Ci0gICAgICAgIHRoaXMuX2NhbGN1bGF0b3IucmVz
ZXQoKTsKLQotICAgICAgICB0aGlzLl9zdGFsZVJlc291cmNlcyA9IHRoaXMuX3Jlc291cmNlczsK
LSAgICAgICAgdGhpcy5yZWZyZXNoKCk7Ci0gICAgfSwKLQogICAgIGdldCBzb3J0aW5nRnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnRpbmdGdW5jdGlvbjsKQEAgLTMx
OSw0MCArMjk5LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsK
IAogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMubmVlZHNSZWZy
ZXNoID0gZmFsc2U7CisgICAgICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlLnJlZnJlc2guY2FsbCh0aGlzKTsKIAotICAgICAgICB2YXIgc3RhbGVSZXNvdXJj
ZXNMZW5ndGggPSB0aGlzLl9zdGFsZVJlc291cmNlcy5sZW5ndGg7Ci0gICAgICAgIHZhciBib3Vu
ZGFyaWVzQ2hhbmdlZCA9IGZhbHNlOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3Rh
bGVSZXNvdXJjZXNMZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gdGhp
cy5fc3RhbGVSZXNvdXJjZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXJlc291cmNlLl9yZXNvdXJj
ZXNUcmVlRWxlbWVudCkgewotICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgcmVzb3VyY2Ug
dHJlZSBlbGVtZW50IGFuZCBncmFwaC4KLSAgICAgICAgICAgICAgICByZXNvdXJjZS5fcmVzb3Vy
Y2VzVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclRyZWVFbGVt
ZW50KHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVs
ZW1lbnQuX3Jlc291cmNlR3JhcGggPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlR3JhcGgocmVz
b3VyY2UpOwotCi0gICAgICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXNUcmVlRWxlbWVudC5hcHBl
bmRDaGlsZChyZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQpOwotICAgICAgICAgICAgICAg
IHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5hcHBlbmRDaGlsZChyZXNvdXJjZS5fcmVzb3Vy
Y2VzVHJlZUVsZW1lbnQuX3Jlc291cmNlR3JhcGguZ3JhcGhFbGVtZW50KTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgcmVzb3VyY2UuX3Jlc291cmNlc1RyZWVFbGVtZW50LnJlZnJlc2go
KTsKLQotICAgICAgICAgICAgaWYgKHRoaXMuY2FsY3VsYXRvci51cGRhdGVCb3VuZGFyaWVzKHJl
c291cmNlKSkKLSAgICAgICAgICAgICAgICBib3VuZGFyaWVzQ2hhbmdlZCA9IHRydWU7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoYm91bmRhcmllc0NoYW5nZWQpIHsKLSAgICAgICAgICAgIC8v
IFRoZSBib3VuZGFyaWVzIGNoYW5nZWQsIHNvIGFsbCByZXNvdXJjZSBncmFwaHMgYXJlIHN0YWxl
LgotICAgICAgICAgICAgdGhpcy5fc3RhbGVSZXNvdXJjZXMgPSB0aGlzLl9yZXNvdXJjZXM7Ci0g
ICAgICAgICAgICBzdGFsZVJlc291cmNlc0xlbmd0aCA9IHRoaXMuX3N0YWxlUmVzb3VyY2VzLmxl
bmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhbGVSZXNv
dXJjZXNMZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX3N0YWxlUmVzb3VyY2VzW2ldLl9y
ZXNvdXJjZXNUcmVlRWxlbWVudC5fcmVzb3VyY2VHcmFwaC5yZWZyZXNoKHRoaXMuY2FsY3VsYXRv
cik7Ci0KLSAgICAgICAgdGhpcy5fc3RhbGVSZXNvdXJjZXMgPSBbXTsKLQotICAgICAgICB0aGlz
LnVwZGF0ZUdyYXBoRGl2aWRlcnNJZk5lZWRlZCgpOwogICAgICAgICB0aGlzLl9zb3J0UmVzb3Vy
Y2VzSWZOZWVkZWQoKTsKICAgICAgICAgdGhpcy5fdXBkYXRlU3VtbWFyeUdyYXBoKCk7CiAgICAg
fSwKQEAgLTM3NiwxNCArMzI0LDkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuY2xvc2VWaXNpYmxlUmVzb3VyY2UoKTsKIAot
ICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wID0gMDsKLQogICAgICAgICBk
ZWxldGUgdGhpcy5jdXJyZW50UXVlcnk7CiAgICAgICAgIHRoaXMuc2VhcmNoQ2FuY2VsZWQoKTsK
IAotICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRvcikKLSAgICAgICAgICAgIHRoaXMuX2NhbGN1
bGF0b3IucmVzZXQoKTsKLQogICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2VzKSB7CiAgICAgICAg
ICAgICB2YXIgcmVzb3VyY2VzTGVuZ3RoID0gdGhpcy5fcmVzb3VyY2VzLmxlbmd0aDsKICAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VzTGVuZ3RoOyArK2kpIHsKQEAgLTM5
MiwyMyArMzM1LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgcmVzb3VyY2Uud2FybmluZ3MgPSAwOwogICAgICAgICAgICAgICAg
IHJlc291cmNlLmVycm9ycyA9IDA7CiAKLSAgICAgICAgICAgICAgICBkZWxldGUgcmVzb3VyY2Uu
X3Jlc291cmNlc1RyZWVFbGVtZW50OwogICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNvdXJjZS5f
cmVzb3VyY2VzVmlldzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHRoaXMu
X3Jlc291cmNlcyA9IFtdOwotICAgICAgICB0aGlzLl9zdGFsZVJlc291cmNlcyA9IFtdOworICAg
ICAgICBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZS5yZXNldC5j
YWxsKHRoaXMpOwogICAgICAgICAKICAgICAgICAgdGhpcy5tYWluUmVzb3VyY2VMb2FkVGltZSA9
IC0xOwogICAgICAgICB0aGlzLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gLTE7Ci0KLSAg
ICAgICAgdGhpcy5yZXNvdXJjZXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworIAogICAg
ICAgICB0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAg
ICB0aGlzLnJlc291cmNlc0dyYXBoc0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAg
dGhpcy5zdW1tYXJ5QmFyLnJlc2V0KCk7CiAKLSAgICAgICAgdGhpcy51cGRhdGVHcmFwaERpdmlk
ZXJzSWZOZWVkZWQodHJ1ZSk7CisgICAgICAgIHRoaXMuc3VtbWFyeUJhci5yZXNldCgpOwogCiAg
ICAgICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyLnJlc291cmNlVHJhY2tpbmdFbmFibGVkKCkp
IHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJSZXNvdXJjZSB0cmFja2luZyBlbmFibGVkLiBDbGljayB0byBkaXNhYmxl
LiIpOwpAQCAtNDM2LDIwICszNzQsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcgPT09IHJlc291cmNlLl9y
ZXNvdXJjZXNWaWV3KQogICAgICAgICAgICAgdGhpcy5jbG9zZVZpc2libGVSZXNvdXJjZSgpOwog
Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlcy5yZW1vdmUocmVzb3VyY2UsIHRydWUpOwotCi0gICAg
ICAgIGlmIChyZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIHRo
aXMucmVzb3VyY2VzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQocmVzb3VyY2UuX3Jlc291cmNlc1Ry
ZWVFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5yZW1v
dmVDaGlsZChyZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQuX3Jlc291cmNlR3JhcGguZ3Jh
cGhFbGVtZW50KTsKLSAgICAgICAgfQorICAgICAgICB0aGlzLnJlbW92ZUl0ZW0ocmVzb3VyY2Up
OwogCiAgICAgICAgIHJlc291cmNlLndhcm5pbmdzID0gMDsKICAgICAgICAgcmVzb3VyY2UuZXJy
b3JzID0gMDsKIAotICAgICAgICBkZWxldGUgcmVzb3VyY2UuX3Jlc291cmNlc1RyZWVFbGVtZW50
OwogICAgICAgICBkZWxldGUgcmVzb3VyY2UuX3Jlc291cmNlc1ZpZXc7Ci0KLSAgICAgICAgdGhp
cy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKTsKICAgICB9LAogCiAgICAgYWRkTWVzc2FnZVRvUmVz
b3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlLCBtc2cpCkBAIC00NjYsOCArMzk2LDggQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSAmJiByZXNvdXJjZS5f
cmVzb3VyY2VzVHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXNvdXJjZS5fcmVzb3VyY2VzVHJl
ZUVsZW1lbnQudXBkYXRlRXJyb3JzQW5kV2FybmluZ3MoKTsKKyAgICAgICAgaWYgKCF0aGlzLmN1
cnJlbnRRdWVyeSAmJiByZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJl
c291cmNlLl9pdGVtc1RyZWVFbGVtZW50LnVwZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CiAKICAg
ICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlc291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsK
ICAgICAgICAgaWYgKHZpZXcuYWRkTWVzc2FnZSkKQEAgLTQ4Miw4ICs0MTIsOCBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmVzb3VyY2Uu
d2FybmluZ3MgPSAwOwogICAgICAgICAgICAgcmVzb3VyY2UuZXJyb3JzID0gMDsKIAotICAgICAg
ICAgICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSAmJiByZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVs
ZW1lbnQpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2UuX3Jlc291cmNlc1RyZWVFbGVtZW50LnVw
ZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CisgICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFF1
ZXJ5ICYmIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgIHJlc291
cmNlLl9pdGVtc1RyZWVFbGVtZW50LnVwZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CiAKICAgICAg
ICAgICAgIHZhciB2aWV3ID0gcmVzb3VyY2UuX3Jlc291cmNlc1ZpZXc7CiAgICAgICAgICAgICBp
ZiAoIXZpZXcgfHwgIXZpZXcuY2xlYXJNZXNzYWdlcykKQEAgLTQ5NCw4ICs0MjQsNyBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgcmVmcmVzaFJlc291
cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3N0YWxlUmVzb3Vy
Y2VzLnB1c2gocmVzb3VyY2UpOwotICAgICAgICB0aGlzLm5lZWRzUmVmcmVzaCA9IHRydWU7Cisg
ICAgICAgIHRoaXMucmVmcmVzaEl0ZW0ocmVzb3VyY2UpOwogICAgIH0sCiAKICAgICByZWNyZWF0
ZVZpZXdGb3JSZXNvdXJjZUlmTmVlZGVkOiBmdW5jdGlvbihyZXNvdXJjZSkKQEAgLTUxMCw4ICs0
MzksOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICByZXNvdXJjZS53YXJuaW5ncyA9IDA7CiAgICAgICAgIHJlc291cmNlLmVycm9ycyA9IDA7CiAK
LSAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSAmJiByZXNvdXJjZS5fcmVzb3VyY2VzVHJl
ZUVsZW1lbnQpCi0gICAgICAgICAgICByZXNvdXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQudXBk
YXRlRXJyb3JzQW5kV2FybmluZ3MoKTsKKyAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSAm
JiByZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJlc291cmNlLl9pdGVt
c1RyZWVFbGVtZW50LnVwZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CiAKICAgICAgICAgdmFyIG9s
ZFZpZXcgPSByZXNvdXJjZS5fcmVzb3VyY2VzVmlldzsKIApAQCAtNTQ3LDEwICs0NzYsNyBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHZpZXcuaGlnaGxpZ2h0TGluZShsaW5lKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChyZXNv
dXJjZS5fcmVzb3VyY2VzVHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIHJlc291cmNlLl9yZXNv
dXJjZXNUcmVlRWxlbWVudC5yZXZlYWwoKTsKLSAgICAgICAgICAgIHJlc291cmNlLl9yZXNvdXJj
ZXNUcmVlRWxlbWVudC5zZWxlY3QodHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5yZXZl
YWxBbmRTZWxlY3RJdGVtKHJlc291cmNlKTsKIAogICAgICAgICB0aGlzLnZpc2libGVSZXNvdXJj
ZSA9IHJlc291cmNlOwogCkBAIC02MDcsMjQgKzUzMyw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfc29ydFJlc291cmNlc0lmTmVlZGVkOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB2YXIgc29ydGVkRWxlbWVudHMgPSBbXS5jb25jYXQodGhp
cy5yZXNvdXJjZXNUcmVlRWxlbWVudC5jaGlsZHJlbik7Ci0gICAgICAgIHNvcnRlZEVsZW1lbnRz
LnNvcnQodGhpcy5zb3J0aW5nRnVuY3Rpb24pOwotCi0gICAgICAgIHZhciBzb3J0ZWRFbGVtZW50
c0xlbmd0aCA9IHNvcnRlZEVsZW1lbnRzLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBzb3J0ZWRFbGVtZW50c0xlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgdHJlZUVs
ZW1lbnQgPSBzb3J0ZWRFbGVtZW50c1tpXTsKLSAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudCA9
PT0gdGhpcy5yZXNvdXJjZXNUcmVlRWxlbWVudC5jaGlsZHJlbltpXSkKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLQotICAgICAgICAgICAgdmFyIHdhc1NlbGVjdGVkID0gdHJlZUVsZW1lbnQu
c2VsZWN0ZWQ7Ci0gICAgICAgICAgICB0aGlzLnJlc291cmNlc1RyZWVFbGVtZW50LnJlbW92ZUNo
aWxkKHRyZWVFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzVHJlZUVsZW1lbnQu
aW5zZXJ0Q2hpbGQodHJlZUVsZW1lbnQsIGkpOwotICAgICAgICAgICAgaWYgKHdhc1NlbGVjdGVk
KQotICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LnNlbGVjdCh0cnVlKTsKLQotICAgICAgICAg
ICAgdmFyIGdyYXBoRWxlbWVudCA9IHRyZWVFbGVtZW50Ll9yZXNvdXJjZUdyYXBoLmdyYXBoRWxl
bWVudDsKLSAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5pbnNlcnRCZWZv
cmUoZ3JhcGhFbGVtZW50LCB0aGlzLnJlc291cmNlc0dyYXBoc0VsZW1lbnQuY2hpbGRyZW5baV0p
OwotICAgICAgICB9CisgICAgICAgIHRoaXMuc29ydEl0ZW1zKHRoaXMuc29ydGluZ0Z1bmN0aW9u
KTsKICAgICB9LAogCiAgICAgdXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkOiBmdW5jdGlvbihm
b3JjZSkKQEAgLTcwMSwzMiArNjEwLDI1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICBfdG9nZ2xlTGFyZ2VyUmVzb3VyY2VzOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VzVHJlZUVsZW1lbnQuX2NoaWxkcmVuTGlz
dE5vZGUpCisgICAgICAgIGlmICghdGhpcy5pdGVtc1RyZWVFbGVtZW50Ll9jaGlsZHJlbkxpc3RO
b2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMucmVzb3VyY2VzVHJlZUVs
ZW1lbnQuc21hbGxDaGlsZHJlbiA9ICF0aGlzLnJlc291cmNlc1RyZWVFbGVtZW50LnNtYWxsQ2hp
bGRyZW47CisgICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5zbWFsbENoaWxkcmVuID0gIXRo
aXMuaXRlbXNUcmVlRWxlbWVudC5zbWFsbENoaWxkcmVuOwogICAgICAgICBQcmVmZXJlbmNlcy5y
ZXNvdXJjZXNMYXJnZVJvd3MgPSAhUHJlZmVyZW5jZXMucmVzb3VyY2VzTGFyZ2VSb3dzOwogICAg
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyLnNldFNldHRpbmcoInJlc291cmNlcy1sYXJnZS1yb3dz
IiwgUHJlZmVyZW5jZXMucmVzb3VyY2VzTGFyZ2VSb3dzKTsKIAotICAgICAgICBpZiAodGhpcy5y
ZXNvdXJjZXNUcmVlRWxlbWVudC5zbWFsbENoaWxkcmVuKSB7Ci0gICAgICAgICAgICB0aGlzLnJl
c291cmNlc0dyYXBoc0VsZW1lbnQuYWRkU3R5bGVDbGFzcygic21hbGwiKTsKKyAgICAgICAgaWYg
KHRoaXMuaXRlbXNUcmVlRWxlbWVudC5zbWFsbENoaWxkcmVuKSB7CisgICAgICAgICAgICB0aGlz
Lml0ZW1zR3JhcGhzRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzbWFsbCIpOwogICAgICAgICAgICAg
dGhpcy5sYXJnZXJSZXNvdXJjZXNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlVzZSBsYXJnZSByZXNvdXJjZSByb3dzLiIpOwogICAgICAgICAgICAgdGhpcy5sYXJnZXJSZXNv
dXJjZXNCdXR0b24udG9nZ2xlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5fYWRqdXN0U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRoaXMuYWRqdXN0U2Nyb2xsUG9zaXRpb24oKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVu
dC5yZW1vdmVTdHlsZUNsYXNzKCJzbWFsbCIpOworICAgICAgICAgICAgdGhpcy5pdGVtc0dyYXBo
c0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygic21hbGwiKTsKICAgICAgICAgICAgIHRoaXMubGFy
Z2VyUmVzb3VyY2VzQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVc2Ugc21h
bGwgcmVzb3VyY2Ugcm93cy4iKTsKICAgICAgICAgICAgIHRoaXMubGFyZ2VyUmVzb3VyY2VzQnV0
dG9uLnRvZ2dsZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSwKIAotICAgIF9hZGp1c3RTY3Jv
bGxQb3NpdGlvbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gUHJldmVudCB0aGUgY29u
dGFpbmVyIGZyb20gYmVpbmcgc2Nyb2xsZWQgb2ZmIHRoZSBlbmQuCi0gICAgICAgIGlmICgodGhp
cy5jb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCArIHRoaXMuY29udGFpbmVyRWxlbWVudC5vZmZz
ZXRIZWlnaHQpID4gdGhpcy5zaWRlYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQpCi0gICAgICAgICAg
ICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wID0gKHRoaXMuc2lkZWJhckVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC0gdGhpcy5jb250YWluZXJFbGVtZW50Lm9mZnNldEhlaWdodCk7Ci0gICAg
fSwKLQogICAgIF9jaGFuZ2VTb3J0aW5nRnVuY3Rpb246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIHZhciBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuc29ydGluZ1NlbGVjdEVsZW1lbnRbdGhpcy5z
b3J0aW5nU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4XTsKQEAgLTc4OCw2ICs2OTAsMTEgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRo
aXMuc29ydGluZ1NlbGVjdEVsZW1lbnQudmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgICBJbnNw
ZWN0b3JDb250cm9sbGVyLmVuYWJsZVJlc291cmNlVHJhY2tpbmcoISFvcHRpb25hbEFsd2F5cyk7
CiAgICAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0IF9yZXNvdXJjZXMoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2l0ZW1zOwogICAgIH0KIH0KIApAQCAtOTUzLDcgKzg2MCw3IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRpbWVDYWxjdWxhdG9yLnByb3RvdHlwZSA9IHsKICAgICBfdXBw
ZXJCb3VuZDogZnVuY3Rpb24ocmVzb3VyY2UpCiAgICAgewogICAgICAgICByZXR1cm4gMDsKLSAg
ICB9LAorICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVGltZUNhbGN1bGF0b3IucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2FsY3VsYXRv
ci5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzCmluZGV4IDQyZDYwNTAuLjVhZDQwZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMSwxOSArMzEsMTggQEAKIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRp
bWVsaW5lUGFuZWwuY2FsbCh0aGlzKTsKKwogICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJ0aW1lbGluZSIpOwogCiAgICAgdGhpcy5jcmVhdGVJbnRlcmZhY2UoKTsKICAgICB0aGlzLnN1
bW1hcnlCYXIuZWxlbWVudC5pZCA9ICJ0aW1lbGluZS1zdW1tYXJ5IjsKLSAgICB0aGlzLnJlc291
cmNlc0dyYXBoc0VsZW1lbnQuaWQgPSAidGltZWxpbmUtZ3JhcGhzIjsKKyAgICB0aGlzLml0ZW1z
R3JhcGhzRWxlbWVudC5pZCA9ICJ0aW1lbGluZS1ncmFwaHMiOwogCiAgICAgdGhpcy5fY3JlYXRl
U3RhdHVzYmFyQnV0dG9ucygpOwogCiAgICAgdGhpcy5jYWxjdWxhdG9yID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUNhbGN1bGF0b3IoKTsKIAogICAgIHRoaXMuZmlsdGVyKHRoaXMuZmlsdGVy
QWxsRWxlbWVudCwgZmFsc2UpOwotICAgIHRoaXMuX3JlY29yZHMgPSBbXTsKLSAgICB0aGlzLl9z
dGFsZVJlY29yZHMgPSBbXTsKIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlID0gewpAQCAtNjMsMTAgKzYyLDEwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY2F0ZWdvcmllcykgewogICAg
ICAgICAgICAgdGhpcy5fY2F0ZWdvcmllcyA9IHsKLSAgICAgICAgICAgICAgICBsb2FkaW5nOiBu
ZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkxvYWRpbmciKSwgInJnYig0NywxMDIsMjM2KSIpLAotICAgICAgICAgICAgICAg
IHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5KCJzY3JpcHRpbmci
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAicmdiKDE1NywyMzEsMTE5KSIp
LAotICAgICAgICAgICAgICAgIHJlbmRlcmluZzogbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNh
dGVnb3J5KCJyZW5kZXJpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpLCAi
cmdiKDE2NCw2MCwyNTUpIiksCi0gICAgICAgICAgICAgICAgb3RoZXI6IG5ldyBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VDYXRlZ29yeSgib3RoZXIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk90aGVy
IiksICJyZ2IoMTg2LDE4NiwxODYpIikKKyAgICAgICAgICAgICAgICBsb2FkaW5nOiBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkxvYWRpbmciKSwgInJnYig0NywxMDIsMjM2KSIpLAorICAgICAgICAgICAgICAgIHNjcmlw
dGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAicmdiKDE1NywyMzEsMTE5KSIpLAorICAg
ICAgICAgICAgICAgIHJlbmRlcmluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5
KCJyZW5kZXJpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpLCAicmdiKDE2
NCw2MCwyNTUpIiksCisgICAgICAgICAgICAgICAgb3RoZXI6IG5ldyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVDYXRlZ29yeSgib3RoZXIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk90aGVyIiksICJy
Z2IoMTg2LDE4NiwxODYpIikKICAgICAgICAgICAgIH07CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHRoaXMuX2NhdGVnb3JpZXM7CkBAIC03NCw5ICs3Myw5IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHBvcHVsYXRlU2lkZWJhcjogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5yZWNvcmRzVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVj
dG9yLlNpZGViYXJTZWN0aW9uVHJlZUVsZW1lbnQoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSRUNP
UkRTIiksIHt9LCB0cnVlKTsKLSAgICAgICAgdGhpcy5yZWNvcmRzVHJlZUVsZW1lbnQuZXhwYW5k
ZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHRoaXMucmVj
b3Jkc1RyZWVFbGVtZW50KTsKKyAgICAgICAgdGhpcy5pdGVtc1RyZWVFbGVtZW50ID0gbmV3IFdl
Ykluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50KFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUkVDT1JEUyIpLCB7fSwgdHJ1ZSk7CisgICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5l
eHBhbmRlZCA9IHRydWU7CisgICAgICAgIHRoaXMuc2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQodGhp
cy5pdGVtc1RyZWVFbGVtZW50KTsKICAgICB9LAogCiAgICAgX2NyZWF0ZVN0YXR1c2JhckJ1dHRv
bnM6IGZ1bmN0aW9uKCkKQEAgLTEwMCw0OCArOTksMjAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24o
cmVjb3JkKQogICAgIHsKLSAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9IHRoaXMuX2Zvcm1h
dFJlY29yZChyZWNvcmQpOwotICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goZm9ybWF0dGVkUmVj
b3JkKTsKLSAgICAgICAgdGhpcy5fc3RhbGVSZWNvcmRzLnB1c2goZm9ybWF0dGVkUmVjb3JkKTsK
LSAgICAgICAgdGhpcy5uZWVkc1JlZnJlc2ggPSB0cnVlOworICAgICAgICB0aGlzLmFkZEl0ZW0o
dGhpcy5fZm9ybWF0UmVjb3JkKHJlY29yZCkpOwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBy
ZWNvcmQuY2hpbGRyZW4gJiYgaSA8IHJlY29yZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAgICAg
ICAgICAgIHRoaXMuYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQuY2hpbGRyZW5baV0pOwogICAg
IH0sCiAKLSAgICByZWZyZXNoOiBmdW5jdGlvbigpCisgICAgY3JlYXRlSXRlbVRyZWVFbGVtZW50
OiBmdW5jdGlvbihpdGVtKQogICAgIHsKLSAgICAgICAgdGhpcy5uZWVkc1JlZnJlc2ggPSBmYWxz
ZTsKLQotICAgICAgICB2YXIgc3RhbGVSZWNvcmRzTGVuZ3RoID0gdGhpcy5fc3RhbGVSZWNvcmRz
Lmxlbmd0aDsKLSAgICAgICAgdmFyIGJvdW5kYXJpZXNDaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFsZVJlY29yZHNMZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgdmFyIHJlY29yZCA9IHRoaXMuX3N0YWxlUmVjb3Jkc1tpXTsKLSAgICAgICAgICAgIGlm
ICghcmVjb3JkLl90aW1lbGluZVRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICAgICAgLy8gQ3Jl
YXRlIHRoZSByZXNvdXJjZSB0cmVlIGVsZW1lbnQgYW5kIGdyYXBoLgotICAgICAgICAgICAgICAg
IHJlY29yZC5fdGltZWxpbmVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmRUcmVlRWxlbWVudChyZWNvcmQpOwotICAgICAgICAgICAgICAgIHJlY29yZC5fdGltZWxp
bmVUcmVlRWxlbWVudC5fdGltZWxpbmVHcmFwaCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVH
cmFwaChyZWNvcmQpOwotICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc1RyZWVFbGVtZW50LmFw
cGVuZENoaWxkKHJlY29yZC5fdGltZWxpbmVUcmVlRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAg
dGhpcy5yZXNvdXJjZXNHcmFwaHNFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZC5fdGltZWxpbmVU
cmVlRWxlbWVudC5fdGltZWxpbmVHcmFwaC5ncmFwaEVsZW1lbnQpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBpZiAodGhpcy5jYWxjdWxhdG9yLnVwZGF0ZUJvdW5kYXJpZXMocmVjb3Jk
KSkKLSAgICAgICAgICAgICAgICBib3VuZGFyaWVzQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoYm91bmRhcmllc0NoYW5nZWQpIHsKLSAgICAgICAgICAgIC8vIFRoZSBi
b3VuZGFyaWVzIGNoYW5nZWQsIHNvIGFsbCByZXNvdXJjZSBncmFwaHMgYXJlIHN0YWxlLgotICAg
ICAgICAgICAgdGhpcy5fc3RhbGVSZWNvcmRzID0gdGhpcy5fcmVjb3JkczsKLSAgICAgICAgICAg
IHN0YWxlUmVjb3Jkc0xlbmd0aCA9IHRoaXMuX3N0YWxlUmVjb3Jkcy5sZW5ndGg7Ci0gICAgICAg
IH0KLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWxlUmVjb3Jkc0xlbmd0aDsgKytp
KQotICAgICAgICAgICAgdGhpcy5fc3RhbGVSZWNvcmRzW2ldLl90aW1lbGluZVRyZWVFbGVtZW50
Ll90aW1lbGluZUdyYXBoLnJlZnJlc2godGhpcy5jYWxjdWxhdG9yKTsKLQotICAgICAgICB0aGlz
Ll9zdGFsZVJlY29yZHMgPSBbXTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRUcmVlRWxlbWVudChpdGVtKTsKKyAgICB9LAogCi0gICAgICAgIHRoaXMudXBk
YXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkKCk7CisgICAgY3JlYXRlSXRlbUdyYXBoOiBmdW5jdGlv
bihpdGVtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVH
cmFwaChpdGVtKTsKICAgICB9LAogCiAgICAgX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tlZDog
ZnVuY3Rpb24oKQpAQCAtMTUyLDQ3ICsxMjMsMjIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlci5zdGFydFRp
bWVsaW5lUHJvZmlsZXIoKTsKICAgICB9LAogCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3AgPSAwOwotCi0gICAgICAg
IHRoaXMuY2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yKCk7
Ci0KLSAgICAgICAgaWYgKHRoaXMuX3JlY29yZHMpIHsKLSAgICAgICAgICAgIHZhciByZWNvcmRz
TGVuZ3RoID0gdGhpcy5fcmVjb3Jkcy5sZW5ndGg7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHNMZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciByZWNvcmQg
PSB0aGlzLl9yZWNvcmRzW2ldOwotCi0gICAgICAgICAgICAgICAgZGVsZXRlIHJlY29yZC5fcmVz
b3VyY2VzVHJlZUVsZW1lbnQ7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHJlY29yZC5fcmVzb3Vy
Y2VzVmlldzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3JlY29y
ZHMgPSBbXTsKLSAgICAgICAgdGhpcy5fc3RhbGVSZWNvcmRzID0gW107Ci0KLSAgICAgICAgdGhp
cy5yZWNvcmRzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5yZXNv
dXJjZXNHcmFwaHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0KLSAgICAgICAgdGhpcy51cGRh
dGVHcmFwaERpdmlkZXJzSWZOZWVkZWQodHJ1ZSk7Ci0gICAgfSwKLQogICAgIF9mb3JtYXRSZWNv
cmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fcmVjb3JkU3R5
bGVzKSB7CiAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXMgPSB7fTsKICAgICAgICAgICAg
IHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGU7
Ci0gICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRE9NRGlzcGF0Y2hd
ID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJET00gRXZlbnQiKSwgY2F0ZWdvcnk6
IHRoaXMuX2NhdGVnb3JpZXMuc2NyaXB0aW5nIH07Ci0gICAgICAgICAgICB0aGlzLl9yZWNvcmRT
dHlsZXNbcmVjb3JkVHlwZXMuTGF5b3V0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiTGF5b3V0IiksIGNhdGVnb3J5OiB0aGlzLl9jYXRlZ29yaWVzLnJlbmRlcmluZyB9OwotICAg
ICAgICAgICAgdGhpcy5fcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVz
XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjYWxjdWxhdGUgU3R5bGUiKSwg
Y2F0ZWdvcnk6IHRoaXMuX2NhdGVnb3JpZXMucmVuZGVyaW5nIH07Ci0gICAgICAgICAgICB0aGlz
Ll9yZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUGFpbnRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJQYWludCIpLCBjYXRlZ29yeTogdGhpcy5fY2F0ZWdvcmllcy5yZW5kZXJpbmcg
fTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5QYXJzZUhUTUxd
ID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXJzZSIpLCBjYXRlZ29yeTogdGhp
cy5fY2F0ZWdvcmllcy5sb2FkaW5nIH07Ci0gICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiSW5zdGFsbCBUaW1lciIpLCBjYXRlZ29yeTogdGhpcy5fY2F0ZWdvcmllcy5zY3JpcHRpbmcg
fTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5UaW1lclJlbW92
ZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbW92ZSBUaW1lciIpLCBjYXRl
Z29yeTogdGhpcy5fY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHRoaXMuX3Jl
Y29yZFN0eWxlc1tyZWNvcmRUeXBlcy5UaW1lckZpcmVdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJUaW1lciBGaXJlZCIpLCBjYXRlZ29yeTogdGhpcy5fY2F0ZWdvcmllcy5zY3Jp
cHRpbmcgfTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5YSFJS
ZWFkeVN0YXRlQ2hhbmdlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiWEhSIFJl
YWR5IFN0YXRlIENoYW5nZSIpLCBjYXRlZ29yeTogdGhpcy5fY2F0ZWdvcmllcy5sb2FkaW5nIH07
Ci0gICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuWEhSTG9hZF0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlhIUiBMb2FkIiksIGNhdGVnb3J5OiB0aGlz
Ll9jYXRlZ29yaWVzLmxvYWRpbmcgfTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc1si
T3RoZXIiXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3RoZXIiKSwgaWNvbjog
MCwgY2F0ZWdvcnk6IHRoaXMuX2NhdGVnb3JpZXMub3RoZXIgfTsKKyAgICAgICAgICAgIHRoaXMu
X3JlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5ET01EaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkRPTSBFdmVudCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNj
cmlwdGluZyB9OworICAgICAgICAgICAgdGhpcy5fcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxh
eW91dF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29y
eTogdGhpcy5jYXRlZ29yaWVzLnJlbmRlcmluZyB9OworICAgICAgICAgICAgdGhpcy5fcmVjb3Jk
U3R5bGVzW3JlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVzXSA9IHsgdGl0bGU6IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVjYWxjdWxhdGUgU3R5bGUiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdv
cmllcy5yZW5kZXJpbmcgfTsKKyAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0eWxlc1tyZWNvcmRU
eXBlcy5QYWludF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50IiksIGNh
dGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMucmVuZGVyaW5nIH07CisgICAgICAgICAgICB0aGlzLl9y
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUGFyc2VIVE1MXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUGFyc2UiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07
CisgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxs
XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5zdGFsbCBUaW1lciIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OworICAgICAgICAgICAgdGhpcy5fcmVj
b3JkU3R5bGVzW3JlY29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2Ny
aXB0aW5nIH07CisgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGlt
ZXJGaXJlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgRmlyZWQiKSwg
Y2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKKyAgICAgICAgICAgIHRoaXMu
X3JlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5YSFJSZWFkeVN0YXRlQ2hhbmdlXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiWEhSIFJlYWR5IFN0YXRlIENoYW5nZSIpLCBjYXRlZ29y
eTogdGhpcy5jYXRlZ29yaWVzLmxvYWRpbmcgfTsKKyAgICAgICAgICAgIHRoaXMuX3JlY29yZFN0
eWxlc1tyZWNvcmRUeXBlcy5YSFJMb2FkXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiWEhSIExvYWQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07CisgICAg
ICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNbIk90aGVyIl0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIk90aGVyIiksIGljb246IDAsIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMu
b3RoZXIgfTsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBzdHlsZSA9IHRoaXMuX3JlY29yZFN0
eWxlc1tyZWNvcmQudHlwZV07CkBAIC0yMDYsMjYgKzE1MiwyMyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcm1hdHRlZFJlY29yZC5kYXRhID0g
cmVjb3JkLmRhdGE7CiAgICAgICAgIGZvcm1hdHRlZFJlY29yZC5lbmRUaW1lID0gKHR5cGVvZiBy
ZWNvcmQuZW5kVGltZSAhPT0gInVuZGVmaW5lZCIpID8gcmVjb3JkLmVuZFRpbWUgLyAxMDAwIDog
Zm9ybWF0dGVkUmVjb3JkLnN0YXJ0VGltZTsKICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY29y
ZDsKLSAgICB9LAotCi0gICAgc2hvd0NhdGVnb3J5OiBmdW5jdGlvbihjYXRlZ29yeSkKLSAgICB7
Ci0gICAgICAgIHZhciBmaWx0ZXJDbGFzcyA9ICJmaWx0ZXItIiArIGNhdGVnb3J5OwotICAgICAg
ICB0aGlzLnJlc291cmNlc0dyYXBoc0VsZW1lbnQuYWRkU3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7
Ci0gICAgICAgIHRoaXMucmVjb3Jkc1RyZWVFbGVtZW50LmNoaWxkcmVuTGlzdEVsZW1lbnQuYWRk
U3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7Ci0gICAgfSwKLSAgICAKLSAgICBoaWRlQ2F0ZWdvcnk6
IGZ1bmN0aW9uKGNhdGVnb3J5KQotICAgIHsKLSAgICAgICAgdmFyIGZpbHRlckNsYXNzID0gImZp
bHRlci0iICsgY2F0ZWdvcnk7Ci0gICAgICAgIHRoaXMucmVzb3VyY2VzR3JhcGhzRWxlbWVudC5y
ZW1vdmVTdHlsZUNsYXNzKGZpbHRlckNsYXNzKTsKLSAgICAgICAgdGhpcy5yZWNvcmRzVHJlZUVs
ZW1lbnQuY2hpbGRyZW5MaXN0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKGZpbHRlckNsYXNzKTsK
LSAgICB9LAorICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwucHJvdG90eXBl
OwogCiAKK1dlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5ID0gZnVuY3Rpb24obmFtZSwgdGl0
bGUsIGNvbG9yKQoreworICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2F0ZWdvcnku
Y2FsbCh0aGlzLCBuYW1lLCB0aXRsZSwgY29sb3IpOworfQorCitXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYXRlZ29yeS5wcm90b3R5cGUgPSB7Cit9CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVn
b3J5LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNh
dGVnb3J5LnByb3RvdHlwZTsKKworCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxl
bWVudCA9IGZ1bmN0aW9uKHJlY29yZCkKIHsKICAgICB0aGlzLl9yZWNvcmQgPSByZWNvcmQ7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGRjOGM1YzMuLjc4
YWIyM2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
Y3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0z
MzQ4LDExICszMzQ4LDExIEBAIGJvZHkuaW5hY3RpdmUgLnNpZGViYXItdHJlZS1pdGVtLnNlbGVj
dGVkIC5idWJibGUuc2VhcmNoLW1hdGNoZXMgewogICAgIHRvcDogMDsKICAgICBib3R0b206IDA7
CiAgICAgbWFyZ2luOiBhdXRvIC01cHg7Ci0gICAgYm9yZGVyLXdpZHRoOiA2cHggN3B4OwotICAg
IGhlaWdodDogMTNweDsKLSAgICBtaW4td2lkdGg6IDE0cHg7Ci0gICAgb3BhY2l0eTogMC42NTsK
LSAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGluZUJhckdyYXkucG5n
KSA2IDcgNiA3OworICAgIGJvcmRlci13aWR0aDogNHB4IDRweCA1cHg7CisgICAgaGVpZ2h0OiA5
cHg7CisgICAgbWluLXdpZHRoOiA3cHg7CisgICAgb3BhY2l0eTogMC44OworICAgIC13ZWJraXQt
Ym9yZGVyLWltYWdlOiB1cmwoSW1hZ2VzL3RpbWVsaW5lQmFyR3JheS5wbmcpIDQgNCA1IDQ7CiB9
CiAKIC50aW1lbGluZS1ncmFwaC1zaWRlOm50aC1vZi10eXBlKDJuKSB7CkBAIC0zMzYwLDE1ICsz
MzYwLDE1IEBAIGJvZHkuaW5hY3RpdmUgLnNpZGViYXItdHJlZS1pdGVtLnNlbGVjdGVkIC5idWJi
bGUuc2VhcmNoLW1hdGNoZXMgewogfQogCiAudGltZWxpbmUtY2F0ZWdvcnktbG9hZGluZyAudGlt
ZWxpbmUtZ3JhcGgtYmFyIHsKLSAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90
aW1lbGluZUJhckJsdWUucG5nKSA2IDcgNiA3OworICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiB1
cmwoSW1hZ2VzL3RpbWVsaW5lQmFyQmx1ZS5wbmcpIDQgNCA1IDQ7CiB9CiAKIC50aW1lbGluZS1j
YXRlZ29yeS1zY3JpcHRpbmcgLnRpbWVsaW5lLWdyYXBoLWJhciB7Ci0gICAgLXdlYmtpdC1ib3Jk
ZXItaW1hZ2U6IHVybChJbWFnZXMvdGltZWxpbmVCYXJPcmFuZ2UucG5nKSA2IDcgNiA3OworICAg
IC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoSW1hZ2VzL3RpbWVsaW5lQmFyT3JhbmdlLnBuZykg
NCA0IDUgNDsKIH0KIAogLnRpbWVsaW5lLWNhdGVnb3J5LXJlbmRlcmluZyAudGltZWxpbmUtZ3Jh
cGgtYmFyIHsKLSAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGluZUJh
clB1cnBsZS5wbmcpIDYgNyA2IDc7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFn
ZXMvdGltZWxpbmVCYXJQdXJwbGUucG5nKSA0IDQgNSA0OwogfQogCiAudGltZWxpbmUtY2F0ZWdv
cnktbG9hZGluZyAudGltZWxpbmUtdHJlZS1pY29uIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA3Mzk2OGNjLi4wNGFiMDdhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC00NSw2ICs0NSw4IEBAIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRHJhd2VyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDaGFuZ2Vz
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iQ29uc29sZVZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlBhbmVsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJBYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlc291cmNlLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZUNhdGVn
b3J5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJEYXRhYmFzZS5qcyI+PC9zY3JpcHQ+CkBAIC03MCwxMiArNzIsMTAgQEAgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJFdmVudExpc3RlbmVyc1NpZGVi
YXJQYW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJDb2xvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iU3R5bGVzU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJQYW5lbEVuYWJsZXJWaWV3LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTdGF0dXNCYXJCdXR0
b24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IlN1bW1hcnlCYXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkVsZW1lbnRzUGFuZWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkFic3RyYWN0VGltZWxpbmVQYW5lbC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUmVzb3VyY2VzUGFuZWwu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNj
cmlwdHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iU3RvcmFnZVBhbmVsLmpzIj48L3NjcmlwdD4K
</data>
<flag name="review"
          id="23543"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>