<?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>137462</bug_id>
          
          <creation_ts>2014-10-06 14:17:12 -0700</creation_ts>
          <short_desc>build.webkit.org/dashboard: Add commit queue</short_desc>
          <delta_ts>2014-10-06 14:37:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039818</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 14:17:12 -0700</bug_when>
    <thetext>Turns out that the commit queue is doing crazy things right now, and the patch makes them visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039828</commentid>
    <comment_count>1</comment_count>
      <attachid>239357</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 14:32:03 -0700</bug_when>
    <thetext>Created attachment 239357
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039834</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 14:37:44 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r174366&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239357</attachid>
            <date>2014-10-06 14:32:03 -0700</date>
            <delta_ts>2014-10-06 14:35:13 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>AddCommitQueue.txt</filename>
            <type>text/plain</type>
            <size>58051</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NDM2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUxIEBACisyMDE0LTEwLTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIGJ1aWxkLndlYmtpdC5vcmcvZGFzaGJvYXJkOiBBZGQgY29tbWl0IHF1ZXVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmFs
aXplcyBFV1MgaW50byAiYnViYmxlIHF1ZXVlIiwgd2hpY2ggYWxzbyBpbmNsdWRlcyBjb21taXQg
cXVldWUgYW5kIHN0eWxlIHF1ZXVlLgorICAgICAgICBTdHlsZSBxdWV1ZSBpcyBzdGlsbCBpbnZp
c2libGUsIGFzIGl0IGRvZXNuJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHBsYXRmb3JtLCBhbmQgYWxz
bworICAgICAgICB3ZSBuZXZlciBoYXZlIHByb2JsZW1zIHdpdGggaXQgYW55d2F5LCBzbyBpdCdz
IG5vdCB3b3J0aCB3YXRjaGluZy4KKworICAgICAgICBUaGUgVUkgbm93IGFsbG93cyBmb3IgYWRk
aW5nIG1vcmUgYm90cyB0byB0aGUgT3RoZXIgY29sdW1uIChzdWNoIGFzIGxlYWtzIGJvdCkuCisg
ICAgICAgIFRvIG1ha2UgdGhhdCBhY3R1YWxseSBoYXBwZW4sIHdlJ2xsIG5lZWQgdG8gcmVmYWN0
b3IgUXVldWVWaWV3LCBhbGxvd2luZyBmb3IgbXVsdGlwbGUKKyAgICAgICAgc291cmNlcyBvZiBk
YXRhIGluIGEgY2VsbC4KKworICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlLmpz
OiBDb3BpZWQgZnJvbSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9FV1NRdWV1ZS5qcy4KKyAgICAgICAg
KEJ1YmJsZVF1ZXVlKToKKyAgICAgICAgKEJ1YmJsZVF1ZXVlLnByb3RvdHlwZS5nZXQgc3RhdHVz
UGFnZVVSTCk6CisgICAgICAgIChCdWJibGVRdWV1ZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAg
ICAgKEJ1YmJsZVF1ZXVlLnByb3RvdHlwZS5sb2FkRGV0YWlsZWRTdGF0dXMpOgorICAgICAgICAq
IEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpzOiBDb3BpZWQgZnJvbSBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9FV1MuanMuCisgICAgICAgIChCdWJibGVRdWV1ZVNlcnZlcik6CisgICAg
ICAgIChCdWJibGVRdWV1ZVNlcnZlci5wcm90b3R5cGUuanNvblF1ZXVlTGVuZ3RoVVJMKToKKyAg
ICAgICAgKEJ1YmJsZVF1ZXVlU2VydmVyLnByb3RvdHlwZS5qc29uUXVldWVTdGF0dXNVUkwpOgor
ICAgICAgICAoQnViYmxlUXVldWVTZXJ2ZXIucHJvdG90eXBlLnF1ZXVlU3RhdHVzVVJMKToKKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWJibGVRdWV1ZVZpZXcuanM6IENvcGllZCBmcm9tIFRv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0VXU1F1ZXVlVmlldy5qcy4KKyAgICAgICAgKEJ1YmJsZVF1ZXVl
Vmlldyk6CisgICAgICAgIChCdWJibGVRdWV1ZVZpZXcucHJvdG90eXBlLnVwZGF0ZS5hcHBlbmRR
dWV1ZSk6CisgICAgICAgIChCdWJibGVRdWV1ZVZpZXcucHJvdG90eXBlLnVwZGF0ZSk6CisgICAg
ICAgIChCdWJibGVRdWV1ZVZpZXcucHJvdG90eXBlLl9hZGRRdWV1ZUhlYWRpbmdUb1BvcG92ZXIp
OgorICAgICAgICAoQnViYmxlUXVldWVWaWV3LnByb3RvdHlwZS5fcG9wb3ZlckNvbnRlbnRGb3JC
dWJibGVRdWV1ZSk6CisgICAgICAgIChCdWJibGVRdWV1ZVZpZXcucHJvdG90eXBlLl9wcmVzZW50
UG9wb3ZlckZvckJ1YmJsZVF1ZXVlKToKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9FV1MuanM6
IFJlbW92ZWQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRVdTUXVldWUuanM6IFJlbW92ZWQu
CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRVdTUXVldWVWaWV3LmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0luaXRpYWxpemF0aW9uLmpzOgorICAgICAgICAqIEJ1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2Fy
ZC9TY3JpcHRzL01haW4uanM6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1N0eWxlcy9RdWV1ZVZpZXcuY3Nz
OgorICAgICAgICAoLmJ1YmJsZS1zZXJ2ZXItcG9wb3ZlciAucG9wb3Zlci1xdWV1ZS1oZWFkaW5n
IC5xdWV1ZS1jaGFydHMtbGluayk6CisgICAgICAgICguYnViYmxlLXNlcnZlci1wb3BvdmVyIC5s
YXRlc3Qtc3RhdHVzLW5vLWxpbmspOgorICAgICAgICAoLmJ1YmJsZS1zZXJ2ZXItcG9wb3ZlciAu
Ym90LXN0YXR1cy1kZXNjcmlwdGlvbik6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL2luZGV4Lmh0bWw6CisK
KyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzTWFpbi5qczoKKyAgICAgICAgKGJ1aWxk
QWdncmVnYXRlVGFibGUpOgorICAgICAgICAoYnVpbGRRdWV1ZXNUYWJsZSk6CisgICAgICAgIFJl
bW92ZWQgZHlzZnVuY3Rpb25hbCBzdXBwb3J0IGZvciBFV1MgZm9yIG5vdy4gSXQgd2lsbCBiZSBk
aWZmZXJlbnQuCisKIDIwMTQtMTAtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgT25lIG1vcmUgY2FzZSBvZiBpbmNvcnJlY3QgY29tcGFyaXNvbiBpbiBy
ZWNvcmRwYXRjaGV2ZW50LnB5CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvaW5kZXguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvaW5kZXguaHRtbAkocmV2aXNpb24gMTc0MzQzKQorKysgVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL2luZGV4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEwICszNywxMCBAQCBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMv
RGFzaGJvYXJkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU2NyaXB0cy9CdWlsZGJv
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdHMvQnVnemlsbGEuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRzL0VXUy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9IlNjcmlwdHMvQnViYmxlUXVldWVTZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJTY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iU2NyaXB0cy9FV1NRdWV1ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IlNjcmlwdHMvQnViYmxlUXVldWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTY3Jp
cHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU2Ny
aXB0cy9CdWlsZGJvdFRlc3RSZXN1bHRzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
U2NyaXB0cy9HZW9tZXRyeS5qcyI+PC9zY3JpcHQ+CkBAIC01MSw3ICs1MSw3IEBAIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHNyYz0iU2NyaXB0cy9CdWlsZGJv
dEJ1aWxkZXJRdWV1ZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTY3JpcHRz
L0J1aWxkYm90VGVzdGVyUXVldWVWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
U2NyaXB0cy9CdWlsZGJvdFBlcmZvcm1hbmNlUXVldWVWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iU2NyaXB0cy9FV1NRdWV1ZVZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJTY3JpcHRzL0J1YmJsZVF1ZXVlVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlNjcmlwdHMvU3RhdHVzTGluZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJTY3JpcHRzL1NldHRpbmdzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU2Ny
aXB0cy9UcmFjLmpzIj48L3NjcmlwdD4KSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJs
ZVF1ZXVlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVl
LmpzCShyZXZpc2lvbiAxNzQzNDMpCShmcm9tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0VXU1F1ZXVl
LmpzOjE3NDM0MykKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworRVdTUXVldWUg
PSBmdW5jdGlvbihld3MsIGlkLCBpbmZvKQoreworICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsK
KworICAgIGNvbnNvbGUuYXNzZXJ0KGV3cyk7CisgICAgY29uc29sZS5hc3NlcnQoaWQpOworCisg
ICAgdGhpcy5ld3MgPSBld3M7CisgICAgdGhpcy5pZCA9IGlkOworICAgIHRoaXMudGl0bGUgPSBp
bmZvLnRpdGxlIHx8ICJceGEwIjsKKworICAgIHRoaXMucGxhdGZvcm0gPSBpbmZvLnBsYXRmb3Jt
Lm5hbWUgfHwgInVua25vd24iOworfTsKKworQmFzZU9iamVjdC5hZGRDb25zdHJ1Y3RvckZ1bmN0
aW9ucyhFV1NRdWV1ZSk7CisKK0VXU1F1ZXVlLkV2ZW50ID0geworICAgIFVwZGF0ZWQ6ICJ1cGRh
dGVkIgorfTsKKworRVdTUXVldWUucHJvdG90eXBlID0geworICAgIGNvbnN0cnVjdG9yOiBFV1NR
dWV1ZSwKKyAgICBfX3Byb3RvX186IEJhc2VPYmplY3QucHJvdG90eXBlLAorCisgICAgZ2V0IHN0
YXR1c1BhZ2VVUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZXdzLnF1ZXVlU3RhdHVz
VVJMKHRoaXMuaWQpOworICAgIH0sCisKKyAgICBnZXQgY2hhcnRzUGFnZVVSTCgpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fY2hhcnRzUGFnZVVSTDsKKyAgICB9LAorCisgICAgZ2V0IHBh
dGNoQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGNoQ291bnQ7CisgICAg
fSwKKworICAgIGdldCBsb2FkZWREZXRhaWxlZFN0YXR1cygpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fbG9hZGVkRGV0YWlsZWRTdGF0dXM7CisgICAgfSwKKworICAgIGdldCBwYXRjaGVz
KCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2xvYWRlZERldGFpbGVkU3Rh
dHVzKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3F1ZXVlOworICAgIH0sCisKKyAgICBnZXQgYm90
cygpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9sb2FkZWREZXRhaWxlZFN0
YXR1cyk7CisgICAgICAgIHJldHVybiB0aGlzLl9ib3RzOworICAgIH0sCisKKyAgICB1cGRhdGU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2xvYWRlZERldGFpbGVkU3RhdHVzID0g
ZmFsc2U7CisKKyAgICAgICAgSlNPTi5sb2FkKHRoaXMuZXdzLmpzb25RdWV1ZUxlbmd0aFVSTCh0
aGlzLmlkKSwgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgdmFyIG5ld1BhdGNoQ291bnQg
PSBkYXRhLnF1ZXVlX2xlbmd0aDsKKyAgICAgICAgICAgIGlmICh0aGlzLl9wYXRjaENvdW50ID09
IG5ld1BhdGNoQ291bnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhp
cy5fcGF0Y2hDb3VudCA9IG5ld1BhdGNoQ291bnQ7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhFV1NRdWV1ZS5FdmVudC5VcGRhdGVkLCBudWxsKTsKKyAgICAgICAg
fS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgbG9hZERldGFpbGVkU3RhdHVzOiBmdW5jdGlv
bihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIEpTT04ubG9hZCh0aGlzLmV3cy5qc29uUXVldWVT
dGF0dXNVUkwodGhpcy5pZCksIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHRoaXMuX3F1
ZXVlID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gZGF0YS5xdWV1ZS5s
ZW5ndGg7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBwYXRjaCA9IGRhdGEu
cXVldWVbaV07CisgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZVNpbmNlVGltZSA9IHBhdGNoLmFj
dGl2ZV9zaW5jZSA/IERhdGUucGFyc2UocGF0Y2guYWN0aXZlX3NpbmNlKSA6IDA7CisgICAgICAg
ICAgICAgICAgdGhpcy5fcXVldWUucHVzaCh7CisgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1l
bnRJRDogcGF0Y2guYXR0YWNobWVudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzUGFn
ZVVSTDogcGF0Y2guc3RhdHVzX3BhZ2UsCisgICAgICAgICAgICAgICAgICAgIGxhdGVzdE1lc3Nh
Z2U6IHBhdGNoLmxhdGVzdF9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICBsYXRlc3RNZXNz
YWdlVGltZTogcGF0Y2gubGF0ZXN0X21lc3NhZ2VfdGltZSA/IG5ldyBEYXRlKHBhdGNoLmxhdGVz
dF9tZXNzYWdlX3RpbWUpIDogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgZGV0YWlsZWRSZXN1
bHRzVVJMRm9yTGF0ZXN0TWVzc2FnZTogcGF0Y2gubGF0ZXN0X3Jlc3VsdHMsCisgICAgICAgICAg
ICAgICAgICAgIHJldHJ5Q291bnQ6IHBhdGNoLnJldHJ5X2NvdW50LAorICAgICAgICAgICAgICAg
ICAgICBhY3RpdmU6IHBhdGNoLmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgYWN0aXZlU2lu
Y2U6IG5ldyBEYXRlKGFjdGl2ZVNpbmNlVGltZSksCisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMuX2JvdHMgPSBbXTsKKyAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwLCBlbmQgPSBkYXRhLmJvdHMubGVuZ3RoOyBpIDwgZW5kOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgYm90ID0gZGF0YS5ib3RzW2ldOworICAgICAgICAgICAgICAgIHZh
ciBsYXRlc3RNZXNzYWdlVGltZSA9IGJvdC5sYXRlc3RfbWVzc2FnZV90aW1lID8gRGF0ZS5wYXJz
ZShib3QubGF0ZXN0X21lc3NhZ2VfdGltZSkgOiAwOworCisgICAgICAgICAgICAgICAgdmFyIG9u
ZURheUluTWlsbGlzZWNvbmRzID0gMjQgKiA2MCAqIDYwICogMTAwMDsKKyAgICAgICAgICAgICAg
ICB2YXIgYm90SXNDdXJyZW50bHlBY3RpdmUgPSBEYXRlLm5vdygpIDwgbGF0ZXN0TWVzc2FnZVRp
bWUgKyBvbmVEYXlJbk1pbGxpc2Vjb25kczsKKyAgICAgICAgICAgICAgICBpZiAoIWJvdElzQ3Vy
cmVudGx5QWN0aXZlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg
ICAgICAgIC8vIFNvbWV0aW1lcyAocmFyZWx5KSwgdGhlcmUgYXJlIHN0YXR1cyBtZXNzYWdlcyB3
aXRoIGFuIGVtcHR5IGJvdCBuYW1lIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS4KKyAgICAgICAgICAg
ICAgICBpZiAoIWJvdC5ib3RfaWQubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICBib3QuYm90
X2lkID0gIjxlbXB0eSBuYW1lPiI7CisKKyAgICAgICAgICAgICAgICB0aGlzLl9ib3RzLnB1c2go
eworICAgICAgICAgICAgICAgICAgICBpZDogYm90LmJvdF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzUGFnZVVSTDogYm90LnN0YXR1c19wYWdlLAorICAgICAgICAgICAgICAgICAgICBs
YXRlc3RNZXNzYWdlVGltZTogbmV3IERhdGUobGF0ZXN0TWVzc2FnZVRpbWUpLAorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLnN0YXR1c1BhZ2VVUkwgPT09IGRhdGEuc3RhdHVzX3BhZ2UpOworICAgICAgICAgICAgdGhp
cy5fY2hhcnRzUGFnZVVSTCA9IGRhdGEuY2hhcnRzX3BhZ2U7CisKKyAgICAgICAgICAgIHRoaXMu
X2xvYWRlZERldGFpbGVkU3RhdHVzID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKK307CkluZGV4OiBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWJibGVRdWV1ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWJibGVRdWV1ZS5qcwkod29ya2luZyBjb3B5KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVi
YmxlUXVldWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDMzICsyMywzMyBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLUVXU1F1ZXVlID0gZnVuY3Rpb24oZXdz
LCBpZCwgaW5mbykKK0J1YmJsZVF1ZXVlID0gZnVuY3Rpb24ocXVldWVTZXJ2ZXIsIGlkLCBpbmZv
KQogewogICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsKIAotICAgIGNvbnNvbGUuYXNzZXJ0KGV3
cyk7CisgICAgY29uc29sZS5hc3NlcnQocXVldWVTZXJ2ZXIpOwogICAgIGNvbnNvbGUuYXNzZXJ0
KGlkKTsKIAotICAgIHRoaXMuZXdzID0gZXdzOworICAgIHRoaXMucXVldWVTZXJ2ZXIgPSBxdWV1
ZVNlcnZlcjsKICAgICB0aGlzLmlkID0gaWQ7CiAgICAgdGhpcy50aXRsZSA9IGluZm8udGl0bGUg
fHwgIlx4YTAiOwogCi0gICAgdGhpcy5wbGF0Zm9ybSA9IGluZm8ucGxhdGZvcm0ubmFtZSB8fCAi
dW5rbm93biI7CisgICAgdGhpcy5wbGF0Zm9ybSA9IGluZm8ucGxhdGZvcm0gPyBpbmZvLnBsYXRm
b3JtLm5hbWUgOiAidW5rbm93biI7CiB9OwogCi1CYXNlT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVu
Y3Rpb25zKEVXU1F1ZXVlKTsKK0Jhc2VPYmplY3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoQnVi
YmxlUXVldWUpOwogCi1FV1NRdWV1ZS5FdmVudCA9IHsKK0J1YmJsZVF1ZXVlLkV2ZW50ID0gewog
ICAgIFVwZGF0ZWQ6ICJ1cGRhdGVkIgogfTsKIAotRVdTUXVldWUucHJvdG90eXBlID0gewotICAg
IGNvbnN0cnVjdG9yOiBFV1NRdWV1ZSwKK0J1YmJsZVF1ZXVlLnByb3RvdHlwZSA9IHsKKyAgICBj
b25zdHJ1Y3RvcjogQnViYmxlUXVldWUsCiAgICAgX19wcm90b19fOiBCYXNlT2JqZWN0LnByb3Rv
dHlwZSwKIAogICAgIGdldCBzdGF0dXNQYWdlVVJMKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLmV3cy5xdWV1ZVN0YXR1c1VSTCh0aGlzLmlkKTsKKyAgICAgICAgcmV0dXJuIHRoaXMucXVl
dWVTZXJ2ZXIucXVldWVTdGF0dXNVUkwodGhpcy5pZCk7CiAgICAgfSwKIAogICAgIGdldCBjaGFy
dHNQYWdlVVJMKCkKQEAgLTgzLDE4ICs4MywxOCBAQCBFV1NRdWV1ZS5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICB0aGlzLl9sb2FkZWREZXRhaWxlZFN0YXR1cyA9IGZhbHNlOwogCi0gICAg
ICAgIEpTT04ubG9hZCh0aGlzLmV3cy5qc29uUXVldWVMZW5ndGhVUkwodGhpcy5pZCksIGZ1bmN0
aW9uKGRhdGEpIHsKKyAgICAgICAgSlNPTi5sb2FkKHRoaXMucXVldWVTZXJ2ZXIuanNvblF1ZXVl
TGVuZ3RoVVJMKHRoaXMuaWQpLCBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICB2YXIgbmV3
UGF0Y2hDb3VudCA9IGRhdGEucXVldWVfbGVuZ3RoOwogICAgICAgICAgICAgaWYgKHRoaXMuX3Bh
dGNoQ291bnQgPT0gbmV3UGF0Y2hDb3VudCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB0aGlzLl9wYXRjaENvdW50ID0gbmV3UGF0Y2hDb3VudDsKLSAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEVXU1F1ZXVlLkV2ZW50LlVwZGF0ZWQsIG51bGwp
OworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQnViYmxlUXVldWUu
RXZlbnQuVXBkYXRlZCwgbnVsbCk7CiAgICAgICAgIH0uYmluZCh0aGlzKSk7CiAgICAgfSwKIAog
ICAgIGxvYWREZXRhaWxlZFN0YXR1czogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAg
ICBKU09OLmxvYWQodGhpcy5ld3MuanNvblF1ZXVlU3RhdHVzVVJMKHRoaXMuaWQpLCBmdW5jdGlv
bihkYXRhKSB7CisgICAgICAgIEpTT04ubG9hZCh0aGlzLnF1ZXVlU2VydmVyLmpzb25RdWV1ZVN0
YXR1c1VSTCh0aGlzLmlkKSwgZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgdGhpcy5fcXVl
dWUgPSBbXTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBlbmQgPSBkYXRhLnF1ZXVlLmxl
bmd0aDsgaSA8IGVuZDsgKytpKSB7CiAgICAgICAgICAgICAgICAgdmFyIHBhdGNoID0gZGF0YS5x
dWV1ZVtpXTsKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpz
CShyZXZpc2lvbiAxNzQzNDMpCShmcm9tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0VXUy5qczoxNzQz
NDMpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWJibGVRdWV1ZVNlcnZlci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworRVdTID0gZnVuY3Rp
b24oKQoreworICAgIGNvbnN0IHF1ZXVlSW5mbyA9IHsKKyAgICAgICAgIm1hYyI6IHtwbGF0Zm9y
bTogRGFzaGJvYXJkLlBsYXRmb3JtLk1hY09TWE1vdW50YWluTGlvbiwgdGl0bGU6ICJXZWJLaXQx
IFJlbGVhc2UgVGVzdHMifSwKKyAgICAgICAgIm1hYy13azIiOiB7cGxhdGZvcm06IERhc2hib2Fy
ZC5QbGF0Zm9ybS5NYWNPU1hNb3VudGFpbkxpb24sIHRpdGxlOiAiV2ViS2l0MiBSZWxlYXNlIFRl
c3RzIn0sCisgICAgICAgICJ3aW4iOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5XaW5k
b3dzNywgdGl0bGU6ICJXZWJLaXQxIFJlbGVhc2UgQnVpbGQifSwKKyAgICAgICAgImd0ay13azIi
OiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5MaW51eEdUSywgdGl0bGU6ICJXZWJLaXQy
IFJlbGVhc2UgQnVpbGQifSwKKyAgICAgICAgImVmbC13azIiOiB7cGxhdGZvcm06IERhc2hib2Fy
ZC5QbGF0Zm9ybS5MaW51eEVGTCwgdGl0bGU6ICJXZWJLaXQyIFJlbGVhc2UgQnVpbGQifQorICAg
IH07CisKKyAgICBCYXNlT2JqZWN0LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLmJhc2VVUkwgPSAi
aHR0cHM6Ly93ZWJraXQtcXVldWVzLmFwcHNwb3QuY29tLyI7CisgICAgdGhpcy5xdWV1ZXMgPSB7
fTsKKworICAgIGZvciAodmFyIGlkIGluIHF1ZXVlSW5mbykKKyAgICAgICAgdGhpcy5xdWV1ZXNb
aWRdID0gbmV3IEVXU1F1ZXVlKHRoaXMsIGlkLCBxdWV1ZUluZm9baWRdKTsKK307CisKK0Jhc2VP
YmplY3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoRVdTKTsKKworRVdTLnByb3RvdHlwZSA9IHsK
KyAgICBjb25zdHJ1Y3RvcjogRVdTLAorICAgIF9fcHJvdG9fXzogQmFzZU9iamVjdC5wcm90b3R5
cGUsCisKKyAgICBqc29uUXVldWVMZW5ndGhVUkw6IGZ1bmN0aW9uKHF1ZXVlSUQpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVlLWxlbmd0aC1qc29uLyIgKyBlbmNv
ZGVVUklDb21wb25lbnQocXVldWVJRCkgKyAiLWV3cyI7CisgICAgfSwKKworICAgIGpzb25RdWV1
ZVN0YXR1c1VSTDogZnVuY3Rpb24ocXVldWVJRCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmJhc2VVUkwgKyAicXVldWUtc3RhdHVzLWpzb24vIiArIGVuY29kZVVSSUNvbXBvbmVudChxdWV1
ZUlEKSArICItZXdzIjsKKyAgICB9LAorCisgICAgcXVldWVTdGF0dXNVUkw6IGZ1bmN0aW9uKHF1
ZXVlSUQpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVlLXN0YXR1
cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXVlSUQpICsgIi1ld3MiOworICAgIH0sCit9OwpJ
bmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVTZXJ2ZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVTZXJ2ZXIuanMJKHdvcmtpbmcg
Y29weSkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlU2VydmVyLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywxNCArMjMsMTYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi1FV1MgPSBmdW5jdGlvbigpCitCdWJibGVRdWV1ZVNlcnZlciA9IGZ1
bmN0aW9uKCkKIHsKICAgICBjb25zdCBxdWV1ZUluZm8gPSB7Ci0gICAgICAgICJtYWMiOiB7cGxh
dGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5NYWNPU1hNb3VudGFpbkxpb24sIHRpdGxlOiAiV2Vi
S2l0MSBSZWxlYXNlIFRlc3RzIn0sCi0gICAgICAgICJtYWMtd2syIjoge3BsYXRmb3JtOiBEYXNo
Ym9hcmQuUGxhdGZvcm0uTWFjT1NYTW91bnRhaW5MaW9uLCB0aXRsZTogIldlYktpdDIgUmVsZWFz
ZSBUZXN0cyJ9LAotICAgICAgICAid2luIjoge3BsYXRmb3JtOiBEYXNoYm9hcmQuUGxhdGZvcm0u
V2luZG93czcsIHRpdGxlOiAiV2ViS2l0MSBSZWxlYXNlIEJ1aWxkIn0sCi0gICAgICAgICJndGst
d2syIjoge3BsYXRmb3JtOiBEYXNoYm9hcmQuUGxhdGZvcm0uTGludXhHVEssIHRpdGxlOiAiV2Vi
S2l0MiBSZWxlYXNlIEJ1aWxkIn0sCi0gICAgICAgICJlZmwtd2syIjoge3BsYXRmb3JtOiBEYXNo
Ym9hcmQuUGxhdGZvcm0uTGludXhFRkwsIHRpdGxlOiAiV2ViS2l0MiBSZWxlYXNlIEJ1aWxkIn0K
KyAgICAgICAgImNvbW1pdC1xdWV1ZSI6IHtwbGF0Zm9ybTogRGFzaGJvYXJkLlBsYXRmb3JtLk1h
Y09TWE1vdW50YWluTGlvbiwgc2hvcnROYW1lOiAiY29tbWl0IiwgdGl0bGU6ICJDb21taXQgUXVl
dWUifSwKKyAgICAgICAgInN0eWxlLXF1ZXVlIjoge3Nob3J0TmFtZTogInN0eWxlIiwgdGl0bGU6
ICJTdHlsZSBDaGVja2VyIFF1ZXVlIn0sCisgICAgICAgICJtYWMtZXdzIjoge3BsYXRmb3JtOiBE
YXNoYm9hcmQuUGxhdGZvcm0uTWFjT1NYTW91bnRhaW5MaW9uLCBzaG9ydE5hbWU6ICJtYWMiLCB0
aXRsZTogIldlYktpdDFceGEwUmVsZWFzZVx4YTBUZXN0c1x4YTBFV1MifSwKKyAgICAgICAgIm1h
Yy13azItZXdzIjoge3BsYXRmb3JtOiBEYXNoYm9hcmQuUGxhdGZvcm0uTWFjT1NYTW91bnRhaW5M
aW9uLCBzaG9ydE5hbWU6ICJtYWMtd2syIiwgdGl0bGU6ICJXZWJLaXQyXHhhMFJlbGVhc2VceGEw
VGVzdHNceGEwRVdTIn0sCisgICAgICAgICJ3aW4tZXdzIjoge3BsYXRmb3JtOiBEYXNoYm9hcmQu
UGxhdGZvcm0uV2luZG93czcsIHNob3J0TmFtZTogIndpbiIsIHRpdGxlOiAiV2ViS2l0MVx4YTBS
ZWxlYXNlXHhhMEJ1aWxkXHhhMEVXUyJ9LAorICAgICAgICAiZ3RrLXdrMi1ld3MiOiB7cGxhdGZv
cm06IERhc2hib2FyZC5QbGF0Zm9ybS5MaW51eEdUSywgc2hvcnROYW1lOiAiZ3RrLXdrMiIsIHRp
dGxlOiAiV2ViS2l0Mlx4YTBSZWxlYXNlXHhhMEJ1aWxkXHhhMEVXUyJ9LAorICAgICAgICAiZWZs
LXdrMi1ld3MiOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5MaW51eEVGTCwgc2hvcnRO
YW1lOiAiZWZsLXdrMiIsIHRpdGxlOiAiV2ViS2l0Mlx4YTBSZWxlYXNlXHhhMEJ1aWxkXHhhMEVX
UyJ9CiAgICAgfTsKIAogICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsKQEAgLTM5LDI3ICs0MSwy
NyBAQCBFV1MgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5xdWV1ZXMgPSB7fTsKIAogICAgIGZvciAo
dmFyIGlkIGluIHF1ZXVlSW5mbykKLSAgICAgICAgdGhpcy5xdWV1ZXNbaWRdID0gbmV3IEVXU1F1
ZXVlKHRoaXMsIGlkLCBxdWV1ZUluZm9baWRdKTsKKyAgICAgICAgdGhpcy5xdWV1ZXNbaWRdID0g
bmV3IEJ1YmJsZVF1ZXVlKHRoaXMsIGlkLCBxdWV1ZUluZm9baWRdKTsKIH07CiAKLUJhc2VPYmpl
Y3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoRVdTKTsKK0Jhc2VPYmplY3QuYWRkQ29uc3RydWN0
b3JGdW5jdGlvbnMoQnViYmxlUXVldWVTZXJ2ZXIpOwogCi1FV1MucHJvdG90eXBlID0gewotICAg
IGNvbnN0cnVjdG9yOiBFV1MsCitCdWJibGVRdWV1ZVNlcnZlci5wcm90b3R5cGUgPSB7CisgICAg
Y29uc3RydWN0b3I6IEJ1YmJsZVF1ZXVlU2VydmVyLAogICAgIF9fcHJvdG9fXzogQmFzZU9iamVj
dC5wcm90b3R5cGUsCiAKICAgICBqc29uUXVldWVMZW5ndGhVUkw6IGZ1bmN0aW9uKHF1ZXVlSUQp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVlLWxlbmd0aC1qc29u
LyIgKyBlbmNvZGVVUklDb21wb25lbnQocXVldWVJRCkgKyAiLWV3cyI7CisgICAgICAgIHJldHVy
biB0aGlzLmJhc2VVUkwgKyAicXVldWUtbGVuZ3RoLWpzb24vIiArIGVuY29kZVVSSUNvbXBvbmVu
dChxdWV1ZUlEKTsKICAgICB9LAogCiAgICAganNvblF1ZXVlU3RhdHVzVVJMOiBmdW5jdGlvbihx
dWV1ZUlEKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVSTCArICJxdWV1ZS1zdGF0
dXMtanNvbi8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXVlSUQpICsgIi1ld3MiOworICAgICAg
ICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVlLXN0YXR1cy1qc29uLyIgKyBlbmNvZGVVUklD
b21wb25lbnQocXVldWVJRCk7CiAgICAgfSwKIAogICAgIHF1ZXVlU3RhdHVzVVJMOiBmdW5jdGlv
bihxdWV1ZUlEKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVSTCArICJxdWV1ZS1z
dGF0dXMvIiArIGVuY29kZVVSSUNvbXBvbmVudChxdWV1ZUlEKSArICItZXdzIjsKKyAgICAgICAg
cmV0dXJuIHRoaXMuYmFzZVVSTCArICJxdWV1ZS1zdGF0dXMvIiArIGVuY29kZVVSSUNvbXBvbmVu
dChxdWV1ZUlEKTsKICAgICB9LAogfTsKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJs
ZVF1ZXVlVmlldy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWJibGVR
dWV1ZVZpZXcuanMJKHJldmlzaW9uIDE3NDM0MykJKGZyb20gVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
RVdTUXVldWVWaWV3LmpzOjE3NDM0MykKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1
ZXVlVmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK0VXU1F1ZXVlVmlldyA9IGZ1bmN0aW9uKHF1ZXVlcykKK3sKKyAgICBRdWV1ZVZpZXcu
Y2FsbCh0aGlzKTsKKworICAgIHRoaXMucXVldWVzID0gcXVldWVzIHx8IFtdOworCisgICAgdGhp
cy5xdWV1ZXMuZm9yRWFjaChmdW5jdGlvbihxdWV1ZSkgeworICAgICAgICBpZiAodGhpcy5wbGF0
Zm9ybSAmJiB0aGlzLnBsYXRmb3JtICE9IHF1ZXVlLnBsYXRmb3JtKQorICAgICAgICAgICAgdGhy
b3cgIkEgRVdTIHZpZXcgbWF5IG5vdCBjb250YWluIHF1ZXVlcyBmb3IgbXVsdGlwbGUgcGxhdGZv
cm1zLiIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybSA9IHF1ZXVlLnBs
YXRmb3JtOworICAgICAgICBxdWV1ZS5hZGRFdmVudExpc3RlbmVyKEVXU1F1ZXVlLkV2ZW50LlVw
ZGF0ZWQsIHRoaXMuX3F1ZXVlVXBkYXRlZCwgdGhpcyk7CisgICAgfS5iaW5kKHRoaXMpKTsKKwor
ICAgIHRoaXMudXBkYXRlKCk7Cit9OworCitCYXNlT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVuY3Rp
b25zKEVXU1F1ZXVlVmlldyk7CisKK0VXU1F1ZXVlVmlldy5wcm90b3R5cGUgPSB7CisgICAgY29u
c3RydWN0b3I6IEVXU1F1ZXVlVmlldywKKyAgICBfX3Byb3RvX186IFF1ZXVlVmlldy5wcm90b3R5
cGUsCisKKyAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFF1ZXVlVmlldy5w
cm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kUXVldWUocXVldWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHZhciBxdWV1ZUxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYSIpOworICAgICAgICAgICAgcXVldWVMYWJlbC5jbGFzc0xpc3QuYWRkKCJxdWV1ZUxhYmVs
Iik7CisgICAgICAgICAgICBxdWV1ZUxhYmVsLnRleHRDb250ZW50ID0gcXVldWUudGl0bGU7Cisg
ICAgICAgICAgICBxdWV1ZUxhYmVsLmhyZWYgPSBxdWV1ZS5zdGF0dXNQYWdlVVJMOworICAgICAg
ICAgICAgcXVldWVMYWJlbC50YXJnZXQgPSAiX2JsYW5rIjsKKyAgICAgICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZChxdWV1ZUxhYmVsKTsKKworICAgICAgICAgICAgdmFyIHBhdGNoQ291
bnQgPSBxdWV1ZS5wYXRjaENvdW50OworCisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IHBhdGNo
Q291bnQgPT09IDEgPyAicGF0Y2ggaW4gcXVldWUiIDogInBhdGNoZXMgaW4gcXVldWUiOworICAg
ICAgICAgICAgdmFyIHN0YXR1cyA9IG5ldyBTdGF0dXNMaW5lVmlldyhtZXNzYWdlLCBTdGF0dXNM
aW5lVmlldy5TdGF0dXMuTmV1dHJhbCwgbnVsbCwgcGF0Y2hDb3VudCB8fCAiMCIpOworICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHN0YXR1cy5lbGVtZW50KTsKKworICAgICAg
ICAgICAgbmV3IFBvcG92ZXJUcmFja2VyKHN0YXR1cy5zdGF0dXNCdWJibGVFbGVtZW50LCB0aGlz
Ll9wcmVzZW50UG9wb3ZlckZvckVXU1F1ZXVlLmJpbmQodGhpcyksIHF1ZXVlKTsKKyAgICAgICAg
fQorCisgICAgICAgIHRoaXMucXVldWVzLmZvckVhY2goZnVuY3Rpb24ocXVldWUpIHsKKyAgICAg
ICAgICAgIGFwcGVuZFF1ZXVlLmNhbGwodGhpcywgcXVldWUpOworICAgICAgICB9LCB0aGlzKTsK
KyAgICB9LAorCisgICAgYWRkTGlua1RvUm93OiBmdW5jdGlvbihyb3dFbGVtZW50LCBjbGFzc05h
bWUsIHRleHQsIHVybCkKKyAgICB7CisgICAgICAgIHZhciBsaW5rRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuY2xhc3NOYW1lID0gY2xh
c3NOYW1lOworICAgICAgICBsaW5rRWxlbWVudC50ZXh0Q29udGVudCA9IHRleHQ7CisgICAgICAg
IGxpbmtFbGVtZW50LmhyZWYgPSB1cmw7CisgICAgICAgIGxpbmtFbGVtZW50LnRhcmdldCA9ICJf
YmxhbmsiOworICAgICAgICByb3dFbGVtZW50LmFwcGVuZENoaWxkKGxpbmtFbGVtZW50KTsKKyAg
ICB9LAorCisgICAgYWRkVGV4dFRvUm93OiBmdW5jdGlvbihyb3dFbGVtZW50LCBjbGFzc05hbWUs
IHRleHQpCisgICAgeworICAgICAgICB2YXIgc3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CisgICAgICAgIHNwYW5FbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFt
ZTsKKyAgICAgICAgc3BhbkVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OworICAgICAgICByb3dF
bGVtZW50LmFwcGVuZENoaWxkKHNwYW5FbGVtZW50KTsKKyAgICB9LAorCisgICAgX2FkZFF1ZXVl
SGVhZGluZ1RvUG9wb3ZlcjogZnVuY3Rpb24ocXVldWUsIGNvbnRlbnQpCisgICAgeworICAgICAg
ICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGl0
bGUuY2xhc3NOYW1lID0gInBvcG92ZXItcXVldWUtaGVhZGluZyI7CisKKyAgICAgICAgdGhpcy5h
ZGRUZXh0VG9Sb3codGl0bGUsICJxdWV1ZS1uYW1lIiwgcXVldWUuaWQgKyAiIGV3cyBxdWV1ZSIp
OworICAgICAgICB0aGlzLmFkZExpbmtUb1Jvdyh0aXRsZSwgInF1ZXVlLXN0YXR1cy1saW5rIiwg
InN0YXR1cyBwYWdlIiwgcXVldWUuc3RhdHVzUGFnZVVSTCk7CisgICAgICAgIHRoaXMuYWRkTGlu
a1RvUm93KHRpdGxlLCAicXVldWUtY2hhcnRzLWxpbmsiLCAiY2hhcnRzIiwgcXVldWUuY2hhcnRz
UGFnZVVSTCk7CisKKyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZCh0aXRsZSk7CisgICAgfSwK
KworICAgIF9hZGRCb3RzSGVhZGluZ1RvUG9wb3ZlcjogZnVuY3Rpb24ocXVldWUsIGNvbnRlbnQp
CisgICAgeworICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gInBvcG92ZXItYm90cy1oZWFkaW5nIjsKKyAg
ICAgICAgdGl0bGUudGV4dENvbnRlbnQgPSAibGF0ZXN0IGJvdCBldmVudCI7CisgICAgICAgIGNv
bnRlbnQuYXBwZW5kQ2hpbGQodGl0bGUpOworICAgIH0sCisKKyAgICBfYWRkRGl2aWRlclRvUG9w
b3ZlcjogZnVuY3Rpb24oY29udGVudCkKKyAgICB7CisgICAgICAgIHZhciBkaXZpZGVyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRpdmlkZXIuY2xhc3NOYW1lID0g
ImRpdmlkZXIiOworICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGRpdmlkZXIpOworICAgIH0s
CisKKyAgICBfdGltZUludGVydmFsU3RyaW5nOiBmdW5jdGlvbih0aW1lKQorICAgIHsKKyAgICAg
ICAgdmFyIHNlY29uZHNJbkhvdXIgPSA2MCAqIDYwOworICAgICAgICB2YXIgdGltZURpZmZlcmVu
Y2UgPSAoRGF0ZS5ub3coKSAtIHRpbWUuZ2V0VGltZSgpKSAvIDEwMDA7CisgICAgICAgIHZhciBo
b3VycyA9IE1hdGguZmxvb3IodGltZURpZmZlcmVuY2UgLyBzZWNvbmRzSW5Ib3VyKTsKKyAgICAg
ICAgdmFyIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lRGlmZmVyZW5jZSAtIGhvdXJzICogc2Vj
b25kc0luSG91cikgLyA2MCk7CisgICAgICAgIHZhciBob3Vyc1BhcnQgPSAiIjsKKyAgICAgICAg
aWYgKGhvdXJzID09PSAxKQorICAgICAgICAgICAgaG91cnNQYXJ0ID0gIjFceGEwaG91ciBhbmQg
IjsKKyAgICAgICAgZWxzZSBpZiAoaG91cnMgPiAwKQorICAgICAgICAgICAgaG91cnNQYXJ0ID0g
aG91cnMgKyAiXHhhMGhvdXJzIGFuZCAiOworICAgICAgICBpZiAoIW1pbnV0ZXMpCisgICAgICAg
ICAgICByZXR1cm4gImxlc3MgdGhhbiBhIG1pbnV0ZSI7CisgICAgICAgIGlmIChtaW51dGVzID09
PSAxKQorICAgICAgICAgICAgcmV0dXJuIGhvdXJzUGFydCArICIxXHhhMG1pbnV0ZSI7CisgICAg
ICAgIHJldHVybiBob3Vyc1BhcnQgKyBtaW51dGVzICsgIlx4YTBtaW51dGVzIjsKKyAgICB9LAor
CisgICAgX3BvcG92ZXJDb250ZW50Rm9yRVdTUXVldWU6IGZ1bmN0aW9uKHF1ZXVlKQorICAgIHsK
KyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgY29udGVudC5jbGFzc05hbWUgPSAiZXdzLXBvcG92ZXIiOworCisgICAgICAgIHRoaXMu
X2FkZFF1ZXVlSGVhZGluZ1RvUG9wb3ZlcihxdWV1ZSwgY29udGVudCk7CisgICAgICAgIHRoaXMu
X2FkZERpdmlkZXJUb1BvcG92ZXIoY29udGVudCk7CisKKyAgICAgICAgdmFyIHBhdGNoZXMgPSBx
dWV1ZS5wYXRjaGVzOworICAgICAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gcGF0Y2hlcy5sZW5n
dGg7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFyIHBhdGNoID0gcGF0Y2hlc1tpXTsK
KworICAgICAgICAgICAgdmFyIHJvd0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKworICAgICAgICAgICAgdGhpcy5hZGRMaW5rVG9Sb3cocm93RWxlbWVudCwgInBhdGNo
LWRldGFpbHMtbGluayIsIHBhdGNoLmF0dGFjaG1lbnRJRCwgcGF0Y2guc3RhdHVzUGFnZVVSTCk7
CisKKyAgICAgICAgICAgIGlmIChwYXRjaC5yZXRyeUNvdW50KQorICAgICAgICAgICAgICAgIHRo
aXMuYWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJmYWlsdXJlLWNvdW50IiwgcGF0Y2gucmV0cnlD
b3VudCArICJceGEwIiArIChwYXRjaC5yZXRyeUNvdW50ID09PSAxID8gImF0dGVtcHQiIDogImF0
dGVtcHRzIikpOworCisgICAgICAgICAgICBpZiAocGF0Y2guZGV0YWlsZWRSZXN1bHRzVVJMRm9y
TGF0ZXN0TWVzc2FnZSkKKyAgICAgICAgICAgICAgICB0aGlzLmFkZExpbmtUb1Jvdyhyb3dFbGVt
ZW50LCAibGF0ZXN0LXN0YXR1cy13aXRoLWxpbmsiLCBwYXRjaC5sYXRlc3RNZXNzYWdlLCBwYXRj
aC5kZXRhaWxlZFJlc3VsdHNVUkxGb3JMYXRlc3RNZXNzYWdlKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKHBhdGNoLmxhdGVzdE1lc3NhZ2UgJiYgcGF0Y2gubGF0ZXN0TWVzc2FnZS5sZW5ndGgpCisg
ICAgICAgICAgICAgICAgdGhpcy5hZGRUZXh0VG9Sb3cocm93RWxlbWVudCwgImxhdGVzdC1zdGF0
dXMtbm8tbGluayIsIHBhdGNoLmxhdGVzdE1lc3NhZ2UpOworICAgICAgICAgICAgZWxzZSBpZiAo
cGF0Y2guYWN0aXZlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5hZGRUZXh0VG9Sb3cocm93RWxl
bWVudCwgImxhdGVzdC1zdGF0dXMtbm8tbGluayIsICJTdGFydGVkIik7CisgICAgICAgICAgICAg
ICAgdGhpcy5hZGRUZXh0VG9Sb3cocm93RWxlbWVudCwgInRpbWUtc2luY2UtbWVzc2FnZSIsIHRo
aXMuX3RpbWVJbnRlcnZhbFN0cmluZyhwYXRjaC5hY3RpdmVTaW5jZSkgKyAiXHhhMGFnbyIpOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5hZGRUZXh0VG9Sb3cocm93
RWxlbWVudCwgImxhdGVzdC1zdGF0dXMtbm8tbGluayIsICJOb3Qgc3RhcnRlZCB5ZXQiKTsKKwor
ICAgICAgICAgICAgaWYgKHBhdGNoLmxhdGVzdE1lc3NhZ2VUaW1lKQorICAgICAgICAgICAgICAg
IHRoaXMuYWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJ0aW1lLXNpbmNlLW1lc3NhZ2UiLCB0aGlz
Ll90aW1lSW50ZXJ2YWxTdHJpbmcocGF0Y2gubGF0ZXN0TWVzc2FnZVRpbWUpICsgIlx4YTBhZ28i
KTsKKworICAgICAgICAgICAgdGhpcy5hZGRMaW5rVG9Sb3cocm93RWxlbWVudCwgImJ1Z3ppbGxh
LWxpbmsiLCAiYnVnemlsbGEiLCBidWd6aWxsYS5kZXRhaWxzVVJMRm9yQXR0YWNobWVudChwYXRj
aC5hdHRhY2htZW50SUQpKTsKKworICAgICAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChyb3dF
bGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FkZERpdmlkZXJUb1BvcG92ZXIo
Y29udGVudCk7CisgICAgICAgIHRoaXMuX2FkZEJvdHNIZWFkaW5nVG9Qb3BvdmVyKHF1ZXVlLCBj
b250ZW50KTsKKyAgICAgICAgdGhpcy5fYWRkRGl2aWRlclRvUG9wb3Zlcihjb250ZW50KTsKKwor
ICAgICAgICB2YXIgYm90cyA9IHF1ZXVlLmJvdHM7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBl
bmQgPSBib3RzLmxlbmd0aDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICB2YXIgYm90ID0g
Ym90c1tpXTsKKworICAgICAgICAgICAgdmFyIHJvd0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKworICAgICAgICAgICAgdGhpcy5hZGRMaW5rVG9Sb3cocm93RWxlbWVu
dCwgImJvdC1zdGF0dXMtbGluayIsIGJvdC5pZCwgYm90LnN0YXR1c1BhZ2VVUkwpOworICAgICAg
ICAgICAgdGhpcy5hZGRUZXh0VG9Sb3cocm93RWxlbWVudCwgImJvdC1zdGF0dXMtZGVzY3JpcHRp
b24iLCB0aGlzLl90aW1lSW50ZXJ2YWxTdHJpbmcoYm90LmxhdGVzdE1lc3NhZ2VUaW1lKSArICJc
eGEwYWdvIik7CisKKyAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQocm93RWxlbWVudCk7
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY29udGVudDsKKyAgICB9LAorCisgICAgX3By
ZXNlbnRQb3BvdmVyRm9yRVdTUXVldWU6IGZ1bmN0aW9uKGVsZW1lbnQsIHBvcG92ZXIsIHF1ZXVl
KQorICAgIHsKKyAgICAgICAgaWYgKHF1ZXVlLmxvYWRlZERldGFpbGVkU3RhdHVzKQorICAgICAg
ICAgICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9wb3BvdmVyQ29udGVudEZvckVXU1F1ZXVlKHF1ZXVl
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgY29udGVudC5jbGFzc05hbWUgPSAiZXdz
LXBvcG92ZXIiOworCisgICAgICAgICAgICB2YXIgbG9hZGluZ0luZGljYXRvciA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgbG9hZGluZ0luZGljYXRvci5jbGFz
c05hbWUgPSAibG9hZGluZy1pbmRpY2F0b3IiOworICAgICAgICAgICAgbG9hZGluZ0luZGljYXRv
ci50ZXh0Q29udGVudCA9ICJMb2FkaW5nXHUyMDI2IjsKKyAgICAgICAgICAgIGNvbnRlbnQuYXBw
ZW5kQ2hpbGQobG9hZGluZ0luZGljYXRvcik7CisKKyAgICAgICAgICAgIHF1ZXVlLmxvYWREZXRh
aWxlZFN0YXR1cyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBwb3BvdmVyLmNvbnRlbnQg
PSB0aGlzLl9wb3BvdmVyQ29udGVudEZvckVXU1F1ZXVlKHF1ZXVlKTsKKyAgICAgICAgICAgIH0u
YmluZCh0aGlzKSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcmVjdCA9IERhc2hib2FyZC5S
ZWN0LnJlY3RGcm9tQ2xpZW50UmVjdChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsK
KyAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gY29udGVudDsKKyAgICAgICAgcG9wb3Zlci5wcmVz
ZW50KHJlY3QsIFtEYXNoYm9hcmQuUmVjdEVkZ2UuTUlOX1ksIERhc2hib2FyZC5SZWN0RWRnZS5N
QVhfWSwgRGFzaGJvYXJkLlJlY3RFZGdlLk1BWF9YLCBEYXNoYm9hcmQuUmVjdEVkZ2UuTUlOX1hd
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIF91cGRhdGVRdWV1ZXM6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMucXVldWVzLmZvckVhY2goZnVuY3Rpb24ocXVl
dWUpIHsgcXVldWUudXBkYXRlKCk7IH0pOworICAgIH0sCisKKyAgICBfcXVldWVVcGRhdGVkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMudXBkYXRlU29vbigpOworICAgIH0s
Cit9OwpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVWaWV3LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1YmJsZVF1ZXVlVmlldy5qcwkod29ya2lu
ZyBjb3B5KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnViYmxlUXVldWVWaWV3LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotRVdTUXVldWVWaWV3ID0gZnVuY3Rpb24ocXVldWVzKQorQnViYmxlUXVl
dWVWaWV3ID0gZnVuY3Rpb24ocXVldWVzKQogewogICAgIFF1ZXVlVmlldy5jYWxsKHRoaXMpOwog
CkBAIC0zMSwxOSArMzEsMTkgQEAgRVdTUXVldWVWaWV3ID0gZnVuY3Rpb24ocXVldWVzKQogCiAg
ICAgdGhpcy5xdWV1ZXMuZm9yRWFjaChmdW5jdGlvbihxdWV1ZSkgewogICAgICAgICBpZiAodGhp
cy5wbGF0Zm9ybSAmJiB0aGlzLnBsYXRmb3JtICE9IHF1ZXVlLnBsYXRmb3JtKQotICAgICAgICAg
ICAgdGhyb3cgIkEgRVdTIHZpZXcgbWF5IG5vdCBjb250YWluIHF1ZXVlcyBmb3IgbXVsdGlwbGUg
cGxhdGZvcm1zLiIKKyAgICAgICAgICAgIHRocm93ICJBIGJ1YmJsZSBxdWV1ZSB2aWV3IG1heSBu
b3QgY29udGFpbiBxdWV1ZXMgZm9yIG11bHRpcGxlIHBsYXRmb3Jtcy4iCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHRoaXMucGxhdGZvcm0gPSBxdWV1ZS5wbGF0Zm9ybTsKLSAgICAgICAgcXVl
dWUuYWRkRXZlbnRMaXN0ZW5lcihFV1NRdWV1ZS5FdmVudC5VcGRhdGVkLCB0aGlzLl9xdWV1ZVVw
ZGF0ZWQsIHRoaXMpOworICAgICAgICBxdWV1ZS5hZGRFdmVudExpc3RlbmVyKEJ1YmJsZVF1ZXVl
LkV2ZW50LlVwZGF0ZWQsIHRoaXMuX3F1ZXVlVXBkYXRlZCwgdGhpcyk7CiAgICAgfS5iaW5kKHRo
aXMpKTsKIAogICAgIHRoaXMudXBkYXRlKCk7CiB9OwogCi1CYXNlT2JqZWN0LmFkZENvbnN0cnVj
dG9yRnVuY3Rpb25zKEVXU1F1ZXVlVmlldyk7CitCYXNlT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVu
Y3Rpb25zKEJ1YmJsZVF1ZXVlVmlldyk7CiAKLUVXU1F1ZXVlVmlldy5wcm90b3R5cGUgPSB7Ci0g
ICAgY29uc3RydWN0b3I6IEVXU1F1ZXVlVmlldywKK0J1YmJsZVF1ZXVlVmlldy5wcm90b3R5cGUg
PSB7CisgICAgY29uc3RydWN0b3I6IEJ1YmJsZVF1ZXVlVmlldywKICAgICBfX3Byb3RvX186IFF1
ZXVlVmlldy5wcm90b3R5cGUsCiAKICAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKQEAgLTY3LDcgKzY3
LDcgQEAgRVdTUXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciBzdGF0dXMg
PSBuZXcgU3RhdHVzTGluZVZpZXcobWVzc2FnZSwgU3RhdHVzTGluZVZpZXcuU3RhdHVzLk5ldXRy
YWwsIG51bGwsIHBhdGNoQ291bnQgfHwgIjAiKTsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZChzdGF0dXMuZWxlbWVudCk7CiAKLSAgICAgICAgICAgIG5ldyBQb3BvdmVyVHJh
Y2tlcihzdGF0dXMuc3RhdHVzQnViYmxlRWxlbWVudCwgdGhpcy5fcHJlc2VudFBvcG92ZXJGb3JF
V1NRdWV1ZS5iaW5kKHRoaXMpLCBxdWV1ZSk7CisgICAgICAgICAgICBuZXcgUG9wb3ZlclRyYWNr
ZXIoc3RhdHVzLnN0YXR1c0J1YmJsZUVsZW1lbnQsIHRoaXMuX3ByZXNlbnRQb3BvdmVyRm9yQnVi
YmxlUXVldWUuYmluZCh0aGlzKSwgcXVldWUpOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5x
dWV1ZXMuZm9yRWFjaChmdW5jdGlvbihxdWV1ZSkgewpAQCAtOTgsNyArOTgsNyBAQCBFV1NRdWV1
ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKICAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gInBvcG92ZXItcXVldWUt
aGVhZGluZyI7CiAKLSAgICAgICAgdGhpcy5hZGRUZXh0VG9Sb3codGl0bGUsICJxdWV1ZS1uYW1l
IiwgcXVldWUuaWQgKyAiIGV3cyBxdWV1ZSIpOworICAgICAgICB0aGlzLmFkZFRleHRUb1Jvdyh0
aXRsZSwgInF1ZXVlLW5hbWUiLCBxdWV1ZS5pZCk7CiAgICAgICAgIHRoaXMuYWRkTGlua1RvUm93
KHRpdGxlLCAicXVldWUtc3RhdHVzLWxpbmsiLCAic3RhdHVzIHBhZ2UiLCBxdWV1ZS5zdGF0dXNQ
YWdlVVJMKTsKICAgICAgICAgdGhpcy5hZGRMaW5rVG9Sb3codGl0bGUsICJxdWV1ZS1jaGFydHMt
bGluayIsICJjaGFydHMiLCBxdWV1ZS5jaGFydHNQYWdlVVJMKTsKIApAQCAtMTM4LDEwICsxMzgs
MTAgQEAgRVdTUXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGhvdXJzUGFy
dCArIG1pbnV0ZXMgKyAiXHhhMG1pbnV0ZXMiOwogICAgIH0sCiAKLSAgICBfcG9wb3ZlckNvbnRl
bnRGb3JFV1NRdWV1ZTogZnVuY3Rpb24ocXVldWUpCisgICAgX3BvcG92ZXJDb250ZW50Rm9yQnVi
YmxlUXVldWU6IGZ1bmN0aW9uKHF1ZXVlKQogICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgY29udGVudC5jbGFzc05hbWUg
PSAiZXdzLXBvcG92ZXIiOworICAgICAgICBjb250ZW50LmNsYXNzTmFtZSA9ICJidWJibGUtc2Vy
dmVyLXBvcG92ZXIiOwogCiAgICAgICAgIHRoaXMuX2FkZFF1ZXVlSGVhZGluZ1RvUG9wb3Zlcihx
dWV1ZSwgY29udGVudCk7CiAgICAgICAgIHRoaXMuX2FkZERpdmlkZXJUb1BvcG92ZXIoY29udGVu
dCk7CkBAIC0xOTQsMTMgKzE5NCwxMyBAQCBFV1NRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gY29udGVudDsKICAgICB9LAogCi0gICAgX3ByZXNlbnRQb3BvdmVyRm9yRVdT
UXVldWU6IGZ1bmN0aW9uKGVsZW1lbnQsIHBvcG92ZXIsIHF1ZXVlKQorICAgIF9wcmVzZW50UG9w
b3ZlckZvckJ1YmJsZVF1ZXVlOiBmdW5jdGlvbihlbGVtZW50LCBwb3BvdmVyLCBxdWV1ZSkKICAg
ICB7CiAgICAgICAgIGlmIChxdWV1ZS5sb2FkZWREZXRhaWxlZFN0YXR1cykKLSAgICAgICAgICAg
IHZhciBjb250ZW50ID0gdGhpcy5fcG9wb3ZlckNvbnRlbnRGb3JFV1NRdWV1ZShxdWV1ZSk7Cisg
ICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3BvcG92ZXJDb250ZW50Rm9yQnViYmxlUXVl
dWUocXVldWUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHZhciBjb250ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICBjb250ZW50LmNsYXNzTmFt
ZSA9ICJld3MtcG9wb3ZlciI7CisgICAgICAgICAgICBjb250ZW50LmNsYXNzTmFtZSA9ICJidWJi
bGUtc2VydmVyLXBvcG92ZXIiOwogCiAgICAgICAgICAgICB2YXIgbG9hZGluZ0luZGljYXRvciA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgICAgbG9hZGluZ0luZGlj
YXRvci5jbGFzc05hbWUgPSAibG9hZGluZy1pbmRpY2F0b3IiOwpAQCAtMjA4LDcgKzIwOCw3IEBA
IEVXU1F1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENo
aWxkKGxvYWRpbmdJbmRpY2F0b3IpOwogCiAgICAgICAgICAgICBxdWV1ZS5sb2FkRGV0YWlsZWRT
dGF0dXMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gdGhp
cy5fcG9wb3ZlckNvbnRlbnRGb3JFV1NRdWV1ZShxdWV1ZSk7CisgICAgICAgICAgICAgICAgcG9w
b3Zlci5jb250ZW50ID0gdGhpcy5fcG9wb3ZlckNvbnRlbnRGb3JCdWJibGVRdWV1ZShxdWV1ZSk7
CiAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwogICAgICAgICB9CiAKSW5kZXg6IFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL0VXUy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9F
V1MuanMJKHJldmlzaW9uIDE3NDM0MykKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0VXUy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotRVdTID0g
ZnVuY3Rpb24oKQotewotICAgIGNvbnN0IHF1ZXVlSW5mbyA9IHsKLSAgICAgICAgIm1hYyI6IHtw
bGF0Zm9ybTogRGFzaGJvYXJkLlBsYXRmb3JtLk1hY09TWE1vdW50YWluTGlvbiwgdGl0bGU6ICJX
ZWJLaXQxIFJlbGVhc2UgVGVzdHMifSwKLSAgICAgICAgIm1hYy13azIiOiB7cGxhdGZvcm06IERh
c2hib2FyZC5QbGF0Zm9ybS5NYWNPU1hNb3VudGFpbkxpb24sIHRpdGxlOiAiV2ViS2l0MiBSZWxl
YXNlIFRlc3RzIn0sCi0gICAgICAgICJ3aW4iOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9y
bS5XaW5kb3dzNywgdGl0bGU6ICJXZWJLaXQxIFJlbGVhc2UgQnVpbGQifSwKLSAgICAgICAgImd0
ay13azIiOiB7cGxhdGZvcm06IERhc2hib2FyZC5QbGF0Zm9ybS5MaW51eEdUSywgdGl0bGU6ICJX
ZWJLaXQyIFJlbGVhc2UgQnVpbGQifSwKLSAgICAgICAgImVmbC13azIiOiB7cGxhdGZvcm06IERh
c2hib2FyZC5QbGF0Zm9ybS5MaW51eEVGTCwgdGl0bGU6ICJXZWJLaXQyIFJlbGVhc2UgQnVpbGQi
fQotICAgIH07Ci0KLSAgICBCYXNlT2JqZWN0LmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmJhc2VV
UkwgPSAiaHR0cHM6Ly93ZWJraXQtcXVldWVzLmFwcHNwb3QuY29tLyI7Ci0gICAgdGhpcy5xdWV1
ZXMgPSB7fTsKLQotICAgIGZvciAodmFyIGlkIGluIHF1ZXVlSW5mbykKLSAgICAgICAgdGhpcy5x
dWV1ZXNbaWRdID0gbmV3IEVXU1F1ZXVlKHRoaXMsIGlkLCBxdWV1ZUluZm9baWRdKTsKLX07Ci0K
LUJhc2VPYmplY3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoRVdTKTsKLQotRVdTLnByb3RvdHlw
ZSA9IHsKLSAgICBjb25zdHJ1Y3RvcjogRVdTLAotICAgIF9fcHJvdG9fXzogQmFzZU9iamVjdC5w
cm90b3R5cGUsCi0KLSAgICBqc29uUXVldWVMZW5ndGhVUkw6IGZ1bmN0aW9uKHF1ZXVlSUQpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVlLWxlbmd0aC1qc29uLyIg
KyBlbmNvZGVVUklDb21wb25lbnQocXVldWVJRCkgKyAiLWV3cyI7Ci0gICAgfSwKLQotICAgIGpz
b25RdWV1ZVN0YXR1c1VSTDogZnVuY3Rpb24ocXVldWVJRCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLmJhc2VVUkwgKyAicXVldWUtc3RhdHVzLWpzb24vIiArIGVuY29kZVVSSUNvbXBvbmVu
dChxdWV1ZUlEKSArICItZXdzIjsKLSAgICB9LAotCi0gICAgcXVldWVTdGF0dXNVUkw6IGZ1bmN0
aW9uKHF1ZXVlSUQpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInF1ZXVl
LXN0YXR1cy8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXVlSUQpICsgIi1ld3MiOwotICAgIH0s
Ci19OwpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRVdTUXVldWUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRVdTUXVldWUuanMJKHJldmlzaW9uIDE3NDM0MykKKysr
IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0VXU1F1ZXVlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotRVdTUXVldWUgPSBmdW5jdGlvbihld3MsIGlk
LCBpbmZvKQotewotICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsKLQotICAgIGNvbnNvbGUuYXNz
ZXJ0KGV3cyk7Ci0gICAgY29uc29sZS5hc3NlcnQoaWQpOwotCi0gICAgdGhpcy5ld3MgPSBld3M7
Ci0gICAgdGhpcy5pZCA9IGlkOwotICAgIHRoaXMudGl0bGUgPSBpbmZvLnRpdGxlIHx8ICJceGEw
IjsKLQotICAgIHRoaXMucGxhdGZvcm0gPSBpbmZvLnBsYXRmb3JtLm5hbWUgfHwgInVua25vd24i
OwotfTsKLQotQmFzZU9iamVjdC5hZGRDb25zdHJ1Y3RvckZ1bmN0aW9ucyhFV1NRdWV1ZSk7Ci0K
LUVXU1F1ZXVlLkV2ZW50ID0gewotICAgIFVwZGF0ZWQ6ICJ1cGRhdGVkIgotfTsKLQotRVdTUXVl
dWUucHJvdG90eXBlID0gewotICAgIGNvbnN0cnVjdG9yOiBFV1NRdWV1ZSwKLSAgICBfX3Byb3Rv
X186IEJhc2VPYmplY3QucHJvdG90eXBlLAotCi0gICAgZ2V0IHN0YXR1c1BhZ2VVUkwoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZXdzLnF1ZXVlU3RhdHVzVVJMKHRoaXMuaWQpOwotICAg
IH0sCi0KLSAgICBnZXQgY2hhcnRzUGFnZVVSTCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fY2hhcnRzUGFnZVVSTDsKLSAgICB9LAotCi0gICAgZ2V0IHBhdGNoQ291bnQoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGNoQ291bnQ7Ci0gICAgfSwKLQotICAgIGdldCBsb2Fk
ZWREZXRhaWxlZFN0YXR1cygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkRGV0
YWlsZWRTdGF0dXM7Ci0gICAgfSwKLQotICAgIGdldCBwYXRjaGVzKCkKLSAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2xvYWRlZERldGFpbGVkU3RhdHVzKTsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3F1ZXVlOwotICAgIH0sCi0KLSAgICBnZXQgYm90cygpCi0gICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl9sb2FkZWREZXRhaWxlZFN0YXR1cyk7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9ib3RzOwotICAgIH0sCi0KLSAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2xvYWRlZERldGFpbGVkU3RhdHVzID0gZmFsc2U7Ci0KLSAgICAgICAg
SlNPTi5sb2FkKHRoaXMuZXdzLmpzb25RdWV1ZUxlbmd0aFVSTCh0aGlzLmlkKSwgZnVuY3Rpb24o
ZGF0YSkgewotICAgICAgICAgICAgdmFyIG5ld1BhdGNoQ291bnQgPSBkYXRhLnF1ZXVlX2xlbmd0
aDsKLSAgICAgICAgICAgIGlmICh0aGlzLl9wYXRjaENvdW50ID09IG5ld1BhdGNoQ291bnQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgdGhpcy5fcGF0Y2hDb3VudCA9IG5l
d1BhdGNoQ291bnQ7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhF
V1NRdWV1ZS5FdmVudC5VcGRhdGVkLCBudWxsKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAg
ICB9LAotCi0gICAgbG9hZERldGFpbGVkU3RhdHVzOiBmdW5jdGlvbihjYWxsYmFjaykKLSAgICB7
Ci0gICAgICAgIEpTT04ubG9hZCh0aGlzLmV3cy5qc29uUXVldWVTdGF0dXNVUkwodGhpcy5pZCks
IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgIHRoaXMuX3F1ZXVlID0gW107Ci0gICAgICAg
ICAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gZGF0YS5xdWV1ZS5sZW5ndGg7IGkgPCBlbmQ7ICsr
aSkgewotICAgICAgICAgICAgICAgIHZhciBwYXRjaCA9IGRhdGEucXVldWVbaV07Ci0gICAgICAg
ICAgICAgICAgdmFyIGFjdGl2ZVNpbmNlVGltZSA9IHBhdGNoLmFjdGl2ZV9zaW5jZSA/IERhdGUu
cGFyc2UocGF0Y2guYWN0aXZlX3NpbmNlKSA6IDA7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcXVl
dWUucHVzaCh7Ci0gICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRJRDogcGF0Y2guYXR0YWNo
bWVudF9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzUGFnZVVSTDogcGF0Y2guc3RhdHVz
X3BhZ2UsCi0gICAgICAgICAgICAgICAgICAgIGxhdGVzdE1lc3NhZ2U6IHBhdGNoLmxhdGVzdF9t
ZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICBsYXRlc3RNZXNzYWdlVGltZTogcGF0Y2gubGF0
ZXN0X21lc3NhZ2VfdGltZSA/IG5ldyBEYXRlKHBhdGNoLmxhdGVzdF9tZXNzYWdlX3RpbWUpIDog
bnVsbCwKLSAgICAgICAgICAgICAgICAgICAgZGV0YWlsZWRSZXN1bHRzVVJMRm9yTGF0ZXN0TWVz
c2FnZTogcGF0Y2gubGF0ZXN0X3Jlc3VsdHMsCi0gICAgICAgICAgICAgICAgICAgIHJldHJ5Q291
bnQ6IHBhdGNoLnJldHJ5X2NvdW50LAotICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHBhdGNo
LmFjdGl2ZSwKLSAgICAgICAgICAgICAgICAgICAgYWN0aXZlU2luY2U6IG5ldyBEYXRlKGFjdGl2
ZVNpbmNlVGltZSksCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIHRoaXMuX2JvdHMgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBlbmQg
PSBkYXRhLmJvdHMubGVuZ3RoOyBpIDwgZW5kOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIg
Ym90ID0gZGF0YS5ib3RzW2ldOwotICAgICAgICAgICAgICAgIHZhciBsYXRlc3RNZXNzYWdlVGlt
ZSA9IGJvdC5sYXRlc3RfbWVzc2FnZV90aW1lID8gRGF0ZS5wYXJzZShib3QubGF0ZXN0X21lc3Nh
Z2VfdGltZSkgOiAwOwotCi0gICAgICAgICAgICAgICAgdmFyIG9uZURheUluTWlsbGlzZWNvbmRz
ID0gMjQgKiA2MCAqIDYwICogMTAwMDsKLSAgICAgICAgICAgICAgICB2YXIgYm90SXNDdXJyZW50
bHlBY3RpdmUgPSBEYXRlLm5vdygpIDwgbGF0ZXN0TWVzc2FnZVRpbWUgKyBvbmVEYXlJbk1pbGxp
c2Vjb25kczsKLSAgICAgICAgICAgICAgICBpZiAoIWJvdElzQ3VycmVudGx5QWN0aXZlKQotICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgICAgIC8vIFNvbWV0aW1l
cyAocmFyZWx5KSwgdGhlcmUgYXJlIHN0YXR1cyBtZXNzYWdlcyB3aXRoIGFuIGVtcHR5IGJvdCBu
YW1lIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS4KLSAgICAgICAgICAgICAgICBpZiAoIWJvdC5ib3Rf
aWQubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBib3QuYm90X2lkID0gIjxlbXB0eSBuYW1l
PiI7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLl9ib3RzLnB1c2goewotICAgICAgICAgICAgICAg
ICAgICBpZDogYm90LmJvdF9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzUGFnZVVSTDog
Ym90LnN0YXR1c19wYWdlLAotICAgICAgICAgICAgICAgICAgICBsYXRlc3RNZXNzYWdlVGltZTog
bmV3IERhdGUobGF0ZXN0TWVzc2FnZVRpbWUpLAotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLnN0YXR1c1BhZ2VVUkwg
PT09IGRhdGEuc3RhdHVzX3BhZ2UpOwotICAgICAgICAgICAgdGhpcy5fY2hhcnRzUGFnZVVSTCA9
IGRhdGEuY2hhcnRzX3BhZ2U7Ci0KLSAgICAgICAgICAgIHRoaXMuX2xvYWRlZERldGFpbGVkU3Rh
dHVzID0gdHJ1ZTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0uYmluZCh0aGlz
KSk7Ci0gICAgfSwKLX07CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9FV1NRdWV1ZVZpZXcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRVdTUXVldWVWaWV3LmpzCShy
ZXZpc2lvbiAxNzQzNDMpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9FV1NRdWV1ZVZpZXcuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1FV1NR
dWV1ZVZpZXcgPSBmdW5jdGlvbihxdWV1ZXMpCi17Ci0gICAgUXVldWVWaWV3LmNhbGwodGhpcyk7
Ci0KLSAgICB0aGlzLnF1ZXVlcyA9IHF1ZXVlcyB8fCBbXTsKLQotICAgIHRoaXMucXVldWVzLmZv
ckVhY2goZnVuY3Rpb24ocXVldWUpIHsKLSAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0gJiYgdGhp
cy5wbGF0Zm9ybSAhPSBxdWV1ZS5wbGF0Zm9ybSkKLSAgICAgICAgICAgIHRocm93ICJBIEVXUyB2
aWV3IG1heSBub3QgY29udGFpbiBxdWV1ZXMgZm9yIG11bHRpcGxlIHBsYXRmb3Jtcy4iCi0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMucGxhdGZvcm0gPSBxdWV1ZS5wbGF0Zm9ybTsKLSAg
ICAgICAgcXVldWUuYWRkRXZlbnRMaXN0ZW5lcihFV1NRdWV1ZS5FdmVudC5VcGRhdGVkLCB0aGlz
Ll9xdWV1ZVVwZGF0ZWQsIHRoaXMpOwotICAgIH0uYmluZCh0aGlzKSk7Ci0KLSAgICB0aGlzLnVw
ZGF0ZSgpOwotfTsKLQotQmFzZU9iamVjdC5hZGRDb25zdHJ1Y3RvckZ1bmN0aW9ucyhFV1NRdWV1
ZVZpZXcpOwotCi1FV1NRdWV1ZVZpZXcucHJvdG90eXBlID0gewotICAgIGNvbnN0cnVjdG9yOiBF
V1NRdWV1ZVZpZXcsCi0gICAgX19wcm90b19fOiBRdWV1ZVZpZXcucHJvdG90eXBlLAotCi0gICAg
dXBkYXRlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBRdWV1ZVZpZXcucHJvdG90eXBlLnVw
ZGF0ZS5jYWxsKHRoaXMpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigp
OwotCi0gICAgICAgIGZ1bmN0aW9uIGFwcGVuZFF1ZXVlKHF1ZXVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgcXVldWVMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAg
ICAgICAgICAgIHF1ZXVlTGFiZWwuY2xhc3NMaXN0LmFkZCgicXVldWVMYWJlbCIpOwotICAgICAg
ICAgICAgcXVldWVMYWJlbC50ZXh0Q29udGVudCA9IHF1ZXVlLnRpdGxlOwotICAgICAgICAgICAg
cXVldWVMYWJlbC5ocmVmID0gcXVldWUuc3RhdHVzUGFnZVVSTDsKLSAgICAgICAgICAgIHF1ZXVl
TGFiZWwudGFyZ2V0ID0gIl9ibGFuayI7Ci0gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQocXVldWVMYWJlbCk7Ci0KLSAgICAgICAgICAgIHZhciBwYXRjaENvdW50ID0gcXVldWUu
cGF0Y2hDb3VudDsKLQotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBwYXRjaENvdW50ID09PSAx
ID8gInBhdGNoIGluIHF1ZXVlIiA6ICJwYXRjaGVzIGluIHF1ZXVlIjsKLSAgICAgICAgICAgIHZh
ciBzdGF0dXMgPSBuZXcgU3RhdHVzTGluZVZpZXcobWVzc2FnZSwgU3RhdHVzTGluZVZpZXcuU3Rh
dHVzLk5ldXRyYWwsIG51bGwsIHBhdGNoQ291bnQgfHwgIjAiKTsKLSAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZChzdGF0dXMuZWxlbWVudCk7Ci0KLSAgICAgICAgICAgIG5ldyBQ
b3BvdmVyVHJhY2tlcihzdGF0dXMuc3RhdHVzQnViYmxlRWxlbWVudCwgdGhpcy5fcHJlc2VudFBv
cG92ZXJGb3JFV1NRdWV1ZS5iaW5kKHRoaXMpLCBxdWV1ZSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB0aGlzLnF1ZXVlcy5mb3JFYWNoKGZ1bmN0aW9uKHF1ZXVlKSB7Ci0gICAgICAgICAgICBhcHBl
bmRRdWV1ZS5jYWxsKHRoaXMsIHF1ZXVlKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQot
ICAgIGFkZExpbmtUb1JvdzogZnVuY3Rpb24ocm93RWxlbWVudCwgY2xhc3NOYW1lLCB0ZXh0LCB1
cmwpCi0gICAgewotICAgICAgICB2YXIgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJhIik7Ci0gICAgICAgIGxpbmtFbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKLSAg
ICAgICAgbGlua0VsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAgICBsaW5rRWxlbWVu
dC5ocmVmID0gdXJsOwotICAgICAgICBsaW5rRWxlbWVudC50YXJnZXQgPSAiX2JsYW5rIjsKLSAg
ICAgICAgcm93RWxlbWVudC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7Ci0gICAgfSwKLQotICAg
IGFkZFRleHRUb1JvdzogZnVuY3Rpb24ocm93RWxlbWVudCwgY2xhc3NOYW1lLCB0ZXh0KQotICAg
IHsKLSAgICAgICAgdmFyIHNwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpOwotICAgICAgICBzcGFuRWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7Ci0gICAgICAg
IHNwYW5FbGVtZW50LnRleHRDb250ZW50ID0gdGV4dDsKLSAgICAgICAgcm93RWxlbWVudC5hcHBl
bmRDaGlsZChzcGFuRWxlbWVudCk7Ci0gICAgfSwKLQotICAgIF9hZGRRdWV1ZUhlYWRpbmdUb1Bv
cG92ZXI6IGZ1bmN0aW9uKHF1ZXVlLCBjb250ZW50KQotICAgIHsKLSAgICAgICAgdmFyIHRpdGxl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRpdGxlLmNsYXNzTmFt
ZSA9ICJwb3BvdmVyLXF1ZXVlLWhlYWRpbmciOwotCi0gICAgICAgIHRoaXMuYWRkVGV4dFRvUm93
KHRpdGxlLCAicXVldWUtbmFtZSIsIHF1ZXVlLmlkICsgIiBld3MgcXVldWUiKTsKLSAgICAgICAg
dGhpcy5hZGRMaW5rVG9Sb3codGl0bGUsICJxdWV1ZS1zdGF0dXMtbGluayIsICJzdGF0dXMgcGFn
ZSIsIHF1ZXVlLnN0YXR1c1BhZ2VVUkwpOwotICAgICAgICB0aGlzLmFkZExpbmtUb1Jvdyh0aXRs
ZSwgInF1ZXVlLWNoYXJ0cy1saW5rIiwgImNoYXJ0cyIsIHF1ZXVlLmNoYXJ0c1BhZ2VVUkwpOwot
Ci0gICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQodGl0bGUpOwotICAgIH0sCi0KLSAgICBfYWRk
Qm90c0hlYWRpbmdUb1BvcG92ZXI6IGZ1bmN0aW9uKHF1ZXVlLCBjb250ZW50KQotICAgIHsKLSAg
ICAgICAgdmFyIHRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAg
IHRpdGxlLmNsYXNzTmFtZSA9ICJwb3BvdmVyLWJvdHMtaGVhZGluZyI7Ci0gICAgICAgIHRpdGxl
LnRleHRDb250ZW50ID0gImxhdGVzdCBib3QgZXZlbnQiOwotICAgICAgICBjb250ZW50LmFwcGVu
ZENoaWxkKHRpdGxlKTsKLSAgICB9LAotCi0gICAgX2FkZERpdmlkZXJUb1BvcG92ZXI6IGZ1bmN0
aW9uKGNvbnRlbnQpCi0gICAgewotICAgICAgICB2YXIgZGl2aWRlciA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBkaXZpZGVyLmNsYXNzTmFtZSA9ICJkaXZpZGVyIjsK
LSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChkaXZpZGVyKTsKLSAgICB9LAotCi0gICAgX3Rp
bWVJbnRlcnZhbFN0cmluZzogZnVuY3Rpb24odGltZSkKLSAgICB7Ci0gICAgICAgIHZhciBzZWNv
bmRzSW5Ib3VyID0gNjAgKiA2MDsKLSAgICAgICAgdmFyIHRpbWVEaWZmZXJlbmNlID0gKERhdGUu
bm93KCkgLSB0aW1lLmdldFRpbWUoKSkgLyAxMDAwOwotICAgICAgICB2YXIgaG91cnMgPSBNYXRo
LmZsb29yKHRpbWVEaWZmZXJlbmNlIC8gc2Vjb25kc0luSG91cik7Ci0gICAgICAgIHZhciBtaW51
dGVzID0gTWF0aC5mbG9vcigodGltZURpZmZlcmVuY2UgLSBob3VycyAqIHNlY29uZHNJbkhvdXIp
IC8gNjApOwotICAgICAgICB2YXIgaG91cnNQYXJ0ID0gIiI7Ci0gICAgICAgIGlmIChob3VycyA9
PT0gMSkKLSAgICAgICAgICAgIGhvdXJzUGFydCA9ICIxXHhhMGhvdXIgYW5kICI7Ci0gICAgICAg
IGVsc2UgaWYgKGhvdXJzID4gMCkKLSAgICAgICAgICAgIGhvdXJzUGFydCA9IGhvdXJzICsgIlx4
YTBob3VycyBhbmQgIjsKLSAgICAgICAgaWYgKCFtaW51dGVzKQotICAgICAgICAgICAgcmV0dXJu
ICJsZXNzIHRoYW4gYSBtaW51dGUiOwotICAgICAgICBpZiAobWludXRlcyA9PT0gMSkKLSAgICAg
ICAgICAgIHJldHVybiBob3Vyc1BhcnQgKyAiMVx4YTBtaW51dGUiOwotICAgICAgICByZXR1cm4g
aG91cnNQYXJ0ICsgbWludXRlcyArICJceGEwbWludXRlcyI7Ci0gICAgfSwKLQotICAgIF9wb3Bv
dmVyQ29udGVudEZvckVXU1F1ZXVlOiBmdW5jdGlvbihxdWV1ZSkKLSAgICB7Ci0gICAgICAgIHZh
ciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIGNvbnRl
bnQuY2xhc3NOYW1lID0gImV3cy1wb3BvdmVyIjsKLQotICAgICAgICB0aGlzLl9hZGRRdWV1ZUhl
YWRpbmdUb1BvcG92ZXIocXVldWUsIGNvbnRlbnQpOwotICAgICAgICB0aGlzLl9hZGREaXZpZGVy
VG9Qb3BvdmVyKGNvbnRlbnQpOwotCi0gICAgICAgIHZhciBwYXRjaGVzID0gcXVldWUucGF0Y2hl
czsKLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIGVuZCA9IHBhdGNoZXMubGVuZ3RoOyBpIDwgZW5k
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBwYXRjaCA9IHBhdGNoZXNbaV07Ci0KLSAgICAgICAg
ICAgIHZhciByb3dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0KLSAg
ICAgICAgICAgIHRoaXMuYWRkTGlua1RvUm93KHJvd0VsZW1lbnQsICJwYXRjaC1kZXRhaWxzLWxp
bmsiLCBwYXRjaC5hdHRhY2htZW50SUQsIHBhdGNoLnN0YXR1c1BhZ2VVUkwpOwotCi0gICAgICAg
ICAgICBpZiAocGF0Y2gucmV0cnlDb3VudCkKLSAgICAgICAgICAgICAgICB0aGlzLmFkZFRleHRU
b1Jvdyhyb3dFbGVtZW50LCAiZmFpbHVyZS1jb3VudCIsIHBhdGNoLnJldHJ5Q291bnQgKyAiXHhh
MCIgKyAocGF0Y2gucmV0cnlDb3VudCA9PT0gMSA/ICJhdHRlbXB0IiA6ICJhdHRlbXB0cyIpKTsK
LQotICAgICAgICAgICAgaWYgKHBhdGNoLmRldGFpbGVkUmVzdWx0c1VSTEZvckxhdGVzdE1lc3Nh
Z2UpCi0gICAgICAgICAgICAgICAgdGhpcy5hZGRMaW5rVG9Sb3cocm93RWxlbWVudCwgImxhdGVz
dC1zdGF0dXMtd2l0aC1saW5rIiwgcGF0Y2gubGF0ZXN0TWVzc2FnZSwgcGF0Y2guZGV0YWlsZWRS
ZXN1bHRzVVJMRm9yTGF0ZXN0TWVzc2FnZSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwYXRjaC5s
YXRlc3RNZXNzYWdlICYmIHBhdGNoLmxhdGVzdE1lc3NhZ2UubGVuZ3RoKQotICAgICAgICAgICAg
ICAgIHRoaXMuYWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJsYXRlc3Qtc3RhdHVzLW5vLWxpbmsi
LCBwYXRjaC5sYXRlc3RNZXNzYWdlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHBhdGNoLmFjdGl2
ZSkgewotICAgICAgICAgICAgICAgIHRoaXMuYWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJsYXRl
c3Qtc3RhdHVzLW5vLWxpbmsiLCAiU3RhcnRlZCIpOwotICAgICAgICAgICAgICAgIHRoaXMuYWRk
VGV4dFRvUm93KHJvd0VsZW1lbnQsICJ0aW1lLXNpbmNlLW1lc3NhZ2UiLCB0aGlzLl90aW1lSW50
ZXJ2YWxTdHJpbmcocGF0Y2guYWN0aXZlU2luY2UpICsgIlx4YTBhZ28iKTsKLSAgICAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgICAgIHRoaXMuYWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJs
YXRlc3Qtc3RhdHVzLW5vLWxpbmsiLCAiTm90IHN0YXJ0ZWQgeWV0Iik7Ci0KLSAgICAgICAgICAg
IGlmIChwYXRjaC5sYXRlc3RNZXNzYWdlVGltZSkKLSAgICAgICAgICAgICAgICB0aGlzLmFkZFRl
eHRUb1Jvdyhyb3dFbGVtZW50LCAidGltZS1zaW5jZS1tZXNzYWdlIiwgdGhpcy5fdGltZUludGVy
dmFsU3RyaW5nKHBhdGNoLmxhdGVzdE1lc3NhZ2VUaW1lKSArICJceGEwYWdvIik7Ci0KLSAgICAg
ICAgICAgIHRoaXMuYWRkTGlua1RvUm93KHJvd0VsZW1lbnQsICJidWd6aWxsYS1saW5rIiwgImJ1
Z3ppbGxhIiwgYnVnemlsbGEuZGV0YWlsc1VSTEZvckF0dGFjaG1lbnQocGF0Y2guYXR0YWNobWVu
dElEKSk7Ci0KLSAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQocm93RWxlbWVudCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICB0aGlzLl9hZGREaXZpZGVyVG9Qb3BvdmVyKGNvbnRlbnQpOwot
ICAgICAgICB0aGlzLl9hZGRCb3RzSGVhZGluZ1RvUG9wb3ZlcihxdWV1ZSwgY29udGVudCk7Ci0g
ICAgICAgIHRoaXMuX2FkZERpdmlkZXJUb1BvcG92ZXIoY29udGVudCk7Ci0KLSAgICAgICAgdmFy
IGJvdHMgPSBxdWV1ZS5ib3RzOwotICAgICAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gYm90cy5s
ZW5ndGg7IGkgPCBlbmQ7ICsraSkgewotICAgICAgICAgICAgdmFyIGJvdCA9IGJvdHNbaV07Ci0K
LSAgICAgICAgICAgIHZhciByb3dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Ci0KLSAgICAgICAgICAgIHRoaXMuYWRkTGlua1RvUm93KHJvd0VsZW1lbnQsICJib3Qtc3Rh
dHVzLWxpbmsiLCBib3QuaWQsIGJvdC5zdGF0dXNQYWdlVVJMKTsKLSAgICAgICAgICAgIHRoaXMu
YWRkVGV4dFRvUm93KHJvd0VsZW1lbnQsICJib3Qtc3RhdHVzLWRlc2NyaXB0aW9uIiwgdGhpcy5f
dGltZUludGVydmFsU3RyaW5nKGJvdC5sYXRlc3RNZXNzYWdlVGltZSkgKyAiXHhhMGFnbyIpOwot
Ci0gICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHJvd0VsZW1lbnQpOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIGNvbnRlbnQ7Ci0gICAgfSwKLQotICAgIF9wcmVzZW50UG9wb3Zl
ckZvckVXU1F1ZXVlOiBmdW5jdGlvbihlbGVtZW50LCBwb3BvdmVyLCBxdWV1ZSkKLSAgICB7Ci0g
ICAgICAgIGlmIChxdWV1ZS5sb2FkZWREZXRhaWxlZFN0YXR1cykKLSAgICAgICAgICAgIHZhciBj
b250ZW50ID0gdGhpcy5fcG9wb3ZlckNvbnRlbnRGb3JFV1NRdWV1ZShxdWV1ZSk7Ci0gICAgICAg
IGVsc2UgewotICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NOYW1lID0gImV3cy1wb3BvdmVyIjsK
LQotICAgICAgICAgICAgdmFyIGxvYWRpbmdJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKLSAgICAgICAgICAgIGxvYWRpbmdJbmRpY2F0b3IuY2xhc3NOYW1lID0gImxv
YWRpbmctaW5kaWNhdG9yIjsKLSAgICAgICAgICAgIGxvYWRpbmdJbmRpY2F0b3IudGV4dENvbnRl
bnQgPSAiTG9hZGluZ1x1MjAyNiI7Ci0gICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGxv
YWRpbmdJbmRpY2F0b3IpOwotCi0gICAgICAgICAgICBxdWV1ZS5sb2FkRGV0YWlsZWRTdGF0dXMo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gdGhpcy5fcG9w
b3ZlckNvbnRlbnRGb3JFV1NRdWV1ZShxdWV1ZSk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcykp
OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHJlY3QgPSBEYXNoYm9hcmQuUmVjdC5yZWN0RnJv
bUNsaWVudFJlY3QoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci0gICAgICAgIHBv
cG92ZXIuY29udGVudCA9IGNvbnRlbnQ7Ci0gICAgICAgIHBvcG92ZXIucHJlc2VudChyZWN0LCBb
RGFzaGJvYXJkLlJlY3RFZGdlLk1JTl9ZLCBEYXNoYm9hcmQuUmVjdEVkZ2UuTUFYX1ksIERhc2hi
b2FyZC5SZWN0RWRnZS5NQVhfWCwgRGFzaGJvYXJkLlJlY3RFZGdlLk1JTl9YXSk7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBfdXBkYXRlUXVldWVzOiBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICB0aGlzLnF1ZXVlcy5mb3JFYWNoKGZ1bmN0aW9uKHF1ZXVlKSB7IHF1ZXVl
LnVwZGF0ZSgpOyB9KTsKLSAgICB9LAotCi0gICAgX3F1ZXVlVXBkYXRlZDogZnVuY3Rpb24oZXZl
bnQpCi0gICAgewotICAgICAgICB0aGlzLnVwZGF0ZVNvb24oKTsKLSAgICB9LAotfTsKSW5kZXg6
IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0luaXRpYWxpemF0aW9uLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0luaXRpYWxpemF0aW9uLmpzCShyZXZpc2lvbiAxNzQzNDMpCisr
KyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9Jbml0aWFsaXphdGlvbi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNyBAQCB2YXIgYnVpbGRib3RzID0gWyBuZXcgV2ViS2l0QnVpbGRib3QgXTsK
IHZhciB3ZWJraXRUcmFjID0gbmV3IFRyYWMoImh0dHBzOi8vdHJhYy53ZWJraXQub3JnLyIpOwog
aWYgKHR5cGVvZiBCdWd6aWxsYSAhPT0gInVuZGVmaW5lZCIpCiAgICAgdmFyIGJ1Z3ppbGxhID0g
bmV3IEJ1Z3ppbGxhOwotaWYgKHR5cGVvZiBFV1MgIT09ICJ1bmRlZmluZWQiKQotICAgIHZhciBl
d3MgPSBuZXcgRVdTOworaWYgKHR5cGVvZiBCdWJibGVRdWV1ZVNlcnZlciAhPT0gInVuZGVmaW5l
ZCIpCisgICAgdmFyIGJ1YmJsZVF1ZXVlU2VydmVyID0gbmV3IEJ1YmJsZVF1ZXVlU2VydmVyOwog
aWYgKHR5cGVvZiBUZXN0SGlzdG9yeSAhPT0gInVuZGVmaW5lZCIpCiAgICAgdmFyIHRlc3RIaXN0
b3J5ID0gbmV3IFRlc3RIaXN0b3J5OwpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCShyZXZpc2lvbiAx
NzQzNDMpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Myw4ICsyMyw4IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
dmFyIGhhc0VXUyA9IHR5cGVvZiBld3MgIT0gInVuZGVmaW5lZCI7Ci12YXIgRVdTQ2F0ZWdvcnkg
PSAiZXdzIjsKK3ZhciBoYXNCdWJibGVzID0gdHlwZW9mIGJ1YmJsZVF1ZXVlU2VydmVyICE9ICJ1
bmRlZmluZWQiOwordmFyIEJ1YmJsZXNDYXRlZ29yeSA9ICJidWJibGVzIjsKIAogdmFyIGNhdGVn
b3JpemVkUXVldWVzQnlQbGF0Zm9ybUFuZEJ1aWxkVHlwZSA9IHt9OwogCkBAIC02NCwxNiArNjQs
MTYgQEAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZGJvdHMubGVuZ3RoOyArKwogICAgIH0KIH0K
IAotaWYgKGhhc0VXUykgewotICAgIGZvciAodmFyIGlkIGluIGV3cy5xdWV1ZXMpIHsKLSAgICAg
ICAgdmFyIHF1ZXVlID0gZXdzLnF1ZXVlc1tpZF07CitpZiAoaGFzQnViYmxlcykgeworICAgIGZv
ciAodmFyIGlkIGluIGJ1YmJsZVF1ZXVlU2VydmVyLnF1ZXVlcykgeworICAgICAgICB2YXIgcXVl
dWUgPSBidWJibGVRdWV1ZVNlcnZlci5xdWV1ZXNbaWRdOwogICAgICAgICB2YXIgcGxhdGZvcm0g
PSBjYXRlZ29yaXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGVbcXVldWUucGxhdGZvcm1d
OwogICAgICAgICBpZiAoIXBsYXRmb3JtKQogICAgICAgICAgICAgcGxhdGZvcm0gPSBjYXRlZ29y
aXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGVbcXVldWUucGxhdGZvcm1dID0ge307CiAg
ICAgICAgIGlmICghcGxhdGZvcm0uYnVpbGRlcnMpCiAgICAgICAgICAgICBwbGF0Zm9ybS5idWls
ZGVycyA9IHt9OwogCi0gICAgICAgIHZhciBjYXRlZ29yeU5hbWUgPSBFV1NDYXRlZ29yeTsKKyAg
ICAgICAgdmFyIGNhdGVnb3J5TmFtZSA9IEJ1YmJsZXNDYXRlZ29yeTsKIAogICAgICAgICBwbGF0
Zm9ybVF1ZXVlcyA9IHBsYXRmb3JtW2NhdGVnb3J5TmFtZV07CiAgICAgICAgIGlmICghcGxhdGZv
cm1RdWV1ZXMpCkBAIC0xNTQsOSArMTU0LDExIEBAIGZ1bmN0aW9uIGRvY3VtZW50UmVhZHkoKQog
ICAgIGhlYWRlci50ZXh0Q29udGVudCA9ICJQZXJmb3JtYW5jZSI7CiAgICAgcm93LmFwcGVuZENo
aWxkKGhlYWRlcik7CiAKLSAgICBpZiAoaGFzRVdTKSB7CisgICAgaWYgKGhhc0J1YmJsZXMpIHsK
KyAgICAgICAgLy8gQ3VycmVudGx5LCBFV1MgYW5kIGNvbW1pdCBxdWV1ZXMgYXJlIHRoZSBvbmx5
IGl0ZW1zIGluIE90aGVyIGNhdGVnb3J5LgorICAgICAgICAvLyBUbyBhZGQgbW9yZSAoZS5nLiBs
ZWFrcyBib3QpLCB3ZSdsbCBuZWVkIHRvIHJlZmFjdG9yIHZpZXcgY2xhc3Nlcy4KICAgICAgICAg
dmFyIGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoIik7Ci0gICAgICAgIGhlYWRl
ci50ZXh0Q29udGVudCA9ICJFV1MiOworICAgICAgICBoZWFkZXIudGV4dENvbnRlbnQgPSAiT3Ro
ZXIiOwogICAgICAgICByb3cuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICB9CiAKQEAgLTIyMCwx
MSArMjIyLDExIEBAIGZ1bmN0aW9uIGRvY3VtZW50UmVhZHkoKQogCiAgICAgICAgIHJvdy5hcHBl
bmRDaGlsZChjZWxsKTsKIAotICAgICAgICBpZiAoaGFzRVdTKSB7CisgICAgICAgIGlmIChoYXNC
dWJibGVzKSB7CiAgICAgICAgICAgICB2YXIgY2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InRkIik7CiAKLSAgICAgICAgICAgIGlmIChwbGF0Zm9ybVF1ZXVlc1tFV1NDYXRlZ29yeV0pIHsK
LSAgICAgICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBFV1NRdWV1ZVZpZXcocGxhdGZvcm1RdWV1
ZXNbRVdTQ2F0ZWdvcnldKTsKKyAgICAgICAgICAgIGlmIChwbGF0Zm9ybVF1ZXVlc1tCdWJibGVz
Q2F0ZWdvcnldKSB7CisgICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgQnViYmxlUXVldWVW
aWV3KHBsYXRmb3JtUXVldWVzW0J1YmJsZXNDYXRlZ29yeV0pOwogICAgICAgICAgICAgICAgIGNl
bGwuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50KTsKICAgICAgICAgICAgIH0KIApJbmRleDogVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc01haW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvTWV0cmljc01haW4uanMJKHJldmlzaW9uIDE3NDM0MykKKysrIFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL01ldHJpY3NNYWluLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMyw2
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotdmFyIGhhc0VX
UyA9IHR5cGVvZiBld3MgIT09ICJ1bmRlZmluZWQiOwotdmFyIEVXU0NhdGVnb3J5ID0gImV3cyI7
Ci0KIHZhciBhbmFseXplciA9IG5ldyBBbmFseXplcjsKIAogdmFyIGFsbEJ1aWxkZXJSZXN1bHRz
UHNldWRvUXVldWUgPSB7IGlkOiAiYWxsQnVpbGRlclJlc3VsdHNQc2V1ZG9RdWV1ZSIgfTsKQEAg
LTY3LDI1ICs2NCw2IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGRib3RzLmxlbmd0aDsgKysK
ICAgICB9CiB9CiAKLWlmIChoYXNFV1MpIHsKLSAgICBmb3IgKHZhciBpZCBpbiBld3MucXVldWVz
KSB7Ci0gICAgICAgIHZhciBxdWV1ZSA9IGV3cy5xdWV1ZXNbaWRdOwotICAgICAgICB2YXIgcGxh
dGZvcm0gPSBjYXRlZ29yaXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGVbcXVldWUucGxh
dGZvcm1dOwotICAgICAgICBpZiAoIXBsYXRmb3JtKQotICAgICAgICAgICAgcGxhdGZvcm0gPSBj
YXRlZ29yaXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGVbcXVldWUucGxhdGZvcm1dID0g
e307Ci0gICAgICAgIGlmICghcGxhdGZvcm0uYnVpbGRlcnMpCi0gICAgICAgICAgICBwbGF0Zm9y
bS5idWlsZGVycyA9IHt9OwotCi0gICAgICAgIHZhciBjYXRlZ29yeU5hbWUgPSBFV1NDYXRlZ29y
eTsKLQotICAgICAgICBwbGF0Zm9ybVF1ZXVlcyA9IHBsYXRmb3JtW2NhdGVnb3J5TmFtZV07Ci0g
ICAgICAgIGlmICghcGxhdGZvcm1RdWV1ZXMpCi0gICAgICAgICAgICBwbGF0Zm9ybVF1ZXVlcyA9
IHBsYXRmb3JtW2NhdGVnb3J5TmFtZV0gPSBbXTsKLQotICAgICAgICBwbGF0Zm9ybVF1ZXVlcy5w
dXNoKHF1ZXVlKTsKLSAgICB9Ci19Ci0KIHZhciB0ZXN0TmFtZXMgPSB7fTsKIHRlc3ROYW1lc1tC
dWlsZGJvdC5UZXN0Q2F0ZWdvcnkuV2ViS2l0Ml0gPSAiV0syIFRlc3RzIjsKIHRlc3ROYW1lc1tC
dWlsZGJvdC5UZXN0Q2F0ZWdvcnkuV2ViS2l0MV0gPSAiV0sxIFRlc3RzIjsKQEAgLTE3NCwxMiAr
MTUyLDYgQEAgZnVuY3Rpb24gYnVpbGRBZ2dyZWdhdGVUYWJsZSgpCiAgICAgaGVhZGVyLnRleHRD
b250ZW50ID0gIkFsbCBxdWV1ZXMiOwogICAgIHJvdy5hcHBlbmRDaGlsZChoZWFkZXIpOwogCi0g
ICAgaWYgKGhhc0VXUykgewotICAgICAgICB2YXIgaGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidGgiKTsKLSAgICAgICAgaGVhZGVyLnRleHRDb250ZW50ID0gIkVXUyI7Ci0gICAgICAg
IHJvdy5hcHBlbmRDaGlsZChoZWFkZXIpOwotICAgIH0KLQogICAgIHRhYmxlLmFwcGVuZENoaWxk
KHJvdyk7CiAKICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKQEAg
LTIyOCwxMiArMjAwLDYgQEAgZnVuY3Rpb24gYnVpbGRRdWV1ZXNUYWJsZSgpCiAgICAgICAgIHJv
dy5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgIH0KIAotICAgIGlmIChoYXNFV1MpIHsKLSAgICAg
ICAgdmFyIGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoIik7Ci0gICAgICAgIGhl
YWRlci50ZXh0Q29udGVudCA9ICJFV1MiOwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQoaGVhZGVy
KTsKLSAgICB9Ci0KICAgICB0YWJsZS5hcHBlbmRDaGlsZChyb3cpOwogCiAgICAgdmFyIHBsYXRm
b3JtcyA9IHNvcnRlZFBsYXRmb3JtcygpOwpAQCAtMjg2LDE3ICsyNTIsNiBAQCBmdW5jdGlvbiBi
dWlsZFF1ZXVlc1RhYmxlKCkKICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjZWxsKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChoYXNFV1MpIHsKLSAgICAgICAgICAgIHZhciBjZWxsID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKLQotICAgICAgICAgICAgaWYgKHBsYXRmb3Jt
UXVldWVzW0VXU0NhdGVnb3J5XSkgewotICAgICAgICAgICAgICAgIHZhciB2aWV3ID0gbmV3IEVX
U1F1ZXVlVmlldyhwbGF0Zm9ybVF1ZXVlc1tFV1NDYXRlZ29yeV0pOwotICAgICAgICAgICAgICAg
IGNlbGwuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgcm93LmFwcGVuZENoaWxkKGNlbGwpOwotICAgICAgICB9Ci0KICAgICAgICAgdGFibGUu
YXBwZW5kQ2hpbGQocm93KTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TdHlsZXMvUXVl
dWVWaWV3LmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU3R5bGVzL1F1ZXVlVmlldy5j
c3MJKHJldmlzaW9uIDE3NDM0MykKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TdHlsZXMvUXVldWVWaWV3LmNz
cwkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBACiAgICAgcGFkZGluZy1sZWZ0OiA3
cHg7CiB9CiAKLS5ld3MtcG9wb3ZlciwKKy5idWJibGUtc2VydmVyLXBvcG92ZXIsCiAucGVyZm9y
bWFuY2UtcG9wb3ZlciB7CiAgICAgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2FOZXVlLUxpZ2h0Iiwg
IkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgICBjb2xvcjogcmdiKDE0NSwgMTM1LCA5
NSk7CkBAIC0xMjksMjIgKzEyOSwyMiBAQAogICAgIHBhZGRpbmc6IDFweCA2cHggMXB4IDZweDsK
IH0KIAotLmV3cy1wb3BvdmVyIC5wb3BvdmVyLXF1ZXVlLWhlYWRpbmcgLnF1ZXVlLXN0YXR1cy1s
aW5rLAotLmV3cy1wb3BvdmVyIC5wb3BvdmVyLXF1ZXVlLWhlYWRpbmcgLnF1ZXVlLWNoYXJ0cy1s
aW5rIHsKKy5idWJibGUtc2VydmVyLXBvcG92ZXIgLnBvcG92ZXItcXVldWUtaGVhZGluZyAucXVl
dWUtc3RhdHVzLWxpbmssCisuYnViYmxlLXNlcnZlci1wb3BvdmVyIC5wb3BvdmVyLXF1ZXVlLWhl
YWRpbmcgLnF1ZXVlLWNoYXJ0cy1saW5rIHsKICAgICBjb2xvcjogcmdiKDE0NSwgMTM1LCA5NSk7
CiAgICAgcGFkZGluZy1sZWZ0OiA3cHg7CiB9CiAKLS5ld3MtcG9wb3ZlciAubGF0ZXN0LXN0YXR1
cy13aXRoLWxpbmssCi0uZXdzLXBvcG92ZXIgLmxhdGVzdC1zdGF0dXMtbm8tbGluayB7CisuYnVi
YmxlLXNlcnZlci1wb3BvdmVyIC5sYXRlc3Qtc3RhdHVzLXdpdGgtbGluaywKKy5idWJibGUtc2Vy
dmVyLXBvcG92ZXIgLmxhdGVzdC1zdGF0dXMtbm8tbGluayB7CiAgICAgY29sb3I6IGJsYWNrOwog
ICAgIHBhZGRpbmctbGVmdDogN3B4OwogfQogCi0uZXdzLXBvcG92ZXIgLmZhaWx1cmUtY291bnQs
Ci0uZXdzLXBvcG92ZXIgLnRpbWUtc2luY2UtbWVzc2FnZSwKLS5ld3MtcG9wb3ZlciAuYnVnemls
bGEtbGluaywKLS5ld3MtcG9wb3ZlciAuYm90LXN0YXR1cy1kZXNjcmlwdGlvbiB7CisuYnViYmxl
LXNlcnZlci1wb3BvdmVyIC5mYWlsdXJlLWNvdW50LAorLmJ1YmJsZS1zZXJ2ZXItcG9wb3ZlciAu
dGltZS1zaW5jZS1tZXNzYWdlLAorLmJ1YmJsZS1zZXJ2ZXItcG9wb3ZlciAuYnVnemlsbGEtbGlu
aywKKy5idWJibGUtc2VydmVyLXBvcG92ZXIgLmJvdC1zdGF0dXMtZGVzY3JpcHRpb24gewogICAg
IHBhZGRpbmctbGVmdDogN3B4OwogfQogCg==
</data>
<flag name="review"
          id="264082"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>