<?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>149670</bug_id>
          
          <creation_ts>2015-09-30 09:00:58 -0700</creation_ts>
          <short_desc>[Streams API] Update readable-stream-templated tests to latest spec</short_desc>
          <delta_ts>2015-10-20 03:08:21 -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>New Bugs</component>
          <version>WebKit 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>
          <dependson>147092</dependson>
          <blocked>149707</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1129590</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-30 09:00:58 -0700</bug_when>
    <thetext>This will break the tests because the spec has changed, but tests should come first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129591</commentid>
    <comment_count>1</comment_count>
      <attachid>262166</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-30 09:02:02 -0700</bug_when>
    <thetext>Created attachment 262166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133122</commentid>
    <comment_count>2</comment_count>
      <attachid>262166</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-14 08:12:29 -0700</bug_when>
    <thetext>Comment on attachment 262166
Patch

We could get a r+ and land now.

The idea is getting the tests landed so that the implementation can be changed according the new spec that these tests already follow in a test driven development manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134582</commentid>
    <comment_count>3</comment_count>
      <attachid>262166</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-19 08:49:48 -0700</bug_when>
    <thetext>Comment on attachment 262166
Patch

Rejecting attachment 262166 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 262166, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
unk #2 FAILED at 20.
Hunk #3 FAILED at 42.
Hunk #4 succeeded at 58 with fuzz 2.
Hunk #5 succeeded at 72 with fuzz 1.
2 out of 6 hunks FAILED -- saving rejects to file LayoutTests/streams/reference-implementation/readable-stream-templated-expected.txt.rej
patching file LayoutTests/streams/reference-implementation/readable-stream-templated.html

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Darin Adler&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/307734</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134832</commentid>
    <comment_count>4</comment_count>
      <attachid>263560</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-10-20 02:14:26 -0700</bug_when>
    <thetext>Created attachment 263560
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134843</commentid>
    <comment_count>5</comment_count>
      <attachid>263560</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-20 03:08:16 -0700</bug_when>
    <thetext>Comment on attachment 263560
Patch for landing

Clearing flags on attachment: 263560

Committed r191337: &lt;http://trac.webkit.org/changeset/191337&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134844</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-20 03:08:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262166</attachid>
            <date>2015-09-30 09:02:02 -0700</date>
            <delta_ts>2015-10-20 02:14:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149670-20150930180137.patch</filename>
            <type>text/plain</type>
            <size>24136</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzQzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTMyODAyZWYwODVjZDFjMjMxYzY4
ZGJlZTg2YjlmMjdjOWI1YTFjMy4uYmE3OWNhZTVkMTY5MjI1MWJjNzkwMmIyNGEyNjMyMmJmMGE4
NDZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA5LTMwICBYYWJpZXIgUm9kcmlndWV6
IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBV
cGRhdGUgcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZCB0ZXN0cyB0byBsYXRlc3Qgc3BlYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NjY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0OiBVcGRh
dGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRtbDogVXBkYXRlZCB0ZXN0cy4KKwogMjAxNS0wOS0yOSAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaU9T
LXNpbXVsYXRvciByZXN1bHRzIGZvciBmYXN0L3RleHQvbWFyay1tYXRjaGVzLW92ZXJmbG93LWNs
aXAuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVt
cGxhdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3ZmQ0NjU3MjAyNjU3NzdlYjIxYmRlNGI2Nzc0NjRh
NTEwMDQzMmRmLi42Y2JiNjc4ZmU0NTQ5N2E1NWMxMjMzZWEyZDQ0ODFiODEyNWEwZDQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFk
YWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4
cGVjdGVkLnR4dApAQCAtOSw4ICs5LDggQEAgUEFTUyB0d28gcmVhZCgpcyBzaG91bGQgYm90aCBu
ZXZlciBzZXR0bGUKIFBBU1MgcmVhZCgpIHNob3VsZCByZXR1cm4gZGlzdGluY3QgcHJvbWlzZXMg
ZWFjaCB0aW1lIAogUEFTUyBnZXRSZWFkZXIoKSBhZ2FpbiBvbiB0aGUgc3RyZWFtIHNob3VsZCBm
YWlsIAogUEFTUyByZWxlYXNpbmcgdGhlIGxvY2sgd2l0aCBwZW5kaW5nIHJlYWQgcmVxdWVzdHMg
c2hvdWxkIHRocm93IGJ1dCB0aGUgcmVhZCByZXF1ZXN0cyBzaG91bGQgc3RheSBwZW5kaW5nIAot
UEFTUyByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGZ1cnRoZXIgcmVhZCgpIGNhbGxz
IHRvIHJlc29sdmUgYXMgaWYgdGhlIHN0cmVhbSBpcyBjbG9zZWQgCi1QQVNTIHJlbGVhc2luZyB0
aGUgbG9jayBzaG91bGQgY2F1c2UgY2xvc2VkIHRvIGZ1bGZpbGwgCitUSU1FT1VUIHJlbGVhc2lu
ZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFkKCkgY2FsbHMgdG8gcmVqZWN0IHdp
dGggYSBUeXBlRXJyb3IgVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgcmVsZWFzaW5nIHRoZSBsb2Nr
IHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IFRlc3QgdGltZWQgb3V0CiBQQVNTIHJlbGVh
c2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgbG9ja2VkIHRvIGJlY29tZSBmYWxzZSAKIFBBU1Mg
Y2FuY2VsaW5nIHZpYSB0aGUgcmVhZGVyIHNob3VsZCBjYXVzZSB0aGUgcmVhZGVyIHRvIGFjdCBj
bG9zZWQgCiBQQVNTIGNhbmNlbGluZyB2aWEgdGhlIHN0cmVhbSBzaG91bGQgZmFpbCAKQEAgLTIw
LDE4ICsyMCwyMSBAQCBQQVNTIGxvY2tlZCBzaG91bGQgYmUgZmFsc2UKIFBBU1MgZ2V0UmVhZGVy
KCkgc2hvdWxkIGJlIE9LIAogRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0aGUg
d3JpdGFibGUgc3RhdGUgc2hvdWxkIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIEZBSUwgcGlwaW5nIHRvIGEgV3JpdGFibGVTdHJl
YW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBzaG91
bGQgZG8gbm90aGluZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQotUEFTUyBz
aG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMsIHNpbmNlIHRoZXkgYXJl
IGFsbCBhdXRvLXJlbGVhc2VkIAorUEFTUyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRp
cGxlIHJlYWRlcnMgaWYgdGhleSBhcmUgcmVsZWFzZWQgaW4gc3VjY2Vzc2lvbiAKK0ZBSUwgc2hv
dWxkIG5vdCBiZSBhYmxlIHRvIGFjcXVpcmUgYSBzZWNvbmQgcmVhZGVyIGlmIHdlIGRvbid0IHJl
bGVhc2UgdGhlIGZpcnN0IG9uZSBhc3NlcnRfdGhyb3dzOiBnZXR0aW5nIGEgc2Vjb25kIHJlYWRl
ciBzaG91bGQgdGhyb3cgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgcnMuZ2V0UmVhZGVyKCk7IH0i
IGRpZCBub3QgdGhyb3cKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Nsb3NlZFJlYWRlciB3aXRo
IFJlYWRhYmxlU3RyZWFtIHJlYWRlciAoY2xvc2VkIGJlZm9yZSBnZXR0aW5nIHJlYWRlcikgCiBQ
QVNTIHJlYWQoKSBzaG91bGQgZnVsZmlsbCB3aXRoIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTog
dHJ1ZSB9IAogUEFTUyByZWFkKCkgbXVsdGlwbGUgdGltZXMgc2hvdWxkIGZ1bGZpbGwgd2l0aCB7
IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSAKIFBBU1MgcmVhZCgpIHNob3VsZCB3b3Jr
IHdoZW4gdXNlZCB3aXRoaW4gYW5vdGhlciByZWFkKCkgZnVsZmlsbCBjYWxsYmFjayAKIFBBU1Mg
Y2xvc2VkIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkIAorRkFJTCByZWxlYXNpbmcgdGhl
IGxvY2sgc2hvdWxkIGNhdXNlIGNsb3NlZCB0byByZWplY3QgYW5kIGNoYW5nZSBpZGVudGl0eSBh
c3NlcnRfbm90X2VxdWFsczogdGhlIGNsb3NlZCBwcm9taXNlIHNob3VsZCBjaGFuZ2UgaWRlbnRp
dHkgZ290IGRpc2FsbG93ZWQgdmFsdWUgb2JqZWN0ICJbb2JqZWN0IFByb21pc2VdIgogUEFTUyBj
YW5jZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0
aW1lIAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTQ2xvc2VkUmVhZGVyIHdpdGggUmVhZGFibGVT
dHJlYW0gcmVhZGVyIChjbG9zZWQgYWZ0ZXIgZ2V0dGluZyByZWFkZXIpIAogUEFTUyByZWFkKCkg
c2hvdWxkIGZ1bGZpbGwgd2l0aCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSAKIFBB
U1MgcmVhZCgpIG11bHRpcGxlIHRpbWVzIHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTogdW5k
ZWZpbmVkLCBkb25lOiB0cnVlIH0gCiBQQVNTIHJlYWQoKSBzaG91bGQgd29yayB3aGVuIHVzZWQg
d2l0aGluIGFub3RoZXIgcmVhZCgpIGZ1bGZpbGwgY2FsbGJhY2sgCiBQQVNTIGNsb3NlZCBzaG91
bGQgZnVsZmlsbCB3aXRoIHVuZGVmaW5lZCAKK0ZBSUwgcmVsZWFzaW5nIHRoZSBsb2NrIHNob3Vs
ZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IGFuZCBjaGFuZ2UgaWRlbnRpdHkgYXNzZXJ0X25vdF9l
cXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgY2hhbmdlIGlkZW50aXR5IGdvdCBkaXNh
bGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVjdCBQcm9taXNlXSIKIFBBU1MgY2FuY2VsKCkgc2hv
dWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSAKIFBBU1Mg
UnVubmluZyB0ZW1wbGF0ZWRSU0Nsb3NlZCB3aXRoIFJlYWRhYmxlU3RyZWFtIChjbG9zZWQgdmlh
IGNhbmNlbCkgCiBQQVNTIGNhbmNlbCgpIHNob3VsZCByZXR1cm4gYSBkaXN0aW5jdCBmdWxmaWxs
ZWQgcHJvbWlzZSBlYWNoIHRpbWUgCkBAIC0zOSwxMiArNDIsMTQgQEAgUEFTUyBsb2NrZWQgc2hv
dWxkIGJlIGZhbHNlCiBQQVNTIGdldFJlYWRlcigpIHNob3VsZCBiZSBPSyAKIEZBSUwgcGlwaW5n
IHRvIGEgV3JpdGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHNob3VsZCBjbG9zZSB0
aGUgd3JpdGFibGUgc3RyZWFtIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCiBG
QUlMIHBpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3cml0YWJsZSBzdGF0ZSB3aXRo
IHsgcHJldmVudENsb3NlOiB0cnVlIH0gc2hvdWxkIGRvIG5vdGhpbmcgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogV3JpdGFibGVTdHJlYW0KLVBBU1Mgc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0
aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1yZWxlYXNlZCAKK1BBU1Mgc2hv
dWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzIGlmIHRoZXkgYXJlIHJlbGVh
c2VkIGluIHN1Y2Nlc3Npb24gCitGQUlMIHNob3VsZCBub3QgYmUgYWJsZSB0byBhY3F1aXJlIGEg
c2Vjb25kIHJlYWRlciBpZiB3ZSBkb24ndCByZWxlYXNlIHRoZSBmaXJzdCBvbmUgYXNzZXJ0X3Ro
cm93czogZ2V0dGluZyBhIHNlY29uZCByZWFkZXIgc2hvdWxkIHRocm93IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IHJzLmdldFJlYWRlcigpOyB9IiBkaWQgbm90IHRocm93CiBQQVNTIFJ1bm5pbmcg
dGVtcGxhdGVkUlNDbG9zZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSByZWFkZXIgKGNsb3Nl
ZCB2aWEgY2FuY2VsIGFmdGVyIGdldHRpbmcgcmVhZGVyKSAKIFBBU1MgcmVhZCgpIHNob3VsZCBm
dWxmaWxsIHdpdGggeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gCiBQQVNTIHJlYWQo
KSBtdWx0aXBsZSB0aW1lcyBzaG91bGQgZnVsZmlsbCB3aXRoIHsgdmFsdWU6IHVuZGVmaW5lZCwg
ZG9uZTogdHJ1ZSB9IAogUEFTUyByZWFkKCkgc2hvdWxkIHdvcmsgd2hlbiB1c2VkIHdpdGhpbiBh
bm90aGVyIHJlYWQoKSBmdWxmaWxsIGNhbGxiYWNrIAogUEFTUyBjbG9zZWQgc2hvdWxkIGZ1bGZp
bGwgd2l0aCB1bmRlZmluZWQgCitGQUlMIHJlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2Ug
Y2xvc2VkIHRvIHJlamVjdCBhbmQgY2hhbmdlIGlkZW50aXR5IGFzc2VydF9ub3RfZXF1YWxzOiB0
aGUgY2xvc2VkIHByb21pc2Ugc2hvdWxkIGNoYW5nZSBpZGVudGl0eSBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSBvYmplY3QgIltvYmplY3QgUHJvbWlzZV0iCiBQQVNTIGNhbmNlbCgpIHNob3VsZCByZXR1
cm4gYSBkaXN0aW5jdCBmdWxmaWxsZWQgcHJvbWlzZSBlYWNoIHRpbWUgCiBQQVNTIFJ1bm5pbmcg
dGVtcGxhdGVkUlNFcnJvcmVkIHdpdGggUmVhZGFibGVTdHJlYW0gKGVycm9yZWQgdmlhIGNhbGwg
aW4gc3RhcnQpIAogRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0aGUgd3JpdGFi
bGUgc3RhdGUgc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gQ2FuJ3QgZmluZCB2YXJp
YWJsZTogV3JpdGFibGVTdHJlYW0KQEAgLTUzLDkgKzU4LDkgQEAgUEFTUyByZWFkKCkgdHdpY2Ug
c2hvdWxkIGdpdmUgdGhlIGVycm9yIGVhY2ggdGltZQogUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZh
bHNlIAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTRXJyb3JlZFN5bmNPbmx5IHdpdGggUmVhZGFi
bGVTdHJlYW0gKGVycm9yZWQgdmlhIGNhbGwgaW4gc3RhcnQpIAogUEFTUyBzaG91bGQgYmUgYWJs
ZSB0byBvYnRhaW4gYSBzZWNvbmQgcmVhZGVyLCB3aXRoIHRoZSBjb3JyZWN0IGNsb3NlZCBwcm9t
aXNlIAorRkFJTCBzaG91bGQgbm90IGJlIGFibGUgdG8gb2J0YWluIGFkZGl0aW9uYWwgcmVhZGVy
cyBpZiB3ZSBkb24ndCByZWxlYXNlIHRoZSBmaXJzdCBsb2NrIGFzc2VydF90aHJvd3M6IGdldHRp
bmcgYSBzZWNvbmQgcmVhZGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyBycy5nZXRSZWFkZXIoKTsgfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBjYW5jZWwo
KSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgcmVqZWN0ZWQgcHJvbWlzZSBlYWNoIHRpbWUgCiBQ
QVNTIHJlYWRlciBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgcmVqZWN0ZWQgcHJv
bWlzZSBlYWNoIHRpbWUgCi1QQVNTIHNob3VsZCBiZSBhYmxlIHRvIGFjcXVpcmUgbXVsdGlwbGUg
cmVhZGVycywgc2luY2UgdGhleSBhcmUgYWxsIGF1dG8tcmVsZWFzZWQgCiBQQVNTIFJ1bm5pbmcg
dGVtcGxhdGVkUlNFcnJvcmVkIHdpdGggUmVhZGFibGVTdHJlYW0gKGVycm9yZWQgdmlhIHJldHVy
bmluZyBhIHJlamVjdGVkIHByb21pc2UgaW4gc3RhcnQpIAogRkFJTCBwaXBpbmcgdG8gYSBXcml0
YWJsZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgc2hvdWxkIGFib3J0IHRoZSB3cml0YWJs
ZSBzdHJlYW0gQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIFBBU1MgZ2V0UmVh
ZGVyKCkgc2hvdWxkIHJldHVybiBhIHJlYWRlciB0aGF0IGFjdHMgZXJyb3JlZCAKQEAgLTY3LDEy
ICs3MiwxNSBAQCBGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudEFib3J0OiBmYWxzZSB9IENhbid0
IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCiBGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVu
dEFib3J0OiB0cnVlIH0gQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIFBBU1Mg
UnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSAoZXJy
b3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJvbWlzZSBpbiBzdGFydCkgcmVhZGVyIAog
UEFTUyBjbG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvciAKK0ZBSUwgcmVsZWFzaW5n
IHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IGFuZCBjaGFuZ2UgaWRlbnRp
dHkgYXNzZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgY2hhbmdlIGlk
ZW50aXR5IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVjdCBQcm9taXNlXSIKIFBB
U1MgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3IgCiBQQVNTIFJ1bm5pbmcgdGVt
cGxhdGVkUlNFcnJvcmVkUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0gcmVhZGVyIChlcnJvcmVk
IGJlZm9yZSBnZXR0aW5nIHJlYWRlcikgCiBQQVNTIGNsb3NlZCBzaG91bGQgcmVqZWN0IHdpdGgg
dGhlIGVycm9yIAorRkFJTCByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGNsb3NlZCB0
byByZWplY3QgYW5kIGNoYW5nZSBpZGVudGl0eSBhc3NlcnRfbm90X2VxdWFsczogdGhlIGNsb3Nl
ZCBwcm9taXNlIHNob3VsZCBjaGFuZ2UgaWRlbnRpdHkgZ290IGRpc2FsbG93ZWQgdmFsdWUgb2Jq
ZWN0ICJbb2JqZWN0IFByb21pc2VdIgogUEFTUyByZWFkKCkgc2hvdWxkIHJlamVjdCB3aXRoIHRo
ZSBlcnJvciAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRSZWFkZXIgd2l0aCBSZWFk
YWJsZVN0cmVhbSByZWFkZXIgKGVycm9yZWQgYWZ0ZXIgZ2V0dGluZyByZWFkZXIpIAogUEFTUyBj
bG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvciAKK0ZBSUwgcmVsZWFzaW5nIHRoZSBs
b2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IGFuZCBjaGFuZ2UgaWRlbnRpdHkgYXNz
ZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgY2hhbmdlIGlkZW50aXR5
IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVjdCBQcm9taXNlXSIKIFBBU1MgcmVh
ZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3IgCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVk
UlNUd29DaHVua3NPcGVuUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0gKHR3byBjaHVua3MgZW5x
dWV1ZWQsIHN0aWxsIG9wZW4pIHJlYWRlciAKIFBBU1MgY2FsbGluZyByZWFkKCkgdHdpY2Ugd2l0
aG91dCB3YWl0aW5nIHdpbGwgZXZlbnR1YWxseSBnaXZlIGJvdGggY2h1bmtzIApAQCAtMTAzLDgg
KzExMSw4IEBAIEZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBhbmQgYSBk
ZXN0aW5hdGlvbiB0aGF0IGVycm9ycyBvbiB0aGUgbGFzCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVk
UlNUd29DaHVua3NDbG9zZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSAodHdvIGNodW5rcyBl
bnF1ZXVlZCwgdGhlbiBjbG9zZWQpIHJlYWRlciAKIFBBU1MgdGhpcmQgcmVhZCgpLCB3aXRob3V0
IHdhaXRpbmcsIHNob3VsZCBnaXZlIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9IAog
UEFTUyB0aGlyZCByZWFkLCB3aXRoIHdhaXRpbmcsIHNob3VsZCBnaXZlIHsgdmFsdWU6IHVuZGVm
aW5lZCwgZG9uZTogdHJ1ZSB9IAotUEFTUyBkcmFpbmluZyB0aGUgc3RyZWFtIHZpYSByZWFkKCkg
c2hvdWxkIGNhdXNlIHRoZSByZWFkZXIgY2xvc2VkIHByb21pc2UgdG8gZnVsZmlsbCBhbmQgbG9j
a2VkIHRvIGJlIGZhbHNlIAotUEFTUyByZWxlYXNpbmcgdGhlIGxvY2sgYWZ0ZXIgdGhlIHN0cmVh
bSBpcyBjbG9zZWQgc2hvdWxkIGRvIG5vdGhpbmcgCi1QQVNTIHJlbGVhc2luZyB0aGUgbG9jayBz
aG91bGQgY2F1c2UgcmVhZCgpIHRvIGFjdCBhcyBpZiB0aGUgc3RyZWFtIGlzIGNsb3NlZCAKK0ZB
SUwgZHJhaW5pbmcgdGhlIHN0cmVhbSB2aWEgcmVhZCgpIHNob3VsZCBjYXVzZSB0aGUgcmVhZGVy
IGNsb3NlZCBwcm9taXNlIHRvIGZ1bGZpbGwsIGJ1dCBsb2NrZWQgc3RheXMgdHJ1ZSBhc3NlcnRf
dHJ1ZTogc3RyZWFtIHNob3VsZCByZW1haW4gbG9ja2VkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIHJlbGVhc2luZyB0aGUgbG9jayBhZnRlciB0aGUgc3RyZWFtIGlzIGNsb3NlZCBzaG91
bGQgY2F1c2UgbG9ja2VkIHRvIGJlY29tZSBmYWxzZSBhc3NlcnRfdHJ1ZTogdGhlIHN0cmVhbSBz
aG91bGQgc3RhcnQgbG9ja2VkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitUSU1FT1VUIHJlbGVh
c2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFkKCkgY2FsbHMgdG8gcmVqZWN0
IHdpdGggYSBUeXBlRXJyb3IgVGVzdCB0aW1lZCBvdXQKIFBBU1MgcmVhZGVyJ3MgY2xvc2VkIHBy
b3BlcnR5IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIHByb21pc2UgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVh
bS10ZW1wbGF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVu
dGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQuaHRtbAppbmRleCBhZjkxMWQyNjViYjRm
MzAyZjcyNTU5N2Y0MTVhNDQyMGYzODZiMjUyLi5iNWM3MWE4MWUyMDE3OWJlNjY3NmI2Y2Q5NDI2
ZmY0NTA2Y2M0NzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRl
bXBsYXRlZC5odG1sCkBAIC0zLDYgKzMsOCBAQAogPHNjcmlwdCBzcmM9Jy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ncmVzb3VyY2Vz
L3N0cmVhbXMtdXRpbHMuanMnPjwvc2NyaXB0PgogPHNjcmlwdD4KKy8vIFRoaXMgaXMgdXBkYXRl
ZCB0aWxsIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvc3RyZWFtcy9jb21taXQvZWM1ZmZhMDM2
MzA4ZDlmNjM1MGQyOTQ2NTYwZDQ4Y2RiZjA5MDkzOQorCiBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vt
cHR5KGxhYmVsLCBmYWN0b3J5KSB7CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9LCAnUnVu
bmluZyB0ZW1wbGF0ZWRSU0VtcHR5IHdpdGggJyArIGxhYmVsKTsKQEAgLTEyNCwxMSArMTI2LDIz
IEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xvc2VkKGxhYmVsLCBmYWN0b3J5KSB7CiAgICAgdGVz
dChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwogCi0gICAgICAgIHJz
LmdldFJlYWRlcigpOworICAgICAgICB2YXIgcmVhZGVyID0gcnMuZ2V0UmVhZGVyKCk7CisgICAg
ICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOworCisgICAgICAgIHJlYWRlciA9IHJzLmdldFJlYWRl
cigpOyAvLyBHZXR0aW5nIGEgc2Vjb25kIHJlYWRlciBzaG91bGQgbm90IHRocm93LgorICAgICAg
ICByZWFkZXIucmVsZWFzZUxvY2soKTsKIAotICAgICAgICBycy5nZXRSZWFkZXIoKTsgLy8gR2V0
dGluZyBhIHNlY29uZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KICAgICAgICAgcnMuZ2V0UmVh
ZGVyKCk7IC8vIEdldHRpbmcgYSB0aGlyZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KLSAgICB9
LCAnc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5
IGFyZSBhbGwgYXV0by1yZWxlYXNlZCcpOworICAgIH0sICdzaG91bGQgYmUgYWJsZSB0byBhY3F1
aXJlIG11bHRpcGxlIHJlYWRlcnMgaWYgdGhleSBhcmUgcmVsZWFzZWQgaW4gc3VjY2Vzc2lvbicp
OworCisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwor
CisgICAgICAgIHJzLmdldFJlYWRlcigpOworCisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgcnMuZ2V0UmVhZGVyKCk7IH0sICdnZXR0aW5nIGEgc2Vj
b25kIHJlYWRlciBzaG91bGQgdGhyb3cnKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBycy5nZXRSZWFkZXIoKTsgfSwgJ2dldHRpbmcgYSB0aGly
ZCByZWFkZXIgc2hvdWxkIHRocm93Jyk7CisgICAgfSwgJ3Nob3VsZCBub3QgYmUgYWJsZSB0byBh
Y3F1aXJlIGEgc2Vjb25kIHJlYWRlciBpZiB3ZSBkb25cJ3QgcmVsZWFzZSB0aGUgZmlyc3Qgb25l
Jyk7CiB9OwogCiBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWQobGFiZWwsIGZhY3RvcnksIGVy
cm9yKSB7CkBAIC0zMDAsNyArMzE0LDcgQEAgZnVuY3Rpb24gdGVtcGxhdGVkUlNFcnJvcmVkU3lu
Y09ubHkobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgdGVzdDEuc3RlcChmdW5jdGlvbigp
IHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwogCi0gICAgICAgIHJzLmdldFJlYWRlcigp
OworICAgICAgICBycy5nZXRSZWFkZXIoKS5yZWxlYXNlTG9jaygpOwogCiAgICAgICAgIHZhciBy
ZWFkZXIgPSBycy5nZXRSZWFkZXIoKTsgLy8gQ2FsbGluZyBnZXRSZWFkZXIoKSB0d2ljZSBkb2Vz
IG5vdCB0aHJvdyAodGhlIHN0cmVhbSBpcyBub3QgbG9ja2VkKS4KIApAQCAtMzEzLDYgKzMyNywx
NSBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWRTeW5jT25seShsYWJlbCwgZmFjdG9yeSwg
ZXJyb3IpIHsKICAgICAgICAgKTsKICAgICB9KTsKIAorICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICBycy5nZXRSZWFkZXIoKTsKKwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHJzLmdl
dFJlYWRlcigpOyB9LCAnZ2V0dGluZyBhIHNlY29uZCByZWFkZXIgc2hvdWxkIHRocm93IGEgVHlw
ZUVycm9yJyk7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsgcnMuZ2V0UmVhZGVyKCk7IH0sICdnZXR0aW5nIGEgdGhpcmQgcmVhZGVyIHNob3VsZCB0
aHJvdyBhIFR5cGVFcnJvcicpOworICAgIH0sICdzaG91bGQgbm90IGJlIGFibGUgdG8gb2J0YWlu
IGFkZGl0aW9uYWwgcmVhZGVycyBpZiB3ZSBkb25cJ3QgcmVsZWFzZSB0aGUgZmlyc3QgbG9jaycp
OworCiAgICAgdmFyIHRlc3QyID0gYXN5bmNfdGVzdCgnY2FuY2VsKCkgc2hvdWxkIHJldHVybiBh
IGRpc3RpbmN0IHJlamVjdGVkIHByb21pc2UgZWFjaCB0aW1lJyk7CiAgICAgdGVzdDIuc3RlcChm
dW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwpAQCAtMzU5LDE1ICszODIs
NiBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWRTeW5jT25seShsYWJlbCwgZmFjdG9yeSwg
ZXJyb3IpIHsKICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY2FuY2VsUHJvbWlzZTEsIGNhbmNl
bFByb21pc2UyLCAnY2FuY2VsKCkgY2FsbHMgc2hvdWxkIHJldHVybiBkaXN0aW5jdCBwcm9taXNl
cycpOwogICAgICAgICBhbGxDaGVja2VkID0gdHJ1ZTsKICAgICB9KTsKLQotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKLQotICAgICAgICBycy5nZXRS
ZWFkZXIoKTsKLQotICAgICAgICBycy5nZXRSZWFkZXIoKTsgLy8gR2V0dGluZyBhIHNlY29uZCBy
ZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KLSAgICAgICAgcnMuZ2V0UmVhZGVyKCk7IC8vIEdldHRp
bmcgYSB0aGlyZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KLSAgICB9LCAnc2hvdWxkIGJlIGFi
bGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1y
ZWxlYXNlZCcpOwogfTsKIAogZnVuY3Rpb24gdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQobGFi
ZWwsIGZhY3RvcnksIGVycm9yKSB7CkBAIC01OTIsNyArNjA2LDcgQEAgZnVuY3Rpb24gdGVtcGxh
dGVkUlNFbXB0eVJlYWRlcihsYWJlbCwgZmFjdG9yeSkgewogCiAgICAgdmFyIHRlc3QzID0gYXN5
bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBsb2NrIHdpdGggcGVuZGluZyByZWFkIHJlcXVlc3RzIHNo
b3VsZCB0aHJvdyBidXQgdGhlIHJlYWQgcmVxdWVzdHMgc2hvdWxkIHN0YXkgcGVuZGluZycpOwog
ICAgIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFj
dG9yeSgpOworICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0gZmFjdG9yeSgpOwogCiAg
ICAgICAgIHJlYWRlci5yZWFkKCkudGhlbigKICAgICAgICAgICAgIHRlc3QzLnN0ZXBfZnVuYyhm
dW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgnZmlyc3QgcmVhZCgpIHNob3VsZCBub3QgZnVs
ZmlsbCcpOyB9KSwKQEAgLTYxMSw0MiArNjI1LDQwIEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTRW1w
dHlSZWFkZXIobGFiZWwsIGZhY3RvcnkpIHsKIAogICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHJlYWRlci5yZWxlYXNlTG9jaygpOyB9LCAncmVsZWFz
ZUxvY2sgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yJyk7CiAKKyAgICAgICAgYXNzZXJ0X3RydWUo
c3RyZWFtLmxvY2tlZCwgJ3RoZSBzdHJlYW0gc2hvdWxkIHN0aWxsIGJlIGxvY2tlZCcpOworCiAg
ICAgICAgIHNldFRpbWVvdXQodGVzdDMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeyB0ZXN0My5kb25l
KCk7IH0pLCAxMDAwKTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ3Jl
bGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFkKCkgY2FsbHMgdG8gcmVz
b2x2ZSBhcyBpZiB0aGUgc3RyZWFtIGlzIGNsb3NlZCcpOworICAgIHZhciB0ZXN0NCA9IGFzeW5j
X3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFkKCkgY2Fs
bHMgdG8gcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InLCB7IHRpbWVvdXQ6IDUwIH0pOwogICAgIHRl
c3Q0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBwcm9taXNlQ2FsbHMgPSAwOwogICAg
ICAgICB2YXIgeyByZWFkZXIgfSA9IGZhY3RvcnkoKTsKLSAgICAgICAgdmFyIHByb21pc2VzQ291
bnQgPSAwOwogCiAgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOwogCi0gICAgICAgIHJlYWRl
ci5yZWFkKCkudGhlbih0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAg
YXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0s
ICdmaXJzdCByZWFkKCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0Jyk7Ci0gICAgICAgICAg
ICArK3Byb21pc2VzQ291bnQ7CisgICAgICAgIHJlYWRlci5yZWFkKCkuY2F0Y2godGVzdDQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwgJ2ZpcnN0IHJlYWQoKSBzaG91bGQgcmVq
ZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9t
aXNlQ2FsbHMsIDEpOwogICAgICAgICB9KSk7Ci0gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbih0
ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9l
cXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdzZWNvbmQgcmVhZCgp
IHNob3VsZCByZXR1cm4gY2xvc2VkIHJlc3VsdCcpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cygrK3Byb21pc2VzQ291bnQsIDIpOworICAgICAgICByZWFkZXIucmVhZCgpLmNhdGNoKHRlc3Q0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0sICdzZWNvbmQgcmVhZCgpIHNob3Vs
ZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcicpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscygr
K3Byb21pc2VDYWxscywgMik7CiAgICAgICAgICAgICB0ZXN0NC5kb25lKCk7CiAgICAgICAgIH0p
KTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0NSA9IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUg
bG9jayBzaG91bGQgY2F1c2UgY2xvc2VkIHRvIGZ1bGZpbGwnKTsKKyAgICB2YXIgdGVzdDUgPSBh
c3luY190ZXN0KCdyZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGNsb3NlZCB0byByZWpl
Y3QnLCB7IHRpbWVvdXQ6IDUwIH0pOwogICAgIHRlc3Q1LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwotICAgICAgICB2YXIgcHJvbWlzZXNDb3Vu
dCA9IDA7Ci0KLSAgICAgICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhmdW5j
dGlvbih2KSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVuZGVmaW5lZCwgJ3JlYWRl
ci5jbG9zZWQgZ290IGJlZm9yZSByZWxlYXNlIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVk
Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VzQ291bnQ7Ci0gICAgICAgIH0pKTsKIAorICAgICAg
ICB2YXIgY2xvc2VkQmVmb3JlID0gcmVhZGVyLmNsb3NlZDsKICAgICAgICAgcmVhZGVyLnJlbGVh
c2VMb2NrKCk7CisgICAgICAgIHZhciBjbG9zZWRBZnRlciA9IHJlYWRlci5jbG9zZWQ7CiAKLSAg
ICAgICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVuZGVmaW5lZCwgJ3JlYWRlci5jbG9zZWQgZ290
IGFmdGVyIHJlbGVhc2Ugc2hvdWxkIGZ1bGZpbGwgd2l0aCB1bmRlZmluZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlc0NvdW50LCAyKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjbG9zZWRCZWZvcmUsIGNsb3NlZEFmdGVyLCAndGhlIGNsb3NlZCBwcm9taXNlIHNob3Vs
ZCBub3QgY2hhbmdlIGlkZW50aXR5JykKKyAgICAgICAgY2xvc2VkQmVmb3JlLmNhdGNoKHRlc3Q1
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0sICdyZWFkZXIuY2xvc2VkIHNob3Vs
ZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcicpOwogICAgICAgICAgICAgdGVzdDUuZG9uZSgpOwog
ICAgICAgICB9KSk7CiAgICAgfSk7CkBAIC03MzksOCArNzUxLDI5IEBAIGZ1bmN0aW9uIHRlbXBs
YXRlZFJTQ2xvc2VkUmVhZGVyKGxhYmVsLCBmYWN0b3J5KSB7CiAgICAgICAgICk7CiAgICAgfSk7
CiAKLSAgICB2YXIgdGVzdDUgPSBhc3luY190ZXN0KCdjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEg
ZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0aW1lJyk7CisgICAgdmFyIHRlc3Q1ID0g
YXN5bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVq
ZWN0IGFuZCBjaGFuZ2UgaWRlbnRpdHknKTsKICAgICB0ZXN0NS5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICB2YXIgcHJvbWlzZUNhbGxzID0gMDsKKyAgICAgICAgdmFyIHsgcmVhZGVyIH0gPSBm
YWN0b3J5KCk7CisKKyAgICAgICAgdmFyIGNsb3NlZEJlZm9yZSA9IHJlYWRlci5jbG9zZWQ7Cisg
ICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOworICAgICAgICB2YXIgY2xvc2VkQWZ0ZXIgPSBy
ZWFkZXIuY2xvc2VkOworCisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNsb3NlZEJlZm9yZSwg
Y2xvc2VkQWZ0ZXIsICd0aGUgY2xvc2VkIHByb21pc2Ugc2hvdWxkIGNoYW5nZSBpZGVudGl0eScp
CisgICAgICAgIGNsb3NlZEJlZm9yZS50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVuZGVmaW5lZCwgJ3JlYWRlci5jbG9zZWQg
YWNxdWlyZWQgYmVmb3JlIHJlbGVhc2Ugc2hvdWxkIGZ1bGZpbGwnKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDEpOworICAgICAgICB9KSk7CisgICAgICAgIGNs
b3NlZEFmdGVyLmNhdGNoKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0s
ICdyZWFkZXIuY2xvc2VkIGFjcXVpcmVkIGFmdGVyIHJlbGVhc2Ugc2hvdWxkIHJlamVjdCB3aXRo
IGEgVHlwZUVycm9yJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKCsrcHJvbWlzZUNhbGxz
LCAyKTsKKyAgICAgICAgICAgIHRlc3Q1LmRvbmUoKTsKKyAgICAgICAgfSkpOworICAgIH0pOwor
CisgICAgdmFyIHRlc3Q2ID0gYXN5bmNfdGVzdCgnY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRp
c3RpbmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZScpOworICAgIHRlc3Q2LnN0ZXAoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwogICAgICAgICB2
YXIgcHJvbWlzZUNvdW50ID0gMDsKICAgICAgICAgdmFyIGFsbENoZWNrZWQgPSBmYWxzZTsKQEAg
LTc0OSwxNSArNzgyLDE1IEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xvc2VkUmVhZGVyKGxhYmVs
LCBmYWN0b3J5KSB7CiAgICAgICAgIHZhciBjYW5jZWxQcm9taXNlMiA9IHJlYWRlci5jYW5jZWwo
KTsKICAgICAgICAgdmFyIGNsb3NlZFJlYWRlclByb21pc2UgPSByZWFkZXIuY2xvc2VkOwogCi0g
ICAgICAgIGNhbmNlbFByb21pc2UxLnRoZW4odGVzdDUuc3RlcF9mdW5jKGZ1bmN0aW9uKHYpIHsK
KyAgICAgICAgY2FuY2VsUHJvbWlzZTEudGhlbih0ZXN0Ni5zdGVwX2Z1bmMoZnVuY3Rpb24odikg
ewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2LCB1bmRlZmluZWQsICdmaXJzdCBjYW5jZWwo
KSBjYWxsIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkJyk7CiAgICAgICAgICAgICArK3By
b21pc2VDb3VudDsKICAgICAgICAgfSkpOwotICAgICAgICBjYW5jZWxQcm9taXNlMi50aGVuKHRl
c3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7CisgICAgICAgIGNhbmNlbFByb21pc2UyLnRoZW4o
dGVzdDYuc3RlcF9mdW5jKGZ1bmN0aW9uKHYpIHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
diwgdW5kZWZpbmVkLCAnc2Vjb25kIGNhbmNlbCgpIGNhbGwgc2hvdWxkIGZ1bGZpbGwgd2l0aCB1
bmRlZmluZWQnKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ291bnQsIDIp
OwogICAgICAgICAgICAgYXNzZXJ0X3RydWUoYWxsQ2hlY2tlZCk7Ci0gICAgICAgICAgICB0ZXN0
NS5kb25lKCk7CisgICAgICAgICAgICB0ZXN0Ni5kb25lKCk7CiAgICAgICAgIH0pKTsKICAgICAg
ICAgYXNzZXJ0X25vdF9lcXVhbHMoY2FuY2VsUHJvbWlzZTEsIGNhbmNlbFByb21pc2UyLCAnY2Fu
Y2VsKCkgY2FsbHMgc2hvdWxkIHJldHVybiBkaXN0aW5jdCBwcm9taXNlcycpOwogICAgICAgICBh
c3NlcnRfbm90X2VxdWFscyhjYW5jZWxQcm9taXNlMSwgY2xvc2VkUmVhZGVyUHJvbWlzZSwgJ2Nh
bmNlbCgpIHByb21pc2UgMSBzaG91bGQgYmUgZGlzdGluY3QgZnJvbSByZWFkZXIuY2xvc2VkJyk7
CkBAIC03ODMsMTcgKzgxNiwzOCBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWRSZWFkZXIo
bGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgICAgICk7CiAgICAgfSk7CiAKLSAgICB2YXIg
dGVzdDIgPSBhc3luY190ZXN0KCdyZWFkKCkgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvcicp
OworICAgIHZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBzaG91bGQg
Y2F1c2UgY2xvc2VkIHRvIHJlamVjdCBhbmQgY2hhbmdlIGlkZW50aXR5Jyk7CiAgICAgdGVzdDIu
c3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHsgcmVhZGVyIH0gPSBmYWN0b3J5KCk7CiAK
KyAgICAgICAgdmFyIGNsb3NlZEJlZm9yZSA9IHJlYWRlci5jbG9zZWQ7CisKKyAgICAgICAgY2xv
c2VkQmVmb3JlLmNhdGNoKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVhZGVyLmNsb3NlZCBhY3F1aXJlZCBiZWZvcmUg
cmVsZWFzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yJyk7CisKKyAgICAgICAgICAgIHJl
YWRlci5yZWxlYXNlTG9jaygpOworICAgICAgICAgICAgdmFyIGNsb3NlZEFmdGVyID0gcmVhZGVy
LmNsb3NlZDsKKworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY2xvc2VkQmVmb3JlLCBj
bG9zZWRBZnRlciwgJ3RoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgY2hhbmdlIGlkZW50aXR5Jyk7
CisKKyAgICAgICAgICAgIHJldHVybiBjbG9zZWRBZnRlci5jYXRjaCh0ZXN0Mi5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwgJ3JlYWRlci5jbG9zZWQgYWNxdWlyZWQgYWZ0
ZXIgcmVsZWFzZSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0Mi5kb25lKCk7CisgICAgICAgICAgICB9KSk7CisgICAgICAgIH0pKS5jYXRjaCh0
ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyBhc3NlcnRfdW5yZWFjaGVkKGUpOyB9KSk7Cisg
ICAgfSk7CisKKyAgICB2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdyZWFkKCkgc2hvdWxkIHJlamVj
dCB3aXRoIHRoZSBlcnJvcicpOworICAgIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOworCiAgICAgICAgIHJlYWRlci5yZWFkKCkudGhl
bigKLSAgICAgICAgICAgIHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCdyZWFkKCkgc2hvdWxkIG5vdCBmdWxmaWxsJyk7CiAgICAgICAgICAgICB9KSwKLSAg
ICAgICAgICAgIHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihyKSB7CisgICAgICAgICAgICB0ZXN0
My5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ciwgZXJyb3IsICdyZWFkKCkgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvcicpOwotICAgICAg
ICAgICAgICAgIHRlc3QyLmRvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0My5kb25lKCk7CiAg
ICAgICAgICAgICB9KQogICAgICAgICApOwogICAgIH0pOwpAQCAtOTA2LDE2ICs5NjAsMTYgQEAg
ZnVuY3Rpb24gdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIobGFiZWwsIGZhY3Rvcnks
IGNodW5rcykgewogICAgICAgICB9KSkuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsgYXNzZXJ0X3VucmVhY2hlZChlKTsgfSkpOwogICAgIH0pOwogCi0gICAgdmFyIHRlc3QzID0g
YXN5bmNfdGVzdCgnZHJhaW5pbmcgdGhlIHN0cmVhbSB2aWEgcmVhZCgpIHNob3VsZCBjYXVzZSB0
aGUgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHRvIGZ1bGZpbGwgYW5kIGxvY2tlZCB0byBiZSBmYWxz
ZScpOworICAgIHZhciB0ZXN0MyA9IGFzeW5jX3Rlc3QoJ2RyYWluaW5nIHRoZSBzdHJlYW0gdmlh
IHJlYWQoKSBzaG91bGQgY2F1c2UgdGhlIHJlYWRlciBjbG9zZWQgcHJvbWlzZSB0byBmdWxmaWxs
LCBidXQgbG9ja2VkIHN0YXlzIHRydWUnKTsKICAgICB0ZXN0My5zdGVwKGZ1bmN0aW9uKCkgewog
ICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0gZmFjdG9yeSgpOwotICAgICAgICB2YXIg
cmVhZENhbGxlZCA9IGZhbHNlOworCisgICAgICAgIGFzc2VydF90cnVlKHN0cmVhbS5sb2NrZWQs
ICdzdHJlYW0gc2hvdWxkIHN0YXJ0IGxvY2tlZCcpOwogCiAgICAgICAgIHJlYWRlci5jbG9zZWQu
dGhlbigKICAgICAgICAgICAgIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUocmVhZENhbGxlZCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh2LCB1bmRlZmluZWQsICdyZWFkZXIgY2xvc2VkIHNob3VsZCBmdWxmaWxsIHdpdGgg
dW5kZWZpbmVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHN0cmVhbS5sb2NrZWQs
ICdzdHJlYW0gc2hvdWxkIG5vIGxvbmdlciBiZSBsb2NrZWQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShzdHJlYW0ubG9ja2VkLCAnc3RyZWFtIHNob3VsZCByZW1haW4gbG9ja2VkJyk7
CiAgICAgICAgICAgICAgICAgdGVzdDMuZG9uZSgpOwogICAgICAgICAgICAgfSksCiAgICAgICAg
ICAgICB0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoJ3JlYWRl
ciBjbG9zZWQgc2hvdWxkIG5vdCByZWplY3QnKTsgfSkKQEAgLTkyMyw0NSArOTc3LDQzIEBAIGZ1
bmN0aW9uIHRlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2VkUmVhZGVyKGxhYmVsLCBmYWN0b3J5LCBj
aHVua3MpIHsKIAogICAgICAgICByZWFkZXIucmVhZCgpOwogICAgICAgICByZWFkZXIucmVhZCgp
OwotICAgICAgICByZWFkQ2FsbGVkID0gdHJ1ZTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0NCA9
IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBhZnRlciB0aGUgc3RyZWFtIGlzIGNsb3Nl
ZCBzaG91bGQgZG8gbm90aGluZycpOworICAgIHZhciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ3JlbGVh
c2luZyB0aGUgbG9jayBhZnRlciB0aGUgc3RyZWFtIGlzIGNsb3NlZCBzaG91bGQgY2F1c2UgbG9j
a2VkIHRvIGJlY29tZSBmYWxzZScpOwogICAgIHRlc3Q0LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwotICAgICAgICB2YXIgcmVhZENhbGxlZCA9
IGZhbHNlOworICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0gZmFjdG9yeSgpOwogCiAg
ICAgICAgIHJlYWRlci5jbG9zZWQudGhlbih0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShyZWFkQ2FsbGVkKTsKKyAgICAgICAgICAgIGFzc2VydF90
cnVlKHN0cmVhbS5sb2NrZWQsICd0aGUgc3RyZWFtIHNob3VsZCBzdGFydCBsb2NrZWQnKTsKICAg
ICAgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOyAvLyBSZWxlYXNpbmcgdGhlIGxvY2sgYWZ0
ZXIgcmVhZGVyIGNsb3NlZCBzaG91bGQgbm90IHRocm93LgorICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHN0cmVhbS5sb2NrZWQsICd0aGUgc3RyZWFtIHNob3VsZCBlbmQgdW5sb2NrZWQnKTsKICAg
ICAgICAgICAgIHRlc3Q0LmRvbmUoKTsKICAgICAgICAgfSkpOwogCiAgICAgICAgIHJlYWRlci5y
ZWFkKCk7CiAgICAgICAgIHJlYWRlci5yZWFkKCk7Ci0gICAgICAgIHJlYWRDYWxsZWQgPSB0cnVl
OwogICAgIH0pOwogCi0gICAgdmFyIHRlc3Q1ID0gYXN5bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBs
b2NrIHNob3VsZCBjYXVzZSByZWFkKCkgdG8gYWN0IGFzIGlmIHRoZSBzdHJlYW0gaXMgY2xvc2Vk
Jyk7CisgICAgdmFyIHRlc3Q1ID0gYXN5bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBsb2NrIHNob3Vs
ZCBjYXVzZSBmdXJ0aGVyIHJlYWQoKSBjYWxscyB0byByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcics
IHsgdGltZW91dDogNTB9KTsKICAgICB0ZXN0NS5zdGVwKGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgeyByZWFkZXIgfSA9IGZhY3RvcnkoKTsKICAgICAgICAgdmFyIHByb21pc2VDYWxscyA9IDA7
CisgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwogCiAgICAgICAgIHJlYWRlci5y
ZWxlYXNlTG9jaygpOwogCi0gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0NS5zdGVwX2Z1
bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2
YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdmaXJzdCByZWFkKCkgc2hvdWxkIHJldHVy
biBjbG9zZWQgcmVzdWx0Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VDYWxsczsKKyAgICAgICAg
cmVhZGVyLnJlYWQoKS5jYXRjaCh0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyB0aHJvdyBl
OyB9LCAnZmlyc3QgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcicpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscygrK3Byb21pc2VDYWxscywgMSk7CiAgICAgICAgIH0pKTsK
LSAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbihyKSB7
Ci0gICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhyLCB7IHZhbHVlOiB1bmRlZmluZWQs
IGRvbmU6IHRydWUgfSwgJ3NlY29uZCByZWFkKCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0
Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VDYWxsczsKKyAgICAgICAgcmVhZGVyLnJlYWQoKS5j
YXRjaCh0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyB0aHJvdyBlOyB9LCAnc2Vjb25kIHJl
YWQoKSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDIpOwogICAgICAgICB9KSk7Ci0gICAgICAgIHJlYWRl
ci5yZWFkKCkudGhlbih0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAg
YXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0s
ICd0aGlyZCByZWFkKCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0Jyk7CisgICAgICAgIHJl
YWRlci5yZWFkKCkuY2F0Y2godGVzdDUuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsg
fSwgJ3RoaXJkIHJlYWQoKSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDMpOwogICAgICAgICAgICAgdGVz
dDUuZG9uZSgpOwotICAgICAgICB9KSkKKyAgICAgICAgfSkpOwogICAgIH0pOwogCiAgICAgdmFy
IHRlc3Q2ID0gYXN5bmNfdGVzdCgncmVhZGVyXCdzIGNsb3NlZCBwcm9wZXJ0eSBhbHdheXMgcmV0
dXJucyB0aGUgc2FtZSBwcm9taXNlJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263560</attachid>
            <date>2015-10-20 02:14:26 -0700</date>
            <delta_ts>2015-10-20 03:08:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-149670-20151020111343.patch</filename>
            <type>text/plain</type>
            <size>24208</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMzMzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjRmZmViNzNhNmRiNjdhMjUxODBm
ZTM3YjEzNmY4NmE0YjExM2U0YS4uYTY0NzAxZWEyMjMzYTk0YmVjZTIxNTY4YjdiZDg4NjI1ZjI4
Mzc5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA5LTMwICBYYWJpZXIgUm9kcmlndWV6
IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBV
cGRhdGUgcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZCB0ZXN0cyB0byBsYXRlc3Qgc3BlYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NjY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0OiBVcGRhdGVk
IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZWFkYWJsZS1zdHJlYW0uaHRtbDogVXBkYXRlZCB0ZXN0cy4KKwogMjAxNS0xMC0xOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbnRDYXNj
YWRlOjp0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgaXMgbm90IHByaXZ5IHRvIGZvbnQtdmFyaWFudC0q
IG5vciBmb250LWZlYXR1cmUtc2V0dGluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
cmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKaW5kZXggNzkwNjQxMjQxOWY4
MjQ3NTI3ZjYyOTc1MTI1MmJmNmY1ZDY0OGUzMS4uMTBmOTcxNmVjYzM5OGYyNzFiOTUzYjBlOGE3
ZDU0MjFhZjE4NmRiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKQEAgLTksOCArOSw4IEBAIFBBU1MgdHdvIHJl
YWQoKXMgc2hvdWxkIGJvdGggbmV2ZXIgc2V0dGxlCiBQQVNTIHJlYWQoKSBzaG91bGQgcmV0dXJu
IGRpc3RpbmN0IHByb21pc2VzIGVhY2ggdGltZSAKIFBBU1MgZ2V0UmVhZGVyKCkgYWdhaW4gb24g
dGhlIHN0cmVhbSBzaG91bGQgZmFpbCAKIFBBU1MgcmVsZWFzaW5nIHRoZSBsb2NrIHdpdGggcGVu
ZGluZyByZWFkIHJlcXVlc3RzIHNob3VsZCB0aHJvdyBidXQgdGhlIHJlYWQgcmVxdWVzdHMgc2hv
dWxkIHN0YXkgcGVuZGluZyAKLVBBU1MgcmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBm
dXJ0aGVyIHJlYWQoKSBjYWxscyB0byByZXNvbHZlIGFzIGlmIHRoZSBzdHJlYW0gaXMgY2xvc2Vk
IAotUEFTUyByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGNsb3NlZCB0byBmdWxmaWxs
IAorVElNRU9VVCByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGZ1cnRoZXIgcmVhZCgp
IGNhbGxzIHRvIHJlamVjdCB3aXRoIGEgVHlwZUVycm9yIFRlc3QgdGltZWQgb3V0CitUSU1FT1VU
IHJlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgY2xvc2VkIHRvIHJlamVjdCBUZXN0IHRp
bWVkIG91dAogUEFTUyByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGxvY2tlZCB0byBi
ZWNvbWUgZmFsc2UgCiBQQVNTIGNhbmNlbGluZyB2aWEgdGhlIHJlYWRlciBzaG91bGQgY2F1c2Ug
dGhlIHJlYWRlciB0byBhY3QgY2xvc2VkIAogUEFTUyBjYW5jZWxpbmcgdmlhIHRoZSBzdHJlYW0g
c2hvdWxkIGZhaWwgCkBAIC0yMCwxOCArMjAsMjEgQEAgUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZh
bHNlCiBQQVNTIGdldFJlYWRlcigpIHNob3VsZCBiZSBPSyAKIEZBSUwgcGlwaW5nIHRvIGEgV3Jp
dGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHNob3VsZCBjbG9zZSB0aGUgd3JpdGFi
bGUgc3RyZWFtIFdyaXRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG5vdCBpbXBsZW1lbnRlZAogRkFJ
TCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgd2l0aCB7
IHByZXZlbnRDbG9zZTogdHJ1ZSB9IHNob3VsZCBkbyBub3RoaW5nIFdyaXRhYmxlU3RyZWFtIGNv
bnN0cnVjdG9yIG5vdCBpbXBsZW1lbnRlZAotUEFTUyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJl
IG11bHRpcGxlIHJlYWRlcnMsIHNpbmNlIHRoZXkgYXJlIGFsbCBhdXRvLXJlbGVhc2VkIAorUEFT
UyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMgaWYgdGhleSBhcmUg
cmVsZWFzZWQgaW4gc3VjY2Vzc2lvbiAKK0ZBSUwgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFjcXVp
cmUgYSBzZWNvbmQgcmVhZGVyIGlmIHdlIGRvbid0IHJlbGVhc2UgdGhlIGZpcnN0IG9uZSBhc3Nl
cnRfdGhyb3dzOiBnZXR0aW5nIGEgc2Vjb25kIHJlYWRlciBzaG91bGQgdGhyb3cgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgcnMuZ2V0UmVhZGVyKCk7IH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgUnVu
bmluZyB0ZW1wbGF0ZWRSU0Nsb3NlZFJlYWRlciB3aXRoIFJlYWRhYmxlU3RyZWFtIHJlYWRlciAo
Y2xvc2VkIGJlZm9yZSBnZXR0aW5nIHJlYWRlcikgCiBQQVNTIHJlYWQoKSBzaG91bGQgZnVsZmls
bCB3aXRoIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9IAogUEFTUyByZWFkKCkgbXVs
dGlwbGUgdGltZXMgc2hvdWxkIGZ1bGZpbGwgd2l0aCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6
IHRydWUgfSAKIFBBU1MgcmVhZCgpIHNob3VsZCB3b3JrIHdoZW4gdXNlZCB3aXRoaW4gYW5vdGhl
ciByZWFkKCkgZnVsZmlsbCBjYWxsYmFjayAKIFBBU1MgY2xvc2VkIHNob3VsZCBmdWxmaWxsIHdp
dGggdW5kZWZpbmVkIAorRkFJTCByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNlIGNsb3Nl
ZCB0byByZWplY3QgYW5kIGNoYW5nZSBpZGVudGl0eSBhc3NlcnRfbm90X2VxdWFsczogdGhlIGNs
b3NlZCBwcm9taXNlIHNob3VsZCBjaGFuZ2UgaWRlbnRpdHkgZ290IGRpc2FsbG93ZWQgdmFsdWUg
b2JqZWN0ICJbb2JqZWN0IFByb21pc2VdIgogUEFTUyBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEg
ZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0aW1lIAogUEFTUyBSdW5uaW5nIHRlbXBs
YXRlZFJTQ2xvc2VkUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0gcmVhZGVyIChjbG9zZWQgYWZ0
ZXIgZ2V0dGluZyByZWFkZXIpIAogUEFTUyByZWFkKCkgc2hvdWxkIGZ1bGZpbGwgd2l0aCB7IHZh
bHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSAKIFBBU1MgcmVhZCgpIG11bHRpcGxlIHRpbWVz
IHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gCiBQ
QVNTIHJlYWQoKSBzaG91bGQgd29yayB3aGVuIHVzZWQgd2l0aGluIGFub3RoZXIgcmVhZCgpIGZ1
bGZpbGwgY2FsbGJhY2sgCiBQQVNTIGNsb3NlZCBzaG91bGQgZnVsZmlsbCB3aXRoIHVuZGVmaW5l
ZCAKK0ZBSUwgcmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0
IGFuZCBjaGFuZ2UgaWRlbnRpdHkgYXNzZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlz
ZSBzaG91bGQgY2hhbmdlIGlkZW50aXR5IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29i
amVjdCBQcm9taXNlXSIKIFBBU1MgY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1
bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Nsb3Nl
ZCB3aXRoIFJlYWRhYmxlU3RyZWFtIChjbG9zZWQgdmlhIGNhbmNlbCkgCiBQQVNTIGNhbmNlbCgp
IHNob3VsZCByZXR1cm4gYSBkaXN0aW5jdCBmdWxmaWxsZWQgcHJvbWlzZSBlYWNoIHRpbWUgCkBA
IC0zOSwxMiArNDIsMTQgQEAgUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZhbHNlCiBQQVNTIGdldFJl
YWRlcigpIHNob3VsZCBiZSBPSyAKIEZBSUwgcGlwaW5nIHRvIGEgV3JpdGFibGVTdHJlYW0gaW4g
dGhlIHdyaXRhYmxlIHN0YXRlIHNob3VsZCBjbG9zZSB0aGUgd3JpdGFibGUgc3RyZWFtIFdyaXRh
YmxlU3RyZWFtIGNvbnN0cnVjdG9yIG5vdCBpbXBsZW1lbnRlZAogRkFJTCBwaXBpbmcgdG8gYSBX
cml0YWJsZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgd2l0aCB7IHByZXZlbnRDbG9zZTog
dHJ1ZSB9IHNob3VsZCBkbyBub3RoaW5nIFdyaXRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG5vdCBp
bXBsZW1lbnRlZAotUEFTUyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRl
cnMsIHNpbmNlIHRoZXkgYXJlIGFsbCBhdXRvLXJlbGVhc2VkIAorUEFTUyBzaG91bGQgYmUgYWJs
ZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMgaWYgdGhleSBhcmUgcmVsZWFzZWQgaW4gc3Vj
Y2Vzc2lvbiAKK0ZBSUwgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFjcXVpcmUgYSBzZWNvbmQgcmVh
ZGVyIGlmIHdlIGRvbid0IHJlbGVhc2UgdGhlIGZpcnN0IG9uZSBhc3NlcnRfdGhyb3dzOiBnZXR0
aW5nIGEgc2Vjb25kIHJlYWRlciBzaG91bGQgdGhyb3cgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
cnMuZ2V0UmVhZGVyKCk7IH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRS
U0Nsb3NlZFJlYWRlciB3aXRoIFJlYWRhYmxlU3RyZWFtIHJlYWRlciAoY2xvc2VkIHZpYSBjYW5j
ZWwgYWZ0ZXIgZ2V0dGluZyByZWFkZXIpIAogUEFTUyByZWFkKCkgc2hvdWxkIGZ1bGZpbGwgd2l0
aCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSAKIFBBU1MgcmVhZCgpIG11bHRpcGxl
IHRpbWVzIHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVl
IH0gCiBQQVNTIHJlYWQoKSBzaG91bGQgd29yayB3aGVuIHVzZWQgd2l0aGluIGFub3RoZXIgcmVh
ZCgpIGZ1bGZpbGwgY2FsbGJhY2sgCiBQQVNTIGNsb3NlZCBzaG91bGQgZnVsZmlsbCB3aXRoIHVu
ZGVmaW5lZCAKK0ZBSUwgcmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8g
cmVqZWN0IGFuZCBjaGFuZ2UgaWRlbnRpdHkgYXNzZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQg
cHJvbWlzZSBzaG91bGQgY2hhbmdlIGlkZW50aXR5IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVj
dCAiW29iamVjdCBQcm9taXNlXSIKIFBBU1MgY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRpc3Rp
bmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRS
U0Vycm9yZWQgd2l0aCBSZWFkYWJsZVN0cmVhbSAoZXJyb3JlZCB2aWEgY2FsbCBpbiBzdGFydCkg
CiBGQUlMIHBpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3cml0YWJsZSBzdGF0ZSBz
aG91bGQgYWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBXcml0YWJsZVN0cmVhbSBjb25zdHJ1Y3Rv
ciBub3QgaW1wbGVtZW50ZWQKQEAgLTUzLDkgKzU4LDkgQEAgUEFTUyByZWFkKCkgdHdpY2Ugc2hv
dWxkIGdpdmUgdGhlIGVycm9yIGVhY2ggdGltZQogUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZhbHNl
IAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTRXJyb3JlZFN5bmNPbmx5IHdpdGggUmVhZGFibGVT
dHJlYW0gKGVycm9yZWQgdmlhIGNhbGwgaW4gc3RhcnQpIAogUEFTUyBzaG91bGQgYmUgYWJsZSB0
byBvYnRhaW4gYSBzZWNvbmQgcmVhZGVyLCB3aXRoIHRoZSBjb3JyZWN0IGNsb3NlZCBwcm9taXNl
IAorRkFJTCBzaG91bGQgbm90IGJlIGFibGUgdG8gb2J0YWluIGFkZGl0aW9uYWwgcmVhZGVycyBp
ZiB3ZSBkb24ndCByZWxlYXNlIHRoZSBmaXJzdCBsb2NrIGFzc2VydF90aHJvd3M6IGdldHRpbmcg
YSBzZWNvbmQgcmVhZGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeyBycy5nZXRSZWFkZXIoKTsgfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBjYW5jZWwoKSBz
aG91bGQgcmV0dXJuIGEgZGlzdGluY3QgcmVqZWN0ZWQgcHJvbWlzZSBlYWNoIHRpbWUgCiBQQVNT
IHJlYWRlciBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgcmVqZWN0ZWQgcHJvbWlz
ZSBlYWNoIHRpbWUgCi1QQVNTIHNob3VsZCBiZSBhYmxlIHRvIGFjcXVpcmUgbXVsdGlwbGUgcmVh
ZGVycywgc2luY2UgdGhleSBhcmUgYWxsIGF1dG8tcmVsZWFzZWQgCiBQQVNTIFJ1bm5pbmcgdGVt
cGxhdGVkUlNFcnJvcmVkIHdpdGggUmVhZGFibGVTdHJlYW0gKGVycm9yZWQgdmlhIHJldHVybmlu
ZyBhIHJlamVjdGVkIHByb21pc2UgaW4gc3RhcnQpIAogRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJs
ZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBz
dHJlYW0gV3JpdGFibGVTdHJlYW0gY29uc3RydWN0b3Igbm90IGltcGxlbWVudGVkCiBQQVNTIGdl
dFJlYWRlcigpIHNob3VsZCByZXR1cm4gYSByZWFkZXIgdGhhdCBhY3RzIGVycm9yZWQgCkBAIC02
NywxMiArNzIsMTUgQEAgRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRBYm9ydDogZmFsc2UgfSBX
cml0YWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBub3QgaW1wbGVtZW4KIEZBSUwgcGlwaW5nIHdpdGgg
eyBwcmV2ZW50QWJvcnQ6IHRydWUgfSBXcml0YWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBub3QgaW1w
bGVtZW50ZWQKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRSZWFkZXIgd2l0aCBSZWFk
YWJsZVN0cmVhbSAoZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJvbWlzZSBpbiBz
dGFydCkgcmVhZGVyIAogUEFTUyBjbG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvciAK
K0ZBSUwgcmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IGFu
ZCBjaGFuZ2UgaWRlbnRpdHkgYXNzZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlzZSBz
aG91bGQgY2hhbmdlIGlkZW50aXR5IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVj
dCBQcm9taXNlXSIKIFBBU1MgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3IgCiBQ
QVNTIFJ1bm5pbmcgdGVtcGxhdGVkUlNFcnJvcmVkUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0g
cmVhZGVyIChlcnJvcmVkIGJlZm9yZSBnZXR0aW5nIHJlYWRlcikgCiBQQVNTIGNsb3NlZCBzaG91
bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yIAorRkFJTCByZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxk
IGNhdXNlIGNsb3NlZCB0byByZWplY3QgYW5kIGNoYW5nZSBpZGVudGl0eSBhc3NlcnRfbm90X2Vx
dWFsczogdGhlIGNsb3NlZCBwcm9taXNlIHNob3VsZCBjaGFuZ2UgaWRlbnRpdHkgZ290IGRpc2Fs
bG93ZWQgdmFsdWUgb2JqZWN0ICJbb2JqZWN0IFByb21pc2VdIgogUEFTUyByZWFkKCkgc2hvdWxk
IHJlamVjdCB3aXRoIHRoZSBlcnJvciAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRS
ZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSByZWFkZXIgKGVycm9yZWQgYWZ0ZXIgZ2V0dGluZyBy
ZWFkZXIpIAogUEFTUyBjbG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvciAKK0ZBSUwg
cmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSBjbG9zZWQgdG8gcmVqZWN0IGFuZCBjaGFu
Z2UgaWRlbnRpdHkgYXNzZXJ0X25vdF9lcXVhbHM6IHRoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQg
Y2hhbmdlIGlkZW50aXR5IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVjdCBQcm9t
aXNlXSIKIFBBU1MgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3IgCiBQQVNTIFJ1
bm5pbmcgdGVtcGxhdGVkUlNUd29DaHVua3NPcGVuUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0g
KHR3byBjaHVua3MgZW5xdWV1ZWQsIHN0aWxsIG9wZW4pIHJlYWRlciAKIFBBU1MgY2FsbGluZyBy
ZWFkKCkgdHdpY2Ugd2l0aG91dCB3YWl0aW5nIHdpbGwgZXZlbnR1YWxseSBnaXZlIGJvdGggY2h1
bmtzIApAQCAtMTAzLDggKzExMSw4IEBAIEZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6
IHRydWUgfSBhbmQgYSBkZXN0aW5hdGlvbiB0aGF0IGVycm9ycyBvbiB0aGUgbGFzCiBQQVNTIFJ1
bm5pbmcgdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVh
bSAodHdvIGNodW5rcyBlbnF1ZXVlZCwgdGhlbiBjbG9zZWQpIHJlYWRlciAKIFBBU1MgdGhpcmQg
cmVhZCgpLCB3aXRob3V0IHdhaXRpbmcsIHNob3VsZCBnaXZlIHsgdmFsdWU6IHVuZGVmaW5lZCwg
ZG9uZTogdHJ1ZSB9IAogUEFTUyB0aGlyZCByZWFkLCB3aXRoIHdhaXRpbmcsIHNob3VsZCBnaXZl
IHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9IAotUEFTUyBkcmFpbmluZyB0aGUgc3Ry
ZWFtIHZpYSByZWFkKCkgc2hvdWxkIGNhdXNlIHRoZSByZWFkZXIgY2xvc2VkIHByb21pc2UgdG8g
ZnVsZmlsbCBhbmQgbG9ja2VkIHRvIGJlIGZhbHNlIAotUEFTUyByZWxlYXNpbmcgdGhlIGxvY2sg
YWZ0ZXIgdGhlIHN0cmVhbSBpcyBjbG9zZWQgc2hvdWxkIGRvIG5vdGhpbmcgCi1QQVNTIHJlbGVh
c2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgcmVhZCgpIHRvIGFjdCBhcyBpZiB0aGUgc3RyZWFt
IGlzIGNsb3NlZCAKK0ZBSUwgZHJhaW5pbmcgdGhlIHN0cmVhbSB2aWEgcmVhZCgpIHNob3VsZCBj
YXVzZSB0aGUgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHRvIGZ1bGZpbGwsIGJ1dCBsb2NrZWQgc3Rh
eXMgdHJ1ZSBhc3NlcnRfdHJ1ZTogc3RyZWFtIHNob3VsZCByZW1haW4gbG9ja2VkIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMIHJlbGVhc2luZyB0aGUgbG9jayBhZnRlciB0aGUgc3RyZWFt
IGlzIGNsb3NlZCBzaG91bGQgY2F1c2UgbG9ja2VkIHRvIGJlY29tZSBmYWxzZSBhc3NlcnRfdHJ1
ZTogdGhlIHN0cmVhbSBzaG91bGQgc3RhcnQgbG9ja2VkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitUSU1FT1VUIHJlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFkKCkg
Y2FsbHMgdG8gcmVqZWN0IHdpdGggYSBUeXBlRXJyb3IgVGVzdCB0aW1lZCBvdXQKIFBBU1MgcmVh
ZGVyJ3MgY2xvc2VkIHByb3BlcnR5IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIHByb21pc2UgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9u
L3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQuaHRtbAppbmRl
eCBhZjkxMWQyNjViYjRmMzAyZjcyNTU5N2Y0MTVhNDQyMGYzODZiMjUyLi5iNWM3MWE4MWUyMDE3
OWJlNjY3NmI2Y2Q5NDI2ZmY0NTA2Y2M0NzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVh
ZGFibGUtc3RyZWFtLXRlbXBsYXRlZC5odG1sCkBAIC0zLDYgKzMsOCBAQAogPHNjcmlwdCBzcmM9
Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0ncmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanMnPjwvc2NyaXB0PgogPHNjcmlwdD4KKy8v
IFRoaXMgaXMgdXBkYXRlZCB0aWxsIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvc3RyZWFtcy9j
b21taXQvZWM1ZmZhMDM2MzA4ZDlmNjM1MGQyOTQ2NTYwZDQ4Y2RiZjA5MDkzOQorCiBmdW5jdGlv
biB0ZW1wbGF0ZWRSU0VtcHR5KGxhYmVsLCBmYWN0b3J5KSB7CiAgICAgdGVzdChmdW5jdGlvbigp
IHsKICAgICB9LCAnUnVubmluZyB0ZW1wbGF0ZWRSU0VtcHR5IHdpdGggJyArIGxhYmVsKTsKQEAg
LTEyNCwxMSArMTI2LDIzIEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xvc2VkKGxhYmVsLCBmYWN0
b3J5KSB7CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgp
OwogCi0gICAgICAgIHJzLmdldFJlYWRlcigpOworICAgICAgICB2YXIgcmVhZGVyID0gcnMuZ2V0
UmVhZGVyKCk7CisgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOworCisgICAgICAgIHJlYWRl
ciA9IHJzLmdldFJlYWRlcigpOyAvLyBHZXR0aW5nIGEgc2Vjb25kIHJlYWRlciBzaG91bGQgbm90
IHRocm93LgorICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKIAotICAgICAgICBycy5nZXRS
ZWFkZXIoKTsgLy8gR2V0dGluZyBhIHNlY29uZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KICAg
ICAgICAgcnMuZ2V0UmVhZGVyKCk7IC8vIEdldHRpbmcgYSB0aGlyZCByZWFkZXIgc2hvdWxkIG5v
dCB0aHJvdy4KLSAgICB9LCAnc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFk
ZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0by1yZWxlYXNlZCcpOworICAgIH0sICdzaG91bGQg
YmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMgaWYgdGhleSBhcmUgcmVsZWFzZWQg
aW4gc3VjY2Vzc2lvbicpOworCisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJz
ID0gZmFjdG9yeSgpOworCisgICAgICAgIHJzLmdldFJlYWRlcigpOworCisgICAgICAgIGFzc2Vy
dF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgcnMuZ2V0UmVhZGVyKCk7IH0s
ICdnZXR0aW5nIGEgc2Vjb25kIHJlYWRlciBzaG91bGQgdGhyb3cnKTsKKyAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBycy5nZXRSZWFkZXIoKTsgfSwg
J2dldHRpbmcgYSB0aGlyZCByZWFkZXIgc2hvdWxkIHRocm93Jyk7CisgICAgfSwgJ3Nob3VsZCBu
b3QgYmUgYWJsZSB0byBhY3F1aXJlIGEgc2Vjb25kIHJlYWRlciBpZiB3ZSBkb25cJ3QgcmVsZWFz
ZSB0aGUgZmlyc3Qgb25lJyk7CiB9OwogCiBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWQobGFi
ZWwsIGZhY3RvcnksIGVycm9yKSB7CkBAIC0zMDAsNyArMzE0LDcgQEAgZnVuY3Rpb24gdGVtcGxh
dGVkUlNFcnJvcmVkU3luY09ubHkobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgdGVzdDEu
c3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwogCi0gICAgICAg
IHJzLmdldFJlYWRlcigpOworICAgICAgICBycy5nZXRSZWFkZXIoKS5yZWxlYXNlTG9jaygpOwog
CiAgICAgICAgIHZhciByZWFkZXIgPSBycy5nZXRSZWFkZXIoKTsgLy8gQ2FsbGluZyBnZXRSZWFk
ZXIoKSB0d2ljZSBkb2VzIG5vdCB0aHJvdyAodGhlIHN0cmVhbSBpcyBub3QgbG9ja2VkKS4KIApA
QCAtMzEzLDYgKzMyNywxNSBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWRTeW5jT25seShs
YWJlbCwgZmFjdG9yeSwgZXJyb3IpIHsKICAgICAgICAgKTsKICAgICB9KTsKIAorICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICBycy5n
ZXRSZWFkZXIoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVu
Y3Rpb24oKSB7IHJzLmdldFJlYWRlcigpOyB9LCAnZ2V0dGluZyBhIHNlY29uZCByZWFkZXIgc2hv
dWxkIHRocm93IGEgVHlwZUVycm9yJyk7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsgcnMuZ2V0UmVhZGVyKCk7IH0sICdnZXR0aW5nIGEgdGhpcmQg
cmVhZGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcicpOworICAgIH0sICdzaG91bGQgbm90IGJl
IGFibGUgdG8gb2J0YWluIGFkZGl0aW9uYWwgcmVhZGVycyBpZiB3ZSBkb25cJ3QgcmVsZWFzZSB0
aGUgZmlyc3QgbG9jaycpOworCiAgICAgdmFyIHRlc3QyID0gYXN5bmNfdGVzdCgnY2FuY2VsKCkg
c2hvdWxkIHJldHVybiBhIGRpc3RpbmN0IHJlamVjdGVkIHByb21pc2UgZWFjaCB0aW1lJyk7CiAg
ICAgdGVzdDIuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwpA
QCAtMzU5LDE1ICszODIsNiBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWRTeW5jT25seShs
YWJlbCwgZmFjdG9yeSwgZXJyb3IpIHsKICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY2FuY2Vs
UHJvbWlzZTEsIGNhbmNlbFByb21pc2UyLCAnY2FuY2VsKCkgY2FsbHMgc2hvdWxkIHJldHVybiBk
aXN0aW5jdCBwcm9taXNlcycpOwogICAgICAgICBhbGxDaGVja2VkID0gdHJ1ZTsKICAgICB9KTsK
LQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKLQot
ICAgICAgICBycy5nZXRSZWFkZXIoKTsKLQotICAgICAgICBycy5nZXRSZWFkZXIoKTsgLy8gR2V0
dGluZyBhIHNlY29uZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KLSAgICAgICAgcnMuZ2V0UmVh
ZGVyKCk7IC8vIEdldHRpbmcgYSB0aGlyZCByZWFkZXIgc2hvdWxkIG5vdCB0aHJvdy4KLSAgICB9
LCAnc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5
IGFyZSBhbGwgYXV0by1yZWxlYXNlZCcpOwogfTsKIAogZnVuY3Rpb24gdGVtcGxhdGVkUlNUd29D
aHVua3NDbG9zZWQobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CkBAIC01OTIsNyArNjA2LDcgQEAg
ZnVuY3Rpb24gdGVtcGxhdGVkUlNFbXB0eVJlYWRlcihsYWJlbCwgZmFjdG9yeSkgewogCiAgICAg
dmFyIHRlc3QzID0gYXN5bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBsb2NrIHdpdGggcGVuZGluZyBy
ZWFkIHJlcXVlc3RzIHNob3VsZCB0aHJvdyBidXQgdGhlIHJlYWQgcmVxdWVzdHMgc2hvdWxkIHN0
YXkgcGVuZGluZycpOwogICAgIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB7
IHJlYWRlciB9ID0gZmFjdG9yeSgpOworICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0g
ZmFjdG9yeSgpOwogCiAgICAgICAgIHJlYWRlci5yZWFkKCkudGhlbigKICAgICAgICAgICAgIHRl
c3QzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgnZmlyc3QgcmVhZCgp
IHNob3VsZCBub3QgZnVsZmlsbCcpOyB9KSwKQEAgLTYxMSw0MiArNjI1LDQwIEBAIGZ1bmN0aW9u
IHRlbXBsYXRlZFJTRW1wdHlSZWFkZXIobGFiZWwsIGZhY3RvcnkpIHsKIAogICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHJlYWRlci5yZWxlYXNlTG9j
aygpOyB9LCAncmVsZWFzZUxvY2sgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yJyk7CiAKKyAgICAg
ICAgYXNzZXJ0X3RydWUoc3RyZWFtLmxvY2tlZCwgJ3RoZSBzdHJlYW0gc2hvdWxkIHN0aWxsIGJl
IGxvY2tlZCcpOworCiAgICAgICAgIHNldFRpbWVvdXQodGVzdDMuc3RlcF9mdW5jKGZ1bmN0aW9u
KCkgeyB0ZXN0My5kb25lKCk7IH0pLCAxMDAwKTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0NCA9
IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVydGhlciByZWFk
KCkgY2FsbHMgdG8gcmVzb2x2ZSBhcyBpZiB0aGUgc3RyZWFtIGlzIGNsb3NlZCcpOworICAgIHZh
ciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgZnVy
dGhlciByZWFkKCkgY2FsbHMgdG8gcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InLCB7IHRpbWVvdXQ6
IDUwIH0pOwogICAgIHRlc3Q0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBwcm9taXNl
Q2FsbHMgPSAwOwogICAgICAgICB2YXIgeyByZWFkZXIgfSA9IGZhY3RvcnkoKTsKLSAgICAgICAg
dmFyIHByb21pc2VzQ291bnQgPSAwOwogCiAgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOwog
Ci0gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24ocikg
ewotICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVk
LCBkb25lOiB0cnVlIH0sICdmaXJzdCByZWFkKCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0
Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VzQ291bnQ7CisgICAgICAgIHJlYWRlci5yZWFkKCku
Y2F0Y2godGVzdDQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwgJ2ZpcnN0IHJl
YWQoKSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDEpOwogICAgICAgICB9KSk7Ci0gICAgICAgIHJlYWRl
ci5yZWFkKCkudGhlbih0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAg
YXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0s
ICdzZWNvbmQgcmVhZCgpIHNob3VsZCByZXR1cm4gY2xvc2VkIHJlc3VsdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscygrK3Byb21pc2VzQ291bnQsIDIpOworICAgICAgICByZWFkZXIucmVh
ZCgpLmNhdGNoKHRlc3Q0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0sICdzZWNv
bmQgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcicpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscygrK3Byb21pc2VDYWxscywgMik7CiAgICAgICAgICAgICB0ZXN0NC5kb25l
KCk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0NSA9IGFzeW5jX3Rlc3Qo
J3JlbGVhc2luZyB0aGUgbG9jayBzaG91bGQgY2F1c2UgY2xvc2VkIHRvIGZ1bGZpbGwnKTsKKyAg
ICB2YXIgdGVzdDUgPSBhc3luY190ZXN0KCdyZWxlYXNpbmcgdGhlIGxvY2sgc2hvdWxkIGNhdXNl
IGNsb3NlZCB0byByZWplY3QnLCB7IHRpbWVvdXQ6IDUwIH0pOwogICAgIHRlc3Q1LnN0ZXAoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwotICAgICAgICB2
YXIgcHJvbWlzZXNDb3VudCA9IDA7Ci0KLSAgICAgICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3Q1
LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVu
ZGVmaW5lZCwgJ3JlYWRlci5jbG9zZWQgZ290IGJlZm9yZSByZWxlYXNlIHNob3VsZCBmdWxmaWxs
IHdpdGggdW5kZWZpbmVkJyk7Ci0gICAgICAgICAgICArK3Byb21pc2VzQ291bnQ7Ci0gICAgICAg
IH0pKTsKIAorICAgICAgICB2YXIgY2xvc2VkQmVmb3JlID0gcmVhZGVyLmNsb3NlZDsKICAgICAg
ICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7CisgICAgICAgIHZhciBjbG9zZWRBZnRlciA9IHJlYWRl
ci5jbG9zZWQ7CiAKLSAgICAgICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhm
dW5jdGlvbih2KSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVuZGVmaW5lZCwgJ3Jl
YWRlci5jbG9zZWQgZ290IGFmdGVyIHJlbGVhc2Ugc2hvdWxkIGZ1bGZpbGwgd2l0aCB1bmRlZmlu
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlc0NvdW50LCAyKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjbG9zZWRCZWZvcmUsIGNsb3NlZEFmdGVyLCAndGhlIGNsb3Nl
ZCBwcm9taXNlIHNob3VsZCBub3QgY2hhbmdlIGlkZW50aXR5JykKKyAgICAgICAgY2xvc2VkQmVm
b3JlLmNhdGNoKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0sICdyZWFk
ZXIuY2xvc2VkIHNob3VsZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvcicpOwogICAgICAgICAgICAg
dGVzdDUuZG9uZSgpOwogICAgICAgICB9KSk7CiAgICAgfSk7CkBAIC03MzksOCArNzUxLDI5IEBA
IGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xvc2VkUmVhZGVyKGxhYmVsLCBmYWN0b3J5KSB7CiAgICAg
ICAgICk7CiAgICAgfSk7CiAKLSAgICB2YXIgdGVzdDUgPSBhc3luY190ZXN0KCdjYW5jZWwoKSBz
aG91bGQgcmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0aW1lJyk7Cisg
ICAgdmFyIHRlc3Q1ID0gYXN5bmNfdGVzdCgncmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVz
ZSBjbG9zZWQgdG8gcmVqZWN0IGFuZCBjaGFuZ2UgaWRlbnRpdHknKTsKICAgICB0ZXN0NS5zdGVw
KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcHJvbWlzZUNhbGxzID0gMDsKKyAgICAgICAgdmFy
IHsgcmVhZGVyIH0gPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFyIGNsb3NlZEJlZm9yZSA9IHJl
YWRlci5jbG9zZWQ7CisgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOworICAgICAgICB2YXIg
Y2xvc2VkQWZ0ZXIgPSByZWFkZXIuY2xvc2VkOworCisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KGNsb3NlZEJlZm9yZSwgY2xvc2VkQWZ0ZXIsICd0aGUgY2xvc2VkIHByb21pc2Ugc2hvdWxkIGNo
YW5nZSBpZGVudGl0eScpCisgICAgICAgIGNsb3NlZEJlZm9yZS50aGVuKHRlc3Q1LnN0ZXBfZnVu
YyhmdW5jdGlvbih2KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIHVuZGVmaW5lZCwg
J3JlYWRlci5jbG9zZWQgYWNxdWlyZWQgYmVmb3JlIHJlbGVhc2Ugc2hvdWxkIGZ1bGZpbGwnKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDEpOworICAgICAgICB9
KSk7CisgICAgICAgIGNsb3NlZEFmdGVyLmNhdGNoKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24o
KSB7IHRocm93IGU7IH0sICdyZWFkZXIuY2xvc2VkIGFjcXVpcmVkIGFmdGVyIHJlbGVhc2Ugc2hv
dWxkIHJlamVjdCB3aXRoIGEgVHlwZUVycm9yJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KCsrcHJvbWlzZUNhbGxzLCAyKTsKKyAgICAgICAgICAgIHRlc3Q1LmRvbmUoKTsKKyAgICAgICAg
fSkpOworICAgIH0pOworCisgICAgdmFyIHRlc3Q2ID0gYXN5bmNfdGVzdCgnY2FuY2VsKCkgc2hv
dWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZScpOworICAg
IHRlc3Q2LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9y
eSgpOwogICAgICAgICB2YXIgcHJvbWlzZUNvdW50ID0gMDsKICAgICAgICAgdmFyIGFsbENoZWNr
ZWQgPSBmYWxzZTsKQEAgLTc0OSwxNSArNzgyLDE1IEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xv
c2VkUmVhZGVyKGxhYmVsLCBmYWN0b3J5KSB7CiAgICAgICAgIHZhciBjYW5jZWxQcm9taXNlMiA9
IHJlYWRlci5jYW5jZWwoKTsKICAgICAgICAgdmFyIGNsb3NlZFJlYWRlclByb21pc2UgPSByZWFk
ZXIuY2xvc2VkOwogCi0gICAgICAgIGNhbmNlbFByb21pc2UxLnRoZW4odGVzdDUuc3RlcF9mdW5j
KGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgY2FuY2VsUHJvbWlzZTEudGhlbih0ZXN0Ni5zdGVwX2Z1
bmMoZnVuY3Rpb24odikgewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2LCB1bmRlZmluZWQs
ICdmaXJzdCBjYW5jZWwoKSBjYWxsIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkJyk7CiAg
ICAgICAgICAgICArK3Byb21pc2VDb3VudDsKICAgICAgICAgfSkpOwotICAgICAgICBjYW5jZWxQ
cm9taXNlMi50aGVuKHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbih2KSB7CisgICAgICAgIGNhbmNl
bFByb21pc2UyLnRoZW4odGVzdDYuc3RlcF9mdW5jKGZ1bmN0aW9uKHYpIHsKICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHModiwgdW5kZWZpbmVkLCAnc2Vjb25kIGNhbmNlbCgpIGNhbGwgc2hvdWxk
IGZ1bGZpbGwgd2l0aCB1bmRlZmluZWQnKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytw
cm9taXNlQ291bnQsIDIpOwogICAgICAgICAgICAgYXNzZXJ0X3RydWUoYWxsQ2hlY2tlZCk7Ci0g
ICAgICAgICAgICB0ZXN0NS5kb25lKCk7CisgICAgICAgICAgICB0ZXN0Ni5kb25lKCk7CiAgICAg
ICAgIH0pKTsKICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY2FuY2VsUHJvbWlzZTEsIGNhbmNl
bFByb21pc2UyLCAnY2FuY2VsKCkgY2FsbHMgc2hvdWxkIHJldHVybiBkaXN0aW5jdCBwcm9taXNl
cycpOwogICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhjYW5jZWxQcm9taXNlMSwgY2xvc2VkUmVh
ZGVyUHJvbWlzZSwgJ2NhbmNlbCgpIHByb21pc2UgMSBzaG91bGQgYmUgZGlzdGluY3QgZnJvbSBy
ZWFkZXIuY2xvc2VkJyk7CkBAIC03ODMsMTcgKzgxNiwzOCBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRS
U0Vycm9yZWRSZWFkZXIobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgICAgICk7CiAgICAg
fSk7CiAKLSAgICB2YXIgdGVzdDIgPSBhc3luY190ZXN0KCdyZWFkKCkgc2hvdWxkIHJlamVjdCB3
aXRoIHRoZSBlcnJvcicpOworICAgIHZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0
aGUgbG9jayBzaG91bGQgY2F1c2UgY2xvc2VkIHRvIHJlamVjdCBhbmQgY2hhbmdlIGlkZW50aXR5
Jyk7CiAgICAgdGVzdDIuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHsgcmVhZGVyIH0g
PSBmYWN0b3J5KCk7CiAKKyAgICAgICAgdmFyIGNsb3NlZEJlZm9yZSA9IHJlYWRlci5jbG9zZWQ7
CisKKyAgICAgICAgY2xvc2VkQmVmb3JlLmNhdGNoKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVhZGVyLmNsb3NlZCBh
Y3F1aXJlZCBiZWZvcmUgcmVsZWFzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yJyk7CisK
KyAgICAgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOworICAgICAgICAgICAgdmFyIGNsb3Nl
ZEFmdGVyID0gcmVhZGVyLmNsb3NlZDsKKworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
Y2xvc2VkQmVmb3JlLCBjbG9zZWRBZnRlciwgJ3RoZSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgY2hh
bmdlIGlkZW50aXR5Jyk7CisKKyAgICAgICAgICAgIHJldHVybiBjbG9zZWRBZnRlci5jYXRjaCh0
ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgdGhyb3cgZTsgfSwgJ3JlYWRlci5jbG9z
ZWQgYWNxdWlyZWQgYWZ0ZXIgcmVsZWFzZSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3In
KTsKKyAgICAgICAgICAgICAgICB0ZXN0Mi5kb25lKCk7CisgICAgICAgICAgICB9KSk7CisgICAg
ICAgIH0pKS5jYXRjaCh0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyBhc3NlcnRfdW5yZWFj
aGVkKGUpOyB9KSk7CisgICAgfSk7CisKKyAgICB2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdyZWFk
KCkgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvcicpOworICAgIHRlc3QzLnN0ZXAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOworCiAgICAgICAgIHJl
YWRlci5yZWFkKCkudGhlbigKLSAgICAgICAgICAgIHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKICAgICAgICAgICAg
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWFkKCkgc2hvdWxkIG5vdCBmdWxmaWxsJyk7CiAgICAg
ICAgICAgICB9KSwKLSAgICAgICAgICAgIHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihyKSB7Cisg
ICAgICAgICAgICB0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMociwgZXJyb3IsICdyZWFkKCkgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBl
cnJvcicpOwotICAgICAgICAgICAgICAgIHRlc3QyLmRvbmUoKTsKKyAgICAgICAgICAgICAgICB0
ZXN0My5kb25lKCk7CiAgICAgICAgICAgICB9KQogICAgICAgICApOwogICAgIH0pOwpAQCAtOTA2
LDE2ICs5NjAsMTYgQEAgZnVuY3Rpb24gdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIo
bGFiZWwsIGZhY3RvcnksIGNodW5rcykgewogICAgICAgICB9KSkuY2F0Y2godGVzdDIuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsgYXNzZXJ0X3VucmVhY2hlZChlKTsgfSkpOwogICAgIH0pOwogCi0g
ICAgdmFyIHRlc3QzID0gYXN5bmNfdGVzdCgnZHJhaW5pbmcgdGhlIHN0cmVhbSB2aWEgcmVhZCgp
IHNob3VsZCBjYXVzZSB0aGUgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHRvIGZ1bGZpbGwgYW5kIGxv
Y2tlZCB0byBiZSBmYWxzZScpOworICAgIHZhciB0ZXN0MyA9IGFzeW5jX3Rlc3QoJ2RyYWluaW5n
IHRoZSBzdHJlYW0gdmlhIHJlYWQoKSBzaG91bGQgY2F1c2UgdGhlIHJlYWRlciBjbG9zZWQgcHJv
bWlzZSB0byBmdWxmaWxsLCBidXQgbG9ja2VkIHN0YXlzIHRydWUnKTsKICAgICB0ZXN0My5zdGVw
KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0gZmFjdG9yeSgp
OwotICAgICAgICB2YXIgcmVhZENhbGxlZCA9IGZhbHNlOworCisgICAgICAgIGFzc2VydF90cnVl
KHN0cmVhbS5sb2NrZWQsICdzdHJlYW0gc2hvdWxkIHN0YXJ0IGxvY2tlZCcpOwogCiAgICAgICAg
IHJlYWRlci5jbG9zZWQudGhlbigKICAgICAgICAgICAgIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlv
bih2KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUocmVhZENhbGxlZCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh2LCB1bmRlZmluZWQsICdyZWFkZXIgY2xvc2VkIHNob3Vs
ZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KHN0cmVhbS5sb2NrZWQsICdzdHJlYW0gc2hvdWxkIG5vIGxvbmdlciBiZSBsb2NrZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzdHJlYW0ubG9ja2VkLCAnc3RyZWFtIHNob3VsZCBy
ZW1haW4gbG9ja2VkJyk7CiAgICAgICAgICAgICAgICAgdGVzdDMuZG9uZSgpOwogICAgICAgICAg
ICAgfSksCiAgICAgICAgICAgICB0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7IGFzc2VydF91
bnJlYWNoZWQoJ3JlYWRlciBjbG9zZWQgc2hvdWxkIG5vdCByZWplY3QnKTsgfSkKQEAgLTkyMyw0
NSArOTc3LDQzIEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2VkUmVhZGVyKGxh
YmVsLCBmYWN0b3J5LCBjaHVua3MpIHsKIAogICAgICAgICByZWFkZXIucmVhZCgpOwogICAgICAg
ICByZWFkZXIucmVhZCgpOwotICAgICAgICByZWFkQ2FsbGVkID0gdHJ1ZTsKICAgICB9KTsKIAot
ICAgIHZhciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBhZnRlciB0aGUg
c3RyZWFtIGlzIGNsb3NlZCBzaG91bGQgZG8gbm90aGluZycpOworICAgIHZhciB0ZXN0NCA9IGFz
eW5jX3Rlc3QoJ3JlbGVhc2luZyB0aGUgbG9jayBhZnRlciB0aGUgc3RyZWFtIGlzIGNsb3NlZCBz
aG91bGQgY2F1c2UgbG9ja2VkIHRvIGJlY29tZSBmYWxzZScpOwogICAgIHRlc3Q0LnN0ZXAoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwotICAgICAgICB2
YXIgcmVhZENhbGxlZCA9IGZhbHNlOworICAgICAgICB2YXIgeyBzdHJlYW0sIHJlYWRlciB9ID0g
ZmFjdG9yeSgpOwogCiAgICAgICAgIHJlYWRlci5jbG9zZWQudGhlbih0ZXN0NC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShyZWFkQ2FsbGVkKTsKKyAgICAg
ICAgICAgIGFzc2VydF90cnVlKHN0cmVhbS5sb2NrZWQsICd0aGUgc3RyZWFtIHNob3VsZCBzdGFy
dCBsb2NrZWQnKTsKICAgICAgICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOyAvLyBSZWxlYXNp
bmcgdGhlIGxvY2sgYWZ0ZXIgcmVhZGVyIGNsb3NlZCBzaG91bGQgbm90IHRocm93LgorICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHN0cmVhbS5sb2NrZWQsICd0aGUgc3RyZWFtIHNob3VsZCBlbmQg
dW5sb2NrZWQnKTsKICAgICAgICAgICAgIHRlc3Q0LmRvbmUoKTsKICAgICAgICAgfSkpOwogCiAg
ICAgICAgIHJlYWRlci5yZWFkKCk7CiAgICAgICAgIHJlYWRlci5yZWFkKCk7Ci0gICAgICAgIHJl
YWRDYWxsZWQgPSB0cnVlOwogICAgIH0pOwogCi0gICAgdmFyIHRlc3Q1ID0gYXN5bmNfdGVzdCgn
cmVsZWFzaW5nIHRoZSBsb2NrIHNob3VsZCBjYXVzZSByZWFkKCkgdG8gYWN0IGFzIGlmIHRoZSBz
dHJlYW0gaXMgY2xvc2VkJyk7CisgICAgdmFyIHRlc3Q1ID0gYXN5bmNfdGVzdCgncmVsZWFzaW5n
IHRoZSBsb2NrIHNob3VsZCBjYXVzZSBmdXJ0aGVyIHJlYWQoKSBjYWxscyB0byByZWplY3Qgd2l0
aCBhIFR5cGVFcnJvcicsIHsgdGltZW91dDogNTB9KTsKICAgICB0ZXN0NS5zdGVwKGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgeyByZWFkZXIgfSA9IGZhY3RvcnkoKTsKICAgICAgICAgdmFyIHBy
b21pc2VDYWxscyA9IDA7CisgICAgICAgIHZhciB7IHJlYWRlciB9ID0gZmFjdG9yeSgpOwogCiAg
ICAgICAgIHJlYWRlci5yZWxlYXNlTG9jaygpOwogCi0gICAgICAgIHJlYWRlci5yZWFkKCkudGhl
bih0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24ocikgewotICAgICAgICAgICAgYXNzZXJ0X29iamVj
dF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdmaXJzdCByZWFk
KCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VD
YWxsczsKKyAgICAgICAgcmVhZGVyLnJlYWQoKS5jYXRjaCh0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeyB0aHJvdyBlOyB9LCAnZmlyc3QgcmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCBhIFR5
cGVFcnJvcicpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscygrK3Byb21pc2VDYWxscywgMSk7
CiAgICAgICAgIH0pKTsKLSAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVuKHRlc3Q1LnN0ZXBfZnVu
YyhmdW5jdGlvbihyKSB7Ci0gICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhyLCB7IHZh
bHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSwgJ3NlY29uZCByZWFkKCkgc2hvdWxkIHJldHVy
biBjbG9zZWQgcmVzdWx0Jyk7Ci0gICAgICAgICAgICArK3Byb21pc2VDYWxsczsKKyAgICAgICAg
cmVhZGVyLnJlYWQoKS5jYXRjaCh0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyB0aHJvdyBl
OyB9LCAnc2Vjb25kIHJlYWQoKSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3InKTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDIpOwogICAgICAgICB9KSk7
Ci0gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24ocikg
ewotICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMociwgeyB2YWx1ZTogdW5kZWZpbmVk
LCBkb25lOiB0cnVlIH0sICd0aGlyZCByZWFkKCkgc2hvdWxkIHJldHVybiBjbG9zZWQgcmVzdWx0
Jyk7CisgICAgICAgIHJlYWRlci5yZWFkKCkuY2F0Y2godGVzdDUuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsgdGhyb3cgZTsgfSwgJ3RoaXJkIHJlYWQoKSBzaG91bGQgcmVqZWN0IHdpdGggYSBUeXBl
RXJyb3InKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ2FsbHMsIDMpOwog
ICAgICAgICAgICAgdGVzdDUuZG9uZSgpOwotICAgICAgICB9KSkKKyAgICAgICAgfSkpOwogICAg
IH0pOwogCiAgICAgdmFyIHRlc3Q2ID0gYXN5bmNfdGVzdCgncmVhZGVyXCdzIGNsb3NlZCBwcm9w
ZXJ0eSBhbHdheXMgcmV0dXJucyB0aGUgc2FtZSBwcm9taXNlJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>