Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1blsmY-000722-3U for pgadmin-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 07:14:26 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1blsmX-0003RW-1M for pgadmin-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 07:14:25 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1blsmT-0003Qr-W4 for pgadmin-hackers@postgresql.org; Mon, 19 Sep 2016 07:14:22 +0000 Received: from mail-qk0-x234.google.com ([2607:f8b0:400d:c09::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1blsmL-0006eL-QI for pgadmin-hackers@postgresql.org; Mon, 19 Sep 2016 07:14:20 +0000 Received: by mail-qk0-x234.google.com with SMTP id n185so2265323qke.1 for ; Mon, 19 Sep 2016 00:14:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=OsEpPeM88RoR0oWg5RZxTDAWiW8ta7bjtDsBfE4Uhzk=; b=o2YFj3/3vpw89YuMDWB1UY7uWFIF6BMXaWm7byuky11gQe9jrv9V4E2o2GU+DF7ldZ jyItktWPaxJkCzazVkpAzYJOu1SQSu6oKF3Gqd+r3ypXEWfrgc2nspGYlkqgTvMf3zTA CkH2MwIckyS67HuZoiIdR54Yv6cPBUDEMMcZQCyiuOjRuxervCs64nIL7mQvMzd82WmS vMmEyz6WlwJGY2/x1gbOaYBwhni8QZio7FtZ8txAUBPswmGghkGzDj9Seo1OMQtMLWdd mvvF5WBfDraZSjq8QyM2WZQnExRnAQrpATukTQKAT2Ab8iCs6SKAm1JffK2jrn01kzxc QViw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OsEpPeM88RoR0oWg5RZxTDAWiW8ta7bjtDsBfE4Uhzk=; b=DxbeHmnzJTBe7xOegxZ8wiBrAXCl3TtheWvzUKd5sT7eXiH7dGTnZ9aiHoOoVD9US9 w6p2kzmWTeLP7fyzsZnmCpiPeYAPVpgp/6UGgftEZfhEcF49vg5DTGqDS209oCWM6L46 XIIYFUTtY88XSQZtMlVMDraIyw9urBcrQJOvDFXW1wGp056LDSyG8uJjYD5KgPYAa/AB M5Qbv26aBI7bD2Ffl/M+ioFj8mjok0kI7kkiksrfhh2FOR2xggZeQHqriNFBmwrWt1bI CCFlT1IjXOW3Q3Bfb3YUc2BLewyAGOCTM/0V5YX77zupqhe+bSUmtkZHumr+kvTQctq+ DyAQ== X-Gm-Message-State: AE9vXwORNNq1FXVIvejDCiyd22sWR+2V/IZrCOhdfqpROD2PsrwwzZog6FfxIwUem8ZxwVuv2VIw4oWkpWwMzvJP X-Received: by 10.55.82.66 with SMTP id g63mr30259166qkb.227.1474269252128; Mon, 19 Sep 2016 00:14:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.114 with HTTP; Mon, 19 Sep 2016 00:14:11 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Mon, 19 Sep 2016 12:44:11 +0530 Message-ID: Subject: Re: pgAdmin IV- Testing framework: Enhanced Test Result Summary To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a114a853a1410a1053cd70f20 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114a853a1410a1053cd70f20 Content-Type: multipart/alternative; boundary=001a114a853a14109b053cd70f1e --001a114a853a14109b053cd70f1e Content-Type: text/plain; charset=UTF-8 Hi Dave, Error resolved. Please find the revised patch. On Fri, Sep 16, 2016 at 9:23 PM, Dave Page wrote: > Hi > > On Fri, Sep 16, 2016 at 2:37 PM, Navnath Gadakh > wrote: > > Hi Dave, > > Please find the patch for the enhanced test result summary for > testing > > framework. The code for this, was completed before drop object's > > functionality & independent from drop objects work. > > Drop objects work will take time, I am working on that for remaining > nodes. > > Meanwhile, we go ahead with enhanced test summary. > > > > To run the test suite follow the commands > > 1. python regression/runtests.py --pkg browser.server_groups.servers > > 2. python regression/runtests.py --pkg > > browser.server_groups.servers.databases > > I'm seeing some issues with this patch: > > - There are updates to config.py and setup.py that shouldn't be there. > - I get this error at the end of a successful test run: > > Test Result Summary > ============================ > Regression - PG 9.4: 25 tests passed, 0 tests failed > ============================ > > Please check output in file: > /Users/dpage/git/pgadmin4/web/regression/regression.log > Error in atexit._run_exitfuncs: > Traceback (most recent call last): > File "/System/Library/Frameworks/Python.framework/Versions/2.7/ > lib/python2.7/atexit.py", > line 24, in _run_exitfuncs > func(*targs, **kargs) > File "/Users/dpage/git/pgadmin4/web/regression/test_utils.py", line > 360, in drop_objects > file_name, sys.exc_traceback.tb_lineno, exception)) > Exception: test_utils.py: line:337 'NoneType' object has no attribute > '__getitem__' > Error in sys.exitfunc: > Traceback (most recent call last): > File "/System/Library/Frameworks/Python.framework/Versions/2.7/ > lib/python2.7/atexit.py", > line 24, in _run_exitfuncs > func(*targs, **kargs) > File "/Users/dpage/git/pgadmin4/web/regression/test_utils.py", line > 360, in drop_objects > file_name, sys.exc_traceback.tb_lineno, exception)) > Exception: test_utils.py: line:337 'NoneType' object has no attribute > '__getitem__' > > Thanks. > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > -- Regards, Navnath --001a114a853a14109b053cd70f1e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 Error= resolved. Please find the revised patch.
<= br>
On Fri, Sep 16, 2016 at 9:23 PM, Dave Page <dave.page@enterprisedb.com> wrote:
Hi

On Fri, Sep 16, 2016 at 2:37 PM, Navnath Gadakh
<navnath.gadakh@enter= prisedb.com> wrote:
> Hi Dave,
>=C2=A0 =C2=A0 =C2=A0 Please find the patch for the enhanced test result= summary for testing
> framework. The code for this, was completed before drop object's > functionality & independent from drop objects work.
> Drop objects work will take time, I am working on that for remaining n= odes.
> Meanwhile, we go ahead with enhanced test summary.
>
> To run the test suite follow the commands
> 1. python regression/runtests.py --pkg browser.server_groups.servers > 2. python regression/runtests.py --pkg
> browser.server_groups.servers.databases

I'm seeing some issues with this patch:

- There are updates to config.py and setup.py that shouldn't be there.<= br> - I get this error at the end of a successful test run:

Test Result Summary
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D
Regression - PG 9.4: 25 tests passed, 0 tests failed
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D

Please check output in file:
/Users/dpage/git/pgadmin4/web/regression/regression.log
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
=C2=A0 File "/System/Library/Frameworks/Python.framework/Versions= /2.7/lib/python2.7/atexit.py",
line 24, in _run_exitfuncs
=C2=A0 =C2=A0 func(*targs, **kargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/test_utils.= py", line
360, in drop_objects
=C2=A0 =C2=A0 file_name, sys.exc_traceback.tb_lineno, exception))
Exception: test_utils.py: line:337 'NoneType' object has no attribu= te
'__getitem__'
Error in sys.exitfunc:
Traceback (most recent call last):
=C2=A0 File "/System/Library/Frameworks/Python.framework/Versions= /2.7/lib/python2.7/atexit.py",
line 24, in _run_exitfuncs
=C2=A0 =C2=A0 func(*targs, **kargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/test_utils.= py", line
360, in drop_objects
=C2=A0 =C2=A0 file_name, sys.exc_traceback.tb_lineno, exception))
Exception: test_utils.py: line:337 'NoneType' object has no attribu= te
'__getitem__'


=C2=A0 Thanks.=C2=A0
--
Dave Page
VP, Chief Architect, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake



--
Regards,
Navnath

=

--001a114a853a14109b053cd70f1e-- --001a114a853a1410a1053cd70f20 Content-Type: application/octet-stream; name="enhanced_testresult_summary.patch" Content-Disposition: attachment; filename="enhanced_testresult_summary.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_it9pug9d0 ZGlmZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmlnLnB5Cmlu ZGV4IDA1MTNjZmIuLmI2OWVlMmQgMTAwNjQ0Ci0tLSBhL3dlYi9jb25maWcu cHkKKysrIGIvd2ViL2NvbmZpZy5weQpAQCAtMTA1LDYgKzEwNSwxMiBAQCBM T0dfRklMRSA9IG9zLnBhdGguam9pbigKICAgICAncGdhZG1pbjQubG9nJwog KQogCisjIFNldCBkZWZhdWx0IHRlc3RpbmcgbW9kZQorVEVTVElOR19NT0RF ID0gRmFsc2UKKworIyBUaGUgZGVmYXVsdCBwYXRoIGZvciBTUUxpdGUgZGF0 YWJhc2UgZm9yIHRlc3RpbmcKK1RFU1RfU1FMSVRFX1BBVEggPSBvcy5wYXRo LmpvaW4oREFUQV9ESVIsICd0ZXN0X3BnYWRtaW40LmRiJykKKwogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgU2VydmVyIHNldHRpbmdzCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3Rf ZGJfYWRkLnB5CmluZGV4IDk3ZTFiZjUuLmNiYzE5NGUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9hZGQucHkKQEAgLTI5LDIwICsyOSwyNSBAQCBjbGFzcyBE YXRhYmFzZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAg IGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIGFkZCBkYXRhYmFzZSB1bmRlciAxc3Qgc2VydmVyIG9mIHRyZWUg bm9kZS4gIiIiCisgICAgICAgIHNlbGYuZGJfbmFtZSA9ICcnCiAgICAgICAg IHNlcnZlcl9pZCA9IHRlc3Rfc2VydmVyX2RpY3RbInNlcnZlciJdWzBdWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2 ZXIoc2VsZiwgc2VydmVyX2lkKQotCi0gICAgICAgIGRhdGEgPSBkYXRhYmFz ZV91dGlscy5nZXRfZGJfZGF0YSgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9 IGRhdGFbJ25hbWUnXQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3Qoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBzdHIo c2VydmVyX2lkKSArICIvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAg IGRiX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotICAgICAg ICBkYl9kaWN0ID0geyJkYl9pZCI6IGRiX2lkLCAiZGJfbmFtZSI6IHNlbGYu ZGJfbmFtZX0KLSAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKGludChz ZXJ2ZXJfaWQpLCAiZGlkIiwgZGJfZGljdCkKKyAgICAgICAgc2VydmVyX3Jl c3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNl cnZlcl9pZCkKKyAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJpbmZvIl0g PT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIGRiX293bmVy ID0gc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCisg ICAgICAgICAgICBzZWxmLmRhdGEgPSBkYXRhYmFzZV91dGlscy5nZXRfZGJf ZGF0YShkYl9vd25lcikKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNl bGYuZGF0YVsnbmFtZSddCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ii8iICsgc3RyKHNlcnZlcl9pZCkgKyAiLyIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYu ZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICAgICAgZGJfaWQgPSBy ZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAgICAgICAgICBkYl9k aWN0ID0geyJkYl9pZCI6IGRiX2lkLCAiZGJfbmFtZSI6IHNlbGYuZGJfbmFt ZX0KKyAgICAgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbyhpbnQoc2Vy dmVyX2lkKSwgImRpZCIsIGRiX2RpY3QpCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNvbm5lY3Rp bmcgc2VydmVyIHRvIGFkZCB0aGUiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiBkYXRhYmFzZS4iKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0 X2RiX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5w eQppbmRleCA4MzkzMTNhLi5kMjEzMmJkIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv dGVzdHMvdGVzdF9kYl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rl c3RfZGJfZGVsZXRlLnB5CkBAIC02LDYgKzYsOCBAQAogIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK ICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAorCiBm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF9zZXJ2ZXJfZGljdApA QCAtMjEsNyArMjMsOCBAQCBjbGFzcyBEYXRhYmFzZURlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgIEBjbGFzc21ldGhvZAogICAg IGRlZiBzZXRVcENsYXNzKGNscyk6Ci0gICAgICAgIGNscy5kYl9pZCA9IHV0 aWxzLmNyZWF0ZV9kYXRhYmFzZShjbHMuc2VydmVyLCAidGVzdF9kYl9kZWxl dGUiKQorICAgICAgICBjbHMuZGJfbmFtZSA9ICJkYl9kZWxldGVfJXMiICUg c3RyKHV1aWQudXVpZDQoKSlbMTo0XSwKKyAgICAgICAgY2xzLmRiX2lkID0g dXRpbHMuY3JlYXRlX2RhdGFiYXNlKGNscy5zZXJ2ZXIsIGNscy5kYl9uYW1l KQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFzZS4iIiIKQEAgLTQw LDQgKzQzLDEwIEBAIGNsYXNzIERhdGFiYXNlRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm IHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAgcGFzcworICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIGRyb3AgdGhlIGFkZGVkIGRhdGFiYXNlIiIiCisg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihj bHMuc2VydmVyWydkYiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlclsndXNlcm5hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs cy5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyWydob3N0J10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbHMuc2VydmVyWydwb3J0J10pCisgICAgICAgIHV0aWxzLmRyb3BfZGF0 YWJhc2UoY29ubmVjdGlvbiwgY2xzLmRiX25hbWUpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVz dF9kYl9nZXQucHkKaW5kZXggNDFlZDE0MC4uZWRhYTkyMyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZ2V0LnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90 ZXN0cy90ZXN0X2RiX2dldC5weQpAQCAtMjUsMjQgKzI1LDI0IEBAIGNsYXNz IERhdGFiYXNlc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBmZXRjaCBhZGRlZCBkYXRhYmFzZS4gIiIiCiAgICAgICAgIHNl cnZlcl9kYXRhID0gdGVzdF9zZXJ2ZXJfZGljdFsiZGF0YWJhc2UiXVswXQot ICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0K LSAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLmRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KICAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMudmVyaWZ5X2RhdGFiYXNl KHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYl9pZCkKLSAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgdHJ5OgotICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAg ICAgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsgc3RyKAotICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgIHN0cihkYl9p ZCksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQot ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246Ci0g ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBn ZXR0aW5nIGRhdGFiYXNlLiAlcyIgJSBleGNlcHRpb24pCi0gICAgICAgICAg ICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICMgRGlzY29ubmVjdCBkYXRh YmFzZSB0byBkZWxldGUgaXQKLSAgICAgICAgICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJf aWQpCi0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNv bm5lY3RlZC4iOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lk KSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICAgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBnZXR0aW5nIGRh dGFiYXNlLiAlcyIgJSBleGNlcHRpb24pCisgICAgICAgIGZpbmFsbHk6Cisg ICAgICAgICAgICAjIERpc2Nvbm5lY3QgZGF0YWJhc2UgdG8gZGVsZXRlIGl0 CisgICAgICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CmluZGV4IDIxM2M5NDcuLjIxZjIwYzMg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkKQEAgLTgsMTEgKzgsMTEg QEAKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCBqc29uCitp bXBvcnQgdXVpZAogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVz dF9zZXJ2ZXJfZGljdAotZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1w b3J0IGFkdmFuY2VkX2NvbmZpZ19kYXRhCiBmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIGRhdGFiYXNlX3V0aWxzCiAKIApAQCAtMjUsNyArMjUsNyBAQCBjbGFz cyBEYXRhYmFzZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0VXBDbGFzcyhjbHMp OgotICAgICAgICBjbHMuZGJfbmFtZSA9ICJ0ZXN0X2RiX3B1dCIKKyAgICAg ICAgY2xzLmRiX25hbWUgPSAidGVzdF9kYl9wdXRfJXMiICUgc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSwKICAgICAgICAgY2xzLmRiX2lkID0gdXRpbHMuY3Jl YXRlX2RhdGFiYXNlKGNscy5zZXJ2ZXIsIGNscy5kYl9uYW1lKQogCiAgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CkBAIC0zOSwxMCArMzksMTEgQEAgY2xhc3Mg RGF0YWJhc2VzVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICBpZiBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVj dGVkLiI6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZGF0 YSA9IHsKLSAgICAgICAgICAgICAgICAgICAgImNvbW1lbnRzIjogYWR2YW5j ZWRfY29uZmlnX2RhdGFbImRiX3VwZGF0ZV9kYXRhIl1bImNvbW1lbnQiXSwK KyAgICAgICAgICAgICAgICAgICAgImNvbW1lbnRzIjogIlRoaXMgaXMgZGIg dXBkYXRlIGNvbW1lbnQiLAogICAgICAgICAgICAgICAgICAgICAiaWQiOiBk Yl9pZAogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsg c3RyKAogICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkKSArICcv JyArCiAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCksIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvdGVzdHMvdXRpbHMucHkKaW5kZXggNzMyZTk4ZC4uNzkwMDg2 MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy91dGlscy5weQpAQCAtMTksMjggKzE5LDEwMyBAQCBEQVRB QkFTRV9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycKIERBVEFCQVNF X0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVjdC8nCiAK IAotZGVmIGdldF9kYl9kYXRhKCk6Ci0gICAgIiIiVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIHRoZSBkYXRhYmFzZSBkZXRhaWxzIGZyb20ganNvbiBmaWxlIiIi Ci0gICAgZGF0YSA9IE5vbmUKLSAgICBpZiBhZHZhbmNlZF9jb25maWdfZGF0 YVsnYWRkX2RhdGFiYXNlX2RhdGEnXSBpcyBub3QgTm9uZToKLSAgICAgICAg YWR2X2NvbmZpZ19kYXRhID0gYWR2YW5jZWRfY29uZmlnX2RhdGFbJ2FkZF9k YXRhYmFzZV9kYXRhJ10KLSAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAg ICJkYXRhY2wiOiBhZHZfY29uZmlnX2RhdGFbJ3ByaXZpbGVnZXNfYWNsJ10s Ci0gICAgICAgICAgICAiZGF0Y29ubmxpbWl0IjogYWR2X2NvbmZpZ19kYXRh Wydjb25uX2xpbWl0J10sCi0gICAgICAgICAgICAiZGF0b3duZXIiOiBhZHZf Y29uZmlnX2RhdGFbJ293bmVyJ10sCi0gICAgICAgICAgICAiZGVmZnVuY2Fj bCI6IGFkdl9jb25maWdfZGF0YVsnZnVuX2FjbCddLAotICAgICAgICAgICAg ImRlZnNlcWFjbCI6IGFkdl9jb25maWdfZGF0YVsnc2VxX2FjbCddLAotICAg ICAgICAgICAgImRlZnRibGFjbCI6IGFkdl9jb25maWdfZGF0YVsndGJsX2Fj bCddLAotICAgICAgICAgICAgImRlZnR5cGVhY2wiOiBhZHZfY29uZmlnX2Rh dGFbJ3R5cGVfYWNsJ10sCi0gICAgICAgICAgICAiZW5jb2RpbmciOiBhZHZf Y29uZmlnX2RhdGFbJ2VuY29kaW5nJ10sCi0gICAgICAgICAgICAibmFtZSI6 IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0sCi0gICAgICAgICAgICAicHJpdmls ZWdlcyI6IGFkdl9jb25maWdfZGF0YVsncHJpdmlsZWdlcyddLAotICAgICAg ICAgICAgInNlY3VyaXRpZXMiOiBhZHZfY29uZmlnX2RhdGFbJ3NlY3VyaXRp ZXMnXSwKLSAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBhZHZfY29uZmlnX2Rh dGFbJ3ZhcmlhYmxlcyddCi0gICAgICAgIH0KK2RlZiBnZXRfZGJfZGF0YShk Yl9vd25lcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5z IHRoZSBkYXRhYmFzZSBkZXRhaWxzIGluIGRpY3QgZm9ybWF0CisgICAgIiIi CisgICAgZGF0YSA9IHsKKyAgICAgICAgImRhdGNvbm5saW1pdCI6IC0xLAor ICAgICAgICAiZGF0b3duZXIiOiBkYl9vd25lciwKKyAgICAgICAgImRlZmZ1 bmNhY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogZGJfb3du ZXIsCisgICAgICAgICJncmFudG9yIjogZGJfb3duZXIsCisgICAgICAgICJw cml2aWxlZ2VzIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2 aWxlZ2VfdHlwZSI6ICJYIiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiBU cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAg ICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgICAgICJk ZWZzZXFhY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogZGJf b3duZXIsCisgICAgICAgICJncmFudG9yIjogZGJfb3duZXIsCisgICAgICAg ICJwcml2aWxlZ2VzIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJw cml2aWxlZ2VfdHlwZSI6ICJyIiwKKyAgICAgICAgICAgICJwcml2aWxlZ2Ui OiBUcnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAg ICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVn ZV90eXBlIjogInciLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IFRydWUs CisgICAgICAgICAgICAid2l0aF9ncmFudCI6IEZhbHNlCisgICAgICAgICAg fSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUi OiAiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAg ICAgICAgICJ3aXRoX2dyYW50IjogRmFsc2UKKyAgICAgICAgICB9CisgICAg ICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICAgICAiZGVmdGJsYWNsIjog WworICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6IGRiX293bmVyLAorICAg ICAgICAiZ3JhbnRvciI6IGRiX293bmVyLAorICAgICAgICAicHJpdmlsZWdl cyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5 cGUiOiAiYSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAg ICAgICAgICAgICJ3aXRoX2dyYW50IjogVHJ1ZQorICAgICAgICAgIH0sCisg ICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogInIi LAorICAgICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAg ICAid2l0aF9ncmFudCI6IEZhbHNlCisgICAgICAgICAgfQorICAgICAgICBd CisgICAgICB9CisgICAgXSwKKyAgICAgICAgImRlZnR5cGVhY2wiOiBbCisg ICAgICB7CisgICAgICAgICJncmFudGVlIjogZGJfb3duZXIsCisgICAgICAg ICJncmFudG9yIjogZGJfb3duZXIsCisgICAgICAgICJwcml2aWxlZ2VzIjog WworICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6 ICJVIiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAg ICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgIH0KKyAgICAg ICAgXQorICAgICAgfQorICAgIF0sCisgICAgICAgICJlbmNvZGluZyI6ICJV VEY4IiwKKyAgICAgICAgIm5hbWUiOiAiZGJfYWRkXyVzIiAlIHN0cih1dWlk LnV1aWQ0KCkpWzE6NF0sCisgICAgICAgICJwcml2aWxlZ2VzIjogW10sCisg ICAgICAgICJzZWN1cml0aWVzIjogW10sCisgICAgICAgICJ2YXJpYWJsZXMi OiBbXQorICAgIH0KICAgICByZXR1cm4gZGF0YQogCiAKK2RlZiBjcmVhdGVf ZGF0YWJhc2UoY29ubmVjdGlvbiwgZGJfbmFtZSk6CisgICAgIiIiVGhpcyBm dW5jdGlvbiB1c2VkIHRvIGNyZWF0ZSBkYXRhYmFzZSIiIgorICAgIHRyeToK KyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNv bGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlv bl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJDUkVBVEUgREFU QUJBU0UgJXMiICUgZGJfbmFtZSkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRf aXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAg IGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgcmV0dXJuIHBnX2N1cnNv cgorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNyZWF0aW5nIGRhdGFi YXNlLiAlcyIgJSBleGNlcHRpb24pCisKKwogZGVmIHZlcmlmeV9kYXRhYmFz ZShzZWxmLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgZGJfaWQpOgogICAg ICIiIgogICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhhdCBkYXRhYmFz ZSBpcyBleGlzdHMgYW5kIHdoZXRoZXIgaXQgY29ubmVjdApkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRk LnB5CmluZGV4IDA4ZWQ4ZDYuLmU4OWI5ZDcgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rl c3Rfc2VydmVyX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkK QEAgLTIyLDggKzIyLDcgQEAgY2xhc3MgU2VydmVyc0FkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBO b2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQog ICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNz KGNscyk6CisgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBwYXNzCiAK ICAgICBkZWYgcnVuVGVzdChzZWxmKToKQEAgLTMzLDE0ICszMiwxMiBAQCBj bGFzcyBTZXJ2ZXJzQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogICAgICAgICByZXNwb25zZV9k YXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgn KSkKLSAgICAgICAgc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSdd WydfaWQnXQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oaW50KHNl cnZlcl9pZCksICJzaWQiLCBzZWxmLnNlcnZlcikKKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAg ICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbyhpbnQoc2VsZi5zZXJ2ZXJfaWQp LCAic2lkIiwgc2VsZi5zZXJ2ZXIpCiAKLSAgICBAY2xhc3NtZXRob2QKLSAg ICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVs ZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgJiBjbGVhcnMgdGhlIG5vZGVf aW5mb19kaWN0CiAgICAgICAgICIiIgotICAgICAgICBzZXJ2ZXJfaWQgPSBz ZXJ2ZXJfdXRpbHMuZ2V0X3NlcnZlcl9pZCgpCi0gICAgICAgIHV0aWxzLmRl bGV0ZV9zZXJ2ZXIoc2VydmVyX2lkKQorICAgICAgICB1dGlscy5kZWxldGVf c2VydmVyKHNlbGYuc2VydmVyX2lkKQogICAgICAgICB1dGlscy5jbGVhcl9u b2RlX2luZm9fZGljdCgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9k ZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKaW5kZXggZGRj ODI5Yi4uMDk1OWQxMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVs ZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQpAQCAtMTEs NyArMTEsNiBAQCBpbXBvcnQganNvbgogCiBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gLiBpbXBvcnQg dXRpbHMgYXMgc2VydmVyX3V0aWxzCiAKIAogY2xhc3MgU2VydmVyRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMjUsMjMgKzI0LDE2 IEBAIGNsYXNzIFNlcnZlckRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0VXBDbGFzcyhj bHMpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVy IHRvIHRlc3QgdGhlIERFTEVURSBBUEkiIiIKLSAgICAgICAgc2VydmVyX3V0 aWxzLmFkZF9zZXJ2ZXIoY2xzLnNlcnZlcikKKyAgICAgICAgY2xzLnNlcnZl cl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoY2xzLnNlcnZlcikKIAogICAg IGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IGRlbGV0ZXMgdGhlIGFkZGVkIHNlcnZlciIiIgotICAgICAgICBhbGxfaWQg PSB1dGlscy5nZXRfbm9kZV9pbmZvX2RpY3QoKQotICAgICAgICBzZXJ2ZXJz X2luZm8gPSBhbGxfaWRbInNpZCJdCiAgICAgICAgIHVybCA9IHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAiLyIKLQotICAgICAgICBp ZiBsZW4oc2VydmVyc19pbmZvKSA9PSAwOgorICAgICAgICBpZiBub3Qgc2Vs Zi5zZXJ2ZXJfaWQ6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5v IHNlcnZlciB0byBkZWxldGUhISEiKQotCiAgICAgICAgICMgQ2FsbCBBUEkg dG8gZGVsZXRlIHRoZSBzZXJ2ZXJzCi0gICAgICAgIHNlcnZlcl9pZCA9IGxp c3Qoc2VydmVyc19pbmZvWzBdLmtleXMoKSlbMF0KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNlcnZlcl9pZCkp CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCAr IHN0cihzZWxmLnNlcnZlcl9pZCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIHJlc3Bv bnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1 dGYtOCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZV9k YXRhWydzdWNjZXNzJ10sIDEpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBk ZWYgdGVhckRvd25DbGFzcyhjbHMpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CmluZGV4IGRl OTJhNjMuLmQzYzViYmEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1 dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKQEAgLTIxLDM3ICsy MSwyNCBAQCBjbGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKICAgICBdCiAK LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgor ICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBhZGQgdGhlIHNlcnZlciB0byB0ZXN0IHRoZSBQVVQgQVBJIiIiCi0gICAg ICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNscy5zZXJ2ZXIpCisgICAg ICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZlcihzZWxm LnNlcnZlcikKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHVwZGF0ZSB0aGUgc2VydmVyIGRldGFpbHMiIiIK LSAgICAgICAgYWxsX2lkID0gdXRpbHMuZ2V0X25vZGVfaW5mb19kaWN0KCkK LSAgICAgICAgc2VydmVyc19pbmZvID0gYWxsX2lkWyJzaWQiXQotCi0gICAg ICAgIGlmIGxlbihzZXJ2ZXJzX2luZm8pID09IDA6CisgICAgICAgIGlmIG5v dCBzZWxmLnNlcnZlcl9pZDoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiTm8gc2VydmVyIHRvIHVwZGF0ZS4iKQotCi0gICAgICAgIHNlcnZlcl9p ZCA9IGxpc3Qoc2VydmVyc19pbmZvWzBdLmtleXMoKSlbMF0KLSAgICAgICAg ZGF0YSA9IHsKLSAgICAgICAgICAgICJjb21tZW50IjoKLSAgICAgICAgICAg ICAgICBzZXJ2ZXJfdXRpbHMuY29uZmlnX2RhdGFbJ3NlcnZlcl91cGRhdGVf ZGF0YSddWzBdWwotICAgICAgICAgICAgICAgICAgICAnY29tbWVudCddLAot ICAgICAgICAgICAgImlkIjogc2VydmVyX2lkCi0gICAgICAgIH0KKyAgICAg ICAgZGF0YSA9IHsiY29tbWVudCI6IHNlbGYuc2VydmVyWydjb21tZW50J10s ICJpZCI6IHNlbGYuc2VydmVyX2lkfQogICAgICAgICBwdXRfcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wdXQoCiAgICAgICAgICAgICBzZWxmLnVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihzZXJ2ZXJfaWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJE b3duQ2xhc3MoY2xzKToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAg ICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2Vy dmVyIGZyb20gU1FMaXRlICYgY2xlYXJzIHRoZSBub2RlX2luZm9fZGljdAog ICAgICAgICAiIiIKLSAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX3V0aWxz LmdldF9zZXJ2ZXJfaWQoKQotICAgICAgICB1dGlscy5kZWxldGVfc2VydmVy KHNlcnZlcl9pZCkKKyAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxm LnNlcnZlcl9pZCkKICAgICAgICAgdXRpbHMuY2xlYXJfbm9kZV9pbmZvX2Rp Y3QoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5weQpp bmRleCA5NGE3ODExLi5jMWI1MjU5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy91dGlscy5weQpAQCAtMTksMTcgKzE5LDcgQEAgZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIHJl Z3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKIAogU0VS VkVSX1VSTCA9ICcvYnJvd3Nlci9zZXJ2ZXIvb2JqLycKLVNFUlZFUl9DT05O RUNUX1VSTCA9ICdicm93c2VyL3NlcnZlci9jb25uZWN0LycKLQotCi1kZWYg Z2V0X3NlcnZlcl9pZCgpOgotICAgICIiIlRoaXMgZnVuY3Rpb24gcmV0dXJu cyB0aGUgc2VydmVyIGlkIGZyb20gbm9kZV9pbmZvX2RpY3QiIiIKLQotICAg IHNlcnZlcl9pZCA9IDAKLSAgICBpZiAic2lkIiBpbiBub2RlX2luZm9fZGlj dDoKLSAgICAgICAgaWYgbm9kZV9pbmZvX2RpY3RbJ3NpZCddOgotICAgICAg ICAgICAgc2VydmVyX2lkID0gbGlzdChub2RlX2luZm9fZGljdFsnc2lkJ11b MF0ua2V5cygpKVswXQotICAgIHJldHVybiBzZXJ2ZXJfaWQKK1NFUlZFUl9D T05ORUNUX1VSTCA9ICcvYnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC8nCiAKIAog ZGVmIGNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCk6CkBAIC0zNyw4 ICsyNyw4IEBAIGRlZiBjb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQp OgogICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBjb25uZWN0IGFkZGVkIHNl cnZlcgogICAgIDpwYXJhbSBzZWxmOiBjbGFzcyBvYmplY3Qgb2Ygc2VydmVy J3MgdGVzdCBjbGFzcwogICAgIDp0eXBlIHNlbGY6IGNsYXNzCi0gICAgOnBh cmFtIHNlcnZlcl9pZDogZmxhZyBmb3IgZGIgYWRkIHRlc3QgY2FzZQotICAg IDp0eXBlIHNlcnZlcl9pZDogYm9vbAorICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6 IHNlcnZlciBpZAorICAgIDp0eXBlIHNlcnZlcl9pZDogc3RyCiAgICAgIiIi CiAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KFNFUlZFUl9DT05O RUNUX1VSTCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCks CkBAIC00NywyNCArMzcsMyBAQCBkZWYgY29ubmVjdF9zZXJ2ZXIoc2VsZiwg c2VydmVyX2lkKToKICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg PT0gMjAwCiAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCiAgICAgcmV0dXJuIHJlc3BvbnNl X2RhdGEKLQotCi1kZWYgYWRkX3NlcnZlcihzZXJ2ZXIpOgotICAgIHRyeToK LSAgICAgICAgY29ubiA9IHNxbGl0ZTMuY29ubmVjdChjb25maWcuU1FMSVRF X1BBVEgpCi0gICAgICAgIGN1ciA9IGNvbm4uY3Vyc29yKCkKLSAgICAgICAg c2VydmVyX2RldGFpbHMgPSAoCi0gICAgICAgICAgICAxLCB1dGlscy5TRVJW RVJfR1JPVVAsIHNlcnZlclsnbmFtZSddLCBzZXJ2ZXJbJ2hvc3QnXSwKLSAg ICAgICAgICAgIHNlcnZlclsncG9ydCddLCBzZXJ2ZXJbJ2RiJ10sIHNlcnZl clsndXNlcm5hbWUnXSwKLSAgICAgICAgICAgIHNlcnZlclsncm9sZSddLCBz ZXJ2ZXJbJ3NzbG1vZGUnXSwKLSAgICAgICAgICAgIHNlcnZlclsnY29tbWVu dCddKQotICAgICAgICBjdXIuZXhlY3V0ZSgKLSAgICAgICAgICAgICdJTlNF UlQgSU5UTyBzZXJ2ZXIgKHVzZXJfaWQsIHNlcnZlcmdyb3VwX2lkLCBuYW1l LCBob3N0LCAnCi0gICAgICAgICAgICAncG9ydCwgbWFpbnRlbmFuY2VfZGIs IHVzZXJuYW1lLCByb2xlLCBzc2xfbW9kZSwnCi0gICAgICAgICAgICAnIGNv bW1lbnQpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyknLCBzZXJ2ZXJf ZGV0YWlscykKLSAgICAgICAgc2VydmVyX2lkID0gY3VyLmxhc3Ryb3dpZAot ICAgICAgICAjIEFkZCBzZXJ2ZXIgaW5mbyB0byBub2RlX2luZm9fZGljdAot ICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oaW50KHNlcnZlcl9pZCks ICJzaWQiLCBzZXJ2ZXIpCi0gICAgICAgIGNvbm4uY29tbWl0KCkKLSAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKLSAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKGVycikKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL19faW5pdF9f LnB5IGIvd2ViL3JlZ3Jlc3Npb24vX19pbml0X18ucHkKaW5kZXggNmEyNzQ0 OC4uYzAwMWJlNiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vX19pbml0 X18ucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vX19pbml0X18ucHkKQEAgLTI4 LDUgKzI4LDcgQEAgbm9kZV9pbmZvX2RpY3QgPSB7CiBnbG9iYWwgdGVzdF9z ZXJ2ZXJfZGljdAogdGVzdF9zZXJ2ZXJfZGljdCA9IHsKICAgICAgICAgInNl cnZlciI6IFtdLAotICAgICAgICAiZGF0YWJhc2UiOiBbXQorICAgICAgICAi ZGF0YWJhc2UiOiBbXSwKKyAgICAgICAgInRhYmxlc3BhY2UiOiBbXSwKKyAg ICAgICAgInJvbGUiOiBbXQogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5IGIv d2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKaW5kZXggYjI0MTQ1My4uMDcw MGEwNiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkK KysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKQEAgLTM2LDggKzM2 LDggQEAgaW1wb3J0IHRlc3Rfc2V0dXAKIAogIyBFeGVjdXRlIHNldHVwLnB5 IGlmIHRlc3QgU1FMaXRlIGRhdGFiYXNlIGRvZXNuJ3QgZXhpc3QuCiBpZiBv cy5wYXRoLmlzZmlsZShjb25maWcuVEVTVF9TUUxJVEVfUEFUSCk6Ci0gICAg cHJpbnQoIlRoZSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIGFscmVhZHkgZXhp c3RzIGF0ICclcycuICIKLSAgICAgICAgICAiUGxlYXNlIHJlbW92ZSB0aGUg ZGF0YWJhc2UgYW5kIHJlLXJ1biB0aGUgdGVzdCBzdWl0ZS4iICUKKyAgICBw cmludCgiVGhlIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2UgYWxyZWFkeSBleGlz dGVkIGF0ICclcycuICIKKyAgICAgICAgICAiUGxlYXNlIHJlbW92ZSB0aGUg ZGF0YWJhc2UgYW5kIGFnYWluIHJ1biB0aGUgdGVzdCBzdWl0ZS4iICUKICAg ICAgICAgICBjb25maWcuVEVTVF9TUUxJVEVfUEFUSCkKICAgICBzeXMuZXhp dCgxKQogZWxzZToKQEAgLTE1MSw2ICsxNTEsMjYgQEAgZGVmIHNpZ19oYW5k bGVyKHNpZ25vLCBmcmFtZSk6CiAgICAgdGVzdF91dGlscy5kcm9wX29iamVj dHMoKQogCiAKK2RlZiBnZXRfdGVzdHNfcmVzdWx0KHRlc3RzKToKKyAgICAi IiJUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHRvdGFsIHJhbiBhbmQgdG90 YWwgZmFpbGVkIHRlc3QgY2FzZXMgY291bnQiIiIKKyAgICB0b3RhbF9yYW4g PSB0ZXN0cy50ZXN0c1J1bgorICAgIGZhaWxlZF9jYXNlc19yZXN1bHQgPSBb XQorICAgIGlmIHRvdGFsX3JhbjoKKyAgICAgICAgaWYgdGVzdHMuZmFpbHVy ZXM6CisgICAgICAgICAgICBmb3IgZmFpbGVkX2Nhc2UgaW4gdGVzdHMuZmFp bHVyZXM6CisgICAgICAgICAgICAgICAgY2xhc3NfbmFtZSA9IHN0cihmYWls ZWRfY2FzZVswXSkuc3BsaXQoJy4nKVstMV0uc3BsaXQoKVswXS5cCisgICAg ICAgICAgICAgICAgICAgIHN0cmlwKCcpJykKKyAgICAgICAgICAgICAgICBm YWlsZWRfY2FzZXNfcmVzdWx0LmFwcGVuZChjbGFzc19uYW1lKQorICAgICAg ICBpZiB0ZXN0cy5lcnJvcnM6CisgICAgICAgICAgICBmb3IgZXJyb3JfY2Fz ZSBpbiB0ZXN0cy5lcnJvcnM6CisgICAgICAgICAgICAgICAgY2xhc3NfbmFt ZSA9IHN0cihlcnJvcl9jYXNlWzBdKS5zcGxpdCgnLicpWy0xXS5zcGxpdCgp WzBdLlwKKyAgICAgICAgICAgICAgICAgICAgc3RyaXAoJyknKQorICAgICAg ICAgICAgICAgIGlmIGNsYXNzX25hbWUgbm90IGluIGZhaWxlZF9jYXNlc19y ZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZF9jYXNlc19yZXN1 bHQuYXBwZW5kKGNsYXNzX25hbWUpCisKKyAgICByZXR1cm4gdG90YWxfcmFu LCBmYWlsZWRfY2FzZXNfcmVzdWx0CisKKwogY2xhc3MgU3RyZWFtVG9Mb2dn ZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBs b2dfbGV2ZWw9bG9nZ2luZy5JTkZPKToKICAgICAgICAgc2VsZi50ZXJtaW5h bCA9IHN5cy5zdGRlcnIKQEAgLTE3Niw2ICsxOTYsNyBAQCBjbGFzcyBTdHJl YW1Ub0xvZ2dlcihvYmplY3QpOgogCiAKIGlmIF9fbmFtZV9fID09ICdfX21h aW5fXyc6CisgICAgdGVzdF9yZXN1bHQgPSBkaWN0KCkKICAgICAjIFJlZ2lz dGVyIGNsZWFudXAgZnVuY3Rpb24gdG8gY2xlYW51cCBvbiBleGl0CiAgICAg YXRleGl0LnJlZ2lzdGVyKHRlc3RfdXRpbHMuZHJvcF9vYmplY3RzKQogICAg ICMgU2V0IHNpZ25hbCBoYW5kbGVyIGZvciBjbGVhbnVwCkBAIC0yMDMsNyAr MjI0LDkgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAgICAg Zm9yIHNlcnZlciBpbiBzZXJ2ZXJzX2luZm86CiAgICAgICAgICAgICBwcmlu dCgiXG49PT09PT09PT09PT09UnVubmluZyB0aGUgdGVzdCBjYXNlcyBmb3Ig JyVzJz09PT09PT09PT09PT0iCiAgICAgICAgICAgICAgICAgICAlIHNlcnZl clsnbmFtZSddLCBmaWxlPXN5cy5zdGRlcnIpCisKICAgICAgICAgICAgIHRl c3RfdXRpbHMuY3JlYXRlX3Rlc3Rfc2VydmVyKHNlcnZlcikKKwogICAgICAg ICAgICAgIyBMb2dpbiB0aGUgdGVzdCBjbGllbnQKICAgICAgICAgICAgIHRl c3RfdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQodGVzdF9jbGllbnQpCiAK QEAgLTIxMSwxMSArMjM0LDI5IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5f Xyc6CiAgICAgICAgICAgICB0ZXN0cyA9IHVuaXR0ZXN0LlRleHRUZXN0UnVu bmVyKHN0cmVhbT1zeXMuc3RkZXJyLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnM9VHJ1ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy Ym9zaXR5PTIpLnJ1bihzdWl0ZSkKKworICAgICAgICAgICAgcmFuX3Rlc3Rz LCBmYWlsZWRfY2FzZXMgPSBnZXRfdGVzdHNfcmVzdWx0KHRlc3RzKQorICAg ICAgICAgICAgdGVzdF9yZXN1bHRbc2VydmVyWyduYW1lJ11dID0gW3Jhbl90 ZXN0cywgZmFpbGVkX2Nhc2VzXQorCiAgICAgICAgICAgICAjIExvZ291dCB0 aGUgdGVzdCBjbGllbnQKICAgICAgICAgICAgIHRlc3RfdXRpbHMubG9nb3V0 X3Rlc3Rlcl9hY2NvdW50KHRlc3RfY2xpZW50KQogCi0gICAgICAgICAgICB0 ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcihzZXJ2ZXIpCisgICAgICAg ICAgICB0ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcigpCiAgICAgZXhj ZXB0IFN5c3RlbUV4aXQ6CiAgICAgICAgIHRlc3RfdXRpbHMuZHJvcF9vYmpl Y3RzKCkKIAotICAgIHByaW50KCJQbGVhc2UgY2hlY2sgb3V0cHV0IGluIGZp bGU6ICVzL3JlZ3Jlc3Npb24ubG9nICIgJSBDVVJSRU5UX1BBVEgpCisgICAg cHJpbnQoIlxuVGVzdCBSZXN1bHQgU3VtbWFyeSIsIGZpbGU9c3lzLnN0ZGVy cikKKyAgICBwcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PSIs IGZpbGU9c3lzLnN0ZGVycikKKyAgICBmb3Igc2VydmVyX3JlcyBpbiB0ZXN0 X3Jlc3VsdDoKKyAgICAgICAgZmFpbGVkX2Nhc2VzID0gIiwiLmpvaW4odGVz dF9yZXN1bHRbc2VydmVyX3Jlc11bMV0pCisgICAgICAgIHRvdGFsX2ZhaWxl ZCA9IGxlbih0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcmVzXVsxXSkKKyAgICAgICAg dG90YWxfcGFzc2VkID0gaW50KHRlc3RfcmVzdWx0W3NlcnZlcl9yZXNdWzBd KSAtIHRvdGFsX2ZhaWxlZAorCisgICAgICAgIHByaW50KCIlczogJXMgdGVz dCVzIHBhc3NlZCwgJXMgdGVzdCVzIGZhaWxlZCAlcyVzJXMiICUKKyAgICAg ICAgICAgICAgKHNlcnZlcl9yZXMsIHRvdGFsX3Bhc3NlZCwgKHRvdGFsX3Bh c3NlZCAhPSAxIGFuZCAicyIgb3IgIiIpLAorICAgICAgICAgICAgICAgdG90 YWxfZmFpbGVkLCAodG90YWxfZmFpbGVkICE9IDEgYW5kICJzIiBvciAiIiks CisgICAgICAgICAgICAgICAodG90YWxfZmFpbGVkICE9IDAgYW5kICIoIiBv ciAiIiksIGZhaWxlZF9jYXNlcywKKyAgICAgICAgICAgICAgICh0b3RhbF9m YWlsZWQgIT0gMCBhbmQgIikiIG9yICIiKSksIGZpbGU9c3lzLnN0ZGVycikK KyAgICBwcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PSIsIGZp bGU9c3lzLnN0ZGVycikKKworICAgIHByaW50KCJcblBsZWFzZSBjaGVjayBv dXRwdXQgaW4gZmlsZTogJXMvcmVncmVzc2lvbi5sb2cgIiAlIENVUlJFTlRf UEFUSCkKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMu cHkgYi93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CmluZGV4IDFiOTZj OWEuLjljNWQyNjQgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3Rf dXRpbHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpA QCAtMTAsMTggKzEwLDI0IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp bnRfZnVuY3Rpb24KIAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCitpbXBvcnQg dXVpZAogaW1wb3J0IHBzeWNvcGcyCiBpbXBvcnQgc3FsaXRlMworCitpbXBv cnQgbG9nZ2luZworCiBpbXBvcnQgY29uZmlnCiAKIGltcG9ydCB0ZXN0X3Nl dHVwCiBpbXBvcnQgcmVncmVzc2lvbgogCiBTRVJWRVJfR1JPVVAgPSB0ZXN0 X3NldHVwLmNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorbG9nZ2VyID0g bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCitmaWxlX25hbWUgPSBvcy5w YXRoLmJhc2VuYW1lKF9fZmlsZV9fKQogCiAKIGRlZiBnZXRfZGJfY29ubmVj dGlvbihkYiwgdXNlcm5hbWUsIHBhc3N3b3JkLCBob3N0LCBwb3J0KToKLSAg ICAiIiJUaGlzIGZ1bmN0aW9uIHJldHJ1bnMgdGhlIGNvbm5lY3Rpb24gb2Jq ZWN0IG9mIHBzeWNvcGciIiIKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlIGNvbm5lY3Rpb24gb2JqZWN0IG9mIHBzeWNvcGciIiIKICAgICBj b25uZWN0aW9uID0gcHN5Y29wZzIuY29ubmVjdChkYXRhYmFzZT1kYiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXVzZXJuYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3Jk PXBhc3N3b3JkLApAQCAtNzEsNyArNzcsNyBAQCBkZWYgZ2V0X2NvbmZpZ19k YXRhKCk6CiAgICAgc2VydmVyX2RhdGEgPSBbXQogICAgIGZvciBzcnYgaW4g dGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VydmVyX2NyZWRlbnRpYWxzJ106 CiAgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzcnZbJ25hbWUnXSwKLSAgICAg ICAgICAgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgICAgICAgICAgICJj b21tZW50Ijogc3J2Wydjb21tZW50J10sCiAgICAgICAgICAgICAgICAgImhv c3QiOiBzcnZbJ2hvc3QnXSwKICAgICAgICAgICAgICAgICAicG9ydCI6IHNy dlsnZGJfcG9ydCddLAogICAgICAgICAgICAgICAgICJkYiI6IHNydlsnbWFp bnRlbmFuY2VfZGInXSwKQEAgLTE0MiwxOSArMTQ4LDIyIEBAIGRlZiBjcmVh dGVfZGF0YWJhc2Uoc2VydmVyLCBkYl9uYW1lKToKICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJFcnJvciB3aGlsZSBjcmVhdGluZyBkYXRhYmFzZS4gJXMi ICUgZXhjZXB0aW9uKQogCiAKLWRlZiBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rp b24sIGRiX25hbWUpOgorZGVmIGRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwg ZGF0YWJhc2VfbmFtZSk6CiAgICAgIiIiVGhpcyBmdW5jdGlvbiB1c2VkIHRv IGRyb3AgdGhlIGRhdGFiYXNlIiIiCi0gICAgdHJ5OgorCisgICAgcGdfY3Vy c29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgIHBnX2N1cnNvci5leGVj dXRlKCJTRUxFQ1QgKiBGUk9NIHBnX2RhdGFiYXNlIGRiIFdIRVJFIGRiLmRh dG5hbWU9JyVzJyIKKyAgICAgICAgICAgICAgICAgICAgICAlIGRhdGFiYXNl X25hbWUpCisgICAgaWYgcGdfY3Vyc29yLmZldGNoYWxsKCk6CisgICAgICAg ICMgUmVsZWFzZSBwaWQgaWYgYW55IHByb2Nlc3MgdXNpbmcgZGF0YWJhc2UK KyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBwZ190ZXJtaW5h dGVfYmFja2VuZChwaWQpIGZyb20iCisgICAgICAgICAgICAgICAgICAgICAg ICAgICIgcGdfc3RhdF9hY3Rpdml0eSB3aGVyZSBkYXRuYW1lPSclcyciICUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfbmFtZSkKICAg ICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0 aW9uX2xldmVsCiAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9s ZXZlbCgwKQotICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCi0gICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCcnJ0RST1AgREFUQUJB U0UgIiVzIicnJyAlIGRiX25hbWUpCisgICAgICAgIHBnX2N1cnNvci5leGVj dXRlKCcnJ0RST1AgREFUQUJBU0UgIiVzIicnJyAlIGRhdGFiYXNlX25hbWUp CiAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRf aXNvbGF0aW9uX2xldmVsKQogICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgp Ci0gICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQotICAgIGV4Y2VwdCBFeGNl cHRpb24gYXMgZXhjZXB0aW9uOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o IkV4Y2VwdGlvbiB3aGlsZSBkcm9wcGluZyB0aGUgZGF0YWJhc2UuICVzIiAl Ci0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24pCiAKIAogZGVm IGNyZWF0ZV9zZXJ2ZXIoc2VydmVyKToKQEAgLTE4MSwxMTYgKzE5MCwxNzIg QEAgZGVmIGRlbGV0ZV9zZXJ2ZXIoc2lkKToKICAgICB0cnk6CiAgICAgICAg IGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoY29uZmlnLlNRTElURV9QQVRIKQog ICAgICAgICBjdXIgPSBjb25uLmN1cnNvcigpCi0gICAgICAgIHNlcnZlcnMg PSBjdXIuZXhlY3V0ZSgnU0VMRUNUICogRlJPTSBzZXJ2ZXIgV0hFUkUgaWQ9 JXMnICUgc2lkKQotICAgICAgICBzZXJ2ZXJzX2NvdW50ID0gbGVuKHNlcnZl cnMuZmV0Y2hhbGwoKSkKKyAgICAgICAgc2VydmVyX29iamVjdHMgPSBjdXIu ZXhlY3V0ZSgnU0VMRUNUICogRlJPTSBzZXJ2ZXIgV0hFUkUgaWQ9JXMnICUg c2lkKQorICAgICAgICBzZXJ2ZXJzX2NvdW50ID0gbGVuKHNlcnZlcl9vYmpl Y3RzLmZldGNoYWxsKCkpCiAgICAgICAgIGlmIHNlcnZlcnNfY291bnQ6CiAg ICAgICAgICAgICBjdXIuZXhlY3V0ZSgnREVMRVRFIEZST00gc2VydmVyIFdI RVJFIGlkPSVzJyAlIHNpZCkKICAgICAgICAgICAgIGNvbm4uY29tbWl0KCkK LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50KCJObyBzZXJ2ZXJz IGZvdW5kIHRvIGRlbGV0ZS4iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAg IGNvbm4uY2xvc2UoKQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgog ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGRlbGV0aW5n IHNlcnZlciAlcyIgJSBlcnIpCiAKIAotZGVmIGNyZWF0ZV90ZXN0X3NlcnZl cihzZXJ2ZXIpOgorZGVmIGNyZWF0ZV90YWJsZXNwYWNlKHNlcnZlciwgdGVz dF90YWJsZXNwYWNlX25hbWUpOgorICAgIHRyeToKKyAgICAgICAgY29ubmVj dGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZlclsnZGInXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0 J10pCisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9u Lmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29s YXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlv bi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiQ1JFQVRF IFRBQkxFU1BBQ0UgJXMgTE9DQVRJT04gJyVzJyIgJQorICAgICAgICAgICAg ICAgICAgICAgICAgICAodGVzdF90YWJsZXNwYWNlX25hbWUsIHNlcnZlclsn dGFibGVzcGFjZV9wYXRoJ10pKQorICAgICAgICBjb25uZWN0aW9uLnNldF9p c29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAg Y29ubmVjdGlvbi5jb21taXQoKQorCisgICAgICAgICMgR2V0ICdvaWQnIGZy b20gbmV3bHkgY3JlYXRlZCB0YWJsZXNwYWNlCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKAorICAgICAgICAgICAgIlNFTEVDVCB0cy5vaWQgZnJvbSBw Z190YWJsZXNwYWNlIHRzIFdIRVJFIHRzLnNwY25hbWU9JyVzJyIgJQorICAg ICAgICAgICAgdGVzdF90YWJsZXNwYWNlX25hbWUpCisgICAgICAgIG9pZCA9 IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIHRzcGNfaWQgPSAnJwor ICAgICAgICBpZiBvaWQ6CisgICAgICAgICAgICB0c3BjX2lkID0gb2lkWzBd CisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4g dHNwY19pZAorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgor ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNyZWF0aW5n IHRhYmxlc3BhY2UuICVzIiAlIGV4Y2VwdGlvbikKKworCitkZWYgZGVsZXRl X3RhYmxlc3BhY2UoY29ubmVjdGlvbiwgdGVzdF90YWJsZXNwYWNlX25hbWUp OgorICAgIHRyeToKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5j dXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUICog RlJPTSBwZ190YWJsZXNwYWNlIHRzIFdIRVJFIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAiIHRzLnNwY25hbWU9JyVzJyIgJSB0ZXN0X3RhYmxlc3Bh Y2VfbmFtZSkKKyAgICAgICAgdGFibGVzcGFjZV9jb3VudCA9IGxlbihwZ19j dXJzb3IuZmV0Y2hhbGwoKSkKKyAgICAgICAgaWYgdGFibGVzcGFjZV9jb3Vu dDoKKyAgICAgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0 aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICAgICAgY29ubmVjdGlvbi5z ZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAgICAgICBwZ19jdXJzb3Iu ZXhlY3V0ZSgiRFJPUCBUQUJMRVNQQUNFICVzIiAlIHRlc3RfdGFibGVzcGFj ZV9uYW1lKQorICAgICAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9u X2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgICAgICBjb25u ZWN0aW9uLmNvbW1pdCgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQor ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICBw cmludCgiRXJyb3Igd2hpbGUgZGVsZXRpbmcgdGFibGVzcGFjZS4gJXMiICUg ZXhjZXB0aW9uLAorICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisK KworZGVmIGNyZWF0ZV90ZXN0X3NlcnZlcihzZXJ2ZXJfaW5mbyk6CiAgICAg IiIiCiAgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGUgdGhlIHRlc3Qgc2VydmVy IHdoaWNoIHdpbGwgYWN0IGFzIHBhcmVudCBzZXJ2ZXIsCiAgICAgdGhlIG90 aGVyIG5vZGUgd2lsbCBhZGQgdW5kZXIgdGhpcyBzZXJ2ZXIKLSAgICA6cGFy YW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscwotICAgIDp0eXBlIHNlcnZlcjog ZGljdAorICAgIDpwYXJhbSBzZXJ2ZXJfaW5mbzogc2VydmVyIGRldGFpbHMK KyAgICA6dHlwZSBzZXJ2ZXJfaW5mbzogZGljdAogICAgIDpyZXR1cm46IE5v bmUKICAgICAiIiIKICAgICAjIENyZWF0ZSB0aGUgc2VydmVyCi0gICAgc2Vy dmVyX2lkID0gY3JlYXRlX3NlcnZlcihzZXJ2ZXIpCisgICAgc3J2X2lkID0g Y3JlYXRlX3NlcnZlcihzZXJ2ZXJfaW5mbykKIAogICAgICMgQ3JlYXRlIHRl c3QgZGF0YWJhc2UKLSAgICB0ZXN0X2RiX25hbWUgPSAidGVzdF9kYiIKLSAg ICBkYl9pZCA9IGNyZWF0ZV9kYXRhYmFzZShzZXJ2ZXIsIHRlc3RfZGJfbmFt ZSkKKyAgICB0ZXN0X2RiX25hbWUgPSAidGVzdF9kYl8lcyIgJSBzdHIodXVp ZC51dWlkNCgpKVsxOjhdCisgICAgZGJfaWQgPSBjcmVhdGVfZGF0YWJhc2Uo c2VydmVyX2luZm8sIHRlc3RfZGJfbmFtZSkKKworICAgICMgVE9ETzogTmVl ZCB0byBkZWNpZGUgYWJvdXQgdGVzdCB0YWJsZXNwYWNlIGNyZWF0aW9uCisg ICAgIyBDcmVhdGUgdGFibGVzcGFjZQorICAgICMgdGVzdF90YWJsZXNwYWNl X25hbWUgPSAidGVzdF90YWJsZXNwYWNlIgorICAgICMgdGFibGVzcGFjZV9p ZCA9IGNyZWF0ZV90YWJsZXNwYWNlKHNlcnZlciwgdGVzdF90YWJsZXNwYWNl X25hbWUpCiAKICAgICAjIEFkZCBzZXJ2ZXIgaW5mbyB0byB0ZXN0X3NlcnZl cl9kaWN0Ci0gICAgcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2 ZXIiXS5hcHBlbmQoeyJzZXJ2ZXJfaWQiOiBzZXJ2ZXJfaWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz ZXJ2ZXIiOiBzZXJ2ZXJ9KQotICAgIHJlZ3Jlc3Npb24udGVzdF9zZXJ2ZXJf ZGljdFsiZGF0YWJhc2UiXS5hcHBlbmQoeyJzZXJ2ZXJfaWQiOiBzZXJ2ZXJf aWQsCisgICAgcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIi XS5hcHBlbmQoeyJzZXJ2ZXJfaWQiOiBzcnZfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIi OiBzZXJ2ZXJfaW5mb30pCisgICAgcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9k aWN0WyJkYXRhYmFzZSJdLmFwcGVuZCh7InNlcnZlcl9pZCI6IHNydl9pZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZGJfaWQiOiBkYl9pZCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGJfbmFtZSI6IHRl c3RfZGJfbmFtZX0pCiAKIAotZGVmIGRlbGV0ZV90ZXN0X3NlcnZlcihzZXJ2 ZXIpOgorZGVmIGRlbGV0ZV90ZXN0X3NlcnZlcigpOgogICAgIHRlc3Rfc2Vy dmVyX2RpY3QgPSByZWdyZXNzaW9uLnRlc3Rfc2VydmVyX2RpY3QKLSAgICBp ZiB0ZXN0X3NlcnZlcl9kaWN0OgotICAgICAgICBjb25uZWN0aW9uID0gZ2V0 X2RiX2Nvbm5lY3Rpb24oc2VydmVyWydkYiddLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy WydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyWydob3N0J10sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKLSAgICAg ICAgZGJfbmFtZSA9IHRlc3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl1bMF1b ImRiX25hbWUiXQotICAgICAgICBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24s IGRiX25hbWUpCi0gICAgICAgICMgRGVsZXRlIHRoZSBzZXJ2ZXIKLSAgICAg ICAgc2VydmVyX2lkID0gdGVzdF9zZXJ2ZXJfZGljdFsnc2VydmVyJ11bMF1b InNlcnZlcl9pZCJdCi0gICAgICAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3Qo Y29uZmlnLlNRTElURV9QQVRIKQotICAgICAgICBjdXIgPSBjb25uLmN1cnNv cigpCi0gICAgICAgIHNlcnZlcnMgPSBjdXIuZXhlY3V0ZSgnU0VMRUNUICog RlJPTSBzZXJ2ZXIgV0hFUkUgaWQ9JXMnICUgc2VydmVyX2lkKQotICAgICAg ICBzZXJ2ZXJzX2NvdW50ID0gbGVuKHNlcnZlcnMuZmV0Y2hhbGwoKSkKLSAg ICAgICAgaWYgc2VydmVyc19jb3VudDoKLSAgICAgICAgICAgIGN1ci5leGVj dXRlKCdERUxFVEUgRlJPTSBzZXJ2ZXIgV0hFUkUgaWQ9JXMnICUgc2VydmVy X2lkKQotICAgICAgICAgICAgY29ubi5jb21taXQoKQotICAgICAgICAgICAg Y29ubi5jbG9zZSgpCi0gICAgICAgICAgICBzZXJ2ZXJfZGljdCA9IHJlZ3Jl c3Npb24udGVzdF9zZXJ2ZXJfZGljdFsic2VydmVyIl0KKyAgICB0ZXN0X3Nl cnZlcnMgPSB0ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIiXQorICAgIHRlc3Rf ZGF0YWJhc2VzID0gdGVzdF9zZXJ2ZXJfZGljdFsiZGF0YWJhc2UiXQorICAg IHRlc3RfdGFibGVfc3BhY2VzID0gdGVzdF9zZXJ2ZXJfZGljdFsidGFibGVz cGFjZSJdCisgICAgdHJ5OgorICAgICAgICBmb3IgdGVzdF9zZXJ2ZXIgaW4g dGVzdF9zZXJ2ZXJzOgorICAgICAgICAgICAgc3J2X2lkID0gdGVzdF9zZXJ2 ZXJbInNlcnZlcl9pZCJdCisgICAgICAgICAgICBzZXJ2ZXJzX2RpY3QgPSB0 ZXN0X3NlcnZlclsic2VydmVyIl0KKyAgICAgICAgICAgIGZvciBkYXRhYmFz ZSBpbiB0ZXN0X2RhdGFiYXNlczoKKyAgICAgICAgICAgICAgICBjb25uZWN0 aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24oc2VydmVyc19kaWN0WydkYiddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJzX2RpY3RbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfZGljdFsn ZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyc19kaWN0Wydob3N0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcnNfZGljdFsncG9ydCddKQorICAgICAgICAgICAgICAgIGRhdGFiYXNl X25hbWUgPSBkYXRhYmFzZVsiZGJfbmFtZSJdCisgICAgICAgICAgICAgICAg IyBEcm9wIGRhdGFiYXNlCisgICAgICAgICAgICAgICAgZHJvcF9kYXRhYmFz ZShjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKQorICAgICAgICAgICAgZm9y IHRhYmxlc3BhY2UgaW4gdGVzdF90YWJsZV9zcGFjZXM6CisgICAgICAgICAg ICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZlcnNf ZGljdFsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyc19kaWN0Wyd1c2VybmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJzX2RpY3RbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfZGljdFsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJzX2RpY3RbJ3BvcnQnXSkKKyAgICAgICAgICAg ICAgICB0YWJsZXNwYWNlX25hbWUgPSB0YWJsZXNwYWNlWyJ0YWJsZXNwYWNl X25hbWUiXQorICAgICAgICAgICAgICAgICMgRGVsZXRlIHRhYmxlc3BhY2UK KyAgICAgICAgICAgICAgICBkZWxldGVfdGFibGVzcGFjZShjb25uZWN0aW9u LCB0YWJsZXNwYWNlX25hbWUpCisKKyAgICAgICAgICAgICMgRGVsZXRlIHNl cnZlcgorICAgICAgICAgICAgZGVsZXRlX3NlcnZlcihzcnZfaWQpCisgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIGxvZ2dl ci5lcnJvcigiRXhjZXB0aW9uOiAlcyIgJSBleGNlcHRpb24pCiAKLSAgICAg ICAgICAgICMgUG9wIHRoZSBzZXJ2ZXIgZnJvbSBkaWN0IGlmIGl0J3MgZGVs ZXRlZAotICAgICAgICAgICAgc2VydmVyX2RpY3QgPSBbc2VydmVyX2RpY3Qu cG9wKHNlcnZlcl9kaWN0LmluZGV4KGl0ZW0pKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VydmVyX2RpY3QKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHN0cihzZXJ2ZXJfaWQpID09IHN0cihp dGVtWyJzZXJ2ZXJfaWQiXSldCisgICAgIyBDbGVhciB0ZXN0X3NlcnZlcl9k aWN0CisgICAgZm9yIGl0ZW0gaW4gcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9k aWN0OgorICAgICAgICBkZWwgcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0 W2l0ZW1dWzpdCiAKLSAgICAgICAgICAgICMgUG9wIHRoZSBkYiBmcm9tIGRp Y3QgaWYgaXQncyBkZWxldGVkCi0gICAgICAgICAgICBkYl9kaWN0ID0gcmVn cmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJkYXRhYmFzZSJdCi0gICAgICAg ICAgICBkYl9kaWN0ID0gW2RiX2RpY3QucG9wKGRiX2RpY3QuaW5kZXgoaXRl bSkpIGZvciBpdGVtIGluIGRiX2RpY3QKLSAgICAgICAgICAgICAgICAgICAg ICAgaWYgc2VydmVyX2lkID09IGl0ZW1bInNlcnZlcl9pZCJdXQorCitkZWYg cmVtb3ZlX2RiX2ZpbGUoKToKKyAgICBpZiBvcy5wYXRoLmlzZmlsZShjb25m aWcuU1FMSVRFX1BBVEgpOgorICAgICAgICBvcy5yZW1vdmUoY29uZmlnLlNR TElURV9QQVRIKQogCiAKIGRlZiBkcm9wX29iamVjdHMoKToKICAgICAiIiJU aGlzIGZ1bmN0aW9uIHVzZSB0byBjbGVhbnVwIHRoZSBjcmVhdGVkIHRoZSBv YmplY3RzKHNlcnZlcnMsIGRhdGFiYXNlcywKICAgICAgc2NoZW1hcyBldGMp IGR1cmluZyB0aGUgdGVzdCBzdWl0ZSBydW4iIiIKLQotICAgICMgQ2xlYW51 cCBpbiBub2RlX2luZm9fZGljdAotICAgIHNlcnZlcnNfaW5mbyA9IHJlZ3Jl c3Npb24ubm9kZV9pbmZvX2RpY3RbJ3NpZCddCi0gICAgaWYgc2VydmVyc19p bmZvOgotICAgICAgICBmb3Igc2VydmVyIGluIHNlcnZlcnNfaW5mbzoKLSAg ICAgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlci5rZXlzKClbMF0KLSAgICAg ICAgICAgIHNlcnZlciA9IHNlcnZlci52YWx1ZXMoKVswXQotICAgICAgICAg ICAgaWYgcmVncmVzc2lvbi5ub2RlX2luZm9fZGljdFsnZGlkJ106Ci0gICAg ICAgICAgICAgICAgZGJfY29ubiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZl clsnZGInXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsnaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKLSAgICAg ICAgICAgICAgICBkYl9kaWN0ID0gcmVncmVzc2lvbi5ub2RlX2luZm9fZGlj dFsnZGlkJ11bMF0KLSAgICAgICAgICAgICAgICBpZiBpbnQoc2VydmVyX2lk KSBpbiBkYl9kaWN0OgotICAgICAgICAgICAgICAgICAgICBkYl9uYW1lID0g ZGJfZGljdFtpbnQoc2VydmVyX2lkKV1bImRiX25hbWUiXQotICAgICAgICAg ICAgICAgICAgICBkcm9wX2RhdGFiYXNlKGRiX2Nvbm4sIGRiX25hbWUpCi0g ICAgICAgICAgICBkZWxldGVfc2VydmVyKHNlcnZlcl9pZCkKLQotICAgICMg Q2xlYW51cCBpbiB0ZXN0X3NlcnZlcl9kaWN0Ci0gICAgc2VydmVycyA9IHJl Z3Jlc3Npb24udGVzdF9zZXJ2ZXJfZGljdFsic2VydmVyIl0KLSAgICBpZiBz ZXJ2ZXJzOgotICAgICAgICBmb3Igc2VydmVyIGluIHNlcnZlcnM6Ci0gICAg ICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJbInNlcnZlcl9pZCJdCi0gICAg ICAgICAgICBzZXJ2ZXIgPSBzZXJ2ZXJbInNlcnZlciJdCi0gICAgICAgICAg ICBpZiByZWdyZXNzaW9uLnRlc3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl06 Ci0gICAgICAgICAgICAgICAgZGJfaW5mbyA9IHJlZ3Jlc3Npb24udGVzdF9z ZXJ2ZXJfZGljdFsiZGF0YWJhc2UiXQotICAgICAgICAgICAgICAgIGRiX2Rp Y3QgPSBbaXRlbSBmb3IgaXRlbSBpbiBkYl9pbmZvCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBzZXJ2ZXJfaWQgPT0gaXRlbVsic2VydmVyX2lk Il1dCi0gICAgICAgICAgICAgICAgaWYgZGJfZGljdDoKLSAgICAgICAgICAg ICAgICAgICAgZm9yIGRiIGluIGRiX2RpY3Q6Ci0gICAgICAgICAgICAgICAg ICAgICAgICBkYl9uYW1lID0gZGJbImRiX25hbWUiXQotICAgICAgICAgICAg ICAgICAgICAgICAgZGJfY29ubiA9IGdldF9kYl9jb25uZWN0aW9uKHNlcnZl clsnZGInXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCdd LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsncG9ydCddKQotICAgICAgICAgICAgICAgICAg ICAgICAgZHJvcF9kYXRhYmFzZShkYl9jb25uLCBkYl9uYW1lKQotICAgICAg ICAgICAgZGVsZXRlX3NlcnZlcihzZXJ2ZXJfaWQpCi0KLSAgICAjIFJlbW92 ZSB0aGUgdGVzdCBTUUxpdGUgZGF0YWJhc2UKLSAgICBpZiBvcy5wYXRoLmlz ZmlsZShjb25maWcuU1FMSVRFX1BBVEgpOgotICAgICAgICBvcy5yZW1vdmUo Y29uZmlnLlNRTElURV9QQVRIKQorICAgIHRyeToKKyAgICAgICAgY29ubiA9 IHNxbGl0ZTMuY29ubmVjdChjb25maWcuU1FMSVRFX1BBVEgpCisgICAgICAg IGN1ciA9IGNvbm4uY3Vyc29yKCkKKyAgICAgICAgc2VydmVycyA9IGN1ci5l eGVjdXRlKCdTRUxFQ1QgbmFtZSwgaG9zdCwgcG9ydCwgbWFpbnRlbmFuY2Vf ZGIsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB1c2VybmFt ZSwgaWQgIEZST00gc2VydmVyJykKKyAgICAgICAgaWYgc2VydmVyczoKKyAg ICAgICAgICAgIGFsbF9zZXJ2ZXJzID0gc2VydmVycy5mZXRjaGFsbCgpCisg ICAgICAgICAgICBmb3Igc2VydmVyX2luZm8gaW4gYWxsX3NlcnZlcnM6Cisg ICAgICAgICAgICAgICAgZGJfcG9ydCA9IHNlcnZlcl9pbmZvWzJdCisgICAg ICAgICAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2luZm9bNV0KKyAgICAg ICAgICAgICAgICBjb25maWdfc2VydmVycyA9IHRlc3Rfc2V0dXAuY29uZmln X2RhdGFbJ3NlcnZlcl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAg ZGJfcGFzc3dvcmQgPSBuZXh0KCgKKyAgICAgICAgICAgICAgICAgICAgaXRl bSBmb3IgaXRlbSBpbiBjb25maWdfc2VydmVycworICAgICAgICAgICAgICAg ICAgICBpZiBpdGVtWydkYl9wb3J0J10gPT0gZGJfcG9ydCksIE5vbmUpWydk Yl9wYXNzd29yZCddCisgICAgICAgICAgICAgICAgY29ubmVjdGlvbiA9IGdl dF9kYl9jb25uZWN0aW9uKHNlcnZlcl9pbmZvWzNdLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaW5m b1s0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGJfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzFdLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJfaW5mb1syXSkKKworICAgICAgICAgICAgICAgIHBnX2N1cnNvciA9 IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgiU0VMRUNUIGRiLmRhdG5hbWUgRlJPTSBwZ19kYXRhYmFz ZSBkYiIpCisgICAgICAgICAgICAgICAgZGF0YWJhc2VzID0gcGdfY3Vyc29y LmZldGNoYWxsKCkKKyAgICAgICAgICAgICAgICBpZiBkYXRhYmFzZXM6Cisg ICAgICAgICAgICAgICAgICAgIGZvciBkYiBpbiBkYXRhYmFzZXM6CisgICAg ICAgICAgICAgICAgICAgICAgICAjIERvIG5vdCBkcm9wIHRoZSBkZWZhdWx0 IGRhdGFiYXNlcworICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGJbMF0g bm90IGluIFsicG9zdGdyZXMiLCAidGVtcGxhdGUxIiwgInRlbXBsYXRlMCJd OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfZGF0YWJhc2Uo Y29ubmVjdGlvbiwgZGJbMF0pCisgICAgICAgICAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisgICAgICAgICAgICAgICAgIyBEZWxldGUgc2VydmVyCisg ICAgICAgICAgICAgICAgZGVsZXRlX3NlcnZlcihzZXJ2ZXJfaWQpCisgICAg ICAgIGNvbm4uY2xvc2UoKQorICAgICAgICAjIFJlbW92ZSBTUUxpdGUgZGIg ZmlsZQorICAgICAgICByZW1vdmVfZGJfZmlsZSgpCisgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIHJlbW92ZV9kYl9maWxl KCkKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCIlczogbGluZTolcyAlcyIg JSAoCisgICAgICAgICAgICBmaWxlX25hbWUsIHN5cy5leGNfdHJhY2ViYWNr LnRiX2xpbmVubywgZXhjZXB0aW9uKSkKZGlmZiAtLWdpdCBhL3dlYi9zZXR1 cC5weSBiL3dlYi9zZXR1cC5weQppbmRleCAxYWJlMzY3Li41OTdlZWI1IDEw MDc1NQotLS0gYS93ZWIvc2V0dXAucHkKKysrIGIvd2ViL3NldHVwLnB5CkBA IC04Miw4ICs4Miw3IEBAIGRlZiBkb19zZXR1cChhcHApOgogICAgICAgICAg ICAgICAgIGlmIHAxICE9IHAyOgogICAgICAgICAgICAgICAgICAgICBwcmlu dCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4gUGxlYXNlIHRyeSBhZ2Fpbi4n KQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg IHByaW50KAotICAgICAgICAgICAgICAgICAgICAnUGFzc3dvcmQgbXVzdCBi ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMuIFBsZWFzZSB0cnkgYWdhaW4uJykK KyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1Bhc3N3b3JkIG11c3QgYmUg YXQgbGVhc3QgNiBjaGFyYWN0ZXJzLiBQbGVhc2UgdHJ5IGFnYWluLicpCiAg ICAgICAgICAgICAgICAgcDEsIHAyID0gcHByb21wdCgpCiAKICAgICAjIFNl dHVwIEZsYXNrLVNlY3VyaXR5Cg== --001a114a853a1410a1053cd70f20 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a114a853a1410a1053cd70f20--