<?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>168484</bug_id>
          
          <creation_ts>2017-02-16 17:08:23 -0800</creation_ts>
          <short_desc>Modernize and fix measurement-set tests</short_desc>
          <delta_ts>2017-02-16 19:51:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>Other</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278033</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-16 17:08:23 -0800</bug_when>
    <thetext>New version of node which reports unhandled promises found a bunch of bugs in measurement-set-tests.js.
Fix the tests and also fix a tiny bug in hasFetchedRange I found by fixing the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278039</commentid>
    <comment_count>1</comment_count>
      <attachid>301865</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-16 17:27:04 -0800</bug_when>
    <thetext>Created attachment 301865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278081</commentid>
    <comment_count>2</comment_count>
      <attachid>301865</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-02-16 19:46:41 -0800</bug_when>
    <thetext>Comment on attachment 301865
Patch

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

r=me

&gt; Websites/perf.webkit.org/unit-tests/measurement-set-tests.js:114
&gt; +        it(&apos;should invoke the callback and fetch a secondary cluster when the cached primary cluster is within in the requested range&apos;, () =&gt; {

Typo: &quot;is within in&quot; =&gt; &quot;is within&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278082</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-16 19:51:51 -0800</bug_when>
    <thetext>Committed r212520: &lt;http://trac.webkit.org/changeset/212520&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301865</attachid>
            <date>2017-02-16 17:27:04 -0800</date>
            <delta_ts>2017-02-16 19:46:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168484-20170216172429.patch</filename>
            <type>text/plain</type>
            <size>43202</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyNTA3KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE3LTAyLTE2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1vZGVybml6ZSBhbmQgZml4IG1lYXN1cmVtZW50LXNldCB0ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDg0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kZXJuaXplZCBhbmQg
Zml4ZWQgdGhlIHRlc3RzIGluIG1lYXN1cmVtZW50LXNldC10ZXN0cy5qcy4KKworICAgICAgICAx
LiBSZXR1cm4gYSBwcm9taXNlIGluc3RlYWQgb2YgbWFudWFsbHkgY2FsbGluZyBkb25lIGluIHRo
ZW4vY2F0Y2ggaGFubGRlcnMuCisgICAgICAgIDIuIFVzZSBhcnJvdyBmdW5jdGlvbiBldmVyeXdo
ZXJlLgorICAgICAgICAzLiBFeHBsaWNpdGx5IGFzc2VydCB0aGUgbnVtYmVyIG9mIGNhbGxzIHRv
IGNhbGxiYWNrcyBpbnN0ZWFkIG9mIGFzc2VydGluZyBuZXZlciByZWFjaGVkLgorCisgICAgICAg
IFRoZSB0ZXN0IGNhc2UgbGFibGVkICJzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gdGhlIHJhbmdl
IGVuZHMgYWZ0ZXIgdGhlIGZldGNoZWQgY2x1c3RlciIKKyAgICAgICAgd2FzIGluY29ycmVjdGx5
IGFzc2VydGluZyB0aGF0IGhhc0ZldGNoZWRSYW5nZSByZXR1cm5zIGZhbHNlIHdoZW4gdGhlIGVu
ZCB0aW1lIGlzIGFmdGVyCisgICAgICAgIHRoZSBwcmltYXJ5IGNsdXN0ZXIncyBlbmQgdGltZS4g
VGVzdCBhbiBpbnRlcnZhbCBiZWZvcmUgdGhlIHByaW1hcnkgY2x1c3RlciBpbnN0ZWFkLgorCisg
ICAgICAgIEFkZGVkIGEgdGVzdCBjYXNlIGZvciBoYXNGZXRjaGVkUmFuZ2UgcmV0dXJuaW5nIHRy
dWUgd2hlbiB0aGUgZW5kIHRpbWUgYXBwZWFycyBhZnRlcgorICAgICAgICB0aGUgZW5kIG9mIHRo
ZSBwcmltYXJ5IGNsdXN0ZXIgYW5kIGZpeGVkIGhhc0ZldGNoZWRSYW5nZSB0byB0aGF0IGVuZC4g
U2luY2UgdGhlcmUgYXJlCisgICAgICAgIG5vIGRhdGEgcG9pbnRzIGFmdGVyIHRoZSBwcmltYXJ5
IGNsdXN0ZXIgd2hpY2ggaXMgY2hyb25vbG9naWNhbGx5IHRoZSBsYXN0IGNsdXN0ZXIsCisgICAg
ICAgIHRoZXJlIGlzIG5vdGhpbmcgdG8gZmV0Y2ggYmV5b25kIGl0cyBlbmQgdGltZS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzOgorICAgICAgICAoTWVh
c3VyZW1lbnRTZXQucHJvdG90eXBlLmhhc0ZldGNoZWRSYW5nZSk6IEZpeGVkIHRoZSBidWcgdGhh
dCB0aGlzIGZ1bmN0aW9uIHJldHVybmVkCisgICAgICAgIGZhbHNlIHdoZW4gdGhlIGVuZCB0aW1l
IHdhcyBhZnRlciB0aGUgcHJpbWFyeSBjbHVzdGVyJ3MgZW5kIGJ5IHRydW5jYXRpbmcgdGhlIHJh
bmdlIGJ5CisgICAgICAgIHRoZSBlbmQgb2YgdGhlIHByaW1hcnkgY2x1c3Rlci4KKyAgICAgICAg
KiB1bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC10ZXN0cy5qczoKKyAgICAgICAgKiB1bml0LXRl
c3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanM6CisgICAgICAgIChhc3NlcnQubm90UmVh
Y2hlZC5hc3NlcnQubm90UmVhY2hlZCk6IERlbGV0ZWQuIEl0J3Mgbm8gbG9uZ2VyIHVzZWQgYnkg
YW55IHRlc3RzLgorCiAyMDE3LTAyLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVwZGF0ZSBSZWFkTWUubWQgYW5kIG1lcmdlIGl0IHdpdGggSW5zdGFsbC5t
ZApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3Vy
ZW1lbnQtc2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LXNldC5qcwkocmV2aXNpb24gMjEyNDY5KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsMTIgKzE2MSwxMyBAQCBjbGFzcyBNZWFzdXJlbWVudFNl
dCB7CiAgICAgaGFzRmV0Y2hlZFJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0VGltZSA8IGVuZFRpbWUpOwotICAgICAgICB2YXIgZm91
bmRTdGFydCA9IGZhbHNlOwotICAgICAgICB2YXIgcHJldmlvdXNFbmRUaW1lID0gbnVsbDsKKyAg
ICAgICAgbGV0IGZvdW5kU3RhcnQgPSBmYWxzZTsKKyAgICAgICAgbGV0IHByZXZpb3VzRW5kVGlt
ZSA9IG51bGw7CisgICAgICAgIGVuZFRpbWUgPSBNYXRoLm1pbihlbmRUaW1lLCB0aGlzLl9wcmlt
YXJ5Q2x1c3RlckVuZFRpbWUpOwogICAgICAgICBmb3IgKHZhciBjbHVzdGVyIG9mIHRoaXMuX3Nv
cnRlZENsdXN0ZXJzKSB7Ci0gICAgICAgICAgICB2YXIgY29udGFpbnNTdGFydCA9IGNsdXN0ZXIu
c3RhcnRUaW1lKCkgPD0gc3RhcnRUaW1lICYmIHN0YXJ0VGltZSA8PSBjbHVzdGVyLmVuZFRpbWUo
KTsKLSAgICAgICAgICAgIHZhciBjb250YWluc0VuZCA9IGNsdXN0ZXIuc3RhcnRUaW1lKCkgPD0g
ZW5kVGltZSAmJiBlbmRUaW1lIDw9IGNsdXN0ZXIuZW5kVGltZSgpOwotICAgICAgICAgICAgdmFy
IHByZWNlZWRpbmdDbHVzdGVySXNNaXNzaW5nID0gcHJldmlvdXNFbmRUaW1lICE9PSBudWxsICYm
IHByZXZpb3VzRW5kVGltZSAhPSBjbHVzdGVyLnN0YXJ0VGltZSgpOworICAgICAgICAgICAgY29u
c3QgY29udGFpbnNTdGFydCA9IGNsdXN0ZXIuc3RhcnRUaW1lKCkgPD0gc3RhcnRUaW1lICYmIHN0
YXJ0VGltZSA8PSBjbHVzdGVyLmVuZFRpbWUoKTsKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5z
RW5kID0gY2x1c3Rlci5zdGFydFRpbWUoKSA8PSBlbmRUaW1lICYmIGVuZFRpbWUgPD0gY2x1c3Rl
ci5lbmRUaW1lKCk7CisgICAgICAgICAgICBjb25zdCBwcmVjZWVkaW5nQ2x1c3RlcklzTWlzc2lu
ZyA9IHByZXZpb3VzRW5kVGltZSAhPT0gbnVsbCAmJiBwcmV2aW91c0VuZFRpbWUgIT0gY2x1c3Rl
ci5zdGFydFRpbWUoKTsKICAgICAgICAgICAgIGlmIChjb250YWluc1N0YXJ0ICYmIGNvbnRhaW5z
RW5kKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgaWYgKGNvbnRh
aW5zU3RhcnQpCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFz
dXJlbWVudC1zZXQtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCShyZXZpc2lvbiAyMTI0Njkp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQt
dGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgsNDAgKzgsNDAgQEAgY29uc3QgTW9ja1JlbW90
ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyYwogcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxz
LmpzJyk7CiBjb25zdCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay12My1t
b2RlbHMuanMnKS5Nb2NrTW9kZWxzOwogCi1kZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5j
dGlvbiAoKSB7CitkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCAoKSA9PiB7CiAgICAgTW9ja01v
ZGVscy5pbmplY3QoKTsKICAgICBsZXQgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLmluamVjdCgp
OwogCi0gICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgYmVmb3JlRWFjaCgoKSA9PiB7
CiAgICAgICAgIE1lYXN1cmVtZW50U2V0Ll9zZXQgPSBudWxsOwogICAgIH0pOwogCiAgICAgZnVu
Y3Rpb24gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZSgpOwotICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIH0pOwog
ICAgIH0KIAotICAgIGRlc2NyaWJlKCdmaW5kU2V0JywgZnVuY3Rpb24gKCkgewotICAgICAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBhIG5ldyBNZWFzdXJlbWVudFNldCBmb3IgYSBuZXcgcGFpciBvZiBw
bGF0Zm9ybSBhbmQgbWF0cmljJywgZnVuY3Rpb24gKCkgeworICAgIGRlc2NyaWJlKCdmaW5kU2V0
JywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIG5ldyBNZWFzdXJlbWVudFNl
dCBmb3IgYSBuZXcgcGFpciBvZiBwbGF0Zm9ybSBhbmQgbWF0cmljJywgKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCks
IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMiwgMzAwMCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCksIE1lYXN1cmVtZW50
U2V0LmZpbmRTZXQoMiwgMSwgMzAwMCkpOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hv
dWxkIG5vdCBjcmVhdGUgYSBuZXcgTWVhc3VyZW1lbnRTZXQgd2hlbiB0aGUgc2FtZSBwYWlyIG9m
IHBsYXRmb3JtIGFuZCBtYXRyaWMgYXJlIHJlcXVlc3RlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgaXQoJ3Nob3VsZCBub3QgY3JlYXRlIGEgbmV3IE1lYXN1cmVtZW50U2V0IHdoZW4gdGhlIHNh
bWUgcGFpciBvZiBwbGF0Zm9ybSBhbmQgbWF0cmljIGFyZSByZXF1ZXN0ZWQnLCAoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxKSwgTWVh
c3VyZW1lbnRTZXQuZmluZFNldCgxLCAxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCi0gICAg
ZGVzY3JpYmUoJ2ZpbmRDbHVzdGVycycsIGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmliZSgnZmlu
ZENsdXN0ZXJzJywgKCkgPT4gewogCi0gICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGNsdXN0ZXJz
IHRoYXQgZXhpc3QnLCBmdW5jdGlvbiAoZG9uZSkgewotICAgICAgICAgICAgdmFyIHNldCA9IE1l
YXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMTQ2Nzg1MjUwMzk0MCk7Ci0gICAgICAgICAgICB2
YXIgY2FsbENvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBwcm9taXNlID0gc2V0LmZldGNoQmV0
d2VlbigxNDY1MDg0ODAwMDAwLCAxNDcwMjY4ODAwMDAwLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IGl0KCdzaG91bGQgcmV0dXJuIGNsdXN0ZXJzIHRoYXQgZXhpc3QnLCAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDE0Njc4NTI1MDM5
NDApOworICAgICAgICAgICAgbGV0IGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBjb25zdCBw
cm9taXNlID0gc2V0LmZldGNoQmV0d2VlbigxNDY1MDg0ODAwMDAwLCAxNDcwMjY4ODAwMDAwLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY2FsbENvdW50Kys7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtNTgsMzkgKzU4
LDM5IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICAnY2x1c3RlckNvdW50JzogNSwKICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09L
J30pOwogCi0gICAgICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmV0dXJuIHByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQuZmluZENsdXN0ZXJzKDAsIERhdGUubm93KCkpLCBbMTQ0OTUzMjgwMDAwMCwg
MTQ1NDcxNjgwMDAwMCwgMTQ1OTkwMDgwMDAwMCwgMTQ2NTA4NDgwMDAwMCwgMTQ3MDI2ODgwMDAw
MF0pOwotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0
aW9uIChlcnJvcikgewotICAgICAgICAgICAgICAgIGRvbmUoZXJyb3IpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCiAgICAgfSk7CiAKLSAgICBkZXNjcmliZSgnZmV0Y2hCZXR3ZWVu
JywgZnVuY3Rpb24gKCkgewotICAgICAgICBpdCgnc2hvdWxkIGFsd2F5cyByZXF1ZXN0IHRoZSBj
YWNoZWQgcHJpbWFyeSBjbHVzdGVyIGZpcnN0JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
dmFyIHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7Ci0gICAgICAgICAg
ICBzZXQuZmV0Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsIGZ1bmN0aW9uICgpIHsgYXNzZXJ0Lm5vdFJl
YWNoZWQoKTsgfSk7CisgICAgZGVzY3JpYmUoJ2ZldGNoQmV0d2VlbicsICgpID0+IHsKKyAgICAg
ICAgaXQoJ3Nob3VsZCBhbHdheXMgcmVxdWVzdCB0aGUgY2FjaGVkIHByaW1hcnkgY2x1c3RlciBm
aXJzdCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHNldCA9IE1lYXN1cmVtZW50U2V0LmZp
bmRTZXQoMSwgMSwgMzAwMCk7CisgICAgICAgICAgICBsZXQgY2FsbENvdW50ID0gMDsKKyAgICAg
ICAgICAgIHNldC5mZXRjaEJldHdlZW4oMTAwMCwgMjAwMCwgKCkgPT4gY2FsbENvdW50KyspOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQt
MS0xLmpzb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDApOwogICAg
ICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIG5vdCByZXF1ZXN0IHRoZSBjYWNoZWQgcHJp
bWFyeSBjbHVzdGVyIHR3aWNlJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIHNldCA9
IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7Ci0gICAgICAgICAgICBzZXQuZmV0
Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsIGZ1bmN0aW9uICgpIHsgYXNzZXJ0Lm5vdFJlYWNoZWQoKTsg
fSk7CisgICAgICAgIGl0KCdzaG91bGQgbm90IHJlcXVlc3QgdGhlIGNhY2hlZCBwcmltYXJ5IGNs
dXN0ZXIgdHdpY2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzZXQgPSBNZWFzdXJlbWVu
dFNldC5maW5kU2V0KDEsIDEsIDMwMDApOworICAgICAgICAgICAgbGV0IGNhbGxDb3VudCA9IDA7
CisgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsICgpID0+IGNhbGxDb3Vu
dCsrKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwgMCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQtMS0xLmpzb24n
KTsKLSAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMjAwMCwgMzAwMCwgZnVuY3Rpb24gKCkg
eyBhc3NlcnQubm90UmVhY2hlZCgpOyB9KTsKKyAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4o
MjAwMCwgMzAwMCwgKCkgPT4gY2FsbENvdW50KyspOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50
LCAwKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBpbnZva2UgdGhlIGNhbGxi
YWNrIHdoZW4gdGhlIHVwLXRvLWRhdGUgY2FjaGVkIHByaW1hcnkgY2x1c3RlciBpcyBmZXRjaGVk
IGFuZCBpdCBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgcmFuZ2UnLCBmdW5jdGlvbiAoZG9uZSkgewot
ICAgICAgICAgICAgdmFyIHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7
Ci0gICAgICAgICAgICB2YXIgY2FsbENvdW50ID0gMDsKLSAgICAgICAgICAgIHZhciBwcm9taXNl
ID0gc2V0LmZldGNoQmV0d2VlbigyMDAwLCAzMDAwLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICAgICAgY2FsbENvdW50Kys7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgaXQoJ3Nob3VsZCBp
bnZva2UgdGhlIGNhbGxiYWNrIHdoZW4gdGhlIHJlcXVlc3RlZCByYW5nZSBpcyBpbiB0aGUgY2Fj
aGVkIHByaW1hcnkgY2x1c3RlcicsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHNldCA9IE1l
YXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7CisgICAgICAgICAgICBsZXQgY2FsbENv
dW50ID0gMDsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBzZXQuZmV0Y2hCZXR3ZWVuKDIw
MDAsIDMwMDAsICgpID0+IGNhbGxDb3VudCsrKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
LnVybCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKQEAgLTEwNSwyMSAr
MTA1LDE2IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICAnY2x1c3RlckNvdW50JzogMiwKICAgICAgICAgICAgICAgICAnc3RhdHVzJzog
J09LJ30pOwogCi0gICAgICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNhbGxDb3VudCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBpbnZva2Ug
dGhlIGNhbGxiYWNrIGFuZCBmZXRjaCBhIHNlY29uZGFyeSBjbHVzdGVyIHdoZW4gdGhlIGNhY2hl
ZCBwcmltYXJ5IGNsdXN0ZXIgaXMgdXAtdG8tZGF0ZSBhbmQgd2l0aGluIGluIHRoZSByZXF1ZXN0
ZWQgcmFuZ2UnLCBmdW5jdGlvbiAoZG9uZSkgewotICAgICAgICAgICAgdmFyIHNldCA9IE1lYXN1
cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7Ci0gICAgICAgICAgICB2YXIgY2FsbENvdW50
ID0gMDsKLSAgICAgICAgICAgIHZhciBwcm9taXNlID0gc2V0LmZldGNoQmV0d2VlbigxMDAwLCAz
MDAwLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY2FsbENvdW50Kys7Ci0gICAgICAg
ICAgICB9KTsKKyAgICAgICAgaXQoJ3Nob3VsZCBpbnZva2UgdGhlIGNhbGxiYWNrIGFuZCBmZXRj
aCBhIHNlY29uZGFyeSBjbHVzdGVyIHdoZW4gdGhlIGNhY2hlZCBwcmltYXJ5IGNsdXN0ZXIgaXMg
d2l0aGluIGluIHRoZSByZXF1ZXN0ZWQgcmFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDMwMDApOworICAgICAgICAgICAg
bGV0IGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gc2V0LmZldGNo
QmV0d2VlbigxMDAwLCAzMDAwLCAoKSA9PiBjYWxsQ291bnQrKyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEuanNvbicpOwogCkBA
IC0xMzQsMjEgKzEyOSwxNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDIsCiAgICAgICAgICAgICAgICAg
J3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAgd2FpdEZvck1lYXN1cmVtZW50U2V0KCku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50
U2V0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3Vu
dCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy4uL2RhdGEv
bWVhc3VyZW1lbnQtc2V0LTEtMS0yMDAwLmpzb24nKTsKLSAgICAgICAgICAgICAgICBkb25lKCk7
Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAg
ICBkb25lKGVycm9yKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBp
dCgnc2hvdWxkIHJlcXVlc3QgYWRkaXRpb25hbCBzZWNvbmRhcnkgY2x1c3RlcnMgYXMgcmVxdWVz
dGVkJywgZnVuY3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVu
dFNldC5maW5kU2V0KDEsIDEsIDUwMDApOwotICAgICAgICAgICAgc2V0LmZldGNoQmV0d2Vlbigy
MDAwLCAzMDAwLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdFJlYWNo
ZWQoKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBpdCgnc2hvdWxkIHJlcXVlc3QgYWRkaXRp
b25hbCBzZWNvbmRhcnkgY2x1c3RlcnMgYXMgcmVxdWVzdGVkJywgKCkgPT4geworICAgICAgICAg
ICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxLCA1MDAwKTsKKyAgICAg
ICAgICAgIGxldCBjYWxsQ291bnRGb3JXYWl0aW5nQ2FsbGJhY2sgPSAwOworICAgICAgICAgICAg
c2V0LmZldGNoQmV0d2VlbigyMDAwLCAzMDAwLCAoKSA9PiBjYWxsQ291bnRGb3JXYWl0aW5nQ2Fs
bGJhY2srKyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1
cmVtZW50LXNldC0xLTEuanNvbicpOwogCkBAIC0xNjMsMzEgKzE1NCwyNyBAQCBkZXNjcmliZSgn
TWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJD
b3VudCc6IDQsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAg
ICAgdmFyIGNhbGxDb3VudCA9IDA7Ci0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQo
KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnQgPSAwOworICAg
ICAgICAgICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50
LXNldC0xLTEtMzAwMC5qc29uJyk7CiAKLSAgICAgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVu
KDAsIDcwMDAsIGZ1bmN0aW9uICgpIHsgY2FsbENvdW50Kys7IH0pOworICAgICAgICAgICAgICAg
IHNldC5mZXRjaEJldHdlZW4oMCwgNzAwMCwgKCkgPT4gY2FsbENvdW50KyspOwogCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgpOwotICAgICAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50Rm9yV2FpdGluZ0NhbGxiYWNrLCAwKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAxKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQtMS0xLTIw
MDAuanNvbicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmws
ICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEtNDAwMC5qc29uJyk7Ci0KLSAgICAgICAgICAg
ICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICBkb25lKGVycm9yKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IAotICAgICAgICBpdCgnc2hvdWxkIHJlcXVlc3Qgc2Vjb25kYXJ5IGNsdXN0ZXJzIHdoaWNoIGZv
cm1zIGEgc3VwZXJzZXQgb2YgdGhlIHJlcXVlc3RlZCByYW5nZScsIGZ1bmN0aW9uIChkb25lKSB7
Ci0gICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxLCA1MDAw
KTsKLSAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMjcwNywgNDIwNywgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5ub3RSZWFjaGVkKCk7Ci0gICAgICAgICAgICB9KTsK
KyAgICAgICAgaXQoJ3Nob3VsZCByZXF1ZXN0IHNlY29uZGFyeSBjbHVzdGVycyB3aGljaCBmb3Jt
cyBhIHN1cGVyc2V0IG9mIHRoZSByZXF1ZXN0ZWQgcmFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDUwMDApOworICAgICAg
ICAgICAgbGV0IGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gc2V0
LmZldGNoQmV0d2VlbigyNzA3LCA0MjA3LCAoKSA9PiBjYWxsQ291bnQrKyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEuanNvbicp
OwogCkBAIC0yMDIsMjEgKzE4OSwxOCBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDMsCiAgICAgICAgICAg
ICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAgd2FpdEZvck1lYXN1cmVtZW50
U2V0KCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1
cmVtZW50U2V0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzFdLnVybCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS0zMDAwLmpzb24nKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnLi4vZGF0YS9tZWFzdXJl
bWVudC1zZXQtMS0xLTQwMDAuanNvbicpOwotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewotICAgICAgICAgICAgICAgIGRvbmUo
ZXJyb3IpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDEpOyAvLyA0
MDAwLTQyMDcKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hv
dWxkIG5vdCByZXF1ZXN0IHNlY29uZGFyeSBjbHVzdGVycyB0aGF0IGFyZSBub3QgcmVxdWVzdGVk
JywgZnVuY3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNl
dC5maW5kU2V0KDEsIDEsIDUwMDApOwotICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigzMjAw
LCAzNzAwLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdFJlYWNoZWQo
KTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBpdCgnc2hvdWxkIG5vdCByZXF1ZXN0IHNlY29u
ZGFyeSBjbHVzdGVycyB0aGF0IGFyZSBub3QgcmVxdWVzdGVkJywgKCkgPT4geworICAgICAgICAg
ICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxLCA1MDAwKTsKKyAgICAg
ICAgICAgIGxldCBjYWxsQ291bnRGb3JXYWl0aW5nQ2FsbGJhY2sgPSAwOworICAgICAgICAgICAg
c2V0LmZldGNoQmV0d2VlbigzMjAwLCAzNzAwLCAoKSA9PiBjYWxsQ291bnRGb3JXYWl0aW5nQ2Fs
bGJhY2srKyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1
cmVtZW50LXNldC0xLTEuanNvbicpOwogCkBAIC0yMzEsMzMgKzIxNSwzMSBAQCBkZXNjcmliZSgn
TWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJD
b3VudCc6IDQsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAg
ICAgdmFyIGNhbGxDb3VudCA9IDA7Ci0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQo
KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnQgPSAwOworICAg
ICAgICAgICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50
LXNldC0xLTEtNDAwMC5qc29uJyk7Ci0gICAgICAgICAgICAgICAgc2V0LmZldGNoQmV0d2Vlbigx
MjA3LCAxMjkzLCBmdW5jdGlvbiAoKSB7IGNhbGxDb3VudCsrOyB9KTsKKyAgICAgICAgICAgICAg
ICBzZXQuZmV0Y2hCZXR3ZWVuKDEyMDcsIDEyOTMsICgpID0+IGNhbGxDb3VudCsrKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnRGb3JXYWl0aW5nQ2FsbGJhY2ssIDApOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDApOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEt
MjAwMC5qc29uJyk7Ci0gICAgICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxOTY0LCAzNDAx
LCBmdW5jdGlvbiAoKSB7IGNhbGxDb3VudCsrOyB9KTsKKyAgICAgICAgICAgICAgICBzZXQuZmV0
Y2hCZXR3ZWVuKDE5NjQsIDM0MDEsICgpID0+IGNhbGxDb3VudCsrKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjYWxsQ291bnRGb3JXYWl0aW5nQ2FsbGJhY2ssIDApOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDApOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEtMzAwMC5qc29u
Jyk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rp
b24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmVxdWVzdCBhIGNsdXN0
ZXIgYmVmb3JlIHRoZSB2ZXJ5IGZpcnN0IGNsdXN0ZXInLCBmdW5jdGlvbiAoZG9uZSkgewotICAg
ICAgICAgICAgdmFyIHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgNTAwMCk7Ci0g
ICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDAsIDMwMDAsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQubm90UmVhY2hlZCgpOwotICAgICAgICAgICAgfSk7CisgICAgICAg
IGl0KCdzaG91bGQgbm90IHJlcXVlc3QgYSBjbHVzdGVyIGJlZm9yZSB0aGUgdmVyeSBmaXJzdCBj
bHVzdGVyJywgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRTZXQu
ZmluZFNldCgxLCAxLCA1MDAwKTsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnQgPSAwOworICAg
ICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigwLCAzMDAwLCAoKSA9PiBjYWxsQ291bnQrKyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0x
LTEuanNvbicpOwogCkBAIC0yNzIsNDEgKzI1NCwzMyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRT
ZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDEsCiAg
ICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAgdmFyIGNhbGxD
b3VudCA9IDA7Ci0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv
biAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBkb25lKGVycm9yKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAxKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIAotICAgICAgICBpdCgnc2hvdWxkIGludm9rZSB0aGUgY2FsbGJhY2sgd2hlbiB0aGUgZmV0
Y2hpbmcgb2YgdGhlIHByaW1yYXkgY2x1c3RlciBmYWlscycsIGZ1bmN0aW9uIChkb25lKSB7Ci0g
ICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxLCAzMDAwKTsK
LSAgICAgICAgICAgIHZhciBjYWxsQ291bnQgPSAwOwotICAgICAgICAgICAgc2V0LmZldGNoQmV0
d2VlbigxMDAwLCAzMDAwLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY2FsbENvdW50
Kys7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgaXQoJ3Nob3VsZCBpbnZva2UgdGhlIGNhbGxi
YWNrIHdoZW4gdGhlIGZldGNoaW5nIG9mIHRoZSBwcmltcmF5IGNsdXN0ZXIgZmFpbHMnLCAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEs
IDMwMDApOworICAgICAgICAgICAgbGV0IGNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBsZXQg
cmVqZWN0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMTAwMCwgMzAw
MCwgKCkgPT4gY2FsbENvdW50KyspLmNhdGNoKCgpID0+IHJlamVjdGVkID0gdHJ1ZSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEu
anNvbicpOwogCiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZWplY3QoNTAwKTsKIAotICAgICAg
ICAgICAgd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwot
ICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAg
ZG9uZShlcnJvcik7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlamVjdGVkKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHJlcXVlc3QgdGhlIHVu
Y2FjaGVkIHByaW1hcnkgY2x1c3RlciB3aGVuIHRoZSBjYWNoZWQgY2x1c3RlciBpcyBvdXRkYXRl
ZCcsIGZ1bmN0aW9uIChkb25lKSB7Ci0gICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRT
ZXQuZmluZFNldCgxLCAxLCAzMDA1KTsKLSAgICAgICAgICAgIHZhciBjYWxsQ291bnQgPSAwOwot
ICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxMDAwLCAyMDAwLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICAgICAgY2FsbENvdW50Kys7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgaXQo
J3Nob3VsZCByZXF1ZXN0IHRoZSB1bmNhY2hlZCBwcmltYXJ5IGNsdXN0ZXIgd2hlbiB0aGUgY2Fj
aGVkIGNsdXN0ZXIgaXMgb3V0ZGF0ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzZXQg
PSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDMwMDUpOworICAgICAgICAgICAgbGV0IGNh
bGxDb3VudCA9IDA7CisgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsICgp
ID0+IGNhbGxDb3VudCsrKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy4uL2Rh
dGEvbWVhc3VyZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKQEAgLTMyMSw0MyArMjk1LDMzIEBAIGRl
c2NyaWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAn
Y2x1c3RlckNvdW50JzogMiwKICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogCi0g
ICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAwKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0udXJsLCAnLi4vYXBpL21lYXN1cmVtZW50LXNldD9wbGF0Zm9ybT0xJm1l
dHJpYz0xJyk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCByZXF1ZXN0IHRoZSB1
bmNhY2hlZCBwcmltYXJ5IGNsdXN0ZXIgd2hlbiB0aGUgY2FjaGVkIGNsdXN0ZXIgaXMgNDA0Jywg
ZnVuY3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNldC5m
aW5kU2V0KDEsIDEsIDMwMDUpOwotICAgICAgICAgICAgdmFyIGNhbGxDb3VudCA9IDA7Ci0gICAg
ICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICBjYWxsQ291bnQrKzsKLSAgICAgICAgICAgIH0pOworICAgICAgICBpdCgnc2hv
dWxkIHJlcXVlc3QgdGhlIHVuY2FjaGVkIHByaW1hcnkgY2x1c3RlciB3aGVuIHRoZSBjYWNoZWQg
Y2x1c3RlciBpcyA0MDQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzZXQgPSBNZWFzdXJl
bWVudFNldC5maW5kU2V0KDEsIDEsIDMwMDUpOworICAgICAgICAgICAgbGV0IGNhbGxDb3VudCA9
IDA7CisgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDEwMDAsIDIwMDAsICgpID0+IGNhbGxD
b3VudCsrKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy4uL2RhdGEvbWVhc3Vy
ZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlamVjdCg0
MDQpOwogCi0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAwKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnLi4vYXBpL21lYXN1cmVtZW50LXNl
dD9wbGF0Zm9ybT0xJm1ldHJpYz0xJyk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShl
cnJvcik7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3Vs
ZCByZXF1ZXN0IHRoZSB1bmNhY2hlZCBwcmltYXJ5IGNsdXN0ZXIgd2hlbiBub0NhY2hlIGlzIHRy
dWUnLCBmdW5jdGlvbiAoZG9uZSkgewotICAgICAgICAgICAgdmFyIHNldCA9IE1lYXN1cmVtZW50
U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7Ci0gICAgICAgICAgICB2YXIgY2FsbENvdW50ID0gMDsK
LSAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMTAwMCwgMzAwMCwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgIGNhbGxDb3VudCsrOwotICAgICAgICAgICAgfSk7CisgICAgICAgIGl0
KCdzaG91bGQgcmVxdWVzdCB0aGUgdW5jYWNoZWQgcHJpbWFyeSBjbHVzdGVyIHdoZW4gbm9DYWNo
ZSBpcyB0cnVlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRT
ZXQuZmluZFNldCgxLCAxLCAzMDAwKTsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnQgPSAwOwor
ICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxMDAwLCAzMDAwLCAoKSA9PiBjYWxsQ291bnQr
Kyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50
LXNldC0xLTEuanNvbicpOwogCkBAIC0zNzIsOCArMzM2LDggQEAgZGVzY3JpYmUoJ01lYXN1cmVt
ZW50U2V0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiAy
LAogICAgICAgICAgICAgICAgICdzdGF0dXMnOiAnT0snfSk7CiAKLSAgICAgICAgICAgIHZhciBu
b0NhY2hlRmV0Y2hDb3VudCA9IDA7Ci0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQo
KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGxldCBub0NhY2hlRmV0Y2hDb3VudCA9
IDA7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudCwgMSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5vQ2FjaGVGZXRjaENvdW50LCAwKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0Ll9zb3J0ZWRDbHVzdGVycy5sZW5ndGgsIDEpOwpAQCAtMzkx
LDEyICszNTUsMTAgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgICAgICAnY2x1c3RlckNvdW50JzogMiwKICAgICAgICAgICAgICAgICAg
ICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4o
MTAwMCwgMzAwMCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICBub0NhY2hlRmV0
Y2hDb3VudCsrOwotICAgICAgICAgICAgICAgIH0sIHRydWUgLyogbm9DYWNoZSAqLyk7CisgICAg
ICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxMDAwLCAzMDAwLCAoKSA9PiBub0NhY2hlRmV0
Y2hDb3VudCsrLCB0cnVlIC8qIG5vQ2FjaGUgKi8pOwogCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHdhaXRGb3JNZWFzdXJlbWVudFNldCgpOwotICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY2FsbENvdW50LCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobm9DYWNo
ZUZldGNoQ291bnQsIDApOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQuX3NvcnRl
ZENsdXN0ZXJzLmxlbmd0aCwgMik7CkBAIC00MTUsNyArMzc3LDcgQEAgZGVzY3JpYmUoJ01lYXN1
cmVtZW50U2V0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzog
J09LJ30pOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgp
OwotICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50LCAyKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobm9DYWNoZUZldGNoQ291bnQsIDEpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQuX3NvcnRlZENsdXN0ZXJzLmxlbmd0aCwgMik7CkBA
IC00MzQsMzEgKzM5NiwyMyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiAnT0snfSk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnQsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChub0NhY2hlRmV0Y2hDb3VudCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldC5fc29ydGVkQ2x1c3RlcnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLQotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAg
ICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewotICAgICAgICAgICAgICAgIGRv
bmUoZXJyb3IpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdz
aG91bGQgbm90IHJlcXVlc3QgdGhlIHByaW1hcnkgY2x1c3RlciB0d2ljZSB3aGVuIG11bHRpcGxl
IGNsaWVudHMgcmVxdWVzdCBpdCBidXQgc2hvdWxkIGludm9rZSBhbGwgY2FsbGJhY2tzJywgZnVu
Y3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5k
U2V0KDEsIDEsIDMwMDApOwotICAgICAgICAgICAgdmFyIGNhbGxDb3VudCA9IDA7Ci0gICAgICAg
ICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDIwMDAsIDMwMDAsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgICAgICBjYWxsQ291bnQrKzsKLSAgICAgICAgICAgIH0pOworICAgICAgICBpdCgnc2hvdWxk
IG5vdCByZXF1ZXN0IHRoZSBwcmltYXJ5IGNsdXN0ZXIgdHdpY2Ugd2hlbiBtdWx0aXBsZSBjbGll
bnRzIHJlcXVlc3QgaXQgYnV0IHNob3VsZCBpbnZva2UgYWxsIGNhbGxiYWNrcycsICgpID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgMzAw
MCk7CisgICAgICAgICAgICBsZXQgY2FsbENvdW50ID0gMDsKKyAgICAgICAgICAgIHNldC5mZXRj
aEJldHdlZW4oMjAwMCwgMzAwMCwgKCkgPT4gY2FsbENvdW50KyspOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0udXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQtMS0xLmpzb24nKTsKIAot
ICAgICAgICAgICAgdmFyIGFsdGVybmF0aXZlQ2FsbENvdW50ID0gMDsKLSAgICAgICAgICAgIHNl
dC5mZXRjaEJldHdlZW4oMjAwMCwgMzAwMCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAg
IGFsdGVybmF0aXZlQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGxl
dCBhbHRlcm5hdGl2ZUNhbGxDb3VudCA9IDA7CisgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVu
KDIwMDAsIDMwMDAsICgpID0+IGFsdGVybmF0aXZlQ2FsbENvdW50KyspOwogCiAgICAgICAgICAg
ICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKICAgICAgICAgICAgICAgICAnY2x1c3RlclN0YXJ0Jzog
MTAwMCwKQEAgLTQ3MSwyMCArNDI1LDE3IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAnY2x1c3RlckNvdW50JzogMiwKICAgICAgICAg
ICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogCi0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1l
bnRTZXQoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yTWVh
c3VyZW1lbnRTZXQoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y2FsbENvdW50LCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYWx0ZXJuYXRpdmVD
YWxsQ291bnQsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0pLmNhdGNoKGZ1
bmN0aW9uIChlcnJvcikgewotICAgICAgICAgICAgICAgIGRvbmUoZXJyb3IpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgaW52b2tlIGNhbGxiYWNr
IGZvciBlYWNoIHNlY29uZGFyeSBjbHVzdGVycyB0aGF0IGFyZSBmZXRjaGVkIG9yIHJlamVjdGVk
JywgZnVuY3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNl
dC5maW5kU2V0KDEsIDEsIDUwMDApOwotICAgICAgICAgICAgdmFyIGNhbGxDb3VudEZvcjQwMDAg
PSAwOwotICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigzMjAwLCAzNzAwLCBmdW5jdGlvbiAo
KSB7IGNhbGxDb3VudEZvcjQwMDArKzsgfSk7CisgICAgICAgIGl0KCdzaG91bGQgaW52b2tlIGNh
bGxiYWNrIGZvciBlYWNoIHNlY29uZGFyeSBjbHVzdGVycyB0aGF0IGFyZSBmZXRjaGVkIG9yIHJl
amVjdGVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRTZXQu
ZmluZFNldCgxLCAxLCA1MDAwKTsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnRGb3I0MDAwID0g
MDsKKyAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMzIwMCwgMzcwMCwgKCkgPT4gY2FsbENv
dW50Rm9yNDAwMCsrKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy4uL2RhdGEv
bWVhc3VyZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKQEAgLTQ5OSwyMyArNDUwLDIzIEBAIGRlc2Ny
aWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAnY2x1
c3RlckNvdW50JzogNCwKICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogCi0gICAg
ICAgICAgICB2YXIgY2FsbENvdW50Rm9yNDAwMFRvNTAwMCA9IDA7Ci0gICAgICAgICAgICB2YXIg
Y2FsbENvdW50Rm9yMjAwMCA9IDA7Ci0gICAgICAgICAgICB2YXIgY2FsbENvdW50Rm9yMjAwMFRv
NDAwMCA9IDA7Ci0gICAgICAgICAgICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGxldCBjYWxsQ291bnRGb3I0MDAwVG81MDAwID0gMDsKKyAg
ICAgICAgICAgIGxldCBjYWxsQ291bnRGb3IyMDAwID0gMDsKKyAgICAgICAgICAgIGxldCBjYWxs
Q291bnRGb3IyMDAwVG80MDAwID0gMDsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yTWVhc3Vy
ZW1lbnRTZXQoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2Fs
bENvdW50Rm9yNDAwMCwgMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVy
bCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS00MDAwLmpzb24nKTsKIAotICAgICAgICAg
ICAgICAgIHNldC5mZXRjaEJldHdlZW4oMzcwOCwgNDgwMCwgZnVuY3Rpb24gKCkgeyBjYWxsQ291
bnRGb3I0MDAwVG81MDAwKys7IH0pOworICAgICAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4o
MzcwOCwgNDgwMCwgKCkgPT4gY2FsbENvdW50Rm9yNDAwMFRvNTAwMCsrKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnRGb3I0MDAwVG81MDAwLCAxKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAotICAgICAgICAgICAgICAg
IHNldC5mZXRjaEJldHdlZW4oMTIwNywgMTI5MywgZnVuY3Rpb24gKCkgeyBjYWxsQ291bnRGb3Iy
MDAwKys7IH0pOworICAgICAgICAgICAgICAgIHNldC5mZXRjaEJldHdlZW4oMTIwNywgMTI5Mywg
KCkgPT4gY2FsbENvdW50Rm9yMjAwMCsrKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZv
ck1lYXN1cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
YWxsQ291bnRGb3IyMDAwLCAwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0u
dXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQtMS0xLTIwMDAuanNvbicpOwpAQCAtNTI4LDE1
ICs0NzksMTUgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgICAgICAnbGFzdE1vZGlmaWVkJzogNTAwMCwKICAgICAgICAgICAgICAgICAg
ICAgJ3N0YXR1cyc6ICdPSyd9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1
cmVtZW50U2V0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnRGb3I0
MDAwLCAwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50Rm9yNDAwMFRv
NTAwMCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudEZvcjIwMDAs
IDEpOwogCi0gICAgICAgICAgICAgICAgc2V0LmZldGNoQmV0d2VlbigxOTY0LCAzNDAxLCBmdW5j
dGlvbiAoKSB7IGNhbGxDb3VudEZvcjIwMDBUbzQwMDArKzsgfSk7CisgICAgICAgICAgICAgICAg
c2V0LmZldGNoQmV0d2VlbigxOTY0LCAzNDAxLCAoKSA9PiB7IGNhbGxDb3VudEZvcjIwMDBUbzQw
MDArKzsgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JNZWFzdXJlbWVudFNldCgp
OwotICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50Rm9yMjAwMFRv
NDAwMCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
NCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgJy4uL2Rh
dGEvbWVhc3VyZW1lbnQtc2V0LTEtMS0zMDAwLmpzb24nKTsKQEAgLTU0OSw3ICs1MDAsNyBAQCBk
ZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
ICAgICdsYXN0TW9kaWZpZWQnOiA1MDAwLAogICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzog
J09LJ30pOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKTsK
LSAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3VudEZvcjQwMDAsIDAp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxsQ291bnRGb3I0MDAwVG81MDAwLCAx
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2FsbENvdW50Rm9yMjAwMCwgMSk7CkBA
IC01NjQsMzEgKzUxNSwyNyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgICAgICdsYXN0TW9kaWZpZWQnOiA1MDAwLAogICAgICAgICAg
ICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0
Rm9yTWVhc3VyZW1lbnRTZXQoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNhbGxDb3VudEZvcjQwMDAsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjYWxs
Q291bnRGb3I0MDAwVG81MDAwLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2Fs
bENvdW50Rm9yMjAwMCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNhbGxDb3Vu
dEZvcjIwMDBUbzQwMDAsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwotCi0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7Ci0g
ICAgICAgICAgICB9KQorICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgfSk7CiAK
LSAgICBkZXNjcmliZSgnaGFzRmV0Y2hlZFJhbmdlJywgZnVuY3Rpb24gKCkgeworICAgIGRlc2Ny
aWJlKCdoYXNGZXRjaGVkUmFuZ2UnLCAoKSA9PiB7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gZmFsc2Ugd2hlbiBubyBjbHVzdGVycyBoYWQgYmVlbiBmZXRjaGVkJywgZnVuY3Rpb24gKCkg
eworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIG5vIGNsdXN0ZXJzIGhhZCBi
ZWVuIGZldGNoZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRT
ZXQuZmluZFNldCgxLCAxLCAzMDAwKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0Lmhhc0ZldGNo
ZWRSYW5nZSgyMDAwLCAzMDAwKSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQg
cmV0dXJuIHRydWUgd2hlbiBhIHNpbmdsZSBjbHVzdGVyIGNvbnRhaW5zIHRoZSBlbnRpcmUgcmFu
Z2UnLCBmdW5jdGlvbiAoZG9uZSkgewotICAgICAgICAgICAgdmFyIHNldCA9IE1lYXN1cmVtZW50
U2V0LmZpbmRTZXQoMSwgMSwgMzAwMCk7Ci0gICAgICAgICAgICB2YXIgcHJvbWlzZSA9IHNldC5m
ZXRjaEJldHdlZW4oMjAwMCwgMzAwMCk7CisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUg
d2hlbiBhIHNpbmdsZSBjbHVzdGVyIGNvbnRhaW5zIHRoZSBlbnRpcmUgcmFuZ2UnLCAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDMw
MDApOworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHNldC5mZXRjaEJldHdlZW4oMjAwMCwg
MzAwMCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVt
ZW50LXNldC0xLTEuanNvbicpOwogCkBAIC02MDMsMTggKzU1MCwxNSBAQCBkZXNjcmliZSgnTWVh
c3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3Vu
dCc6IDIsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAg
cHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChzZXQuaGFzRmV0Y2hlZFJhbmdlKDIw
MDEsIDI5OTkpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoc2V0Lmhhc0ZldGNoZWRSYW5nZSgy
MDAwLCAzMDAwKSk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFs
c2Ugd2hlbiB0aGUgcmFuZ2Ugc3RhcnRzIGJlZm9yZSB0aGUgZmV0Y2hlZCBjbHVzdGVyJywgZnVu
Y3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5k
U2V0KDEsIDEsIDMwMDApOwotICAgICAgICAgICAgdmFyIHByb21pc2UgPSBzZXQuZmV0Y2hCZXR3
ZWVuKDIwMDAsIDMwMDApOworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHRo
ZSByYW5nZSBzdGFydHMgYmVmb3JlIHRoZSBmZXRjaGVkIGNsdXN0ZXInLCAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDMwMDApOwor
ICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHNldC5mZXRjaEJldHdlZW4oMjAwMCwgMzAwMCk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNl
dC0xLTEuanNvbicpOwogCkBAIC02MjksMTcgKzU3MywxNCBAQCBkZXNjcmliZSgnTWVhc3VyZW1l
bnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDIs
CiAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsKIAotICAgICAgICAgICAgcHJvbWlz
ZS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydCghc2V0Lmhhc0ZldGNoZWRSYW5nZSgxNTAwLCAz
MDAwKSk7Ci0gICAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSkuY2F0Y2goZnVu
Y3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hl
biB0aGUgcmFuZ2UgZW5kcyBhZnRlciB0aGUgZmV0Y2hlZCBjbHVzdGVyJywgZnVuY3Rpb24gKGRv
bmUpIHsKLSAgICAgICAgICAgIHZhciBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEs
IDMwMDApOwotICAgICAgICAgICAgdmFyIHByb21pc2UgPSBzZXQuZmV0Y2hCZXR3ZWVuKDIwMDAs
IDMwMDApOworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHRoZSByYW5nZSBl
bmRzIGFmdGVyIHRoZSBmZXRjaGVkIGNsdXN0ZXInLCAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDUwMDApOworICAgICAgICAgICAg
Y29uc3QgcHJvbWlzZSA9IHNldC5mZXRjaEJldHdlZW4oMjAwMCwgMzAwMCk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1swXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEuanNvbicp
OwogCkBAIC02NDgsMjMgKzU4OSwzMyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ2NsdXN0ZXJTaXplJzogMTAwMCwKICAgICAgICAg
ICAgICAgICAnZm9ybWF0TWFwJzogW10sCiAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25z
Jzoge2N1cnJlbnQ6IFtdfSwKLSAgICAgICAgICAgICAgICAnc3RhcnRUaW1lJzogMjAwMCwKLSAg
ICAgICAgICAgICAgICAnZW5kVGltZSc6IDMwMDAsCi0gICAgICAgICAgICAgICAgJ2xhc3RNb2Rp
ZmllZCc6IDMwMDAsCi0gICAgICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDIsCisgICAgICAg
ICAgICAgICAgJ3N0YXJ0VGltZSc6IDQwMDAsCisgICAgICAgICAgICAgICAgJ2VuZFRpbWUnOiA1
MDAwLAorICAgICAgICAgICAgICAgICdsYXN0TW9kaWZpZWQnOiA1MDAwLAorICAgICAgICAgICAg
ICAgICdjbHVzdGVyQ291bnQnOiAzLAogICAgICAgICAgICAgICAgICdzdGF0dXMnOiAnT0snfSk7
CiAKLSAgICAgICAgICAgIHByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS0z
MDAwLmpzb24nKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsKKyAgICAg
ICAgICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IDEwMDAsCisgICAgICAgICAgICAgICAgICAg
ICdjbHVzdGVyU2l6ZSc6IDEwMDAsCisgICAgICAgICAgICAgICAgICAgICdmb3JtYXRNYXAnOiBb
XSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzoge2N1cnJlbnQ6IFtdfSwK
KyAgICAgICAgICAgICAgICAgICAgJ3N0YXJ0VGltZSc6IDIwMDAsCisgICAgICAgICAgICAgICAg
ICAgICdlbmRUaW1lJzogMzAwMCwKKyAgICAgICAgICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCc6
IDUwMDAsCisgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiAzLAorICAgICAgICAg
ICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzZXQuaGFzRmV0Y2hlZFJhbmdlKDI1MDAsIDM1MDAp
KTsKLSAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv
biAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBkb25lKGVycm9yKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdGhl
IHJhbmdlIGlzIHdpdGhpbiB0d28gZmV0Y2hlZCBjbHVzdGVycycsIGZ1bmN0aW9uIChkb25lKSB7
Ci0gICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgxLCAxLCA1MDAw
KTsKLSAgICAgICAgICAgIHZhciBwcm9taXNlID0gc2V0LmZldGNoQmV0d2VlbigyMDAwLCAzMDAw
KTsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSB3aGVuIHRoZSByYW5nZSBpcyB3aXRo
aW4gdHdvIGZldGNoZWQgY2x1c3RlcnMnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzZXQg
PSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDUwMDApOworICAgICAgICAgICAgc2V0LmZl
dGNoQmV0d2VlbigyMDAwLCAzMDAwKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwg
Jy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKQEAgLTY3OSw3ICs2MzAsNyBA
QCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgJ2NsdXN0ZXJDb3VudCc6IDIsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9KTsK
IAotICAgICAgICAgICAgd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbihmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy4uL2RhdGEvbWVhc3Vy
ZW1lbnQtc2V0LTEtMS0zMDAwLmpzb24nKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsKQEAgLTY5MiwxNyArNjQzLDE0IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCc6IDUwMDAs
CiAgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiAyLAogICAgICAgICAgICAgICAg
ICAgICAnc3RhdHVzJzogJ09LJ30pOyAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHNldC5oYXNGZXRjaGVkUmFuZ2UoMjUwMCwgMzUwMCkpOwotICAgICAgICAg
ICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewot
ICAgICAgICAgICAgICAgIGRvbmUoZXJyb3IpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCi0gICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gdGhlcmUgaXMgYSBjbHVz
dGVyIG1pc3NpbmcgaW4gdGhlIHJhbmdlJywgZnVuY3Rpb24gKGRvbmUpIHsKLSAgICAgICAgICAg
IHZhciBzZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KDEsIDEsIDUwMDApOwotICAgICAgICAg
ICAgdmFyIHByb21pc2UgPSBzZXQuZmV0Y2hCZXR3ZWVuKDIwMDAsIDUwMDApOworICAgICAgICBp
dCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHRoZXJlIGlzIGEgY2x1c3RlciBtaXNzaW5nIGlu
IHRoZSByYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHNldCA9IE1lYXN1cmVtZW50
U2V0LmZpbmRTZXQoMSwgMSwgNTAwMCk7CisgICAgICAgICAgICBzZXQuZmV0Y2hCZXR3ZWVuKDIw
MDAsIDUwMDApOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnLi4vZGF0YS9tZWFz
dXJlbWVudC1zZXQtMS0xLmpzb24nKTsKIApAQCAtNzE3LDcgKzY2NSw3IEBAIGRlc2NyaWJlKCdN
ZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAnY2x1c3RlckNv
dW50JzogNCwKICAgICAgICAgICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogCi0gICAgICAgICAg
ICB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiB3YWl0Rm9yTWVhc3VyZW1lbnRTZXQoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnLi4vZGF0YS9tZWFzdXJlbWVudC1zZXQtMS0x
LTMwMDAuanNvbicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51
cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEtNDAwMC5qc29uJyk7CkBAIC03MzEsMTMg
KzY3OSwzMiBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgICAgICdsYXN0TW9kaWZpZWQnOiA1MDAwLAogICAgICAgICAgICAgICAgICAg
ICAnY2x1c3RlckNvdW50JzogMiwKICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6ICdPSyd9
KTsKLSAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzZXQuaGFzRmV0Y2hlZFJhbmdlKDI1
MDAsIDQ1MDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoc2V0Lmhhc0ZldGNoZWRSYW5nZSgy
MTAwLCAyMzAwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHNldC5oYXNGZXRjaGVkUmFuZ2Uo
NDAwMCwgNDgwMCkpOwotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0pLmNh
dGNoKGZ1bmN0aW9uIChlcnJvcikgewotICAgICAgICAgICAgICAgIGRvbmUoZXJyb3IpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRy
dWUgZXZlbiB3aGVuIHRoZSByYW5nZSBleHRlbmRzIGJleW9uZCB0aGUgcHJpbWFyeSBjbHVzdGVy
JywgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNl
dCgxLCAxLCAzMDAwKTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBzZXQuZmV0Y2hCZXR3
ZWVuKDIwMDAsIDMwMDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnLi4vZGF0
YS9tZWFzdXJlbWVudC1zZXQtMS0xLmpzb24nKTsKKworICAgICAgICAgICAgcmVxdWVzdHNbMF0u
cmVzb2x2ZSh7CisgICAgICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IDEwMDAsCisgICAgICAg
ICAgICAgICAgJ2NsdXN0ZXJTaXplJzogMTAwMCwKKyAgICAgICAgICAgICAgICAnZm9ybWF0TWFw
JzogW10sCisgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzoge2N1cnJlbnQ6IFtdfSwK
KyAgICAgICAgICAgICAgICAnc3RhcnRUaW1lJzogMjAwMCwKKyAgICAgICAgICAgICAgICAnZW5k
VGltZSc6IDMwMDAsCisgICAgICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCc6IDMwMDAsCisgICAg
ICAgICAgICAgICAgJ2NsdXN0ZXJDb3VudCc6IDIsCisgICAgICAgICAgICAgICAgJ3N0YXR1cyc6
ICdPSyd9KTsKKworICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0KHNldC5oYXNGZXRjaGVkUmFuZ2UoMjAwMSwgNTAwMCkpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC04MDMsNyArNzcwLDcgQEAgZGVzY3JpYmUo
J01lYXN1cmVtZW50U2V0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGxldCBidWlsZGVyOwog
ICAgICAgICBsZXQgd2Via2l0OwotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICAgICAgICBidWlsZGVyID0gbmV3IEJ1aWxk
ZXIoNywge25hbWU6ICdFRkwgTGludXggNjQtYml0IFJlbGVhc2UgV0syIChQZXJmKScsIGJ1aWxk
VXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lLyRidWls
ZE51bWJlcid9KTsKICAgICAgICAgICAgIHdlYmtpdCA9IG5ldyBSZXBvc2l0b3J5KDEsIHtuYW1l
OiAnV2ViS2l0JywgdXJsOiAnaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvJDEnfSk7
CiAgICAgICAgIH0pOwpAQCAtOTgyLDcgKzk0OSw3IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNl
dCcsIGZ1bmN0aW9uICgpIHsKIAogICAgIH0pOwogCi0gICAgZGVzY3JpYmUoJ2ZldGNoU2VnbWVu
dGF0aW9uJywgZnVuY3Rpb24gKCkgeworICAgIGRlc2NyaWJlKCdmZXRjaFNlZ21lbnRhdGlvbics
ICgpID0+IHsKIAogICAgICAgICB2YXIgc2ltcGxlU2VnbWVudGFibGVWYWx1ZXMgPSBbCiAgICAg
ICAgICAgICAxNTQ2LjU2MDMsIDE1NDguMTUzNiwgMTU2My41NDUyLCAxNTM5Ljc4MjMsIDE1NDYu
NDE4NCwgMTU0OC45Mjk5LCAxNTMyLjU0NDQsIDE1NDYuMjgwMCwgMTU0Ny4xNzYwLCAxNTUxLjM1
MDcsCkBAIC0xMDA4LDkgKzk3NSw5IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBydW5zOwogICAgICAgICB9CiAKLSAgICAgICAg
aXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHNlZ21lbnQgYSBzaW5nbGUgY2x1c3RlcicsIGZ1bmN0aW9u
IChkb25lKSB7Ci0gICAgICAgICAgICB2YXIgc2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldCgx
LCAxLCA1MDAwKTsKLSAgICAgICAgICAgIHZhciBwcm9taXNlID0gc2V0LmZldGNoQmV0d2Vlbig0
MDAwLCA1MDAwKTsKKyAgICAgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHNlZ21lbnQgYSBzaW5n
bGUgY2x1c3RlcicsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHNldCA9IE1lYXN1cmVtZW50
U2V0LmZpbmRTZXQoMSwgMSwgNTAwMCk7CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gc2V0
LmZldGNoQmV0d2Vlbig0MDAwLCA1MDAwKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVy
bCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0LTEtMS5qc29uJyk7CiAKQEAgLTEwMjcsMTMgKzk5
NCwxMyBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAg
ICAgICAgIHZhciB0aW1lU2VyaWVzOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldC5mZXRj
aGVkVGltZVNlcmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSkubGVuZ3RoKCksIDApOwotICAg
ICAgICAgICAgd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICByZXR1cm4gd2FpdEZvck1lYXN1cmVtZW50U2V0KCkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgdGltZVNlcmllcyA9IHNldC5mZXRjaGVkVGltZVNlcmllcygnY3VycmVudCcs
IGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMu
bGVuZ3RoKCksIDQ1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5m
aXJzdFBvaW50KCkudGltZSwgNDAwMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRp
bWVTZXJpZXMubGFzdFBvaW50KCkudGltZSwgNDg4MCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHNldC5mZXRjaFNlZ21lbnRhdGlvbignc2VnbWVudFRpbWVTZXJpZXNCeU1heGltaXppbmdTY2h3
YXJ6Q3JpdGVyaW9uJywgW10sICdjdXJyZW50JywgZmFsc2UpOwotICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoc2VnbWVudGF0aW9uKSB7CisgICAgICAgICAgICB9KS50aGVuKChzZWdtZW50
YXRpb24pID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2VnbWVudGF0aW9uLmxl
bmd0aCwgNCk7CiAKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2VnbWVudGF0aW9uWzBd
LnRpbWUsIDQwMDApOwpAQCAtMTA0NSwxMyArMTAxMiwxMiBAQCBkZXNjcmliZSgnTWVhc3VyZW1l
bnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmFsbW9zdEVxdWFs
KHNlZ21lbnRhdGlvblsyXS52YWx1ZSwgMTU4MS44NzIpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWdtZW50YXRpb25bMl0udmFsdWUsIHNlZ21lbnRhdGlvblszXS52YWx1ZSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlZ21lbnRhdGlvblszXS50aW1lLCA0ODgwKTsK
LSAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIGJlIGFibGUg
dG8gc2VnbWVudCB0d28gY2x1c3RlcnMnLCBmdW5jdGlvbiAoZG9uZSkgewotICAgICAgICAgICAg
dmFyIHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgNTAwMCk7Ci0gICAgICAgICAg
ICB2YXIgcHJvbWlzZSA9IHNldC5mZXRjaEJldHdlZW4oMzAwMCwgNTAwMCk7CisgICAgICAgIGl0
KCdzaG91bGQgYmUgYWJsZSB0byBzZWdtZW50IHR3byBjbHVzdGVycycsICgpID0+IHsKKyAgICAg
ICAgICAgIGNvbnN0IHNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoMSwgMSwgNTAwMCk7Cisg
ICAgICAgICAgICBjb25zdCBwcm9taXNlID0gc2V0LmZldGNoQmV0d2VlbigzMDAwLCA1MDAwKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy4uL2RhdGEvbWVhc3VyZW1lbnQtc2V0
LTEtMS5qc29uJyk7CiAKQEAgLTEwNjYsMTIgKzEwMzIsMTIgQEAgZGVzY3JpYmUoJ01lYXN1cmVt
ZW50U2V0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiA0
LAogICAgICAgICAgICAgICAgICdzdGF0dXMnOiAnT0snfSk7CiAKLSAgICAgICAgICAgIHdhaXRG
b3JNZWFzdXJlbWVudFNldCgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IHdhaXRGb3JNZWFzdXJlbWVudFNldCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS51cmwsICcuLi9kYXRhL21lYXN1cmVtZW50LXNldC0xLTEtNDAwMC5q
c29uJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNldC5mZXRjaFNlZ21lbnRhdGlvbignc2Vn
bWVudFRpbWVTZXJpZXNCeU1heGltaXppbmdTY2h3YXJ6Q3JpdGVyaW9uJywgW10sICdjdXJyZW50
JywgZmFsc2UpOwotICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoc2VnbWVudGF0aW9uKSB7
Ci0gICAgICAgICAgICAgICAgdmFyIHRpbWVTZXJpZXMgPSBzZXQuZmV0Y2hlZFRpbWVTZXJpZXMo
J2N1cnJlbnQnLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSkudGhlbigoc2VnbWVudGF0
aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IHNldC5mZXRjaGVk
VGltZVNlcmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRpbWVTZXJpZXMubGVuZ3RoKCksIDE1KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGltZVNlcmllcy5maXJzdFBvaW50KCkudGltZSwgNDAwMCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMubGFzdFBvaW50KCkudGltZSwgNDQ2Mik7CkBA
IC0xMDk4LDkgKzEwNjQsOSBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyQ291bnQnOiA0LAogICAgICAgICAgICAg
ICAgICAgICAnc3RhdHVzJzogJ09LJ30pOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9y
TWVhc3VyZW1lbnRTZXQoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNldC5mZXRj
aFNlZ21lbnRhdGlvbignc2VnbWVudFRpbWVTZXJpZXNCeU1heGltaXppbmdTY2h3YXJ6Q3JpdGVy
aW9uJywgW10sICdjdXJyZW50JywgZmFsc2UpOwotICAgICAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoc2VnbWVudGF0aW9uKSB7CisgICAgICAgICAgICB9KS50aGVuKChzZWdtZW50YXRpb24pID0+
IHsKICAgICAgICAgICAgICAgICB2YXIgdGltZVNlcmllcyA9IHNldC5mZXRjaGVkVGltZVNlcmll
cygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRpbWVTZXJpZXMubGVuZ3RoKCksIDQ1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGltZVNlcmllcy5maXJzdFBvaW50KCkudGltZSwgMzAwMCk7CkBAIC0xMTE2LDggKzEwODIsNyBA
QCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmFsbW9zdEVxdWFsKHNlZ21lbnRhdGlvblsyXS52YWx1ZSwgMTU4MS44NzIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWdtZW50YXRpb25bMl0udmFsdWUsIHNlZ21l
bnRhdGlvblszXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlZ21lbnRh
dGlvblszXS50aW1lLCB0aW1lU2VyaWVzLmxhc3RQb2ludCgpLnRpbWUpOwotICAgICAgICAgICAg
ICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCiAgICAgfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1h
cGkuanMJKHJldmlzaW9uIDIxMjQ2OSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0
LXRlc3RzL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
OCArMSwzIEBACi12YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7Ci0KLWlmICghYXNzZXJ0
Lm5vdFJlYWNoZWQpCi0gICAgYXNzZXJ0Lm5vdFJlYWNoZWQgPSBmdW5jdGlvbiAoKSB7IGFzc2Vy
dChmYWxzZSwgJ1RoaXMgY29kZSBwYXRoIHNob3VsZCBub3QgYmUgcmVhY2hlZCcpOyB9Ci0KIHZh
ciBNb2NrUmVtb3RlQVBJID0gewogICAgIHVybDogZnVuY3Rpb24gKHBhdGgpCiAgICAgewo=
</data>
<flag name="review"
          id="323620"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>