<?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>148304</bug_id>
          
          <creation_ts>2015-08-21 05:40:18 -0700</creation_ts>
          <short_desc>[Streams API] Add readable stream templated tests for writable streams</short_desc>
          <delta_ts>2015-09-14 01:36:10 -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>
          
          <blocked>148305</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>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119729</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-08-21 05:40:18 -0700</bug_when>
    <thetext>[Streams API] Add readable stream templated tests for writable streams</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119730</commentid>
    <comment_count>1</comment_count>
      <attachid>259609</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-08-21 05:41:06 -0700</bug_when>
    <thetext>Created attachment 259609
Patch

Added readable stream templated tests for writable streams.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124895</commentid>
    <comment_count>2</comment_count>
      <attachid>260928</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-10 07:24:21 -0700</bug_when>
    <thetext>Created attachment 260928
Patch

Increased some timeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125573</commentid>
    <comment_count>3</comment_count>
      <attachid>260928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 01:36:06 -0700</bug_when>
    <thetext>Comment on attachment 260928
Patch

Clearing flags on attachment: 260928

Committed r189693: &lt;http://trac.webkit.org/changeset/189693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125574</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 01:36:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259609</attachid>
            <date>2015-08-21 05:41:06 -0700</date>
            <delta_ts>2015-09-10 07:24:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148304-20150821144100.patch</filename>
            <type>text/plain</type>
            <size>24805</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjkyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODVmZTJmZmY0ZmJiNmEwMGUxMzMy
OTgxODExYzE2NDg0NzFhOGRlMS4uZjI0Mzg2ZWNmODM4YjhjNDhhODVjODA4MTM4YTJjZjg2N2Vk
Y2NiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA4LTIxICBYYWJpZXIgUm9kcmlndWV6
IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBB
ZGQgcmVhZGFibGUgc3RyZWFtIHRlbXBsYXRlZCB0ZXN0cyBmb3Igd3JpdGFibGUgc3RyZWFtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlYW1z
L3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQgbmV3IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0bWw6IE5ldyB3
cml0YWJsZSBzdHJlYW0gdGVzdHMuCisKIDIwMTUtMDgtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFRyZWF0IEVwb2NoIGFzIGludmFsaWQgdmFs
dWUgZm9yICJMYXN0LU1vZGlmaWVkIiBoZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKaW5kZXggNzMwM2JjM2Vi
YTc4ZjcwMzVmZDZmNjdlZjk1ZjYxZDIwZGJlZGFhNi4uN2ZkNDY1NzIwMjY1Nzc3ZWIyMWJkZTRi
Njc3NDY0YTUxMDA0MzJkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVu
Y2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFi
bGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3RlZC50eHQKQEAgLTE4LDYgKzE4LDggQEAgUEFTUyBS
dW5uaW5nIHRlbXBsYXRlZFJTQ2xvc2VkIHdpdGggUmVhZGFibGVTdHJlYW0gKGNsb3NlZCB2aWEg
Y2FsbCBpbiBzdGFydCkKIFBBU1MgY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1
bGZpbGxlZCBwcm9taXNlIGVhY2ggdGltZSAKIFBBU1MgbG9ja2VkIHNob3VsZCBiZSBmYWxzZSAK
IFBBU1MgZ2V0UmVhZGVyKCkgc2hvdWxkIGJlIE9LIAorRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJs
ZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgc2hvdWxkIGNsb3NlIHRoZSB3cml0YWJsZSBz
dHJlYW0gQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHRv
IGEgV3JpdGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHdpdGggeyBwcmV2ZW50Q2xv
c2U6IHRydWUgfSBzaG91bGQgZG8gbm90aGluZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJs
ZVN0cmVhbQogUEFTUyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMs
IHNpbmNlIHRoZXkgYXJlIGFsbCBhdXRvLXJlbGVhc2VkIAogUEFTUyBSdW5uaW5nIHRlbXBsYXRl
ZFJTQ2xvc2VkUmVhZGVyIHdpdGggUmVhZGFibGVTdHJlYW0gcmVhZGVyIChjbG9zZWQgYmVmb3Jl
IGdldHRpbmcgcmVhZGVyKSAKIFBBU1MgcmVhZCgpIHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1
ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gCkBAIC0zNSw2ICszNyw4IEBAIFBBU1MgUnVubmlu
ZyB0ZW1wbGF0ZWRSU0Nsb3NlZCB3aXRoIFJlYWRhYmxlU3RyZWFtIChjbG9zZWQgdmlhIGNhbmNl
bCkKIFBBU1MgY2FuY2VsKCkgc2hvdWxkIHJldHVybiBhIGRpc3RpbmN0IGZ1bGZpbGxlZCBwcm9t
aXNlIGVhY2ggdGltZSAKIFBBU1MgbG9ja2VkIHNob3VsZCBiZSBmYWxzZSAKIFBBU1MgZ2V0UmVh
ZGVyKCkgc2hvdWxkIGJlIE9LIAorRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0
aGUgd3JpdGFibGUgc3RhdGUgc2hvdWxkIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHRvIGEgV3JpdGFibGVT
dHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBz
aG91bGQgZG8gbm90aGluZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQogUEFT
UyBzaG91bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMsIHNpbmNlIHRoZXkg
YXJlIGFsbCBhdXRvLXJlbGVhc2VkIAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTQ2xvc2VkUmVh
ZGVyIHdpdGggUmVhZGFibGVTdHJlYW0gcmVhZGVyIChjbG9zZWQgdmlhIGNhbmNlbCBhZnRlciBn
ZXR0aW5nIHJlYWRlcikgCiBQQVNTIHJlYWQoKSBzaG91bGQgZnVsZmlsbCB3aXRoIHsgdmFsdWU6
IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9IApAQCAtNDMsNiArNDcsNyBAQCBQQVNTIHJlYWQoKSBz
aG91bGQgd29yayB3aGVuIHVzZWQgd2l0aGluIGFub3RoZXIgcmVhZCgpIGZ1bGZpbGwgY2FsbGJh
Y2sKIFBBU1MgY2xvc2VkIHNob3VsZCBmdWxmaWxsIHdpdGggdW5kZWZpbmVkIAogUEFTUyBjYW5j
ZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFjaCB0aW1l
IAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTRXJyb3JlZCB3aXRoIFJlYWRhYmxlU3RyZWFtIChl
cnJvcmVkIHZpYSBjYWxsIGluIHN0YXJ0KSAKK0ZBSUwgcGlwaW5nIHRvIGEgV3JpdGFibGVTdHJl
YW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFt
IENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCiBQQVNTIGdldFJlYWRlcigpIHNo
b3VsZCByZXR1cm4gYSByZWFkZXIgdGhhdCBhY3RzIGVycm9yZWQgCiBQQVNTIHJlYWQoKSB0d2lj
ZSBzaG91bGQgZ2l2ZSB0aGUgZXJyb3IgZWFjaCB0aW1lIAogUEFTUyBsb2NrZWQgc2hvdWxkIGJl
IGZhbHNlIApAQCAtNTIsOSArNTcsMTQgQEAgUEFTUyBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEg
ZGlzdGluY3QgcmVqZWN0ZWQgcHJvbWlzZSBlYWNoIHRpbWUKIFBBU1MgcmVhZGVyIGNhbmNlbCgp
IHNob3VsZCByZXR1cm4gYSBkaXN0aW5jdCByZWplY3RlZCBwcm9taXNlIGVhY2ggdGltZSAKIFBB
U1Mgc2hvdWxkIGJlIGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5
IGFyZSBhbGwgYXV0by1yZWxlYXNlZCAKIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWQg
d2l0aCBSZWFkYWJsZVN0cmVhbSAoZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJv
bWlzZSBpbiBzdGFydCkgCitGQUlMIHBpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3
cml0YWJsZSBzdGF0ZSBzaG91bGQgYWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQogUEFTUyBnZXRSZWFkZXIoKSBzaG91bGQgcmV0dXJu
IGEgcmVhZGVyIHRoYXQgYWN0cyBlcnJvcmVkIAogUEFTUyByZWFkKCkgdHdpY2Ugc2hvdWxkIGdp
dmUgdGhlIGVycm9yIGVhY2ggdGltZSAKIFBBU1MgbG9ja2VkIHNob3VsZCBiZSBmYWxzZSAKK1BB
U1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRBc3luY09ubHkgd2l0aCBSZWFkYWJsZVN0cmVh
bSAoZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJvbWlzZSBpbiBzdGFydCkgcmVh
ZGVyIAorRkFJTCBwaXBpbmcgd2l0aCBubyBvcHRpb25zIENhbid0IGZpbmQgdmFyaWFibGU6IFdy
aXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudEFib3J0OiBmYWxzZSB9IENh
bid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJl
dmVudEFib3J0OiB0cnVlIH0gQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIFBB
U1MgUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSAo
ZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJvbWlzZSBpbiBzdGFydCkgcmVhZGVy
IAogUEFTUyBjbG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvciAKIFBBU1MgcmVhZCgp
IHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3IgCkBAIC02OSw2ICs3OSwyNyBAQCBQQVNTIGNh
bGxpbmcgcmVhZCgpIHR3aWNlIHdpdGhvdXQgd2FpdGluZyB3aWxsIGV2ZW50dWFsbHkgZ2l2ZSBi
b3RoIGNodW5rcwogUEFTUyBjYWxsaW5nIHJlYWQoKSB0d2ljZSB3aXRoIHdhaXRpbmcgd2lsbCBl
dmVudHVhbGx5IGdpdmUgYm90aCBjaHVua3MgCiBQQVNTIHJlYWQoKSBzaG91bGQgcmV0dXJuIGRp
c3RpbmN0IHByb21pc2VzIGVhY2ggdGltZSAKIFBBU1MgY2FuY2VsKCkgYWZ0ZXIgYSByZWFkKCkg
c2hvdWxkIHN0aWxsIGdpdmUgdGhhdCBzaW5nbGUgcmVhZCByZXN1bHQgCitQQVNTIFJ1bm5pbmcg
dGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQgd2l0aCBSZWFkYWJsZVN0cmVhbSAodHdvIGNodW5r
cyBlbnF1ZXVlZCwgdGhlbiBjbG9zZWQpIAorRkFJTCBwaXBpbmcgd2l0aCBubyBvcHRpb25zIGFu
ZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJl
YW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IGZhbHNlIH0gYW5kIG5vIGRlc3Rp
bmF0aW9uIGVycm9ycyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBw
aXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9IGFuZCBubyBkZXN0aW5hdGlvbiBlcnJv
cnMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGgg
eyBwcmV2ZW50Q2xvc2U6IGZhbHNlIH0gYW5kIGEgZGVzdGluYXRpb24gd2l0aCB0aGF0IGVycm9y
cyBzeW5jaHJvbm91c2x5IENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlM
IHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiB0cnVlIH0gYW5kIGEgZGVzdGluYXRpb24gd2l0
aCB0aGF0IGVycm9ycyBzeW5jaHJvbm91c2x5IENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxl
U3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiB0cnVlIH0gYW5kIGEgZGVz
dGluYXRpb24gdGhhdCBlcnJvcnMgb24gdGhlIGxhc3QgY2h1bmsgQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogV3JpdGFibGVTdHJlYW0KK1BBU1MgUnVubmluZyB0ZW1wbGF0ZWRSU1R3b0NodW5rc0Nsb3Nl
ZCB3aXRoIFJlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkIGFzeW5jLCB0aGVuIGNs
b3NlZCkgCitGQUlMIHBpcGluZyB3aXRoIG5vIG9wdGlvbnMgYW5kIG5vIGRlc3RpbmF0aW9uIGVy
cm9ycyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0
aCB7IHByZXZlbnRDbG9zZTogZmFsc2UgfSBhbmQgbm8gZGVzdGluYXRpb24gZXJyb3JzIENhbid0
IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVu
dENsb3NlOiB0cnVlIH0gYW5kIG5vIGRlc3RpbmF0aW9uIGVycm9ycyBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogZmFs
c2UgfSBhbmQgYSBkZXN0aW5hdGlvbiB3aXRoIHRoYXQgZXJyb3JzIHN5bmNocm9ub3VzbHkgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2
ZW50Q2xvc2U6IHRydWUgfSBhbmQgYSBkZXN0aW5hdGlvbiB3aXRoIHRoYXQgZXJyb3JzIHN5bmNo
cm9ub3VzbHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5n
IHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBhbmQgYSBkZXN0aW5hdGlvbiB0aGF0IGVycm9y
cyBvbiB0aGUgbGFzdCBjaHVuayBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQor
UEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2VkIHdpdGggUmVhZGFibGVTdHJl
YW0gKHR3byBjaHVua3MgZW5xdWV1ZWQgdmlhIHB1bGwsIHRoZW4gY2xvc2VkKSAKK0ZBSUwgcGlw
aW5nIHdpdGggbm8gb3B0aW9ucyBhbmQgbm8gZGVzdGluYXRpb24gZXJyb3JzIENhbid0IGZpbmQg
dmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3Nl
OiBmYWxzZSB9IGFuZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
V3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBh
bmQgbm8gZGVzdGluYXRpb24gZXJyb3JzIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3Ry
ZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiBmYWxzZSB9IGFuZCBhIGRlc3Rp
bmF0aW9uIHdpdGggdGhhdCBlcnJvcnMgc3luY2hyb25vdXNseSBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9
IGFuZCBhIGRlc3RpbmF0aW9uIHdpdGggdGhhdCBlcnJvcnMgc3luY2hyb25vdXNseSBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRD
bG9zZTogdHJ1ZSB9IGFuZCBhIGRlc3RpbmF0aW9uIHRoYXQgZXJyb3JzIG9uIHRoZSBsYXN0IGNo
dW5rIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCiBQQVNTIFJ1bm5pbmcgdGVt
cGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSAodHdvIGNo
dW5rcyBlbnF1ZXVlZCwgdGhlbiBjbG9zZWQpIHJlYWRlciAKIFBBU1MgdGhpcmQgcmVhZCgpLCB3
aXRob3V0IHdhaXRpbmcsIHNob3VsZCBnaXZlIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1
ZSB9IAogUEFTUyB0aGlyZCByZWFkLCB3aXRoIHdhaXRpbmcsIHNob3VsZCBnaXZlIHsgdmFsdWU6
IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC5odG1s
IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLXRlbXBsYXRlZC5odG1sCmluZGV4IDdiNzAyYWIwOTgzYTY1OTdmYmI3NjZhMzU3MzI0
ZjM2OTBkOTRkZTkuLjU2MWE1YTAyZjk2ZDVkZGM3NzE4MmI1NzU2NDVmY2RhYTMwYjY0ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3Jl
YWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0bWwKQEAg
LTU4LDYgKzU4LDY5IEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTQ2xvc2VkKGxhYmVsLCBmYWN0b3J5
KSB7CiAgICAgICAgIHJzLmdldFJlYWRlcigpOyAvLyBnZXRSZWFkZXIoKSBzaG91bGQgbm90IHRo
cm93LgogICAgIH0sICdnZXRSZWFkZXIoKSBzaG91bGQgYmUgT0snKTsKIAorICAgIHZhciB0ZXN0
MiA9IGFzeW5jX3Rlc3QoJ3BpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3cml0YWJs
ZSBzdGF0ZSBzaG91bGQgY2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbScpOworICAgIHRlc3QyLnN0
ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBjbG9zZUNhbGxlZCA9IGZhbHNlOworCisgICAg
ICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICB2YXIgc3RhcnRQcm9taXNlID0gUHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSh7Cisg
ICAgICAgICAgICBzdGFydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXJ0UHJvbWlzZTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnVW5leHBlY3RlZCB3cml0ZSBj
YWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGNsb3NlQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBhYm9ydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgnVW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0p
OworCisgICAgICAgIHN0YXJ0UHJvbWlzZS50aGVuKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICd3cml0YWJsZScsICd3cml0
YWJsZSBzdHJlYW0gc2hvdWxkIHN0YXJ0IGluIHdyaXRhYmxlIHN0YXRlJyk7CisKKyAgICAgICAg
ICAgIHJldHVybiBycy5waXBlVG8od3MpLnRoZW4odGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGNsb3NlQ2FsbGVkKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHdzLnN0YXRlLCAnY2xvc2VkJywgJ3dyaXRhYmxlIHN0cmVhbSBz
aG91bGQgYmVjb21lIGNsb3NlZCcpOworICAgICAgICAgICAgICAgIHRlc3QyLmRvbmUoJ3VuZGVy
bHlpbmcgc291cmNlIGNsb3NlIHNob3VsZCBiZSBjYWxsZWQnKTsKKyAgICAgICAgICAgIH0pKTsK
KyAgICAgICAgfSkpLmNhdGNoKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7IGFzc2VydF91
bnJlYWNoZWQoZSk7IH0pKTsKKyAgICB9KTsKKworICAgIHZhciB0ZXN0MyA9IGFzeW5jX3Rlc3Qo
J3BpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3cml0YWJsZSBzdGF0ZSB3aXRoIHsg
cHJldmVudENsb3NlOiB0cnVlIH0gc2hvdWxkIGRvIG5vdGhpbmcnKTsKKyAgICB0ZXN0My5zdGVw
KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFy
IHN0YXJ0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICB2YXIgd3MgPSBuZXcg
V3JpdGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHJldHVybiBzdGFydFByb21pc2U7CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgd3JpdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQo
J1VuZXhwZWN0ZWQgd3JpdGUgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNs
b3NlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdVbmV4
cGVjdGVkIGNsb3NlIGNhbGwnKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhYm9ydDog
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnVW5leHBlY3Rl
ZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHN0
YXJ0UHJvbWlzZS50aGVuKHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICd3cml0YWJsZScsICd3cml0YWJsZSBzdHJlYW0gc2hv
dWxkIHN0YXJ0IGluIHdyaXRhYmxlIHN0YXRlJyk7CisKKyAgICAgICAgICAgIHJldHVybiBycy5w
aXBlVG8od3MsIHsgcHJldmVudENsb3NlOiB0cnVlIH0pLnRoZW4odGVzdDMuc3RlcF9mdW5jKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICd3cml0
YWJsZScsICd3cml0YWJsZSBzdHJlYW0gc2hvdWxkIHN0aWxsIGJlIHdyaXRhYmxlJyk7CisgICAg
ICAgICAgICAgICAgdGVzdDMuZG9uZSgncGlwZVRvIHByb21pc2Ugc2hvdWxkIGJlIGZ1bGZpbGxl
ZCcpOworICAgICAgICAgICAgfSkpOworICAgICAgICB9KSkuY2F0Y2godGVzdDMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsgYXNzZXJ0X3VucmVhY2hlZChlKTsgfSkpOworICAgIH0pOworCiAgICAg
dGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwogCkBAIC03Miw0
NCArMTM1LDc4IEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTRXJyb3JlZChsYWJlbCwgZmFjdG9yeSwg
ZXJyb3IpIHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0sICdSdW5uaW5nIHRlbXBsYXRl
ZFJTRXJyb3JlZCB3aXRoICcgKyBsYWJlbCk7CiAKLSAgICB2YXIgdGVzdDEgPSBhc3luY190ZXN0
KCdnZXRSZWFkZXIoKSBzaG91bGQgcmV0dXJuIGEgcmVhZGVyIHRoYXQgYWN0cyBlcnJvcmVkJyk7
CisgICAgdmFyIHRlc3QxID0gYXN5bmNfdGVzdCgncGlwaW5nIHRvIGEgV3JpdGFibGVTdHJlYW0g
aW4gdGhlIHdyaXRhYmxlIHN0YXRlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtJyk7
CiAgICAgdGVzdDEuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgp
OworCisgICAgICAgIHZhciBzdGFydFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAg
ICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHN0YXJ0OiBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnRQcm9taXNlOworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCdVbmV4cGVjdGVkIHdyaXRlIGNhbGwnKTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBjbG9zZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X3JlYWNoZWQoJ1VuZXhwZWN0ZWQgY2xvc2UgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIGFib3J0OiBmdW5jdGlvbihyZWFzb24pIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlYXNvbiwgZXJyb3IpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAg
ICAgICBzdGFydFByb21pc2UudGhlbih0ZXN0MS5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHdzLnN0YXRlLCAnd3JpdGFibGUnKTsKKworICAgICAgICAg
ICAgcnMucGlwZVRvKHdzKS50aGVuKAorICAgICAgICAgICAgICAgIHRlc3QxLnN0ZXBfZnVuYyhm
dW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgncGlwZVRvIHByb21pc2Ugc2hvdWxkIG5vdCBi
ZSBmdWxmaWxsZWQnKTsgfSksCisgICAgICAgICAgICAgICAgdGVzdDEuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJvciwgJ3Bp
cGVUbyBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCB3aXRoIHRoZSBwYXNzZWQgZXJyb3InKTsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ2Vycm9yZWQnLCAn
d3JpdGFibGUgc3RyZWFtIHNob3VsZCBiZWNvbWUgZXJyb3JlZCcpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0MS5kb25lKCk7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICk7Cisg
ICAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIHZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ2dldFJl
YWRlcigpIHNob3VsZCByZXR1cm4gYSByZWFkZXIgdGhhdCBhY3RzIGVycm9yZWQnKTsKKyAgICB0
ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CiAgICAg
ICAgIHZhciBwcm9taXNlc0NvdW50ID0gMDsKIAogICAgICAgICB2YXIgcmVhZGVyID0gcnMuZ2V0
UmVhZGVyKCk7CiAKLSAgICAgICAgcmVhZGVyLmNsb3NlZC5jYXRjaCh0ZXN0MS5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICByZWFkZXIuY2xvc2VkLmNhdGNoKHRlc3QyLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVh
ZGVyLmNsb3NlZCBzaG91bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yJyk7CiAgICAgICAgICAgICBp
ZiAoKytwcm9taXNlc0NvdW50ID09PSAyKQotICAgICAgICAgICAgICAgIHRlc3QxLmRvbmUoKTsK
KyAgICAgICAgICAgICAgICB0ZXN0Mi5kb25lKCk7CiAgICAgICAgIH0pKTsKLSAgICAgICAgcmVh
ZGVyLnJlYWQoKS5jYXRjaCh0ZXN0MS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICBy
ZWFkZXIucmVhZCgpLmNhdGNoKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CiAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVhZGVyLnJlYWQoKSBzaG91bGQgcmVqZWN0
IHdpdGggdGhlIGVycm9yJyk7CiAgICAgICAgICAgICBpZiAoKytwcm9taXNlc0NvdW50ID09PSAy
KQotICAgICAgICAgICAgICAgIHRlc3QxLmRvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0Mi5k
b25lKCk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKIAotICAgIHZhciB0ZXN0MiA9IGFzeW5jX3Rl
c3QoJ3JlYWQoKSB0d2ljZSBzaG91bGQgZ2l2ZSB0aGUgZXJyb3IgZWFjaCB0aW1lJyk7Ci0gICAg
dGVzdDIuc3RlcChmdW5jdGlvbigpIHsKKyAgICB2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdyZWFk
KCkgdHdpY2Ugc2hvdWxkIGdpdmUgdGhlIGVycm9yIGVhY2ggdGltZScpOworICAgIHRlc3QzLnN0
ZXAoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKICAgICAgICAgdmFy
IHByb21pc2VDb3VudCA9IDA7CiAKICAgICAgICAgdmFyIHJlYWRlciA9IHJzLmdldFJlYWRlcigp
OwogCi0gICAgICAgIHJlYWRlci5yZWFkKCkuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgcmVhZGVyLnJlYWQoKS5jYXRjaCh0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJvciwgJ3JlYWRlci5yZWFk
KCkgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvcicpOwogICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscygrK3Byb21pc2VDb3VudCwgMSk7CiAgICAgICAgIH0pKTsKLSAgICAgICAgcmVhZGVyLnJl
YWQoKS5jYXRjaCh0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICByZWFkZXIu
cmVhZCgpLmNhdGNoKHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVhZGVyLnJlYWQoKSBzaG91bGQgcmVqZWN0IHdpdGgg
dGhlIGVycm9yJyk7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKCsrcHJvbWlzZUNvdW50LCAy
KTsKICAgICAgICAgfSkpOwotICAgICAgICByZWFkZXIuY2xvc2VkLmNhdGNoKHRlc3QyLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHJlYWRlci5jbG9zZWQuY2F0Y2godGVzdDMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgZXJyb3Is
ICdyZWFkZXIuY2xvc2VkIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3InKTsKICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ291bnQsIDMpOwotICAgICAgICAgICAgdGVzdDIu
ZG9uZSgpOworICAgICAgICAgICAgdGVzdDMuZG9uZSgpOwogICAgICAgICB9KSk7CiAgICB9KTsK
IApAQCAtMTIwLDYgKzIxNyw4MSBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vycm9yZWQobGFiZWws
IGZhY3RvcnksIGVycm9yKSB7CiAgICAgfSwgJ2xvY2tlZCBzaG91bGQgYmUgZmFsc2UnKTsKIH07
CiAKK2Z1bmN0aW9uIHRlbXBsYXRlZFJTRXJyb3JlZEFzeW5jT25seShsYWJlbCwgZmFjdG9yeSwg
ZXJyb3IpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIH0sICdSdW5uaW5nIHRlbXBsYXRl
ZFJTRXJyb3JlZEFzeW5jT25seSB3aXRoICcgKyBsYWJlbCk7CisKKyAgICB2YXIgdGVzdDEgPSBh
c3luY190ZXN0KCdwaXBpbmcgd2l0aCBubyBvcHRpb25zJyk7CisgICAgdGVzdDEuc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIGNsb3NlQ2FsbGVkID0gZmFsc2U7CisKKyAgICAgICAgdmFy
IHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSh7
CisgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24ocikgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMociwgZXJyb3IsICdyZWFzb24gcGFzc2VkIHRvIGFib3J0IHNob3VsZCBlcXVhbCB0
aGUgc291cmNlIGVycm9yJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAg
IHJzLnBpcGVUbyh3cykuY2F0Y2godGVzdDEuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICdlcnJvcmVkJywgJ2Rlc3RpbmF0aW9uIHNo
b3VsZCBiZSBlcnJvcmVkJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAn
cmVqZWN0aW9uIHJlYXNvbiBvZiBwaXBlVG9Qcm9taXNlIHNob3VsZCBiZSB0aGUgc291cmNlIGVy
cm9yJyk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjbG9zZUNhbGxlZCk7CisgICAgICAgICAg
ICB0ZXN0MS5kb25lKCk7CisgICAgICAgIH0pKTsKKworICAgICAgICB3cy5jbG9zZWQuY2F0Y2go
dGVzdDEuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZSwgZXJyb3IsICdyZWplY3Rpb24gcmVhc29uIG9mIGRlc3QgY2xvc2VkIHNob3VsZCBiZSB0aGUg
c291cmNlIGVycm9yJyk7CisgICAgICAgICAgICBjbG9zZUNhbGxlZCA9IHRydWU7CisgICAgICAg
IH0pKQorICAgIH0pOworCisgICAgdmFyIHRlc3QyID0gYXN5bmNfdGVzdCgncGlwaW5nIHdpdGgg
eyBwcmV2ZW50QWJvcnQ6IGZhbHNlIH0nKTsKKyAgICB0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICB2YXIgYWJvcnRDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIGNsb3NlUmVqZWN0
ZWQgPSBmYWxzZTsKKworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFy
IHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIGFib3J0OiBmdW5jdGlvbihy
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLCBlcnJvciwgJ3JlYXNvbiBwYXNz
ZWQgdG8gYWJvcnQgc2hvdWxkIGVxdWFsIHRoZSBzb3VyY2UgZXJyb3InKTsKKyAgICAgICAgICAg
ICAgICBhYm9ydENhbGxlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisg
ICAgICAgIHJzLnBpcGVUbyh3cywgeyBwcmV2ZW50QWJvcnQ6IGZhbHNlIH0pLmNhdGNoKHRlc3Qy
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdzLnN0
YXRlLCAnZXJyb3JlZCcsICdkZXN0aW5hdGlvbiBzaG91bGQgYmUgZXJyb3JlZCcpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJvciwgJ3JlamVjdGlvbiByZWFzb24gb2YgcGlwZVRv
UHJvbWlzZSBzaG91bGQgYmUgdGhlIHNvdXJjZSBlcnJvcicpOworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoYWJvcnRDYWxsZWQpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY2xvc2VSZWplY3Rl
ZCk7CisgICAgICAgICAgICB0ZXN0Mi5kb25lKCk7CisgICAgICAgIH0pKTsKKworICAgICAgICB3
cy5jbG9zZWQuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZSwgZXJyb3IsICdyZWplY3Rpb24gcmVhc29uIG9mIGRlc3QgY2xvc2Vk
IHNob3VsZCBiZSB0aGUgc291cmNlIGVycm9yJyk7CisgICAgICAgICAgICBjbG9zZVJlamVjdGVk
ID0gdHJ1ZTsKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgdmFyIHRlc3QzID0gYXN5bmNf
dGVzdCgncGlwaW5nIHdpdGggeyBwcmV2ZW50QWJvcnQ6IHRydWUgfScpOworICAgIHRlc3QzLnN0
ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICB2
YXIgd3MgPSBuZXcgV3JpdGFibGVTdHJlYW0oeworICAgICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3VuZGVybHlpbmcgc2luayBh
Ym9ydCBzaG91bGQgbm90IGJlIGNhbGxlZCcpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KworICAgICAgICBycy5waXBlVG8od3MsIHsgcHJldmVudEFib3J0OiB0cnVlIH0pLmNhdGNoKHRl
c3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdz
LnN0YXRlLCAnd3JpdGFibGUnLCAnZGVzdGluYXRpb24gc2hvdWxkIHJlbWFpbiB3cml0YWJsZScp
OworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJvciwgJ3JlamVjdGlvbiByZWFzb24g
b2YgcGlwZVRvUHJvbWlzZSBzaG91bGQgYmUgdGhlIHNvdXJjZSBlcnJvcicpOworICAgICAgICAg
ICAgdGVzdDMuZG9uZSgpOworICAgICAgICB9KSk7CisgICB9KTsKK307CisKIGZ1bmN0aW9uIHRl
bXBsYXRlZFJTRXJyb3JlZFN5bmNPbmx5KGxhYmVsLCBmYWN0b3J5LCBlcnJvcikgewogICAgIHRl
c3QoZnVuY3Rpb24oKSB7CiAgICAgfSwgJ1J1bm5pbmcgdGVtcGxhdGVkUlNFcnJvcmVkU3luY09u
bHkgd2l0aCAnICsgbGFiZWwpOwpAQCAtMTk4LDYgKzM3MCwxNjQgQEAgZnVuY3Rpb24gdGVtcGxh
dGVkUlNFcnJvcmVkU3luY09ubHkobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgfSwgJ3No
b3VsZCBiZSBhYmxlIHRvIGFjcXVpcmUgbXVsdGlwbGUgcmVhZGVycywgc2luY2UgdGhleSBhcmUg
YWxsIGF1dG8tcmVsZWFzZWQnKTsKIH07CiAKK2Z1bmN0aW9uIHRlbXBsYXRlZFJTVHdvQ2h1bmtz
Q2xvc2VkKGxhYmVsLCBmYWN0b3J5LCBlcnJvcikgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgfSwgJ1J1bm5pbmcgdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQgd2l0aCAnICsgbGFiZWwp
OworCisgICAgdmFyIHRlc3QxID0gYXN5bmNfdGVzdCgncGlwaW5nIHdpdGggbm8gb3B0aW9ucyBh
bmQgbm8gZGVzdGluYXRpb24gZXJyb3JzJyk7CisgICAgdGVzdDEuc3RlcChmdW5jdGlvbigpIHsK
KyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciBjaHVua3NXcml0dGVu
ID0gW107CisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSh7CisgICAgICAgICAg
ICBhYm9ydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgn
dW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgd3Jp
dGU6IGZ1bmN0aW9uKGNodW5rKSB7CisgICAgICAgICAgICAgICAgY2h1bmtzV3JpdHRlbi5wdXNo
KGNodW5rKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgcnMucGlwZVRv
KHdzKS50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMod3Muc3RhdGUsICdjbG9zZWQnLCAnZGVzdGluYXRpb24gc2hvdWxkIGJlIGNsb3Nl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjaHVua3NXcml0dGVuLCBjaHVu
a3MpOworICAgICAgICAgICAgdGVzdDEuZG9uZSgpOworICAgICAgICB9KSk7CisgICAgfSk7CisK
KyAgICB2YXIgdGVzdDIgPSBhc3luY190ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTog
ZmFsc2UgfSBhbmQgbm8gZGVzdGluYXRpb24gZXJyb3JzJyk7CisgICAgdGVzdDIuc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciBjaHVu
a3NXcml0dGVuID0gW107CisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSh7Cisg
ICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgndW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgd3JpdGU6IGZ1bmN0aW9uKGNodW5rKSB7CisgICAgICAgICAgICAgICAgY2h1bmtzV3Jp
dHRlbi5wdXNoKGNodW5rKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAg
cnMucGlwZVRvKHdzKS50aGVuKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICdjbG9zZWQnLCAnZGVzdGluYXRpb24gc2hvdWxk
IGJlIGNsb3NlZCcpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjaHVua3NXcml0
dGVuLCBjaHVua3MpOworICAgICAgICAgICAgdGVzdDIuZG9uZSgpOworICAgICAgICB9KSk7Cisg
ICAgfSk7CisKKyAgICB2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZl
bnRDbG9zZTogdHJ1ZSB9IGFuZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMnKTsKKyAgICB0ZXN0My5z
dGVwKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAg
dmFyIGNodW5rc1dyaXR0ZW4gPSBbXTsKKyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3Ry
ZWFtKHsKKyAgICAgICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCd1bmV4cGVjdGVkIGNsb3NlIGNhbGwnKTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgndW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKGNodW5rKSB7CisgICAgICAgICAgICAgICAgY2h1bmtz
V3JpdHRlbi5wdXNoKGNodW5rKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAg
ICAgcnMucGlwZVRvKHdzLCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9KS50aGVuKHRlc3QzLnN0ZXBf
ZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICd3
cml0YWJsZScsICdkZXN0aW5hdGlvbiBzaG91bGQgYmUgd3JpdGFibGUnKTsKKyAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2h1bmtzV3JpdHRlbiwgY2h1bmtzKTsKKyAgICAgICAgICAg
IHRlc3QzLmRvbmUoKTsKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgdmFyIHRlc3Q0ID0g
YXN5bmNfdGVzdCgncGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IGZhbHNlIH0gYW5kIGEgZGVz
dGluYXRpb24gd2l0aCB0aGF0IGVycm9ycyBzeW5jaHJvbm91c2x5Jyk7CisgICAgdGVzdDQuc3Rl
cChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZh
ciB0aGVFcnJvciA9IG5ldyBFcnJvcignISEhJyk7CisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0
YWJsZVN0cmVhbSh7CisgICAgICAgICAgICBjbG9zZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgndW5leHBlY3RlZCBjbG9zZSBjYWxsJyk7CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGFzc2VydF91bnJlYWNoZWQoJ3VuZXhwZWN0ZWQgYWJvcnQgY2FsbCcpOworICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0aHJv
dyB0aGVFcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgcnMucGlw
ZVRvKHdzLCB7IHByZXZlbnRDbG9zZTogZmFsc2UgfSkudGhlbigKKyAgICAgICAgICAgIHRlc3Q0
LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgncGlwZVRvIHByb21pc2Ug
c2hvdWxkIG5vdCBmdWxmaWxsJyk7IH0pLAorICAgICAgICAgICAgdGVzdDQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIHRoZUVycm9yLCAn
cGlwZVRvIHByb21pc2Ugc2hvdWxkIHJlamVjdCB3aXRoIHRoZSB3cml0ZSBlcnJvcicpOworICAg
ICAgICAgICAgICAgIHRlc3Q0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICk7Cisg
ICAgfSk7CisKKyAgICB2YXIgdGVzdDUgPSBhc3luY190ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZl
bnRDbG9zZTogdHJ1ZSB9IGFuZCBhIGRlc3RpbmF0aW9uIHdpdGggdGhhdCBlcnJvcnMgc3luY2hy
b25vdXNseScpOworICAgIHRlc3Q1LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBycyA9
IGZhY3RvcnkoKTsKKworICAgICAgICB2YXIgdGhlRXJyb3IgPSBuZXcgRXJyb3IoJyEhIScpOwor
ICAgICAgICB2YXIgd3MgPSBuZXcgV3JpdGFibGVTdHJlYW0oeworICAgICAgICAgICAgY2xvc2U6
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3VuZXhwZWN0
ZWQgY2xvc2UgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFib3J0OiBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCd1bmV4cGVjdGVkIGFi
b3J0IGNhbGwnKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgdGhlRXJyb3I7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworCisgICAgICAgIHJzLnBpcGVUbyh3cywgeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSku
dGhlbigKKyAgICAgICAgICAgIHRlc3Q1LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgYXNzZXJ0X3Vu
cmVhY2hlZCgncGlwZVRvIHByb21pc2Ugc2hvdWxkIG5vdCBmdWxmaWxsJyk7IH0pLAorICAgICAg
ICAgICAgdGVzdDUuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUsIHRoZUVycm9yLCAncGlwZVRvIHByb21pc2Ugc2hvdWxkIHJlamVjdCB3aXRo
IHRoZSB3cml0ZSBlcnJvcicpOworICAgICAgICAgICAgICAgIHRlc3Q1LmRvbmUoKTsKKyAgICAg
ICAgICAgIH0pCisgICAgICAgICk7CisgICAgfSk7CisKKyAgICB2YXIgdGVzdDYgPSBhc3luY190
ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9IGFuZCBhIGRlc3RpbmF0aW9u
IHRoYXQgZXJyb3JzIG9uIHRoZSBsYXN0IGNodW5rJyk7CisgICAgdGVzdDYuc3RlcChmdW5jdGlv
bigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciB0aGVFcnJv
ciA9IG5ldyBFcnJvcignISEhJyk7CisgICAgICAgIHZhciBjaHVua0NvdW50ZXIgPSAwOworICAg
ICAgICB2YXIgd3MgPSBuZXcgV3JpdGFibGVTdHJlYW0oCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCd1bmV4cGVjdGVkIGNsb3NlIGNhbGwnKTsKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIGFib3J0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZCgndW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgrK2NodW5rQ291bnRlciA9PT0gMikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHRlc3Q2LnN0ZXBfZnVuYyhmdW5jdGlvbihyLCByZWplY3Qp
IHsgc2V0VGltZW91dCh0ZXN0Ni5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7IHJlamVjdCh0aGVFcnJv
cik7IH0pLCA1MCk7IH0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGlnaFdh
dGVyTWFyazogSW5maW5pdHksCisgICAgICAgICAgICAgICAgc2l6ZTogZnVuY3Rpb24oKSB7IHJl
dHVybiAxOyB9CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgcnMucGlwZVRv
KHdzLCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9KS50aGVuKAorICAgICAgICAgICAgdGVzdDYuc3Rl
cF9mdW5jKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCdwaXBlVG8gcHJvbWlzZSBzaG91
bGQgbm90IGZ1bGZpbGwnKTsgfSksCisgICAgICAgICAgICB0ZXN0Ni5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgdGhlRXJyb3IsICdwaXBl
VG8gcHJvbWlzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIHdyaXRlIGVycm9yJyk7CisgICAgICAg
ICAgICAgICAgdGVzdDYuZG9uZSgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgKTsKKyAgICB9
KTsKK307CisKIGZ1bmN0aW9uIHRlbXBsYXRlZFJTRW1wdHlSZWFkZXIobGFiZWwsIGZhY3Rvcnkp
IHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0sICdSdW5uaW5nIHRlbXBsYXRlZFJTRW1w
dHlSZWFkZXIgd2l0aCAnICsgbGFiZWwpOwpAQCAtNzQxLDYgKzEwNzEsMTMgQEAgdGVtcGxhdGVk
UlNFcnJvcmVkKCdSZWFkYWJsZVN0cmVhbSAoZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0
ZWQgcHJvbWlzZSBpbgogICAgIHRoZUVycm9yCiApOwogCit0ZW1wbGF0ZWRSU0Vycm9yZWRBc3lu
Y09ubHkoJ1JlYWRhYmxlU3RyZWFtIChlcnJvcmVkIHZpYSByZXR1cm5pbmcgYSByZWplY3RlZCBw
cm9taXNlIGluIHN0YXJ0KSByZWFkZXInLCBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IFJl
YWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gUHJvbWlz
ZS5yZWplY3QodGhlRXJyb3IpOyB9CisgICAgfSl9LAorICAgIHRoZUVycm9yCispOworCiB0ZW1w
bGF0ZWRSU0Vycm9yZWRSZWFkZXIoJ1JlYWRhYmxlU3RyZWFtIChlcnJvcmVkIHZpYSByZXR1cm5p
bmcgYSByZWplY3RlZCBwcm9taXNlIGluIHN0YXJ0KSByZWFkZXInLCBmdW5jdGlvbigpIHsKICAg
ICByZXR1cm4gc3RyZWFtQW5kRGVmYXVsdFJlYWRlcihuZXcgUmVhZGFibGVTdHJlYW0oewogICAg
ICAgICBzdGFydDogZnVuY3Rpb24oKSB7CkBAIC03ODQsNiArMTEyMSw0NCBAQCB0ZW1wbGF0ZWRS
U1R3b0NodW5rc09wZW5SZWFkZXIoJ1JlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVk
LCBzdGlsbCBvcGVuKQogICAgIGNodW5rcwogKTsKIAordGVtcGxhdGVkUlNUd29DaHVua3NDbG9z
ZWQoJ1JlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkLCB0aGVuIGNsb3NlZCknLCBm
dW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3Rh
cnQ6IGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGMuZW5xdWV1ZShjaHVua3NbMF0pOworICAg
ICAgICAgICAgYy5lbnF1ZXVlKGNodW5rc1sxXSk7CisgICAgICAgICAgICBjLmNsb3NlKCk7Cisg
ICAgICAgIH0KKyAgICB9KX0sCisgICAgY2h1bmtzCispOworCit0ZW1wbGF0ZWRSU1R3b0NodW5r
c0Nsb3NlZCgnUmVhZGFibGVTdHJlYW0gKHR3byBjaHVua3MgZW5xdWV1ZWQgYXN5bmMsIHRoZW4g
Y2xvc2VkKScsIGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oewor
ICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgYy5lbnF1ZXVlKGNodW5rc1swXSk7IH0sIDEwKTsKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IGMuZW5xdWV1ZShjaHVua3NbMV0pOyB9LCAyMCk7CisgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjLmNsb3NlKCk7IH0sIDMwKTsKKyAgICAgICAg
fQorICAgIH0pfSwKKyAgICBjaHVua3MKKyk7CisKK3RlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2Vk
KCdSZWFkYWJsZVN0cmVhbSAodHdvIGNodW5rcyBlbnF1ZXVlZCB2aWEgcHVsbCwgdGhlbiBjbG9z
ZWQpJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHB1bGxDYWxsID0gMDsKKworICAgIHJldHVybiBu
ZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBwdWxsOmZ1bmN0aW9uKGMpIHsKKyAgICAgICAg
ICAgIGlmIChwdWxsQ2FsbCA+PSBjaHVua3MubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYy5j
bG9zZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjLmVucXVldWUo
Y2h1bmtzW3B1bGxDYWxsKytdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOwor
fSwKK2NodW5rcworKTsKKwogdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIoJ1JlYWRh
YmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkLCB0aGVuIGNsb3NlZCkgcmVhZGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgdmFyIGRvQ2xvc2U7CiAgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJs
ZVN0cmVhbSh7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260928</attachid>
            <date>2015-09-10 07:24:21 -0700</date>
            <delta_ts>2015-09-14 01:36:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148304-20150910162414.patch</filename>
            <type>text/plain</type>
            <size>24802</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTNkYWQ2MGRiYmVkZDdhMWI0MGQ1
ZmFiMGY5YjMzZTkyMTM3MGU5ZC4uNThmMWUzODJlZjgzZjQ5YWI4OTBlNzc2ZDQ4NjA4NTZjYWUz
NGMxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA5LTEwICBYYWJpZXIgUm9kcmlndWV6
IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBB
ZGQgcmVhZGFibGUgc3RyZWFtIHRlbXBsYXRlZCB0ZXN0cyBmb3Igd3JpdGFibGUgc3RyZWFtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlYW1z
L3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQgbmV3IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0bWw6IE5ldyB3
cml0YWJsZSBzdHJlYW0gdGVzdHMuCisKIDIwMTUtMDktMDkgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnQuY2hhcmFjdGVyU2V0IHNob3VsZCByZXR1
cm4gIlVURi04IiBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXRlbXBsYXRlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFk
YWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3MzAzYmMzZWJhNzhmNzAz
NWZkNmY2N2VmOTVmNjFkMjBkYmVkYWE2Li43ZmQ0NjU3MjAyNjU3NzdlYjIxYmRlNGI2Nzc0NjRh
NTEwMDQzMmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBs
ZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJl
YW0tdGVtcGxhdGVkLWV4cGVjdGVkLnR4dApAQCAtMTgsNiArMTgsOCBAQCBQQVNTIFJ1bm5pbmcg
dGVtcGxhdGVkUlNDbG9zZWQgd2l0aCBSZWFkYWJsZVN0cmVhbSAoY2xvc2VkIHZpYSBjYWxsIGlu
IHN0YXJ0KQogUEFTUyBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVk
IHByb21pc2UgZWFjaCB0aW1lIAogUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZhbHNlIAogUEFTUyBn
ZXRSZWFkZXIoKSBzaG91bGQgYmUgT0sgCitGQUlMIHBpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFt
IGluIHRoZSB3cml0YWJsZSBzdGF0ZSBzaG91bGQgY2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbSBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgdG8gYSBXcml0
YWJsZVN0cmVhbSBpbiB0aGUgd3JpdGFibGUgc3RhdGUgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1
ZSB9IHNob3VsZCBkbyBub3RoaW5nIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFt
CiBQQVNTIHNob3VsZCBiZSBhYmxlIHRvIGFjcXVpcmUgbXVsdGlwbGUgcmVhZGVycywgc2luY2Ug
dGhleSBhcmUgYWxsIGF1dG8tcmVsZWFzZWQgCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVkUlNDbG9z
ZWRSZWFkZXIgd2l0aCBSZWFkYWJsZVN0cmVhbSByZWFkZXIgKGNsb3NlZCBiZWZvcmUgZ2V0dGlu
ZyByZWFkZXIpIAogUEFTUyByZWFkKCkgc2hvdWxkIGZ1bGZpbGwgd2l0aCB7IHZhbHVlOiB1bmRl
ZmluZWQsIGRvbmU6IHRydWUgfSAKQEAgLTM1LDYgKzM3LDggQEAgUEFTUyBSdW5uaW5nIHRlbXBs
YXRlZFJTQ2xvc2VkIHdpdGggUmVhZGFibGVTdHJlYW0gKGNsb3NlZCB2aWEgY2FuY2VsKQogUEFT
UyBjYW5jZWwoKSBzaG91bGQgcmV0dXJuIGEgZGlzdGluY3QgZnVsZmlsbGVkIHByb21pc2UgZWFj
aCB0aW1lIAogUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZhbHNlIAogUEFTUyBnZXRSZWFkZXIoKSBz
aG91bGQgYmUgT0sgCitGQUlMIHBpcGluZyB0byBhIFdyaXRhYmxlU3RyZWFtIGluIHRoZSB3cml0
YWJsZSBzdGF0ZSBzaG91bGQgY2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbSBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBp
biB0aGUgd3JpdGFibGUgc3RhdGUgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9IHNob3VsZCBk
byBub3RoaW5nIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCiBQQVNTIHNob3Vs
ZCBiZSBhYmxlIHRvIGFjcXVpcmUgbXVsdGlwbGUgcmVhZGVycywgc2luY2UgdGhleSBhcmUgYWxs
IGF1dG8tcmVsZWFzZWQgCiBQQVNTIFJ1bm5pbmcgdGVtcGxhdGVkUlNDbG9zZWRSZWFkZXIgd2l0
aCBSZWFkYWJsZVN0cmVhbSByZWFkZXIgKGNsb3NlZCB2aWEgY2FuY2VsIGFmdGVyIGdldHRpbmcg
cmVhZGVyKSAKIFBBU1MgcmVhZCgpIHNob3VsZCBmdWxmaWxsIHdpdGggeyB2YWx1ZTogdW5kZWZp
bmVkLCBkb25lOiB0cnVlIH0gCkBAIC00Myw2ICs0Nyw3IEBAIFBBU1MgcmVhZCgpIHNob3VsZCB3
b3JrIHdoZW4gdXNlZCB3aXRoaW4gYW5vdGhlciByZWFkKCkgZnVsZmlsbCBjYWxsYmFjawogUEFT
UyBjbG9zZWQgc2hvdWxkIGZ1bGZpbGwgd2l0aCB1bmRlZmluZWQgCiBQQVNTIGNhbmNlbCgpIHNo
b3VsZCByZXR1cm4gYSBkaXN0aW5jdCBmdWxmaWxsZWQgcHJvbWlzZSBlYWNoIHRpbWUgCiBQQVNT
IFJ1bm5pbmcgdGVtcGxhdGVkUlNFcnJvcmVkIHdpdGggUmVhZGFibGVTdHJlYW0gKGVycm9yZWQg
dmlhIGNhbGwgaW4gc3RhcnQpIAorRkFJTCBwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0
aGUgd3JpdGFibGUgc3RhdGUgc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIFBBU1MgZ2V0UmVhZGVyKCkgc2hvdWxkIHJl
dHVybiBhIHJlYWRlciB0aGF0IGFjdHMgZXJyb3JlZCAKIFBBU1MgcmVhZCgpIHR3aWNlIHNob3Vs
ZCBnaXZlIHRoZSBlcnJvciBlYWNoIHRpbWUgCiBQQVNTIGxvY2tlZCBzaG91bGQgYmUgZmFsc2Ug
CkBAIC01Miw5ICs1NywxNCBAQCBQQVNTIGNhbmNlbCgpIHNob3VsZCByZXR1cm4gYSBkaXN0aW5j
dCByZWplY3RlZCBwcm9taXNlIGVhY2ggdGltZQogUEFTUyByZWFkZXIgY2FuY2VsKCkgc2hvdWxk
IHJldHVybiBhIGRpc3RpbmN0IHJlamVjdGVkIHByb21pc2UgZWFjaCB0aW1lIAogUEFTUyBzaG91
bGQgYmUgYWJsZSB0byBhY3F1aXJlIG11bHRpcGxlIHJlYWRlcnMsIHNpbmNlIHRoZXkgYXJlIGFs
bCBhdXRvLXJlbGVhc2VkIAogUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTRXJyb3JlZCB3aXRoIFJl
YWRhYmxlU3RyZWFtIChlcnJvcmVkIHZpYSByZXR1cm5pbmcgYSByZWplY3RlZCBwcm9taXNlIGlu
IHN0YXJ0KSAKK0ZBSUwgcGlwaW5nIHRvIGEgV3JpdGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxl
IHN0YXRlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIENhbid0IGZpbmQgdmFyaWFi
bGU6IFdyaXRhYmxlU3RyZWFtCiBQQVNTIGdldFJlYWRlcigpIHNob3VsZCByZXR1cm4gYSByZWFk
ZXIgdGhhdCBhY3RzIGVycm9yZWQgCiBQQVNTIHJlYWQoKSB0d2ljZSBzaG91bGQgZ2l2ZSB0aGUg
ZXJyb3IgZWFjaCB0aW1lIAogUEFTUyBsb2NrZWQgc2hvdWxkIGJlIGZhbHNlIAorUEFTUyBSdW5u
aW5nIHRlbXBsYXRlZFJTRXJyb3JlZEFzeW5jT25seSB3aXRoIFJlYWRhYmxlU3RyZWFtIChlcnJv
cmVkIHZpYSByZXR1cm5pbmcgYSByZWplY3RlZCBwcm9taXNlIGluIHN0YXJ0KSByZWFkZXIgCitG
QUlMIHBpcGluZyB3aXRoIG5vIG9wdGlvbnMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVT
dHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50QWJvcnQ6IGZhbHNlIH0gQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50QWJv
cnQ6IHRydWUgfSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQogUEFTUyBSdW5u
aW5nIHRlbXBsYXRlZFJTRXJyb3JlZFJlYWRlciB3aXRoIFJlYWRhYmxlU3RyZWFtIChlcnJvcmVk
IHZpYSByZXR1cm5pbmcgYSByZWplY3RlZCBwcm9taXNlIGluIHN0YXJ0KSByZWFkZXIgCiBQQVNT
IGNsb3NlZCBzaG91bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yIAogUEFTUyByZWFkKCkgc2hvdWxk
IHJlamVjdCB3aXRoIHRoZSBlcnJvciAKQEAgLTY5LDYgKzc5LDI3IEBAIFBBU1MgY2FsbGluZyBy
ZWFkKCkgdHdpY2Ugd2l0aG91dCB3YWl0aW5nIHdpbGwgZXZlbnR1YWxseSBnaXZlIGJvdGggY2h1
bmtzCiBQQVNTIGNhbGxpbmcgcmVhZCgpIHR3aWNlIHdpdGggd2FpdGluZyB3aWxsIGV2ZW50dWFs
bHkgZ2l2ZSBib3RoIGNodW5rcyAKIFBBU1MgcmVhZCgpIHNob3VsZCByZXR1cm4gZGlzdGluY3Qg
cHJvbWlzZXMgZWFjaCB0aW1lIAogUEFTUyBjYW5jZWwoKSBhZnRlciBhIHJlYWQoKSBzaG91bGQg
c3RpbGwgZ2l2ZSB0aGF0IHNpbmdsZSByZWFkIHJlc3VsdCAKK1BBU1MgUnVubmluZyB0ZW1wbGF0
ZWRSU1R3b0NodW5rc0Nsb3NlZCB3aXRoIFJlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVl
dWVkLCB0aGVuIGNsb3NlZCkgCitGQUlMIHBpcGluZyB3aXRoIG5vIG9wdGlvbnMgYW5kIG5vIGRl
c3RpbmF0aW9uIGVycm9ycyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJ
TCBwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogZmFsc2UgfSBhbmQgbm8gZGVzdGluYXRpb24g
ZXJyb3JzIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3
aXRoIHsgcHJldmVudENsb3NlOiB0cnVlIH0gYW5kIG5vIGRlc3RpbmF0aW9uIGVycm9ycyBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZl
bnRDbG9zZTogZmFsc2UgfSBhbmQgYSBkZXN0aW5hdGlvbiB3aXRoIHRoYXQgZXJyb3JzIHN5bmNo
cm9ub3VzbHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5n
IHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBhbmQgYSBkZXN0aW5hdGlvbiB3aXRoIHRoYXQg
ZXJyb3JzIHN5bmNocm9ub3VzbHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0K
K0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSBhbmQgYSBkZXN0aW5hdGlv
biB0aGF0IGVycm9ycyBvbiB0aGUgbGFzdCBjaHVuayBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0
YWJsZVN0cmVhbQorUEFTUyBSdW5uaW5nIHRlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2VkIHdpdGgg
UmVhZGFibGVTdHJlYW0gKHR3byBjaHVua3MgZW5xdWV1ZWQgYXN5bmMsIHRoZW4gY2xvc2VkKSAK
K0ZBSUwgcGlwaW5nIHdpdGggbm8gb3B0aW9ucyBhbmQgbm8gZGVzdGluYXRpb24gZXJyb3JzIENh
bid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJl
dmVudENsb3NlOiBmYWxzZSB9IGFuZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMgQ2FuJ3QgZmluZCB2
YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6
IHRydWUgfSBhbmQgbm8gZGVzdGluYXRpb24gZXJyb3JzIENhbid0IGZpbmQgdmFyaWFibGU6IFdy
aXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiBmYWxzZSB9IGFu
ZCBhIGRlc3RpbmF0aW9uIHdpdGggdGhhdCBlcnJvcnMgc3luY2hyb25vdXNseSBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9z
ZTogdHJ1ZSB9IGFuZCBhIGRlc3RpbmF0aW9uIHdpdGggdGhhdCBlcnJvcnMgc3luY2hyb25vdXNs
eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJsZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7
IHByZXZlbnRDbG9zZTogdHJ1ZSB9IGFuZCBhIGRlc3RpbmF0aW9uIHRoYXQgZXJyb3JzIG9uIHRo
ZSBsYXN0IGNodW5rIENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRhYmxlU3RyZWFtCitQQVNTIFJ1
bm5pbmcgdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQgd2l0aCBSZWFkYWJsZVN0cmVhbSAodHdv
IGNodW5rcyBlbnF1ZXVlZCB2aWEgcHVsbCwgdGhlbiBjbG9zZWQpIAorRkFJTCBwaXBpbmcgd2l0
aCBubyBvcHRpb25zIGFuZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMgQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogV3JpdGFibGVTdHJlYW0KK0ZBSUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IGZhbHNl
IH0gYW5kIG5vIGRlc3RpbmF0aW9uIGVycm9ycyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXcml0YWJs
ZVN0cmVhbQorRkFJTCBwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9IGFuZCBubyBk
ZXN0aW5hdGlvbiBlcnJvcnMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KK0ZB
SUwgcGlwaW5nIHdpdGggeyBwcmV2ZW50Q2xvc2U6IGZhbHNlIH0gYW5kIGEgZGVzdGluYXRpb24g
d2l0aCB0aGF0IGVycm9ycyBzeW5jaHJvbm91c2x5IENhbid0IGZpbmQgdmFyaWFibGU6IFdyaXRh
YmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiB0cnVlIH0gYW5kIGEg
ZGVzdGluYXRpb24gd2l0aCB0aGF0IGVycm9ycyBzeW5jaHJvbm91c2x5IENhbid0IGZpbmQgdmFy
aWFibGU6IFdyaXRhYmxlU3RyZWFtCitGQUlMIHBpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiB0
cnVlIH0gYW5kIGEgZGVzdGluYXRpb24gdGhhdCBlcnJvcnMgb24gdGhlIGxhc3QgY2h1bmsgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogV3JpdGFibGVTdHJlYW0KIFBBU1MgUnVubmluZyB0ZW1wbGF0ZWRS
U1R3b0NodW5rc0Nsb3NlZFJlYWRlciB3aXRoIFJlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVu
cXVldWVkLCB0aGVuIGNsb3NlZCkgcmVhZGVyIAogUEFTUyB0aGlyZCByZWFkKCksIHdpdGhvdXQg
d2FpdGluZywgc2hvdWxkIGdpdmUgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0gCiBQ
QVNTIHRoaXJkIHJlYWQsIHdpdGggd2FpdGluZywgc2hvdWxkIGdpdmUgeyB2YWx1ZTogdW5kZWZp
bmVkLCBkb25lOiB0cnVlIH0gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tdGVtcGxhdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0t
dGVtcGxhdGVkLmh0bWwKaW5kZXggN2I3MDJhYjA5ODNhNjU5N2ZiYjc2NmEzNTczMjRmMzY5MGQ5
NGRlOS4uYWY5MTFkMjY1YmI0ZjMwMmY3MjU1OTdmNDE1YTQ0MjBmMzg2YjI1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLXRlbXBsYXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQuaHRtbApAQCAtNTgsNiAr
NTgsNjkgQEAgZnVuY3Rpb24gdGVtcGxhdGVkUlNDbG9zZWQobGFiZWwsIGZhY3RvcnkpIHsKICAg
ICAgICAgcnMuZ2V0UmVhZGVyKCk7IC8vIGdldFJlYWRlcigpIHNob3VsZCBub3QgdGhyb3cuCiAg
ICAgfSwgJ2dldFJlYWRlcigpIHNob3VsZCBiZSBPSycpOwogCisgICAgdmFyIHRlc3QyID0gYXN5
bmNfdGVzdCgncGlwaW5nIHRvIGEgV3JpdGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRl
IHNob3VsZCBjbG9zZSB0aGUgd3JpdGFibGUgc3RyZWFtJyk7CisgICAgdGVzdDIuc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIGNsb3NlQ2FsbGVkID0gZmFsc2U7CisKKyAgICAgICAgdmFy
IHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciBzdGFydFByb21pc2UgPSBQcm9taXNlLnJl
c29sdmUoKTsKKyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAgICAg
ICAgIHN0YXJ0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnRQcm9t
aXNlOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdVbmV4cGVjdGVkIHdyaXRlIGNhbGwnKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjbG9zZTogZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgY2xvc2VDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IGFib3J0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdV
bmV4cGVjdGVkIGFib3J0IGNhbGwnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAg
ICAgICAgc3RhcnRQcm9taXNlLnRoZW4odGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ3dyaXRhYmxlJywgJ3dyaXRhYmxlIHN0
cmVhbSBzaG91bGQgc3RhcnQgaW4gd3JpdGFibGUgc3RhdGUnKTsKKworICAgICAgICAgICAgcmV0
dXJuIHJzLnBpcGVUbyh3cykudGhlbih0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY2xvc2VDYWxsZWQpOworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMod3Muc3RhdGUsICdjbG9zZWQnLCAnd3JpdGFibGUgc3RyZWFtIHNob3VsZCBi
ZWNvbWUgY2xvc2VkJyk7CisgICAgICAgICAgICAgICAgdGVzdDIuZG9uZSgndW5kZXJseWluZyBz
b3VyY2UgY2xvc2Ugc2hvdWxkIGJlIGNhbGxlZCcpOworICAgICAgICAgICAgfSkpOworICAgICAg
ICB9KSkuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsgYXNzZXJ0X3VucmVhY2hl
ZChlKTsgfSkpOworICAgIH0pOworCisgICAgdmFyIHRlc3QzID0gYXN5bmNfdGVzdCgncGlwaW5n
IHRvIGEgV3JpdGFibGVTdHJlYW0gaW4gdGhlIHdyaXRhYmxlIHN0YXRlIHdpdGggeyBwcmV2ZW50
Q2xvc2U6IHRydWUgfSBzaG91bGQgZG8gbm90aGluZycpOworICAgIHRlc3QzLnN0ZXAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICB2YXIgc3RhcnRQ
cm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIHZhciB3cyA9IG5ldyBXcml0YWJs
ZVN0cmVhbSh7CisgICAgICAgICAgICBzdGFydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0YXJ0UHJvbWlzZTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB3cml0
ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnVW5leHBl
Y3RlZCB3cml0ZSBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2xvc2U6IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ1VuZXhwZWN0ZWQg
Y2xvc2UgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFib3J0OiBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdVbmV4cGVjdGVkIGFib3J0
IGNhbGwnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc3RhcnRQcm9t
aXNlLnRoZW4odGVzdDMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh3cy5zdGF0ZSwgJ3dyaXRhYmxlJywgJ3dyaXRhYmxlIHN0cmVhbSBzaG91bGQgc3Rh
cnQgaW4gd3JpdGFibGUgc3RhdGUnKTsKKworICAgICAgICAgICAgcmV0dXJuIHJzLnBpcGVUbyh3
cywgeyBwcmV2ZW50Q2xvc2U6IHRydWUgfSkudGhlbih0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ3dyaXRhYmxlJywg
J3dyaXRhYmxlIHN0cmVhbSBzaG91bGQgc3RpbGwgYmUgd3JpdGFibGUnKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0My5kb25lKCdwaXBlVG8gcHJvbWlzZSBzaG91bGQgYmUgZnVsZmlsbGVkJyk7Cisg
ICAgICAgICAgICB9KSk7CisgICAgICAgIH0pKS5jYXRjaCh0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeyBhc3NlcnRfdW5yZWFjaGVkKGUpOyB9KSk7CisgICAgfSk7CisKICAgICB0ZXN0KGZ1
bmN0aW9uKCkgewogICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CiAKQEAgLTcyLDQ0ICsxMzUs
NzggQEAgZnVuY3Rpb24gdGVtcGxhdGVkUlNFcnJvcmVkKGxhYmVsLCBmYWN0b3J5LCBlcnJvcikg
ewogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgfSwgJ1J1bm5pbmcgdGVtcGxhdGVkUlNFcnJv
cmVkIHdpdGggJyArIGxhYmVsKTsKIAotICAgIHZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ2dldFJl
YWRlcigpIHNob3VsZCByZXR1cm4gYSByZWFkZXIgdGhhdCBhY3RzIGVycm9yZWQnKTsKKyAgICB2
YXIgdGVzdDEgPSBhc3luY190ZXN0KCdwaXBpbmcgdG8gYSBXcml0YWJsZVN0cmVhbSBpbiB0aGUg
d3JpdGFibGUgc3RhdGUgc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0nKTsKICAgICB0
ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAg
ICAgICAgdmFyIHN0YXJ0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICB2YXIg
d3MgPSBuZXcgV3JpdGFibGVTdHJlYW0oeworICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydFByb21pc2U7CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQoJ1VuZXhwZWN0ZWQgd3JpdGUgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfcmVhY2hl
ZCgnVW5leHBlY3RlZCBjbG9zZSBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
YWJvcnQ6IGZ1bmN0aW9uKHJlYXNvbikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVhc29uLCBlcnJvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHN0
YXJ0UHJvbWlzZS50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICd3cml0YWJsZScpOworCisgICAgICAgICAgICBycy5w
aXBlVG8od3MpLnRoZW4oCisgICAgICAgICAgICAgICAgdGVzdDEuc3RlcF9mdW5jKGZ1bmN0aW9u
KCkgeyBhc3NlcnRfdW5yZWFjaGVkKCdwaXBlVG8gcHJvbWlzZSBzaG91bGQgbm90IGJlIGZ1bGZp
bGxlZCcpOyB9KSwKKyAgICAgICAgICAgICAgICB0ZXN0MS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncGlwZVRvIHBy
b21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkIHdpdGggdGhlIHBhc3NlZCBlcnJvcicpOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdzLnN0YXRlLCAnZXJyb3JlZCcsICd3cml0YWJs
ZSBzdHJlYW0gc2hvdWxkIGJlY29tZSBlcnJvcmVkJyk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3QxLmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgKTsKKyAgICAgICAg
fSkpOworICAgIH0pOworCisgICAgdmFyIHRlc3QyID0gYXN5bmNfdGVzdCgnZ2V0UmVhZGVyKCkg
c2hvdWxkIHJldHVybiBhIHJlYWRlciB0aGF0IGFjdHMgZXJyb3JlZCcpOworICAgIHRlc3QyLnN0
ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKICAgICAgICAgdmFy
IHByb21pc2VzQ291bnQgPSAwOwogCiAgICAgICAgIHZhciByZWFkZXIgPSBycy5nZXRSZWFkZXIo
KTsKIAotICAgICAgICByZWFkZXIuY2xvc2VkLmNhdGNoKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7CisgICAgICAgIHJlYWRlci5jbG9zZWQuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgZXJyb3IsICdyZWFkZXIuY2xv
c2VkIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJyb3InKTsKICAgICAgICAgICAgIGlmICgrK3By
b21pc2VzQ291bnQgPT09IDIpCi0gICAgICAgICAgICAgICAgdGVzdDEuZG9uZSgpOworICAgICAg
ICAgICAgICAgIHRlc3QyLmRvbmUoKTsKICAgICAgICAgfSkpOwotICAgICAgICByZWFkZXIucmVh
ZCgpLmNhdGNoKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHJlYWRlci5y
ZWFkKCkuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZSwgZXJyb3IsICdyZWFkZXIucmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0
aGUgZXJyb3InKTsKICAgICAgICAgICAgIGlmICgrK3Byb21pc2VzQ291bnQgPT09IDIpCi0gICAg
ICAgICAgICAgICAgdGVzdDEuZG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3QyLmRvbmUoKTsK
ICAgICAgICAgfSkpOwogICAgIH0pOwogCi0gICAgdmFyIHRlc3QyID0gYXN5bmNfdGVzdCgncmVh
ZCgpIHR3aWNlIHNob3VsZCBnaXZlIHRoZSBlcnJvciBlYWNoIHRpbWUnKTsKLSAgICB0ZXN0Mi5z
dGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciB0ZXN0MyA9IGFzeW5jX3Rlc3QoJ3JlYWQoKSB0d2lj
ZSBzaG91bGQgZ2l2ZSB0aGUgZXJyb3IgZWFjaCB0aW1lJyk7CisgICAgdGVzdDMuc3RlcChmdW5j
dGlvbigpIHsKICAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOwogICAgICAgICB2YXIgcHJvbWlz
ZUNvdW50ID0gMDsKIAogICAgICAgICB2YXIgcmVhZGVyID0gcnMuZ2V0UmVhZGVyKCk7CiAKLSAg
ICAgICAgcmVhZGVyLnJlYWQoKS5jYXRjaCh0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICByZWFkZXIucmVhZCgpLmNhdGNoKHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVhZGVyLnJlYWQoKSBzaG91
bGQgcmVqZWN0IHdpdGggdGhlIGVycm9yJyk7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKCsr
cHJvbWlzZUNvdW50LCAxKTsKICAgICAgICAgfSkpOwotICAgICAgICByZWFkZXIucmVhZCgpLmNh
dGNoKHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgIHJlYWRlci5yZWFkKCku
Y2F0Y2godGVzdDMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZSwgZXJyb3IsICdyZWFkZXIucmVhZCgpIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgZXJy
b3InKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoKytwcm9taXNlQ291bnQsIDIpOwogICAg
ICAgICB9KSk7Ci0gICAgICAgIHJlYWRlci5jbG9zZWQuY2F0Y2godGVzdDIuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgcmVhZGVyLmNsb3NlZC5jYXRjaCh0ZXN0My5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJvciwgJ3JlYWRl
ci5jbG9zZWQgc2hvdWxkIHJlamVjdCB3aXRoIHRoZSBlcnJvcicpOwogICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscygrK3Byb21pc2VDb3VudCwgMyk7Ci0gICAgICAgICAgICB0ZXN0Mi5kb25lKCk7
CisgICAgICAgICAgICB0ZXN0My5kb25lKCk7CiAgICAgICAgIH0pKTsKICAgIH0pOwogCkBAIC0x
MjAsNiArMjE3LDgxIEBAIGZ1bmN0aW9uIHRlbXBsYXRlZFJTRXJyb3JlZChsYWJlbCwgZmFjdG9y
eSwgZXJyb3IpIHsKICAgICB9LCAnbG9ja2VkIHNob3VsZCBiZSBmYWxzZScpOwogfTsKIAorZnVu
Y3Rpb24gdGVtcGxhdGVkUlNFcnJvcmVkQXN5bmNPbmx5KGxhYmVsLCBmYWN0b3J5LCBlcnJvcikg
eworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgfSwgJ1J1bm5pbmcgdGVtcGxhdGVkUlNFcnJv
cmVkQXN5bmNPbmx5IHdpdGggJyArIGxhYmVsKTsKKworICAgIHZhciB0ZXN0MSA9IGFzeW5jX3Rl
c3QoJ3BpcGluZyB3aXRoIG5vIG9wdGlvbnMnKTsKKyAgICB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgY2xvc2VDYWxsZWQgPSBmYWxzZTsKKworICAgICAgICB2YXIgcnMgPSBm
YWN0b3J5KCk7CisKKyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAg
ICAgICAgIGFib3J0OiBmdW5jdGlvbihyKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyLCBlcnJvciwgJ3JlYXNvbiBwYXNzZWQgdG8gYWJvcnQgc2hvdWxkIGVxdWFsIHRoZSBzb3Vy
Y2UgZXJyb3InKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgcnMucGlw
ZVRvKHdzKS5jYXRjaCh0ZXN0MS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ2Vycm9yZWQnLCAnZGVzdGluYXRpb24gc2hvdWxkIGJl
IGVycm9yZWQnKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgZXJyb3IsICdyZWplY3Rp
b24gcmVhc29uIG9mIHBpcGVUb1Byb21pc2Ugc2hvdWxkIGJlIHRoZSBzb3VyY2UgZXJyb3InKTsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGNsb3NlQ2FsbGVkKTsKKyAgICAgICAgICAgIHRlc3Qx
LmRvbmUoKTsKKyAgICAgICAgfSkpOworCisgICAgICAgIHdzLmNsb3NlZC5jYXRjaCh0ZXN0MS5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLCBlcnJv
ciwgJ3JlamVjdGlvbiByZWFzb24gb2YgZGVzdCBjbG9zZWQgc2hvdWxkIGJlIHRoZSBzb3VyY2Ug
ZXJyb3InKTsKKyAgICAgICAgICAgIGNsb3NlQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgfSkpCisg
ICAgfSk7CisKKyAgICB2YXIgdGVzdDIgPSBhc3luY190ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZl
bnRBYm9ydDogZmFsc2UgfScpOworICAgIHRlc3QyLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciBhYm9ydENhbGxlZCA9IGZhbHNlOworICAgICAgICB2YXIgY2xvc2VSZWplY3RlZCA9IGZh
bHNlOworCisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICB2YXIgd3MgPSBu
ZXcgV3JpdGFibGVTdHJlYW0oeworICAgICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9uKHIpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHIsIGVycm9yLCAncmVhc29uIHBhc3NlZCB0byBh
Ym9ydCBzaG91bGQgZXF1YWwgdGhlIHNvdXJjZSBlcnJvcicpOworICAgICAgICAgICAgICAgIGFi
b3J0Q2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAg
cnMucGlwZVRvKHdzLCB7IHByZXZlbnRBYm9ydDogZmFsc2UgfSkuY2F0Y2godGVzdDIuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUsICdl
cnJvcmVkJywgJ2Rlc3RpbmF0aW9uIHNob3VsZCBiZSBlcnJvcmVkJyk7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVqZWN0aW9uIHJlYXNvbiBvZiBwaXBlVG9Qcm9taXNl
IHNob3VsZCBiZSB0aGUgc291cmNlIGVycm9yJyk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShh
Ym9ydENhbGxlZCk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjbG9zZVJlamVjdGVkKTsKKyAg
ICAgICAgICAgIHRlc3QyLmRvbmUoKTsKKyAgICAgICAgfSkpOworCisgICAgICAgIHdzLmNsb3Nl
ZC5jYXRjaCh0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLCBlcnJvciwgJ3JlamVjdGlvbiByZWFzb24gb2YgZGVzdCBjbG9zZWQgc2hvdWxk
IGJlIHRoZSBzb3VyY2UgZXJyb3InKTsKKyAgICAgICAgICAgIGNsb3NlUmVqZWN0ZWQgPSB0cnVl
OworICAgICAgICB9KSk7CisgICAgfSk7CisKKyAgICB2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdw
aXBpbmcgd2l0aCB7IHByZXZlbnRBYm9ydDogdHJ1ZSB9Jyk7CisgICAgdGVzdDMuc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9yeSgpOworCisgICAgICAgIHZhciB3cyA9
IG5ldyBXcml0YWJsZVN0cmVhbSh7CisgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgndW5kZXJseWluZyBzaW5rIGFib3J0IHNo
b3VsZCBub3QgYmUgY2FsbGVkJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAg
ICAgIHJzLnBpcGVUbyh3cywgeyBwcmV2ZW50QWJvcnQ6IHRydWUgfSkuY2F0Y2godGVzdDMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMod3Muc3RhdGUs
ICd3cml0YWJsZScsICdkZXN0aW5hdGlvbiBzaG91bGQgcmVtYWluIHdyaXRhYmxlJyk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUsIGVycm9yLCAncmVqZWN0aW9uIHJlYXNvbiBvZiBwaXBl
VG9Qcm9taXNlIHNob3VsZCBiZSB0aGUgc291cmNlIGVycm9yJyk7CisgICAgICAgICAgICB0ZXN0
My5kb25lKCk7CisgICAgICAgIH0pKTsKKyAgIH0pOworfTsKKwogZnVuY3Rpb24gdGVtcGxhdGVk
UlNFcnJvcmVkU3luY09ubHkobGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CiAgICAgdGVzdChmdW5j
dGlvbigpIHsKICAgICB9LCAnUnVubmluZyB0ZW1wbGF0ZWRSU0Vycm9yZWRTeW5jT25seSB3aXRo
ICcgKyBsYWJlbCk7CkBAIC0xOTgsNiArMzcwLDE2NCBAQCBmdW5jdGlvbiB0ZW1wbGF0ZWRSU0Vy
cm9yZWRTeW5jT25seShsYWJlbCwgZmFjdG9yeSwgZXJyb3IpIHsKICAgICB9LCAnc2hvdWxkIGJl
IGFibGUgdG8gYWNxdWlyZSBtdWx0aXBsZSByZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBhbGwgYXV0
by1yZWxlYXNlZCcpOwogfTsKIAorZnVuY3Rpb24gdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQo
bGFiZWwsIGZhY3RvcnksIGVycm9yKSB7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICB9LCAn
UnVubmluZyB0ZW1wbGF0ZWRSU1R3b0NodW5rc0Nsb3NlZCB3aXRoICcgKyBsYWJlbCk7CisKKyAg
ICB2YXIgdGVzdDEgPSBhc3luY190ZXN0KCdwaXBpbmcgd2l0aCBubyBvcHRpb25zIGFuZCBubyBk
ZXN0aW5hdGlvbiBlcnJvcnMnKTsKKyAgICB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAg
ICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFyIGNodW5rc1dyaXR0ZW4gPSBbXTsK
KyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIGFib3J0
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCd1bmV4cGVj
dGVkIGFib3J0IGNhbGwnKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB3cml0ZTogZnVu
Y3Rpb24oY2h1bmspIHsKKyAgICAgICAgICAgICAgICBjaHVua3NXcml0dGVuLnB1c2goY2h1bmsp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBycy5waXBlVG8od3MpLnRo
ZW4odGVzdDEuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyh3cy5zdGF0ZSwgJ2Nsb3NlZCcsICdkZXN0aW5hdGlvbiBzaG91bGQgYmUgY2xvc2VkJyk7Cisg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNodW5rc1dyaXR0ZW4sIGNodW5rcyk7Cisg
ICAgICAgICAgICB0ZXN0MS5kb25lKCk7CisgICAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIHZh
ciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ3BpcGluZyB3aXRoIHsgcHJldmVudENsb3NlOiBmYWxzZSB9
IGFuZCBubyBkZXN0aW5hdGlvbiBlcnJvcnMnKTsKKyAgICB0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFyIGNodW5rc1dyaXR0
ZW4gPSBbXTsKKyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3RyZWFtKHsKKyAgICAgICAg
ICAgIGFib3J0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCd1bmV4cGVjdGVkIGFib3J0IGNhbGwnKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB3
cml0ZTogZnVuY3Rpb24oY2h1bmspIHsKKyAgICAgICAgICAgICAgICBjaHVua3NXcml0dGVuLnB1
c2goY2h1bmspOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBycy5waXBl
VG8od3MpLnRoZW4odGVzdDIuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ2Nsb3NlZCcsICdkZXN0aW5hdGlvbiBzaG91bGQgYmUgY2xv
c2VkJyk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNodW5rc1dyaXR0ZW4sIGNo
dW5rcyk7CisgICAgICAgICAgICB0ZXN0Mi5kb25lKCk7CisgICAgICAgIH0pKTsKKyAgICB9KTsK
KworICAgIHZhciB0ZXN0MyA9IGFzeW5jX3Rlc3QoJ3BpcGluZyB3aXRoIHsgcHJldmVudENsb3Nl
OiB0cnVlIH0gYW5kIG5vIGRlc3RpbmF0aW9uIGVycm9ycycpOworICAgIHRlc3QzLnN0ZXAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciBycyA9IGZhY3RvcnkoKTsKKworICAgICAgICB2YXIgY2h1
bmtzV3JpdHRlbiA9IFtdOworICAgICAgICB2YXIgd3MgPSBuZXcgV3JpdGFibGVTdHJlYW0oewor
ICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQoJ3VuZXhwZWN0ZWQgY2xvc2UgY2FsbCcpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIGFib3J0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCd1bmV4cGVjdGVkIGFib3J0IGNhbGwnKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB3cml0ZTogZnVuY3Rpb24oY2h1bmspIHsKKyAgICAgICAgICAgICAgICBjaHVua3NXcml0dGVu
LnB1c2goY2h1bmspOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBycy5w
aXBlVG8od3MsIHsgcHJldmVudENsb3NlOiB0cnVlIH0pLnRoZW4odGVzdDMuc3RlcF9mdW5jKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh3cy5zdGF0ZSwgJ3dyaXRhYmxl
JywgJ2Rlc3RpbmF0aW9uIHNob3VsZCBiZSB3cml0YWJsZScpOworICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhjaHVua3NXcml0dGVuLCBjaHVua3MpOworICAgICAgICAgICAgdGVzdDMu
ZG9uZSgpOworICAgICAgICB9KSk7CisgICAgfSk7CisKKyAgICB2YXIgdGVzdDQgPSBhc3luY190
ZXN0KCdwaXBpbmcgd2l0aCB7IHByZXZlbnRDbG9zZTogZmFsc2UgfSBhbmQgYSBkZXN0aW5hdGlv
biB3aXRoIHRoYXQgZXJyb3JzIHN5bmNocm9ub3VzbHknKTsKKyAgICB0ZXN0NC5zdGVwKGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFyIHRoZUVy
cm9yID0gbmV3IEVycm9yKCchISEnKTsKKyAgICAgICAgdmFyIHdzID0gbmV3IFdyaXRhYmxlU3Ry
ZWFtKHsKKyAgICAgICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCd1bmV4cGVjdGVkIGNsb3NlIGNhbGwnKTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBhYm9ydDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgndW5leHBlY3RlZCBhYm9ydCBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRocm93IHRoZUVy
cm9yOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBycy5waXBlVG8od3Ms
IHsgcHJldmVudENsb3NlOiBmYWxzZSB9KS50aGVuKAorICAgICAgICAgICAgdGVzdDQuc3RlcF9m
dW5jKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCdwaXBlVG8gcHJvbWlzZSBzaG91bGQg
bm90IGZ1bGZpbGwnKTsgfSksCisgICAgICAgICAgICB0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgdGhlRXJyb3IsICdwaXBlVG8g
cHJvbWlzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIHdyaXRlIGVycm9yJyk7CisgICAgICAgICAg
ICAgICAgdGVzdDQuZG9uZSgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgKTsKKyAgICB9KTsK
KworICAgIHZhciB0ZXN0NSA9IGFzeW5jX3Rlc3QoJ3BpcGluZyB3aXRoIHsgcHJldmVudENsb3Nl
OiB0cnVlIH0gYW5kIGEgZGVzdGluYXRpb24gd2l0aCB0aGF0IGVycm9ycyBzeW5jaHJvbm91c2x5
Jyk7CisgICAgdGVzdDUuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJzID0gZmFjdG9y
eSgpOworCisgICAgICAgIHZhciB0aGVFcnJvciA9IG5ldyBFcnJvcignISEhJyk7CisgICAgICAg
IHZhciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSh7CisgICAgICAgICAgICBjbG9zZTogZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgndW5leHBlY3RlZCBjbG9z
ZSBjYWxsJyk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3VuZXhwZWN0ZWQgYWJvcnQgY2Fs
bCcpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB0aHJvdyB0aGVFcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7
CisKKyAgICAgICAgcnMucGlwZVRvKHdzLCB7IHByZXZlbnRDbG9zZTogdHJ1ZSB9KS50aGVuKAor
ICAgICAgICAgICAgdGVzdDUuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVk
KCdwaXBlVG8gcHJvbWlzZSBzaG91bGQgbm90IGZ1bGZpbGwnKTsgfSksCisgICAgICAgICAgICB0
ZXN0NS5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZSwgdGhlRXJyb3IsICdwaXBlVG8gcHJvbWlzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIHdy
aXRlIGVycm9yJyk7CisgICAgICAgICAgICAgICAgdGVzdDUuZG9uZSgpOworICAgICAgICAgICAg
fSkKKyAgICAgICAgKTsKKyAgICB9KTsKKworICAgIHZhciB0ZXN0NiA9IGFzeW5jX3Rlc3QoJ3Bp
cGluZyB3aXRoIHsgcHJldmVudENsb3NlOiB0cnVlIH0gYW5kIGEgZGVzdGluYXRpb24gdGhhdCBl
cnJvcnMgb24gdGhlIGxhc3QgY2h1bmsnKTsKKyAgICB0ZXN0Ni5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICB2YXIgcnMgPSBmYWN0b3J5KCk7CisKKyAgICAgICAgdmFyIHRoZUVycm9yID0gbmV3
IEVycm9yKCchISEnKTsKKyAgICAgICAgdmFyIGNodW5rQ291bnRlciA9IDA7CisgICAgICAgIHZh
ciB3cyA9IG5ldyBXcml0YWJsZVN0cmVhbSgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjbG9zZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoJ3VuZXhwZWN0ZWQgY2xvc2UgY2FsbCcpOworICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCd1bmV4cGVjdGVkIGFib3J0IGNhbGwnKTsKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCsrY2h1bmtDb3VudGVyID09PSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UodGVzdDYuc3RlcF9mdW5jKGZ1bmN0aW9uKHIsIHJlamVjdCkgeyBzZXRU
aW1lb3V0KHRlc3Q2LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgcmVqZWN0KHRoZUVycm9yKTsgfSks
IDIwMCk7IH0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFy
azogSW5maW5pdHksCisgICAgICAgICAgICAgICAgc2l6ZTogZnVuY3Rpb24oKSB7IHJldHVybiAx
OyB9CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgcnMucGlwZVRvKHdzLCB7
IHByZXZlbnRDbG9zZTogdHJ1ZSB9KS50aGVuKAorICAgICAgICAgICAgdGVzdDYuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCdwaXBlVG8gcHJvbWlzZSBzaG91bGQgbm90
IGZ1bGZpbGwnKTsgfSksCisgICAgICAgICAgICB0ZXN0Ni5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgdGhlRXJyb3IsICdwaXBlVG8gcHJv
bWlzZSBzaG91bGQgcmVqZWN0IHdpdGggdGhlIHdyaXRlIGVycm9yJyk7CisgICAgICAgICAgICAg
ICAgdGVzdDYuZG9uZSgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgKTsKKyAgICB9KTsKK307
CisKIGZ1bmN0aW9uIHRlbXBsYXRlZFJTRW1wdHlSZWFkZXIobGFiZWwsIGZhY3RvcnkpIHsKICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0sICdSdW5uaW5nIHRlbXBsYXRlZFJTRW1wdHlSZWFk
ZXIgd2l0aCAnICsgbGFiZWwpOwpAQCAtNzQxLDYgKzEwNzEsMTMgQEAgdGVtcGxhdGVkUlNFcnJv
cmVkKCdSZWFkYWJsZVN0cmVhbSAoZXJyb3JlZCB2aWEgcmV0dXJuaW5nIGEgcmVqZWN0ZWQgcHJv
bWlzZSBpbgogICAgIHRoZUVycm9yCiApOwogCit0ZW1wbGF0ZWRSU0Vycm9yZWRBc3luY09ubHko
J1JlYWRhYmxlU3RyZWFtIChlcnJvcmVkIHZpYSByZXR1cm5pbmcgYSByZWplY3RlZCBwcm9taXNl
IGluIHN0YXJ0KSByZWFkZXInLCBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IFJlYWRhYmxl
U3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QodGhlRXJyb3IpOyB9CisgICAgfSl9LAorICAgIHRoZUVycm9yCispOworCiB0ZW1wbGF0ZWRS
U0Vycm9yZWRSZWFkZXIoJ1JlYWRhYmxlU3RyZWFtIChlcnJvcmVkIHZpYSByZXR1cm5pbmcgYSBy
ZWplY3RlZCBwcm9taXNlIGluIHN0YXJ0KSByZWFkZXInLCBmdW5jdGlvbigpIHsKICAgICByZXR1
cm4gc3RyZWFtQW5kRGVmYXVsdFJlYWRlcihuZXcgUmVhZGFibGVTdHJlYW0oewogICAgICAgICBz
dGFydDogZnVuY3Rpb24oKSB7CkBAIC03ODQsNiArMTEyMSw0NCBAQCB0ZW1wbGF0ZWRSU1R3b0No
dW5rc09wZW5SZWFkZXIoJ1JlYWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkLCBzdGls
bCBvcGVuKQogICAgIGNodW5rcwogKTsKIAordGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWQoJ1Jl
YWRhYmxlU3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkLCB0aGVuIGNsb3NlZCknLCBmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1
bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGMuZW5xdWV1ZShjaHVua3NbMF0pOworICAgICAgICAg
ICAgYy5lbnF1ZXVlKGNodW5rc1sxXSk7CisgICAgICAgICAgICBjLmNsb3NlKCk7CisgICAgICAg
IH0KKyAgICB9KX0sCisgICAgY2h1bmtzCispOworCit0ZW1wbGF0ZWRSU1R3b0NodW5rc0Nsb3Nl
ZCgnUmVhZGFibGVTdHJlYW0gKHR3byBjaHVua3MgZW5xdWV1ZWQgYXN5bmMsIHRoZW4gY2xvc2Vk
KScsIGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAg
ICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsgYy5lbnF1ZXVlKGNodW5rc1swXSk7IH0sIDEwMCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBjLmVucXVldWUoY2h1bmtzWzFdKTsgfSwgMjAwKTsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGMuY2xvc2UoKTsgfSwgMzAwKTsKKyAgICAgICAgfQor
ICAgIH0pfSwKKyAgICBjaHVua3MKKyk7CisKK3RlbXBsYXRlZFJTVHdvQ2h1bmtzQ2xvc2VkKCdS
ZWFkYWJsZVN0cmVhbSAodHdvIGNodW5rcyBlbnF1ZXVlZCB2aWEgcHVsbCwgdGhlbiBjbG9zZWQp
JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHB1bGxDYWxsID0gMDsKKworICAgIHJldHVybiBuZXcg
UmVhZGFibGVTdHJlYW0oeworICAgICAgICBwdWxsOmZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAg
IGlmIChwdWxsQ2FsbCA+PSBjaHVua3MubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYy5jbG9z
ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjLmVucXVldWUoY2h1
bmtzW3B1bGxDYWxsKytdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfSwK
K2NodW5rcworKTsKKwogdGVtcGxhdGVkUlNUd29DaHVua3NDbG9zZWRSZWFkZXIoJ1JlYWRhYmxl
U3RyZWFtICh0d28gY2h1bmtzIGVucXVldWVkLCB0aGVuIGNsb3NlZCkgcmVhZGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgdmFyIGRvQ2xvc2U7CiAgICAgdmFyIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0
cmVhbSh7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>